hacktricks/linux-hardening/privilege-escalation/linux-active-directory.md

14 KiB

Linux Active Directory

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% embed url="https://websec.nl/" %}

рдПрдХ рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рднреА рдПрдХ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдЕрдВрджрд░ рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред

рдПрдХ AD рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдВрджрд░ рд╡рд┐рднрд┐рдиреНрди CCACHE рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреА рд╣реИред рдпреЗ рдЯрд┐рдХрдЯ рдХрд┐рд╕реА рдЕрдиреНрдп kerberos рдЯрд┐рдХрдЯ рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдФрд░ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯрд┐рдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рд▓рд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдорд╢реАрди рдХреЗ рдЕрдВрджрд░ root рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

Enumeration

AD enumeration from linux

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓рд┐рдирдХреНрд╕ (рдпрд╛ Windows рдореЗрдВ bash) рдкрд░ AD рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рддреЛ рдЖрдк AD рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/lefayjey/linWinPwn рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рд▓рд┐рдирдХреНрд╕ рд╕реЗ AD рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} pentesting-ldap.md {% endcontent-ref %}

FreeIPA

FreeIPA рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ Microsoft Windows Active Directory рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Unix рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдПред рдпрд╣ Active Directory рдХреЗ рд╕рдорд╛рди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг LDAP рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ MIT Kerberos рдХреА рдХреБрдВрдЬреА рд╡рд┐рддрд░рдг рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред CA рдФрд░ RA рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП Dogtag Certificate System рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдорд╛рд░реНрдЯрдХрд╛рд░реНрдб рд╕рд╣рд┐рдд multi-factor рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред Unix рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП SSSD рдПрдХреАрдХреГрдд рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ:

{% content-ref url="../freeipa-pentesting.md" %} freeipa-pentesting.md {% endcontent-ref %}

Playing with tickets

Pass The Ticket

рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рди рдкрд╛рдПрдВрдЧреЗ рдЬрд╣рд╛рдБ рдЖрдк рдПрдХ рд▓рд┐рдирдХреНрд╕ рд╣реЛрд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ kerberos рдЯрд┐рдХрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдкрд░ рдЖрдк рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрди CCache рдЯрд┐рдХрдЯреЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ Kirbi (рд╡рд╣ рдкреНрд░рд╛рд░реВрдк рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ Windows рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ) рдореЗрдВ рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╕рд╛рде рд╣реА PTT рд╣рдорд▓реЗ рдХреЛ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП:

{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %} pass-the-ticket.md {% endcontent-ref %}

CCACHE ticket reuse from /tmp

CCACHE рдлрд╝рд╛рдЗрд▓реЗрдВ Kerberos рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ /tmp рдореЗрдВ 600 рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИрдВред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдЙрдирдХреЗ рдирд╛рдо рдкреНрд░рд╛рд░реВрдк, krb5cc_%{uid}, рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ UID рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЯрд┐рдХрдЯ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ KRB5CCNAME рдХреЛ рдЗрдЪреНрдЫрд┐рдд рдЯрд┐рдХрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрде рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рд╕реЗ рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХреЗред

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╡рд░реНрддрдорд╛рди рдЯрд┐рдХрдЯ рдХреА рд╕реВрдЪреА env | grep KRB5CCNAME рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдВред рдкреНрд░рд╛рд░реВрдк рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ рдФрд░ рдЯрд┐рдХрдЯ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ export KRB5CCNAME=/tmp/ticket.ccache рдХреЗ рд╕рд╛рдеред Kerberos рдЯрд┐рдХрдЯ рдирд╛рдо рдкреНрд░рд╛рд░реВрдк krb5cc_%{uid} рд╣реИ рдЬрд╣рд╛рдБ uid рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ UID рд╣реИред

# Find tickets
ls /tmp/ | grep krb5cc
krb5cc_1000

# Prepare to use it
export KRB5CCNAME=/tmp/krb5cc_1000

CCACHE рдЯрд┐рдХрдЯ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреАрдЬрд┐рдП рдХреАрд░рд┐рдВрдЧ рд╕реЗ

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд Kerberos рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдорд╢реАрди рдХреА ptrace рд╕реБрд░рдХреНрд╖рд╛ рдЕрдХреНрд╖рдо рд╣реЛрддреА рд╣реИ (/proc/sys/kernel/yama/ptrace_scope)ред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг https://github.com/TarlogicSecurity/tickey рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рддреНрд░реЛрдВ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдХреЗ рдФрд░ /tmp рдореЗрдВ рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдбрдВрдк рдХрд░рдХреЗ рдирд┐рдХрд╛рд╕реА рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред

рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

git clone https://github.com/TarlogicSecurity/tickey
cd tickey/tickey
make CONF=Release
/tmp/tickey -i

рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рд╕рддреНрд░реЛрдВ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреА, рд╕рдлрд▓рддрд╛ рдХреЛ /tmp рдореЗрдВ __krb_UID.ccache рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рдХреЗ рд╕рд╛рде рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдХреЗ рджрд░реНрд╢рд╛рдПрдЧреАред

SSSD KCM рд╕реЗ CCACHE рдЯрд┐рдХрдЯ рдкреБрди: рдЙрдкрдпреЛрдЧ

SSSD /var/lib/sss/secrets/secrets.ldb рдкрде рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдВрдЬреА /var/lib/sss/secrets/.secrets.mkey рдкрде рдкрд░ рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреБрдВрдЬреА рдХреЗрд╡рд▓ рддрдм рдкрдврд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ root рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╣реЛрдВред

**SSSDKCMExtractor ** рдХреЛ --database рдФрд░ --key рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдиреЗ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЧреБрдкреНрдд рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

git clone https://github.com/fireeye/SSSDKCMExtractor
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey

The credential cache Kerberos blob рдХреЛ рдПрдХ рдЙрдкрдпреЛрдЧреА Kerberos CCache рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ Mimikatz/Rubeus рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

CCACHE рдЯрд┐рдХрдЯ рдкреБрди: рдЙрдкрдпреЛрдЧ keytab рд╕реЗ

git clone https://github.com/its-a-feature/KeytabParser
python KeytabParser.py /etc/krb5.keytab
klist -k /etc/krb5.keytab

Extract accounts from /etc/krb5.keytab

рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреБрдВрдЬреА, рдЬреЛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ /etc/krb5.keytab рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИрдВред рдпреЗ рдХреБрдВрдЬреА, рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рдорд╛рди, рдХрдбрд╝реА рдЧреЛрдкрдиреАрдпрддрд╛ рдХреА рдорд╛рдВрдЧ рдХрд░рддреА рд╣реИрдВред

рдХреБрдВрдЬреАрдкрдЯрд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, klist рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдХрд░рдг рдХреБрдВрдЬреА рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП NT Hash рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдХреБрдВрдЬреА рдкреНрд░рдХрд╛рд░ рдХреЛ 23 рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
# Output includes service principal details and the NT Hash

Linux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, KeyTabExtract RC4 HMAC рд╣реИрд╢ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ NTLM рд╣реИрд╢ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

python3 keytabextract.py krb5.keytab
# Expected output varies based on hash availability

macOS рдкрд░, bifrost рдХреБрдВрдЬреАрдкрдЯрд▓ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

./bifrost -action dump -source keytab -path /path/to/your/file

рдирд┐рдХрд╛рд▓реА рдЧрдИ рдЦрд╛рддрд╛ рдФрд░ рд╣реИрд╢ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, crackmapexec рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░реЛрдВ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"

рд╕рдВрджрд░реНрдн

{% embed url="https://websec.nl/" %}

{% hint style="success" %} рд╕реАрдЦреЗрдВ рдФрд░ AWS рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
рд╕реАрдЦреЗрдВ рдФрд░ GCP рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}