攻防实战

2023-11-19

0x00 前言

本文介绍了笔者在某次攻防演练中,如何从外网渗透到某车企的内网的详细过程(为了保护敏感信息,所有数据都已经脱敏,有些截图也不完整,请见谅)。

这次网络攻防演练分为两个阶段一共十四天,前七天是私有资源阶段,后七天是公共资源池阶段。共有12支队伍参与比赛,我们公司全程只有两名选手参赛。由于公司从不提供一些辅助工具和人力资源,并且我俩近期连续参加了多场比赛,导致每次比赛后我俩都很内耗。

0x01 信息收集

裁判只给出了目标企业的名称,让我们自行寻找其他的信息,这是对我们资源差的队伍是一种考验。

幸运的是,笔者之前编写了一套信息收集的辅助脚本,现在可以派上大用场了。

首先,使用子公司收集脚本来搜索一级子公司。该脚本根据特定的条件和规则进行搜索,以获取与一级公司有50%的控股关系的子公司。然后,我们对这些一级子公司再次使用脚本进行搜索,以找到与它们有50%的控股关系的子公司。这个过程不断循环,直到没有符合条件的子公司为止,所以你看到下面最深达到了四级公司。

图片

接下来,再用资产收集脚本对子公司收集脚本的ICP结果进行一系列的操作,该脚本包括子域名匹配、端口扫描、web路径搜索、服务识别等,最终结果会到了以下三个文件,其中ip文件可以交给灯塔去进行信息收集、url文件可以交给poc扫描器、详情文件可以在扫描poc的时候手工去寻找一些POC扫描器里面没有的漏洞(如弱口令,手动狗头)。

图片

0x02 web打点

我先用poc扫描器(xray青春版,poc-bomber等开源作品)对资产收集的结果进行了一番扫描,结果没有发现一个可利用漏洞(人少公司也不提供些打点资源,怎么搞嘛,狗头保命)。

没办法,只能老老实实手动地一个个分析哪些URL可能有惊喜了。

在翻了一大堆无聊的页面后,我目光锁定在了一个url上,这url的title是XXConfluence

图片

图片

当发现这个网站使用的是Confluence时,我想很多师傅们都知道该怎么做了。我立刻检测它是否存在RCE,经过一番尝试后,发现这个版本确实存在RCE,并且确认了服务器的操作系统是Linux。

接下来就把shell反弹到服务器上,发现已经拿到了无限制的shell访问权限。马上做了一个远程控制马并上传到目标服务器。MSF上线后我就查了一下网卡,发现这个服务器有个172.32.0.30的网卡,接着上传代理工具。

图片

图片

0x03 内网信息收集

利用frp工具将内网暴露出来后,我们成功进入了172.32.0.0/24网段。

接下来,我和队友开始了正式的内网信息收集工作。

图片

图片

按照常规的习惯,用fscan工具来扫一扫,看看能不能找到一些弱口令或者可利用的漏洞,让我们的攻击更加顺畅。可是,扫描结果让我失望了,32网段居然没有一个可以利用的漏洞点。我只好用fscan继续扫172.16到172.31的网段,希望能有所收获,但是又怕扫的太猛触发了一些报警,于是就小心翼翼的进行着。运气比较好,在扫172.16段的时候,发现了一个F5 BIG-IP文件上传漏洞。

为了验证这个漏洞是否真的存在,于是构造了一个URL来测试一下,结果发现可以成功执行和回显。我心里暗喜,这下有戏了!

https://172.16.0.11/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
 

图片

接下来的步骤变得相对简单了,我将反弹shell的代码上传到F5服务器上,并通过本地的NC监听来执行。这样,我成功获取了F5服务器的反弹shell,并且发现它具有root权限,这意味着我们可以在这台服务器上做更多的信息收集了,拓宽攻击面。
 

图片

图片

图片

为了进一步探索这台服务器的漏洞,分别测试了它是否能够无密钥登录其他服务器ssh、检查了历史命令记录和一些运行中的服务,但都没有找到有价值的信息。后来想到由于这台服务器上主要运行着java程序较多,使用了一条配置文件搜索命令,希望能从配置文件中发现一些突破点。

find / -name "*.properties" -o -name "*.yaml" > ret.txt

在仔细检索了多个文件后,我最终在一个叫做base_config.yaml的文件里发现了Redis和MySQL的密码。可是,当我尝试登录这些服务时,并没有找到任何敏感数据。而且最新的数据只更新到了2022年(此截图密码部分为笔者随机生成,不过与原密码长度相同)。
 

图片

就在我思考是否应该停下来的时候,我突然灵光一现,想到既然Redis和MySQL的密码都是一样的,那么SSH的密码是否也是相同的呢?我立即使用Xshell工具尝试连接,令人惊喜的是,我居然成功连接了!接着,我开始思考是否其他服务器也会使用相同的密码,因为在内网中,很多管理员认为密码强度足够,所以会在其他服务上重复使用相同的密码。

在这里,将fscan扫描的172B段服务器的IP汇总到一个列表中,并使用爆破工具进行密码爆破。最终,我成功破解了47台服务器的密码。在使用Xshell手动登录时,我不得不承认,当资产数量较多时,手指会感到很累(手动狗头)。加微信hackctf55进渗透交流群。

以下是成功登录上的服务器

图片

0x04 突破逻辑隔离

我正在手动使用Xshell登录时,收到了来自队友的好消息。他尝试登录172.32.0.81时,发现该服务器存在多个网卡。
 

图片

并且在历史命令中,我们找到了管理员在该服务器上添加了一条软路由,将流量转发到10.54.0.0/19网段
 

图片

我们立即决定在172.32.0.81上搭建一个代理,以便能够访问到10.54.0.0/19网段的资源
 

图片

前置工作做好后,然后使用fscan对10.54.0.0/19网段进行扫描,我们发现了一个MySQL数据库弱口令:

[+] mysql:10.54.15.233:3306:root P@ssw0rd

在该数据库中,我们找到了一些敏感的数据,包括基础配置文件、车联网信息、车籍档案信息等。尤其是基础配置文件中,包含了各种服务账号和密码、nacos配置、云服务的secretId和secretKey等敏感数据。

0x05 云内网渗透

既然已经获取了云服务secretId、secretKey,那就利用CF这个云渗透神器进行进一步的探测,配置好AK后发现权限为管理员权限
 

图片

随后创建子账户,接管控制台
在登录控制台时发现拥有64台云服务器、13个mysql云数据库、3TB的对象存储、17个vpc网络等信息
 

图片

这64台服务器在cf里执行命令都是root权限
 

图片

此外,神仙队友还从存储桶中找到了几万人的联系方式、家庭住址、驾驶证、身份证正反面照片、车牌号等高度敏感的信息。加微信hackctf55进渗透交流群。

这样一来,本次渗透也基本完成了,48台物理服务器加上64台云服务器以及大量配置文件数据、开发环境配置、大量客户敏感数据,分数已经远超上线分了。

0x06 总结

  1. 注意清理痕迹:在我和队友看到分数下来后就继续去渗透别的资产了,没有及时去跳板机上做清理痕迹,导致被溯源该单位成功复活,我们也相应地被扣了分数,损失惨重;

  2. 内网横向的时候一定提高速度,因为特别是有安全服务的win主机,一般报警都是有延迟性的,但是延迟性可能只有2小时、4小时、6小时等,所以一定要尽快地把资产梳理清楚,多获取路径分;

  3. 总结下本次攻击流程:
    外网Confluence应用RCE --> 内网F5应用RCE --> 从F5服务器配置文件中获取到数据库密码–>将数据库密码对ssh进行密码爆破 --> 爆破成功的服务器的历史记录中发现逻辑隔离10网段 --> 找到数据库弱口令 --> 从数据库的nacos配置中获取到云服务具有管理员权限的AK和SK --> 进入核心业务内网-->找到核心数据;

  4. 多尝试一下密码喷洒,可能会有意外的收获;

  5. 之后我会多利用社工钓鱼的技巧,去获取目标的敏感信息,因为现在通过传统的技术手段去攻击目标的漏洞已经不太容易了。

- end -

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

攻防实战 的相关文章

  • djangorestframework 序列化

    djangorestframework 序列化 序列化常用字段参数 1 选项参数 name serializers CharField min length 3 max length 20 max length 最大长度 min lengh
  • Matplotlib画条形图和柱形图并添加数据标注

    这里放上我比较喜欢的一种条形图设置 使用的是之前爬取的重庆地区链家二手房数据 数据如下 链接 https pan baidu com s 17CMwUAdseO8tJWHEQiA8 A 提取码 dl2g import pandas as p
  • java list stream 去除 null_Stream流的这些操作,你得知道,对你工作有很大帮助

    Stream流 Stream 流 是一个来自数据源的元素队列并支持聚合操作 元素是特定类型的对象 形成一个队列 Java中的Stream并不会存储元素 而 是按需计算 数据源 流的来源 可以是集合 数组等 聚合操作类似SQL语句一样的操作
  • 信号和槽

    1 信号和槽是一种高级接口 应用于对象之间的通信 它是QT的核心特性 也是QT区别于其它工具包的重要地方 信号和槽是QT自行定义的一种通信机制 2 moc Meta ObjectCompiler QT工具 该工具是一个C 预处理程序 它为高
  • Charles 安装及配置,详细步骤

    一 安装激活 1 1 下载 https www charlesproxy com download 1 2 激活 打开Charles gt Help gt Register Charles gt 输入 Registered Name htt
  • 2020.11.13 奇偶链表

    2020 11 13 奇偶链表 题目描述 给定一个单链表 把所有的奇数节点和偶数节点分别排在一起 请注意 这里的奇数节点和偶数节点指的是节点编号的奇偶性 而不是节点的值的奇偶性 请尝试使用原地算法完成 你的算法的空间复杂度应为 O 1 时间
  • Java:List<Map>指定Key去重,差集(针对集合里面只有Map非实体对象)

    ListMap去重 差集 针对集合里面只有Map非实体对象 问题 由于业务需求 接口的入参出参都是List格式 对于有些查出来的数据 为了防止重复的数据 需要对集合去重 以下分享一种去重的方法 该方法可根据指定字段对List
  • 最全 VxLAN 知识详解

    什么是VXLAN VXLAN Virtual eXtensible Local Area Network 虚拟扩展局域网 是由IETF定义的NVO3 Network Virtualization over Layer 3 标准技术之一 是对
  • 容器修改完成的镜像打包到自己的docker hub

    容器修改完成的镜像打包到自己的docker hub 一 步骤 首先 我们基于当前的容器进行了修改 比如 我们首先创建了一个Ubuntu的容器 然后在容器当中安装了python3 安装了Django框架 安装NGINX服务器 安装了mysql
  • rt-thread中使用WebClient WebNet总结 http学习

    HTTP学习资料 1 需求背景 WebClient主要用来传输文件 WebNet用来支持cgi接口 需要支持get post put delete方式 2 webnet中使用 2 1 webnet存在问题 2 11 rt thread 使用
  • Web基础 HTML标签 六种超链接标签的使用方式

    超链接标签 重点 1 链接的语法格式 a href 跳转目标链接 target self 文本或图像 a a 标签里的a是单词anchor的的缩写 意为 锚 两个属性的作用如下 属性 作用 href 用于指定链接目标的url地址 必须属性
  • 【物联网毕设基础】NBIOT 窄带物联网

    文章目录 1 简介 2 NBIOT简介 3NB的型号介绍 3 1 BC95 3 2 BC35 3 3 BC28 3 4 BC26 3 5 BC20 3 6 BC30 4 NB物联网卡 5 OpenCPU 6 BC260模块详解 6 1 基本
  • 【周末闲谈】二进制VS三进制

    个人主页 个人主页 系列专栏 周末闲谈 周末闲谈 第一周 二进制VS三进制 文章目录 周末闲谈 前言 一 效率 二 三进制计算机 三进制计算机的最后 总结 前言 作为计算机是20世纪最先进的科学技术发明之一 对人类的生产活动和社会活动产生了

随机推荐

  • yolov7 onnx tensorrt 批量预测 全网首发

    目录 deepstream yolov7 mask yolov5的TensorRT部署 动态batch 开源tensorrt 调研笔记 tensorrt 加载模型batch size为 1的原因
  • JS解混淆-AST还原案例

    目录 一 js混淆了解 1 为什么要混淆 2 常见的混淆模样 ob sojson jsfuck AAencode jjEncode eval 二 AST初步认识 三 解混淆常用的方法 一 js混淆了解 1 为什么要混淆 js混淆的作用 为了
  • 为什么计算机中的整数要用补码表示?补码表示有什么好处?

    为什么计算机中的整数要用补码表示 补码表示有什么好处 在计算机中 补码可谓是十分神奇而又重要的存在 我们知道整数在计算机内部的机器数一般都是补码表示的 这里给出几个这样表示的好处 符号位可以和数值为一起参加运算 比如俩个负数相加 只要结果在
  • 风投平台

    一 天使湾创投 http www tisiwi com 二 天使汇 http angelcrunch com 三 蚂蚁天使 https www mayiangel com index htm 四 梦想小镇孵化器平台 http www dre
  • docker+jenkins+git搭建java自动化部署

    一 杂言 首先今天在写这篇文章的时候 刚好LOL洲际赛 RW赛前不被看好的情况下 为LPL扳回一城 RNG成功的在BO5最后一场拿下AFS LPL成功的拿下了洲际赛的冠军 恭喜LPL 田忌赛马的故事大家都耳熟能详 但是不可避免的也会出现逆转
  • pandas读取和存储CSV文件

    import pandas as pd import numpy as np read csv data pd read csv data temp 0 csv header None data DataFrame object data
  • 前端核心手写面试题(看你的马步扎实不扎实)

    防抖 防抖
  • c++类和对象--封装--属性和行为做整体

    封装的意义 1 将属性和行为当做一个整体来表现对象 类中的属性和行为统称为成员 属性又叫成员属性或成员变量 行为又叫成员函数或成员方法 案例 设计一个圆类 求圆的周长 include
  • 华为OD机试真题 Java 实现【机器人活动区域】【2023Q1 200分】

    一 题目描述 现有一个机器人 可放置于 M N的网格中任意位置 每个网格包含一个非负整数编号 当相邻网格的数字编号差值的绝对值小于等于 1 时 机器人可在网格间移动 问题 求机器人可活动的最大范围对应的网格点数目 说明 1 网格左上角坐标为
  • QT+ OpenGL学习

    文章目录 QT OpenGL QOpenGLWidget 不需要GLFW QOpenGLFunction X X Core 不需要GLAD 你好 三角形 顶点输入 顶点着色器 片段着色器 链接着色器 本节代码 元素缓冲对象EBO QT交互
  • haxm-windows_v7_5_6下载

    下载地址 https github com intel haxm releases download v7 5 6 haxm windows v7 5 6 zip 我已经下载好上传了 想自己去下载的小伙伴可以去上面的网站自己下载哦
  • 当今职场,正在加速淘汰 “巨婴员工”

    我担任过多家上市公司的技术高管职位 在工作中经常会遇到巨婴型员工 他们外在的表现是 不能够很好地管理自己 缺乏自律 缺乏起码的抗挫折能力和抗压能力 需要领导呵护着 同事们忍让着 作为一名管理者 绝不能放任团队中的巨婴存在 必须时刻保持团队的
  • STM32F4之ADC1【库函数操作】

    折腾了两天ADC多通道采样 采样的结果都很乱 完全不是预期值 在amobbs求助也没有找到结果 于是决定从简单开始 一步步折腾着破ADC ADC试验1实验说明 1 这个实验仅仅是初始化一个ADC 对其输入进行采样 2 使用STM32F4的A
  • Windows下强大的包管理器(二)

    Windows下强大的包管理器 Scoop BB Time 官方解释 What does Scoop do 安装教程 配置教程 修改用户安装程序和全局安装程序默认安装位置 直接修改环境变量 命令行方式 未完待续 使用教程 查找软件 安装软件
  • webpack之处理字体图标资源和打包其他资源

    1 下载图标地址 iconfont 阿里巴巴矢量图标库 2 添加字体图标资源 按照网站要求将资源等引入使用 src fonts iconfont ttf src fonts iconfont woff src fonts iconfont
  • Qt之QSS(动态属性)

    简述 QSS可以定制应用程序的外观 无需关注Qt样式背后的魔力 从非常轻微到极其复杂的调整 样式表都可以做到 对于一个完全定制和独特的用户体验 QtQuick和QGraphicsView是更好的选择 简述 自定义属性 限制 示例 效果 源码
  • 如何打开mysql数据库?

    方法一 win r 输入cmd 点击确定 输入mysql uroot p命令 回车 输入密码 方法二 用图形化工具 navicat 点击链接 选择mySQL 输入用户名和密码 点击确定 打开即可看到myql中已有数据库
  • 因 Log4j 漏洞,ONUS 被黑客攻击后拒交赎金;OpenHarmony 3.0 实现全设备能力初步覆盖;压缩软件 7-Zip 新版发布

    整理 宋彤彤 责编 屠敏 开源吞噬世界的趋势下 借助开源软件 基于开源协议 任何人都可以得到项目的源代码 加以学习 修改 甚至是重新分发 关注 开源日报 一文速览国内外今日的开源大事件吧 一分钟速览新闻点 被 Log4j 黑客攻击后 这家金
  • postMan使用技巧

    使用postMan调试接口 一些接口要实现登录才能访问 即要还token才能访问 一般登录后 拿到token才复制到其他接口下添加token变量 如些复制感觉是挺麻烦的 这时我们可以设置postman的全局变量 操作如下 添加调试环境和全局
  • 攻防实战

    0x00 前言 本文介绍了笔者在某次攻防演练中 如何从外网渗透到某车企的内网的详细过程 为了保护敏感信息 所有数据都已经脱敏 有些截图也不完整 请见谅 这次网络攻防演练分为两个阶段一共十四天 前七天是私有资源阶段 后七天是公共资源池阶段 共