關於什麼是服務掃描不多介紹,通俗來看: 我已經掃描到目標機器某個埠開放,接下來我需要知道開放這個埠的是什麼應用 情景: 我的Kali機器IP地址:192.168.22.130 我要掃描的Metasploitable機器IP地址:192.168.22.129 1.先介紹一個小工具:不強大,但是可以 ...
關於什麼是服務掃描不多介紹,通俗來看:
我已經掃描到目標機器某個埠開放,接下來我需要知道開放這個埠的是什麼應用
情景:
我的Kali機器IP地址:192.168.22.130
我要掃描的Metasploitable機器IP地址:192.168.22.129
1.先介紹一個小工具:不強大,但是可以考慮使用
nc命令:
我要掃描目標機器的22埠:
發現跑著SSH應用,並且還可以看到操作系統
2.利用Python的Socket模塊:
#!/usr/bin/python import socket import select import sys if len(sys.argv) != 4: print "./ban_grab.py [Target IP] [First Port] [Last Port]" print "Example: ./ban_grab.py 10.0.0.5 1 100" print "Example will grab banners for TCP ports 1 through 100 on 10.0.0.5" sys.exit() ip = sys.argv[1] start = int(sys.argv[2]) end = int(sys.argv[3]) for port in range(start, end): try: bangrab = socket.socket(socket.AF_INET, socket.SOCK_STREAM) bangrab.connect((ip, port)) ready = select.select([bangrab], [], [], 1) if ready[0]: print "TCP Poet " + str(port) + " - " + bangrab.recv(4096) bangrab.close() except: pass
使用腳本:
如果腳本是從windows移過來的:
vi xxx.py
:set fileformat=unix
:wq
chmod u+x xxx.py
./xxx.py
使用:
效果不錯!
其他工具:
dmitry:-p 是埠掃描參數,-b是Banner信息掃描參數
當然,強大的Nmap工具不可或缺:
-sT:必須基於完整的TCP三次握手
--script:使用內置腳本
當然,想知道具體有哪些?至少有幾百個,可以到這個目錄看看
有一個工具是專門為服務掃描而開發的:Amap:
-B參數:掃描Banner
指定埠範圍:
Banner信息抓取就到這裡
這種方式其實並不總能獲取到正確的信息,並且獲取信息不完整
這時候就需要根據一些特征來識別服務:
再次用到強大的Nmap工具:
-sV參數:“指紋特性”匹配方式來識別
效果相比前面的Banner信息獲取方式,好太多!
實際中,十分推薦這種方式,例如上邊沒有發現的53埠,這裡識別了
80埠其他工具只是識別出HTTP,這裡甚至知道是Apache的web容器
-sV參數還能解決一個問題:有時候HTTP服務在高位埠(如:8888)
這時候基本無法識別這是一個HTTP服務,而-sV參數依舊可以發現,這就是強大之處
上邊提到的Amap工具其實也可以實現:不過不如Nmap詳細
雖說能夠實現,不過還是推薦Nmap