tomahawk是一款用于测试入侵防御系统(IPS)的工具,工作在OSI模型的第二层,只能测试网桥型网络设备。它通过分析截获的网络数据包文件(需要有一个完整的TCP连接,包括三次握手包和四次分手包),分辨出其中的Client和Server端,再通过指定的两个网卡发送出去,不同于TCPReplay的是,它对接收到的包进行分析,对于顺序发送的数据包只有前一个接收到,后一个才会发送,这样保证了对捕获数据包的真实回放。运行环境为Linux,用C编写。
下载和英文介绍文章可以从以下两个站点获得:
1.http://www.tomahawktesttool.org/ --介绍的比较详细,以前还有一些典型的测试工具包
2.http://tomahawk.sourceforge.net/ --sf主站
第一次接触tomahawk缘于一次IPS产品测试,以前的对此类产品的测试方法是通过扫描,即在产品未接入的情况下,使用扫描器(如X-Scan)对计算机进行一次扫描记录结果,再将产品以串联方式接入重新扫描,通过比较两次的扫描结果和察看产品的相应报警日志以判断产品是否具备阻断攻击的功能。这种方法通过人工完成,只能定性的判断IPS的阻断功能具备与否,更无法产生大流量的网络数据。实验室还有一台Smartbits 6000C,倒是可以产生大流量,可是其软件websuite只能产品20种左右的攻击包,而且其价格昂贵,赶的上一辆宝马了。于是在网上查了一下,发现了这个东西,下载下来安装了一下,由于它提供的攻击样本包不多,当初也没有多注意,只是把其当成了一种备用的测试工具。
真正发现其好处又是另一次产品测试,这次送检的是TippingPoint公司 的IPS,当时他们提供了一个测试工具就是tomahawk,听说我以前用过这个,我们互相都有点惊讶,这个工具原来就是他们公司开发的一个开源软件,找到了鼻祖,他们又提供了几百个录制的攻击包,在使用tomahawk测试他们产品的时候才发现了这个工具的精妙。
好了,废话说到这里,这一篇先来看看安装:
安装环境为Linux redhat 9.0,其介绍上说需要三块网卡,其中两块为千兆,可以产生300M左右的流量,另外一块用于远程管理使用,其实两块也是可以的,软件方面gcc不用说了,还需要 libnet-1.0.2a.tar.gz、libpcap-0.8.1.tar.gz两个库,
1.将tomahawk1.0.tar.gz、libnet-1.0.2a.tar.gz、libpcap-0.8.1.tar.gz三个文件拷入同一文件夹中,使用tar xzvf *分别解压,
2.进入 Libnet 目录
chmod 777 configure
./configure
make
3.进入 libpcap目录
chmod 777 configure
./configure
make
4.进入 tomahawk
make
make install --该命令将tomahawk拷入/usr/local/bin,以便以后在任何目录下都可以运行。
如果tomahawk的make不成功,需察看Makefile文件中Libnet 和libpcap的路径设置是否正确,如下:
PCAPDIR = .. / libpcap
PCAPINCS = - I$(PCAPDIR)
PCAPLIBS = $(PCAPDIR) / libpcap.a
PCAPDEP = $(PCAPDIR) / pcap.h $(PCAPDIR) / libpcap.a
LNETDIR = .. / Libnet
LNETINCS = - I$(LNETDIR) / include
LNETLIBS = $(LNETDIR) / lib / libnet.a
LNETDEP = $(LNETDIR) / include / libnet.h $(LNETDIR) / libnet.a
在tomahawk目录下运行
tomahawk - l 1 - f test.pcap
如果结果为
Beginning test
Completed 1 loop of trace test.pcap (hid: 1 )
Finished 1 loops of trace test.pcap Completed: 1 , Timed out : 0
Retrans: 0
Sent: 9
Recv: 9
则安装成功!
下面介绍几个常用的参数
-N 5 并发5个
-i eth0 从eth0发client
-j eth1 从eth1发server
-l 5 重复5次
-f file pcap包文件
-A 0 不改变PCAP包中的IP地址
-A 1 改变PCAP包中的IP地址
-R 1-1000 限制为1M-1000M的流量, 0.1表示100k
-a 10.0.0.1 以10.0.0.1 攻击,此时不用使用 -A 1参数了
在实际使用中,往往使用到多个攻击包文件,仅仅通过查看sent和recv无法判断到底哪个攻击被阻断,在tomahawk提供的样本攻击包中还有一个attack脚本
# !/ bin / bash
if [ $# == 1 ]; then
loops = $ 1
else
loops = 1
fi
#export PATH = $PATH:.. / bin
cd / home / tomahawk / tomahawk / pcap
echo " running 16 attacks $loops times (each attack) "
tomahawk - i eth0 - j eth1 - m 200 - r 10 - t 100 - n 2 - a 202 .202.202.202 - l $loops
- f pcap.backdoor_novargA_infection
- f pcap.ftp_realpath_buffer_overflow_exploit
- f pcap.H225_source_address_dialedDigits_length_anomaly
- f pcap.http_apache_openSSL_slapper_worm
- f pcap.http_code_red_II_worm
- f pcap.http_IIS_printer_buffer_overflow
- f pcap.http_nimda_attack_cmd_exe
- f pcap.http_yahoo_audio_conferencing_activeX_control_buffer_anomaly
- f pcap.kazaa_file_download_upload
- f pcap.ms_rpc_DCOM_ISystemActivator_overflow
- f pcap.ms_sql_slammer_sapphire_worm
- f pcap.mySQL_authentication_bypass
- f pcap.smb_bugearB_worm_network_propagation
- f pcap.smb_SMBdie_exploit
- f pcap.smtp_bugbear_worm_email_propagation
- f pcap.telnet_SGI_buffer_overflow_exploit | grep ' ^Finish ' |
sed - e ' s/^F.*trace *// ' - e ' s/,// ' - e ' s/Completed/Permitted/g '
- e ' s/Timed *out/Blocked/g ' | column - t
运行attack
pcap.ms_sql_slammer_sapphire_worm Permitted: 1 Blocked: 0
pcap.http_nimda_attack_cmd_exe Permitted: 1 Blocked: 0
pcap.http_yahoo_audio_conferencing_activeX_control_buffer_anomaly Permitted: 1 Blocked: 0
pcap.ms_rpc_DCOM_ISystemActivator_overflow Permitted: 1 Blocked: 0
pcap.H225_source_address_dialedDigits_length_anomaly Permitted: 1 Blocked: 0
pcap.http_IIS_printer_buffer_overflow Permitted: 1 Blocked: 0
pcap.mySQL_authentication_bypass Permitted: 1 Blocked: 0
pcap.http_code_red_II_worm Permitted: 1 Blocked: 0
pcap.smb_SMBdie_exploit Permitted: 1 Blocked: 0
pcap.telnet_SGI_buffer_overflow_exploit Permitted: 1 Blocked: 0
pcap.backdoor_novargA_infection Permitted: 1 Blocked: 0
pcap.ftp_realpath_buffer_overflow_exploit Permitted: 1 Blocked: 0
pcap.smtp_bugbear_worm_email_propagation Permitted: 1 Blocked: 0
pcap.kazaa_file_download_upload Permitted: 1 Blocked: 0
pcap.smb_bugearB_worm_network_propagation Permitted: 1 Blocked: 0
pcap.http_apache_openSSL_slapper_worm Permitted: 1 Blocked: 0
从上面可以清楚地看到被阻断的攻击(Blocked)
------------------
如本文一开始所提到的,tomahawk是一款二层设备测试工具,在平时的检测工作中经常会遇到三层的IPS,如现在的防火墙或多或少都带了一点IPS的功能以保护DMZ区的服务器不被攻击。在后面的文章中,将对tomahawk的代码进行分析和修改,使之可以测试网关类的三层设备。
------------------
本篇完