Home/Docs/Stealth & Zero-Trace System

Stealth & Zero-Trace System

10 lapis penyembunyian — agent tidak terdeteksi, tidak bisa disabotase, bertahan di OS apapun.

Authorized use only. Sistem stealth dirancang untuk authorized security assessment. Agent hanya boleh diinstall di server yang Anda miliki atau di mana Anda memiliki izin eksplisit tertulis (MOU/engagement letter).

Layer 1 — Process Masquerade (argv[0])

Binary menimpa argv[0] dengan nama kernel thread seperti [kworker/u2:2], [migration/0], [ksoftirqd/1]. Hasil di ps aux terlihat identik dengan proses kernel.

stealth.MasqueradeProcess() → prctl(PR_SET_NAME) + argv[0] overwrite

Layer 2 — /proc PID Hiding (mount bind)

Entry /proc/<pid> di-bind mount dengan /dev/shm (tmpfs kosong). Semua tool yang baca /proc via readdir() (ps, top, procfs) tidak melihat PID tersebut.

stealth.HideFromProc() → mount --bind /dev/shm /proc/<pid>

Layer 3 — File Hiding (LD_PRELOAD)

Inject libprocesshider.so via /etc/ld.so.preload (system-wide). Hook readdir() / readdir64() di libc untuk filter entry install dir dari hasil ls, find, file manager.

stealth.HideFiles() → /etc/ld.so.preload + libprocesshider.so (hook readdir)

Layer 4 — Systemd Service Camouflage

Service systemd bernama systemd-sysconf — menyerupai service bawaan systemd. Description: "System Configuration Service". Install dir tersembunyi di path seperti /opt/.cache/.systemd-private/.

guard.SanitizeServiceFiles() → fix detectable artifacts dari versi lama

Layer 5 — Anti-Forensic Shell

Saat terminal web dibuka, shell bash spawn dengan --noprofile --init-file /dev/shm/.XXXXXXXX. Init file mengatur: HISTFILE=/dev/null, HISTSIZE=0, HISTCONTROL=ignoreboth. File temp otomatis dihapus 2 detik setelah spawn.

terminal/pty_linux.go → --init-file /dev/shm/.XXXXXXXX (deleted after 2s)

Layer 6 — Zero-Trace Install

Installer tidak meninggalkan trace: tidak ada .wget-hsts, tidak ada file temp di /tmp, tidak ada entri di apt/yum log. Download langsung ke memory (pipe), binary ditulis ke install dir dengan rename atomic.

install.sh → WGETRC=/dev/null, unset HISTFILE, rm -f setelah install

Layer 7 — Goroutine Recovery (bukan exit)

Modul yang crash di-restart dalam proses yang sama via runModule() supervisor. Binary tidak exit → tidak ada systemd restart log → tidak ada entry di journald yang mencurigakan.

main.go → runModule() → recover() + 5s restart in-process

Layer 8 — Binary Backup + Immutable Recovery (v4.9.5)

Agent menyimpan salinan binary cadangan di lokasi kedua yang stealthy:

  • Prioritas: /var/lib/systemd/coredump/ → package manager cache → /var/cache/ldconfig/
  • Lokasi dipilih otomatis sesuai distro
  • File backup dilindungi chattr +i (immutable) — tahan dari apt clean, dnf clean, bahkan rm -rf oleh root
guard/backup.go → InitBackup() + RestoreFromBackup() + chattr +i

Layer 9 — Recovery Service — Tanpa Cron (v4.9.5)

Service tersembunyi systemd-conf-recover.service di-install di /lib/systemd/system/ atau /usr/lib/systemd/system/ (terlihat seperti service bawaan package manager). Service ini loop setiap 60 detik: jika systemd-sysconf mati → restart otomatis. Tidak menggunakan cron — cron mudah terdeteksi via crontab -l.

guard/resurrect.go → systemdUnitDir() + ensureRecoveryService() (loop setiap 10 menit)

Layer 10 — Multi-OS Persistence — Non-systemd (v4.9.5)

Untuk server tanpa systemd (Alpine/OpenRC, CentOS 5/SysVinit, embedded Linux):

  • OpenRC (Alpine, Gentoo): /etc/init.d/sysconf-daemon format openrc-run + rc-update add default
  • SysVinit: format LSB + update-rc.d defaults atau chkconfig
  • Universal fallback: /etc/rc.local
  • Semua operasi idempoten — aman dipanggil berulang kali
guard/persist.go → hasOpenRC() → ensureOpenRC() / ensureInitD() / ensureRcLocal()

GS Rescue Tunnel — Stealth PID

gs-netcat listener (klogd) mendapat perlakuan ekstra:

  • Binary di-rename ke klogd
  • PID-nya dihide dari /proc via mount bind yang sama
  • Jika ada klogd orphan: ditemukan via Go's getdents64 (bypass LD_PRELOAD) → kill by exact PID dari .klogd.pid file

Perspektif Penyerang

Yang penyerang lihat:

| Tool | Hasil | |------|-------| | ps aux | Hanya proses systemd biasa, tidak ada yang mencurigakan | | ls /opt /srv /home | Install dir tidak terlihat (LD_PRELOAD hook) | | systemctl list-units | systemd-sysconf dan systemd-conf-recover terlihat seperti unit bawaan | | crontab -l | Tidak ada entry sama sekali | | cat /etc/ld.so.preload | Entry tersembunyi jika file hiding aktif |

Bahkan jika ditemukan:

| Aksi | Respon | |------|--------| | kill -9 | systemd restart dalam 3 detik | | systemctl disable + stop | Recovery service masih aktif, restart dalam 60s | | rm binary | inotify detect <1s, restore dari backup immutable | | rm backup | chattr +i blokir, "Operation not permitted" | | reboot server | Semua layer persist aktif, agent start kembali otomatis |