一台服务器被写入了一个ddos木马,会在/root下生成一个conf.n的文件,删除后很快又会自动生成,用lsof没办法查出来谁在读写这个文件。此时可以使用stap来监控。
1、df
/dev/xvda1 20509308 10556432 8888020 55% /
找到对应目录挂载的磁盘
2、
ls
-al /dev/xvda1
brw-rw—- 1 root disk 202, 1 Dec 20 15:33 /dev/xvda1
找到磁盘在系统中对应的序号
3、
stat -c
'%i'
conf.n920087
找到要监视的文件对应的系文件系统ID
4、wget https://raw.githubusercontent.com/soarpenguin/systemtap-script/master/inodewatch.stp
下载需要用到的脚本
5、stap inodewatch.stp 202 1 920087
开始监控指定文件
测试:cat conf.n
cat(25149) vfs_read 0xca00001/920087
cat(25149) vfs_read 0xca00001/920087
可以看到哪个命令、进程号访问了指定的文件
执行stap时,如果报错,错误内容为找不到系统debug库之类的,需要安装debuginfo库:
echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse
" | sudo tee -a /etc/apt/sources.list.d/ddebs.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01
apt-get updateapt-get install linux-image-$(uname -r)-dbgsym
centos下:
yum install systemtap kernel-devel debuginfo-install kernel