티스토리 뷰

Pwnable/CTF

CodeGate Junior 2014 [nuclear]

err0rless313 2014. 12. 12. 23:06

최초작성일 2014 - 12 - 12

최종수정일 2015 - 10 - 22



root@Kali ~/s/exploits# checksec --file ./nuclear RELRO STACK CANARY NX PIE RPATH RUNPATH Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH



메모리 릭하는건 cd80님 문서 보면 모두 나와있음 - http://cd80.tistory.com/44


원래 system함수 구해서 cmd를 넣어서 실행시켰었는데 nc로 전송값 받는게 귀찮아서

mprotect로 쉘코드 실행권한 주고 실행시킴

->

http://err0rless313.tistory.com/entry/mprotect-%ED%95%A8%EC%88%98-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-Exploit%ED%95%98%EA%B8%B0


       #include <sys/mman.h>

       int mprotect(void *addr, size_t len, int prot);


예전에 알았었는데 다시 깨달은건 addr부분이 무조건 0x1000의 배수가 되어야 한다는 점이다. len이 그런줄 알고 

len만 주구장창 바꾸다가 시간을 많이 썻다.



* 설명이 부정확할 수도 있습니다.

그리고 원래 이 바이너리 처럼 SOCKET을 쓰는 바이너리는 그냥 execve("/bin/sh", ...) 해버리면

바이너리 실행시켜주는 곳에서 쉘이 따지고(아마 서버) 공격자 입장에서는 flag를 가져올 수 없다.

왜냐하면 execve로 실행시켜주면 stdin, stdout으로 입,출력이 되기 때문인데, 여기서 dup2함수를 이용해서

stdin, stdout모두 SOCKET FD로 돌려주면 공격자가 flag를 가져올 수 있다.


dup() - http://forum.falinux.com/zbxe/index.php?document_srl=520935&mid=C_LIB

헤더unistd.h
형태int dup(int fildes);
인수int fildes파일 디스크립터
반환int복사된 파일 디스크립터 번호로 사용되지 않은 가장 작은 번호가 자동으로 지정되어 반환됩니다.
함수 실행이 실패되면 -1 이 반환됩니다.


dup2() - http://forum.falinux.com/zbxe/index.php?document_srl=520937&mid=C_LIB

헤더unistd.h
형태int dup2(int fildes, int fildes2);
인수int fildes파일 디스크립터
 int fildes2원하는 파일 디스크립터 번호
반환int원하는 파일 디스크립터 번호, 실패하면 -1 이 반환됩니다.



일단 쉘코드의 주소는 http://shell-storm.org/shellcode/files/shellcode-881.php 인데,

그대로 가져다 쓰면 dup을 4에다 해주는게 아니라 2인가? 에다 해줘서 SOCKET FD를 받지 못함

dup(2)를 실행하는걸 dup(4)로 바꿔주고 'dec %eax'를 없애주니 정상작동 했음.


똑같이 SOCKET FD가 4번일때 사용하고 싶으면 2번째 바이트 0x04로 바꾸고 9번째 바이트 삭제하면 됨






BUG_BOUNTIES_b3COM3_GrEAT






'Pwnable > CTF' 카테고리의 다른 글

Volga CTF 2014 [exploit 100]  (0) 2015.01.28
CSAW 2012 [Challenge1]  (0) 2015.01.23
CodeGate 2014 [ Angry Doreamon ]  (2) 2015.01.14
NullCon 2014 [Exploitation 100]  (0) 2015.01.13
Plaid CTF 2013 [ropasaurusrex]  (0) 2014.12.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함