服務(wù)掃描
- 1.識(shí)別開發(fā)端口上運(yùn)行的應(yīng)用
- 2.識(shí)別目標(biāo)操作系統(tǒng)
- 3.banner捕獲
- 軟件開發(fā)商
- 軟件名稱
- 服務(wù)類型
- 版本號(hào)(直接發(fā)現(xiàn)已知的漏洞和弱點(diǎn))
- 3.1使用NC查看banner
nc -nv 192.168.50.183 80
查看banner信息
查看banner信息
- 3.2使用python查看banner
python socket:socket模塊用于連接網(wǎng)絡(luò)服務(wù)
root@kali:~# python
Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> banner = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>>> banner.connect(("192.168.50.183",21))
>>> banner.recv(4096)
'220 (vsFTPd 2.3.4)\r\n' //返回的banner信息
>>> banner.close()
>>> exit()
注:banner不允許抓取,recv函數(shù)無(wú)返回將掛起
使用腳本實(shí)現(xiàn)上述內(nèi)容
#!/usr/bin/python
import socket
import select
import sys
if len(sys.argv) != 4:
print "Usage - ./banner.py [Target-IP] [First Port] [Last Port]"
print "Example - ./banner.py 1.1.1.1 1 100"
print "Example will banners for TCP ports 1 through 100 on 1.1.1.1"
sys.exit()
ip = sys.argv[1]
start = int(sys.argv[2])
end = int(sys.argv[3])
for port in range(start,end):
try:
banner = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
banner.connect((ip,port))
ready = select.select([banner],[],[],1)
if ready[0]: //如果沒(méi)有被掛起,即存在banner信息
print " TCP Port " + str(port) + "-" + banner.recv(4096)
banner.close()
except:
pass
- 3.3 使用dimtry查看banner
dmitry -pb 192.168.50.183
dimtry查看banner
- 3.4 nmap查看banner信息
nmap -sT 192.168.50.183 -p 22 --script=banner.nse
nmap查看banner信息
- 3.5 amap掃描banner信息
amap -B 192.168.50.183 22
amap查看banner
- 4.服務(wù)識(shí)別
banner信息抓取能力有限,而且不一定準(zhǔn),因此想要確定具體的目標(biāo)端口運(yùn)行的是什么服務(wù) - 使用nmap進(jìn)行服務(wù)識(shí)別
nmap 192.168.50.183 -p1-100 -sV //nmap通過(guò)指紋等信息具體識(shí)別出對(duì)應(yīng)服務(wù)
namp服務(wù)識(shí)別
- 使用amap進(jìn)行服務(wù)識(shí)別
amap 192.168.50.183 1-100 -q //-q更友好的顯示,屏蔽未定義的一些信息
amap服務(wù)識(shí)別