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

2023-09-15 19:33:14

目录

写在开头

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

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

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

更多推荐

现场直击|亚数TrustAsia精彩亮相IOTE深圳物联网展,CSA联盟展台等你来!

2023年9月20日,IOTE2023第二十届深圳国际物联网展在深圳国际会展中心(宝安)顺利开幕。作为物联网领域年度最重要的行业盛会之一,本次展会汇聚全球来自工业、物流、基建、智慧城市、智慧零售等领域的600+企业、10万+行业人士,共同探索物联网发展的新方向。作为亚太地区首家具有全球可信CA资质的MatterNon-

微信小程序关键词排名优化:提升你的小程序可见性

随着智能手机的普及,许多企业和开发者都投入了大量的时间和资源来创建各种各样的应用,以满足用户的需求。而微信小程序则是一种快速兴起的应用类型,它们提供了轻量级的应用体验,无需下载即可使用。然而,要想让你的小程序脱颖而出,关键词排名优化是必不可少的。本文将深入探讨如何通过关键词排名优化来提升你的微信小程序的可见性和用户体验

Webshell 流量特征分析

前言:webshell是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站

如何平滑升级 Nginx

Nginx详情:Nginx是一个流行的Web服务器和反向代理服务器。当需要升级Nginx时,可能会涉及到停止和启动服务,这将导致一段时间内网站不可用。为了避免这种情况,可以采用平滑升级的方法。以下是平滑升级Nginx的步骤:1.查看现有Nginx编译参数在终端输入以下命令查看当前Nginx的编译参数:/usr/loca

国内什么牌子的ipad手写笔好用?开学性价比触控笔

如今,苹果的Pencil系列无疑是iPad使用者的最佳选择。但这电容笔的售价实在是太高了,对于普通用户是买不起的。因此,在使用过程中,如何选用一款性能优良、价格低廉的电容笔是非常关键的。作为一个“苹果粉”,同时也是一个资深的数字发烧友,本人对电容笔也有一定的认识,下面就是我为大家准备的几款价格相对亲民的电容笔!一、电容

数据结构与算法——14.栈

目录1.概述2.栈的接口设计3.用链表来实现栈4.用数组来实现栈5.用两个栈来实现一个队列6.用一个队列来实现一个栈7.总结1.概述计算机科学中,stack是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书。说明:栈是线性的,只能在一端

八、数据类型转换

数据类型转换1.数据类型转换1.1.隐式类型转换1.2.显式类型转换1.3.训练11.4.训练2——————————————————————————————————————————————————1.数据类型转换类型转换是将一个值从一种类型更改为另一种类型的过程。例如:可以将String类型的数据"457"转换为数值型

Java 21正式发布了,来来来,一睹它的芳容!

Oracle高兴地宣布JDK21已经正式上线了。这是按照每六个月一次的发布计划,准时推出的第12个版本。这种定期的发布模式为开发者提供了稳定和可预见的创新,使得他们可以轻松地接纳和采用这些新特性。Java由于其出色的性能、稳定性和安全性使其持续成为全球最受欢迎的编程语言。#01JDK21已经正式发布Oracle现已为开

ElasticSearch:文章检索

实现目标思路与ES前期准备使用postman添加映射put请求:搜索结果展示内容:标题、布局、枫叶图片、发布时间、作者名称、文章id、作者id、静态url需要对:内容、标题进行分词json"content":{"type":"text","ananlyze":"ik_smart"}http://${url}:${por

重构Transformer神经网络:优化的自注意力机制和前馈神经网络

重构Transformer神经网络:优化的自注意力机制和前馈神经网络原文代码网络结构推理代码训代码数据处理代码长词表辅助代码原文标题:重构Transformer神经网络:优化的自注意力机制和前馈神经网络摘要:本论文研究了一种改进的Transformer神经网络模型,该模型使用区别于传统自注意力机制的新型注意力机制,以及

湖南长沙石雕石质文物三维扫描数字化雕刻3D打印复刻文化遗产-CASAIM中科广电

石质文物主要包括石雕、石塔和古建筑等,颇具代表性的雕刻动物作品有:龙、凤、狮子、麒麟、貔貅、金蟾等。石雕是我国文化遗产的重要组成,在书写灿烂文明中扮演着重要角色,记载了我国文化和历史的变迁。随着现代艺术的发展,雕塑艺术作品创作风格和形式呈现多元化的趋势,CASAIM三维数字化越来越多地被应用到雕塑艺术品的复刻、修复、展

热文推荐