분류 전체보기
[Dreamhack] oneshot - write up
Index문제보호기법 확인oneshot.c문제 풀이1. RET로 부터 변수 거리 확인2. oneshot 가젯 주소 얻기3. Libc Leak익스플로잇익스플로잇 오류 및 해결방법 oneshotDescription 이 문제는 작동하고 있는 서비스(oneshot)의 바이너리와 소스코드가 주어집니다. 프로그램의 취약점을 찾고 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다.https://dreamhack.io/wargame/challenges/34/oneshot 가젯을 이용하여 문제를 풀 수 있다.환경은 Ubuntu 18.04(glibc 2.27)이다. Ubuntu 20.04(glibc 2.31..
[Dreamhack] basic_rop_x64 - write up
Index문제보호기법 확인basic_rop_x64.c문제 풀이1. 바이너리의 PLT 확인2. 사용할 함수 인자에 맞는 Gadget 구하기3. 익스플로잇 전략익스플로잇익스플로잇 오류 및 해결방법 basic_rop_x64Description 이 문제는 서버에서 작동하고 있는 서비스(basicropx64)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다.https://dreamhack.io/wargame/challenges/29/이 문제는 64비트 버퍼오버플로우를 익스플로잇하는 가장 기본적..
메일 서버 구축 (postfix, dovecot)
Index메일 서버란?메일 서버 관련 프로토콜실습실습 환경실습 네트워크 구성도메일 서버 구축 과정메일 서버 설정수동 DNS 설정메일 서버 계정 추가메일 서버 로그인내부망 메일 송수신 테스트외부 메일(gmail) 송수신 테스트무료 도메인 등록Host OS → Guest OS 포트포워딩메일 송수신 테스트 나만의 도메인을 가진 메일 서버를 만들고, 메일을 송수신하는 것이 목표이다. 메일 서버란?이메일을 SMTP를 이용해 다른 이메일 서버로 전달하는 서버 메일 서버 관련 프로토콜메일 송신 : SMTP (postfix 사용)메일 수신 : POP# & IMAP (dovecot 사용) 실습실습 환경메일 서버 : Ubuntu 14메일 서버의 도메인 : projectA.64bit.kr클라이언트 : kali, centos..
N2T(Notion to Tistory) 설치 및 오류 해결방법
Index설치 환경Notion에서 Tistory로 자동 업로드 방법N2T 오류(ERROR) 및 해결방법TISTORY의 REDIRECT_URI 경로 지정 오류pip3 install -r requirements.txt 오류[2023. 02. 07] no such element 오류 설치 환경OS : windows 11Python : Python 3.11.1 Notion에서 Tistory로 자동 업로드 방법Notion에서 Tistory로 자동 업로드 #8 (N2T)개요드디어 Notion에서 Tistory 옮기는 코드를 정리해서 공개하려고 합니다. 처음 작업을 시작한지가 벌써 1년 반 정도가 지난 것 같네요. 지금까지 오픈하지 못했던 이유는 코드가 너무 지저분했고, 개개인마다 설정해줘야 하는 다양한 번거로움이 ..
[Dreamhack] basic_rop_x86 - write up
Index문제보호기법 확인basic_rop_x86.c문제 풀이1. 사용할 함수 인자에 맞는 Gadget 구하기2. RET 주소를 변조해서 puts(puts@got); 호출3. BSS 영역에 "/bin/sh" 문자열 저장4. system(&bss)로 쉘 획득선행지식PLT & GOT함수 호출 규약함수 프롤로그/에필로그익스플로잇 basic_rop_x86Description 이 문제는 서버에서 작동하고 있는 서비스(basicropx86)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다.htt..
[Mitigation] Stack Canary - 스택 카나리
스택 카나리(stack canary)란? - 버퍼와 SFP 사이에 임의의 데이터를 삽입하여 버퍼 오버플로우를 탐지하는 기법이다. 에필로그에서 해당 값을 확인하여 메모리가 변조되었는지 확인한다. 위 사진과 같은 형태로 버퍼와 SFP(이전 스택 프레임의 rbp) 사이에 canary 값이 들어가게 되어 메모리 값이 변조 되었는지 확인하는 것이다. * 스택 프레임 구조를 모른다면 -> https://she11.tistory.com/122 을 먼저 읽어보세요! canary 직접 확인하기 - dreamhack.io 의 canary 예제 코드를 통해 직접 확인해보자. 먼저, 예제 코드를 이용하여 카나리 옵션이 설정되지 않은 바이너리와 설정된 바이너리를 생성하고 실행한다. 왼쪽 사진은 버퍼가 터져 segmentatio..
[Linux] shell script(쉘 스크립트) 기본 문법
shell 이란? - 사용자와 커널 사이에서 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 한다. 쉘 프로그래밍 기본 설정 - 쉘 스크립트를 사용한 파일은 .sh 확장자를 가지고, 맨 처음 행에 #!/bin/bash를 쓴다. #!/bin/bash echo "Hello World" - 실행 방법(example.sh)은 다음 사진과 같다. 1) 실행권한을 부여하고 실행 $ chmod 755 example.sh $ ./example.sh 2) sh 명령어를 이용하여 실행 $ sh example.sh - 주석은 #을 사용한다. 주석처리 된 코드는 실행되지 않는다. #!/bin/bash echo "Hello World" #주석은 실행되지 않음. 변수 활용 - 변수 값을 대입할 때는 '='를 ..