Pwnable/이론
-
Pwnable. 해쿨핸드북 요약 정리 (5차)Pwnable/이론 2020. 1. 2. 18:54
Section 22. SetUID , SetUID bit 설정하는 방법 1. USER에 SetUID bit 부여하기 > chmod u+s (파일명) 2. USER에 부여된 SetUID bit 제거하기 > chmod u-s (파일명) 3. GROUP에 SetGID bit 부여하기 > chmod g+s (파일명) 4. GROUP에 부여된 SetGID bit 제거하기 > chmod g-s (파일명) 5. SetUID와 SetGID bit를 모두 부여하기 > chmod ug+s (파일명) or > chmod +s (파일명) 6. SetUID와 SetGID bit를 모두 제거하기 > chmod ug-s (파일명) or > chmod -s (파일명) #내 서버에서 SetUID bit가 부여된 파일들 찾아보기 > f..
-
Pwnable. 해쿨핸드북 요약 정리 (4차)Pwnable/이론 2020. 1. 2. 04:25
Section 16. 스택을 그리는 세가지 방법 1, 세로로 그리기 2, 세로로 그리되 위 아래를 거꾸로 하는 방법 3, 가로로 그리기(탑 바텀) Section 17. 스택에 저장되는 값들 살펴보기 지역변수, 리턴 어드레스, 함수의 인자들 = 스택 프레임 Section 18. 큐 영역도 알고 넘어가기 선입선출형 구조 (FIFO) Section 19. 리모트 버퍼 오버플로우와 로컬 버퍼 오버 플로우 1단계 : 정보 수집 (해킹 대상에 대한 정보 수집) 2단계 : 리모트어택 (취약점을 이용하여 서버안으로 들어갈 수 있는 접근권한을 획득해내는 과정) 3단계 : 로컬 어택 (현재 자신이 가지고 있는 권한을 최고 관리자 권한으로 상승시키는 공격) 4단계 : 흔적 삭제 (자동로그삭제 툴을 이용하거나 로그 파일을 날..
-
Pwnable. 해쿨핸드북 요약 정리 (3차)Pwnable/이론 2020. 1. 1. 03:11
Section 10. 메모리를 Hex dump 뜨기 메모리에 저장된 값들을 살펴보는 방법 Windows 에서 hex editor 는 바이너리 파일을 16진수(hex)로 보여주는 프로그램이다. 현재 실행 중인 메모리의 주소와 값을 16진수롤 출력하는 방법 1, 디버거라는 툴을 이용하여 동적 메모리를 분석하는 방법 2, 메모리의 주소를 출력하는 코드를 소스코드에 추가하는 방법 void dumpcode(unsigned char *buff,int len); (buff엔 dump하고자 하는 메모리의 시작주소, len엔 dump 할 크키를 지정) Section 11. 리틀엔디안과 빅엔디안 리틀엔디안(Little Endian) : 메모리에 저장된 값을 dump 할 때, 순서가 반대로 나타나는 특징 빅엔디안 : 왼쪽에..
-
Pwnable. 해쿨핸드북 요약 정리 (2차)Pwnable/이론 2019. 12. 31. 02:37
Section 04. "메모리 주소"와 친해지기 우리가 사용하는 변수(버퍼)들이 모두 내부적으로는 메모리 주소를 통해서 접근된다 "변수는 삼겹살이다" (해당하는 정보가 3겹) 주소(&연산자),크기(sizeof),값 Section 05. 각 변수의 메모리 주소 비교해보기 나중에 선언된 변수는 낮은 주소를 받게 된다. Section 06. gets() 함수 이해하기 gets() : "키보드로부터 문자열을 입력받아 버퍼에 저장" 하는 함수 이때 하나의 인자를 요구 하는데, 그것은 입력받은 갑을 저장할 버퍼이다. 버퍼란 사실 &burffer 와 동일하다. 즉 burffer 배열 변수의 시작 주소이다. (c언어에서 "배열의 이름은 그 배열의 시작 주소와 동일하다"하고 정의 되어 있기 때문) 인자 : "메모리 주소..
-
Pwnable. 해쿨핸드북 요약 정리 (1차)Pwnable/이론 2019. 12. 23. 00:29
이 책의 목표를 이해 할 수 있게끔 노력해보자. 컴파일 - 원시코드(소스코드)에서 목적 코드(출력된 문서)로 옮기는 과정 변수와 상수 - 변수 : 데이터를 저장할 수 있는 메모리 공간 상수 : 사용자가 한번 정해지면 값을 변경할 수 없는 변수 또는 값 함수 - 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미함 배열과 포인터 - 배열 : 연관성 는자료를 한가지 자료형으로 연결시킨 것 포인터 : 변수의 주소값을 저장 Section 01. 프로그램을 공격한다!? 버퍼 오버플로우 (메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점) 버퍼 오버플로우 공격의 대상 특징 : 사용자로부터 입력을 받는 프로그램의 실행결과가 달라지는 점을 노렸다! 비정상적인(아주 긴) 내용을 입력하면 프..