端口扫描
每个服务器上面都会跑很多应用,每个应用都会侦听某些端口,通过侦听端口接收来自客户端或其他用户对应用程序的访问。所以在发现目标主机存活后,我们需要知道目标主机上都开放了那些端口,应用程序的漏洞都是通过端口体现出来的。后续的渗透测试如果能攻击进入一个操作系统的话,都是通过端口后面的应用程序的漏洞攻击进去的。所以说,二三四层主机发现只是为了准确发现活着的IP,确定攻击面;端口扫描发现开放的端口,确定攻击点。
- 端口对应网络服务及应用端程序
- 服务端程序的漏洞通过端口攻入
一、UDP端口扫描
基于端口的扫描,都是针对存活的主机而言。使用UDP端口扫描,如果目标主机不存活或者目标主机存活且端口开放,则目标系统不会有响应;如果端口关闭,则目标系统会响应端口不可达。
- 端口关闭:ICMP port unreachable
- 端口开放:没有回包
使用脚本的方式实现扫描多个端口
#!/usr/bin/python
#该脚本使用UDP协议扫描多个目标主机端口
from scapy.all import *
import time
import sys
if len( sys.argv ) !=4:
print "Example: ./UDP_scan.py 1.1.1.1 50 150"
sys.exit()
ip=sys.argv[1] //目标主机IP
start=int(sys.argv[2]) //起始端口
end=int(sys.argv[3]) //终止端口
for port in range(start,end):
a=sr1(IP(dst=ip)/UDP(dport=port),timeout=1,verbose=0) //udp的探测命令
time.sleep(1) //防止因扫描过快,造成误判
if a==None: //响应包为空,则目标主机端口开放,打印该端口
print port
else:
pass
结果如下:
root@root:~# chmod +x UDP_scapy.py //赋予文件执行权限
root@root:~# ./UDP_scapy.py 192.168.247.129 1 100
53
88
Nmap
- nmap -sU 192.168.247.129 //-sU:使用UDP协议
- nmap -sU 192.168.247.129 -p 53
- nmap -iL iplist.txt -sU -p 1-200 //指定扫描地址列表
root@kali:~# nmap -sU 192.168.247.129 //如果没有使用-p 指定扫描端口,默认扫描1000个常用端口;如果没有回应目标端口不可达,则该端口开放;否则,则端口关闭
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-13 17:3