本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现
地址:https://www.vulnhub.com/entry/mr-robot-1,151/
sudo nmap -n -p- -sC -sV -T5 -vvv 192.168.202.11 -oN mrrobot.nmap
nmap扫描结果
开放了3个端口,首先访问下80端口,发现如下信息
没看到啥有价值的信息,顺手访问下robots.txt看看
看到两个目录,访问如下
现在已经知道了其中一个key的值了,访问另一个发现是可下载的文件, 看后缀像是字典,我们下载下来
上面的字典先放着,用用nikto扫描看看
发现了跟WordPress相关的URI路径了,这里是知道了后台登录地址,猜想这里可以要使用上面的字典进行爆破了
试了些常用的用户名发现都不存在,使用wpscan扫描识别下用户名也没有成功,使用gobuster进行爆破下目录
把上面所有URI试着访问了一遍,最终发现license.txt存在重要敏感信息
得到一串base64编码的字符 ZWxsaW90OkVSMjgtMDY1Mgo=
elliot:ER28-0652 将次信息当做用户名和密码登录试试
登录成功
另一种方式获得目标靶机WordPress程序的用户名和密码,这里思路就是先随便使用一个密码,然后使用上面的字典去尝试猜测用户名,如果返回的不是无效的用户名那么说明目标是存在这个用户的,我们可以使用hydra能做到这一点,具体如下命令爆破
对上述得到的密码字典进去去重
# wc -l fsocity.dic
858160 fsocity.dic
# sort -u fsocity.dic | wc -l
11451
# sort -u fsocity.dic > fsocity_sort.dic
hydra -L fsocity_sort.dic -p bmfx 192.168.202.11 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=Invalid username" -t 50 -f -V
最终爆破成功的结果如下:
得到了用户名,那么就使用此用户名进行爆破破解密码,既然是WordPress程序,那么可以使用wpscan进行密码破解
wpscan --url http://192.168.202.11 -U elliot -P fsocity_sort.dic
这里也是可以使用hydra进行密码破解
hydra -vV -l elliot -P fsocity_sort.dic 192.168.202.11 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=is incorrect"
完成上述操作之后就可以成功登陆目标靶机的WordPress程序,这里的WordPress程序好多种反弹shell方式,我这里就使用上传主题的方式操作,注意上传的时候显示失败,实际上是可以上传zip,php等格式,但实际是成功了
点击上传的文件即可看到上传的URL路径
直接本地kali监听对应端口访问上传的php代码即可反弹成功
PS:此靶机的WordPress同样可以使用之前我靶机演示的404.php文件直接粘贴php反弹代码,然后访问效果一样
到了这一步,一般套路就是翻看目标靶机的家目录,和系统版本及网站根目录查看相关信息,这里直接在家目录下发现了一个用户,那么需要想办法切换到此用户然后进行提权,具体发现了如下信息:
发现用户robot和对应的md5值,然后将这个md5值丢到 https://www.somd5.com/ 破解得出密码:abcdefghijklmnopqrstuvwxyz
又找到一个key的值,横向移动到另一个用户之后常规的套路就是走捷径,看看能不能使用sudo提权,或者被赋予了setuid的权限文件进行提权,这里使用find命令查找下
查找setuid权限的文件,并过来关键字snap ls -alt `find / -perm -4000 -type f 2>/dev/null` | grep -v snap 同样是查找setuid的权限,但是查出来不显示 find / -perm -4000 -type f 2>/dev/null 同样可以指定用户查找setuid的文件 find / -user root -perm -4000 2>/dev/null
从上操作可知最终得到可以使用nmap进行提权了,关于nmap提权可以参考:https://gtfobins.github.io/gtfobins/nmap/ https://www.leavesongs.com/PENETRATION/linux-suid-privilege-escalation.html
既然知道了怎么提权,那么首先看看nmap的版本
擦,刚好这个版本支持交互式的命令参数,可以直接进入交互式模式提权,最近的新版没有这类命令,需要通过script进行提权
提权成功