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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
GhostTask — ツールはレジストリを直接操作し、通常のイベントログをトリガーせずにスケジュールタスクを作成します。 | Kitploit
ツール/GitHubGitHub/netero1010/ghosttask
特権昇格永続化メカニズム横移動レッドチーミング
GitHubnetero1010/ghosttask

GhostTask

ツールはレジストリを直接操作し、通常のイベントログをトリガーせずにスケジュールタスクを作成します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Ghost Scheduled Task

WithSecureによるスケジュールタスク改ざんの研究に着想を得て、レジストリキーの操作のみでスケジュールタスクを作成する可能性が説明されていました。このアプローチにより、4698や106といったスケジュールタスク作成イベントログの生成を回避でき、よりステルスな永続化手段が実現できます。これらの知見に基づき、私はレジストリの直接操作によるスケジュールタスク作成を実証するPOCを開発しました。

新しいスケジュールタスクを作成するには、いくつかのレジストリキーとそれに関連する値を追加する必要があります。スケジュールタスクに関連するレジストリ値の構造は文書化されていないため、これらの構造を構築する方法は、主に正規のスケジュールタスクのレジストリ値との比較に基づく試行錯誤に依存しました。さらに、Taskschd.h ヘッダーファイルのインターフェースも参照し、Cyber.WTF Windows Registry Analysis – Today's Episode: Tasksからも多大な知恵を借りました。この研究は、Triggers、Actions、DynamicInfo など、機能するスケジュールタスクを構築するために不可欠な各レジストリ値の構造を定式化する上で非常に貴重でした。

このツールは以下の機能を提供します:

  • 制限的なセキュリティ記述子を使用してスケジュールタスクを作成し、すべてのユーザーから見えなくします。
  • レジストリ経由で直接スケジュールタスクを確立し、標準のWindowsイベントログが生成されるのを回避します。
  • 既存のスケジュールタスクを、Windowsイベントログを生成せずに変更する機能を提供します。
  • リモートでのスケジュールタスク作成をサポート(特別に細工したSilver Ticketを使用)。
  • C2環境で、インメモリPE実行モジュール(例:BruteRatelのmemexec)と連携して実行可能。

*注意:

  • 2023年10月21日時点で、このツールはWindows 10、Windows Server 2016、2019、2022でテスト済みです。
  • 2023年10月21日時点では、MDE(Microsoft Defender For Endpoint)においてアラートやスケジュールタスク作成イベント(ScheduledTaskCreatedアクションタイプ)は生成されません。
  • このツールを使用してスケジュールタスクを作成するには、"NT AUTHORITY/SYSTEM" の特権が必要です。
  • スケジュールタスクを構成した後、タスクが"Schedule"サービスのプロセスに読み込まれ、その後実行されるようにするには、システムを再起動するか、次の再起動を待つ必要があります。

Usage

root@kitploit:~
Usage: GhostTask.exe <hostname/localhost> <operation> <taskname> <program> <argument> <username> <scheduletype> <time/second> <day>
- hostname/localhost: リモートコンピュータ名または"localhost"。
- operation: add/delete
  - add: レジストリキーのみを使用してスケジュールタスクを作成または変更します。タスク定義を読み込むには、"Schedule"サービスの再起動が必要です。
  - delete: スケジュールタスクを削除します。タスクをアンロードするには、"Schedule"サービスの再起動が必要です。
- taskname: スケジュールタスクの名前。
- program: 実行するプログラム。
- argument: プログラムへの引数。
- username: スケジュールタスクを実行するユーザーアカウント。
- scheduletype: サポートされるトリガー:second、daily、weekly、logon。
- time/second ('second'、'daily'、'weekly'トリガーに適用):
  - 'second'トリガーの場合:タスク実行の秒単位の頻度を指定します。
  - 'daily'および'weekly'トリガーの場合:タスク実行の正確な時刻(例:22:30)を指定します。
- day ('weekly'トリガーに適用):スケジュールタスクを実行する曜日(例:monday、thursday)。

コンパイル

root@kitploit:~
x86_64-w64-mingw32-gcc GhostTask.c -o GhostTask.exe -lrpcrt4

例

1. 毎週月曜日と木曜日の午後2時12分にnotepad.exeを起動するスケジュールタスクを作成:

root@kitploit:~
GhostTask.exe localhost add demo "cmd.exe" "/c notepad.exe" LAB\Administrator weekly 14:12 monday,thursday

HowTo

2. 既存のスケジュールタスクを新しいスケジュールタイプ、ユーザー、プログラムで変更:

root@kitploit:~
GhostTask.exe localhost add "Microsoft\Office\Office Automatic Updates 2.0" "cmd.exe" "/c notepad.exe" LAB\employee001 daily 20:37

HowTo

3. リモートコンピュータに新しいスケジュールタスクを作成:

WithSecureのブログ(追加:ラテラルムーブメントセクション)で概説されているように、この手法は特別に細工したSilver Ticketを使用してリモートで新しいスケジュールタスクを作成するために使用できます。

root@kitploit:~
kerberos::golden /domain:LAB.CORP /sid:S-1-5-21-1111111111-1111111111-1111111111 /aes256:[aes256hash] /user:Administrator /service:cifs /target:dc01.lab.corp /sids:S-1-5-18 /endin:600 /renewmax:10080

DC01サーバー上でリモートに、毎日午後3時19分にnotepad.exeを起動する新しいスケジュールタスクを作成:

root@kitploit:~
GhostTask.exe DC01.lab.corp add demo "cmd.exe" "/c notepad.exe" LAB\Administrator daily 15:19

HowTo

クレジット

  • 研究WithSecure Scheduled Task Tamperingを提供したWithSecure
  • 研究Windows Registry Analysis – Today’s Episode: Tasksを提供したCyber.WTF
  • bof-registryの作者ausecwa
ツールをダウンロード