一、实验环境
虚拟机软件:VirtualBox
攻击机:Kali Linux(仅主机模式)
靶机:Wakanda(仅主机模式,共有3个flag)
二、开始渗透(根据流程学习思路)
1.获知本机IP、靶机IP
- 切换到root用户(输入sudo su及对应的密码)
![](https://i-blog.csdnimg.cn/blog_migrate/e2bd112c1fe18179e495fcafff607f5c.png)
- 查询本机IP(输入ifconfig)
![](https://i-blog.csdnimg.cn/blog_migrate/5b2d35643f5c581378755a42ead214ff.png)
由eth0中的inet,知本机IP为192.168.56.101。
- 扫描靶机IP(输入netdiscover -i eth0)
![](https://i-blog.csdnimg.cn/blog_migrate/aa4c437ae88f59ba831dc07ea9873ffe.png)
由以上,知靶机IP为192.168.56.102。输入arp-scan -l亦可
2.靶机端口、协议、前端信息(Nmap)
- 查询端口信息(输入Nmap -sS -p- 192.168.56.102)
![](https://i-blog.csdnimg.cn/blog_migrate/68f074529ef419ba7ae7e05c4b3f2e79.png)
可以发现,80端口(http服务),3333端口(ssh服务,虽然叫dec-notes)是开放的,有兴趣的同学可以自己去了解一下rpcbind。
- 从页面中搜集信息(http://192.168.56.102:80)
![](https://i-blog.csdnimg.cn/blog_migrate/82a61a1e8db76b4f75a8b538f04b44ac.png)
发现一个叫mamadou的,留个心眼,点击Learn more没反应,看看源码吧。
![](https://i-blog.csdnimg.cn/blog_migrate/10ccaee845a9ea5467c42c17c92d1dde.png)
标黄处有个注释,a标签,href属性,考虑是个文件包含漏洞。
- PHP伪协议
参数lang试了几个,没有可用的,考虑应用php伪协议(是不是自己赶紧去看看这是啥)。
浏览器输入192.168.56.102/?lang=php://filter/convert.base64-encode/resource=index
,出来一个长字符串,
![](https://i-blog.csdnimg.cn/blog_migrate/33a311a46c8d45dde777aafeb0bcd5a2.png)
把这串字符,用base64解码(自己想办法,我丢到kali自带的burp里去解码)
![](https://i-blog.csdnimg.cn/blog_migrate/58d65ef118855b707800ec9018a384ef.png)
发现密码!对了,mamadou,你说这是谁的密码呢?
3.进入后台,查看敏感数据
- 输入用户名、密码,登录靶机
由上文知,用户名为mamadou,加上刚知晓的密码,通过ssh登录。
![](https://i-blog.csdnimg.cn/blog_migrate/9aea1ecf352418f8e485871c4c1ce7f5.png)
- 由Python切换到Bash
由上图,发现是python环境,故输入
import pty
pty.spawn("/bin/bash")
![](https://i-blog.csdnimg.cn/blog_migrate/a17b6b72ce26d1910d500b8168bab10c.png)
- 第一个flag
在当前目录中发现第一个flag。
![](https://i-blog.csdnimg.cn/blog_migrate/1b44ee316232363991b9a04235db9bc1.png)
- 切换用户权限
输入cat /etc/passwd
,看看有没有其他有意思的用户
![](https://i-blog.csdnimg.cn/blog_migrate/fc2c26ac3e0f846a083d597655d013df.png)
在最底下发现一个devops,嗯,搞一搞。输入cd /home/devops,ls -al,找到第二个flag。
发现flag2无权限,不可访问。
翻啊翻,找啊找,发现在tmp目录下有东西。
![](https://i-blog.csdnimg.cn/blog_migrate/ad0d0b5c117fe440a3317da6e09bd563.png)
发现test文件的创建时间与其他文件不一样,date查看时间后发现就是刚才创建的,故这里应该是系统中有一个定时运行的程序,每次运行都会创建test文件。继续找啊找,发现srv目录下有关于这个文件创建的信息。
![](https://i-blog.csdnimg.cn/blog_migrate/aa5a66f1f9ce565fd73934eb32a969db.png)
即这个.antivirus.py文件,当前有权限打开,故可写入代码使其运行并反弹shell。
![](https://i-blog.csdnimg.cn/blog_migrate/3aa7cc1a46e1f23032911b96932e4ef8.png)
标黄代码为原文件内容,保存后侦听本机的4412端口,等待.antivirus.py运行。
![](https://i-blog.csdnimg.cn/blog_migrate/694a6e11cb7b9f181d5b2b7d1f544758.png)
等个几分钟,来了
![](https://i-blog.csdnimg.cn/blog_migrate/2ca8b06d900f3eb6512d8b2b22d1a871.png)
这时,可以打开flag2.txt了
![](https://i-blog.csdnimg.cn/blog_migrate/615fe106bd7275b161a9959759e70f24.png)
- 通过pip提升到root权限
(1)输入sudo -l
,发现devops能使用且不需要root密码的sudo指令只有pip,故可通过pip来提权。
![](https://i-blog.csdnimg.cn/blog_migrate/6cebba8db0f7bccde511bcd7b589f2a7.png)
(2)输入git clone https://github.com/0x00-0x00/FakePip
下载exp后,编辑其中的setup.py文件
![](https://i-blog.csdnimg.cn/blog_migrate/fc628a104edbf4de8b004d12eaaa1f92.png)
将LHOST改为kali地址,即192.168.56.101,并且可知反弹shell的端口为13372,到时候侦听即可。
PS:这里下载FakePip的时候需要把kali设为桥接模式,下载好后再换回来
(3)将此exp传到靶机中
![](https://i-blog.csdnimg.cn/blog_migrate/79ca405145cd9fbd45e8f1e09210f6d8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2929b4ae3cf8095e924340a560aaf21a.png)
这里的192.168.1.5ip是因为期间为了下载FakePip,网卡改成了桥接模式,无伤大雅,改回来就行。
(4)执行脚本,获取root权限
先在本机输入nc -lvvp 13372
,侦听13372端口。
然后在靶机上输入sudo /usr/bin/pip install . --upgrade --force-reinstall
,执行脚本
![](https://i-blog.csdnimg.cn/blog_migrate/db5a0a49fe6936d51fa8da7de8cbd5ee.png)
OK了提权成功。
(5)找到第三个flag
在根目录下找到第三个flag。
![](https://i-blog.csdnimg.cn/blog_migrate/908a8d3591fbedd03e1b72d70929b08a.png)
至此结束。