通过上一篇得到正在开放的端口,是不能绝对的认定哪个端口对应的就是某个服务软件或者协议的端口,这不是绝对的。

下面扫描一些对应端口所开放的服务。

  • Banner信息
    通过banner信息可以获得包括软件开发商,软件名称,服务类型,版本号等信息,有可能通过已知的漏洞和弱点直接渗透到目标主机,当然所有的信息都可能不是真实的,所有有必要结合一些另类的服务识别方法,比如,特征识别和响应字段,而不同的响应可用于识别底层的操作系统。除此外,若想获得对方的banner 信息,就必须通过直接连接的方法。
  • 简单网络管理协议
    SNMP大概是所有网络管理员配置起来最容易出错的一项服务了。
  • 识别防火墙并绕过

Python Socket获取Banner信息

最简单的就是通过nv来简单查看一下。
Scapy最主要的作用是向网络里注入数据包,但是它缺乏对应用层的支持,比如很难去发送一个http包,ssh包,它主要针对于三四层网络中包的注入,劫持,嗅探。此时便需要通过Scoket与目标进行tcp连接,以进行更多的应用层的信息传输。
进入Python,导入Scoket模块:
构建一个最简单的Socket连接

>>> import socket#这是一个建立socket的标准指令方式#创建一个socket对象,并构建一个banner实例,用以建立一个tcp连接,SOCK_STREAM代表tcp连接>>> banner = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#连接目标端口>>>banner.connect(("192.168.0.101", 21))#指定接收数据的大小>>>banner.recv(4096)#关闭连接>>>banner.close()

Python脚本实现Banner信息获取

#!/usr/bin/python#-*-coding:utf-8-*- import socketimport selectimport sys if len(sys.argv)!=4:    print"Usage __ /banner_get.py [Target -IP]j [Fisrst Port] [Last Port]"    print"Example __ /banner_get.py 1.0.1.0 1 100"    print"Example will get banner 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:    banget = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #表示建立tcp连接    banget.connect((ip.port))    ready = select.select([banget],[],[],1)#若超时时间为1    if ready[0]:#如果ready=0表示没有被挂起的      print"TCP Port"+str(port)+"."+banget.recv(4096)      banget.close() #记得关闭连接,否则对双方来将都是一种伤害  except:    pass

NMAP获得Banner信息

NMAP获得banner信息主要是使用了一个banner脚本(nmap自带的)

nmap -sT 192.168.0.113 -p 100-500 --script=banner.nse Starting Nmap 7.01 ( https://nmap.org ) at 2016-06-01 11:18 CSTNmap scan report for 192.168.0.113Host is up (0.00080s latency).Not shown: 398 filtered portsPORT    STATE SERVICE135/tcp open  msrpc139/tcp open  netbios-ssn

NMAP脚本的存放目录

cd /usr/share/nmap/scripts

AMAP

Kali里面除了一个NMAP以外还有一个AMAP,AMAP的主要作用便是用来识别端口后所运行的服务

参数: amap -B ip port

其中nmap的-B参数便是用来发现banner信息的。

NMAP特征识别

nmap 192.168.0.113 -p100-500 -sV Starting Nmap 7.01 ( https://nmap.org ) at 2016-06-01 11:34 CSTNmap scan report for 192.168.0.113Host is up (0.00075s latency).Not shown: 398 filtered portsPORT    STATE SERVICE      VERSION135/tcp open  msrpc        Microsoft Windows RPC139/tcp open  netbios-ssn  Microsoft Windows 98 netbios-ssn445/tcp open  microsoft-ds Microsoft Windows 10 microsoft-dsMAC Address: 5C:F9:DD:6A:02:61 (Dell)Service Info: OSs: Windows, Windows 98, Windows 10; CPE: cpe:/o:microsoft:windows, cpe:/o:microsoft:windows_98, cpe:/o:microsoft:windows_10 Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 15.08 seconds

NMAP -sV参数不再只是简单的探测扫描目标端口,而是会发送一系列复杂的探测包,根据响应特征获得signature,获得的信息可信度大幅提高