stripped binary는 심볼 정보가 없어서 gdb등으로 분석하기 어렵다. 이걸 해결하는 방법을 가져왔다! 일단 맨 처음에 start 말고 run으로 돌려준다. 한번 run을 하면, 이제 심볼 테이블이 로드된다. 참고로 start하면 이 모양난다ㅠㅠ 그러니까 run으로 돌려주자 이제 아래처럼 __libc_start_call_main에 bp를 걸어준다. 여기서 주의할 것은 b __libc_start_call_main로 해줘야한다는 것! b* __libc_start_call_main로 하면 왜그런진 모르겠는데 안된다ㅠㅠ 아래는 b*~~로 해준 모습이다ㅠㅠ 아무튼 *를 안 붙힌 상태로 bp를 걸고 run을 해주면 아래처럼 잘 멈춘다 그림을 보면 이제 아래 main함수의 주소가 있다. 여기서는 0x5555..
seccomp 실습하다가 계속 syscall이 죽어서 고생하던 도중 strace이라는 명령어를 알게되었는데 꽤나 유용하다 아래처럼 pid를 붙여주면 syscall 명령어를 trace해준다 아직도 왜... 예제 파일이 안먹히는지 모르겠다 제발 알려주실분 뭔가 커널 설정을 따로 해야하는 것 같은데(내 추측) 아니말고.....
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 문제 분석..
plt 등을 알아도 인자를 넘겨주기 어려울 때 사용하면 좋을 것 같다. objdump로 찾기 예를 들어 libc 모르는 경우, PIE base 안다면(혹은 PIE가 적용되어있지 않다면) 코드 세그먼트 내에서 가젯 찾아보는 시도 가능 objdump 등으로 찾을 수 있다. 이를 사용한 문제는 아래!! (사실 내가 만든 문제다 ㅎㅎ 그런데 라업 보니까 이렇게 푸신 분들은 별로 없는듯...하다.. 그래도 이렇게 하면 무척 편리하게 풀수 있다!) https://dreamhack.io/wargame/challenges/1071 Santa House Description 산타 할아버지가 크리스마스를 맞아 드림이들을 모두 집에 초대해서 선물을 나눠주신대요! 착한 아이는 어쩌면 비밀스러운 선물을 받을 수 있을지도 몰라요..
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가 적용된다...