当前位置: 首页 > news >正文

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

目录

写在开头

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

第二步: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即可提权。

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

相关文章:

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

目录 写在开头 第一步:主机发现和端口扫描 第二步:Web渗透(修改XFF代理) 第三步:数据库手工枚举 第四步:sudo php提权 总结与思考 写在开头 本篇博客在自己的理解之上根据大佬红队笔记的视频进行…...

Mysql高级——索引(2)

常见索引 索引分类 在MySQL数据库,将索引的具体类型主要分为以下几类:主键索引、唯一索引、常规索引、全文索引。 分类含义特点关键字主键索引针对于表中主键创建的索引默认自动创建, 只能有一个PRIMARY唯一索引避免同一个表中某数据列中的值重复可以…...

【史上最硬核分享】Docker+jenkinsPipeline 运行实现 python 自动化(超详细)

一、实现思路 在 Linux 服务器安装 docker创建 jenkins 容器jenkins 中创建 pipeline 项目根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目执行完成之后删除容器 二、环境准备 Linu…...

leetcode 3. 无重复字符的最长子串

2023.9.15 本题我用的暴力双层for循环 unordered_set 解决的,外循环控制字符起始位置,内循环将字符放入 unordered_set,并查找有无重复的元素。 用了一个全局变量记录最长字串的长度,局部变量count记录当前层循环的最长子串长度…...

doccano 文本标注工具使用

最近在做面向大模型的文本标注工作,涉及到多人协同的问题,因此用到了doccano工具。 这个工具可以使用docker进行安装,安装之后的启动也都比较简单。 关于基础使用(例如管理员登录、新建任务、上传数据集等)&#xff…...

快速排序算法的递归和非递归

基本思路 选择一个基准值,将数组划分三个区域,小于基准值的区域位于左侧,等于基准值的区域位于中间,大于基准值的区域位于右侧。将大于和小于区域继续进行分区,周而复始,不断进行分区和交换,直…...

Maven无法拉取SNAPSHOT依赖的解决办法

背景 自己所在的部门主要是为其他项目组提供基础组件,如果需要使用新特性,其他项目组还会经常引用SNAPSHOT版本的组件进行开发测试。平时自己做测试的时候,因为手里有源码,所以每次都是先执行 mvn install 在本地安装后&#xff…...

day16-面向对象综合练习(上)

1. 设计游戏的目的 锻炼逻辑思维能力利用Java的图形化界面,写一个项目,知道前面学习的知识点在实际开发中的应用场景 2. 游戏的最终效果呈现 Hello,各位同学大家好。今天,我们要写一个非常有意思的小游戏 —《拼图小游戏》 我们…...

在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境

目录 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境一 Fyne 和 MSYS2简介1.1 Fyne1.2 MSYS2 二 安装 MSYS22.1 下载MSYS22.2 安装2.3 环境变量设置2.4 检测安装环境 三 参考文档 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发…...

漫谈:C、C++字符串的困局

由于历史的原因,C、C字符串是个很让程序员头疼的东西。 字符串被解读为字符数组,但是又不等价于字符数组,而是带有附加的结束符的字符数组。 结束符‘\0’也是一个字符,但是又不计算在字符串长度里面(strlen&#xff0…...

基于python+selenium的自动批量添加

场景 点击添加”新增“按钮,弹出”新增对话框“,输入各种数据,然后点击”确定“按钮,如此循环。数量多,这样操作累人。 selenium Selenium 是一个用于自动化 Web 浏览器操作的库,可以实现模拟点击、输入…...

gdb监视

怀疑踩内存了,如何利用gdb监视一段内存的值 在实际情况中,如果怀疑一个进程中的变量被踩内存了,但是不知道什么时候会被踩,就可以用下面的方法进行debug。GDB(GNU Debugger)是一个功能强大的调试工具&…...

STM32基础知识点总结

一、基础知识点 1、课程体系介绍 单片机概述arm体系结构STM32开发环境搭建 STM32-GPIO编程-点亮世界的那盏灯 STM32-USART串口应用SPI液晶屏 STM32-中断系统 STM32-时钟系统 STM32-ADC DMA 温湿度传感器-DHT11 2.如何学习单片机课程 多听理论、多理解、有问题及时提问 自己多…...

Python vs C#:首先学习哪种编程语言最好?

进入编码可能很困难。 最艰难的部分? 决定先学什么语言。 当谈到 Python 与 C# 时,可能很难知道在您的决定中要考虑哪些因素。 我们为您提供了有关这些全明星编程语言的所有信息。 什么是 C#? 自 2000 年作为 Microsoft Visual Studio 的一部分开发 C# 以来,它一直是开发人…...

代理IP和Socks5代理:跨界电商与全球爬虫的关键技术

跨界电商在全球化市场中崭露头角,而代理IP和Socks5代理则成为实现全球市场洞察和数据采集的不可或缺的工具。本文将深入探讨这两种代理技术在跨界电商、爬虫技术和出海战略中的关键作用。 引言: 介绍跨界电商的崛起和全球市场的机遇与挑战。引出代理IP…...

CentOS 7 调优之周期性的访问中断

文章目录 背景问题描述原因分析解决方案相关版本 背景 操作系统版本:CentOS Linux release 7.6.1810 (Core) 操作系统镜像安装后,未进行任何调整。正常部署应用,应用在 CentOS 7.9 未出现过此类现象。 问题描述 问题描述:负载教…...

SpringBoot表现层数据一致性

1.定义Restful类 说明:使用Data注解是Lombok库提供的一个注解,用于自动生成类的getter、setter、equals、hashcode和toString方法。 package com.forever.controller.utils;import lombok.Data;Data public class Restful {private Boolean flag;//dat…...

vue路由-两个树形结构数据-递归处理方法

1.vue静态路由 const dynamicRoutes [{path: /,name: /,component: () > import(//layout/index.vue),redirect: /home,meta: {isKeepAlive: true,},children: [{path: /home,name: home,component: () > import(//views/home/index.vue),meta: {title: 首页,isLink: ,…...

JSP SSM 成果展示系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP SSM 冬奥建设成果展示系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的 源代码和数据库,系统主…...

脚本:python绘制七夕爱心

文章目录 效果脚本Reference 效果 脚本 import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 640 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中心的X轴坐标 CANVAS_CENTER_Y CANVAS_HEIGHT /…...

L1 项目概述与Hadoop部署

1.技术栈:HadoopHiveSqoopFlumeAzkaban Flume采集Nginx web服务器上的日志,采集完成后存储到Hadoop的平台,最终存储到HDFS上,处理和分析采用Hive的方式,处理完之后利用Sqoop导出到Mysql中,最终利用一个Java…...

关键词文章生成器-标题文章生成器

那就是如何在根据标题生成文章和根据关键词生成文章之间找到平衡之道。在这个信息时代,内容创作已经成为了一项重要的工作,无论是博客作者、社交媒体达人还是企业宣传,都需要不断地输出优质的内容。但是,我们常常陷入一个两难的困…...

深入了解MySQL中的JSON_ARRAYAGG和JSON_OBJECT函数

在MySQL数据库中,JSON格式的数据处理已经变得越来越常见。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它可以用来存储和表示结构化的数据。MySQL提供了一些功能强大的JSON函数,其中两个关键的函数是…...

Ubuntu22.04开启后屏幕黄屏

1. 故障现象 系统:Ubuntu22.04 现象:电脑从开机到进入桌面一直屏幕黄屏 2. 故障分析 可能为屏幕色彩调节出现故障 3. 解决方案 系统设置——》色彩——》删除原来的配置(remove profile)——》添加配置Colorspace:Compatibl…...

华为云云耀云服务器L实例评测 | 搭建docker环境

目录 🍒docker的概念 🍒Docker 的优点 🫐1、快速,一致地交付您的应用程序 🫐2、响应式部署和扩展 🫐3、在同一硬件上运行更多工作负载 🍒云耀云服务器L实例 🫐产品优势 &#x1f95d…...

exesql=“UPDATE test set date=‘%s‘“ % date 是啥意思

这段代码是 Python 中的字符串格式化语法。让我们逐步解释它的含义: exesql "UPDATE test set date%s": 这是一个字符串赋值语句,将一个 SQL 更新语句赋值给 exesql 变量。SQL 更新语句是用于更新数据库表中的数据的语句。这个更新语句的目标…...

请体验一下falcon 180b 大语言模型的感觉

引言 由Technology Innovation Institute(T四训练的开源大模型Falcon 180B登陆Hugging Face!Falcon180B为开源大模型树立了全新的标杆。作为当前最大的开源大模型,有l80B参数并且是在在3.5万亿token的TII RefinedWeb数据集上进行训练,这也是目前…...

今晚8点,iPhone15开启预售

北京时间9月15日晚8点,备受全球果粉期待的苹果iPhone15系列手机正式开启预售。此次预售在苹果官网Apple Store在线商店、天猫Apple Store官方旗舰店以及Apple Store官方在线商店微信小程序同步进行。 今年苹果公司将Apple Store在线商店、天猫Apple Store官方旗舰店…...

Meetup 回顾|Data Infra 研究社第十五期(含资料发布)

本文整理于上周六(9月09日)Data Infra 第 15 期的活动内容。本次活动由 Databend 研发工程师-韩山杰为大家带来了一场主题为《Databend 数据集成方案》的分享,让我们一起回顾一下吧~ 以下是本次活动的相关文字、视频及资料: 通过…...

I2S/PCM知识点记录

目录 1.常见的音频采样率有两类,一类是48K domain,另一类是44.1KHz domain 2.常见采样深度 【即单声道和单slot位宽】8/12/16/24/32 bit 3.帧结构 4.I2S/PCM允许实际有效采样位宽比传输的位宽小 5.ddr存储对齐 6.sclk和mclk以及adifclk的产…...

做电信网站运营商/百度百度

免费Git客户端:SourceTree详细介绍 点击上边链接自动跳转...

佛山制作网站开发公司/怎么给公司做网站

第五章 引用类型 1、Object类型 2、Array类型 1)数组的length属性是可读可写的,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。 2)检测数组:Array.isArray()方法,IE9、Firefox4、Safari5、O…...

源码下载网站源码/电商平台怎么加入

基于图像处理的工件检测吴霆【摘要】摘要:研究了基于图像处理的工件轮廓检测技术的流程及算法,通过图像滤波、图像增强、阈值分割、边缘检测、边缘定位和参数测量及拟合等一系列算法,可以测出被检测工件是否符合要求及其误差范围。【期刊名称】广东轻工职…...

中山做app网站公司/百度关键词搜索排名

//这三个方法,实现了索引数据和列表数据的对应和定位 public int getPositionForSection(int section) {} public int getSectionForPosition(int position) {} public Object[] getSections() {} 3.游标Cursor的实现 Cursor接口的实现,有两种选择&a…...

哪里有做图片的网站/自己创建网页

最近更新的博客 【新解法】华为OD机试 - 关联子串 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 停车场最大距离 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 任务调度 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试…...

互动模板wordpress/网站内容管理系统

文章目录多态综述多态的分类多态实现条件多态的实现形式多态的好处多态综述 class Shape {public void draw() {} } class Cycle extends Shape {Overridepublic void draw() {System.out.println("○");} } class Rect extends Shape {Overridepublic void draw() …...