
非常にポータブルなボットネットフレームワークで、DjangoベースのC2サーバーを備えています。クライアントはC++で記述されており、代替クライアントはRust、Bash、Powershellで記述されています。
ボットネットの C2 サーバーは、バックエンドとして Django フレームワークを利用しています。 最も効率的な Web サーバーとはほど遠いですが、以下の点で相殺されています。
aura-server フォルダー内に含まれています。管理サイトは http://your_server:server_port/admin にあり、スーパーユーザーを設定した後にアクセスできます(以下を参照)。
C2 サーバーは現在、SQLite3 データベース bots.sqlite3 を使用するように設定されています。現在の設定は で変更できます。代わりに MySQL や PostgreSQL を使用することもできます。Django のポータブルなデータベース API のおかげで、これは簡単に行えます。
主要なクライアントは C++ で記述されており、CMake を使用して Linux または Windows 用にコンパイルできます。代替のクライアントは Rust、Bash、PowerShell で記述されていますが、ほとんどサポートされていないため、一部の機能が欠けている場合があります。私の注意を引いた大きなバグは修正しますが、当面は、異なるシェルでコマンドを実行するなどの特定の機能が引き続き欠けています。
クライアントは関連するシステム情報を収集し、それを C2 サーバーに送信して新しいボットを登録します。識別は、最初にランダムなデータを含むファイル(コード全体で auth file と呼ばれます)を作成し、クライアントが実行されるたびにそのファイルをハッシュしてクライアントを識別し、C2 サーバーで認証することで行われます。次に、コードで指定されたフォルダー内のすべてのファイルをインストールし、クライアントが実行されたときと同じ権限でシステムサービスを初期化するか、タスクをスケジュールします。デフォルト設定では、クライアントとその他のファイルは設定ファイルになりすまします。
これはテスト目的であるため、C2 サーバーをクライアントおよび Web 配信ファイルにハードコーディングする必要があります。現在、すべてのファイルで localhost に設定されています。これは、実際のボットネットでは、ドメイン生成アルゴリズム(DGA)のようなものを使用して、クライアント側の変化するドメインのストリームを登録中の使い捨てドメインのストリームと同期させるか、または元の Mirai ボットネットのように、本当に耐障害性の高いホスティングを使用するためです。
コードは難読化されておらず、リバースエンジニアリングを防ぐための努力も行われていません。これを行うと、テストおよびデモンストレーション用のボットネットであるという目的が無意味になります。
killswitch フォルダーには、デバイスでテストする際にクライアントを簡単に削除するためのスクリプトが含まれています。