Purple teaming

情報セキュリティ/ サイバーセキュリティ 当ブログはサイバーセキュリティ分野の研究を目的としております。 許可されていない外部機器に向け掲載された内容を実行した結果生じた損害等の一切の責任を負いかねますので、ご了承ください

HTB Arkham writeup-Java Encrypted Deserialization attack(Japanese)

概要

今回はJavaシリアライズアタックが大きな山場でした。RCEするには暗号化が必要で、ysoserial+アルファのペイロードが必要でした。これでもmediumか...といった感じの難易度。リバースシェルを取ってからは、意外とすんなりと。HTBで仲良くなった中東かどこかのRed Teamerと競っていたので、雑な感じでのクリアです。 競り勝ったのは良いんですが、親父と年が近い!と言われて落ち込みました...そんな若かったのかあいつ。

そもそもキーが手に入らないとRCEが成立しないので、まあでたらめにインジェクトしても500が返って来るのが関の山でしょう。

アタック成立までに見た参考資料

  1. https://medium.com/abn-amro-red-team/java-deserialization-from-discovery-to-reverse-shell-on-limited-environments-2e7b4e14fbef
  2. https://securitycafe.ro/2017/11/03/tricking-java-serialization-for-a-treat/
  3. https://www.n00py.io/2017/11/exploiting-blind-java-deserialization-with-burp-and-ysoserial/
  4. https://stackoverflow.com/questions/22814/how-to-decode-viewstate
  5. https://www.synacktiv.com/ressources/JSF_ViewState_InYourFace.pdf
  6. https://www.alphabot.com/security/blog/2017/java/Misconfigured-JSF-ViewStates-can-lead-to-severe-RCE-vulnerabilities.html?source=post_page---------------------------
  7. https://medium.com/@D0rkerDevil/how-i-found-a-1500-worth-deserialization-vulnerability-9ce753416e0a
  8. https://gist.github.com/cdowns71/76d99ad0829ceef3a83761dbeee3b66d
  9. https://www.exploit-db.com/docs/english/44756-deserialization-vulnerability.pdf
  10. https://github.com/joaomatosf/jexboss

アタックツリー的な物

f:id:watashiwaojsn:20190915233831p:plain

ポートスキャン

f:id:watashiwaojsn:20190915233921p:plain

作戦

パッと見で、ファイル共有をちゃんと見る→変なポートで動いてるWebアプリ→それでも駄目なら80かな?という印象。まさかあんなに苦戦するとは...

SMB

enum4linux。あら…

f:id:watashiwaojsn:20190915234209p:plain

それではsmbclient

f:id:watashiwaojsn:20190915234321p:plain

何かあるのは良いんですが、暗号化されてました。

f:id:watashiwaojsn:20190916000605p:plain

個人的にブルートフォースをかける前に、無駄でも良いから色々やってみる主義で forensicツールのforemostをかけてみます。

f:id:watashiwaojsn:20190915234959p:plain

http://foremost.sourceforge.net/

Originally developed by the United States Air Force Office of Special Investigations and The Center for Information Systems Security Studies and Research , foremost has been opened to the general public.

かっちょええっすね。

f:id:watashiwaojsn:20190915235036p:plain

bakとか、アレなやつでは。

f:id:watashiwaojsn:20190915235238p:plain

やはり何らかのキーぽいです。

これか...?と思いながら当初の予定通り8080へ。

http://myfaces.apache.org/shared12/myfaces-shared-core/apidocs/org/apache/myfaces/shared/util/StateUtils.html

8080

どうも文脈としては開発途中という設定な感じで、完全に動作はしませんでした。 subscriptionのみが動作していたので、そこをburpで見てみるとやはり。

f:id:watashiwaojsn:20190915235851p:plain

f:id:watashiwaojsn:20190916000057p:plain

先ほどググった公式ドキュメントにも

  • Base64 is used for all encoding and decoding.
  • DES is the default encryption algorithm
  • ECB is the default mode
  • PKCS5Padding is the default padding
  • HmacSHA1 is the default MAC algorithm

とあるし、じゃあysoserialでペイロードを作って、この通りやったらいけるのでは と思いました(実際その通りではあったんですが)。早速pythonで!と思いましたが、結局どうなってんのこれ?というところがいまいち理解できず。

wHo0wmLu5ceItIi%2BI7XkEi1GAb4h12WZ894pA%2BZ4OH7bco2jXEy...

見た目でURLエンコードされてるのは分かるので、URL・b64デコード

Àz4ÂbîåÇ´¾#µä-F¾!×eóÞ)æx8~Ûr£\LµE)VUVÇðÔïB­Ùà9´ÜÀö¡ãaêñ£HÖï;µ:Jz¥Rg¸\ëLYXRñMb

DESだよな...あ、行けた。PKCS5PaddingとHmacSHA1は?

f:id:watashiwaojsn:20190916000301p:plain

と色々試行錯誤をしますが、まったく動かず。色々とググっているうちに 資料の8番を見つけます。あーHMACお尻に付けるのかというのがようやく分かったので、自機にpingをするようなコードをインジェクトすると、pingバックを確認。cmdからpowershellを使って、リバースシェルを実行させることにしました。

FUD

既存のメジャーどころのツール全滅で、強力なEDRでもいるのかな?と思いながらnc64.exeを送ってみた所、これは大丈夫でした。ホワイトリストにでも入ってるのか?と思いながら。

f:id:watashiwaojsn:20190916003311p:plain

f:id:watashiwaojsn:20190916003919p:plain

Internal Enumeration

"whoami " はalfredで、”Downloads”ディレクトリでzipファイルを見つけました。

中身はbatmanのパスワード入りOSTファイル。(下記は添付してあった画像ファイル)

f:id:watashiwaojsn:20190916001219p:plain

UAC bypass

またschtasksです。便利なもので。

f:id:watashiwaojsn:20190916011028p:plain

f:id:watashiwaojsn:20190916011048p:plain

f:id:watashiwaojsn:20190916011113p:plain