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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
voidsyscall — クロスプラットフォームのシステムコール駆動型インプラント&C2 — ダイレクトシステムコール(Win)、rawシステムコール(Linux)、HTTPS/DNS/ICMPチャネル。winapiレイヤーなし。 | Kitploit
ツール/GitHubGitHub/voidsecsoftwares/voidsyscall
特権昇格暗号化/復号化ツール永続化メカニズムIDS/IPS回避横移動ポストエクスプロイトマルウェア分析ペネトレーションテストコマンド&コントロールレッドチーミングペイロード開発リモートアクセストロイの木馬
18191日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

voidsyscall

クロスプラットフォームのシステムコール駆動型インプラント&C2 — ダイレクトシステムコール(Win)、rawシステムコール(Linux)、HTTPS/DNS/ICMPチャネル。winapiレイヤーなし。

リポジトリを見る

voidsyscall

go license platform c2 syscalls

WinAPIゼロ。すべてのNTプリミティブはメモリ内のntdllから実行時に解決され、 SYSCALL命令はPlan9アセンブリスタブを介して直接発行される。インポートテーブルなし、 ntdllのユーザーモードフックに一切触れない。C2はHTTPS / DNS / ICMP経由、メッセージごとに AES-256-GCM。Windowsネイティブ。Linuxビルド。macOSビルド。

これはsyscallラッパーライブラリではない。コードの注入からファイルの読み取り、レジストリへの 永続化まで、すべての操作が起動時に現在のntdllエクスポートテーブルから解決された生のNt* syscallを経由する完全なインプラントフレームワークである。バイナリ内にWinAPI呼び出しは存在しない。 EDRがユーザーモードでフックできるものは何もない。


内部の内容

Syscallエンジン

  • 実行時SSN解決: PEB → LDR → ntdllベース → PEエクスポートテーブル → djb2ハッシュマッチ → B8 xx xx 00 00 0F 05(直接)または 4C 8B D1 B8 xx xx 00 00 0F 05(Hells Gate)のプロローグスキャン。すべての関数名は コンパイル時にハッシュ化される — バイナリ内に平文文字列は存在しない。
  • 直接syscall: Plan9アセンブリ(asm_amd64.s)がSSNをEAXにロードし、 7つの引数を手動で設定し、SYSCALLを実行する。RAX/RDX経由で戻る。
  • 間接syscall: ntdll内の0F 05 C3ガジェット(syscall;ret)を特定し、 それを介して呼び出す。CPUトラップはntdll内部で発生する — コールスタックには ntdllのフレームが表示され、インプラントのフレームは表示されない。ユーザーモードフックは 一切生き残れない。
  • SSNフィンガープリント: 現在のntdllビルドから解決されたすべてのSSNをダンプし、 フィンガープリントハッシュを生成する。16進数としてエクスポートし、別のマシンでインポートする。 ビルドの不一致を、それがあなたを焼き尽くす前に検出する。
  • アンフック: .textをRWXにロックし、ディスクマップされたntdllから元のバイトをコピーし、 保護を復元し、icacheをフラッシュし、SSNキャッシュを破壊する。 あらゆるEDRが設置したすべてのユーザーモードフックが消える。

インジェクション — 4つの手法、ポリモーフィックローテーション

エージェントはインジェクション手法を自動的にローテーションする。各呼び出しは 異なる手法を使用する — フォレンジックにおいて2つのインジェクションが同じに見えることはない。

アンチアナリシス — 13以上の検出手法

すべてのチェックを実行し、スコア付き脅威レポートを返す。Criticalで自動破壊。

トークン操作

すべてNt* syscall経由、WinAPIなし。

  • EnablePrivilege(index) — LUIDで任意の特権を設定
  • EnableAllTokenPrivileges() — 一度に20の特権(Debug、Impersonate、TCB、Backup、Restoreなど)
  • GetProcessTokenIntegrityLevel() — 必須整合性レベルをクエリ
  • StealProcessToken(pid) — 別のプロセストークンを開いて複製
  • ImpersonateThread() / RevertToSelf()

VAD操作

  • EnumVirtualMemory() — NtQueryVirtualMemoryで全仮想領域を走査
  • FindWritableExecRegions() — PAGE_EXECUTE_READWRITEコミット済み領域を検索
  • HideRegion() — PAGE_NOACCESSを設定してスキャナからメモリを隠す
  • UnhideRegion() — 元の保護を復元

ファイルI/O — すべてNt* syscall

NtCreateFile → NtReadFile / NtWriteFile → NtClose。CreateFileA、 ReadFile、WriteFile、DeleteFileW呼び出しはゼロ。ReadFileContents()、 WriteFileContents()、DeleteFileNt()、FileExists()。

レジストリ永続化 — すべてNt* syscall

NtCreateKey → NtSetValueKey。AddRunKeyPersistence()、RemoveRunKeyPersistence()。 RegCreateKeyEx、RegSetValueEx、その他Advapi32呼び出しは一切なし。

ハンドル操作

  • EnumerateSystemHandles() — NtQuerySystemInformation(SystemHandleInformation)経由で システム内のすべてのオープンハンドル
  • FindEDRHandles() — オーナーPIDを30以上の既知のEDRプロセス名 (MsSense、CrowdStrike、Sentinel、Cylance、Carbon Blackなど)と照合
  • CloseEDRHandles() — EDRがあなたのプロセスに設置した監視ハンドルを閉じる
  • IsProcessMonitored() — ブールチェック: 監視されているか?

メモリ暗号化

  • Vault: タイマーで自動再キーイングするインメモリXOR暗号。 平文が生のまま保存されることはない。再キーは復号 → 新しいキーを生成 → 再暗号化する。再キー間隔の間のフォレンジックヒープダンプはゴミを取得する。
  • SecureDelete: NtFreeVirtualMemoryの前に3パスワイプ(ランダム → ゼロ → 1 → ゼロ)。
  • StackEncrypt: 戻る前にスタック割り当てバッファを暗号化。 スタックフレームの再利用によりフォレンジックが信頼できなくなる。

AMSI / ETW / 回避パッチ

  • PatchAMSI() — AmsiScanBuffer → MOV EAX, 0; RET
  • PatchETW() — EtwEventWrite → RET
  • PatchNtTraceEvent() — NtTraceEvent → RET
  • PatchDbgUiRemoteBreakin() — スレッドブレークイン → RET
  • PatchInstrumentationCallbacks() — ThreadHideFromDebugger

C2チャネル

チャネルワイヤフォーマット前提条件

すべてのチャネルはChannelインターフェースを実装する。NTP、DoH、TURNの追加は インターフェースの実装を意味する — エージェントの変更はゼロ。

暗号

メッセージごとのAES-256-GCM AEAD。メッセージごとに一意の12バイトnonce。インプラントごとの キーリング。パスフレーズベースのキー導出が利用可能。3つのテスト、すべて合格。


レイアウト

root@kitploit:~
voidsyscall/
  syscallwin/          Direct/indirect NT syscalls + evasion
    asm_amd64.s        Syscall/IndirectSyscall/ReadGSBase/SetGSBase/asm_cpuid/asm_rdtsc
    resolve.go         PEB→LDR→ntdll walk, PE export parse, SSN cache, prologue scan
    stubs.go           ~25 Nt* wrappers, DirectSyscall, IndirectSyscallByHash
    hash.go            djb2 hash (string + UTF-16 pointer)
    constants.go       MEM_*, PAGE_*, THREAD_*, TOKEN_*, OBJ_*, REG_*, FILE_*, STATUS_*
    unhook.go          UnhookNtdll, SelfDel
    peb.go             PEB patching (BeingDebugged, NtGlobalFlag, Heap, DebugPort)
    token.go           Privilege escalation, token theft, impersonation
    vad.go             VAD enumeration, hide/unhide regions
    files.go           File I/O via Nt* syscalls
    registry.go        Registry persistence via Nt* syscalls
    fingerprint.go     SSN dump, build fingerprint, hex export/import
    inject_advanced.go 4 injection methods: section mapping, hollow, APC, module stomp
    antianalysis.go    VM/sandbox/debug/timing detection, scored threat report
    handles.go         System handle enumeration, EDR handle killer
    memcrypt.go        Vault (re-keying XOR), SecureDelete, StackEncrypt, WipeMemory
  syscallnix/          Linux/darwin raw syscalls
  patches/             AMSI, ETW, NtTraceEvent, DbgUiRemoteBreakin, InstrumentationCallbacks
  loader/              CreateThread/APC/module-stomp injection
  channels/            HTTP, DNS (TXT), ICMP — Channel interface
  crypto/              AES-256-GCM, envelope, passphrase variant (3 tests)
  server/              SessionManager, Task Queue, interactive REPL
  agent/               Config, beacon loop, 10 task handlers
  cmd/server/main.go   CLI with REPL
  cmd/agent/main.go    Windows-only entrypoint

ビルド

root@kitploit:~
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o voidsyscall-agent.exe   ./cmd/agent
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o voidsyscall-server.exe  ./cmd/server
GOOS=linux   GOARCH=amd64 go build -ldflags="-s -w" -o server-linux            ./cmd/server
GOOS=darwin  GOARCH=arm64 go build -ldflags="-s -w" -o server-darwin           ./cmd/server

garbleによる難読化:

root@kitploit:~
GOOS=windows GOARCH=amd64 garble -literals -tiny build -ldflags="-s -w" \
    -o voidsyscall-agent.exe ./cmd/agent

使用方法

サーバー

root@kitploit:~
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
./voidsyscall-server.exe --cert cert.pem --key key.pem --https-port 443

エージェント

root@kitploit:~
./voidsyscall-agent.exe -c agent/example-config.json

タスクプロトコル


SSN解決の内部

  1. ReadGSBase(asm) → GS:[0x60] → TEB
  2. TEB+0x60 → PEB。PEB+0x18 → Ldr
  3. InMemoryOrderModuleListを走査 → djb2ハッシュでntdll.dllをマッチ
  4. ベース → IMAGE_DOS_HEADER → e_lfanew → IMAGE_NT_HEADERS → DataDirectory[0] = エクスポートテーブル
  5. AddressOfNames[]を走査、それぞれをdjb2、ターゲットをマッチ
  6. オーディナルを解決 → AddressOfFunctions[ordinal] → 関数アドレス
  7. プロローグをスキャンしてB8 xx xx 00 00 0F 05(直接)、B8 xx xx 00 00 C3(アーリーレット)、または4C 8B D1 B8 xx xx 00 00 0F 05(Hells Gate)を検出

バイナリ内に関数名はない。djb2ハッシュのみ。syscall命令は すべてのユーザーモードフックをバイパスする。


エージェントタスクハンドラ

root@kitploit:~
TaskShell       // exec via cmd.exe
TaskInject      // polymorphic: section/hollow/APC/stomp
TaskPatch       // AMSI/ETW/both
TaskEvasion     // PEB patches + VM/sandbox/debug/timing detection
TaskHandles     // enumerate + kill EDR monitoring handles
TaskFingerprint // dump SSN build fingerprint
TaskToken       // privilege escalation + impersonation
TaskVault       // encrypted in-memory storage
TaskSleep       // jitter-aware sleep
TaskExit        // clean shutdown

ステータス

出荷済み: ビーコンループ、タスクキュー、3つのC2チャネル、4つのインジェクション手法、 10以上の回避チェック、ハンドル列挙/クローズ、トークン操作、VAD操作、 ファイルI/O、レジストリ永続化、SSNフィンガープリンティング、メモリ暗号化、 AMSI/ETWパッチ、AES-GCM暗号、セッション管理、インタラクティブREPL。 3つの暗号テストが合格。Windowsでgo buildクリーン。

未実装: Linux自律エージェント(ビルドは存在するが、エージェントロジックなし)、 セッションキーローテーション、ステージドローダー、NTP/DoHチャネル、永続化スケジューリング。

謝辞

  • carved4/go-native-syscall
  • Enelg52/OffensiveGo
  • am0nsec/HellsGate
  • f1zm0/acheron
  • Sliver C2

ライセンス

MIT — LICENSE

ツールをダウンロード
手法仕組みステルス性の理由
セクションマッピングNtCreateSection → NtMapViewOfSection(リモート) → NtCreateThreadExVADにRWXアロケーションなし。セクションはファイルバックド。メモリスキャナはPAGE_EXECUTE_READを見て、PAGE_EXECUTE_READWRITEは見ない。
プロセスホローNtCreateUserProcess(サスペンド) → NtSuspendProcess → イメージベースをゼロ化 → シェルコードをアロケート+書き込み → NtSetContextThread(RIP = シェルコード) → NtResumeProcessプロセスはタスクマネージャで正規のsvchost.exeとして表示される。メモリ内容のみが異なる。
APCキューイングNtQuerySystemInformationでスレッドを列挙 → NtOpenThread → NtQueueApcThread新しいスレッドは作成されない。新しいTEBもない。新しいスタックアロケーションもない。スレッドがアラータブル待機に入ったときに発火する。
モジュールスタンピングターゲット内にアロケート → 最小限のPEヘッダ+シェルコードを書き込み → エントリポイントでNtCreateThreadExモジュールリストにそれらしいDLL名が表示される。PEヘッダはモジュール列挙を欺くのに十分有効。
チェック手法
VM検出CPUIDリーフ0x40000000ハイパーバイザ署名スキャン(VMware、VirtualBox、Hyper-V、KVM、Xen、QEMU、Parallels)+リーフ0x40000001フォールバック
サンドボックス検出CPU数、レジストリアーティファクト(VMware Tools、VBox Guest Additions、VMware/VBoxサービス)、サンドボックスプロセススキャン(30以上の既知の名前: wireshark、procmon、x64dbg、idaなど)
デバッガ検出PEB.BeingDebugged、PEB.NtGlobalFlag、ヒープデバッグフラグ、ProcessDebugPort、ProcessDebugObjectHandle、ProcessDebugFlags、ハードウェアブレークポイントDR0-7、タイミングシングルステップチェック
タイミング異常RDTSCベース: NtQuerySystemInformationレイテンシの50サンプル、平均/標準偏差、サンプルの10%超が3σ分散を超えた場合にフラグ。インストルメンテーションのオーバーヘッドを捕捉する。
PEB回避BeingDebugged、NtGlobalFlag、ProcessHeapフラグ、DebugPort、ThreadHideFromDebuggerをパッチ — すべてGSセグメント読み取り+NtWriteVirtualMemory経由。API呼び出しなし。
HTTPSバイナリPOST、カスタムフレーミング、ランダム化UA/パスTLS証明書
DNS<idx>-<total>-<base32>サブドメイン、TXTレスポンスDNS解決
ICMPv4エコーリクエスト/リプライのID+seqにペイロードrawソケット(root/Admin)
タスクバイトペイロード
shell0x01UTF-8コマンド
inject0x02PID(4バイトLE)+シェルコード
patch0x030x01=AMSI、0x02=ETW、0x03=両方
sleep0x04秒(4バイトLE)
evasion0x100x01=フル、0x02=VM、0x03=サンドボックス、0x04=デバッグ、0x05=タイミング、0x06=レポート
handles0x110x01=カウント、0x02=EDR列挙、0x03=EDRクローズ、0x04=監視中?
vault0x12暗号化ストレージ操作
fingerprint0x13SSNビルドフィンガープリントをダンプ
token0x140x01=すべて有効化、0x02=整合性、0x03=デバッグ特権、0x04=なりすまし
exit0xFF—
  • 2バイトのSSNを抽出 → map[uint32]uint16キャッシュに保存