红蓝对抗-红队攻防全流程解析
红队攻防全流程解析
文章目录
- 红队攻防全流程解析
- 基础设施架构设计部署
- 选择域名
- 邮件钓鱼之前期信息收集与侦查
- 钓鱼样本制作
- 内网横向移动
- 文件感染与横向移动
基础设施架构设计部署
普通架构:红队人员–》teamserver cs–》目标机 缺点:功能未分离、无潜伏通道、回连日志多、灵活性较低
演进架构:DNS/HTTP/HTTPS分离server tips:1~2cpu 2G内存 10G硬盘,回连数不超过5台,潜伏通道(根据实际目标环境优先)
完整架构:域名和IP(VPS)teamserver(CS)前置机(redictor) CS -》teamservers 1/2/3/… 前置层(SMTP/PAYLOAD/C2/隐蔽C2)
选择域名
抢注过期域名 expireddomains.net DELETE DOMAIN
tips1: 不要包含世界大厂和杀毒厂商相关的域名,以及和目标相关的域名
tips2:注册目标相关区域常见的域名,记得开隐私保护
其他:www.freshdrop.com www.domcop.com
tips3:检查域名是否被分类,金融、医疗、电商、航空、旅游 great
tips4:去VT、微步检查,域名是否被标黑
tips5:举报滥用规则仔细阅读(freenom 慎用)
- 培养域名(养号)
搭建正常域名,提交至各安全厂商给站点分类
tips1:把域名A记录解析到大厂ip,使用时候再解析到C2,不用时候解析回大厂ip
tips2:VT 自评, alex 自评 - 域名解析检测
- 域名分类检测
domaincheck: - IP检测
外网IP,通过情报站看是否被标黑
使用CDN隐藏真实IP(部分安全厂商会拦截CDN IP)
- 借鸡生蛋,
subdomain takeover:高信誉域名A解析B -》
高信誉肉鸡做前置转发
- C2工具
自定义流量特征:DNS/HTTP/HTTPS/SMB和TCP
Payload加载流程:shellcode/Loader/Stageless/beacon
DNS:如果用到dns通道默认参数必须修改(容易被设备检测),不要用DNS做数据通道
HTTP(S):不要在uri中的文件后缀设置js、css等静态文件,效果:付费证书>免费证书>自签名证书 (Let’s Encrypt 免费 3个月过期,开自动续)
CS 3.14
- Redirector
Office365、Pastebin、Slack、Facebook、Dropbox、Gmail、Twitter…
缺点:需要硬编码到第三方服务
第三方服务用作C2相关资源汇总
https://pentestarmoury.com/2017/07/19/s3-buckets-for-good-and-evil/
https://rhinosecuritylabs.com/aws/hiding-cloudcobalt-strike-beacon-c2-using-amazon-apis/
https://github.com/daniel-infosec/wikipedia-c2
https://unit42.paloaltonetworks.com/aggah-campaign-bit-ly-blogspot-and-pastebin-used-for-c2-in-large-scale-campaign https://www.harmj0y.net/blog/powershell/command-and-control-using-active-directory/
https://blog.netspi.com/databases-and-clouds-sql-server-as-a-c2/
https://outflank.nl/blog/2017/09/17/blogpost-cobalt-strike-over-external-c2-beacon-home-in-the-most-obscure-ways https://labs.mwrinfosecurity.com/blog/tasking-office-365-for-cobalt-strike-c2
https://github.com/maldevel/canisrufus
https://unit42.paloaltonetworks.com/darkhydrus-delivers-new-trojan-that-can-use-google-drive-for-c2-communications https://github.com/byt3bl33d3r/gcat
https://github.com/maldevel/gdog
https://www.welivesecurity.com/wp-content/uploads/2019/05/ESET-LightNeuron.pdf
https://github.com/bkup/SlackShell
https://github.com/j3ssie/c2s
https://github.com/praetorian-code/slack-c2bot
https://github.com/microsoft/skype-dev-bots
https://github.com/PaulSec/twittor
https://blog.talosintelligence.com/2017/04/introducing-rokrat.html
https://www2.fireeye.com/rs/848-DID-242/images/rpt-apt29-hammertoss.pdf
https://github.com/woj-ciech/Social-media-c2
Google App Engine| Amazon |Azure|Aliyun CDN
可见层:DNS、TLS
不可见层:HTTPS
URL(高信誉) SNI(高信誉) HOST(C2)
https://github.com/vysecurity/DomainFrontingLists
代替方案:HTTP pipelining( >http 1.1 )
和 domain fronting 效果相同
利用同一个tcp连接发送不同的host的http包
tips:good domain + bad domain 包一层同时发过去
建议使用多个判断过来请求,拒绝使用默认uri,对抗全网C2扫描
仅允许目标相关IP访问,对抗云沙盒
限定访问时间段,只在某个时间段请求payload
不要把非payload的uri重定向到google等高信誉域名
建议:在www.aaa.com搭建来养域名,使用c2.aaa.com的二级域名做C2
DNS socat|iptables|ssh(tmux和screen选一个)
Apache|Nginx
Tips:
Domain Fronting(隐藏IP、域名的方式)
第三方服务用作C2
- 邮件钓鱼(SMTP)
域名:同C2域名选择
高信誉的邮件发送者:Mailchimp、Sendgrid
正确配置SPF、DKIM\DMARC
SSL证书
发送时间和频率
一键部署
钓鱼邮件框架:Gophish (https://github.com/gophish/gophish)
- 隐蔽性和安全性
解决方案:V2ray + Nginx + CLoudflare + Freenom+ Websocket 搭建代理
权限最小化:使用iptalbes限定组件通讯,SSH进行端口转发
Teamserver:限制端口只能本地访问,限制beacon监听端口只能redirector访问
Tips:VPS容易被GFW拦截?
- 基础设施监控系统
记录完整日志,设置告警
自动化部署 LuWu(https://github.com/QAX-A-Team/LuWu)
日志中心
邮件钓鱼之前期信息收集与侦查
面临的技术挑战:
邮件网关 mail gateway
浏览器
EDR、IDS
Mail Gateway
通过上述结论,探测,fuzzing ANTI-SPAM 引擎规则
稳定触发NDR的办法:
正文大于10M
收件人超过5000个
邮件退信默认开启
MTA默认不开启 Recipient Validation
SPF
DKIM
新注册域名
生僻域名后缀
敏感关键字
ANTI-SPAM
特性:
结论:当我们发送一封钓鱼邮件给一个不存在的邮箱账户时,如果能收到NDR,证明钓鱼邮件通过了邮件网关安全审查(BACKSCATTER ATTACK)
BYPASS ANTI-SPAM
BYPASS ANTI-MALWARE
NDR
- 总结
钓鱼样本制作
- 钓鱼邮件类型
恶意的chm文档:利用easy,但目前比较难过杀软,免杀效果差
带有恶意宏代码的office文档:易于混淆(结合图片模糊之类),但需要手动开宏,进程链可疑
白加黑钓鱼:利用带签名的白程序,通过DLL劫持的方案加载恶意DLL;比较容易过AV,但需要解压执行
LNK文件钓鱼:链接对象是Powershell,进程链完善
PPT钓鱼样本:PPT超链接,弹出“安全声明”,不用启动宏,但必须全屏播放,启用才执行;不推荐使用
漏洞利用的钓鱼邮件:效率高,同样成本也高
- 写工具自动化生成恶意lnk,关键函数:
IShellLink::SetIconLocation()
IShellLink::SetShowCmd() 窗口显示
IShellLink::SetArguments()
IShellLink::SetPath()
…
- LNK钓鱼邮件制作
短文件名 POWERS~1.EXE
代码混淆 参考赛门铁克的paper
安全类进程检测
遍历进程,获取进程对应的版权信息,与黑名单列表比对
优点:升级版本也不变,通用
进程名检测
窗口标题检测
虚拟机-取证工具-杀软检测-调试器
常规手法
新姿势
如何根据PID获取进程的全路径:ProcessExplorer
x86不太可行,x64可以
绕过PCHunter 0RING hook
检测后行为,通知攻击者,及时善后处理
联网下载Word文档
本地释放Word文档
协议内容还原:tcp、http、smtp
文件内容还原:office、pdf、zip
加壳程序还原:upx
加密算法数据还原:base64
(New-Object System.Net.WebClient).DownloadFile(url, file_path);
数据还原引擎
尾部可以追加任意大小的word、PE、PowerShell
select -last 1 定位到最后一个对象,以“\n”划分对象
select -index 1 也可以
ARGUMENT用于LNK中存储命令行参数
StringData结构,CountCharacters
IShellLink::SetArguments()
塞入数据的最大值是 explorer.exe 对命令行参数长度的限制
实测得出 0x7FC2(31KB)
将Word塞到COMMAND_LINE_ARGUMENTS
将Word塞到lnk文件的尾部(推荐使用)
钓鱼简历的编写:内容可选浮夸,让HR打开看完后大概率删除,防止提给技术人员
LNK图标的显示:改成各个系统都能默认显示的通用图标
如何隐藏行为:SetShowCmd() 最小化窗口
Word文档存放:
杀软对抗
内网横向移动
- 内网侦查
主动扫描
被动搜集
雷区警示
方法对比
设备资产识别
可用服务采集
脚本检测
监听广播消息
风险面:Network ACL封锁、受控主机HIDS、HoneyPot、NIDS
经典主被动内网侦查方式
- 域内信息侦查 * 类域 * *nix * Windows AD
DNS排查
LDAP(S)& GC(S)
查询LDAP(S)服务
Kerberos
HUNT DOMAIN ADMIN
Scan UDP/53
Query DNS FQDN from DNS
Query Locators from DNS
扫描端口,利用特性筛查域名
匿名读取部分LDAP元数据
读取LDAP证书信息
GC服务 查询 TCP/3268 TCP/3269
防御:可以关闭匿名绑定
ADexplorer:GUI,一些cmdlet
Get-ADUser
Powerview:大量cmdlet
服务票据
Service Ticket
结论:普通域账号申请服务票据后可以对账号离线破解
KERBEROAST攻击(基于上述结论)
Rubeus.exe
PowerView
Session Key,使用用户的NTHASH加密
John/HashCat 可以进行离线破解
KERBEROSUSERENUM(a-team github)
MSF模块
AS-REQ & AS-REP
KDC TGT票据
基于AS协议的用户枚举
ASREPROAST
SPN(Service Principal Name)域对象的属性,对象是机器/用户,必须设置
TGS-REQ & TGS-REP
远程会话枚举
远程用户枚举
远程登录枚举
NetSessionEnum(SMB会话)
NetWkstaUserEnum(交互登录会话)新版本系统需要 admin privilige
场景:一些同域管理账号同名的本地账号可能是同一人创建
SAMR 查询组和成员信息(注:Win 10后没有admin无法枚举)
LSARPC 查询SID相关
交互式登陆:主要指Console和RDP登陆的方式
特定用户登录会话
获取主机权限:Vul RBCD & RPRN
提取遗留的凭据: Powerview Mimikatz
得到用户权限
时间服务器
DNS服务器
域控定位器
net time /domain
w32tm /query
Get-DnsClientServerAddress 查询本机 DNS SERVER 设置
向DNS server 查询 Domain Name A记录对应地址
nltest 提取域控信息的过程
net
dsquery 通过对LDAP进行查询
DC Locator Process
产生DNS查询,沿用DC Locator的机制很安全
Kerberos认证,KDC
GC
查询工具
dsquery/ADSISearcher使用明文的LDAP协议,容易被IDS捕获
定位域控(域内主机)
定位域控(域外主机)
- 横向移动
概念:是一种让服务有能力以来访用户身份访问其他服务的认证机制
无限制委派:default设置仅域控可以无限制委派
约束委派
基于资源的委派(RBCD) 目前杀伤力最大的委派
S4U2SELF
PRINTER BUG:Printer Spooler服务SSRF
无限制委派+S4U2SELF+PRINTER 任意域控
S4U2PROXY
继承S4U2SELF、S4U2PROXY
WMI:基于DCOM TCP/135 明文传输
PSEXEC:(tips:使用impacket工具 psexec.py 区别在于目标支持SMB3.0默认开启加密)
远程计划任务
DCOM:远程调用的COM组件 TCP/445 + Random port dcomexec.py
MS-RPC
Kerberos委派
- 域权限维持
SPN
黄金票据
白银票据
受限委派
RBCD
域组策略
LAPS
针对账户进行,参考前面
krbtgt key,修改krbtgt密码两次,分析4769日志
日志分析
IDS规则,过期时间,算法等
用krbtgt加密TGT,TGT加密使用该账户的key作为密钥
使用默认参数创建的金票过期时间很长,mimikatz
DCSync拉取域内账户的hash/key
检测点:
PAC信息验证
SRVS的相关key加密
检测点:
主机权限维持(常见类型,不展开)
域权限维持
文件感染与横向移动
文件感染
修改文件关联
.docm 改为.doc,对抗针对后缀.docm 的检测
修改宏关联文件,对抗依赖文件名or类型检测
.docx .docm(宏文件) 可以改为 .doc
目标:把.docx转换为带恶意宏的.docm或.doc
图标如何保持不变?
恶意代码正常拉起原程序
场景:权限维持、横向移动
IShellLink::SetIconLocation()把exe设置为当前lnk的图标
借助rundll32.exe
TLS回调,反调试;把恶意代码放在TLS,不需要修改OEP
TLS数据结构
TLS感染总体流程:搜寻节间隙 - 修改录数据目 - 构建TLS目录 TLS回调函数 - 重建PE - 恶意文件释放
给exe添加一个导入函数,DllMain中写恶意代码,工具StudyPE
把恶意代码插入到PE中,修改OEP,重建PE
对抗思路
OEP内某处跳转到恶意代码
修改OEP指向恶意代码
DLL加载
OEP jump
利用TLS(线程局部存储)回调
PE感染
LNK感染
Office感染
公司软件库供应链,类似“驱动人生”
感染远程共享文件
外界设备感染,如U盘、移动硬盘
3389挂载盘到服务器
邮件感染,插入恶意宏
流量劫持,感染传输中的文件
意义
场景
方式
常规PE感染
TLS感染
LNK文件
Office文件感染
杀软对抗
红蓝对抗-红队攻防全流程解析相关推荐
- 红蓝对抗-红队渗透下的入口权限快速获取
红队渗透下的入口权限快速获取 文章目录 红队渗透下的入口权限快速获取 前言 红队攻击流程概述 获取入口权限 利用常见组件的漏洞 高危漏洞的检测与攻击 POC的集成与自动化验证 POC bomber 前 ...
- 红蓝对抗-红队打点的那些事
红蓝对抗-红队打点的那些事 攻防演练中作为攻击方,效率很重要,例如2019 BCS红队行动议题: RedTeam-BCS 半自动化的资产收集 域名/IP/需要交互的系统 当拿到目标的时候,首先需要利用 ...
- 红蓝对抗-红蓝对抗经验总结
红蓝对抗经验总结 文章目录 红蓝对抗经验总结 前言 红蓝对抗思路 公司敏感信息网上收集 资产梳理 只给出了公司名字 查找该公司有关的所有主域名 收集所有主域名的所有子域名 通过IP查找该公司的网段 给 ...
- 从网络安全热门岗位看红蓝对抗发展趋势
目前网络安全行业哪些岗位最热门?以下为SANS发布的2021年网络安全领域最酷的20个岗位: SANS:网络安全领域最酷的20个岗位 从岗位名称及职责描述中我们可以看到,除了安全技术总监.渗透测试.漏 ...
- 红蓝对抗中的近源渗透
前言 近源渗透是这两年常被安全业内人员谈起的热门话题.不同于其他虚无缥缈的安全概念,近源渗透涉及到的无线安全.物理安全.社会工程学都十分容易落地实践,许多企业内部的攻防对抗演练也都出现了看上去&quo ...
- 渗透测试和红蓝对抗是什么意思?有什么区别?
在网络安全这个庞大的体系中,渗透测试.红蓝对抗是比较常见的专业名词,承担着非常重要的作用,那么什么是渗透测试.红蓝对抗?红蓝对抗和渗透测试有什么区别?小编通过这篇文章为大家介绍一下. 渗透测试 渗透测 ...
- 红蓝对抗常态化 支付宝技术风险防控机制首次曝光
小蚂蚁说: 支付宝红蓝CP又开始日常"互怼"啦!为了迎接年度技术"期末考试"周,技术蓝军每周都会组织突袭攻击"测验",通过实战中发掘出来的脆 ...
- 红蓝对抗-HW红蓝队基本知识
第一章 什么是蓝队 蓝队,一般是指网络实战攻防演习中的攻击一方. 蓝队一般会采用针对目标单位的从业人员,以及目标系统所在网络内的软件.硬件设备同时执行多角度.全方位.对抗性的混合式模拟攻击手段:通过技 ...
- 红蓝对抗之蓝队防守:ATTCK框架的应用
企业大规模数字化转型的浪潮下,各类网络入侵事件频发.APT和黑客团伙活动猖獗,合规性驱动的传统安全防护建设已无法满足需求.近年来随着各级红蓝对抗行动的开展,企业安全建设正逐步向实战化转型,而MITRE ...
最新文章
- C#调用浏览器的原理及实现浅析
- 绝地求生服务器延迟高低排序,绝地求生:延迟不可怕,大神教你如何高ping吃鸡!...
- oracle选择语言设置,oracle本地语言变量设置
- CG CTF CRYPTO easy!
- pip ImportError: cannot import name 'main' after update
- 周末狂欢赛3(跳格子,英雄联盟,排序问题)
- 大数据工作由哪几部分组成
- MVC模型与FishiGUI应用层MVC型号
- Java应用基础微专业-设计篇
- VISIO科学图形包-亲测VISIO2013可用,应该适用其他高级版本
- 【Unity3D入门教程】Unity3D播放音频和视频
- 【深度学习 理论】Brief Introduction of Deep Learning
- ORACLE / MYSQL----SQL语句大全
- jquery实现HTML复选框变单选框
- 消息认证码和单向散列函数
- windows android 对比度,色彩对比度饱和度基本测试
- java版我的世界MITE怎么下_我的世界mite作弊图文教程
- Dobot magician + realsense D435i 手眼标定(外参)
- 重理工疫情期间自动打卡JS实现(每日上报+体温上报)
- 《装机笔记》固态硬盘选择
热门文章
- Houdini程序化制作悬崖
- 基于UDP的可靠性传输协议-KCP简介
- plsql developer12
- 用c语言编程等比数列,C语言求等比数列2的0次方,2的1次方,2的2次方,...,2的63次方前64项的和....
- 模仿滴滴打车的数据库设计、实体类映射关系配置、语句增删改查(2)
- dell服务器连硬盘柜,加载 'dell MD3200 磁盘存储柜' 到服务器
- behance上流行的抽象炫酷资源,国外高级抽象炫酷素材合集分享
- javascript 深拷贝的方法
- 关闭“是否只查看安全传送的网页内容?”对话框听语音
- Java微服务内存占用分析