tcpkill 是dsniff里面的一个模块,dsniff是一个基于unix系统网络嗅探工具,所以需要交叉编译dsniff。
dsniff官网:http://www.monkey.org/~dugsong/dsniff
dsniff github:https://github.com/ggreer/dsniff
编译安装dsniff需要先安装相应的依赖库,github上的介绍:
./configure \
--with-libpcap=/usr/local/opt/libpcap \
--with-openssl=/usr/local/opt/openssl \
--with-libnet=/usr/local/opt/libnet \
--with-libnids=/usr/local/opt/libnids \
--without-x
需要编译依赖libpcap、openssl、libnet、libnids。
Berkeley DB - http://www.sleepycat.com/
OpenSSL - http://www.openssl.org/
libpcap - http://www.tcpdump.org/
libnids - http://www.packetfactory.net/Projects/Libnids/
libnet - http://www.packetfactory.net/Projects/Libnet/
本次使用的版本如下:
dsniff-2.3
db-4.7.25
openssl-0.9.7i
libpcap-0.7.2
Libnet-1.0.2a
libnids-1.18
因为有些库版本比较老了,所以先安装了libtool
sudo apt-get install libtool
cp /home/book/work_file/tool/libpcap-1.10.1/config.sub .
cp /home/book/work_file/tool/libpcap-1.10.1/config.guess .
db-4.7.25编译
解压
mkdir berkeley_db
cp db-4.7.25.tar.gz berkeley_db/
cd berkeley_db
tar -xvf db-4.7.25.tar.gz配置:
cd db-4.7.25/dist/
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.sub .
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.guess .
cd ../.././db-4.7.25/dist/configure --enable-compat185 --host=mips-linux-uclibc-gnu --prefix=$(pwd)/output \
CC=mips-linux-uclibc-gnu-gcc CXX=mips-linux-uclibc-gnu-g++编译:
make安装:
make install
cd output
cp include/db_185.h .
cp lib/libdb.a .
openssl 0.9.7i编译
解压:
tar -xvf openssl-0.9.7i.tar.gz
配置:
./Configure --prefix=$(pwd)/output no-asm no-shared os/compiler:mips-linux-uclibc-gnu-gcc no-async no-shared
make depend修改Makefile:
AR=mips-linux-uclibc-gnu-ar cr
RANLIB= mips-linux-uclibc-gnu-ranlib
编译:
make
安装:
make install
libpcap-0.7.2编译
解压:
tar -xvf libpcap-0.7.2.tar.gz
配置:
./configure --host=mips-linux-uclibc-gnu --prefix=$(pwd)/output
修改Makefile
CC = mips-linux-uclibc-gnu-gcc
RANLIB = mips-linux-uclibc-gnu-ranlib
AR= mips-linux-uclibc-gnu-ar
ar 改成$(AR)
修改pcap-int.h
添加#include <string.h>
编译:
make
安装:
make install
cd /output/
cp ./lib/libpcap.a .
cp ./include/pcap.h .
cp -r include/net/ .
Libnet-1.0.2a编译
解压:
tar -xvf libnet-1.0.2a.tar.gz
配置:
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.sub .
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.guess .
./configure --prefix=$(pwd)/output --host=mips-linux-uclibc-gnu
修改Makefile
CC = mips-linux-uclibc-gnu-gcc
RANLIB = mips-linux-uclibc-gnu-ranlib
AR= mips-linux-uclibc-gnu-ar
install:libnet 改成install:
编译:
make
安装:
sudo make install
cd output
cp ./include/libnet.h .
cp ./lib/libnet.a .
cp libnet-config output/
libnids-1.18编译
解压:
tar -xvf libnids-1.18.tar.gz
配置:
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.sub .
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.guess .
./configure --prefix=$(pwd)/output --host=mips-linux-uclibc-gnu --with-libpcap=/home/book/work_file/dsniff/libpcap-0.7.2/output --with-libnet=/home/book/work_file/dsniff/Libnet-1.0.2a/output
cd src/ 修改Makefile
AR=mips-linux-uclibc-gnu-ar
$(AR)
CFLAGS 加入-fgnu89-inline //解决内联报错
编译:
make
安装:
make install
dsniff-2.3编译
解压:
tar -xvf dsniff-2.3.tar.gz
配置:
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.sub .
sudo cp /home/book/work_file/tool/libpcap-1.10.1/config.guess .
./configure --prefix=$(pwd)/output CC=mips-linux-uclibc-gnu-gcc --host=mips-linux-uclibc-gnu \
--with-db=/home/book/work_file/dsniff/berkeley_db/output --with-libpcap=/home/book/work_file/dsniff/libpcap-0.7.2/output \
--with-libnet=/home/book/work_file/dsniff/Libnet-1.0.2a/output --with-openssl=/home/book/work_file/dsniff/openssl-0.9.7i/output \
--with-libnids=/home/book/work_file/dsniff/libnids-1.18/output --enable-FEATURE=no --with-PACKAGE=no修改Makefile
CC = mips-linux-uclibc-gnu-gcc
RANLIB = mips-linux-uclibc-gnu-ranlib
AR = mips-linux-uclibc-gnu-ar
屏蔽-lrpcsvc,避免报错
修改
arpspoof.c 加入#include <net/ethernet.h>
decode_yp.c
//#include <rpcsvc/yp_prot.h>
//#include <rpcsvc/yppasswd.h>
屏蔽掉报错代码,github 备注该代码实际未验证编译:
make
安装:
make install