简介
端口转发是点对点的方式, 代理是点对面的方式, 如果我们只需要访问主机的特定的端口, 使用端口转发就够了, 但通常在渗透进内网之后, 我们还需要对整个内网进行横向渗透, 这时代理必然是一个高校的方法. 代理分为正向代理和反向代理, 正向代理常适用于外网可以直接访问到 web 服务器的情况下, 反向代理适用于服务器可以出网, 但是外部无法直接访问服务器的情况, 针对大型企业, 现在几乎都是 CDN, 负载均衡等设备, 所以个人认为现在反向代理更常见于渗透攻击中.
一, EW+Proifier
环境
攻击端 (windows10):172.16.110.150
靶机 1(Windows 2008 R2): 外网 IP:192.168.254.132 内网 IP:192.168.1.1
靶机 2(windows2008): 内网 IP:192.168.1.2
使用方法
反向代理使用方法 (正向代理这儿不演示, 反向代理应用更多些, 因为反向代理主要适用于服务器无法从外部访问, 但是服务器可以访问外部):
1. 通过 shell 上传一个对应版本的 EW, 这儿我上传了一个 Windows 的
2. 本地执行: ew_for_Win.exe -srcsocks -l "自定义端口 1" -e"自定义端口 2"
3. Shell 上执行: ew_for_Win.exe -s rssocks-d "接收端 IP" -e "自定义端口 2"
4. 配置 Proifier
行为分析
配置好后对内网 IP 的一次访问:
可以看出如果使用 ew 进行内网的全局代理, 如果攻击者使用的上传工具又经过加密, 比如冰蝎这款 shell 管理工具, 我们是无法通过流量回溯来发现上传代理工具, 以及代理转发痕迹.
不过在靶机本地可以看到可疑进程:
可疑网络连接:
事件日志:
VirusTotal 检查结果:
总结
如果利用 ew 进行全局代理, 配合加密得 shell, 通过流量回溯极难发现, 通过服务器本地日志查看, 进程查看, 网络排查容易发现痕迹, 且 ew 会被部分杀软查杀.
二, Regeorg+Proifier
环境
攻击端 (Win10):192.168.223.1
靶机一 (Win2008): 外网 IP:192.168.223.128 内网 IP:192.168.1.1
靶机二 (Windows ): 内网 IP:192.168.1.2
使用方法
1. 通过 Shell 上传对应的 Tunnel 脚本, 访问:
表你是脚本运行正常.
2. 在本地运行 reGeorgSocksProxy.py 脚本:
Python reGeorgSocksProxy.py-p "自定义本地监听端口" -u "tunnel.jsp 脚本 url"
运行成功, 然后配置 proifier, 配置方法与第一个环境一样:
行为分析
建立代理的流量:
对内网 Web 的一次访问:
通过流量可以看出, 如果使用 tunnel.jsp 作为隧道, 流量有明显跟隧道文件有关的特征, 使用端口扫描工具对内网进行端口扫描:
可以看到代理特征还是调用 tunnel 隧道来进行内网渗透, 查看 http 流量:
3389 连接的特征:
传统的 3389 连接流量:
用 jmeter 漏洞工具进行漏洞攻击 (这里靶机 IP 自动更新到 129 了):
追踪 TCP 流可以看到命令执行痕迹:
总结
利用 regeorg+proifier 方式来进行内网全局代理之后有明显的流量特征, 但是流量中的行为不方便分析, 流量行为主要是以流量隧道来进行攻击, 我们能直观看见的是目的 IP 和目的端口, 所以可以根据端口全球数量和频率可以大概分析攻击者行为, 脚本会被部分杀软检测.
三, Abptts&SSH
使用方法
Abptts 是一款基于 python2.7 的 http 加密隧道工具, Abptts 能做的很多:
1. 通过 http 加密隧道转发至目标内网下指定的单个 TCP 端口
2. 通过 http 加密隧道同时转发至目标内网下的多台机器上的多个 tcp 端口
3. 把 SSH 隧道包裹在 http 加密隧道中传递, 对目标二级内网进行穿透
行为分析
单个端口转发: 内网的 80 端口转发到本地的 80 端口, 无流量产生, 无痕迹可分析
环境
攻击端 (Windows):192.168.114.1 靶机一 (Windows): 外网 IP:192.168.114.128 内网 IP:192.168.1.4 靶机二 (Windows): 内网 IP192.168.1.2
本地访问 80 端口, 特征为大量对代理文件的请求, 数据流加密了无法看出内容:
SSH 动态转发:
攻击端 (kali):192.168.114.131
靶机一 (CentOS):192.168.114.132
SSH -D 本地端口 user@SshServerHost
SSH 协议采用了加密处理, 无法对内容进行分析, SSH 动态转发需要知道用户密码, 所以使用具有一定前提条件, 对服务器的 last 读取可以看到 SSH 登录痕迹, 并且因为 SSH 动态转发是一个持续化的过程, 所以只要转发进程没有结束, 就会一直产生 tcp&&SSH 协议的流量.
Abptts+SSH 动态转发:
攻击端 (kali):192.168.114.131
靶机 (CentOS):192.168.114.132
双加密的内网代理手法, 繁琐了点, 但是对蓝方人员更是无法分析行为: 特征为频繁请求代理文件.
VirusTotal 检查结果: 惊奇发现居然免杀
来源: http://www.tuicool.com/articles/nYFJrer