2010-03-09 76 views
1

我必須編寫一個程序來嗅探網絡數據包(第1部分 - 簡單部分)。
而且我必須更新程序(part2),以便它能夠終止連接。
的具體要求是:注入數據包以終止TCP連接

通過指定包括適當的源和目的地MAC地址和IP地址的數據鏈路層和網絡層信息構建原始數據包。這些數據包旨在終止連接。爲此,您應該使用SOCK_RAW作爲套接字類型,以便能夠自行設置標頭信息。

有人可以給我第二部分的一些想法嗎?
我是否應該劫持會話,對其中一個用戶應用DoS攻擊?

我需要的是如何終止連接的一些提示。 我正在使用C編程語言,這是安全課程的課程分配。

回答

1

取決於您終止連接的含義。您可能意思是爲TCP電路或UDP流提供端點。

或者您可能意味着在TCP流的中間發送可接受的RST以指示流的結束。爲了達到這個目的,你必須知道另一方期望的序列號。

無論哪種方式,顯然你沒有在課堂上留意。看起來,整個任務的目的是讓你明白IP數據包和TCP/UDP的原始佈局。我建議你購買關於這個主題的教科書(無疑由你的講師推薦)和/或閱讀維基百科。

+0

實際上我無法在作業發佈的那天上課,因此我不能100%滿足要求。 無論如何,我讀了abt RST,我想我將能夠實現這樣的事情:) 你有任何其他的想法?是否有可能DOS的一個用戶打開他的一個端口(所以我可以關閉端口?) 我可以發送一個FIN數據包給其中一個用戶嗎? – scatman 2010-03-09 09:04:46

+0

是的,你可以DOS,是的,你可以發送FIN數據包,實際上你可以發送你想要的任何數據包。信息在互聯網上,似乎在你的大學裏。所以如果你選擇不上課或者在你自己的時間內發現基本的網絡概念,那麼你當然不能解決這個問題。我不會爲你解決它! – 2010-03-09 14:21:54

1

對於這項任務,我會使用pypacp,這是一個python數據包捕獲和注入庫。 Pypcap使用原始套接字來僞造數據包。如果由於某種奇怪的原因你被迫使用C,那麼這個項目將變得更加困難。在這種情況下,您應該使用libpcap來嗅探該行,並且原始套接字庫將取決於您開發的平臺。

您可以嗅探尋找TCP序列標識的行。基於這個ID你可以僞造一個RST或FIN來打破連接的一端。硬件部分將嘗試使用原始套接字維護TCP連接。要維護應用層連接幾乎是不可能的,HTTP將是一個更容易維護的協議,但如果它是http,那麼只需劫持cookie即可。

0

我不能幫你用C庫 - 不是我的特長,但它似乎應該有一些東西在那裏。

但似乎你在第2部分中要做的是防止DOS,而不是導致一個!

入住這裏:

http://en.wikipedia.org/wiki/Denial-of-service_attack

對DoS攻擊的東西。正如PP所說,有很多與連接濫用有關的攻擊,所以你想知道你的assigment是哪一個 - 你需要與你的教授覈對一下。例如,上面的Wiki頁面提到SYN Floods - 但幾乎所有面向連接的協議都會面臨充滿連接請求的連接池的攻擊風險,然後永遠不會關閉它們。

我認爲,閱讀作業,你的工作是弄清楚如何通過關閉攻擊者打開的連接來解決這個問題。這意味着你們都必須弄清楚攻擊是如何工作的,然後找出如何從中恢復。

提示:通過大量的緊密連接請求來訪問服務器不是一種攻擊。這也沒什麼用,因爲你不一定要關閉已經打開的連接。但是損害是由開放連接請求造成的。在這裏看到:

http://en.wikipedia.org/wiki/SYN_flood

舉一個例子。

0

您可以使用libpcap來幫助進行數據包嗅探。 libpcap由tcpdump團隊開發。