kali linux端口和服務掃描
端口掃描
端口對應網絡服務及應用端程序
服務端程序的漏洞通過端口攻入
發現開放的端口
更具體的***面
udp端口掃描
如果目標系統不響應icmp就可能產生誤判
完整的udp掃描,準確性高,耗時巨大
端口關閉:端口不可達
端口開放:沒有回包
瞭解每一種基於udp應用層包結構很有幫助
與三層相同的技術
誤判
scapy
sr1(IP(dst="1.1.1.1")/UDP(dport=53),timeout=1,verbose=1)
./udp_scan.py 1.1.1.1 100
nmap
nmap -sU 192.168.1.104
其中有默認的1000個端口
nmap -sU 192.168.1.104 -p53(指定端口)
nmap -sU 192.168.1.104 -p-(1-65535)
nmap -iL iplist.txt -sU -p 1-200
tcp端口掃描
基於鏈接的協議
三次握手
隱蔽掃描
殭屍掃描(比隱蔽掃描更隱蔽,不和目標直接聯繫)
全鏈接掃描
所有的TCP掃描方式都是基於三次握手的變化,來判斷端口的狀態
隱蔽掃描----syn
不建立完整連接
應用日誌不記錄掃描行爲
殭屍掃描
極度隱蔽
實施條件苛刻
可僞造源地址
選擇殭屍機,閒置系統,系統使用遞增的IPID(0,隨機,這些都不行)
隱蔽端口掃描
Syn----syn/ack-----rst
scapy
1.a=sr1(IP(dst="192.168.1.110")/TCP(flags="S"),timeout=1,verbose=1)
or:a=sr1(IP(dst="192.168.1.110")/TCP(flags="S",dport=22),timeout=1,verbose=1)
2../syn_scan.py(腳本運行命令)
nmap(強大的掃描工具)
nmap -sS 1.1.1.1 -p1-100 --open
nmap -sS 1.1.1.1 -p 1-65535 --open
nmap -sS -iL iplist.txt -p 80,22,23,21
nmap -sS 1.1.1.1 -p- --open
hping3
hping3 1.1.1.1 --scan 80 -S (發syn包)
hping3 1.1.1.1 --scan 80,21,25,443 -S
hping3 1.1.1.1 --scan 0-65535 -S
hping3 -c 10 -S -spoof 1.1.1.2 -p ++1 1.1.1.3 (-c 10 -S 表示發10個syn包,地址欺騙將1.1.1.1的地址改爲1.1.1.2,目標爲1.1.1.3,-p ++1和前面的10表示每次端口+1從1-10掃描這十個端口,這樣必須要登陸1.1.1.2這臺電腦抓包才能看到掃描結果)
全連接端口掃描(不隱蔽,可在過濾嚴格的條件下掃描)
scapy
syn掃描不需要raw packets
內核認爲syn/ack是非法包,直接發rst中斷連接
全連接掃描對scapy比較困難
a=sr1(IP(dst="192.168.1.110")/TCP(dport=22,flags="S"))
namp
nmap -sT 1.1.1.1 -p 80
nmap -sT 1.1.1.1 -p 80,21,25
nmap -sT 1.1.1.1 -p 80-2000
nmap -sT -iL iplist.txt -p 80
默認1000個常用端口
dmitry
功能簡單但使用簡便
默認150個最常用的端口
dmitry -p 192.168.1.110
dmitry -p 192.168.1.110 -o output
nc
nc -nv -w 1 -z 192.168.1.110 1-100(定義超時時間爲1秒,-z表示掃描)
for x in $(seq 20 30);do nc -nv
for x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.$x 80;done
殭屍掃描:閒置機不用完全限制,只要沒有三層的IP通信就可以。
xp之前的電腦符合要求,現在的操作系統不行。
scapy----zonbie.py
只有scapy和nmap支持殭屍掃描
1.i=IP()
2.t=TCP()
3.rz=(i/t) (向殭屍機發的數據包)
4.rt=(i/t) (向目標機發的數據包)
5.rz[IP].dst="殭屍機地址"
6.rz[TCP].dport=445 (殭屍機開放的端口)
7.rz[TCP].flags="SA" (syn+ack包)
8.rt[IP].src="殭屍機地址"
9.rt[IP].dst="目標機地址"
10.rt[TCP].dport=25 (目標機要掃描的端口)
11.rt[TCP].flags="S"
12.az1=sr1(rz)
13.ar=sr1(rt,timeout=1)
14.az2=sr1(rz)
15.az1 (顯示包)
16.az2 (比較ipid 如果加了2表示開啓如果加了1表示沒有開啓)
nmap
發現殭屍機
nmap -p445 1.1.1.1 --script=ipidseq.nse
掃描目標
nmap 本機ip -sI 殭屍ip -Pn -p 0-100
服務掃描
識別端口上運行的應用
識別目標操作系統
提高***效率
banner捕獲
服務識別 (識別軟件版本,找漏洞進行針對性***)
操作系統識別 (操作系統自帶服務也有可能有漏洞)
snmp分析
防火牆識別
banner信息
軟件開發商
軟件名稱
服務類型
版本號
直接發現已知的漏洞和弱點
鏈接建立後直接獲取banner
另類服務識別方法
特徵行爲和響應字段
不同的響應可用於識別底層操作系統
snmp
簡單網絡管理協議
community strings (身份認證信息)
信息查詢或重新配置
識別和繞過防火牆篩選
服務掃描----banner
nc
1.nc-nv 1.1.1.1 22 (22是端口號可以識別ssh的一些信息)
2.get /
python socket
socket模塊用於網絡連接服務
1.python
2.import socket
3.banner=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
4.banner.connect(("192.168.1.110",21))
5.banner.recv(4096) (接收數據,指定數據大小爲4096)
6.banner.close()
7.exit()
banner如果不允許抓取,recv函數無返回將掛起。需要通過腳本來運行
dmitry
dmitry -p 192.168.1.110
dmitry -pb 192.168.1.110
nmap
nmap -sT 1.1.1.1 -p 22 --script=banner
nmap -sT 1.1.1.1 -p1-100 --script=banner.nse
amap
amap -B 192.168.1.110 21
amap -B 192.168.1.110 1-65535
amap -B 192.168.1.110 1-65535 | grep on
服務掃描----服務識別
banner信息抓取能力有限
nmap相應特徵分析識別服務
發送系列複雜的探測
根據相應特徵signature
nc -nv 1.1.1.1 80
nmap 1.1.1.1 -p 80 -sV (經常用到,準確度高)
amap
amap 192.168.1.110 80
amap 192.168.1.110 1-100 (-q)加上-q讓信息更整齊
amap 192.168.1.110 1-100 -qb 信息更詳細
今天本來還想學一個新漏洞呢,但是學了一半時間不夠了,只能等到明天了。