1. 程式人生 > >Kali學習筆記13:操作系統識別

Kali學習筆記13:操作系統識別

mage 系統識別 ble 操作 沒有 esp xxx turn 類型

為什麽要掃描操作系統呢?

其實和上一篇博客:《服務掃描》類似,都是為了能夠發現漏洞

發現什麽漏洞?

不同的操作系統、相同操作系統不同版本,都存在著一些可以利用的漏洞

而且,不同的系統會默認開放不同的一些端口和服務

如果能夠知道操作系統和版本號,那麽就可以利用這些默認選項做一些“事情”

OS的識別技術多種多樣,有簡單的也有復雜的,最簡單的就是用TTL值去識別。

不同類型的OS默認的起始TTL值是不同的。

比如,windows的默認是128,然後每經過一個路由,TTL值減一。

Linux/Unix的值是64,但有些特殊的Unix會是255。

1.利用Python來識別:

#!/usr/bin/python
from scapy.all import * import logging logging.getLogger("scapy.runtime").setLevel(logging.ERROR) import sys if len(sys.argv) != 2: print("Usage --/ttl_os.py [IP Address]") print("Example --/ttl_os.py 192.168.0.1") print("Example will preform ttl analysis to attempt to determine whether the system is windows or linux/unix
") sys.exit() ip = sys.argv[1] ans = sr1(IP(dst=str(ip)) / ICMP(), timeout=1, verbose=0) if ans == None: print("NO response was returned") elif int(ans[IP].ttl) <= 64: print("Host is Linux/Unix") else: print("Host is Windows")

使用場景:

我主機IP:10.14.4.252

Kali機器:192.168.22.130

Metasploitable機器:192.168.22.129

使用腳本:

如果腳本是從windows移過來的:

vi xxx.py

:set fileformat=unix

:wq

chmod u+x xxx.py

./xxx.py

技術分享圖片

我還多掃描了一個本地的機器,得到的結果都很準確

不過呢,這只是利用TTL簡單判斷出操作系統

利用Nmap,不僅可以實現這裏的功能,甚至還可以得到版本:

-O:參數,識別操作系統

技術分享圖片

技術分享圖片

除了強大的工具,還有一些其他的:

xprobe2:直接輸入IP地址即可

技術分享圖片

這個掃描工具相對於Nmap,差距很大,結果不精確

上邊的工具都是主動識別操作系統的:主動向目標發送數據包,分析回包

而下邊這個工具是被動識別的:

基於網絡監聽的工作原理:Windows和Linux發送出來的包是有很大區別的。

被動式的掃描可以部署在網絡進出口的地方,目的是讓所經過的流量通過我的流量分析器。

同樣在Kali中也存在這般的工具p0f,他會監聽凡是通過本地網卡的流量。

開啟:p0f

技術分享圖片

這裏是開啟了監聽,如果什麽都不做,他也沒有反應

接下來我訪問某網站,看看變化:

隨意挑出一條信息來看看:

技術分享圖片

我49024端口向某IP發送了SYN包,這裏就得到了我Kali機的版本:3.11或者更高

總之,我推薦Nmap

Kali學習筆記13:操作系統識別