十四、主动信息收集-服务扫描

服务扫描

  • 1.识别开发端口上运行的应用
  • 2.识别目标操作系统
  • 3.banner捕获
  • 软件开发商
  • 软件名称
  • 服务类型
  • 版本号(直接发现已知的漏洞和弱点)
  • 3.1使用NC查看banner
nc -nv 192.168.50.183 80
查看banner信息
十四、主动信息收集-服务扫描_第1张图片
查看banner信息
  • 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
十四、主动信息收集-服务扫描_第2张图片
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
十四、主动信息收集-服务扫描_第3张图片
amap查看banner
  • 4.服务识别
    banner信息抓取能力有限,而且不一定准,因此想要确定具体的目标端口运行的是什么服务
  • 使用nmap进行服务识别
nmap 192.168.50.183 -p1-100 -sV  //nmap通过指纹等信息具体识别出对应服务
十四、主动信息收集-服务扫描_第4张图片
namp服务识别
  • 使用amap进行服务识别
 amap 192.168.50.183 1-100 -q   //-q更友好的显示,屏蔽未定义的一些信息

十四、主动信息收集-服务扫描_第5张图片
amap服务识别

你可能感兴趣的:(十四、主动信息收集-服务扫描)