Bloodhound.py

BloodHound.py ์˜ต์…˜

BloodHound.py ์˜ต์…˜

realblackcat@htb[/htb]$ bloodhound-python -h

usage: bloodhound-python [-h] [-c COLLECTIONMETHOD] [-u USERNAME]
                         [-p PASSWORD] [-k] [--hashes HASHES] [-ns NAMESERVER]
                         [--dns-tcp] [--dns-timeout DNS_TIMEOUT] [-d DOMAIN]
                         [-dc HOST] [-gc HOST] [-w WORKERS] [-v]
                         [--disable-pooling] [--disable-autogc] [--zip]

Python based ingestor for BloodHound
For help or reporting issues, visit https://github.com/Fox-IT/BloodHound.py

optional arguments:
  -h, --help            show this help message and exit
  -c COLLECTIONMETHOD, --collectionmethod COLLECTIONMETHOD
                        Which information to collect. Supported: Group,
                        LocalAdmin, Session, Trusts, Default (all previous),
                        DCOnly (no computer connections), DCOM, RDP,PSRemote,
                        LoggedOn, ObjectProps, ACL, All (all except LoggedOn).
                        You can specify more than one by separating them with
                        a comma. (default: Default)
  -u USERNAME, --username USERNAME
                        Username. Format: username[@domain]; If the domain is
                        unspecified, the current domain is used.
  -p PASSWORD, --password PASSWORD
                        Password

  <SNIP>
  • ๋ณด์‹œ๋‹ค์‹œํ”ผ ์ด ๋„๊ตฌ๋Š” -c ๋˜๋Š” --collectionmethod ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ˆ˜์ง‘ ๋ฐฉ๋ฒ•์„ ํ—ˆ์šฉ

    • ์‚ฌ์šฉ์ž ์„ธ์…˜, ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน, ๊ฐœ์ฒด ์†์„ฑ, ACLS์™€ ๊ฐ™์€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ALL์„ ํƒํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ๊ฐ€ ๋„๋ฉ”์ธ FQDN์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ˜ธ์ŠคํŠธ๊ฐ€ Kerberos๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด DNS ์ด๋ฆ„ KDC๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ --nameserver ์˜ต์…˜์œผ๋กœ๋Š” Kerberos ์ธ์ฆ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Kerberos ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด DNS ์„œ๋ฒ„๋ฅผ ๋Œ€์ƒ ์ปดํ“จํ„ฐ๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ŠคํŠธ ํŒŒ์ผ์—์„œ DNS ํ•ญ๋ชฉ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

etc/hosts ํŒŒ์ผ ์„ค์ •ํ•˜๊ธฐ

realblackcat@htb[/htb]$ echo -e "\n10.129.204.207 dc01.inlanefreight.htb dc01 inlanefreight inlanefreight.htb" | sudo tee -a /etc/hosts

10.129.204.207 dc01.inlanefreight.htb dc01 inlanefreight inlanefreight.htb

BloodHound.py ์‹คํ–‰

BloodHound.py ์‹คํ–‰

realblackcat@htb[/htb]$ bloodhound-python -d inlanefreight.htb -c DCOnly -u htb-student -p HTBRocks! -ns 10.129.204.207 --kerberos
INFO: Found AD domain: inlanefreight.htb
INFO: Getting TGT for user
INFO: Connecting to LDAP server: dc01.inlanefreight.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Connecting to LDAP server: dc01.inlanefreight.htb
INFO: Found 6 users
INFO: Found 52 groups
INFO: Found 2 gpos
INFO: Found 1 ous
INFO: Found 19 containers
INFO: Found 3 computers
INFO: Found 0 trusts
INFO: Done in 00M 11S

์œ„์˜ ๋ช…๋ น์€ ์‚ฌ์šฉ์ž forend๋กœ Bloodhound.py๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ž„์„œ๋ฒ„๋Š” -ns ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ, ๋„๋ฉ”์ธ์€ -d ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ INLANEFREIGHt.LOCAL๋กœ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. -c all ํ”Œ๋ž˜๊ทธ๋Š” ๋„๊ตฌ์— ๋ชจ๋“  ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ง€์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์— <date_object.json> ํ˜•์‹์˜ ์ถœ๋ ฅ ํŒŒ์ผ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ๋ณด๊ธฐ

๊ฒฐ๊ณผ ๋ณด๊ธฐ

realblackcat@htb[/htb]$ ls

20220307163102_computers.json  20220307163102_domains.json  20220307163102_groups.json  20220307163102_users.json  

๋ธ”๋Ÿฌ๋“œํ•˜์šด๋“œ GUI์— Zip ํŒŒ์ผ ์—…๋กœ๋“œ

๊ทธ๋Ÿฐ ๋‹ค์Œ sudo neo4j start๋ฅผ ์ž…๋ ฅํ•˜์—ฌ neo4j ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Cypher ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ, freerdp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•œ Linux ๊ณต๊ฒฉ ํ˜ธ์ŠคํŠธ์—์„œ bloodhound๋ฅผ ์ž…๋ ฅํ•˜์—ฌ BloodHound GUI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์€ Linux ๊ณต๊ฒฉ ํ˜ธ์ŠคํŠธ์— ๋ฏธ๋ฆฌ ์ž…๋ ฅ๋˜์–ด ์žˆ์ง€๋งŒ, ์–ด๋–ค ์ด์œ ๋กœ ์ž๊ฒฉ ์ฆ๋ช… ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

  • ์‚ฌ์šฉ์ž == neo4j / ํŒจ์Šค == HTB_@cademy_stdnt!

์œ„์˜ ๋ชจ๋“  ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด BloodHound GUI ๋„๊ตฌ์— ๋นˆ ์Šฌ๋ ˆ์ดํŠธ๊ฐ€ ๋กœ๋“œ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ JSON ํŒŒ์ผ์„ ํ•˜๋‚˜์”ฉ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜ zip -r ilfreight_bh.zip *.json๊ณผ ๊ฐ™์€ ๋ช…๋ น์œผ๋กœ ๋จผ์ € ์••์ถ•ํ•œ ํ›„ Zip ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐฝ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์—…๋กœ๋“œ ๋ฒ„ํŠผ(๋…น์ƒ‰ ํ™”์‚ดํ‘œ)์„ ํด๋ฆญํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด ๋‚˜ํƒ€๋‚˜๋ฉด zip ํŒŒ์ผ(๋˜๋Š” ๊ฐ JSON ํŒŒ์ผ)์„ ์„ ํƒํ•˜๊ณ (๋นจ๊ฐ„์ƒ‰ ํ™”์‚ดํ‘œ) ์—ด๊ธฐ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

Zip ํŒŒ์ผ ์—…๋กœ๋“œ

image

์ด์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ๋“œ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋ถ„์„ ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฟผ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • Cypher ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ์ •ํ•œ ๋‚ด์šฉ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋„์›€์ด ๋˜๋Š” ๋งŽ์€ ์œ ์šฉํ•œ ์น˜ํŠธ ์‹œํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • Cypher ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š” ์ดํ›„ ์„น์…˜์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, ์ฐฝ ์™ผ์ชฝ์˜ ๋ถ„์„ ํƒญ์—์„œ ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ๊ฒฝ๋กœ ์ฐพ๊ธฐ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๊ณ„ ๊ฒ€์ƒ‰

image

์œ„์˜ ๋งต์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒํ•œ ์ฟผ๋ฆฌ๋Š” ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ ์ฐพ๊ธฐ์˜€์Šต๋‹ˆ๋‹ค. ์ด ์ฟผ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž/๊ทธ๋ฃน/ํ˜ธ์ŠคํŠธ/ACL/GPO ๋“ฑ์„ ํ†ตํ•ด ์ฐพ์€ ๋…ผ๋ฆฌ์  ๊ฒฝ๋กœ, ์ฆ‰ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋˜๋Š” ์ด์™€ ๋™๋“ฑํ•œ ๊ถŒํ•œ์œผ๋กœ ์—์Šค์ปฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์ธก๋ฉด ์ด๋™์„ ์œ„ํ•œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๊ณ„ํšํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ณด ํƒญ์—์„œ ๋„๋ฉ”์ธ ์‚ฌ์šฉ์ž์™€ ๊ฐ™์€ ๋…ธ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ , ๋…ธ๋“œ ์ •๋ณด ํƒญ ์•„๋ž˜์˜ ๋ชจ๋“  ์˜ต์…˜์„ ์Šคํฌ๋กคํ•˜๊ณ , ๋ถ„์„ ํƒญ ์•„๋ž˜์— ์žˆ๋Š” ๋ฏธ๋ฆฌ ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ ์ค‘ ๊ฐ•๋ ฅํ•˜๊ณ  ๋„๋ฉ”์ธ ํƒˆ์ทจ๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฅผ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์œ„์— ๋งํฌ๋œ Cypher ์น˜ํŠธ์‹œํŠธ์—์„œ ํฅ๋ฏธ๋กœ์šด ์ฟผ๋ฆฌ๋ฅผ ๋ช‡ ๊ฐ€์ง€ ์„ ํƒํ•˜์—ฌ ํ•˜๋‹จ์˜ ์›์‹œ ์ฟผ๋ฆฌ ์ƒ์ž์— ๋ถ™์—ฌ๋„ฃ๊ณ  Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์‚ฌ์šฉ์ž ์ง€์ • Cypher ์ฟผ๋ฆฌ๋ฅผ ์‹คํ—˜ํ•ด ๋ณด์„ธ์š”. ํ™”๋ฉด ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ํ†ฑ๋‹ˆ๋ฐ”ํ€ด ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๊ณ  ๋…ธ๋“œ์™€ ์—์ง€ ํ‘œ์‹œ ๋ฐฉ์‹, ์ฟผ๋ฆฌ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ ํ™œ์„ฑํ™”, ๋‹คํฌ ๋ชจ๋“œ ํ™œ์„ฑํ™” ๋“ฑ์„ ์กฐ์ •ํ•˜์—ฌ ์„ค์ • ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ BloodHound๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด์ง€๋งŒ, BloodHound ๋„๊ตฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Active Directory BloodHound ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜์„ธ์š”.

Last updated