Transcript Pwntools
Revers3r(임재혁) Contents 1. About me 2. Pwntools에 대해… 3. Pwntools 설치 4. Pwntools의 다양한 기능들 5. Pwntools를 이용한 익스플로잇 몇 가지 About me -취미로 컴퓨터를 하는 사람이다. … 장난이고 버그헌팅 공부하는 사람입니다. 이름 : revers3r(임재혁) 직업 : 백수 나이 : 올해 20세 Pwntools ? 익스플로잇의 편의성을 위해서 만들어진 툴 Gallopsled 팀에서 개발 http://pwntools.readthedocs.org/en/latest/intro.html Pwntools? Why? Plt, got.. Find.. Find.. Find…. Pwntools - Install 자세한 내용은 pwntools의 documentation 페이지에 나와있다. 1. apt-get install python2.7 python2.7-dev python-pip 2. pip install pwntools 여기서, 이것만 설치할 경우에 ROP 클래스를 호출할 때 disasm 에러 발생!! 3. apt-get install libcapstone-dev Pwntools - Connection 기본적인 리모트 연결 기능 nc, ssh.. -> remote(), ssh() 리모트 호스트 연결의 편의성을 위해.. 매우 짧게 줄이는 것이 가능.. How to use ssh()? ssh() : pwntools에서 제공해주는 ssh 연결 함수 ssh(user, host, port, password) 식으로 구성.. run() 함수 사용으로 바이너리 실행 가능.. How to use remote()? remote() : 서비스 등.. Nc로 접근해야하는 경우. recvuntil() 같은 함수들도 전부 제공해주는편. ELF() ELF() : pwntools에서 바이너리를 인식시켜 바이너리 의 정보 등을 가져오기 위한 기능 ELF에 바이너리를 인식시킴으로 plt, got같은 elf 정보 등을 획득할 수 있다. plt,got 뿐만 아니라. 다양한 바이너리의 정보를 구할 수 있다! ROP() - 1 ROP (Return Oriented Programming) = 메모리 미티게이션을 우회하는 기술 - 이를 수행하기 위해서 필요한 요소 = Gadget, plt, got … ROP() - 2 Pwntools의 가장 메인 기능 중 하나인 ROP 기능. rop.read(0, data, 4) : 이런 형태로 사용 가능 (편리) ROP 페이로드를 작성할 때의 시간을 최대한 줄일 수 있음. PLT 주소들을 직접 구할 필요가 없음. ROP() - 3 지금까지는.. plt.. got.. bss.. Gadget… asm() pwntools의 대표적인 어셈블, 디스어셈블 기능. asm(), disasm() 이 두가지로 이루어져 있음. capstone과 비슷한 역할.. asm() 활용 ShellCode를 작성할 때 유용하다. ※ ShellCode : 쉘을 획득하기 위한 어셈블리 코드 shellcraft ROP 클래스와 함께 pwntools의 중요한 기능 중 하나 다양한 쉘코드를 지원함. (i386, amd64, arm …) shellcraft example Shellcode test 테스트로 i386.linux.sh()를 호출해보았다. Example ) 예제 1 : ropasaurusrex (Plaid CTF 2013) 예제 2 : echo1 ( pwnable.kr ) – 제외 예제 3 : nuclear (CodeGate 2014 Junior) Example : ropasaurusrex 취약점 : 간단한 Overflow 하지만 Gadget을 일일히 찾기는 귀찮은 부분.. Exploit : ropasaurusrex Demo : ropasaurusrex Example : nuclear CodeGate에서 출제된 ROP 문제. 취약점 – 심플한 Overflow Exploit : nuclear 구해야하는 요소 : plt, got 등.. Exploit : nuclear 페이로드를 저렇게 구성도 가능하지만.. 이렇게 ROP 클래스를 사용해서도 페이로드조각을 구 성 가능함. 들어주셔서 감사합니다.