第8页
Win32平台的具体实现
– 3.3 getpeername查找socket
客户端在发送攻击串之前用getsockname函数获得套接字本地 信息,把相应信息写入shellcode. 服务端shellcode从1开始递增查找socket,并且用 getpeername函数获得套接字远程信息. 如果两个信息相符就认为找到socket,跳出递增循环,并且把 shell绑定在这个socket上. 有很大局限性,如果客户端在NAT网络环境里,客户端 getsockname取得的套接字信息和服务端getpeername取得的 套接字信息不一定相符,导致查找socket失败.
第9页
Win32平台的具体实现
– 3.4 字串匹配查找socket
客户端在发送完攻击数据包后,再发送几个字节的字符串,在 服务端的shellcode对一个递增的socket值接收相应字节的字符 串,然后匹配是否是当前连接的socket.这种方法避免了 getpeername在NAT网络环境里的限制. 多线程环境下容易处理到处于accept下的socket,一般的网络 函数都会进入等待状态,直到有连接建立. flier提到WaitForSingleObjectEx处理这种处于accept的socket 会返回WAIT_TIMEOUT,可用的句柄返回 WAIT_OBJECT_0.
第10页
Win32平台的具体实现
– 3.4 字串匹配查找socket
查找流程如下:
while (1) { i++; ret = WaitForSingleObjectEx(i, 10, 1); if (ret != 0) continue; ret = ioctlsocket(i, FIONREAD, &ul); if (ul != 4) continue; recv(i, buff, 4, 0); if( *(DWORD *)buff == 'Xc0n') goto shell; }
bkbll测试发现socket()函数创建的句柄在accept用户后有 getsockname操作,那么后续WaitForSingleObjectEx返回 WAIT_TIMEOUT (0x102).
第11页
Win32平台的具体实现
– 3.5 Hook系统的recv调用
用VirtualProtect设置真实recv函数地址开始的5个字节为可 写. 把真实recv开始的指令改为跳转到新recv函数. 在新的recv函数里先把这5个字节指令改回去. 调用真实recv来执行系统本来的操作. 再把真实recv函数地址开始的5个字节改为跳转新recv的指 令. 比较接收的数据是否是约定字串,如果是就绑定一个 cmd.exe,否则跳到压栈的返回地址,继续系统原来的流程. 这种方法能绕过rpc之类机制,也能够搜索再次连接的 socket.
第12页
Win32平台的具体实现
– 3.6 文件上传下载功能的实现
必须要客户端和shellcode做紧密配合. 上传文件需要客户端打开并读取文件发送给服务端,服务端的 shellcode创建并写入该文件. 下载文件需要服务端的shellcode打开读取文件发送给客户 端,客户端创建并写入该文件. 由于是非阻塞的连接,上传文件的时候,服务端的shellcode 必须判断socket里是否还有数据可接收,如果没有就关闭句 柄,执行后续流程.下载文件的时候,客户端必须判断socket 里是否还有数据. select和ioctlsocket都可以实现这个功能.select的汇编实现相 对复杂,ioctlsocket需要在发送缓冲块大于接收缓冲块的情况 下使用.
第13页
Win32平台的具体实现
– 3.6 文件上传下载功能的实现
客户端和服务端shellcode可以使用一个约定的key对传输的数 据做xor操作,由于用管道绑定cmd,那么交互的命令也是编 码的,进一步增强隐蔽性,躲避IDS的检测.
第14页
Linux x86平台的具体实现
4. Linux x86平台的具体实现
– 4.1 fcntl设置socket状态
scz最早使用这种方法,基本思路如下:
while (1) { i++; oldflags = fcntl(i, F_GETFL, 0); fcntl(i, F_SETFL, oldflags | O_NONBLOCK); read(i, buf, 4); fcntl( i, F_SETFL, oldflags ); if (buf == 'Xc0n') goto shell; }
- moonshell官网 > 渗透防火墙的Shellcode技术
-
渗透防火墙的Shellcode技术
下载该文档 文档格式:PDF 更新时间:2004-09-02 下载次数:0 点击次数:1文档基本属性 文档语言: 文档格式: pdf 文档作者: Regione Lombardia 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: Regione Lombardia 分类: 创建时间: 上次保存者: claude louzoun 修订次数: 248 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 16 段落数: 270 字节数: 573449 备注: 0 演示格式: Présentation à l'écran (4:3) 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:shell程序设计
下一篇:Shell脚本程式
点击查看更多关于moonshell官网的相关文档
- 您可能感兴趣的
- moonshell2.1下载 moonshell2.0 moonshell下载 moonshell2 moonshell怎么用 moonshell1.7b1 moonshell汉化版下载 moonshell2.10中文版 3ds用moonshell全屏
- 大家在找
-
- · 二手内圆磨床
- · 常微分方程经典习题
- · 计算机的主要性能指标
- · 上海膜片联轴器
- · 武汉17中教室门视频bt
- · cs龙珠evm2.1下载迅雷
- · 十字滑块联轴器尺寸
- · 奔驰s350
- · 计算机集成制造系统
- · 城镇居民医疗保险政策
- · tianlongbabu
- · http://gprj1314.wanye68.com/
- · 阑尾炎是微创还是开刀
- · 777.奇米影视盒333
- · 纳税基础与实务作业
- · 三菱帕杰罗的消息
- · 电力变压器故障分析
- · cnc数控机床维修
- · 与仁义道德的名言警句
- · 三星s56603d主题
- · 服装设计论文题目
- · 内燃机车图片
- · 离线光亮退火炉
- · 急性阑尾炎不能吃什么
- · 沈阳工业大学继续教育
- · 2010连铸高级工试题
- · 煤与瓦斯突出防治知识
- · 内蒙古大学诚信平台
- · 电工电子技术教案doc
- · 机械制图教程下载
- 赞助商链接