일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 메타스플로잇
- smb
- 내부침투
- Kioptrix
- 포트스캔
- Hacking
- 해킹
- 취약점 스캔
- CTF
- SQL Injection
- Metasploit
- SQLINJECTION
- 해킹툴
- 침투테스트
- 모의해킹
- web hacking
- load of sqlinjection
- 스캐닝
- 취약점분석
- Los
- 권한상승
- Samba
- sql
- 암호해독
- root권한
- 스캔
- 시스템 해킹
- 해킹도구
- 칼리리눅스
- 취약점
- Today
- Total
목록분류 전체보기 (119)
감자 텃밭
제목에서도 알 수 있듯 해당 문제는 RTC를 이용하는 문제인듯 하다. 우선 해당 프로그램을 확인해보자. 입력과 출력 기능이 있고, nx가 걸려있는걸 확인 할 수 있다. 또한 해당 바이너리 파일에는 pop rdx; ret 가젯이 존재하지 않는다.. 역시 RTC 기법을 사용해야할 거 같다. 해당 프로그램을 IDA로 확인해보자. 매우 단순하다 write()함수와 read()함수로 단순 출력 입력만 하고있다. 우선 RTC란 ROP기법을 사용할떄 필요한 가젯이 없을경우 사용하는 기법이다. RTC기법은 __libc_csu_init 함수를 사용하며, 가젯을 해당 함수에서 찾는것을 제외한 나머지 방법은 ROP와 동일하다. 자세한 설명은 RTC 기법설명에서 확인하자. https://hg2lee.tistory.com/en..
포너블(시스템 해킹)을 하면서 많은 기능을 제공해주는 Pwntools는 엄청 많은 도움이 되며, 정말 Exploit에 큰 도움이 된다. pip를 통해 설치후에 Exploit 파일인 .py 내에서 사용이 가능하며, 불러오기 위해 제일 상단에 from pwn import * 로 해당 모듈을 불러올 수 있다. from pwn import * 1.연결 1. 원격 접속 - 공격서버에 공격을하기위해 원격으로 붙기위해 사용 (nc) remote("ip",port) ex) r = remote("192.168.10.101", 8080) 2. 로컬 접속 - 공격서버에 원격으로 붙기전에 로컬에서 우선 Exploit코드를 실행시켜보기 위해 사용 process("파일") ex) p = process("./test") 3. ss..
보통 ROP는 Dynamic Link 바이너리에서 plt와 got를 이용하여 해결하는 기법이다. 하지만 주어진 바이너리파일이 Dynamic Link된 파일이 아닌 Static Link된 파일일 경우 사용할 수 없게 된다. 필요한 모든 함수구현 코드들이 실행파일 안에 존재하기 때문이다 하지만 해당 함수코드중 system()함수가 없는 경우 공격이 힘들어진다. 이렇게 system()함수가 존재하지않고 Static Link된 바이너리 파일에서의 ROP공격을 하기 위한 기법이 mprotect ROP이다. 특정 메모리 영역에 ShellCode를 삽입하여 사용하는 기법이다. 일단 해당 ROP를 하기위해서는 mprotect 함수에 대해 우선적으로 알아보자. mprotect() 함수는 할당된 메모리 영역의 권한을 변경..
기본적인 ROP사용법은 32bit ROP에서 확인하자. https://hg2lee.tistory.com/71 [시스템] Return-Oriented-Programming - ROP [x86-32bit] ROP기법이란 Return-Oreinted-Programming의 약자로 반환 지향형 프로그래밍 이다. ret영역에 가젯을 이용하여 연속적으로 함수를 호출하며 공격자가 원하는 흐름대로 프로그래밍 하듯 공격한다는 뜻의 hg2lee.tistory.com 64bit ROP는 32bit ROP와 사용법이 살짝 다르다. 32bit ROP에서는 POP POP ret 등의 가젯에서, pop 명령어의 피연산자의 종류가 상관이 없었다. 하지만 64bit 환경에서는 이 피연산자의 종류가 중요하다 그 이유는 호출 규약인 Sy..
블로그 이전중입니다. 아래 링크에서 확인 가능합니다. 😁https://g2hsec.github.io/system-vuln/system-vuln-Return-Oriented-Programming-ROP-x86-32bit/ ROP기법이란 Return-Oreinted-Programming의 약자로 반환 지향형 프로그래밍 이다.ret영역에 가젯을 이용하여 연속적으로 함수를 호출하며 공격자가 원하는흐름대로 프로그래밍 하듯 공격한다는 뜻의 기법이다. ROP는 ASLR, DEP/NX등의 메모리 보호기법을 우회하여 공격할 수 있는 기법이며,해당 기법을 사용하기위해서는 몇가지의 사전지식이 필요하다.우선 RTL, RTL-Chaining, PLT,GOT, GOT_Overwrite, Gadget등이 필요하다. 또한 해당 기..
우리가 주로 익스플로잇을 하기위해 "leak"한다. 라는말을 들어봤을 것이다. 우선 Memort-leak 즉 leak라 부르는 행위는 메모리의 주소값을 유출시키는 행위이다. 특정한 메모리의 주소를 유출시킬 수 있으며, 인접한 영역의 메모리도 유출시킬 수 있다. 특정 주소의 실제 메모리주소를 알아내어 원하고자 하는 함수의 주소를 얻기위해 사용되며 보통 실제 주소를 얻었을 경우 해당 주소의 offset을 빼서 libc_base 주소를 구해 해당 libc_base 주소에 원하는 함수의 offset주소를 더해 원하고자 하는 함수의 실제 주소를 얻게 된다. 두 가지의 방법이 존재하며. 1. Buffer Overflow를 이용하여, 변수들 사이의 값을 NULL값을 덮어씌워 인접 메모리를 유출시키는 방법 2. Ret..
GOT Overwrite란 기법은 PLT, GOT의 GOT를 조작하여 사용하는 기법이다. https://hg2lee.tistory.com/61 [시스템] PLT 와 GOT [초급] 시스템 해킹(포너블)을 하다보면 PLT, GOT 어디선가 들어봤고, plt, got 라고 불리우는것들을 막 호출하고 변조하고 할겁니다. 이번에는 이러한 plt와 got가 뭔지에 대해 알아보도록 하겠습니다. 보통 hg2lee.tistory.com 해당 기법은 PLT와 GOT는 Dynamic Link 방식에서 공유라이브러리를 사용하는 과정을 이해한다면 쉽게 이해 할 수 있을것이다. 함수가 호출되면 plt를 참조하고 plt는 got를 참조하는대 got에는 함수의 실제 주소가 들어가있다고 했다. 그럼 여기서 plt가 참조하는 got영..
Gadget의 본래의 개념은 프로그램 상에서 코드 조각을 지칭하였으며, 프로그램 내에 존재하는 명령어 조각 이다. 기존 프로그램에 존재하지만 libc파일에도 존재한다. 포너블(시스템 해킹)에서 주로 바이너리해킹에서 가젯을 사용하는경우 ret로 끝나는 연속된 명령어들을 의미하기도 한다. 주로 pop pop pop ret; 형식이며 여기서 pop은 호출된 함수에서 인자를 정리해주는 용도이다. 즉 read(0, buf, 64) 형식의 read()함수를 호출 했을시 인자값이 0, buf, 64 로 3개이므로 3개의 인자를 정리하기위해 pop pop pop를 쓰는것이다 그 후 ret;로 원하는 함수를 다시 한번 호출 할 수 있다. 하는 함수의 인자가 3개 일 경우 : "pop; pop; pop; ret" 호출 하..