内网对抗-代理技术-隧道技术(SMB)
代理技术
代理技术使用的协议是SOCK 4/5
常用的代理工具有SockCap,Proxifiter,ProxyChains
SOCK协议
SOCK协议是一种网络协议,用于在计算机网络中提供网络应用之间的通信,是一种通用的、面向连接的协议,常用于实现客户端和服务器之间的通信
SOCK协议可以分为两个主要版本:SCOKS4和SOCKS5
- SOCKS4协议:
- 是一种简单的协议,只支持IPv4地址,不支持认证,适用于IPv4环境
- 客户端向服务器发送请求,指定目标主机的IP和端口,服务器将请求转发到目标主机,并在建立连接后将数据流转发给客户端
- SOCKS5协议:
- 支持IPv4和IPv6协议,支持各种身份验证方法,如无验证、用户名/密码验证
- 客户端向服务器发送请求,指定目标主机的IP和端口,服务器将请求转发到目标主机,并在建立连接后将数据流转发给客户端
SOCK协议主要用于实现网络代理功能,在本地计算机和远程服务器之间建立一个中间通道,使得网络请求可以通过该通道进行转发和处理,在一些场景下有重要的应用,在防火墙后访问被封锁的网站、隐藏真实IP
SOCK协议不属于OSI参考中七层模型,可以把SOCK协议理解为独立的协议,用于实现网络代理功能,从功能上看,SOCK协议涉及到了传输层和应用层的一些功能
我们为什么要用代理?
代理技术主要是为了代理流量
配合我们接下来的案例来理解:
- 建立攻击机与内网主机通讯
kali作为我们攻击机器,Windows2016-Web作为与外网连接的主机通过web渗透那些,但是kali无法拿下Windows2016-SQL、Windows2016-FILE等等,因为它们都不出网
- 避免被发现,隐蔽自身,执行攻击对象
真实环境下内网主机上存在流量监测设备、杀软,走代理攻击内网主机流量较小
-
实现持久化控制
通过横向渗透拿下全新后,我们需要把权限反弹给攻击机实现持久化控制。因为攻击机上集成大量工具软件,需要使用来进行权限维持
代理通讯-案例分析
工具:fscan Proxifier
环境:
kali(C2控制端) 192.168.182.136/24
Windows2016-Web NAT模式 192.168.182.182/24 仅主机 192.168.2.4/24
Windows2016-SQL 仅主机 192.168.2.5/24 ,192.168.3.4/24
Windows2016-FILE 仅主机 192.168.3.5/24 , 192.168.4.4/24
Windows2016-DC 仅主机 192.168.4.5/24
前提条件
在虚拟机设置配置好网卡,以及IP地址,通过渗透有Windows2016的webshell权限
将net2-192.168.2.0、net3-192.168.3.0、net4-192.168.4.0都禁用(模拟内网环境)
CS正反向上线
反向上线
设置反向监听
此时我们已经拿到Windows2016-Web的权限,用CS生成Payload,在跳板机上运行
可以正常上线
用fscan扫一下跳板机外网开放的IP、端口,还有一个IP应该是连接内网主机的,根本扫不了
通过CS自带的可视化模型判断这个反向连接是通过192.168.182.128这个IP连接到kali的,我们要想从我们主机能走192.168.2.0网段,有一种方法就是设置代理SockS节点
用Proxifier这款工具(windows本机),设置代理服务器为kali,配置代理规则,通过代理走192.168.2.0网段
此时再用fscan走代理扫描,就有正确结果了
信息采集发现在Windows2016-SQL上有个web服务,本机也可以通过代理访问
目前上线的是Windows2016-Web,通过代理可以在本机上访问内网服务,再通过fscan扫描
正向上线
设置TCP监听
生成正向连接的payload,正向连接需要完整的payload
输入命令,在Windows2016-SQL上执行payload,能正常上线
还是在Windows2016-SQL上搞一个sockets节点
代理规则改为192.168.3.0网段
扫描192.168.3.5,发现21端口开放
FTP也能通过sockets节点正常连
后续就是套娃了,利用在Windows2016-SQL上创建sockets节点,正向监听生成payload,connect上线
隧道技术-SMB协议
以图为例,win2012入站规则限制,出站宽松,出站对应 -> 反向连接,但是win2008有入站规则限制,反向连接这条路就走不通了,但是win2012的入站规则里面允许通过访问打印机,可以利用SMB协议建立正向连接来实现win2012流量出网
如何判断?
通过CS扫描网段主机的445端口,内网动静不能太大
SMB协议介绍
SMB(Server Message Block)协议是一种在计算机网络中共享文件、打印机和其他资源的通信协议。它最初由微软开发,用于在局域网中的计算机之间共享文件和资源,445端口运行
- 打印机共享:SMB协议支持打印机的共享,允许用户在网络中使用共享打印机进行打印操作,通过SMB协议,用户可以连接到其他计算机上的共享打印机,并发送打印任务进行打印
- 文件共享:SMB协议允许计算机之间共享文件和目录,通过SMB协议,用户可以在网络中访问其他计算机上的共享文件夹,并进行文件的读取,写入和管理操作
查看win2012的网络连接信息
netstat -ano
445端口开放,开启了SMB服务
实战-SMB协议搭建隧道-拿下win2016-DC(文件,打印机设备)
前提条件:
拿下web权限,收集各个主机的明文密码以其hash
环境:
kali(C2控制端) 192.168.182.136/24
Windows2016-Web NAT模式 192.168.182.182/24 仅主机 192.168.2.4/24
Windows2016-SQL 仅主机 192.168.2.5/24 ,192.168.3.4/24
Windows2016-FILE 仅主机 192.168.3.5/24 , 192.168.4.4/24 防火墙规则:只能访问WEB,入站规则:TCP 80
Windows2016-DC 仅主机 192.168.4.5/24 防火墙规则:只能访问打印机
在第二台机器上验证
中转上线-Windows2016-FILE
在Windows2016-FILE上开启防火墙,配置允许WEB
在CS上配置反向监听,端口设置为2222
在Windows2016-FILE在开启监听前后查看2222端口情况
选择反向监听的Payload,并运行
可以正常上线
SMB横向移动-Windows2016-DC
防护墙规则配置
防火墙添加文件和打印机共享入站规则
全部添加
建立SMB监听器
- SMB监听器无需配置IP、会话,常用于横向移动
- 需要提前收集主机上的明文密码以及hash,无需生成后门
在Windows2016-FILE利用ARP协议进行端口扫描,发现目标主机
在目标上右键,点击jump,选择psexec64
选择之前信息收集得到的第三台机器Windows2016-FILE的用户密码,Listener选择SMB监听,Session也是第三台机器
成功上线
总结
在学习内网这块,难点在于内网不出网
- 要根据防火墙因地制宜的选择方式
- 在内网攻防里面,是要建立在已经建立代理通讯的情况下。
- 正向连接:目标把流量发到自己的某个端口,攻击机主动去连接,适合入站规则宽松
- 反向连接:目标把流量发给攻击机的某个端口,目标主动去连接,适合入站严格,出站宽松
- 横向移动:是指攻击者在一个网络内部从一个系统或网络节点移动到另一个系统或网络节点的行为