我正在寫一個程序,它使用libpcap嗅探流量,只取出數據包來修改並使用原始套接字重新注入網絡。我知道,對於無線網卡的正常promiscous模式操作,您不能假定能夠與網絡進行交互,但可以使用原始套接字進行操作嗎?是否可以在promiscous模式下嗅探時插入原始套接字?
0
A
回答
1
簡短的回答是肯定的。下面是一個較長...
我知道,對於一個無線網卡的正常混雜模式運行,你不要以爲能夠與網絡
互動,我不知道你在哪裏得到了這些知識,但上述說法是錯誤的。混雜模式並不限制您可以做什麼以及如何與網絡互動。默認情況下,網絡接口卡只是試圖減少傳遞給主機的數據量,以提高效率。例如,如果NIC的目標MAC地址與接收媒體訪問控制器的地址不匹配,NIC就不會將以太網幀傳遞給主機。混雜模式所做的唯一事情就是告訴設備將其獲得的所有內容都傳遞給主機,無論是否爲主機尋址。換句話說,無論您在正常操作模式下使用網卡,您都可以在混雜模式下進行操作。此外,網卡不再爲您過濾任何東西,因此您可以接收更多(只要主機可以處理負載)。
但是有可能用原始套接字來做到這一點嗎?
是的,這是可能的。只要您有足夠的權限,您就可以使用「原始」套接字API從用戶空間發送和接收以太網幀。設備是否處於混雜模式並沒有什麼區別。
還要注意,現在路由器非常智能,即使將主機的NIC置於混雜模式,它們也不會將數據包轉發到主機。因此,在正確的網絡中,您不可能收到任何實際上不適用於您的主機的內容,混雜模式也不會有任何改變。
如果有幫助,here是一個簡單的例子,用於通過以太網與PC連接的FPGA板交換自定義數據包。它使用原始套接字API並在Linux上的用戶空間中運行。
相關問題
- 1. 原始套接字混雜模式不嗅探我寫什麼
- 2. Python原始套接字(Windows)中:嗅探以太網幀
- 3. 如何爲VLAN嗅探初始化原始套接字
- 4. 嗅探原始套接字的802.3 eth數據包
- 5. 原始套接字python數據包嗅探器
- 6. 使用原始套接字的python數據包嗅探器
- 7. Golang的原始插座嗅探
- 8. 在Linux中使用原始套接字進行數據包嗅探C
- 9. 在混雜模式下嗅探
- 10. 我可以使用原始套接字攔截網絡數據包嗎(不僅是嗅探)?
- 11. 藍牙「嗅探模式」
- 12. 在linux上嗅探以太網接口
- 13. 是否有可能使用Twisted(Python)的原始套接字
- 14. 其他EC2用戶是否可以嗅探我的流量?
- 15. 可以嗅探odbcconnection上的連接字符串嗎?
- 16. 是否有可能「嗅探」字符編碼?
- 17. 是否可以在DynamoDB中插入嵌套字段?
- 18. PHP代碼嗅探器排除模式
- 19. Windows 7:嗅探到本地主機的TCP套接字
- 20. 如何使用RAW套接字嗅探所有ICMP數據包
- 21. 如何使用python套接字來嗅探ICMP和TCP請求
- 22. BSD/Posix套接字是否可重入?
- 23. recv與原始套接字
- 24. 使用原始套接字
- 25. UDP - 原始套接字 - C#
- 26. Lua:原始套接字
- 27. 內聯模式下的低嗅探性能和外包類型
- 28. 在嗅探交通
- 29. 是否可以在Twisted上的套接字上設置超時?
- 30. 是否可以在不定義模式的情況下插入表變量?
謝謝,這實際上是一個程序,將在無線網絡或類似環境的任何集線器上實施。所以我並不擔心這是一個問題。 –