[Pwnable] Dreamhack - Memory Corruption - C (I)
2021. 2. 28. 18:46
Hacking/Pwnable
Buffer Overflow C언어에서 버퍼란 지정된 크기의 메모리 공간이라는 뜻이다. 버퍼 오버플로우 취약점은 버퍼가 허용할 수 있는 양의 데이터보다 더 많은 값이 저장되어 버퍼가 넘치는 취약점을 뜻한다. 일반적으로 버퍼 오버플로우는 발생하는 위치에 따라 스택 버퍼 오버플로우, 힙 오버플로우와 같이 나눠서 부른다. 버퍼 오버플로우는 인접한 메모리를 오염시키는 취약점이기 때문에 어떤 메모리를 오염시킬 수 있는지에 따라 공격 방법이 달라지기 때문이다. 그중 스택 버퍼 오버플로우는 지역 변수가 할당되는 스택 메모리에서 오버플로우가 발생하는 경우이다. 스택 버퍼 오버플로우 // stack-1.c #include #include int main(void) { char buf[16]; gets(buf); prin..
[Pwnable] pwndbg 주요 사용법
2021. 2. 27. 12:55
Hacking/Pwnable
GDB GDB(GNU debugger)는 GNU 소프트웨어 시스템을 위한 표준 debugger이다. 실행 방법 gdb [프로그램명] 종료 방법 q (quit_ Ctrl + d 소스 보기 ( gdb 실행 시 소스 폴더에서 구동해야 가능함. ) l : main 함수를 기점으로 소스 출력 l 10 : 10행을 기준으로 출력 l func : func 함수의 소스를 출력 브레이크 포인트 ( 프로그램을 브레이크 포인트에 멈춰서 그 때의 상황을 파악하면서 확인할 때 사용 ) b func : func 함수의 시작 부분에 브레이크 포인트 설정 b 10 : 10행에 브레이크 포인트 설정 프로그램 실행, 종료 ( run kill ) r : 프로그램 수행( 재시작 ) k : 프로그램 수행 종료 역추적 하기 bt : 오류가 발..
[Pwnable] pwntools 주요 사용법 (feat. Dreamhack)
2021. 2. 27. 12:42
Hacking/Pwnable
pwntools는 Gallospled 팀이 개발한 파이썬 익스플로잇 프레임워크로, 익스플로잇을 할 때 유용한 여러 기능들을 제공해 준다. 다음과 같이 파이썬 인터프리터에서 pwn 모듈이 임포트되면 pwntools가 정상적으로 설치되었다는 것을 알 수 있다. remote remote는 원격 서비스에 접속하여 통신할 때 사용되는 클래스이다. p = remote("127.0.0.1", 5000) 위 코드는 127.0.0.1 주소에 열려있는 5000번 포트에 TCP 연결을 맺는다. 연결이 성공적으로 맺어지면 remote 객체를 리턴한다. process process는 로컬 프로세스를 실행하여 통신할 때 사용되는 클래스이다. p = process("/home/theori/binary") 위 코드는 로컬 파일시스템..
[pwnable] Ubuntu 16.04에 Pwntools, Pwndbg 설치하기
2021. 2. 26. 17:20
Hacking/Pwnable
VMware Workstation Pro에 Ubuntu 16.04 설치하기 Ubuntu 초기 기본 설정 ~$ sudo apt-get update ~$ sudo apt-get upgrade 명령어를 통해 최신 파일들로 업데이트 Ubuntu 16.04에 Pwntools 설치하기 apt-get install python2.7-dev python-pip pip install pwntools apt-get install libcapstone-dev 이때, 주의점이 있다.. pip를 굳이 업그레이드 하지 말 것! (업그레이드 했다가 밑의 오류가 떴다..) $ pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in load_entry_point(..
[Pwnable] IDA Pro 사용법
2021. 2. 26. 00:45
Hacking/Pwnable
IDA는 디스어셈블러의 일종으로, 바이너리 파일을 역으로 어셈블리어로 재구성해주는 툴이다. 바이너리 >> 어셈블리어 >> 프로그래밍 언어 까지 변환을 지원한다. * Hello_World.exe를 이용해 IDA Pro 사용법을 익혀볼 것이다. Pseudo Code 보기 - F5 - 특정 함수 이름 더블 클릭 그런데 이는 어셈블리어 코드를 다시 pseudocode로 자동적으로 바꾼 것이기 때문에 분석 시 한줄 한줄 붙잡는 것보다 큰 줄기를 이해한 뒤에 중요해보이는 부분만 세부적으로 분석하는게 좋다. 디스어셈블 상태에서 특정 어셈블리어 코드 고치고 싶을 때 - 고칠 부분 클릭하고 Alt + F2 -> 프로그램 파일이 수정되는 것이 아니라 분석 화면에서만 바뀐다. OPEN 한 파일의 정보 보기 - ida vie..