title: 端口掃描-UDP
date: 2016-05-13 12:10
tags: kali滲透測試 主動信息收集
0x00 前言
當我們發現到存活的IP以后,那么下一步就是針對特定的主機進行端口掃描了,因為端口對應的是網絡服務及其應用段的程序,端口潘多拉魔盒的入口,一旦發現開放的端口,便能以此作為后續滲透的跳板,這是完成一個完美滲透的一個重要的里程碑。
0x01 UDP端口掃描
UDP端口掃描可以得到兩種結果,端口開了,端口沒開(廢話-.-),但是主機是活的,我們也不會死的主機進行端口掃描。
假設ICMP 返回port-unreachable 響應代表端口關閉,但是如果目標系統不響應ICMP port-unreachable時,可能產生誤判,而且完整的UPD應用層請求雖然準確性高,但是耗時巨大!
了解每一種UDP的應用層協議,構成出專門對這一應用的的數據包,然后用該數據包進行掃描,將會大大得到提高!
Scapy UDP Scan
直接上腳本代碼了:
#!/usr/bin/python
import logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
import time
if len(sys.argv) != 4:
#腳本本身 ip start-port end-port
print "Usage - ./udp_port.py [Target - TP] [First port] [Last port]"
#指定起始端口和結束端口
print "Usage - ./udp-port.py 128.13.34.13 1 100"
sys.exit()
ip = sys.argv[1]
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=5,verbose=0)
#udp探測命令
time.sleep(1)
#sleep一秒,等待sr1發送完成,避免網絡中的延遲誤判!
if a == None:
#None意味著沒有收到響應,代表端口是開放的
print port
else:
#如果得到了回應,那么一定是port-unreachable回應,代表端口沒開放
pass
0x02 nmap 端掃描
- { Usage $: nmap -SU ip }
對特定ip端口掃描,如果不指定端口的話,namp默認會對1000常用端口進行掃描,即使是nmap如果是基于UDP的掃描話,也只是利用了UDP端口不可達的這一個特征信息!
root@jack:~/scripts/端口掃描# nmap -sU 192.168.0.1
Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-13 10:37 CST
Nmap scan report for 192.168.0.1
Host is up (0.0036s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
53/udp open domain
67/udp open|filtered dhcps
123/udp open|filtered ntp
1026/udp open|filtered win-rpc
1027/udp open|filtered unknown
1900/udp open|filtered upnp
- { Usage $: nmap -sU 192.168.0.1 -p53} 掃描指定端口
root@jack:~/scripts/端口掃描# nmap -sU 192.168.0.1 -p53
Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-13 10:40 CST
Nmap scan report for 192.168.0.1
Host is up (0.0015s latency).
PORT STATE SERVICE
53/udp open domain
- { Usaeg $: namp -iL iplist.txt -sU -p 1-20000 } 從文件獲得IP地址信息,進行批量掃描