红队打靶:Me and My Girlfriend打靶思路详解(vulnhub)

news2024/11/25 5:53:48

目录

写在开头

第一步:主机发现和端口扫描 

第二步:Web渗透(修改XFF代理) 

第三步:数据库手工枚举 

第四步:sudo php提权

总结与思考

写在开头

 本篇博客在自己的理解之上根据大佬红队笔记的视频进行打靶,详述了打靶的每一步思路,并非复现writeup,读者耐心看完,定会有所收获。Me and My Girlfriend这个靶机是近期遇到的最简单的一太靶机,步骤较少,读者可直接盲打试试。涉及到的知识点包括x-forwarded-for主机头转发、 手工爆库、sudo php提权,完整的打靶思路详见:

「红队笔记」靶机精讲:Me and My Girlfriend - 手工爆库、超帅php提权、打一遍这靶机、帅到自己都不知道自己是谁,whoami呼啊咪?_哔哩哔哩_bilibili

  本文针对的靶机源于vulnhub,详情见:

Me and My Girlfriend: 1 ~ VulnHub

   下载链接见:

https://download.vulnhub.com/meandmygirlfriend/Me-and-My-Girlfriend-1.ova

 本靶机的目标是拿到两个flag即可,即flag1.txt和flag2.txt,这个靶机还涉及了一点剧情,靶机描述如下:

Description

Description: This VM tells us that there are a couple of lovers namely Alice and Bob, where the couple was originally very romantic, but since Alice worked at a private company, "Ceban Corp", something has changed from Alice's attitude towards Bob like something is "hidden", And Bob asks for your help to get what Alice is hiding and get full access to the company!

Difficulty Level: Beginner

Notes: there are 2 flag files

大意:有一对cp,Alice和Bob,原本很浪漫相爱,但自从Alice在一家私企"Ceban Corp"工作之后,Alice对Bob的态度就变了。Bob请求你黑了这个公司的服务器,解开Alice的心结。

靶机下载成功后用vmware打开,将网络链接设置为NAT模式。靶机启动之后如下:

第一步:主机发现和端口扫描 

 常规思路,这个靶机比较简单,就不细讲了:

nmap -sn /10.10.10.0/24    //主机发现
nmap -sT --min-rate 10000 10.10.10.152   //TCP全端口扫描
nmap -sT -sV -O -sC -p22,80 10.10.10.152    //用默认脚本进行服务版本、操作系统探测
nmap -sU --top-ports 20 10.10.10.152    //UDP常用端口探测
nmap --script=vuln -p22,80 10.10.10.152  //默认漏洞脚本扫描

我的kali机器所在网段是10.10.10.0,主机发现靶机是10.10.10.152,开放端口是22和80,信息如下:

第二步:Web渗透(修改XFF代理) 

 看来是只能从80端口Web入手,浏览器访问靶机ip,显示如下:

这页面提示我们,站点只能本地local访问,查看网页源代码如下:

 提示我们应该研究以下如何使用x-forwarded-for, X-Forwarded-ForXFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段,换句话就是无论你用了多少层代理,XFF头都能给你显示出每层代理和原始ip,如果没有XFF或者另外一种相似的技术,所有通过代理服务器的连接只会显示代理服务器的IP地址,而非连接发起的原始IP地址,这样的代理服务器实际上充当了匿名服务提供者的角色,如果连接的原始IP地址不可得,恶意访问的检测与预防的难度将大大增加。

 那么我们就添加一个XFF头部,内容写localhost表示本地,也就是在每个请求中添加如下一行:

x-forwarded-for:localhost

 用burpsuit拦截请求,然后改包添加x-forwarded-for:localhost即可访问:

如下图,添加XFF头部为本地后,可以访问站点10.10.10.152了:

 但如果每次请求页面都要手动添加x-forwarded-for:localhost还是挺麻烦的一件事。因此可以在BurpSuite代理proxy模块中的Options选项的Match and Replace添加一条规则:

 点击Add,将请求头中增加x-forwarded-for:localhost即可,这样每次请求时都会添加这一行,就无需每次请求都手动添加了。

 点击OK,保证在Enabled列是勾选状态。

第三步:数据库手工枚举 

现在观察web页面,Ceban Corp正是靶机描述中Alice的公司名称。这个界面其实没太多信息,Login是登录界面,需要有账号和密码。

Register是注册界面,如下,干脆就随便注册一个账号试试:

  我这里注册的账号和密码都是aaa,注册完成之后Login,登录成功:

点击Profile,可以看到当前账号的信息。

  注意url中有一个user_id=12,这估计是一个查询,我们尝试能不能直接修改这个user_id,实现对其他用户账号密码的查看:

将 user_id改为1后,成功看到了其他账号,那我们手工更换user_id为1到11,看看有哪些凭据,重点看有没有账号为alice(靶机描述的提示),果然找到了,当user_id=5时,是Alice的凭据:

这密码都是前端明文显示的,alice账号的密码是4lic3 ,我们尝试用ssh登录,如果数据库密码和ssh密码一致的话,我们就能够成功ssh,如下图,撞库成功了!

第四步:sudo php提权

先找找有没有用户flag:

在.my_secret目录下看到了flag1.txt,这个目录下还有一个my_secret.txt,看看是啥:

 看来Alice准备在公司找对象搞外遇了,Bob真惨。不过这和我们打靶没啥关系,我们要想办法提权,首先先sudo -l查看当前alice用户有哪些sudo权限:

好家伙,有php的sudo权限,凡是sudo权限有语言的,都可以用这个语言构造反弹shell或启动shell的操作,这里咱也不用反弹shell,直接用php执行系统命令启动shell好了,命令如下:

sudo /usr/bin/php -r "system('/bin/bash');"

 提权成功:

 flag2.txt在root目录下:

 至此打靶完成,感觉还挺容易的。

总结与思考

 这个靶机相对于前几个靶机算是很简单的,涉及的知识点就是XFF头转发的原理与使用、手工爆库、sudo php提权。不过这个靶机体现了渗透中很明确的攻击链,也助于初学者了解常规渗透思路。还是总结一下打靶过程:

第一步:主机发现和端口扫描,确定入手点基本上是80。

第二步:Web渗透,直接浏览器访问靶机无法显示内容,提示我们修改XFF头部本地访问,于是用BurpSuite改包在请求头添加x-forwarded-for:localhost即可访问。

第三步:数据库手工枚举,注册账号登录后,发现url中存在user_id,怀疑这里是否是数据库直接查询的传参,直接秀嘎user_id发现可以找到alice的账号和密码,尝试撞库登录ssh,成功。

第四步:sudo -l枚举sudo权限的二进制可执行文件,发现有php,直接用php执行系统命令启动shell即可提权。

 到此这个靶机就讲解完毕了 ,希望读者能够点赞关注多多支持!学渗透还是要实操呀。如果读者有什么打靶的问题也欢迎评论区留言指出,我一定知无不言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPIO子系统编写LED灯的驱动、linux内核定时器

一、GPIO子系统 1.概念: 一个芯片厂商生产出芯片后会给linux提供一个当前芯片中gpio外设的驱动,我们当前只需要调用对应的厂商驱动即可完成硬件的控制。而linux内核源码中的gpio厂商驱动有很多,这里linux内核对厂商驱动做了一些封装&#x…

基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)

校园点餐小程序 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统主要功能5.1 登…

python-字符串去掉空格的常见方法

python提供了去掉字符串空格的方法,可以满足大部分需求。 但在实际应用中,还需要灵活借助python其他方法,来实现字符串空格的删除。 比如,去掉字符串的全部空格、字符串连续空格保留一个等,都需要结合其他的方法来实现…

【kafka】mac环境安装kafka

生产中使用到的中间件使用心得记录,感兴趣可以关注我一起学习~ 环境: 硬件:mac 软件:kafka v3.0.0 安装步骤: 终端安装: 通过brew安装,会默认直接安装最新的版本 步骤1&#xf…

Android StringFog 字符串自动加密

一、StringFog 作用 一款自动对dex/aar/jar文件中的字符串进行加密Android插件工具,正如名字所言,给字符串加上一层雾霭,使人难以窥视其真面目。可以用于增加反编译难度,防止字符串代码重复。 支持java/kotlin。支持app打包生成…

【JDK 8-函数式编程】4.6 方法引用与构造函数引用

一、 方法引用与构造函数引用 1. 说明 2. 语法: 二、静态方法 三、实例方法 四、构造函数 4.1 单个参数 4.2 2个参数 五、执行结果 一、 方法引用与构造函数引用 以前调用:对象.方法名、类名.方法名 jdk1.8提供了另外一种调用方式 :: 1. 说明 用来直接访…

子网的划分

强化计算机网络发现王道没有这一块的内容,导致做题稀里糊涂。于是个人调研补充。 子网划分是将一个大型IP网络划分成更小的子网,以实现更有效的网络管理和资源分配。 原因: 提高网络性能:子网划分可以减少广播域的大小&#xff…

靶场练习——SDcms文件上传漏洞靶场

文章目录 前言一、寻找网站后台页面1、点击请登录,查看URL2、修改URL参数,找到后台登录页面 二、登录后台管理系统1、不能使用爆破2、使用弱口令登录 三、寻找文件上传点四、上传文件操作1、上传普通的图片文件,查看数据包2、尝试上传PHP文件…

Mysql----锁

文章目录 锁 概述 全局锁全局锁 概述全局锁 操作表级锁表级锁 表锁表级锁 元数据锁表级锁 意向锁行级锁行级锁 行锁行级锁 间隙锁&临键锁 锁 概述 是什么 是计算机协调多个进程或线程并发访问某一资源的机制。 意义 在数据库中,数据是一种供许多用户共享的…

C/C++计算分数的浮点数值 2019年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C计算分数的浮点数值 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C计算分数的浮点数值 2019年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 两个整数a和b分别作…

每日一题 337. 打家劫舍 III

难度:中等 整体思路相当于是前两天的方法倒过来,毕竟二叉树最常用的解法就是递归倒推 对于每一颗子树,他必定有一种最大的盗取方法,但是只有它的 root 的盗取情况才会影响到 root 的父节点,即如果收益最大的盗取方法…

【TCP】滑动窗口、流量控制 以及拥塞控制

滑动窗口、流量控制 以及拥塞控制 1. 滑动窗口(效率机制)2. 流量控制(安全机制)3. 拥塞控制(安全机制) 1. 滑动窗口(效率机制) TCP 使用 确认应答 策略,对每一个发送的数…

机器学习第七课--情感分析系统

分词 分词是最基本的第一步。无论对于英文文本,还是中文文本都离不开分词。英文的分词相对比较简单,因为一般的英文写法里通过空格来隔开不同单词的。但对于中文,我们不得不采用一些算法去做分词。 常用的分词工具 # encodingutf-8 import …

Linux C 多线程

为什么会有线程? ————————>>>> 进程实现多任务的缺点: 进程间切换的计算机资源开销很大,切换效率非常低进程间数据共享的开销也很大 线程和进程的关系 线程是进程的一个执行单元,是进程内的调度实体。比进程…

应用:使用#todo标签,清理未完成笔记 | Obsidian实践

各位【见睿思齐】的朋友,好久不见。断更了这么久,非常抱歉。起初是因为家里出了些事情,不得不断更了一段时间;后来是因为断更太久,找不回写作的感觉,于是又断更了更久的时间……总之是太不应该。最近读了一…

ESLint+Prettier+VSCode编程规范

编程规范 ESLintPrettierESLint和Prettier配合解决代码格式化问题1. 在VSCode搜索Prettier插件安装2. 创建prettier配置文件3. 在VSCode中设置3.1 找到左下角设置图标,点击设置3.2 但是对VSCode 而言,默认一个 tab 等于 4 个空格,而 ESLint 希…

【Hierarchical Coverage Path Planning in Complex 3D Environments】

Hierarchical Coverage Path Planning in Complex 3D Environments 复杂三维环境下的分层覆盖路径规划 视点采样全局TSP 算法分两层,一层高级一层低级: 高层算法将环境分离多个子空间,如果给定体积中有大量的结构,则空间会进一步细…

基于PyTorch搭建FasterRCNN实现目标检测

基于PyTorch搭建FasterRCNN实现目标检测 1. 图像分类 vs. 目标检测 图像分类是一个我们为输入图像分配类标签的问题。例如,给定猫的输入图像,图像分类算法的输出是标签“猫”。 在目标检测中,我们不仅对输入图像中存在的对象感兴趣。我们还…

软件工程之总体设计

总体设计是软件工程中的一个重要阶段,它关注整个系统的结构和组织,旨在将系统需求转化为可执行的软件解决方案。总体设计决定了系统的架构、模块划分、功能组织以及数据流和控制流等关键方面。 可行性研究 具体方面:经济可行性、技术可行性…

如何正确安装滚珠螺杆螺母?

在安装滚珠螺母时,相信很多人都遇到过装反这个问题,滚珠螺杆螺母是通过高精度的加工和配合实现传递转矩和运动的,如果将滚珠螺杆螺母反过来装,会导致导向槽和调整垫片位置不正确,使得整个螺杆系统的传动精度降低&#…