是否有一種自動方式(無論是在tcpdump還是通過一個輔助應用程序在那裏)來生成一個pcap文件,其中只包含以太網,IP和第4層(在我的情況下是TCP)頭,以便沒有有效載荷/應用程序數據在生成的PCAP?我發現由於標頭大小經常不同,因此選擇不會捕獲任何有效負載數據的捕獲大小是不可能的。從tcpdump剝離有效載荷?
6
A
回答
9
你可以用Python的scapy
模塊很容易剝離出TCP有效載荷
前
[[email protected] tshark_wd]$ tcpdump -n -r sample.pcap
reading from file sample.pcap, link-type EN10MB (Ethernet)
00:25:42.443559 IP 192.168.12.237.1052 > 192.168.12.236.22: Flags [P.],
seq 2445372969:2445373021, ack 1889447842, win 63432, length 52
00:25:42.443607 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [.],
ack 52, win 65535, length 0
00:25:42.443980 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [P.],
seq 1:389, ack 52, win 65535, length 388
有效載荷溶出
在Linux上運行此爲根...
#!/usr/bin/env python
from scapy.all import *
INFILE = 'sample.pcap'
OUTFILE = 'stripped.pcap'
paks = rdpcap(INFILE)
for pak in paks:
pak[TCP].remove_payload()
wrpcap(OUTFILE, paks)
後
[[email protected] tshark_wd]$ tcpdump -n -r stripped.pcap
reading from file sample.pcap, link-type EN10MB (Ethernet)
00:25:42.443559 IP truncated-ip - 52 bytes missing! 192.168.12.237.1052
> 192.168.12.236.22: Flags [P.], seq 2445372969:2445373021,
ack 1889447842, win 63432, length 52
00:25:42.443607 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [.],
ack 52, win 65535, length 0
00:25:42.443980 IP truncated-ip - 388 bytes missing! 192.168.12.236.22
> 192.168.12.237.1052: Flags [P.], seq 1:389,
ack 52, win 65535, length 388
在tcpdump
以上,請注意 「XX字節失蹤了!」消息。這是因爲我們已經刪除了TCP有效負載。
0
如果簡單截斷會爲你工作,你可以使用:
tcpdump -i eth0 -s 96 -w test1.pcap
以後你可以使用Wireshark分析它。
-2
我的解決方案如下。我很想聽聽其他人如何在沒有外部庫或截斷的情況下做到這一點。我很想聽聽其他人如何執行此操作,因爲我無法在Scapy文檔中找到remove_payload()函數,從而使此答案無法使用。
#read pcap file
pkts = rdpcap("packet-capture.pcap")
#write packet with payload "XXXXXXXXXX"
for pkt in pkts:
pkt.load = "XXXXXXXXXX"
#write new pcap
wrpcap("new.pcap", pkts)
這裏的問題是,當使用tcpdump讀取,它留下了字節失蹤了!爲src IP。我可以通過
pkts[_packet_num].load
有沒有辦法重新生成整個拍攝,所以它看起來就好像它是不變的驗證infromation仍存在使用Scapy的?
+0
這聽起來更像是另一個問題,而不是答案。也許考慮[問](http://stackoverflow.com/questions/ask)另一個。 – adamdunson
相關問題
- 1. TCPDump/libpcap - 找到有效載荷數據的內存位置
- 2. 在tcpdump或pcap中加密的有效載荷
- 3. 獲取從有效載荷
- 4. 從JSON有效載荷
- 5. Laravel:有效載荷無效
- 6. Android gcm通知有效載荷與數據有效載荷?
- 7. 什麼是「有效載荷」?例如,XML有效載荷
- 8. JWT從node.js更新有效載荷
- 9. 需要從有效載荷在MSMQ
- 10. Mule-如何從有效載荷
- 11. 接收有效載荷
- 12. 什麼是有效載荷?
- 13. 的部分有效載荷
- 14. JSON有效載荷webwrite
- 15. 替代Astoria有效載荷?
- 16. HttpClient,httppost和有效載荷
- 17. 剝離從CALS
- 18. Laravel DecryptException - 有效載荷是無效
- 19. 無效的有效載荷選擇
- 20. 騾 - 你如何清除有效載荷/將有效載荷設置爲空?
- 21. 剝離從列表
- 22. appengine任務有效載荷有多大?
- 23. 爲每個內部添加多個有效載荷並提供具有所有有效載荷的最終有效載荷
- 24. Route 53從所有網址剝離WWW
- 25. Lucene中的有效載荷性能
- 26. Asp.Net Web服務數據有效載荷
- 27. Solr獲得分數與有效載荷
- 28. 如何打印NaN的有效載荷?
- 29. facebook明信片和有效載荷
- 30. MDM命令和有效載荷
不幸的是,由於TCP選項字段,OP是正確的,沒有辦法可靠地預測TCP報頭的長度。大部分情況下,這是IP/TCP報頭中唯一具有長度不同的機會的部分。固定的snaplen值並不能保證您總是在正確的位置截斷TCP有效負載。 –