国内最专业的黑客技术博客(2)

红队之外网定向打点

钓鱼样本制作

钓鱼邮件类型

恶意的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挂载盘到服务器

邮件感染,插入恶意宏

流量劫持,感染传输中的文件

意义

场景

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/2fc18cb03bafd5fa4bfbc4b1600bf875.html