카테고리 없음

[System Hacking] 툴 설치하기

멘멘 2023. 7. 9. 23:11

버그(bug)

실수로 발생한 프로그램의 결함

 

디버거(debugger)

버그를 없애기 위해 사용하는 도구.

 

gdb(GNU debugger)

리눅스의 대표적 디버거.

오픈소스 개발로 무료로 설치 가능하며, 다양한 플러그인 존재.

 

entry

ELF(Executeable and Linkable Format)

헤더 : 실행에 필요한 여러 정보가 적혀있음

  -진입점(Entry Point, EP) : os가 ELF를 실행할때 진입점값부터 프로그램 실행

섹션 : 컴파일된 기계어 코드, 프로그램 문자열을 비롯한 여러 데이터 포함

 

context

프로그램의 실행과정을 관찰하기 위해 주요 메모리들의 상태 파악할 수 있게 도와줌

1. REGISTERS : 레지스터 상태

2. DISASM : rip부터 여러줄에 걸쳐 디스어셈블된 결과 

3. STACK : rsp부터 여러줄에 걸친 스택의 값

4. BACKTRACE: 현 rip에 도달할때까지 어떤 함수들이 중첩되어 호출되었는지

 

break & continue

break : 특정 주소에 중단점(breakpoint)을 설정하는 기능

continue : 중단된 프로그램을 계속 실행시키는 기능

 

run

단순히 실행만 시킴

 

disassembly

gdb가 기본적으로 제공하는 디스어셈블 명령어.

(u, nearpc, pdisass 등)

 

navigate

ni : 어셈블리 명령어 한줄 실행, 서브루틴 내부 x

si : 어셈블리 명령어 한줄 실행, 서브루틴 내부 o

finish : 함수 끝까지 한번에 실행

 

examine

x : 특정 주소에서 원하는 길이만큼의 데이터를 원하는 형식으로 인코딩하여 볼 수 있음

 

telescope

메모리 덤프 기능. 메모리가 참조하고 있는 주소를 재귀적 탐색하여 값을 보여줌

vmmap

가상 메모리 레이아웃을 보여줌. 파일이 매핑된 경우 해당 파일 경로까지 보여줌

 

 

 

pwntools

익스플로잇 제작의 간편화에 영향

 

1.process & remote

process : 익스플로잇을 로컬 바이너리를 대상으로 할때 사용하는 함수

remote :  원격 서버를 대상으로 할떄 사용하는 함수

 

2.send

데이터를 프로세스에 전송하기 위해 사용

 

3.recv

프로세스에서 데이터를 받기 위해 사용

 

4.packing & unpacking

값을 리틀 엔디언의 바이트 배열로 변경, 혹은 그 역의 경우

 

5. interactive

셀을 획득햇거나, 익스플로잇의 특정 상황에 직접 입력을 주면서 출력을 확인하고 싶을 때 사용하는 함수

 

6. ELF

ELF 헤더에 익스폴로잇에 사용될 수 있는 각종 정보 기록

 

7.context.log

익스플로잇의 디버그 편의 제공

 

8.context.arch

아키텍처의 정보를 프로그래머가 지정할 수 있도록 함.

 

9. shellcraft

자주 사용하는 셸코드들이 저장되어 쉽게 꺼내 씀

 

10. asm

어셈블리 코드를 기계어로 어셈블 기능.