taibeihacker
Moderator
情报收集与外网打点
因為起晚了.第一個議題沒聽著,有點遺憾,補張圖
基础设施架构设计部署
普通架構:紅隊人員--》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.comwww.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工具CS 3.14
自定義流量特徵:DNS/HTTP/HTTPS/SMB和TCP
Payload加載流程:shellcode/Loader/Stageless/beacon
DNS:如果用到dns通道默認參數必須修改(容易被設備檢測),不要用DNS做數據通道
HTTP(S):不要在uri中的文件後綴設置js、css等靜態文件,效果:付費證書免費證書自簽名證書(Let's Encrypt 免費3個月過期,開自動續)
RedirectorDNS socat|iptables|ssh(tmux和screen選一個)
Apache|Nginx
Tips:
建議使用多個判斷過來請求,拒絕使用默認uri,對抗全網C2掃描
僅允許目標相關IP訪問,對抗雲沙盒
限定訪問時間段,只在某個時間段請求payload
不要把非payload的uri重定向到google等高信譽域名
建議:在www.aaa.com搭建來養域名,使用c2.aaa.com的二級域名做C2
Domain Fronting(隱藏IP、域名的方式)
Google App Engine| Amazon |Azure|Aliyun CDN
可見層:DNS、TLS
不可見層:HTTPS
URL(高信譽) SNI(高信譽) HOST(C2)
GitHub - vysecurity/DomainFrontingLists: A list of Domain Frontable Domains by CDN
A list of Domain Frontable Domains by CDN. Contribute to vysecurity/DomainFrontingLists development by creating an account on GitHub.
和domain fronting 效果相同
利用同一個tcp連接發送不同的host的http包
tips:good domain + bad domain 包一層同時發過去
第三方服務用作C2
Office365、Pastebin、Slack、Facebook、Dropbox、Gmail、Twitter.
需要硬編碼到第三方服務
郵件釣魚(SMTP)域名:同C2域名選擇
高信譽的郵件發送者:Mailchimp、Sendgrid
正確配置SPF、DKIM\DMARC
SSL證書
發送時間和頻率
一鍵部署
釣魚郵件框架:Gophish (https://github.com/gophish/gophish)
隱蔽性和安全性權限最小化:使用iptalbes限定組件通訊,SSH進行端口轉發
Teamserver:限制端口只能本地訪問,限制beacon監聽端口只能redirector訪問
Tips:VPS容易被GFW攔截?
解決方案:V*2r a y + Nginx + CLoudflare + Freenom+ Websocket 搭建代理
基礎設施監控系統記錄完整日誌,設置告警
自動化部署LuWu(https://github.com/QAX-A-Team/LuWu)
日誌中心
邮件钓鱼之前期信息收集与侦查
面臨的技術挑戰:郵件網關mail gateway
瀏覽器
EDR、IDS
Mail Gateway
ANTI-SPAM
SPF
DKIM
新註冊域名
生僻域名後綴
敏感關鍵字
特性:
郵件退信默認開啟
MTA默認不開啟Recipient Validation
結論:當我們發送一封釣魚郵件給一個不存在的郵箱賬戶時,如果能收到NDR,證明釣魚郵件通過了郵件網關安全審查(BACKSCATTER ATTACK)
BYPASS ANTI-SPAM
通過上述結論,探測,fuzzing ANTI-SPAM 引擎規則
穩定觸發NDR的辦法:
正文大於10M
收件人超過5000個
BYPASS ANTI-MALWARE
NDR
總結

钓鱼样本制作
釣魚郵件類型惡意的chm文檔:利用easy,但目前比較難過殺軟,免殺效果差帶有惡意宏代碼的office文檔:易於混淆(結合圖片模糊之類),但需要手動開宏,進程鏈可疑
白加黑釣魚:利用帶簽名的白程序,通過DLL劫持的方案加載惡意DLL;比較容易過AV,但需要解壓執行
LNK文件釣魚:鏈接對像是Powershell,進程鏈完善
PPT釣魚樣本:PPT超鏈接,彈出“安全聲明”,不用啟動宏,但必須全屏播放,啟用才執行;不推薦使用
漏洞利用的釣魚郵件:效率高,同樣成本也高
寫工具自動化生成惡意lnk,關鍵函數:IShellLink:SetIconLocation()
IShellLink:SetShowCmd() 窗口顯示
IShellLink:SetArguments()
IShellLink:SetPath()
.
LNK釣魚郵件製作釣魚簡歷的編寫:內容可選浮誇,讓HR打開看完後大概率刪除,防止提給技術人員
LNK圖標的顯示:改成各個系統都能默認顯示的通用圖標
如何隱藏行為:SetShowCmd() 最小化窗口
Word文檔存放:
聯網下載Word文檔
(New-Object System.Net.WebClient).DownloadFile(url, file_path);
數據還原引擎
協議內容還原:tcp、http、smtp
文件內容還原:office、pdf、zip
加殼程序還原:upx
加密算法數據還原:base64
本地釋放Word文檔
將Word塞到COMMAND_LINE_ARGUMENTS
ARGUMENT用於LNK中存儲命令行參數
StringData結構,CountCharacters
IShellLink:SetArguments()
塞入數據的最大值是explorer.exe 對命令行參數長度的限制
實測得出0x7FC2(31KB)
將Word塞到lnk文件的尾部(推薦使用)
尾部可以追加任意大小的word、PE、PowerShell
select -last 1 定位到最後一個對象,以“\n”劃分對象
select -index 1 也可以
殺軟對抗
短文件名POWERS~1.EXE
代碼混淆參考賽門鐵克的paper
安全類進程檢測
虛擬機-取證工具-殺軟檢測-調試器
常規手法
進程名檢測
窗口標題檢測
新姿勢
遍歷進程,獲取進程對應的版權信息,與黑名單列表比對
優點:升級版本也不變,通用
如何根據PID獲取進程的全路徑:ProcessExplorer
x86不太可行,x64可以
繞過PCHunter 0RING hook
檢測後行為,通知攻擊者,及時善後處理
内网横向移动
內網偵查經典主被動內網偵查方式
主動掃描
設備資產識別
可用服務採集
腳本檢測
被動蒐集
監聽廣播消息
雷區警示
風險面:Network ACL封鎖、受控主機HIDS、HoneyPot、NIDS
方法對比
域內信息偵查* 類域* *nix * Windows AD
定位域控(域內主機)
時間服務器
net time /domain
w32tm /query
DNS服務器
Get-DnsClientServerAddress 查詢本機DNS SERVER 設置
向DNS server 查詢Domain Name A記錄對應地址
域控定位器
DC Locator Process
產生DNS查詢,沿用DC Locator的機制很安全
Kerberos認證,KDC
GC
查詢工具
nltest 提取域控信息的過程
net
dsquery 通過對LDAP進行查詢
dsquery/ADSISearcher使用明文的LDAP協議,容易被IDS捕獲
定位域控(域外主機)
DNS排查
Scan UDP/53
Query DNS FQDN from DNS
Query Locators from DNS
LDAP(S) GC(S)
掃描端口,利用特性篩查域名
匿名讀取部分LDAP元數據
讀取LDAP證書信息
GC服務查詢TCP/3268 TCP/3269
防禦:可以關閉匿名綁定
查詢LDAP(S)服務
ADexplorer:GUI,一些cmdlet
Get-ADUser
Powerview:大量cmdlet
Kerberos
AS-REQ AS-REP
KDC TGT票據
基於AS協議的用戶枚舉
KERBEROSUSERENUM(a-team github)
MSF模塊
ASREPROAST
Session Key,使用用戶的NTHASH加密
John/HashCat 可以進行離線破解
SPN(Service Principal Name)域對象的屬性,對像是機器/用戶,必須設置
TGS-REQ TGS-REP
服務票據
Service Ticket
結論:普通域賬號申請服務票據後可以對賬號離線破解
KERBEROAST攻擊(基於上述結論)
Rubeus.exe
PowerView
HUNT DOMAIN ADMIN
特定用戶登錄會話
遠程會話枚舉
NetSessionEnum(SMB會話)
NetWkstaUserEnum(交互登錄會話)新版本系統需要admin privilige
遠程用戶枚舉
場景:一些同域管理賬號同名的本地賬號可能是同一人創建
SAMR 查詢組和成員信息(注:Win 10後沒有admin無法枚舉)
LSARPC 查詢SID相關
遠程登錄枚舉
交互式登陸:主要指Console和RDP登陸的方式
獲取主機權限:Vul RBCD RPRN
提取遺留的憑據: Powerview Mimikatz
得到用戶權限
橫向移動
MS-RPC
WMI:基於DCOM TCP/135 明文傳輸
PSEXEC:(tips:使用impacket工具psexec.py 區別在於目標支持SMB3.0默認開啟加密)
遠程計劃任務
DCOM:遠程調用的COM組件TCP/445 + Random port dcomexec.py
Kerberos委派
概念:是一種讓服務有能力以來訪用戶身份訪問其他服務的認證機制
無限制委派:default設置僅域控可以無限制委派
S4U2SELF
PRINTER BUG:Printer Spooler服務SSRF
無限制委派+S4U2SELF+PRINTER 任意域控
約束委派
S4U2PROXY
基於資源的委派(RBCD) 目前殺傷力最大的委派
繼承S4U2SELF、S4U2PROXY
域權限維持
主機權限維持(常見類型,不展開)
域權限維持
SPN
針對賬戶進行,參考前面
黃金票據
用krbtgt加密TGT,TGT加密使用該賬戶的key作為密鑰
使用默認參數創建的金票過期時間很長,mimikatz
DCSync拉取域內賬戶的hash/key
檢測點:
krbtgt key,修改krbtgt密碼兩次,分析4769日誌
日誌分析
IDS規則,過期時間,算法等
白銀票據
SRVS的相關key加密
檢測點:
PAC信息驗證
受限委派
RBCD
域組策略
LAPS
文件感染与横向移动
文件感染意義
場景
公司軟件庫供應鏈,類似“驅動人生”
感染遠程共享文件
外界設備感染,如U盤、移動硬盤
3389掛載盤到服務器
郵件感染,插入惡意宏
流量劫持,感染傳輸中的文件
方式
PE感染
LNK感染
Office感染
常規PE感染
給exe添加一個導入函數,DllMain中寫惡意代碼,工具StudyPE
把惡意代碼插入到PE中,修改OEP,重建PE
OEP內某處跳轉到惡意代碼
修改OEP指向惡意代碼
對抗思路
DLL加載
OEP jump
利用TLS(線程局部存儲)回調
TLS感染
TLS回調,反調試;把惡意代碼放在TLS,不需要修改OEP
TLS數據結構
TLS感染總體流程:搜尋節間隙- 修改錄數據目- 構建TLS目錄TLS回調函數- 重建PE - 惡意文件釋放
LNK文件
圖標如何保持不變?
IShellLink:SetIconLocation()把exe設置為當前lnk的圖標
惡意代碼正常拉起原程序
借助rundll32.exe
場景:權限維持、橫向移動
Office文件感染
.docx .docm(宏文件) 可以改為.doc
目標:把.docx轉換為帶惡意宏的.docm或.doc
殺軟對抗
修改文件關聯
.docm 改為.doc,對抗針對後綴.docm 的檢測
修改宏關聯文件,對抗依賴文件名or類型檢測
from:https://github.com/backlion/RedTeam-BCS