rosieblue
article thumbnail
[HackTheBox] SickROP

SROP 기법을 오랜만에 복습하고 싶어서 이렇게 블로그에 SROP 풀이 방법을 정리하고자 한다. 이 문제는 SROP에 대해서 제대로 익힐 수 있고, 그뿐만 아니라 다른 테크니컬적인 부분도 굉장히 배울 점이 많아 추천하는 문제이다. SROP에 대한 자세한 설명은 예전에 작성해놓았으니 필요하면 아래를 참고하면 된다. [Pwnable] SROP (SigRetrun Oriented Programming) [Pwnable] Exploit Tech: SigReturn-Oriented Programming 아래 포스트는 내가 적은 건 아닌데 SROP 공부하는데 도움된 포스트이다. SROP. Sigreturn-oriented programming (SROP)… | by trustie_rity | Medium 문제 분석..

[Pwnable] ROP 가젯 찾기 어려울 때 할 수 있는 방법들...
Linux Exploitation/settings 2024. 1. 3. 14:27

plt 등을 알아도 인자를 넘겨주기 어려울 때 사용하면 좋을 것 같다. objdump로 찾기 예를 들어 libc 모르는 경우, PIE base 안다면(혹은 PIE가 적용되어있지 않다면) 코드 세그먼트 내에서 가젯 찾아보는 시도 가능 objdump 등으로 찾을 수 있다. 이를 사용한 문제는 아래!! (사실 내가 만든 문제다 ㅎㅎ 그런데 라업 보니까 이렇게 푸신 분들은 별로 없는듯...하다.. 그래도 이렇게 하면 무척 편리하게 풀수 있다!) https://dreamhack.io/wargame/challenges/1071 Santa House Description 산타 할아버지가 크리스마스를 맞아 드림이들을 모두 집에 초대해서 선물을 나눠주신대요! 착한 아이는 어쩌면 비밀스러운 선물을 받을 수 있을지도 몰라요..

article thumbnail
[Kernel] Mitigation : KASLR
Linux Exploitation/Kernel 2023. 10. 14. 18:17

KASLR KASLR가 적용되면 커널 코드 및 데이터 부분이 임의의 주소에 배치되게 됨. KASLR는 커널 3.14버전에서 처음으로 지원하였고, 4.12버전에서부터는 디폴트로 KASLR를 적용하게 됨 KASLR 안 적용하려면 커널 명령줄에 nokaslr를 적용하면 됨 실습파일에서는 nokaslr가 그냥 적용되어있기 때문에 아래처럼 바꿔줘야한다. (수정 전) _kernel_cmdline="console=ttyS0 mitigations=off nokaslr norandmaps" (수정 후) _kernel_cmdline="console=ttyS0 mitigations=off norandmaps" 위 처럼 run.sh를 수정해서 _kernel_cmdline에서 nokaslr를 없애면 항상 kaslr가 적용된다...

article thumbnail
[Kernel] Tasks (1)
Linux Exploitation/Kernel 2023. 10. 4. 16:02

Tasks 리눅스에서는 프로세스나 스레드를 'Task'라는 하나의 단위로 관리한다. Task는 결국 하나의 '실행 단위'를 이야기한다. 결국 프로세스나 스레드는 개념적인 구분일 뿐이고, 리눅스 내에서 이들이 관리될 때에는 프로세스나 스레드나 모두 '태스크'로 관리가 된다. 테스크 별로 시간을 할당하여 여러 개의 테스크들을 실행하는 멀티 태스킹, 실행 시간을 배분하는 스케줄링 등 모두 많이 들어본 용어들일 것이다. 각 태스크는 task_struct라는 구조체로 표현이 된다. 커널은 태스크 관리자라고 했었는데 그렇기 때문에 task_struct는 커널 메모리 내에 존재한다. 생각해보면 당연한 것이, 이렇게 중요한 정보는 일반 사용자가 접근하면 안되므로 커널 메모리 안에 들어가서 쉽게 접근할 수 없게 만드는 ..

article thumbnail
[Heap] Exploitation : House of Spirit
Linux Exploitation/Heap 2023. 10. 3. 23:06

House of SpiritHouse of Spirit은 free함수의 인자를 우리가 원하는 값으로 보내서, 이 값에다가 재할당해서 AAW이나 AAR등을 할 수 있는 기법이다. 해당 기법으로 원하는 위치(Heap 영역이 아니어도 상관 x! 스택이나 다른 곳도 가능~~)에 청크를 할당하여 임의의 주소의 값을 알거나 덮을 수 있다! 예) free(main의 return address) - 이렇게 해서 return address overwrite 하기위 예시와 같은 공격을 하기 위해서는 당연히 main의 return address를 알아야할 것이고 그렇다면 스택의 주소를 구하는 과정 또한 선행되어야겠다! 예시 1// gcc -o spirit1 spirit1.c -no-pie #include #include i..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.