3
我一直在編寫一個簡單的嗅探器工具。我開始使用libpcap,但後來意識到跟蹤TCP流信息會很有用,所以我開始閱讀並嘗試使用libnids。使用libnids捕獲和組裝TCP流
這是一個很好的工具,但是如果它沒有見證某個流的TCP握手(SYN,SYN/ACK,ACK),它不會在其內部散列表中創建新記錄。因此,除非在握手之前啓動嗅探器,否則我將無法看到大量數據。文件有點欠缺。有誰知道是否有可能解決這個限制?
我一直在編寫一個簡單的嗅探器工具。我開始使用libpcap,但後來意識到跟蹤TCP流信息會很有用,所以我開始閱讀並嘗試使用libnids。使用libnids捕獲和組裝TCP流
這是一個很好的工具,但是如果它沒有見證某個流的TCP握手(SYN,SYN/ACK,ACK),它不會在其內部散列表中創建新記錄。因此,除非在握手之前啓動嗅探器,否則我將無法看到大量數據。文件有點欠缺。有誰知道是否有可能解決這個限制?
好的,所以經過一番深入的谷歌搜索後,我想我已經知道了,對於任何可能感興趣的人來說。
libnids被設計爲模擬Linux內核的網絡堆棧,因此從這個角度來看,它沒有意義爲沒有握手的流量創建表。唯一的解決方案是使用像tcpkill這樣的東西強制進行新的握手。
嗨Caleb,我使用pynids從pcaps和網絡流量抓取流。我遇到了pynids/libnids無法看到包含半開放流的pcap的tcp流的情況。我認爲這是固定在libnids 1.21,但顯然不是。 35 35 012 012 012 012請詳細說明如何在tcp回調從未被觸發的情況下觸發連接? – fimz 2011-05-10 22:39:31
嗨fimz,FYI我認爲堆棧溢出鼓勵提出一個新的問題,而不是這個。如果a。)TCP握手被證實,則TCP回調將僅被調用。b)數據是在您指定要在(a)中跟蹤的TCP連接發送的,或c。)您指定跟蹤的TCP連接已關閉在一個)。我發現你可以使用tcpkill來斷開你想讓libnids獲取的連接 - 所以如果你知道你想要殺死什麼連接,配置tcpkill來殺死它,並且連接應該重新握手,並且從那時起NIDS將會選擇它起來。我使用了dsniff – 2011-05-11 04:18:01
附帶的tcpkill,實際上,最新的libnids帶有一個非常好的補丁,可以讓您跟蹤未建立的TCP連接。你必須應用它並自己編譯它。我認爲這將是更好的解決方案 – 2011-05-11 04:19:44