Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cpanel-sessionscribe — Detection, mitigation, and reverse-engineering tooling for CVE-2026-41940 (SessionScribe): the cPanel/WHM unauthenticated session-forgery vulnerability disclosed 2026-04-28. Defense-in-depth active mitigation shim, ModSec rule pack, remote probe, on-host IOC scanner, and per-tier RE snapshot collector. GPL v2. | Kitploit
उपकरण/GitHubGitHub/rfxn/cpanel-sessionscribe
Defensive ToolsIndicator of Compromise (IOC) ManagementVulnerability AnalysisExploitationReverse EngineeringForensicsWAF BypassWeb SecurityPenetration Testing

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →

विवरण

Detection, mitigation, and reverse-engineering tooling for CVE-2026-41940 (SessionScribe): the cPanel/WHM unauthenticated session-forgery vulnerability disclosed 2026-04-28. Defense-in-depth active mitigation shim, ModSec rule pack, remote probe, on-host IOC scanner, and per-tier RE snapshot collector. GPL v2.

Incident Response
GitHubrfxn/cpanel-sessionscribe

cpanel-sessionscribe

रिपॉजिटरी देखेंवेबसाइट
1413 महीने पहलेअभी तक समीक्षित नहीं
साझा करें

SessionScribe - CVE-2026-41940

cPanel और WHM में गंभीर अप्रमाणित RCE। चार HTTP अनुरोध CRLF इंजेक्शन के माध्यम से रूट सत्र बनाते हैं प्रीऑथ सत्र के पासवर्ड फ़ील्ड में। कोई प्रमाणीकरण नहीं, कोई पूर्व शर्त नहीं, सभी समर्थित टियर प्रभावित हैं। 2026-04-28 को Sina Kheirkhah / watchTowr Labs द्वारा प्रकट किया गया।

rfxn.com research article

CVE Severity Disclosed License

त्वरित आरंभ · ioc-scan · mitigate · remote-probe · प्रभावित बिल्ड · प्राथमिकता क्रम

[!IMPORTANT] टियर्स 112, 114, 116, 120, 122, 128 के पास विक्रेता पैच नहीं है। हर उन टियर्स पर बिल्ड कमजोर हैं; अपग्रेड या माइग्रेट ही एकमात्र स्थायी समाधान है। तब तक: फायरवॉल TCP/2082, 2083, 2086, 2087, 2095, 2096 प्रबंधन CIDRs पर (mitigate.sh --apply ऐसा करता है) और शेष सतह को ModSec नियम पैक के साथ सुरक्षित करें।


त्वरित आरंभ

तीन वन-लाइनर्स, ऑपरेटर प्राथमिकता क्रम में:```bash

1. Are we already compromised? (on-host IOC scan, fast triage)

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash

2. Close the window (idempotent; firewalls cpsrvd ports, deploys ModSec, etc.)

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --apply

3. Sweep the fleet from anywhere (non-destructive remote verdict)

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh | bash -s -- --target HOST

root@kitploit:~
एक्ज़िट कोड फ्लीट ऑटोमेशन के लिए डिज़ाइन किए गए हैं: `ioc-scan` COMPROMISED पर `4`, VULNERABLE पर `1` एक्ज़िट करता है; `mitigate` `0` साफ / `1` लागू / `2` मैनुअल / `3` टूल त्रुटि पर एक्ज़िट करता है; `remote-probe` किसी भी लक्ष्य के VULN होने पर `2` एक्ज़िट करता है।

---

## Tools

परिचालन प्राथमिकता के क्रम में। प्रत्येक आर्टिफैक्ट फ्लीट रोल-अप के लिए `host`, `os`, `cpanel_version`, `ts` पर की गई संरचित आउटपुट (`--json` / `--jsonl` / `--csv`) उत्सर्जित करता है।

| उपकरण | भूमिका | कहाँ चलता है |
|---|---|---|
| **[`sessionscribe-ioc-scan.sh`](#sessionscribe-ioc-scansh---ioc-ladder--kill-chain)** | प्रथम श्रेणी ट्राइएज। IOC सीढ़ी, कोड-स्टेट + होस्ट-स्टेट निर्णय, किल-चेन पुनर्निर्माण, IR बंडल। | cPanel होस्ट पर |
| **[`sessionscribe-mitigate.sh`](#sessionscribe-mitigatesh---mitigation-orchestrator)** | खिड़की बंद करें। चरणबद्ध शमन: पैच जाँच, फ़ायरवॉल, प्रॉक्सीसब, ModSec। | cPanel होस्ट पर |
| **[`sessionscribe-remote-probe.sh`](#sessionscribe-remote-probesh---non-destructive-fleet-probe)** | सहायक संपार्श्विक। गैर-विनाशकारी 4-चरणीय जांच → प्रति होस्ट VULN/SAFE। | `curl` के साथ कहीं भी |
| [`modsec-sessionscribe.conf`](#supporting-collateral) | `mitigate` द्वारा तैनात ModSec नियम पैक। | Apache फ्रंट-एंड |
| [`sessionscribe-revsnap.sh`](#supporting-collateral) | बाइनरी डिफिंग के लिए प्रति-टियर RE स्नैपशॉट संग्राहक। | cPanel होस्ट पर, `upcp` के आसपास |

GPL v2. सभी आर्टिफैक्ट ऊपर दिए गए रॉ URL के माध्यम से `curl`-रेडी हैं।

---

## `sessionscribe-ioc-scan.sh` - IOC सीढ़ी + किल-चेन

**इसे पहले चलाएँ।** डिफ़ॉल्ट रूप से केवल डिटेक्शन (तेज़, फ्लीट-अनुकूल); फोरेंसिक चरणों को इनलाइन चलाने के लिए `--full` जोड़ें (defense timeline, offense ingest, reconcile, kill-chain renderer, IR बंडल)।```bash
# fast triage  (detection only)
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash

# full kill-chain reconstruction inline
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash -s -- --full

# full + ship IR bundle to intake
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash -s -- --full --upload

# JSONL for SIEM ingest
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash -s -- --jsonl --quiet > host.jsonl

# host IOCs only - periodic post-patch sweep, last 7 days
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash -s -- --ioc-only --since 7

# replay forensic phases against a saved envelope (no re-scan)
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh | bash -s -- --replay /var/cpanel/sessionscribe-ioc/<run_id>.json

निर्णय (Verdicts)

दो अक्ष स्वतंत्र रूप से रिपोर्ट करते हैं। code_verdict (PATCHED / VULNERABLE / INCONCLUSIVE) संस्करण, Perl स्रोत पैटर्न और cpsrvd बाइनरी फ़िंगरप्रिंट से आता है। host_verdict (CLEAN / SUSPICIOUS / COMPROMISED) सेशन-फ़ाइल IOC सीढ़ी, एक्सेस-लॉग स्कैन और पैटर्न A–G विनाश जांच से आता है। एक पैच किया गया होस्ट अभी भी 4 कोड के साथ बाहर निकल सकता है यदि पिछले शोषण ने डिस्क पर IOC छोड़े हों।

nxesec_canary_<nonce> (रिमोट प्रोब द्वारा छोड़ा गया) से टैग किए गए सत्र PROBE_ARTIFACT के रूप में वर्गीकृत होते हैं और COMPROMISED में नहीं बढ़ते।

किल-चेन आउटपुट नमूना

--full प्रत्येक IOC को रक्षा सक्रियणों के विरुद्ध संकलित करता है और प्रत्येक को PRE-DEFENSE, POST-DEFENSE, POST-PARTIAL, या UNDEFENDED के रूप में वर्गीकृत करता है, फिर निर्णय + रक्षा-अंतराल शीर्षक के साथ सारांश प्रस्तुत करता है। PRE-DEFENSE = जब संकेतक आया तब होस्ट शोषण के लिए खुला था; POST-DEFENSE = संपार्श्विक या पूर्व-शमन शोर।``` +-- CVE-2026-41940 / IC-5790 -------------------------------------------- | host cpanel.example.com () | cpanel unknown os unknown | verdict COMPROMISED score 315 ioc-scan v2.5.0 | defenses patch x absent modsec + up csf + clean mitigate + ran +------------------------------------------------------------------------

| -- PRE-DEFENSE (32 events) -- | 2026-03-25T09:43:19Z ! pattern X ioc_attacker_ip_2xx_on_cpsess 57 hit(s) (last 90d) from IC-5790 IPs returned 2xx on /cpsess/ paths - real exploitation | 2026-04-28T14:35:56Z ! pattern X ioc_cve_2026_41940_crlf_access_chain 15 CRLF-bypass chain(s) — POST /login 401 then GET /cpsess 2xx as root within 2s | 2026-04-28T16:38:45Z ! pattern E ioc_pattern_e_websocket_shell_hits 45 external IP(s) reached /cpsess*/websocket/Shell with 2xx | 2026-04-29T08:41:22Z ! pattern F ioc_pattern_f_smark_envelope S_MARK/E_MARK harvester envelope in /root/.bash_history | 2026-04-29T16:41:24Z ! pattern A ioc_pattern_a_ransom_readme /home/user1/README.md | … (22 more Pattern A ransom_readme events across customer homedirs) | 2026-04-29T16:42:09Z ! pattern A ioc_pattern_a_sorry_files_present 608 .sorry-encrypted files present | 2026-04-29T17:52:58Z ! pattern D ioc_pattern_d_acctlog_encrypted /var/cpanel/accounting.log.sorry

| -- DEFENSES -- | 2026-04-29T23:48:21Z + DEFENSE mitigate_first sessionscribe-mitigate.sh first run | 2026-04-29T23:48:21Z + DEFENSE csf csf.conf cpsrvd ports stripped | 2026-04-29T23:48:46Z + DEFENSE modsec modsec rule 1500030 installed

| -- POST-PARTIAL (1 event) -- | 2026-04-30T12:23:42Z ! pattern E ioc_pattern_e_handoff_burst_present 3 distinct external IPs each minted cpsess + reached websocket Shell within 15-min window

| HEADLINE | verdict COMPROMISED (score 315) | defense lag 37d 9h LATE (first IOC 2026-03-25T09:43:19Z, defense up 37d 9h later)

root@kitploit:~
<details>
<summary><b>जाँच संदर्भ + फोरेंसिक चरण + बंडल लेआउट</b> (विस्तार करने के लिए क्लिक करें)</summary>

| जाँच | यह क्या करता है |
|---|---|
| `version` | `cpanel -V` बनाम प्रकाशित पैच-बिल्ड सूची - `code_verdict` चलाता है |
| `static-pattern` | पैच के बाद के सेंटिनल पैटर्न (`no-ob:` डिकोड शाखा) के लिए `Cpanel/Session/*.pm` में grep करता है |
| `cpsrvd-fingerprint` | पैच-बिल्ड हस्ताक्षरों के विरुद्ध cpsrvd बाइनरी निरीक्षण |
| `access-log` | शोषण ट्रैफिक आकारों के लिए Apache + cpsrvd लॉग (छोड़ने के लिए `--no-logs`) |
| `session-store` | `/var/cpanel/sessions/raw/` वॉक: विक्रेता IOC + 4-तरह सह-घटना + जाली-टाइमस्टैम्प अनुमान (छोड़ने के लिए `--no-sessions`) |
| `destruction` | पैटर्न A–G जांच: `/root/sshd` एन्क्रिप्टर, mysql-वाइप, BTC इंडेक्स, `nuclear.x86`, `sptadm` रिसेलर, `__S_MARK__` हार्वेस्टर, संदिग्ध SSH कुंजियाँ (छोड़ने के लिए `--no-destruction-iocs`) |
| `probe` (वैकल्पिक) | `127.0.0.1:2087` पर एकल मार्कर GET - cpsrvd की प्रतिक्रियाशीलता की पुष्टि करता है। बाइपास का प्रयास **नहीं** करता |

**`--full` फोरेंसिक चरण** (पता लगने के बाद इनलाइन चलाएं):

| चरण | यह क्या करता है |
|---|---|
| `defense` | प्रत्येक सुरक्षा स्तर जो लागू हुआ, उसकी टाइमस्टैम्प: cpanel पैच, cpsrvd पैच के बाद पुनरारंभ, मिटिगेट रन, ModSec नियम, CSF/APF पोर्ट बंद, proxysub, `upcp` सारांश |
| `offense` | देखे गए प्रत्येक समझौता संकेतक की टाइमस्टैम्प (पैटर्न A–G + पैटर्न X CRLF-बाइपास श्रृंखला) |
| `reconcile` | प्रति-संकेतक: क्या जब यह पहली बार दिखाई दिया तो प्रासंगिक सुरक्षा सक्रिय थी? PRE-DEFENSE / POST-DEFENSE / POST-PARTIAL / UNDEFENDED + समय अंतर |
| `bundle` | `/root/.ic5790-forensic/<TS>-<RUN_ID>/` के अंतर्गत कच्चे आर्टिफैक्ट्स का टारबॉल, मोड `0700` |

**बंडल लेआउट** (`/root/.ic5790-forensic/<TS>-<RUN_ID>/`):```
manifest.txt              host/uid/cpv/run_id/window/cap
sessions.tgz              /var/cpanel/sessions/{raw,preauth} (filtered)
access-logs.tgz           cpsrvd access + incoming_http_requests + error_log
                          + global Apache access/error (NO domlogs)
system-logs.tgz           /var/log/{secure,messages,audit/audit.log,auth.log}*
cpanel-state.tgz          accounting.log + resellers + cpanel.config + api_tokens_v2
cpanel-users.tgz          /var/cpanel/users/ (split out, per-account state)
persistence.tgz           ssh keys + all cron tiers + systemd/init.d/profile.d
                          + rc.local + root histories + passwd/group + sudoers
defense-state.tgz         mitigate backups + csf/apf/modsec configs + updatelogs
ps.txt / connections.txt / iptables.txt
pattern-a-binary-metadata.txt   only if /root/sshd present (metadata; binary NOT bundled)
user-histories/           per-user .bash_history (gated on --no-history)

व्यस्त होस्ट पर 90-दिवसीय विंडो के साथ सामान्य बंडल: ~250 MB – 2 GB संपीड़ित। प्रति-टारबॉल 2 GB की सीमा (--max-bundle-mb) अत्यधिक आकार के उम्मीदवारों को व्यक्तिगत रूप से हटा देती है।

एक रन लेजर डिफ़ॉल्ट रूप से /var/cpanel/sessionscribe-ioc/ पर लिखा जाता है (--no-ledger को अक्षम करने के लिए)। --chain-forensic / --chain-on-critical / --chain-upload को v1.x बैक-कॉम्पैट उपनामों के रूप में संरक्षित किया गया है।

निकाले गए टारबॉल पर ऑफलाइन फोरेंसिक के लिए स्नैपशॉट-परीक्षण ओवरराइड: --root DIR, --version-string S, --cpsrvd-path P। पूर्ण फ्लैग सूची के लिए --help देखें ।


sessionscribe-mitigate.sh - शमन ऑर्केस्ट्रेटर

डिफ़ॉल्ट रूप से केवल-पढ़ने योग्य (--check). स्थिति बदलने के लिए --apply जोड़ें। आइडेम्पोटेंट: एक स्वस्थ होस्ट पर पुनः चलाना कोई प्रभाव नहीं डालता। परिवर्तन किसी भी फ़ाइल को छूने से पहले /var/cpanel/sessionscribe-mitigation/ के अंतर्गत टाइमस्टैम्प्ड बैकअप लिखते हैं।```bash

read-only audit (default)

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash

full remediation

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --apply

narrow scope

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --apply --only modsec --probe curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --only patch,preflight # pre-upcp gate

fleet roll-up - one CSV row per host

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --csv > host.csv curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --jsonl > host.jsonl

root@kitploit:~
| चरण | यह क्या करता है |
|---|---|
| `patch` | `cpanel -V` बनाम प्रकाशित पैच्ड-बिल्ड सूची (जिसमें EL6 11.86.0.41, EL6/CL6 110.0.103, tier 124, WP² 136.1.7 शामिल हैं) |
| `preflight` | `/etc/yum.repos.d/threatdown.repo` को हटाता है; `epel-release` सुनिश्चित करता है; टूटे हुए गैर-बेस रिपॉजिटरी को अक्षम करता है ताकि `upcp` बीच में ही मर न जाए |
| `upcp` | यदि अनपैच्ड है, तो `/scripts/upcp --force --bg` शुरू करता है |
| `proxysub` | `proxysubdomains` + नए खाता प्रकार को सक्षम करता है; httpd कॉन्फ़िक को पुनर्निर्माण करता है |
| `csf` / `apf` / `runfw` | `TCP_IN`/`TCP6_IN`/`IG_TCP_CPORTS` से cpsrvd पोर्ट (2082/2083/2086/2087/2095/2096) हटाता है; लाइव iptables INPUT चेन को सत्यापित करता है |
| `apache` | `httpd` चल रहा है + `security2_module` लोड किया गया है |
| `modsec` | `modsec2.user.conf` में नियम `1500030` + `1500031` शामिल हैं; यदि अनुपस्थित हों तो तैनात करें (टाइमस्टैम्प्ड बैकअप, `httpd -t` सत्यापन, ग्रेसफुल रीलोड) |
| `probe` (opt-in) | `sessionscribe-remote-probe.sh` को `127.0.0.1` के विरुद्ध चलाता है ताकि व्यवहार में अस्वीकृतियों की पुष्टि हो सके |

CentOS / Alma / Rocky base/appstream/extras/updates/powertools रिपॉजिटरीज़ को `preflight` द्वारा **कभी** अक्षम नहीं किया जाता, भले ही वे वर्तमान में पहुंच योग्य न हों।

### निकास कोड

| निकास कोड | अर्थ |
|---|---|
| 0 | साफ - पैच किया गया + स्थिति ठीक, कोई कार्रवाई आवश्यक नहीं |
| 1 | सुधार सफलतापूर्वक लागू किया गया (`--apply` ने परिवर्तन किए) |
| 2 | मैन्युअल हस्तक्षेप आवश्यक (`--check` में चेतावनी देता है, `--apply` में विफल होता है) |
| 3 | उपकरण त्रुटि (गलत आर्ग्युमेंट्स, गायब निर्भरताएँ, `--apply` के लिए रूट नहीं) |

चरण चयन: `--only LIST`, `--no-PHASE`, `--no-fw` (शॉर्टहैंड `--no-csf --no-apf --no-runfw` के लिए)। आउटपुट: `--json` / `--jsonl` / `--csv`, `-o FILE`। पूर्ण फ्लैग सूची के लिए `--help` देखें।

### साठ-सेकंड स्मोक चेक```bash
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --list-phases    # surface the phase API
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh | bash -s -- --check          # safe read-only audit
echo "exit=$?"                                  # 0 on a non-cPanel host

The orchestrator detects a non-cPanel host and exits clean — proving idempotency without needing a lab.


sessionscribe-remote-probe.sh - non-destructive fleet probe

Supporting collateral. Runs the four-stage chain non-destructively against a target: mint preauth → CRLF inject → propagate raw→cache → verify via /json-api/version, then actively logs out. Verdict- determining signal is the HTTP code at stage 4: 200, or 5xx with a license body, is VULN; 401 or 403 is SAFE.

Every test session is tagged with an nxesec_canary_<nonce> attribute for forensic cleanup, and no state-changing API calls are made. Forged sessions are root-equivalent for ~1–3s between stage 3 and the stage 5 logout — see the script header for the full safety model.```bash

single host, default WHM-SSL ports

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh | bash -s -- --target 1.2.3.4

Apache proxy test - whm./cpanel./webmail.example.com via 443 + 80

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh | bash -s -- --target 1.2.3.4 --proxy example.com

fleet - CSV across many targets, exit 2 on any VULN

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh
| bash -s -- --csv $(awk '{print "--target "$1}' fleet.txt) > fleet.csv

fast scoping - banner-only fingerprint, no session minted

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh | bash -s -- --target 1.2.3.4 --fingerprint-only

clean canary sessions on a target after a run

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh | bash -s -- --cleanup

root@kitploit:~
आउटपुट मोड: pretty (डिफ़ॉल्ट), `-q`/`--quiet`, `--oneline`, `--csv`,
`--json`. निकास कोड: `0` कोई VULN नहीं मिला, `1` केवल अनिर्णायक, `2`
एक या अधिक VULN। पूर्ण फ़्लैग सूची के लिए `--help` देखें जिसमें
`--auto-host-discover`, `--all`, `--fingerprint-only` अर्थ, और
स्टेज-2-केवल `--no-verify` मोड (पुराना, पैच किए गए होस्ट पर FP उत्पन्न करता है) शामिल हैं।

---

## सहायक सामग्री

### `modsec-sessionscribe.conf` - ModSecurity नियम पैक

`mitigate.sh --apply --only modsec` द्वारा स्वचालित रूप से तैनात किया गया। मैन्युअल इंस्टॉल:```bash
curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/modsec-sessionscribe.conf \
    | sudo tee /etc/apache2/conf.d/modsec/modsec2.user.conf >/dev/null
sudo apachectl -t && sudo /usr/local/cpanel/scripts/restartsrv_httpd

आरक्षित ID श्रेणी: 1500000–1500099. WHM-टोकन नियम एक संचालक-परिभाषित विश्वसनीय सूची के विरुद्ध @ipMatch का उपयोग करते हैं — तैनात करने से पहले फ़ाइल के शीर्ष पर CIDRs को संपादित करें।

[!IMPORTANT] ये नियम Apache के अंदर चलते हैं। cpsrvd सीधे 2082/2083/2086/2087/2095/2096 पर सुनता है और Apache से स्वतंत्र रूप से पहुँच योग्य है। नियम पैक को प्रबंधन CIDRs पर cpsrvd-पोर्ट फ़ायरवॉलिंग के साथ जोड़ें।

sessionscribe-revsnap.sh - RE स्नैपशॉट संग्राहक

बाइनरी डिफिंग के लिए प्रति-स्तर टारबॉल (बाइनरी, स्ट्रिंग्स, dynsym, disasm, Perl मॉड्यूल, रनटाइम लेआउट) कैप्चर करता है। upcp के आसपास निर्मित प्री/पोस्ट-पैच जोड़े कैप्चर करने के लिए।```bash

capture current tier (writes to /var/cpanel/sessionscribe-revsnap/)

curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-revsnap.sh | bash

upgrade and capture next tier - RE diff workflow

/scripts/upcp --force curl -fsSL https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-revsnap.sh | bash

root@kitploit:~
Generalises beyond SessionScribe: हर भविष्य का cpsrvd CVE मोटे तौर पर उसी सतह पर उतरेगा, और प्री-पैच और पैच किए गए बिल्ड के लिए एक tarball जोड़ी, घंटों और दिनों के विश्लेषण के बीच का अंतर है। पूर्ण RE वॉकथ्रू के लिए [research article](https://rfxn.com/research/cpanel-sessionscribe-cve-2026-41940) देखें।

---

## Fleet उपयोग

> [!TIP]
> हर आर्टिफैक्ट संरचित आउटपुट (`--json`, `--jsonl`, `--csv`) उत्सर्जित करता है, जिसमें हर रिकॉर्ड पर `host`, `os`, `cpanel_version`, `ts` होता है। एक पास में सैकड़ों होस्टों पर `pdsh | jq` या `ansible -m script` रोल-अप के लिए डिज़ाइन किया गया।

वही curl-piped-bash प्रिमिटिव — प्रत्येक होस्ट नवीनतम स्क्रिप्ट को सीधे fetch और exec करें:```bash
IOC=https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-ioc-scan.sh
MIT=https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-mitigate.sh
PRB=https://raw.githubusercontent.com/rfxn/cpanel-sessionscribe/main/sessionscribe-remote-probe.sh

# IOC scan across fleet, JSONL to SIEM
for h in $(cat fleet.txt); do
    ssh "$h" "curl -fsSL $IOC | bash -s -- --jsonl --quiet"
done | jq -c '.' > fleet-ioc.jsonl

# kill-chain reconciliation across fleet (no bundles on broad sweep)
ansible -i hosts cpanel -m shell \
    -a "curl -fsSL $IOC | bash -s -- --full --no-bundle --jsonl" > fleet-forensic.jsonl
jq -r 'select(.phase=="summary" and .key=="verdict"
              and .note=="COMPROMISED_PRE_DEFENSE") | .host' \
    fleet-forensic.jsonl > pre-defense-hosts.txt

# bundle collection on the pre-defense subset
ansible -i pre-defense-hosts.txt all -m shell \
    -a "curl -fsSL $IOC | bash -s -- --full --jsonl --bundle-dir /root/.ic5790-forensic"

# mitigation posture roll-up
pdsh -w cpanel-fleet "curl -fsSL $MIT | bash -s -- --jsonl --quiet" \
    | jq -c 'select(.severity != "info")' > fleet-mitigate.jsonl

# remote probe sweep - exit 2 on any VULN  (run from operator workstation)
curl -fsSL $PRB | bash -s -- --csv --quiet \
    $(awk '{print "--target "$1}' fleet.txt) > fleet-probe.csv

प्रोब स्वतंत्र रूप से फ्लीट-सुरक्षित है (कैनरी-टैग किए गए सत्र, सक्रिय लॉगआउट, कोई स्थिति-बदलने वाली API कॉल नहीं). ऑन-होस्ट स्क्रिप्ट्स --quiet + स्ट्रक्चर्ड-आउटपुट फ्लैग्स का सम्मान करती हैं ताकि stdout पार्सर-क्लीन हो।


श्रृंखला

चार HTTP अनुरोध, कोई प्रमाणीकरण नहीं, कोई पूर्व शर्त नहीं:```mermaid sequenceDiagram autonumber actor A as attacker participant C as cpsrvd participant S as session file A->>C: POST /login/?login_only=1 with user=root, pass=wrong C-->>A: Set-Cookie · whostmgrsession=NAME,OBHEX A->>C: GET / · Authorization Basic b64(root:x + CRLF payload) · Cookie minus OBHEX C->>S: writes pass=x, user=root, hasroot=1, ... (CRLFs land verbatim) C-->>A: HTTP 307 · Location /cpsess[10digits]/ A->>C: GET /scripts2/listaccts · cookie only C->>S: propagate raw to cache · forged keys now readable C-->>A: 401 token denied (side-effect already done) A->>C: GET /cpsess[token]/json-api/version C-->>A: 200 OK means VULN · 403 means SAFE

root@kitploit:~
निर्णय अनुरोध 4 पर HTTP कोड है। डिस्क पर सत्र फ़ाइल `/var/cpanel/sessions/raw/<sessname>` एकमात्र पश्च-घटना फोरेंसिक कलाकृति है। पूर्ण प्रारंभिक (दो रचनात्मक विषमताएँ — `filter_sessiondata` हर लेखन पथ पर नहीं है, एनकोडर `ob_part` के गायब होने पर शॉर्ट-सर्किट करता है) और प्रॉक्सी-एंडपॉइंट प्रवर्तन के लिए आर्किटेक्चरल तर्क [शोध लेख](https://rfxn.com/research/cpanel-sessionscribe-cve-2026-41940) में हैं।

---

## समझौता के संकेतक

जाली सत्र-फ़ाइल आकृति (शोषण के बाद `/var/cpanel/sessions/raw/<sessname>`):```
local_port=2087
hasroot=1
hulk_registered=1
pass=x
origin_as_string=address=127.0.0.1,app=whostmgrd,method=badpass
token_denied=1
local_ip_address=127.0.0.1
external_validation_token=cS9C19OfV0hCA4uD
cp_security_token=/cpsess6844364556
ip_address=127.0.0.1
user=root
tfa_verified=1
successful_internal_auth_with_timestamp=9999999999
port=39040
login_theme=cpanel

एक सामान्य preauth सत्र में कभी भी pass=, hasroot=1, user=root, tfa_verified=1, या successful_internal_auth_with_timestamp= शामिल नहीं होता है। इनमें से कोई भी origin_as_string=…method=badpass के साथ मिलकर नैदानिक है। now+365d से अधिक का नकली टाइमस्टैम्प मान (जैसे 9999999999) स्वतंत्र रूप से नैदानिक है।```bash

quick scan for IOC0 (vendor-published shape) - ioc-scan does this + much more

for f in /var/cpanel/sessions/raw/*; do [ -f "$f" ] || continue if grep -q '^token_denied=' "$f"
&& grep -q '^cp_security_token=' "$f"
&& grep -q '^origin_as_string=.*method=badpass' "$f"; then echo "IOC0 hit: $f" fi done

root@kitploit:~
एक्सेस-लॉग सिग्नल: सफल `200`/`302`/`307` प्रतिक्रियाएँ `/json-api/`, `/execute/`, या `/scripts2/` पथों पर गैर-बेसलाइन स्रोत IP से उसी सत्र विंडो में पूर्ववर्ती `/login/` 200 के बिना।

---

## प्रभावित बिल्ड```
11.86.0.41 (EL6/CL7)   11.110.0.97        11.118.0.63        11.124.0.35
11.126.0.54            11.130.0.19        11.132.0.29        11.134.0.20
11.136.0.5             110.0.103 (EL6/CL6 from .50)

WP Squared:            136.1.7

Tiers excluded from the vendor patch list have no in-place fix: 112, 114, 116, 120, 122, 128. Hosts on those tiers must be upgraded to a patched major series, migrated, or have their cpsrvd listeners firewalled until they are.

11.86.0.41 (EL6/CL7) was added in the 04/29 advisory revision; 11.130 was bumped from .18 to .19 in the same revision. A subsequent revision added 11.124.0.35 (closing the prior gap on tier 124) and 110.0.103 as a direct upgrade target for EL6/CL6 hosts still on v110.0.50.


प्राथमिकता क्रम

तत्काल

  • पूरे फ्लीट पर sessionscribe-ioc-scan.sh चलाएं। एक पैच किया हुआ होस्ट अभी भी समझौता किया जा सकता है।
  • अपने टीयर के लिए बिल्ड में पैच करें (ऊपर)।
  • यदि टीयर के लिए कोई पैच नहीं है, तो तुरंत TCP/2082, 2083, 2086, 2087, 2095, 2096 को प्रबंधन CIDRs तक फ़ायरवॉल करें। एक अपग्रेड या माइग्रेशन की योजना बनाएं।

आगे की कार्रवाई

  • प्रॉक्सी सबडोमेन सक्षम करें ताकि cPanel/WHM/Webmail Apache पर 80/443 के माध्यम से पहुँच योग्य हों।
  • modsec-sessionscribe.conf को modsec2.user.conf में @ipMatch विश्वास सूची सेट करके तैनात करें।
  • TCP/2082, 2083, 2086, 2087, 2095, 2096 को केवल प्रबंधन CIDRs तक फ़ायरवॉल करें। Apache + ModSecurity एकमात्र सार्वजनिक प्रवेश द्वार बन जाता है।
  • इस प्रॉक्सी-एंडपॉइंट स्थिति को डिफ़ॉल्ट के रूप में मानकीकृत करें। अगली cpsrvd सलाह उन्हीं छह पोर्ट्स पर आएगी।

प्रॉक्सी-एंडपॉइंट प्रवर्तन के लिए वास्तुशिल्प तर्क शोध लेख का समापन तीसरा भाग है।


यह टूलकिट क्या नहीं करता है

  • विक्रेता पैच नहीं। cpsrvd, cpsrvd.so, या Cpanel/Session/*.pm को संशोधित नहीं करता। आपके टीयर के लिए cpanel-जारी बैक-पोर्ट ही वास्तविक फिक्स है।
  • टीयर 112, 114, 116, 120, 122, 128 के लिए कोई फिक्स नहीं। कोई विक्रेता पैच मौजूद नहीं है। ऑर्केस्ट्रेटर के proxysub + फ़ायरवॉल चरण और ModSec नियम पैक विस्फोट त्रिज्या को कम करते हैं; अपग्रेड या माइग्रेशन ही स्थायी उत्तर है।
  • पोर्ट लॉकडाउन का विकल्प नहीं। ModSec नियम केवल उस ट्रैफ़िक पर सक्रिय होते हैं जो Apache से होकर गुज़रता है। नियम पैक को cpsrvd-पोर्ट फ़ायरवॉलिंग के साथ जोड़े।
  • शोषण कोड नहीं। रिमोट प्रोब कोई स्थिति-बदलने वाली API कॉल जारी नहीं करता, प्रत्येक परीक्षण सत्र को सफाई के लिए nxesec_canary_<nonce> विशेषता से टैग करता है, और सक्रिय रूप से लॉग आउट करता है।
  • IR का विकल्प नहीं। ioc-scan पिछले शोषण के कलाकृतियों को ढूंढता है; यह उन्हें ठीक नहीं करता। इसके COMPROMISED फैसले को पूर्ण IR के लिए एक ट्रिगर मानें, निष्कर्ष नहीं।

रिपोर्टिंग

[!TIP] कोई बग मिला, छूटा हुआ IOC, गलत सकारात्मक, या ऑप्स फीडबैक है? GitHub issue खोलें - बग रिपोर्ट, जंगल में देखे गए IOC वेरिएंट, पैच/अनपैच होस्ट पर डिटेक्शन मिस, ModSec नियम गलत सकारात्मक, और सामान्य ऑपरेटर फीडबैक सभी का स्वागत है।

संवेदनशील प्रकटीकरण (लाइव शोषण साक्ष्य, ग्राहक डेटा, अभी तक सार्वजनिक नहीं हुए नए शोषण श्रृंखला) को GH Issues के माध्यम से नहीं, बल्कि Keybase या ईमेल के माध्यम से भेजा जाना चाहिए।


संदर्भ

  • शोध लेख (पूर्ण लेख): rfxn.com/research/cpanel-sessionscribe-cve-2026-41940
  • विक्रेता सलाह: cPanel KB 40073787579671
  • शोधकर्ता लेख: watchTowr Labs
  • सार्वजनिक PoC: watchtowrlabs/watchTowr-vs-cPanel-WHM-AuthBypass-to-RCE.py
  • स्रोत: github.com/rfxn/cpanel-sessionscribe

लाइसेंस

GPL v2. अलग-अलग फ़ाइल हेडर देखें।


SessionScribe घटना प्रतिक्रिया के दौरान गढ़ा गया - Ryan MacDonald, R-fx Networks.

टूल डाउनलोड करें
ExitCode-stateHost-stateTriage कार्रवाई
0CLEAN/PATCHEDCLEANकोई नहीं
1VULNERABLE(कोई भी)cpsrvd पैच करें
2INCONCLUSIVE(कोई भी)मैन्युअल कोड-स्टेट समीक्षा (साथ ही: टूल त्रुटि)
3(कोई भी)SUSPICIOUSसेशन/एक्सेस लॉग समीक्षा करें
4(कोई भी)COMPROMISEDपूर्ण IR; बंडल + अपलोड
नियमसतहकार्रवाई
1500030डिकोडेड Authorization: Basic पेलोड के अंदर CRLFअस्वीकार, सभी स्रोत, सभी पथ
1500031whostmgrsession कुकी में वैध ,OBHEX प्रत्यय गायबअस्वीकार (गहन रक्षा)
1500010/json-api/, /execute/, /acctxfer*/ पर Authorization: WHMअस्वीकार जब स्रोत विश्वसनीय सूची में न हो
1500020WebSocket डिस्पैच परिवार पर Authorization: WHMअस्वीकार जब स्रोत विश्वसनीय सूची में न हो
1500021SSE डिस्पैच पथ पर Authorization: WHMअस्वीकार जब स्रोत विश्वसनीय सूची में न हो