紅隊以外網定向打點

情報收集與外網打點

由於起晚了..第一個議題沒聽着,有點遺憾,補張圖 css

基礎設施架構設計部署

普通架構:紅隊人員--》teamserver cs--》目標機 缺點:功能未分離、無潛伏通道、回連日誌多、靈活性較低git

演進架構:DNS/HTTP/HTTPS分離server tips:1~2cpu 2G內存 10G硬盤,回連數不超過5臺,潛伏通道(根據實際目標環境優先)github

完整架構: 域名和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工具
    • 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個月過時,開自動續)
  • Redirector
    • DNS 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)
      • https://github.com/vysecurity/DomainFrontingLists
      • 代替方案:HTTP pipelining( >http 1.1 )
        • 和 domain fronting 效果相同
        • 利用同一個tcp鏈接發送不一樣的host的http包
        • tips:good domain + bad domain 包一層同時發過去
    • 第三方服務用做C2
      • Office36五、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 搭建代理
  • 基礎設施監控系統

郵件釣魚以前期信息收集與偵查

  • 面臨的技術挑戰:
    • 郵件網關 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-BCSshell

相關文章
相關標籤/搜索