三層發現
優先:可路由,速度比較快
缺點:速度比二層慢,經常被邊界防火牆過濾
協議:IP、icmp (二層發現主要是利用arp協議)
1、ping
ping 192.168.1.1 -c 2
ping - R 192.168.1.1 / traceroute 192.168.1.1
ping 192.168.1.1 -c 1 | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1
2、scapy
3、nmap (同網段發arp包,不同網段發icmp包)
nmap -sn 192.168.1.1-254
4、fping
fping 192.168.1.1 -c 1
fping -g 192.168.1.1 192.168.1.2 (起始IP 結束IP)
fping -g 192.168.1.0/24
5、hping
幾乎能發送任意的Tcp/IP包,功能強大,但每次只能掃描一個IP
hping3 192.168.1.1 --icmp -c 2
四層發現--------(主要識別網絡中存活的主機,比三層識別更准確,基於端口)
優點:可路由且結果可靠,不太能被防火牆過濾,甚至可以發現所有端口都被過濾的主機
缺點:基於狀態過濾的防火牆可能過濾掃描,全端口掃描速度慢
協議:
TCP:
未經請求的ACK-------------RST
SYN-----------------SYN/ACK、RST
UDP:ICMP端口不可達,一去不復返
1、scapy----------目標IP存在則有 返回包,若目標IP不存在,則什么都不返回
構造TCP包
>>> i=IP()
>>> t=TCP()
>>> r=(i/t)
>>> r[IP].dst="192.168.1.20"
>>> r[TCP].flags="A"
>>> r.display()
成功后的截圖
不成功的截圖
2、nmap
nmap 192.168.1.1-254 -PU53 -sn------------------------U表示UDP端口
nmap 192.168.1.1-254 -PA80 -sn
nmap -iL iplist.txt 192.168.1.1-254 -PA80 -sn
3、hping3
hping3 --udp 192.168.1.1 -c 1
三、端口掃描
nmap
UDP端口
nmap -sU 192.168.1.0/24 / 192.168.1.1
nmap -sU -p1-65535 192.168.1.0/24
nmap -iL iplist.txt -sU -p1-65535
TCP掃描
隱蔽掃描
不建立完整鏈接----也就是不建立三次握手,應用日志不記錄掃描行為---------隱蔽
1、nmap -sS 192.168.1.10--------隱蔽掃描
2、hping3 192.168.1.1 --scan -----------隱蔽掃描
hping3 -c 10 -S --spoof 192.168.1.1 -p ++1 192.168.1.20
掃描10個端口 ,將源地址偽造成192.168.1.1 端口沒掃描一次+1 目標地址是192.168.1.20,掃描結果需要登陸192.168.1.1的主機上才能查看掃描結果
3、scapy
a=sr1(IP(dst="192.168.1.1")/TCP(flags="S" ,dport=22),timeout=1,verbose=0)


當flags = SA 時表示該IP端口是開放的
端口開放抓包顯示結果:

端口不存在抓包顯示的結果:(表示端口沒有開放,ip是存活的)
腳本
#!/usr/bin/python
import logging
logging.getlogger("scapy.runtime").setlevel(logging.ERROR)
from scapy.all import *
import sys
if len(sys.argv) != 4:
print "Usage - ./syn_scan.py [Target IP] [First port ] [last port]"
print "Example - ./syn_scan.py 10.10.10.10 1 100"
print "Example will TCP SYN sacn 1 through 100 on 10.10.10.10"
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)/TCP(dport=port),timeout=1,verbose=0)
if a == None:
pass
else:
if int(a[TCP].flags) == 18:
print port
else:
pass
18的原因是截圖如下:抓包看flags包在紅色框起來的部分置1,則表示端口存活

全鏈接掃描:建立完整的三次握手,和隱蔽掃描相反
nmap -sT 192.168.1.1 ----------------------全連接端口掃描
dmitry -p 192.168.1.1 ------------------------全鏈接端口掃描
nc -nv -w 1 -z 192.168.1.1 1-100
僵屍掃描
極度隱蔽、實施條件苛刻、可偽造源地址、選擇僵屍機(閑置系統、系統使用遞增的IPID)
1、scapy
2、nmap
nmap -p445 192.168.1.20 --script=ipidseq.nse ------找出僵屍機
顯示有如下信息,表示可以作為僵屍機

Host script results:
|_ipidseq: Incremental!
顯示如下,表示不可以作為僵屍機:
Host script results:
|_ipidseq: All zeros
nmap 1 192.168.1.1 -sI 192.168.1.20 -Pn -p0-100------ 用僵屍機掃描主機
sI(i是大寫)指定僵屍機的IP為192.168.1.20,目標主機的IP為192.168.1.1
四、服務掃描
識別開放端口上運行的應用,識別目標操作系統,提高攻擊效率
banner捕捉------------------准確率低,只能作為一種參考,不能作為確切的依據
服務識別
操作系統識別
SNMP分析
防火牆識別
1、banner服務掃描
可以識別到:
軟件開發商、軟件名稱、服務類型、版本號(直接發現已知的漏洞和弱點)
建立鏈接后直接獲取banner
nc -nv 192.168.1.20 22
python
>>> import socke
>>> banner=socket.socket(socket.AF_INET.socket.SOCK_STREAM)
>>> banner.connect("192.168.1.1",80)

root@kali:~# dmitry -pb 192.168.1.20
root@kali:~# nmap -sT 192.168.1.20 -p 80 --script=banner.nse
root@kali:~# amap -B 192.168.1.20 80
root@kali:~# amap 192.168.1.20 80 -qb

2、snmp服務掃描
簡單的網絡管理協議
community strings
信息查詢或或重新配置
識別和繞過防火牆篩選
工具:
onesixtyone 192.168.1.20 public
snmpwalk
五、操作系統識別
操作系統識別技術,種類繁多,好產品采用多種技術組合
TTL起始值
Windows:128(65----128)
Linux/Unix:64(1-64)
某些Unix:255
主動掃描
1、nmap 192.168.1.20 -O
2、xprabo2 192.168.1.20----------------結果不是很精確
被動掃描
p0f
六、SMB掃描
nmap 192.168.1.20 -p 80,135,139 --script=smb-os-discovery.nse

nmap -v -p139,445 --script=smb-check-vulns --script-args=unsafe=192.168.1.20
nbtscan -r 192.168.1.20---------兼容性較好

enum4linux -a 192.168.1.20
七、SMTP掃描(發現目標系統的郵件賬號)

八、防火牆掃描
通過檢測回包,可能識別端口是否經過防火牆過濾,設備多樣化,結果存在一定的誤差

nmap -sA 192.168.1.20

友情鏈接:
https://blog.csdn.net/weixin_34236869/article/details/92178652
