操作系统识别-python、nmap
生活随笔
收集整理的這篇文章主要介紹了
操作系统识别-python、nmap
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
識別操作系統主要是用于操作系統漏洞的利用。不管是windows還是linux系統,在安裝完畢后都會默認啟動一些服務,開啟一些端口。
識別目標主機的系統最簡單的方法就是發送ping包,windows起始ttl值默認為128,linux和unix系統默認為64,還有一些特殊的unix系統的ttl值為255.下圖為ping局域網內的兩臺主機,一臺為win xp(192.168.0.104),一臺為metasploitable2靶機(192.168.0.108):
可以明顯地看到,windows發送的pin回包ttl值是128,而linux發送的ttl值是64.
1 #!/usr/bin/python 2 from scapy.all import * 3 4 if len(sys.argv) != 2: 5 print "this script needs one arg!\nExample:./ttl_os.py 192.168.0.0 or ./ttl_os.py baidu.com" 6 sys.exit() 7 8 ip = sys.argv[1] 9 r = sr1(IP(dst = ip) / ICMP(), timeout = 1, verbose = 0) 10 11 if r == None: 12 print "no response!" 13 elif r[IP].ttl <= 64: 14 print "Linux or Unix!" 15 elif r[IP].ttl > 64 and r[IP].ttl <= 128: 16 print "Windows!" 17 else: 18 print "Unix!" python代碼實現ttl值可以通過軟件進行更改,所以僅僅通過ttl值進行的判斷并不總是準確的。而強大的nmap又提供了強大的參數-O,可以根據多種特征進行系統識別,執行nmap 192.168.0.108 -O命令,得到結果:
當然了,即使使用nmap這個強大的工具得到的結果也有可能不完全準確,小編使用nmap掃描win xp 家庭版得出的結果是win xp 專業版或者win2003.
轉載于:https://www.cnblogs.com/angiebare/p/9388858.html
總結
以上是生活随笔為你收集整理的操作系统识别-python、nmap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寻找重复的子树 Find Duplica
- 下一篇: IOIOI卡片占卜(Atcoder-IO