使用scapy做掃描器的一些技巧
有些時(shí)候nmap的掃描很嘈雜會(huì)觸發(fā)主機(jī)或者網(wǎng)絡(luò)的IPS警報(bào)。那么在進(jìn)行掃描的時(shí)候一個(gè)可行的選項(xiàng)是使用ARP Ping。下面讓我們來看下在一個(gè)C段下使用命令nmap -PR 192.168.0.0/24進(jìn)行ARP Ping掃描的時(shí)的數(shù)據(jù)包分布情況。
沒有很多ARP的數(shù)據(jù)包,對(duì)吧?當(dāng)namp進(jìn)行端口掃描時(shí)也是這樣。如果我們想進(jìn)行靜默掃描,我們可以利用默認(rèn)網(wǎng)關(guān)的一些功能,每時(shí)每刻向所有ARP表中所有存活的主機(jī)發(fā)送ARP請(qǐng)求。下面我們來看個(gè)例子:
同樣的,我們可以使用scapy發(fā)送相同的數(shù)據(jù)包,代碼如下:
我們當(dāng)前網(wǎng)絡(luò)上總共有6個(gè)存活主機(jī),但是只收到了2個(gè)應(yīng)答,哪里出錯(cuò)了?原來我們發(fā)送的不是一個(gè)完整的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(請(qǐng)求包)
2.hardware type:置為1(以太網(wǎng))
3.protocol type:置為0x0800(IP)
下面我們?cè)賮碇匦略囅拢?/p>
這種掃描還是相對(duì)比較安靜的,我們來看下數(shù)據(jù)包分布:
Scapy還是相當(dāng)強(qiáng)大的,如果你在滲透測(cè)試中有些特殊需要的功能,都可以像這里一樣使用相關(guān)庫(kù)自己動(dòng)手寫一個(gè)小工具。