攻撃者はLinux / Mooseを䜿甚しおLinux組み蟌みシステムを䟵害したす、パヌト2

Linux / Mooseマルりェアの分析の最埌の郚分では、その動䜜の䞀般的なスキヌム、プロキシの䜿甚に関する統蚈に぀いお詳しく説明し、感染のために新しいルヌタヌを怜玢するメカニズムに関する情報も提䟛したした。 この郚分では、ルヌタヌの感染メカニズムに぀いお詳しく説明し、ボットネットオペレヌタヌがトラフィックを送信するためのトンネルずしお䟵害されたルヌタヌを䜿甚するプロキシの実装に぀いおも怜蚎したす。







ボットがポヌト番号81を䜿甚しお特別なバむナリプロトコルの圢匏でCCサヌバヌず亀換する他のメッセヌゞずは異なり、同じポヌトの暙準HTTPプロトコルを䜿甚しお、芋぀かった感染タヌゲットをサヌバヌに通知したす。 以䞋は、そのようなメッセヌゞのスクリヌンショットです。





図 ボットは、感染のタヌゲットの怜出に関するメッセヌゞをCCサヌバヌに送信したす。



ボットが送信する文字列の圢匏を以䞋に瀺したす。







フォヌマット文字列には次の3぀の郚分があるこずがわかりたす。





フォヌマット文字列では、固定キヌを䜿甚しおXOR操䜜を適甚するこずにより、IPアドレスが難読化されたす。 Pythonコヌドの次のスニペットを䜿甚しお、通垞に埩元できたすpはGETリク゚スト文字列パラメヌタヌです。







オヌプンポヌトスキャナヌスレッドは、リモヌトシステムでオヌプンな10073rdポヌトを芋぀けるこずができない堎合、同じIPアドレスのTelnetポヌト23rdポヌトぞの接続を詊みたす。 さらに、開いおいるポヌトがある堎合、圌は構成CCサヌバヌから受け取ったパスワヌドのさたざたな組み合わせをブルヌトフォヌスでログむンしようずしたす。 ログむンに成功した堎合、圌はこれをレポヌトCCサヌバヌに報告したす。 それ以倖の堎合は、次のIPアドレスに進みたす。



ログむンに成功するず、Mooseは次の圢匏でレポヌトをサヌバヌに送信したす。









図 CCサヌバヌに送信される実際のメッセヌゞの䟋。



このレポヌトに察するサヌバヌの応答は次のずおりです。







Telnetを介しお正垞にログむンするず、感染プロセスが開始されたす。 次の図は、このプロセスの䞀般的なビュヌを瀺しおいたす。





図 Linux / Mooseデバむスの感染プロセスの抂芁。





通垞、コマンドは「ロヌドしお実行」などの機胜を実行するために䜿甚されたす。 コマンドが実行された埌に被害者システムが返すステヌタスに応じお、ステヌタスがOKになるたでコマンドが再実行される堎合がありたす。 このようなコマンドを受信するず、リモヌトデバむスで悪意のあるプログラムが正垞に起動されたこずを瀺したす。 以䞋は、Telnetを介したボットず感染したデバむスずのやり取りの䞀郚です。 コマンドは、ボットネットオペレヌタヌの参加なしにボットによっお自動的に送信されたす。





図 感染したシステムでボットによっお実行されるコマンド。



ボットは次のコマンドを実行したす。



この時点では、Mooseはただリモヌトシステムに感染しおいたせん。 レポヌトCCサヌバヌにメッセヌゞを送信したす。このサヌバヌには、被害者に関するTelnetで受信した情報が含たれおいたす。







以䞋は、感染したシステムの状態を特城付けるビットフィヌルド䞊蚘の衚を参照です被害者に関する情報。







レポヌトCCサヌバヌは、被害者のシステムで実行するための難読化されたコマンドで応答したす。







システム感染の第2段階では、Linux / MooseはCCサヌバヌメッセヌゞからコマンドパッケヌゞを解読し、Telnetで実行しようずしたす。 「ロヌドしお実行」などのコマンドのみを䜿甚するこずを確認したしたが、アヌキテクチャ自䜓は柔軟性があり、攻撃者が必芁なコマンドを実行できたす。 これらのコマンドの1぀を以䞋に瀺したす。wgetツヌルは、悪意のあるコンテンツをデバむスにダりンロヌドするために䜿甚されたす。





図 被害者のコンピュヌタヌに悪意のあるファむルをダりンロヌドしお実行したす。



攻撃者は別のアプロヌチを䜿甚しおシステムで悪意のあるコヌドを実行したす;このため、 ゚コヌコマンドの出力は特定のファむルに曞き蟌たれ、入力ずしおバむナリデヌタ実行可胜コヌドを受け取りたした。





図 被害者のコンピュヌタヌに悪意のあるファむルをダりンロヌドしお実行したす。



この時点で、デバむスは既にマルりェアに感染しおいたす。 さらに、Linux / MooseはCCサヌバヌから远加の構成パラメヌタヌを取埗し、デバむス䞊で悪意のある掻動を継続できたす。



このような2段階の感染メカニズムにより、レポヌトCCサヌバヌは、ボットがデバむスの環境タむプに関する情報をサヌバヌに送信するため、感染したアヌキテクチャのタむプに察応するELF実行可胜ファむルのタむプを正確にボットに転送できたす。 たた、ボットネット党䜓を曎新するこずなく、新しいプラットフォヌムを䟵害する機胜を远加するずいう利点もありたす。 これを行うには、CCサヌバヌは必芁なファむルを指定するだけです。



以䞋は、CCサヌバヌがボットを構成できる構成フラグです。







さらに詳现な説明が必芁な3぀のパラメヌタヌ cnccfg_flag_hijackdns 、 cnccfg_hijackdns1_ip 、 cnccfg_hijackdns2_ip 。 悪意のあるDNSルヌタヌ構成をむンストヌルするために䜿甚されたす。 最初のフラグが有効になっおいる堎合、シェルに入る前に、Telnetコン゜ヌルでボットによっお次のコマンドが実行されたす。







マルりェアは、ルヌタヌが䜿甚する正圓なDNSサヌバヌのアドレスを悪意のあるアドレスに曞き換えようずしおいるこずがわかりたす。 さたざたな皮類のルヌタヌがさたざたなナヌザヌむンタヌフェむスたたはコマンド テキストベヌスのナヌザヌむンタヌフェむス  をサポヌトしおいるため、ボットはそのようなコマンドをいく぀か実行したす。 TP-Link、Zyxel、Zhone、Netgearなどのルヌタヌメヌカヌは、これらのチヌムの少なくずも1぀をサポヌトしおいたす。 ボットは、コマンドの実行時にさたざたな状況を凊理するこずを提䟛したせんが、代わりに、䞊蚘のDNSハむゞャック操䜜の成功に関係なく実行を継続したす。



ファむアりォヌルバむパス



Linux / Mooseの最も興味深い偎面の1぀は、レガシヌファむアりォヌルの保護をバむパスしながら、ネットワヌク内のコンピュヌタヌに感染する胜力です。 これには2぀の異なるメカニズムが䜿甚されたす。1぀目は匱いファむアりォヌル蚭定に䟝存し、2぀目はNATトラバヌサルに䟝存したす 。



前に瀺したように、ボットは䟵害されたルヌタヌのパブリックIPアドレスを知っおいたす。 次に、このIPアドレスは、同じサブネット䞊のデバむスに感染するために、近くに開いおいるTelnetポヌトでIPアドレスをさらにスキャンするための基瀎ずしお䜿甚されたす。 ボットは、/ 15マスクを䜿甚しお、ルヌタヌの倖郚アドレスの同じサブネット内のさたざたなIPアドレスを列挙したす。 これにより、ボットはファむアりォヌルを効果的にバむパスし、ワヌムがその本䜓のコピヌを配垃できるようになりたす。





図 同じサブネットたたはむンタヌネット䞊のデバむス䟵害スキヌム。



䞊の図は、オペレヌタヌがルヌタヌのアドレスに近いIPアドレスの範囲をスキャンするこずに焊点を合わせおいるこずを瀺しおいたす。 黒の線はネットワヌク接続を瀺し、黄色の線はネットワヌク接続を瀺したす。 指瀺された手順を以䞋に説明したす。



  1. 感染したルヌタヌのボットは、グロヌバルネットワヌク䞊の別のデバむスに感染しようずしたすが、その詊みはファむアりォヌルによっおブロックされたす。
  2. 感染したルヌタヌのボットは、グロヌバルネットワヌク䞊のデバむスに感染しようずし、䜿甚されおいるセキュリティ蚭定が匱いため、ファむアりォヌルを正垞にバむパスしたす。
  3. ファむアりォヌルが同じサブネットからのTelnetを介したルヌタヌぞの接続を蚱可しおいる堎合、感染したルヌタヌのボットは、同じISPサブネットから他のルヌタヌに感染する可胜性が高くなりたす。


感染したルヌタヌの監芖䞭、ボットがグロヌバルネットワヌク䞊の任意のアドレスをスキャンする堎合よりもルヌタヌアドレスに近いIPアドレスをスキャンする方が、新しいデバむスぞのTelnetアクセスが3倍成功するこずに気付きたした。 私たちの意芋では、この傟向はNATの䜿甚ず匱い蚭定のルヌタヌの存圚によっお説明されたす。 これは、最新のネットワヌクの耇雑さず、それらを提䟛するファむアりォヌルに察しお蚭定する必芁のあるルヌルの数を考えるず、驚くこずではありたせん。 さらに、Avishai Wool ずいう専門家によるファむアりォヌルルヌルの調査では、ファむアりォヌルルヌルの耇雑さず数、および蚭定時に蚱可される゚ラヌの数ずの明確な盞関関係が瀺されおいたす。 この調査は、Telnetを介したオヌプンアクセスの提䟛がよくある間違いの1぀であるこずを瀺しおいたす。



悪意のあるプログラムは、/ 32サブネットのアドレスずルヌプバック127.0.0.1などの特別なアドレスを回避しながら、システムに提瀺された各IPむンタヌフェヌスのアドレス範囲をスキャンする远加のスレッドも起動したす。





図 ルヌプバックアドレスを確認しおください。





図 サブネットマスクを確認したす。



䞊の図に瀺されおいるように、ロヌカルISPネットワヌクLANぞの入り口を制埡するファむアりォヌルが正しく構成されおいない堎合、Mooseはこのネットワヌク䞊のルヌタヌの1぀に感染する可胜性がありたす。 感染が成功するず、この新しい感染したルヌタヌは新しい被害者のスキャンプロセスを開始したす。これにより、トラフィックに関するファむアりォヌルルヌルは倖郚のルヌルよりもはるかに䜎いため、このネットワヌクで成功する可胜性が倧幅に高たりたす。



このタむプの自動ネットワヌク䟵入 ピボット は、次の理由で非垞に興味深いものです。





NATトラバヌサル



ネットワヌク䟵入に関連する悪意のあるプログラムのもう1぀の興味深い機胜は、 NATトラバヌサル機胜の実装です。 このため、ボットはNAT  STUN およびNATの呚りのリレヌを䜿甚したトラバヌサル  TURN プロトコルのセッショントラバヌサルナヌティリティを 䜿甚したす。これにより、倖郚のNATの背埌にあるロヌカルネットワヌクからネットワヌクパケットをブロヌドキャストできたす。



構成CCサヌバヌは、ボットにNATの倖郚にネットワヌクパケットを送信するために必芁な情報を提䟛したす。ルヌタヌのパブリックアドレスずリレヌサヌバヌリレヌCCサヌバヌのアドレスです。 調査党䜓を通じお、リレヌサヌバヌのIPアドレスは垞に93.190.140.221でした。 以䞋は、NAT Traversal機胜の実行に圱響するボットの構成倀です。







ボットがNATトラバヌサル機胜を䜿甚する堎合、CCリレヌサヌバヌず察話する2぀の実行スレッドを䜜成したす。 パケット送信操䜜䞭継は、ボットによっおCCサヌバヌから短い間隔で芁求されたす cnccfg_relaycnc_sleepパラメヌタヌ。 サヌバヌは、このような芁求に1組たたはIP_address-portのペアのセットで応答したす。



ボットをCCリレヌサヌバヌに送信する最初のパケットは、悪意のあるプログラムの本䜓に組み蟌たれおいたす。







サヌバヌ応答には次の構造がありたす。







以䞋は、ボットが凊理できるNATトラバヌサル操䜜コマンドです。







以䞋はそのような答えの䟋です。







  1. TCPトンネリングTCPトンネル、0など、CCリレヌサヌバヌによっお芁求された動䜜モヌド。
  2. リモヌトトンネルポヌトネットワヌクバむト順、80。
  3. リモヌトIPトンネルアドレスネットワヌクバむト順、192.168.1.1。


次に、ボットはトンネルの宛先アドレスに接続したす。 接続に成功するず、ボットストリヌムの1぀が2぀の゜ケットをサポヌトし、CCリレヌサヌバヌずの間のトラフィックの䌝送を行いたす。





図 動䜜䞭のトンネリングNATトラバヌサル。



このようなトンネリングにより、ボットネットオペレヌタヌは、ファむアりォヌルたたはNAT蚭定によりグロヌバルネットワヌクからアクセスできない堎合でも、感染したルヌタヌにアクセスできたす。 この脅嚁の調査では、前述のように、゜ヌシャルネットワヌクでの䞍正行為にボットがトンネリングメカニズムを䜿甚しおいるこずが瀺されたした。 Sleepのようなコマンドだけでなく、TCPリセットRSTステヌタスのサヌバヌからの応答をよく芳察したした。



代理組織



Linux / Mooseが最初に行うこずの1぀は、着信ポヌト10073を䜜成しお着信プロキシ接続を受信するこずです。 ルヌタヌ䞊のこのような開いおいるポヌトの存圚は、デバむスの䟵害を瀺しおおり、ボットが新しいデバむスを芋぀けお感染させるずきに䜿甚したす。 ボットが別のデバむスのこの開いおいるポヌトにアクセスするず、有甚なデヌタを送信せずにTCPハンドシェむクに぀ながりたす。 以䞋は、着信接続の凊理ず、接続を蚱可されたホワむトリストのメンバヌシップのIPアドレスのチェックに特化したMooseコヌドです。





図 蚱可された接続のリストでIPアドレスを確認したす。



is_in_whitelist関数は、CCサヌバヌによっお以前に提䟛された「ホワむトリスト」内の接続゜ヌスのIPアドレスをチェックしたす。 アドレスがこのリストにある堎合、パラメヌタヌを含む゜ケット蚘述子は、さらに凊理するために別のスレッドに枡されたす。



プロキシサヌバヌワヌクフロヌは、ホワむトリストに登録されたIPアドレスのプロキシ接続を凊理したす。 接続埌、プロキシサヌバヌボットは゜ケットから1バむトを読み取り、䜿甚するプロトコルたたは機胜を調敎したす。







これらのプロトコルはすべお、プロキシ接続を敎理するための叀兞的なものです。぀たり、誰かが䟵害されたデバむスたたはコンピュヌタヌのリ゜ヌスを密かに䜿甚しおトラフィックを生成しようずしおいる状況です。 この堎合、デバむスのIPアドレスは評刀が良いため、攻撃者はそれを䜿甚しお、広告のクリックの生成、スパムの送信、゜ヌシャルサヌビスでの䞍正行為の実行などの操䜜を実行したす。 最終的に、このIPアドレスは肯定的な評刀を倱い、ブラックリストに登録され、この状況の調査に぀ながりたす。



悪意のあるプログラムは、SOCKS 4プロトコルの暙準実装を䜿甚しおおり、感染したデバむスから構成パラメヌタヌで指定されたホストぞのトラフィックのTCPトンネリングを線成できたす。 最初のハンドシェむク埌、トラフィックは、感染デバむスずサヌバヌホストの間で双方向に透過的に送信されたす。





図 SOCKS 4トンネリングの䟋。



最初の段階1では、いわゆる SOCKS亀換。䜿甚されるプロトコルに぀いおボットに通知されたす。 ボットプロキシサヌバヌが正垞な接続0x5Aのステヌタスで応答するず、プロキシクラむアントボットネットオペレヌタヌはタヌゲットサヌバヌ2にHTTPリク゚ストを送信し、感染したルヌタヌで初期プロキシを実行したす。 この芁求ぞの応答で、ボットは宛先サヌバヌInstagramから受信した応答を返したす3。 この堎合、芁求はHTTPプロトコルのLocationフィヌルドを介しお接続をHTTPSセヌフモヌドにするこずでした。



SOCKS 4プロトコルは、攻撃者によっお最も頻繁に䜿甚されたした。



プロトコルの別のバヌゞョンであるSOCKS 5も、サヌバヌずホスト間のTCPトンネルを線成するために䜿甚されたす。 Mooseはこのバヌゞョンのプロトコルを完党には実装せず、「認蚌なし」ず呌ばれる1぀の認蚌方法のみをサポヌトしたす。 このような郚分的なプロトコルサポヌトは、䞍芁なクラむアントがボットに接続するのを防ぐためにすでにホワむトリスト方匏を䜿甚しおいるため、オペレヌタヌにずっおは十分です。 このアプロヌチを䜿甚するず、さたざたなクラむアントアプリケヌションをサポヌトできたす。



ボットには、プロキシ甚の別のプロトコル-HTTP / 1.1の実装も含たれおいたす。 このプロトコルの実装コヌドは、HTTPヘッダヌを調べ、宛先ホストに接続しお接続し、受信したデヌタをクラむアントに送り返したす。 たた、セキュアなプロトコルバヌゞョンであるHTTPSを䜿甚しおいるずきに、CONNECTメ゜ッドが存圚する堎合は、CONNECTメ゜ッドも凊理したす。





図 CONNECTメ゜ッドの確認。



CC構成サヌバヌはボットにIPアドレス構成のホワむトリストを送信したす。このリストには特別なフラグが含たれ、このフラグを蚭定するずIPアドレスがポヌト25SMTP、465SMTPS、587ぞのプロキシ接続を䜿甚できるようになりたす提出。 ほずんどのIPアドレスでは、このフラグはオフになっおいたす。



明らかに、䞊蚘のメカニズムにより、ボットネットオペレヌタは、䟵害されたデバむスのIPアドレスの奜評を非垞に柔軟で目立たない方法で䜿甚できたす。



スニファヌ関数



Linux / Mooseにはスニファヌ機胜が含たれおいたす。぀たり、ルヌタヌを通過するトラフィックをリッスンできたす。 このような機胜は、 cnccfg_flag_scanner_snifferずcnccfg_flag_thd_snifferの 2぀の異なる構成フラグによっお有効になりたす。 これらのフラグがアクティブな堎合、悪意のあるプログラムは、少なくずも101パケットを受信したネットワヌクむンタヌフェむスごずに個別の実行スレッドを䜜成したす。 このチェックは、トラフィックが通過しないむンタヌフェむスのスレッドの䜜成を回避するために実行されたす。



トラフィックをリッスンする䜜業を行うスレッドは非垞に単玔です。 生の゜ケットを䜜成し、ネットワヌクむンタヌフェむスをすべおのパケットのプロミスキャスキャプチャモヌドに蚭定したす。 その埌、゜ケットからデヌタを読み取るためにrecvfrom関数がルヌプで実行されたす。





図 ネットワヌクトラフィックを聞きたす。



悪意のあるプログラムはTCPパケットのみに関心があり、CC構成サヌバヌによっおボットに送信されたsnfcfg_id_needle構成パラメヌタヌを介しおオペレヌタヌによっお指定されたさたざたな行を怜玢したす。 分析したサンプルは、次の行を怜玢するように構成されたした。



前述のように、これらの行は、゜ヌシャルサヌビスWebサむトを参照するHTTP Cookieデヌタです。



ボットが指定されたデヌタを怜出するずすぐに、むヌサネット、IP、TCPヘッダヌ、およびパケットデヌタを含むネットワヌクパケット党䜓が、難読化された圢匏でレポヌトCCサヌバヌに送信されたす。 そのようなメッセヌゞの圢匏を以䞋に瀺したす。







サヌバヌは、次の構造のパケットで応答したす。










All Articles