使用scapy做掃描器的一些技巧
有些時候nmap的掃描很嘈雜會觸發(fā)主機(jī)或者網(wǎng)絡(luò)的IPS警報。那么在進(jìn)行掃描的時候一個可行的選項(xiàng)是使用ARP Ping。下面讓我們來看下在一個C段下使用命令nmap -PR 192.168.0.0/24進(jìn)行ARP Ping掃描的時的數(shù)據(jù)包分布情況。
沒有很多ARP的數(shù)據(jù)包,對吧?當(dāng)namp進(jìn)行端口掃描時也是這樣。如果我們想進(jìn)行靜默掃描,我們可以利用默認(rèn)網(wǎng)關(guān)的一些功能,每時每刻向所有ARP表中所有存活的主機(jī)發(fā)送ARP請求。下面我們來看個例子:
同樣的,我們可以使用scapy發(fā)送相同的數(shù)據(jù)包,代碼如下:
我們當(dāng)前網(wǎng)絡(luò)上總共有6個存活主機(jī),但是只收到了2個應(yīng)答,哪里出錯了?原來我們發(fā)送的不是一個完整的ARP數(shù)據(jù)包。為了模仿網(wǎng)關(guān)發(fā)出的ARP數(shù)據(jù)包,我們先來回顧下ARP數(shù)據(jù)包頭部結(jié)構(gòu):
我們僅僅只設(shè)置了目標(biāo)地址而沒有設(shè)置其他所有的字段。那么我們需要設(shè)置哪些字段呢?
1.opcode:置為1(請求包)
2.hardware type:置為1(以太網(wǎng))
3.protocol type:置為0x0800(IP)
下面我們再來重新試下:
這種掃描還是相對比較安靜的,我們來看下數(shù)據(jù)包分布:
Scapy還是相當(dāng)強(qiáng)大的,如果你在滲透測試中有些特殊需要的功能,都可以像這里一樣使用相關(guān)庫自己動手寫一個小工具。