분류 전체보기 205

[ROP] Ret2ZP on ARM (like RTL on x86)

RTL은 ROP 기법중 하나로 간단한 버전이라고 생각하면된다. RTL이란? Ret2LibC Overwrites the return address and pass parameters to vulnerable function. What does it mean for (non-executable-stack) exploitation? Parameters needed to be setup instead of just putting them in the right order on the stack like you were used to on X86. Meaning you can control the Base Pointer (can be used for Frame faking), the function to call..

기본개념 2020.01.05

[GEF] Pattern 생성과 활용

GEF에서는 리턴 명령어가 존재하는 오프셋을 검색할 수 있도록 패턴 기능을 제공한다. - pattern create [크기] - pattern search [패턴] 하지만 꼭 개념을 정리해야 되는 것이 있다. 패턴서치는 리틀엔디안 검색과 빅엔디안 검색 둘다 출력하는데, 바이트오더로 인해 그 결과는 차이가 있다. pattern search를 해보면 혼동이 올 수 있는데, 시스템 고유 방식이 아닌 내가 검색한 엔디안 방식에 따른 오프셋을 참조하면된다. 예를 들어, Program received signal SIGSEGV, Segmentation fault. 0x61616174 in ?? () [ Legend: Modified register | Code | Heap | Stack | String ] ----..

Debugger/GDB 2020.01.04

Disassembling_with_radare2

Tomas_Antecky 윈도우즈에서 실습하기 때문에 Reversing_kr의 Easy_Crackme.exe로 실습해보았다. >ij~{} :informations, output of command in json format, json indent 더 자세한 표현식은 아래 명령어를 통해 참고 >?@? : 출력 표현식 리스트 b : 블락 크기 출력, 기본 100블럭임 b [크기] : 블락크기 설정, 32비트에서는 참고로 4블락당 1개의 명령어가 출력됨 [0x00401188]> b 12 [0x00401188]> pd ;-- entry0: ;-- eip: 0x00401188 55 push ebp 0x00401189 8bec mov ebp, esp 0x0040118b 6aff push 0xfffffffffffff..

Debugger/radare2 2020.01.03

THC2018

THC2018 PDF 필요한 슬라이드만 뽑아봄 v1: 2020/01/02 Seek History >s- :undo > s+:redo - Usee u and U keys to go back/forward in the visual seek history. - 비쥬얼 모드에서 !를 입력하면 Panel로 바꿀 수 있다. - 스페이스바를 통해 그래프모드비쥬얼모드 전환 가능하다. - 쉘에서 Vc를 입력하면 비쥬얼 커서모드를 이용할 수 있다. - pds: 디스어셈블 요약 - pdc: C슈도코드 radare2 지원 디컴파일러 ● Boomerang Abandoned ● Snowman Supported ● Retdec supported ● Radeco wip (gsoc) ● r2dec Actively maintained ..

Debugger/radare2 2020.01.02

A journey into Radare 2 – Part 2: Exploitation (미완료)

* 실습 바이너리 파일이 ELF 즉, 리눅스 파일이며 디버그 모드를 실행해야하기 때문에 윈도우에서는 실습이 불가능하다. 리눅스에서 다시해보는걸로!! ㅠ Our binary this time is quite similar to the one from the previous post with a few slight changes to the main() function: •Compiled without -z execstac to enable NX bit •Receives user input with scanf and not from program’s arguments •Uses mostly puts to print to screen •Little changes to the program’s output ra..

Debugger/radare2 2020.01.02

Stack5 (Success)

About Stack5 is a standard buffer overflow, this time introducing shellcode. This level is at /opt/protostar/bin/stack5 Hints At this point in time, it might be easier to use someone elses shellcode If debugging the shellcode, use \xcc (int3) to stop the program executing and return to the debugger remove the int3s once your shellcode is done. Key point 1. 버퍼오버플로우 취약점을 이용해 실제로 쉘코드를 실행해보는 문제다. 2...

[펌] ARM / x86 에서의 함수 호출 /리턴방식 비교

작성자 : 박진범 메일 : jinb.park7@gmail.com http://blog.daum.net/_blog/ProfileView.do?blogid=0YW8F&totalcnt=152 :) Goal - ARM / x86 의 함수 호출, 함수 리턴 할 때의 차이점에 대해 이해한다. - 그러한 차이점이, 왜 ARM 에서 ROP 공격을 더 어렵게 만드는지 (x86 에 비해) 이해한다. :) ARM / x86 에서의 함수 호출 방식 비교 - x86 - 명령어 : call - 동작방식 : call 명령어 하나가 실행될 때, 내부적으로 아래와 같이 수행된다. (1) push return address to stack. (stack pointer) (2) mov dest, (%rip) - 즉, 돌아올 return ..

기본개념 2020.01.01