목록전체 글 (420)
외로운 Nova의 작업실
이번시간에는 드림핵 basic_exploitation_000 문제를 풀어보도록 하겠습니다. 저의 환경은 윈도우지만 wsl을 사용하는중입니다. - 문제인식 서버의 취약점을 찾고 익스플로잇한 후 셸을 획득하는 문제입니다. 아래는 서버의 환경으로 하나씩 보게습니다. Ubuntu 16.04 : 운영체제 입니다. Arch: i386-32-little : CPU 아키텍처로 어셈블리어를 작성할때 필요합니다. RELRO: No RELRO : relocation read only의 약어로 BSS빼고 모두 write이 안되게 보호하는 기능입니다. 하지만 no RELRO이기때문에 기능이 꺼져있는 것을 알 수 있습니다. 즉, code 영역도 write 할 수 있다는 얘기입니다. Stack: No canary found : s..
wsl에서는 원래 32비트 프로그램이 실행되지 않습니다. 따라서 32비트 프로그램을 실행하려면 binfmt가 있어야합니다. 아래 순서대로 start 까지 한 후 프로그램을 실행하면 됩니다. 하지만, 실행만 가능할뿐 리버싱을 하게되면 64비트처럼 되므로 리버싱의 경우에는 wsl이 아닌 가상머신을 사용해야합니다. - binfmt 설치 sudo apt install qemu-user-static sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xf..
- permission 퍼미션이란앱의 특정 기능에 부여하는 접근 권한을 말합니다. 내가 개발하는 앱이 다른 앱이나 안드로이드 시스템에서 보호하는 특정 기능을 이용할때 퍼미션(uses-permission) 사용을 설정해야합니다. 또한 내가 개발한 앱의 기능을 다른 사람과 공유할려면 퍼미션(permission) 기능을 허용해야합니다. - 안드로이드 시스템 특정 권한 사용하기 minifast 파일이란 앱의 설정관련한 파일로 안드로이드 시스템의 특정 기능을 이용하려면 해당 파일에 해당 기능을 사용하겠다고 선언해줘야합니다. 카메라 사용을 예시로 들어보겠습니다. 아래는 manifest 파일입니다. 하단에 을 선언해줘야합니다. name의 경우에는 퍼미션을 구별하는 식별자로 android의 권한중 CAMERA 권한을 ..