tfn2k使用方法和對策(3)
發(fā)布日期:2021-12-24 00:20 | 文章來源:源碼之家
tfn2k使用方法和對策(3) 作者:佳佳 本來想再分兩次寫完本文,后來發(fā)現(xiàn)佳佳要翻譯的兩篇文章 http://packetstorm.securify.com/distributed/TFN2k_Analysis-1.3.txt http://packetstorm.securify.com/distributed/tfn.analysis.txt backend已經(jīng)翻譯過(本文最后給出了鏈接),佳佳就不做太多重復勞動了。 先介紹一下DDoS攻擊的原理: DDoS把DoS又向前發(fā)展了一步,DDoS的行為更為自動化,它可以方便地協(xié)調從多臺計算機上啟動的進程,讓一股DoS洪流沖擊網(wǎng)絡,并使網(wǎng)絡因過載而崩潰。確切地講,DDoS攻擊是指在不同的高帶寬主機上安裝大量的DoS服務程序,它們等待來自中央客戶端的命令,中央客戶端隨后通知全體受控服務程序,并批示它們對一個特定目標發(fā)送盡可能多的網(wǎng)絡訪問請求?! ? 對DoS而言,其攻擊方式很多,主要使用的攻擊有4種,分別是TCP-SYN flood,UDP flood,ICMP flood,smurf?!?TCP--- 當用戶進行一次標準的TCP連接時,會有一個3次握手過程。首先是請求服務方發(fā)送一個SYN消息,服務方收到SYN后,會向請求方回送一個SYN-ACK表示確認,當請求方收到SYN-ACK后,再次向服務方發(fā)送一個ACK消息,這樣,一次TCP連接建立成功。但是TCP-SYN flood在實現(xiàn)過程中只進行前2個步驟:當服務方收到請求方的SYN-ACK確認消息后,請求方由于采用源地址欺騙等手段使得服務方收不到ACK回應,于是,服務方會在一定時間處于等待接收請求方ACK消息的狀態(tài)。對于某臺服務器來說,可用的TCP連接是有限的,如果惡意攻擊方快速連續(xù)地發(fā)送此類連接請求,該服務器可用的TCP連接隊列將很快被阻塞,系統(tǒng)可用資源急劇減少,網(wǎng)絡可用帶寬迅速縮小,長此下去,網(wǎng)絡將無法向用戶提供正常的服務?!?UDP---- 由于UDP(用戶數(shù)據(jù)包協(xié)議)在網(wǎng)絡中的應用比較廣泛,基于UDP攻擊種類也較多。如今在Internet上提供WWW和Mail等服務設備通常是使用Unix的服務器,它們默認一些被惡意利用的UDP服務,如echo和chargen服務,它會顯示接收到的每一個數(shù)據(jù)包,而原本作為測試功能的chargen服務會在收到每一個數(shù)據(jù)包時隨機反饋一些字符,如果惡意攻擊者將這2個UDP服務互指,則網(wǎng)絡可用帶寬將很快耗盡?!?ICMP----由于在早期的階段,路由器對包的最大尺寸都有限制,許多操作系統(tǒng)對TCP/IP棧的實現(xiàn)在ICMP包上都是規(guī)定64KB,并且在對包的標題頭進行讀取之后,要根據(jù)該標題頭里包含的信息來為有效載荷生成緩沖區(qū),當產生畸形的,聲稱自己的尺寸超過ICMP上限的包也就是加載的尺寸超過64K上限時,就會出現(xiàn)內存分配錯誤,導致TCP/IP堆棧崩潰,致使接受方當機。如果對方的操作系統(tǒng)已經(jīng)可以防御堆棧崩潰,也占去許多帶寬。 Smurf----一個簡單的smurf攻擊通過使用將回復地址設置成受害網(wǎng)絡的廣播地址的ICMP應答請求(ping)數(shù)據(jù)包來淹沒受害主機的方式進行,最終導致該網(wǎng)絡的所有主機都對此ICMP應答請求作出答復,導致網(wǎng)絡阻塞,比ping of death洪水的流量高出一或兩個數(shù)量級。更加復雜的Smurf將源地址改為第三方的受害者,最終導致第三方雪崩。 tfn2k的程序及分析: 在你執(zhí)行 $tar zxvf tfn2k.tgz 以后 在src目錄下就是源文件, 其中主要的兩個文件就是tfn.c和td.c 你可以看一下Makefile文件 SERVER_OBJ = pass.o aes.o base64.o cast.o flood.o ip.o process.o tribe.o td.o CLIENT_OBJ = pass.o aes.o base64.o cast.o ip.o tribe.o tfn.o 可以看出tfn和td各是由哪些.o鏈接而成的。 tfn.c: tfn和td的網(wǎng)絡通訊是經(jīng)過CAST-256算法(RFC 2612)加密,還可能混雜了許多虛假數(shù)據(jù)包。參看security_through_obscurity()和encode64()等函數(shù)。 盡管tfn沒有密碼保護,每一個發(fā)送給td的命令都有一個16位二進制形式的數(shù)在ICMP_ECHOREPLY包的id域。這個序列號通常是0x0000,這樣看起來更象ping初始包的響應。參看passchk()函數(shù)。 tfn_sendto()函數(shù)是根據(jù)hosts.txt向td發(fā)命令。 usage()函數(shù)是使用幫助。 td.c: td的守護程序是完全沉默的,它不會對接收到的命令有任何回應??蛻舳酥貜桶l(fā)送每一個命令20次(RETRY=20),并且認為守護程序應該至少能接收到其中一個。如果沒有接收到需要重新發(fā)送,你也可以修改RETRY(tfn.c文件中)的值。 守護進程為每一個攻擊產生子進程(td.c文件中)。 在看td.c文件時有些迷惑,它作為服務器端并沒有綁定固定的端口,后來才明白從tfn到td的通訊是通過ICMP_ECHOREPLY數(shù)據(jù)包完成,這樣在tfn和td就沒有任何基于TCP或UDP的通訊了。 td試圖通過修改argv[0]內容以掩飾自己。偽造的進程名在編譯時指定,因此每次安裝時都有可能不同。這個功能使TFN2K偽裝成代理端主機的普通正常進程。只是簡單地檢查進程列表未必能找到td(及其子進程),在你運行 #./td 以后,在運行 #ps -af 可能根本就找不到td.(不要以為它沒有運行??!)。 td.c的tribe_cmd()是根據(jù)id(0--10)執(zhí)行命令,它要調用process.c中的函數(shù)。 process.c中的commerce_syn(),commerce_udp(),commerce_icmp(),commerce_mix(),commerce_smurf()等函數(shù)就是發(fā)動攻擊的具體程序,根據(jù)id(0--11)分別對應著tcp,udp,icmp,mix,smurf等攻擊。 防御措施: 見下列鏈接文章,我就不重復了。 其它DDoS工具 1. Trinoo: 它是基于UDP flood的攻擊軟件,它向被攻擊目標主機的隨機端口發(fā)出全零的4字節(jié)UDP包,在處理這些超出其處理能力垃圾數(shù)據(jù)包的過程中,被攻擊主機的網(wǎng)絡性能不斷下降,直到不能提供正常服務,乃至崩潰,它對IP地址不做假,此攻擊方法用得不如TFN多?!?下載地址:http://darknet.evilnerds.org/dos/ddos/trinoo.tar.gz 2. Stacheldraht:對命令來源做假,而且可以防范一些路由器用RFC2267過濾。若檢查出有過濾現(xiàn)象,它將只做假IP地址最后8位,從而讓用戶無法了解到底是哪幾個網(wǎng)段的哪臺機器被攻擊。此外,它還具有自動更新功能,可隨軟件的更新而自動更新?!?下載地址:http://darknet.evilnerds.org/dos/ddos/stachel-yps.tar.gz 關于TFN2K的探討就此結束,其實許多前輩都撰文寫過此類的文章。我只是參考他們的文章(中文或英文),并細節(jié)化了一些。如果有指教或有問題請來信jjgirl@sina.com或在我的BBS留言。感謝你耐心看完佳佳寫的不怎么樣的文章。
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
相關文章
上一篇:
冰河”啟示錄
下一篇:
關注官方微信