内网渗透中常用的隧道工具

VSole2021-12-01 21:38:27

frp

项目地址

https://github.com/fatedier/frp/

简介

  • frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透
  • 跨平台支持linux,win,mac
  • 类似于ngrok,运维、开发人员经常使用它管理内网机器和调试程序,例如将内网的22,3389转发到公网,开发人员将本地web服务转发到公网调试,msf/rat远控的内网上线,可以代替前几年流行的”内网通”服务
  • 优点:不需要免杀,支持加密传输

基本用法

  • 在有公网ip的vps上部署服务端,然后在目标的内网机器上运行客户端即可反连公网机器,根据配置把内网中的目的端口转发到公网的那台机器上。网上也有一些免费和收费frp服务,可以免去自己部署服务端。
  • 简单示例:
  • 服务端和客户端均支持配置文件ini运行和命令行运行,下面示例为命令行。
服务端:./frps -p <服务监听端口> -t <token>客户端:./frpc tcp -s <服务端ip>:<服务端端口> -r <在服务端监听的对应端口> -i <内网地址> -l <内网端口> -t <token> --ue --uc
  • –ue –uc 分别为加密和压缩(use_encryption && use_compression)
  • 例如通过webshell转发出该机器的3389端口
你的机器:./frps -p 7890 -t woshitokenWebshell: frpc.exe tcp -s 1.1.1.1:7890 -r 9999 -i 127.0.0.1 -l 3389 -t woshitoken --ue --uc
  • 此时访问你机器的9999端口,即可访达目标机器的3389端口。
  • 更多参数用法查看github项目。

SSH

简介

  • SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发
  • 优点:linux自带,传输加密,支持socks代理

用法示例

相关参数:

-C :压缩数据传输。-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。-N :不执行脚本或命令,通常与-f连用。-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。-L :本地转发-R :远程转发-D :动态转发,即socks代理
本地转发(本地建立监听)
ssh -C -f -N -g -L <本地监听ip>:<本地端口>:<远程ip>:<远程端口> 用户名@目标IP -p <ssh端口>ssh -C -f -N -g -L 0.0.0.0:1234:192.168.1.100:3389 root@192.168.2.101 -p 22
远程转发(远端建立监听)
ssh -C -f -N -g -R <远程ip>:<远程端口>:<本地ip>:<本地端口> 用户名@目标IP -p <ssh端口>ssh -C -f -N -g -R 0.0.0.0:1234:192.168.5.2:3389 root@192.168.2.101 -p 22

注:如果远端不能监听0.0.0.0,以下两个方法:

1. 需要修改 ssh 配置/etc/ssh/sshd_config   GatewayPorts 项写为 yes    重启ssh后即可监听0.0.0.0
2. 使用rinetd把监听在127.0.0.1转发到0.0.0.0上
动态转发(socks)
ssh -C -f -N -g -D <本地ip>:<本地端口> 用户名@目标IP -p <ssh端口>ssh -C -f -N -g -D 0.0.0.0:1080 root@192.168.2.101 -p 22

socks代理上本地的1080端口,即可访问192.168.2.101的内网环境


netsh

简介

  • netsh是Network Shell的缩写,是windows为我们提供的功能强大的网络配置命令行工具。
  • 支持tcp,udp 正向端口转发和修改防火墙规则,没有反向转发的功能,不支持socks。
  • 优点:win自带,支持ipv4和v6。

用法

  • 在xp/2003下使用,要先安装ipv6,装完后需要重启机器才能生效
netsh interface ipv6 install
管理防火墙
  • 对于xp/2003的操作命令不同与之后的系统,而且xp/2003的防火墙不区分出站入站
netsh firewall show state 可查看防火墙的状态,从显示结果中可看到防火墙各功能模块的禁用及启用情况。netsh firewall set opmode disable 用来禁用系统防火墙netsh firewall set opmode enable 可启用防火墙。
netsh firewall add portopening TCP <端口号> "规则名称"   允许xx端口出入站netsh firewall delete portopening TCP <端口号>          删除该条规则
  • 对于 2003 以后的系统,命令如下
netsh advfirewall show allprofiles 查看防火墙的状态netsh advfirewall set allprofiles state on 开启防火墙netsh advfirewall set allprofiles state off 关闭防火墙
netsh advfirewall firewall add rule name="规则名称" dir=in(in为入站,out为出站) action=allow(allow为放行,block为阻止) protocol=TCP localport=<端口号>     添加规则netsh advfirewall firewall delete rule name="规则名称" dir=in protocol=TCP localport=<端口号>      删除规则
端口转发
netsh interface portproxy show all   查看所有已设置的转发规则netsh interface portproxy add v4tov4 listenport=<监听端口> connectaddress=<将要转发的ip> connectport=<将要转发的端口>   添加转发规则netsh interface portproxy delete v4tov4 listenport=<转发的端口>   删除规则

ew(EarthWorm)

项目地址

https://github.com/rootkiter/EarthWorm

https://github.com/rootkiter/EarthWorm/blob/master/server/download/ew.zip

简介

  • 支持正反向tcp端口转发,类似lcx(htran)
  • 支持反向socks代理
  • 缺点:流量不加密,需要免杀

用法简要说明

-l 本地要监听的端口-f 要主动连接的ip-g 要主动连接的端口-d 要反弹到的ip-e 要反弹到的端口-s 工作模式
工作模式支持如下:lcx_tran 正向tcp端口转发,监听在本地lcx_slave 反向tcp转发客户端lcx_listen 反向tcp服务端ssocksd 创建正向socks代理服务端,监听在本地,直接把当前环境socks代理出去rssocks 创建反向socks代理服务端rcsocks 反向socks代理客户端

reGeorg&ABPTTS

项目地址

https://github.com/sensepost/reGeorg

https://github.com/nccgroup/ABPTTS

简介

两款针对Web应用程序的HTTP隧道,使用方法简单,详情查看github项目

防火墙端口转发
本作品采用《CC 协议》,转载必须注明作者和本文链接
1) Namp收集信息 2) 简单文本文件登录脚本 (SiTeFiLo) 1.0.6 - 文件泄露/远程文件包含 3) 空间越权(CVE-2018-18955) 4) hydra爆破 5) Vim提权 2.漏洞 1) CVE-2008-5763/2008-5762 2) CVE-2018-18955
段时间在一次内网中遇到了一个问题,当时想了很多办法,虽然最终没能解决但是也学了很多东西。
隐藏通讯隧道技术
2021-10-22 22:16:06
防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。nslookup 是windows自带的DNS探测命令,执行:
内网渗透合集(二)
2023-01-28 09:35:05
接下来在内网肉鸡再次执行:htran -p -slave 公网肉鸡IP 119 127.0.0.1 8009?linux也有实现,感觉使用方法更加明朗,且与windows下的兼容 在此推荐下。把windows的小做修改下,重新编译了下,源程序比较简单就不上传工程文件了,直接给个C文件,自己编译下即可。linux下实现大同小异,只不过用的fork实现子线程。此时在渗透测试端192.168.10.50可看到通道连接成功,效果如图4。
NAT穿透是如何工作的
2022-08-11 06:32:23
整个过程对双方透明。本文接下来都将关注在 UDP 上。对收发包的 socket 有直接控制权。例如,从经验上来说,无法基于某个现有的网络库实现 NAT 穿透,因为我们 必须在使用的“主要”协议之外,发送和接收额外的数据包。某些协议将 NAT 穿透与其他部分紧密集成。
隧道与端口转发
2021-11-18 08:26:13
如果想获得课程报名资格,请添加文末小助手微信咨询。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站协议。情况1:目标禁止出站ip如果目标主机设置了严格的策略,防火墙只允许目标内网机器主动连接公网指定的ip。这样的话,没法反弹shell。情况2:禁止出站端口Linux系统使用Linux系统自带命令探测出网端口
SSH代理转发
2022-03-04 22:03:04
浏览器开启代理SOCK5可以看到IP发生变化四、SSH本地转发网络拓扑图1.kali能与边界服务器互通。这里用ubuntu作为边界服务器sudo apt-get install openssh-server //安装SSH服务
Windows如果RDP连接上去,可以使用图形化工具(如御剑)。如果是webshell,可以使用fscan、nmap。重命名Dir,方便后续操作。将客户端配置删除?服务端监听地址?服务端仪表板的端口。log_level记录的日志级别。执行命令等待frpc连接./frps?#是该条规则在服务端开放的端口号,待会儿用proxyfier连的端口
内网渗透合集(三)
2023-01-28 09:44:16
jsp端口转发渗透过程中,由于windows和linux的差别以及运行语言环境的限制导致端口转发经常出现问题。于是自己写了个简单的JSP的端口转发脚本。仿造 LCX的功能,具有正向、反向、监听三种模式。对于目前数量众多的JAVA WEB网站来说,可以比较方便的实现端口转发。在这里发布出来,小伙伴们使用过程中,如果发现什么bug欢迎提交哈~参数说明/KPortTran.jsp?lip = local ip / 本地ip //一般为内网主机IP. lp = local port / 本地端口 //一般为内网主机端口
启动网络扩展功能以后,移动办公设备与虚拟网关之间会建立一条SSL VPN隧道,移动办公设备从虚拟网关地址池中获得一个私网IP地址,用于访问内网资源。虚拟网关解封装以后,再查找路由和安全策略,发送给服务器端。图 2 网络扩展业务交互流程因此,首先要允许移动办公用户通过HTTPS登录虚拟网关,建立SSL隧道。根据客户端配置,SSL隧道可能使用TCP 443端口或者UDP 443端口
VSole
网络安全专家