TIER 2: Oopsie
TIER 2: Oopsie
Web 渗透
此次靶机结合前面知识,非常简单:
- nmap 扫描,发现 22 和 80 端口开放
- 服务 80 的 HTTP 服务
之后使用继续 Web 渗透:
- 使用 Wappalyzer 查看网站使用的技术栈
- 查看当前页面源码,重点观察其中的链接
- 如果没有进一步线索,进行目录爆破,寻找隐藏目录
寻找到目标站点根目录 /cdn-cgi/login/ 和 /uploads/ 子目录,amdin 应该足够有吸引力不是吗?
- 使用开发者工具,看其中表单、链接、请求、响应等信息。
- 在登录页面中存在游客登录,我们先不急于使用爆破获取密码,而是继续收集信息。
- 游客登录后,必然存在某种机制确认我们的身份,我们重点使用开发者工具查看请求和响应信息。可以发现目标是通过 Cookie 确认我们身份。并且 在页面的标签页 Uploads 选项卡上需要 admin 身份才能访问。
- 在页面链接中,对应页面的标签页 Account 选项卡,点击后发现页面内容是我们的 Cookie 一致,而页面链接是
http://10.129.161.131/cdn-cgi/login/admin.php?content=accounts&id=2说明在链接查询部分content=accounts&id=2会获取不同信息,通过爆破id这种纯粹数值的参数,我们可以获取到其他用户的 Cookie,通过在开发者工具中修改 Cookie,我们可以伪造身份登录。
在 admin 身份登录后,尝试利用 http://10.129.161.131/cdn-cgi/login/admin.php?content=uploads 进行文件上传,在上传漏洞利用中推荐 webshells 项目:
- 项目地址:https://github.com/BlackArch/webshells/
- 我们选用
php/php-reverse-shell.php进行上传,注意修改其中的 IP 和端口与自己的 Kali 主机一致。 - 在 kali 上设置监听端口
nc -lvnp 4444,但是目前有一个问题,我们不知道上传文件位置,记着之前的/uploads/或许可以尝试访问http://10.129.161.131/uploads/php-reverse-shell.php,观察监听是否有变化,当然这次是成功的。 - 巩固 shell 连接,使用
python3 -c 'import pty;pty.spawn("/bin/bash")'增强 shell 交互性。
提权
登录后,两点需要注意:
- 查看自己当前的权限,使用
id命令 - 查看
/etc/passwd文件,确认系统中存在哪些用户
好,我们继续攻击,我们先看一下我们之前攻击的 Web 服务是怎样的一个程序,之前的 Wappalyzer 确认目标是 Apache,使用我们到 /var/www/html/ 目录下的站点康康这个程序怎样运行。
- 在 admin.php 中发现 amdin 用户密码
MEGACORP_4dm1n!!,重点在/var/www/html/cdncgi/login目录,在其中有一个db.php文件。我们知道 LMAP 中 PHP 想要与 MySQL 数据交换,需要 MySql 的账号和密码。 - 两个思路进攻 MySQL 提权或者通过当前密码尝试之前在
/etc/passwd中发现的 robert 用户。
这次非常幸运,我们成功使用 db.php 中的密码登录了 robert 用户,现在我们知道用户和密码,那么我们使用 SSH 继续登录,进一步巩固我们的权限。同时在此用户的家目录可以发现第一个 flag 文件。
对于这个新用户,我们登录后查看当前权限,发现一个特别的 1001(bugtracker) 组信息
- 针对这个不同组信息收集我们
find / -group bugtracker 2>/dev/null命令后发现/usr/bin/bugtracker文件 - 我们使用
ls -la /usr/bin/bugtracker && file /usr/bin/bugtracker两段命令查看其状态,发现它执行时有 root 权限,这由于 SUID 设置导致的。
我们执行一下看看 /usr/bin/bugtracker 功能,这个执行发现它会执行 cat 查看文件。那么我们是否可以通过改 PATH 变量,让它使用错误的 cat 命令,用我们自己写的假 cat 替代:
- 命令
echo '/bin/sh' > /tmp/cat,我们在/tmp目录创建一个文件,因为此目录权限特殊性。 - 使用
export PATH=/tmp:$PATH让系统错误识别cat的位置,转而使用我们写的假cat命令。 - 执行
/usr/bin/bugtracker查看是否生效。
当然我们最后的结果是成功的,使用 id 确认身份,最后的 flag 在 root 根目录。
TIER 2: Oopsie的更多相关文章
- E-Business Suite 12.2 startCD 50 Install Fails with Fatal Error: TXK Install Service oracle.apps.fnd.txk.config.ProcessStateException: OUI process failed Cannot install Web Tier Utilities
在rhel7.2上,使用startCD 50安装ebs r12.2的使用,安装到38%的时候就报错,遇到了和以下文章类似的问题: http://www.cnblogs.com/abclife/p/49 ...
- Tier和RBD Cache的区别
相同点 缓存 数据不会持久保存在ssd或者内存:预读回写直写 都需要解决缓存数据和磁盘数据不一致和“内存页”置换的问题. 差异点 缓存的位置不同,tier是rados层在osd端进行数据缓存,也就是说 ...
- 在magneto系统中输出tier price的最小值
2012年6月16日星期六 Asia/Shanghai上午11时39分22秒 有的时候,我们想输出产品的tier price 的最小值!如图: 下面是解决的办法: 1. 在catalog/produc ...
- Tier和Layer
在实际开发工作中.我们经常听到"架构设计"和"架构师"这种名词,它并不新奇和神奇,可是却非常少有人对"架构"有全面的了解和认识.更谈不上掌握 ...
- Sharing The Application Tier File System in Oracle E-Business Suite Release 12.2
The most current version of this document can be obtained in My Oracle Support Knowledge Document 13 ...
- WPF 渲染级别 (Tier)
在WPF中,显卡的功能相差很大.当WPF评估显卡时,它会考虑许多因素,包括显卡上的RAM数量.对像素着色器(piexl shader)的支持(计算每个像素效果的内置程序,如透明效果),以及对顶点着色器 ...
- H265 Profile & Level & Tier 介绍
H265/HEVC Profile Level Tier 档次.水平.等级 为了提供不同应用之间的兼容互通,HEVC/H265 定义了不同的编码 Profile 档次.Level 水平.Tier 等级 ...
- flume topology design . tier num 分层数目
32:+:1 x:1 x<=8 https://flume.apache.org/FlumeUserGuide.html#flume-topology-design Flume topology ...
- CephFS cache tier实践
这是一篇分享文,作者因为最近想深入研究下ceph的cache pool,作者写的文章非常的好,这里先直接翻译这篇文章,然后再加入我自己的相关数据 blog原文 作者想启动blog写下自己的Openst ...
- Dynamics AX 2012 R2 Service Middle Tier WCF WCF转发
参考了蒋金楠老师08年的文章.好吧,那时候我才大二.大三,大神果然是大神. http://www.cnblogs.com/artech/archive/2008/09/01/1280939.html ...
随机推荐
- PhiData 一款开发AI搜索、agents智能体和工作流应用的AI框架
引言 在人工智能领域,构建一个能够理解并响应用户需求的智能助手是一项挑战性的任务.PhiData作为一个开源框架,为开发者提供了构建具有长期记忆.丰富知识和强大工具的AI助手的可能性.本文将介绍Phi ...
- AIRIOT智慧变电站管理解决方案
随着社会电气化进程的加速,电力需求与日俱增,变电站作为电网的关键节点,其稳定性和智能化管理水平直接关系到整个电力系统的高效运作.传统变电站管理平台难以适应现代电力系统复杂管理需求,存在如下痛点: 数据 ...
- PHP 中使用 ElasticSearch 的最佳实践 (下)
引言 上一篇文章,我们使用同步的方式将数据,同步写入到 ElasticSearch 中.接下来的这篇文章,主要介绍使用 RabbitMQ 的方式,异步的将数据同步到 ElasticSearch . 部 ...
- Android OpenMAX(四)OMX Core
假设我们已经写好了所有的OMX组件,有vdec.venc.adec.aenc,接下来问题来了,我们应该如何管理这些组件呢(创建.销毁)?这一篇文章我们向上一层学习OMX Core提供的标准API. O ...
- 005. gitlab安装
1. gitlab介绍 官方网站: www.gitlab.com gitlab是一款使用ruby编写的代码版本管理系统,他可以通过web界面来管理代码. 2. gitlab安装 官方安装文档: htt ...
- 微信iOS消息拦截插件教程-第一个tweak编译过程
-安装好theos框架之后,下面用一个简单的例子进行说明编译过程 -新建一个代码目录 -进入terminal,cd到刚才的目录中 1.进入目录 2.执行/opt/theos/bin/nic.pl 3. ...
- vue3 elementui plus Select 选择器不选择下拉框里面的数据得到的value值
我们先来看 我点击弹框出现什么都不做 直接点击确定 看传参 tableId,timeColumnId,userColumnId直接是名称而没有获取value值 看下下拉框里面的数据 而我想直接点击获取 ...
- 使用命令行(powershell)压缩(7Z RAR)指定日期文件
使用命令行(powershell)压缩(7Z RAR)指定日期文件,powershell ,7z. WINDOWS命令行是无法按时间过滤文件的,我们通过powershell 里的Get-ChildIt ...
- 夜莺项目发布 v6.1.0 版本,增强可观测性数据串联
大家好,夜莺项目发布 v6.1.0 版本,这是一个中版本迭代,不止是 bugfix 了,而是引入了既有功能的增强.具体增强了什么功能,下面一一介绍. 1. 增强可观测性数据串联 从 v6.1.0 开始 ...
- k8s配置文件管理
1.为什么要用configMap ConfigMap是一种用于存储应用所需配置信息的资源类型,用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件. 通过ConfigMap可以方便的 ...