マイライブラリ
マイライブラリ

+ マイライブラリに追加

電話

お問い合わせ履歴

電話(英語)

+7 (495) 789-45-86

Profile

ニュース一覧に戻る

Trojan.DnsAmp.1に関する詳細

2014年8月29日

株式会社Doctor Web Pacific


Doctor Webは、Trojan.DnsAmp.1に関する詳細なデータを公表します。

Trojan.DnsAmp.1は、DDoS攻撃を行うよう中国のウイルス開発者によって設計され、2014年5月にDoctor Webでも紹介したLinux.DnsAmpファミリーの、Windowsとの互換性を持ったバージョンです。このトロイの木馬は、そのうちの1つがトロイの木馬のメインペイロードである複数のファイル、および感染させたコンピューターのハードドライブ上に悪意のあるファイルを置くドロッパーで構成されています。Trojan.DnsAmp.1はSyn Flood、UDP Flood、Ping Flood、HTTP Get Floodなど様々な種類のDDoS攻撃を実行することができるほか、感染させたコンピューター上で悪意のある別のプログラムをダウンロード・実行する機能を備えています。

ドロッパー

ファイル末尾にある0x90バイトを読み込み、キー{F918FE01-164A-4e62-9954-EDC8C3964C1B}を使用したRC4アルゴリズムによって復号化します。復号化されたデータは以下のようになります。

struct DROP_INFO
{
    char szFirstDrop[0x40]; // Name of the first file
    DWORD dwFirstDropData; // Offset to the first file
    DWORD dwFirstDropSize; // Size of the first file
    char szSecondDrop[0x40]; // Name of the second file
    DWORD dwSecondDropData; // Offset to the second file
    DWORD dwSecondDropSize; // Size of the second file
}

ファイルデータの場所はオフセットで”dwSecondDropData–dwFirstDropData”および“Filesize + 0x90 – dwSecondDropData”です。その後、ドロッパーはキー{E5A42E7E-8130-4f46-BECC-7E43235496A6}を使用したRC4アルゴリズムによって最初のファイルを復号化し、別のキー{ADAB6D32-3994-40e2-8C18-2F226306408C}を使用して2つ目のファイルを復号化します。ファイルは%TEMP%フォルダ内に保存され、起動されます。

それらファイルの1つがTrojan.DnsAmp.1です。

インストール

このマルウェアは自動で起動されるWindows Test My Test Server 1.0.サービスとしてシステム上にインストールされ、その実行ファイルはvmware-vmx.exe.という名前で%System32%フォルダ内に保存されます。起動されるとシステムの現在の日付を確認し、それらが2013年2月21日よりも前であった場合、トロイの木馬はアクティブにはなりません。

悪意のあるペイロード

このトロイの木馬は2台のC&Cサーバーと接続を確立し、収集したシステムに関する情報をそれらのサーバーに送信します。感染させたコンピューターがWindows 7またはWindows NT環境で動作していた場合、送信されるデータはテンプレートPC_INFO_WIN7に従って構成されます。その他のバージョンのWindowsではテンプレートPC_INFOが使用されます。

struct PC_INFO
{
    DWORD signature; //"UU\t"
    char szOSVersion[16]; OS Version
    DWORD dwSpuSpeed; // CPU speed in MHz
    BYTE dummy[492]; // Zeros
}
 
struct PC_INFO_WIN7
{
    DWORD signature;      //"UU\t"
    char szOSVersion[16]; OS Version
    BYTE dummy[48];       // Zeros
    DWORD dwSpuSpeed;     //CPU speed in MHz
    BYTE dummy1[444];     //Zeros
}

szOSバージョンでは次の値が可能です。

Windows NT         
Windows 7          
Windows Server 2008
Windows Vista                  
Windows Server 2003
Windows XP         
Windows Server 2000

ネットワークインターフェースのトラフィックに関するデータは個別のスレッドで送信され、次のような構造になります。

struct PC_INFO_NETWORK_DATA
{
    DWORD signature; // "??\b"
    DWORD dwPacketsCount; //Bytes transferred
    BYTE dummy[508]; //Zeros
}

Trojan.DnsAmp.1は悪意のある別のアプリケーションをダウンロード、実行することができます。データの送信後、このトロイの木馬はC&Cサーバーからのコマンドを待ちます。受信するパケットは以下の構造を持っています。

struct CMD_PACKET
{
    DWORD Cmd; //command
    BYTE Parameter[512]; //Command parameter

コマンドには次の3つがあります。

CmdCommandComment
0x88Start a DDoS attack
0x9AStop a DDoS attackReset DDoS attack status
0x77798 Download and launch the file

DDoS攻撃を開始するコマンドを受けとった場合、トロイの木馬はその時点での攻撃のステータスを確認し、既に攻撃が実行中であった場合はコマンドを無視します。

DDoS攻撃を開始するコマンドは次の構造を持っています。

struct DDOS_PARAMS
{
    char szHost; //C-string containing a target IP address for the attack
    DWORD dummy[95]; //Zeros
    WORD wPort; // the target host's port, onto which the attack will be mounted
    WORD dummy2; //Zeros
    DWORD dwDuration; //DDoS attack duration in seconds
    DWORD dwThreadsCount; //Number of threads involved in the DDoS attack
    DWORD dwType; // DDoS attack type
    DWORD dwFlag; //Additional parameter that can take different values depending on the attack type
}

実行可能な攻撃の種類

CmdAttack type
0x01Syn Flood
0x02Syn Flood
0x03UDP Flood
0x04Ping Flood
0x05HTTP Get Flood

Linuxトロイの木馬をWindowsに適用する際、ウイルス開発者はDNS Amplification(アンプ攻撃)を使用せず、代わりにHTTP Get Floodを追加しています。

ファイルのダウンロード

ファイルをダウンロードするために、トロイの木馬はurlmon.dllコードをメモリ内にロードし、URLDownloadToFileA関数アドレスを取得します。ダウンロードリンクの位置はCMD_PACKETパラメータのオフセットで0になります。

ファイルは%TEMP%フォルダ内にダウンロードされ、ファイル名は次のように生成されます。

DWORD GetRnd(DWORD modulus)
{
  DWORD dwTicks;
  dwTicks = GetTickCount();
  return ticks * (rand() + 3) % modulus;
}
...
dwRnd0 = GetRnd(26u) + 97;
dwRnd1 = GetRnd(26u) + 97;
dwRnd2 = GetRnd(26u) + 97;
dwRnd3 = GetRnd(26u) + 97;
dwRnd4 = GetRnd(26u) + 97;
wsprintfA(wszFileName, "%c%c%c%c%c.exe", dwRnd4, dwRnd3, dwRnd2, dwRnd1, dwRnd0);
strcat(szTmpDir, szFileName);
この脅威についての記事

Tell us what you think

To ask Doctor Web’s site administration about a news item, enter @admin at the beginning of your comment. If your question is for the author of one of the comments, put @ before their names.


Other comments