Scapy 是一種用于計算機網絡的數據包處理工具,采用Python編寫,可以偽造或解碼數據包,通過網絡發送它們,捕獲它們,并匹配請求和響應。它還可以用于處理掃描、跟蹤路由、探測、單元測試、攻擊和網絡發現等任務。
Scapy 是一種用于計算機網絡的數據包處理工具,由 Philippe Biondi 用 Python 編寫。它可以偽造或解碼數據包,通過網絡發送它們,捕獲它們,并匹配請求和響應。它還可以用于處理掃描、跟蹤路由、探測、單元測試、攻擊和網絡發現等任務。
Scapy 為 libpcap(Windows 上是 WinPCap/Npcap)提供了一個 Python 接口,與 Wireshark 提供視圖和捕獲 GUI 的方式類似。它可以與許多其他程序接口來提供可視化,包括用于解碼數據包的 Wireshark、用于提供圖形的 GnuPlot、用于可視化的 graphviz 或 VPython 等。
Scapy 自 2018 年起開始支持 Python 3(Scapy 2.4.0+)。
Kamene 是 Scapy 的一個獨立分支。最初,創建它的目的是向 Scapy 添加 Python 3 的支持,并將其命名為 scapy3k。自 2018 年更名為 Kamene,繼續獨立發展。
Scapy 是一個可以讓用戶發送、偵聽和解析并偽裝網絡報文的 Python 程序。這些功能可以用于制作偵測、掃描和攻擊網絡的工具。
換言之,Scapy 是一個強大的操縱報文的交互程序。它可以偽造或者解析多種協議的報文,還具有發送、捕獲、匹配請求和響應這些報文以及更多的功能。Scapy 可以輕松地做到像掃描(scanning)、路由跟蹤(tracerouting)、探測(probing)、單元測試(unit tests)、攻擊(attacks)和發現網絡(network discorvery)這樣的傳統任務。它可以代替 hping,arpspoof,arp-sk,arping,p0f 甚至是部分的 Namp,tcpdump 和 tshark 的功能。
Scapy 在大多數其它工具無法完成的特定任務中也表現優異,比如發送無效幀、添加自定義的 802.11 的偵、多技術的結合(跳躍攻擊(VLAN hopping)+ARP 緩存中毒(ARP cache poisoning)、在 WEP 加密信道(WEP encrypted channel)上的 VOIP 解碼(VOIP decoding))等等等等。
理念非常簡單。Scapy 主要做兩件事:發送報文和接收回應。您定義一系列的報文,它發送這些報文,收到回應,將收到的回應和請求匹配,返回一個存放著(request, answer)即(請求, 回應)的報文對(packet couples)的列表(list)和一個沒有匹配的報文的列表(list)。這樣對于像 Nmap 和 hping 這樣的工具有一個巨大的優勢:回應沒有被減少 (open/closed/filtered)而是完整的報文。
在這之上可以建立更多的高級功能,比如您可以跟蹤路由(traceroutes)并得到一個只有請求的起始 TTL 和回應的源 IP 的結果,您也可以 ping 整個網絡并得到匹配的回復的列表,您還可以掃描商品并得到一個 LATEX 報表。
第一,對于其它的大多數網絡工具來說,您無法制作一些作者無法想到的東西。這些工具已經被一個特定的目標所局限和固定,因此無法和這個目標有大的偏離。比如,一個 ARP 緩存中毒程序不會讓您使用 double 802.1q 包裹內容,同樣無法找到一個程序可以發送填充(padding)的 ICMP 報文(是填充(padding),不是負載(payload))。事實上,每次有新需求時,您必需重新建立一個新的工具。
第二,這些工具經?;煜獯a(decoding)和解釋(interpreting)。機器擅長解碼并能幫助人類完成這個工作。解釋應該留給人類。一些程序試圖模擬這個行為。比如它們說“這個端口是打開的”而不是說“我收到一個 SYN-ACK“.有時它們是對的,但有時不是。這樣做對于初學者來說更容易,但是當您知道您正在做什么,您將繼續試圖推從程序的解釋中測實際上發生了什么來制作自己的工具,但是這相當困難,因為大量的信息已經丟失。因此最終常常是您使用 tcpdump -xX 來解碼和解釋這些工具丟掉的內容。
第三,即使是那些只管解碼的程序也沒有把它們收到的所有的信息交給您。它們給您展示的網絡信息只是其作者認為足夠的信息。但是這些并不完整,對您來說是偏頗的。比如,您知道有什么工具可以得到以太幀填充的報文嗎(reports the Ethernet padding)?
事實上,每次運行本程序,更像是建造一個新的工具,不是處理上百行的 C 程序代碼,您使用 Scapy 只需寫幾行代碼。
在探測(probe)(或者掃描(scan)、路由跟蹤(traceroute)等等)之后,Scapy 總是在任何的解釋之前把探測到的所有的包解碼后給您。這意味著您可以探測一次而解釋很多次,也可以使用路由跟蹤并查看報文填充內容。
其它的工具堅持命令行運行的模式,這導致描述一個報文需要糟糕的語法。對于這些工具,解決的方法是在其作者想像的情景下,采用一種更高層但是功能更弱的描述方法。舉例來說,在端口掃描的情景中,端口掃描器必須的參數只有 IP 地址。即使情景有所改變,情況依然如此(Even if the scenario is tweaked a bit, you still are stuck to a port scan)。
Scapy 的原則是推薦使用一種特定領域語言(Domain Specific Language (DSL))以達到對于任何種類報文的功能強大并快速的描述。使用 Python 語法和 Python 解釋器作為特定領域語言(DSL)的語法和解釋器有許多優勢:沒有必要寫一個單獨的解釋器,用戶不需要再學一種新語言并可以從這個完整、簡約且非常強大的語言中受益。
Scapy 允許用戶將一個或一系列報文描述成為一個個堆起來的層(layer)。每層的數據域有有用的且可重載的默認值。Scapy 不強制用戶使用預先定義的方法和模板。這樣每次碰到不同的情景時寫新工具的需要得到了減少。在 C 語言中,描述一個報文可能平均要用 60 行代碼。使用 Scapy,發送的報文可能僅需一行代碼描述再加一行打印結果的代碼。90%的網絡探測工具可以使用 Scapy 使用 2 行代碼重新實現。
網絡的發現是一個黑盒測試。當探測一個網絡時,許多偵測報文(stimuli)發送然而它們當中只有少數能夠被回應。如果選擇了正確的偵測報文,希望得到的信息可以通過回應的報文或者是沒有回應的情況來獲得。不像很多其它的工具,Scapy 得到所有的信息,也就是說,所有的發送的偵測報文和所有收到的回應。通過檢查這些數據用戶可以得到想要的信息。當數據量較小時,用戶可以直接查看數據。在其它情況下,對于數據的解釋將依賴于關注點的不同。多數工具選擇展示關注點內容而忽略和關注點無關的內容。由于 Scapy 給出完整的原始數據,因此這些數據可以多次使用從而允許關注點在分析過程中發生變化。比如,可能探測一個 TCP 端口掃描而關注(展示)端口掃描的結果。同時也可以查看回應報文的 TTL 方面的內容。一個新的探測并不需要再來一次,而只是在已有的數據中改一下關注點即可。
網絡探測工具所共有的一個問題是它們都試圖解釋收到的回應而非僅僅解碼并給出結果。報告一些類似于在 80 端口收到一個 TCP Reset 報文這樣的消息不屬于解釋錯誤。報告 80 端口關閉在多數情況下是正確的,但是在某些特定的工具的作者沒有想到的上下文中是錯誤的。比如,一些掃描器在收到一個目的地址不可達的 ICMP 報文后傾向于報告一個過濾 TCP 端口。這可能是正確的,但是在某些情況下,這表明報文被防火墻過濾掉而找不到報文的非目的主機。
解釋結果可以幫助那些不知道什么是端口掃描的用戶,但是弊大于利,因為這對于結果是一種主觀的解釋??赡艿慕Y果就是它們可以自己解釋,知識豐富的用戶將試圖反向還原這個工具的解釋以得到引起這個解釋的真正原因。不幸的是,在這個過程中有大量的信息丟失。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
大學生就讀期間(已滿18周歲)依然依賴父母,這樣對嗎?沒有大學畢業,有幾個人不依賴父母。即使他們想養活自己,他們也沒有時間。從理論上講,18歲已經是成年人,不應該再依賴父母了。然而,讓父母感到遺憾的是,他們的孩子不想靠父母生活,父母還要照顧他們。因為他們知道,只要他們在那里,孩子就永遠不會長大。董青島供稿。域名??磕睦锉容^好?最好在阿里云對接域名。阿里云是一個大平臺。在上面加上域名是很安全的。而且...
國內有哪些股票跟巴菲特的投資理念相似?石油,比亞迪,巴菲特都買過巴菲特的股票,但是他沒動。為什么他在股市大跌的時候買了港股中石油,然后大漲之后又賣了?巴菲特概念是什么意思?概念股指數巴菲特根據自己的計算和推測購買的股票。雖然短期內收益無法顯現,但長期來看是有效的。巴菲特對比亞迪的投資似乎打破了他的第一條投資戒律:永遠不要投資你不了解其業務的公司。即使從1999年到2000年,網絡泡沫最嚴重的時候,...
冰糖葫蘆廣場舞原唱?馮曉泉?!侗呛J》是一首由張和平和杜鵬作詞,馮曉泉作曲,馮曉泉演唱的歌曲,于1995年1月1日發行。包括在專輯《龍鳳金歌榜VOL.9》中。歌詞:都說糖葫蘆是酸的,酸中包裹著甜。都說糖葫蘆是甜的,但是表現出來的是里面的酸。糖葫蘆可以和竹簽一起穿,象征幸福和團圓,把幸福和團圓聯系在一起,沒有煩惱和煩惱。如果你站得高,你會看得遠。如果你面對蒼山的召喚,你會怒而心寬,你會年輕二十歲。...