溶けたペンギンの雑記

ブログ初心者です。よく分かりません。パソコン使います。

My Web Server を解いたので振り返りとか(writeup を含む)

どうも皆さんこんにちは。

 

すこし前にも似た様な記事をあげたと思いますが、今回も脆弱なマシンを攻略したのでその振り返りを行います。

 

今回は My Web Server というマシンを解きました。

 

まだ解いていないという方は以下の URL からダウンロードできるので興味があれば是非解いてみてください。

 

My Web Server: 1 ~ VulnHub

 

※注意

前回も書きましたが、この記事には実際の攻撃手法などが含まれています。これらのツールや攻撃を許可の無い機器に対して行うことは違法となるので決して行わないでください。

 

 

目次

 

 

シェルを取るぞ編

 

とりあえず対象のマシンの IP アドレスを確認します。

IP アドレスの確認

どうやら 10.0.2.19 のようです。(10.0.2.18 は自分のマシンのアドレスです)

 

次はポートスキャンを行ってどのようなサービスが動いているのかを調べます。

ポートスキャンの結果

 

今回のマシンは結構色々なものが動いていますね。

 

しかも ウェブサーバが多めですね。まさしく My Web Server。

 

とりあえずそれぞれのウェブサーバにアクセスしてみました。

80 番ポートのサイト

2222 番ポートのサイト

8080 番ポートのサイト

8081 番ポートのサイト

 

色々なサイトがありますね。

 

とりあえず各サーバに関してディレクトリを列挙して面白い情報が無いかを調べました。

 

すると 2222 番ポートのサイトに面白そうなページを見つけました。

2222 番ポートのサイトでの面白そうなページ

 

面白そうですね。でもこれはシェルを取ることには役立ちませんでした。

 

もしかしたら別の方法では使うのかも知れませんが、今回は使用しませんでしたね......

 

他にも色々と探してみましたが、面白そうな情報は特に見つかりませんでした。

 

そこで、ポートスキャンの際に見つけたサービスに関して何か脆弱性が無いかを調べました。

 

するととても興味深い脆弱性を見つけました。

nostromo の脆弱性!!

 

nostromo に任意コード実行の脆弱性があったのです!!(バージョンも 1.9.6 で合致しています)

 

これはとても有用ですね。

 

ちなみにこの脆弱性は CVE-2019-16278 というものです。

 

では早速リバースシェルを使ってシェルを取得しましょう!!

 

exploit

 

exploit が落ちていたので今回はこれを使いました。

 

適当なポートを Listen の状態にした後にリバースシェルを実行するコマンドを実行すると......

シェルの取得!!!

 

シェルの取得に成功しました!!!

 

嬉しいですね。次は権限昇格のパートです。

 

 

権限昇格するぞ編

来ましたね。権限昇格パート。

 

とりあえず色々調べるツールを wget を用いて対象のマシンに渡し、実行しました。

 

するとかなり面白いファイルを見つけました。

/etc/sudoers.d/mysudo

 

/etc/sudoers.d 内のファイルです。

 

/etc/sudoers.d 以下のファイルに sudo を許可する設定を書くことが出来ます。

 

今回はその中に tomcatjava コマンドをパスワード無しに管理者権限で実行出来るという内容の設定を見つけました。

 

つまり!! tomcat でアクセスし、 java コマンドを使うことで管理者権限で色々出来るようになると言うことです。

 

現在は daemon というアカウントなので直近の目標は tomcat というユーザになる事を目標とします。

 

ここで考えたのは、どうにかしてログインし任意のコマンドを実行出来るようなファイル(リバースシェルなど)を送り込んで tomcat のアカウントでコマンドを実行出来るようにするといった手法です。

 

そこで、どうにかして tomcat の管理画面にアクセス出来ないかと考えながら色々と調べていると、面白いファイルを見つけました。

tomcat-user.xml

 

ユーザ名とパスワードが載っていますね。

 

これを使えば tomcat の Web アプリケーションマネージャにログインすることが出来ます。

 

さらにネット上で tomcat を用いたリバースシェルに関して調べていたところ、面白いサイトを見つけました。

 

null-byte.wonderhowto.com

 

このサイトでは msfconsole(metasploit でいいのかな?)を用いてリバースシェルを実行する手順が紹介されていました。

 

普段は msfconsole を使わないのですが、せっかくなので今回はこちらのサイトを参考にしてリバースシェルを実行しました。

リバースシェル

 

結構楽ですね。

 

これで tomcat のアカウントでコマンドを実行出来るようになりました。

 

次は以下のサイトを参考にして msfvenom を用いて java のリバースシェルのファイルを作成しました。

 

control – Java -jar payload

myexploit.wordpress.com

 

そして作成したファイルを攻撃対象のマシンに送り込み、 tomcat のユーザで実行すると......

権限昇格の完了!!!

権限昇格が完了しました!!!

 

これにて今回のマシンの攻略は完了ですね。

 

 

振り返り

今回は結構いい感じに攻略できましたね。

 

しかも学びが多かったです。

 

/etc/sudoers.d 以下のファイルから重要な情報を手に入れるのはかなり探すのに時間がかかりました。

 

でも、よく考えたら管理者権限に関するファイルなので確認して然るべきですよね。

 

あと、 tomcat の設定ファイルも探すのに手こずりましたね。

 

そもそもウェブサーバの運用をしたことがないのでどこに設定ファイルがあるのかとか知らないのですよね......

 

そのためそれらを調べるという手間が発生してしまいます。

 

まぁ、すべてのサービスに関して精通することなんて不可能なのできちんと Google とかネットで調べる能力が必要ですね。

 

さらに、今回は msfvenom とか msfconsole を使ってみましたね。

 

正直いまいち使い方を把握できていないです......

 

誰かよい資料とか知らないでしょうか?

 

使いこなせたらきっと便利です。

 

まぁ、msfconsole  は OSCP において使用回数に制限がかかっていた気はしますが、だからといって使えなくてよい訳でもないと思うのです。

 

とりあえずこんな感じでしょうか?

 

では、今回の記事はこれくらいで終わりにしたいと思います。

 

最後までお付き合いいただきありがとうございました。