Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 취약점분석
- 포트스캔
- 해킹
- SQL Injection
- 스캔
- Metasploit
- Samba
- 해킹툴
- 해킹도구
- root권한
- Los
- 취약점
- 시스템 해킹
- 내부침투
- SQLINJECTION
- sql
- 취약점 스캔
- 메타스플로잇
- 권한상승
- Kioptrix
- CTF
- web hacking
- 침투테스트
- 칼리리눅스
- Hacking
- 스캐닝
- 암호해독
- smb
- load of sqlinjection
- 모의해킹
Archives
- Today
- Total
감자 텃밭
[시스템] RTL-Chaining 본문
RTL-Chining는 RTL기법을 연속해서 사용하는 방식의 기법이다.
본래 RTL 기법에서 함수호출과 파라미터로받아오는 부분 사이에
4바이트 만큼의 더미값을 줬다. 그부분은 해당 호출하는 함수가 종료되고 돌아가
RET 주소라고 설명했다. 이 부분을 이용해서 연속적으로 함수들을 호출하여 프로그램을 제어할 수 있다.
RTL기법을 선행학습 하지 않았다면 먼저 보고 오도록 하자.
RTL-Chaining 는 pop ret; 와 같은 가젯을 사용하여 이전 함수에서 사용한 인자(파라미터)들을 정리 후
ret부분에서 다시 특정 함수를 호출한다.
여기서 pop의 개수는 이전 함수에서 사용된 파라미터의 개수만큼 사용하여야 한다.
일반적인 RTL 기법은 위와 같이 사용된다. RET영역에 공유라이브러리에서 불러온 System() 함수를 넣고 4바이트 다음에
함수에서 사용할 파라미터(인자)를 저장한다 4바이트 부분에는 프로그램 실행에 아무런 영향을 끼치지 않는 더미값을 넣게된다.
해당 더미값 부분에 가젯을 사용하여 연속적으로 함수를 호출하면 RTL-Chaining기법이 완성된다.
위 사진처럼 필요한 함수와 가젯만 존재한다면 체인쳐럼 연결되어 계속해서 원하는 함수를 호출 할 수 있다.
물론 RTL-Chaining 에서도 64bit 환경에서는 레지스터에 먼저 파라미터를 넣고 출력하는 방식을 사용해야 한다.
※ 내용이 이상하거나 문제가 있을경우, 또는 설명에 부족한 내용이 있으시면 알려 주시면 감사합니다.
'System > System Hacking Techniques' 카테고리의 다른 글
[시스템] Return-Oriented-Programming - ROP [x86-32bit] (0) | 2021.11.22 |
---|---|
[시스템] GOT Overwrite (2) | 2021.11.22 |
[시스템] Return-to-Libc (RTL) (0) | 2021.11.20 |
[시스템] Return-to-Shellcode (0) | 2021.11.20 |
[시스템] NOP sled 기법 (0) | 2021.11.20 |