最初に
TryHackMeのUltraTechのWriteupになります!
Task1
マシーンを起動するだけです!
Task2 It's enumeration time!
偵察していきます~
Which software is using the port 8081?
8081番ポートでNode.jsが起動しているのが確認できます!
このポートでHTTPのサービスを提供しているので、さっそくアクセスしてみます
Which other non-standard port is used?
nmapに-p 1-65535
のオプションをつけて、全ポートをスキャンします
(処理に時間がかかるので、-T4
で高速スキャンにしています)
Which software using this port?
-T4
の高速スキャンでは情報がほとんどとれないので、31331ポートだけに絞ってnampでスキャンしていきます
このポートもHTTPを提供していたのですね~
Task3で詳細に見ていきます!
Which GNU/Linux distribution seems to be used?
31331ポートのnmapスキャンの結果に記載されていました!
The software using the port 8081 is a REST api, how many of its routes are used by the web application?
8081番ポートにdirbで隠しディレクトリを探していきます
2つあるみたいです
/auth
ではログイン名とパスワードを特定するように記載されています
WebアプリケーションやWebAPIのルートは、提供されている機能への入り口・アクセス先を表すので、今回は上記2つがルートに対応します
Task3
There is a database lying around, what is its filename?
どこかにdatabaseファイルがあるとのことですね
まだちゃんと見れていなかった31331番ポートにdirbしてみます
いろいろコードをみていたのですが、Hintから/ping
のAPIが関連していそうだったので、/js/api.js
を見てみます
そうすると/ping
にはipのパラメータを指定する必要がある、かつ、パラメータに渡すIPアドレスはコマンドを実行して取得していることがわかりました
/ping?ip='ls'
を実行すると、きれいにデータベースファイルが笑
What is the first user's password hash?
ping: ) ���(Mr00tf357a0c52799563c7c7b76c1e7543a32)Madmin0d0ea5111e3c1def594c1684e3b9be84: Parameter string not correctly encoded
What is the password associated with this hash?
Clack Stationでクラックしてみると、パスワードが見つかりました!
(ユーザー名とパスワードが連結されているので、わかりにくいですね。。)
Task4
最後は権限昇格です!
What are the first 9 characters of the root user's private SSH key?
Task3の最後に分かったパスワードをつかってSSH接続します
(ユーザー名はr00tです。Mは文字化けがでてきているだけみたいです。。。)
ここで、いきづまってしまったので、Writeupをみました、、、
このユーザーはdocker
グループに所属しているみたい
確かにdockerコマンドが使えます
GTFOBinsを参照に特権をとっていきます
ただ、そのまま使うとalphinがないといわれてエラーがでます
現在動いているプロセスで使われているイメージを確認したところ、bash
になっていました
alphin
のところをbash
に変更して再度チャレンジするとRootで入れました!
最後に
今回学んだことは以下2つです!
- SSH接続したときは、以下を確認する
whoami
pwd
groups
-
$
があればコマンド実行のチャンス!
メモ
FTP接続してみた
dirb
の実行結果
┌──(root㉿kali)-[~]
└─# dirb http://10.10.84.89:31331
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Fri Oct 18 08:39:00 2024
URL_BASE: http://10.10.84.89:31331/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://10.10.84.89:31331/ ----
==> DIRECTORY: http://10.10.84.89:31331/css/
+ http://10.10.84.89:31331/favicon.ico (CODE:200|SIZE:15086)
==> DIRECTORY: http://10.10.84.89:31331/images/
+ http://10.10.84.89:31331/index.html (CODE:200|SIZE:6092)
==> DIRECTORY: http://10.10.84.89:31331/javascript/
==> DIRECTORY: http://10.10.84.89:31331/js/
+ http://10.10.84.89:31331/robots.txt (CODE:200|SIZE:53)
+ http://10.10.84.89:31331/server-status (CODE:403|SIZE:302)
---- Entering directory: http://10.10.84.89:31331/css/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://10.10.84.89:31331/images/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://10.10.84.89:31331/javascript/ ----
==> DIRECTORY: http://10.10.84.89:31331/javascript/jquery/
---- Entering directory: http://10.10.84.89:31331/js/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://10.10.84.89:31331/javascript/jquery/ ----
+ http://10.10.84.89:31331/javascript/jquery/jquery (CODE:200|SIZE:268026)
-----------------
END_TIME: Fri Oct 18 09:52:20 2024
DOWNLOADED: 13836 - FOUND: 5