渗透防火墙的Shellcode技术
作者:san@xfocus.org
内容摘要
– – – – – – – 1. 远程shellcode的几种实现方式 2. 复用当前连接技术的一些问题及优势 3. Win32平台的具体实现 4. Linux x86平台的具体实现 5. AIX PowerPC平台的具体实现 6. 特别感谢 7. 参考文档
第2页
实现方式简介
1. 远程shellcode的几种实现方式
– 1.1 监听端口
1.1.1 监听新的端口 1.1.2 重新使用原端口 1.1.2.1 端口复用 1.1.2.2 重新绑定
– 1.2 反向连接 – 1.3 复用当前连接的SOCKET
1.3.1 IIS的ECB结构 1.3.2 getpeername 1.3.3 fcntl设置socket状态 1.3.4 ioctl(Linux/Unix)和ioctlsocket(Win32) 1.3.5 使用OOB特性 1.3.6 Hook系统的recv调用 第3页
复用当前连接技术介绍
2. 复用当前连接技术的一些问题及优势
– 2.1 绑定shell
Unix下可以直接把SOCKET作为"/bin/sh"的输入输出句柄. 在Win32下,socket()函数隐 式指定了重叠标志,它创建的 SOCKET是重叠套接字(overlapped socket),不能直接将 cmd.exe的stdin,stdout,stderr转向到套接字上,只能用管道 (pipe)来与cmd.exe进程传 输数据.winsock推荐使用重叠套接 字,所以实际使用尽可能用管道. WSASocket()创建的SOCKET默认是非重叠套接字,可以直接 将cmd.exe的stdin,stdout,stderr转向到套接字上.
第4页
复用当前连接技术介绍
– 2.2 多线程环境搜索SOCKET
-=-=-=-=-=- start sample code =-=-=-=-=-=-= s = WSASocket(2,1,...) bind(s,..) listen(s,...) s2 = accept(s,....) -=-=-=-=-=- end sample code =-=-=-=-=-=-
当s处于accept状态时,任何对s操作的网络函数都会处于等待 状态,直到有连接建立. 先用WaitForSingleObjectEx处理句柄,当s处于accept状态时 会返回WAIT_TIMEOUT,可用的句柄返回 WAIT_OBJECT_0.然后再用ioctlsocket/recv处理判断是否当 前连接的socket.
第5页
复用当前连接技术介绍
– 2.3 优势
复用当前连接的技术相对较隐蔽,而且对于Win32的用管道绑 定cmd.exe后,和服务器交互的数据可以用xor的办法进行编 码,进一步躲避IDS的检测. 单单查找SOCKET的shellcode可以写的相对比较短,在找到 SOCKET后,可以再继续接收一段功能更复杂的shellcode到 缓冲区,然后跳入执行.对于该后续shellcode就没有任何字 符和长度的限制. 甚至接收一个dll文件,实现更复杂的功能.
第6页
Win32平台的具体实现
3. Win32平台的具体实现
– 3.1 端口复用具体实现
端口复用shellcode要求服务重新绑定在0.0.0.0地址,而且不 能使用SO_EXCLUSIVEADDRUSE选项. 客户端攻击的时候需要把服务端的具体IP和端口写入shellcode 里面. Shellcode里执行: setsockopt(s, 0xFFFF, 4, &d, 4); bind(s, &sockaddr, 0x10); 用netstat -na在服务端查看可以看到同一个端口有0.0.0.0和具 体IP两个绑定着. 如果服务端在NAT环境里,可能会存在问题.
第7页
Win32平台的具体实现
– 3.2 重新绑定原端口的实现
CreateProcess()创建一个suspend模式的进程. GetThreadContext()来获得该线程的上下文结构和寄存器信 息. 用VirtualAllocEx()在该进程里分配内存. 把shellcode指令用WriteProcessMemory()来写入该进程刚才 分配的空间. SetThreadContext()把GetThreadContext()获得的EIP修改指 向VirtualAllocEx()分配的内存地址. ResumeThread()恢复suspend模式的进程. TerminateProcess(-1, 0)终止当前进程. 循环绑定原来端口.
- 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
- · 机械制图教程下载
- 赞助商链接