服务扫描
- 1.识别开发端口上运行的应用
- 2.识别目标操作系统
- 3.banner捕获
- 软件开发商
- 软件名称
- 服务类型
- 版本号(直接发现已知的漏洞和弱点)
- 3.1使用NC查看banner
nc -nv 192.168.50.183 80
- 3.2使用python查看banner
python socket:socket模块用于连接网络服务
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函数无返回将挂起
使用脚本实现上述内容
#!/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]: //如果没有被挂起,即存在banner信息
print " TCP Port " + str(port) + "-" + banner.recv(4096)
banner.close()
except:
pass
- 3.3 使用dimtry查看banner
dmitry -pb 192.168.50.183
- 3.4 nmap查看banner信息
nmap -sT 192.168.50.183 -p 22 --script=banner.nse
- 3.5 amap扫描banner信息
amap -B 192.168.50.183 22
- 4.服务识别
banner信息抓取能力有限,而且不一定准,因此想要确定具体的目标端口运行的是什么服务 - 使用nmap进行服务识别
nmap 192.168.50.183 -p1-100 -sV //nmap通过指纹等信息具体识别出对应服务
- 使用amap进行服务识别
amap 192.168.50.183 1-100 -q //-q更友好的显示,屏蔽未定义的一些信息