목록수업기록/시스템 해킹 (4)
Bazinga!
https://youtu.be/1S0aBV-Waeo?si=vF0ViXxAqscBe6UW버퍼 오버플로우란?낮은 수준의 메모리 공격이다.버퍼 오버플로우 공격은 아마도 낮은 수준의 c함수나 무언가를 사용하여 문자열이나 다른 변수를 특정 길이의 메모리 조각에 쓰는 상황이다.하지만 우리는 그보다 더 긴 내용을 쓰려고 할때 이후의 메모리 주소를 덮어쓰게 되어 모든 종류의 문제가 발생할수있 프로그램이 실행될 때 메모리에서 어떤 일이 일어날까?프로그램이 운영체제에 의해 실행될 때, 우리는 쉘에 있고 프로그램을 실행하기 위한 명령을 입력한다.운영체제는 코드의 기본 메소드를 함수로서 효과적으로 호출한다.그러나 실제 프로세스, 실행 파일은 매우 특정한 방식으로 메모리에 보관된다.서로 다른 프로세스 간에 일관된다. 함수란?무..
1. 폰트리 라이브러리 코드 2. x86아키텍처 사용 코드 3. 잘 되는지 확인 코드 asm = 어셈블리 코드를 기계어 코드를 바꿔주는 함수 shell코드 = 기계어 코드운영체제마다 쉘 코드 다를수밖에 없다.(종속적) 결론적으로 원하는 것은 system (" /bin/sh"); → c표준 코드 실행하고 싶음리눅스에선 execve (" /bin/sh",[ "/bin/sh", "-c", " /bin/sh", NULL]) → UNIX OS system 1. 파일 열기 fopen → open함수 2. 파일 읽기fread, fget, fopen →read함수3. 내용 출력→write 함수 목표 : /etc/passwd 열기 https://chromium.googlesource.com/chromi..
2일차 공격표면 조사 - 소프트웨어에서 공격가능한 부분 ( 소켓 통신 부분, 파라미터 등등) - 해야하는 이유 : 실제 규모가 있는 소프트웨어에 대해서는 모든 코드를 분석하기에는 한계가 있다. 효율적인 분석을 위해 --------------- 1. 기능 파악 및 분석 2. 공격 표면 조사 3. 취약점 분석 4. (공격 코드 작성) 개념증명 5. 평가 (취약점 코드의 임펙트)----------------------* 공격 표면 조사1. 임의의 사용자가 임의의 데이터를 프로그램으로 전달 할 수 있는 부분을 조사 - 네트워크 통신을 하는가? : 데이터를 어떤 컴포넌트와 주고받는지- 임의의 파일을 파싱 및 렌더링 하는가?- 임의의 코드를 실행하는가? 2. 공격 난이도를 평가- 어떠한 파일 구조 및 프로토..
어디부터 분석해야할까?main 부터가끔 완전히 strip되어있다면 main이 없을때도 있다. 그럴땐 어떻게 찾아가야할까?-> 리눅스 elf header라는곳을 보면 entry point를 알 수 있다. readelf -h ----------i를 누르면 변경 가능 디옵티마이징 최적화 된 내용을 역으로 풀어내는것 ----------------------------practice 1 ------------------practice 2 변수 이름 바꾸는 단축키 : n스택스택이라는 자료구조 안에 자료를 넣을때마다 포인터가 항상 스택의 위를 가리키고있어야한다. 자료가 빠질때는 반대로선입후출 형식 스택포인터가 가장 위를 가리킨다.push - 스택 포인터가 가리키고 있는 영역을 채우고 한칸(4byte) 올린다pop ..