内网渗透学习-流量穿透

内网渗透学习-流量穿透

本章内容主要是介绍内网渗透过程中的两种流量穿透方式:端口转发和sockets代理

端口转发

端口转发是常用但较为不便的一种方式,有很大的局限性。转发端口数量有限,实战中利用起来较为麻烦。

转发工具可以是cs和msf

应用场景:
在通过外部打点拿下一台web服务器后,在进行内网渗透探索的过程中,发现内网主机在公网上不提供服务,但对web服务器开放一些服务,那么此时可以利用端口转发的方式,让内部开放的服务端口与外网建立联系

例如一台内网主机3306端口不对外开放mysql服务,但是对攻击者已经拿下的web服务器开放服务,那么攻击者此时就可以利用端口转发,将内网这台机子的3306端口转发到web服务器的3307端口,攻击机直接通过3307端口建立通信,进行进一步渗透。

 

这种方式的局限性也很明显,能利用的端口有限,相应的渗透难度也很大

sockets代理

sockets代理的方式相当于建立一个vpn,vpn连上的效果等同于将攻击机直接拉入内网,这种方式的利用效果就非常好。

穿透工具

lcx(端口转发),

nps(使用较多,是go语言编写,功能强大,包含端口转发和建立各类隧道的功能,有统一的后台管理界面,方便后期维护和操作各类服务器和客户端),

frp(端口转发),

ew(sockets代理),

ngrok,

cs,msf,

reGeorg(处理反向代理的一种方式,reGeorg主要是把内网服务器的端口通过http/https隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用webshell建立一个socks代理进行内网穿透,服务器必须支持aspx、php或jsp这些web程序中的一种。)参考:https://blog.csdn.net/qq_38963246/article/details/103994097

代理方向

正向代理

使用这种代理的情况就是常说的机子不出网,上传webshell或者利用端口漏洞主动渗透建立连接的方式就是正向连接,连接流量走向是只能攻击者主机走向服务器,但服务器无法主动发送流量与建立攻击者通信

这种情况下一般利用reGeorg,利用webshell建立一个socks代理进行内网穿透

反向代理

与正向连接相反,连接流量此时可以从服务器走向攻击机,服务器可以主动访问外部主机建立通信。

这种情况下可以利用nps

流量穿透的作用

1.在内网中做扫描,不做代理只能在跳板机上上传工具做扫描,不方便而且容易被杀软或者防护设备察觉,建立隧道做代理只要加密做的足够好就很难被发现。

2.访问内网中的数据库和服务(Redis,Mysql等等)

3.访问内网中的web服务(堡垒机,网站后台等等),有些站点后台不会开设在公网上,只开设在内网上,在建立代理后可以扩大信息收集范围,对内网开放端口进行扫描

4.访问远程桌面(高危操作)

搭建nps

nps文档:https://ehang-io.github.io/nps/#/install

在github库里安装自己需要的版本,32位就选386,64位就选amd64

在参照文档安装配置nps之前花了点时间配置了一下go语言的环境,走了点弯路,这里放一下go语言环境搭建的过程,这里找到了一个不错的文章,按步骤配置就不会出错,当然这是使用了源码安装的方式,安装包可以直接跳过这个过程

https://www.cnblogs.com/tufeigege/p/15592131.html

sudo wget -c https://dl.google.com/go/go1.15.6.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local(下载安装)

vim /etc/profile(配置环境变量)

添加如下内容

export GOROOT=/usr/local/go
export GOPATH=/tufei/code/go
export GOBIN=$GOPATH/bin
export PATH=$GOPATH:$GOBIN:$GOROOT/bin:$PATH

 

source  /etc/profile (配置生效)

go version(查看go版本) 

nps的搭建看文档基本就能完成,网上也有很多教程,nps配备图形界面,操作起来和frp相比,个人觉得还是比较方便的

这里自己搭建的时候是用了一台公网的vps加上本地的虚拟机,服务器架设在公网vps上,客户端架设在本地ubantu虚拟机上

服务端登录界面

管理面板

 新增一个客户端(客户端配置基本按照默认的来就行,设置允许客户端通过配置文件连接)

接下来新增隧道

 隧道配置有很多种类,按照实际使用场景的需要进行配置

 TCP隧道:相当于端口转发的功能,例如通过公网服务器1.1.1.1的8001端口,连接内网机器10.1.50.101的22端口,实现SSH连接。

 UDP隧道:相当于端口转发的功能,例如通过公网服务器1.1.1.1的53端口,访问内网机器10.1.50.101的53端口,使用DNS服务。

 HTTP代理:相当于端口转发的功能,例如将公网服务器1.1.1.1的8004端口作为HTTP代理,访问内网网站。

 SOCKS代理 例如将公网服务器1.1.1.1的8003端口作为SOCKS5代理,访问内网任意设备或者资源。 (最优先的选择)

 私密代理:无需新增端口,实现访问内网服务器10.1.50.2的22端口,可防止其他人连接。还需要一个客户端作为访问端提供一个端口进行访问。

 P2P代理: 流量不经过公网服务器,受nat类型影响较大,不能保证100%成功,支持大部分nat类型。

在配置隧道过程中,要注意端口不与使用过的端口冲突重复。这里我选用了SOCKS代理进行配置

 点击客户端列表的加号查看客户端连接方式

 将这条指令直接复制到客户端运行

 一开始没有成功,检查了一会儿发现是vps上的防火墙端口没关,百度云vps管理那儿有一层防火墙,然后ubantu的vps上有自带的ufw,两个都要配置一下,要提前打开需要使用的端口

连接成功!

服务端管理页面也显示了在线

 

代理工具

其中windows的代理工具proxifiler用起来比较顺手方便,大家可以自行选择和尝试

Windows-Proxifiler

nps配置好后,要想使用本机的工具直接对目标内网进行扫描或者渗透就需要在本机上使用代理(很多工具上也可以自己配置相应的代理)

这里我使用了Proxifiler工具,利用Windows作为攻击机

设置代理服务器

 

填写好ip和端口,点击检查,测试连接

 

连接成功,这里测试时使用了baidu的链接进行了测试,同时客户端立马出现了回显

接下来是Proxifiler关于代理规则的配置

 如图,应用程序中可以指定任意一个程序配置代理,或者指定文件名开头的程序走代理(如fire*.exe就是所有fire开头的程序流量都会走代理)

目标主机和目标端口的配置也是一样的道理

动作属性配置刚才连接设置的SOCKS5代理,其他的属性的配置都按照默认的”任意“

应用此代理规则

 

 可以看到挂上代理后本机的程序流量都走了代理,转发到了目标的主机上

 接下来做一个测试,我们在架设了客户端的主机上挂起网站服务

正常情况下我们需要利用外部地址才能对改网站进行访问

 未挂代理前访问127.0.0.1:80

然后在本机上挂起代理,访问127.0.0.1:80

 直接利用内部地址访问了客户端上搭建的网站而不是外部地址。

Linux-Proxychains

这个工具在使用之前要先修改配置文件,且只会影响指定运行程序。网上的教程很多这里就不多赘述了

安装

sudo apt-get install proxychains

proxychains配置修改文件/etc/proxychains.conf

在最后的ProxyList里修改代理设置:
例如:socks5    127.0.0.1    8888

题外话:挂代理也是一种反溯源的手段,例如你掏sqlmap狠扫对面网站的时候如果没有使用代理就很容易被查到并封锁IP,尤其在大型的红蓝对抗行动中,不挂代理扫对方网站的行为无异于自爆,这段时间跟着师傅们打护网就碰见不挂代理,被蓝队溯源到无奈出局的红队。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值