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 ํ์ผ ์ ๋ก๋

์ด์ ๋ฐ์ดํฐ๊ฐ ๋ก๋๋์์ผ๋ฏ๋ก ๋ถ์ ํญ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฟผ๋ฆฌ๋ ์ฌ์ฉ์ ์ง์ Cypher ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ์ ํ ๋ด์ฉ์ ๋ฐ๋ผ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋์์ด ๋๋ ๋ง์ ์ ์ฉํ ์นํธ ์ํธ๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์ ์ง์ Cypher ์ฟผ๋ฆฌ์ ๋ํด์๋ ์ดํ ์น์
์์ ์์ธํ ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ์๋์์ ๋ณผ ์ ์๋ฏ์ด, ์ฐฝ ์ผ์ชฝ์
๋ถ์ ํญ์์
๊ธฐ๋ณธ ์ ๊ณต๋๋ ๊ฒฝ๋ก ์ฐพ๊ธฐ
์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ด๊ณ ๊ฒ์

์์ ๋งต์ ์์ฑํ๊ธฐ ์ํด ์ ํํ ์ฟผ๋ฆฌ๋ ๋๋ฉ์ธ ๊ด๋ฆฌ์๋ก ๊ฐ๋ ์ต๋จ ๊ฒฝ๋ก ์ฐพ๊ธฐ์์ต๋๋ค
. ์ด ์ฟผ๋ฆฌ๋ ์ฌ์ฉ์/๊ทธ๋ฃน/ํธ์คํธ/ACL/GPO ๋ฑ์ ํตํด ์ฐพ์ ๋
ผ๋ฆฌ์ ๊ฒฝ๋ก, ์ฆ ๋๋ฉ์ธ ๊ด๋ฆฌ์ ๊ถํ ๋๋ ์ด์ ๋๋ฑํ ๊ถํ์ผ๋ก ์์ค์ปฌ๋ ์ด์
ํ ์ ์๋ ๊ด๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ๋ฅผ ํตํ ์ธก๋ฉด ์ด๋์ ์ํ ๋ค์ ๋จ๊ณ๋ฅผ ๊ณํํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์
๋ก๋ํ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ณด
ํญ์์ ๋๋ฉ์ธ ์ฌ์ฉ์์
๊ฐ์ ๋
ธ๋๋ฅผ ๊ฒ์ํ๊ณ , ๋
ธ๋ ์ ๋ณด
ํญ ์๋์ ๋ชจ๋ ์ต์
์ ์คํฌ๋กคํ๊ณ , ๋ถ์
ํญ ์๋์ ์๋ ๋ฏธ๋ฆฌ ์์ฑ๋ ์ฟผ๋ฆฌ ์ค ๊ฐ๋ ฅํ๊ณ ๋๋ฉ์ธ ํ์ทจ๋ฅผ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ ์ฟผ๋ฆฌ๋ฅผ ํ์ธํด ๋ณด์ธ์. ๋ง์ง๋ง์ผ๋ก, ์์ ๋งํฌ๋ Cypher ์นํธ์ํธ์์ ํฅ๋ฏธ๋ก์ด ์ฟผ๋ฆฌ๋ฅผ ๋ช ๊ฐ์ง ์ ํํ์ฌ ํ๋จ์ ์์ ์ฟผ๋ฆฌ
์์์ ๋ถ์ฌ๋ฃ๊ณ Enter ํค๋ฅผ ๋๋ฌ ์ฌ์ฉ์ ์ง์ Cypher ์ฟผ๋ฆฌ๋ฅผ ์คํํด ๋ณด์ธ์. ํ๋ฉด ์ค๋ฅธ์ชฝ์ ์๋ ํฑ๋๋ฐํด ์์ด์ฝ์ ํด๋ฆญํ๊ณ ๋
ธ๋์ ์์ง ํ์ ๋ฐฉ์, ์ฟผ๋ฆฌ ๋๋ฒ๊ทธ ๋ชจ๋ ํ์ฑํ, ๋คํฌ ๋ชจ๋ ํ์ฑํ ๋ฑ์ ์กฐ์ ํ์ฌ ์ค์
๋ฉ๋ด๋ฅผ ์ฌ์ฉํด ๋ณผ ์๋ ์์ต๋๋ค. ์ด ๋ชจ๋์ ๋๋จธ์ง ๋ถ๋ถ์์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก BloodHound๋ฅผ ์ฌ์ฉํ ์์ ์ด์ง๋ง, BloodHound ๋๊ตฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ Active Directory BloodHound ๋ชจ๋์ ํ์ธํ์ธ์.
Last updated