红队之外网定向打点
来源自2019北京网络安全大会
基础设施架构设计部署
普通架构:红队人员--》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:注册目标相关区域常见的域名,记得开隐私保护
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相关资源汇总
Google App Engine| Amazon |Azure|Aliyun CDN
可见层:DNS、TLS
不可见层:HTTPS
URL(高信誉) SNI(高信誉) HOST(C2)
代替方案: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)
日志中心
钓鱼样本制作
钓鱼邮件类型
恶意的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文档存放:
杀软对抗
最后更新于