Linux

pwnable을 위한 Peda & pwntools 설치하기

( '그' 사이트들.)



ctf를 비롯한 많은 대회에 나오는 pwnable문제들.

이런 문제들의 풀이를 위해선 기본적인 실력도 중요하지만, 풀이를 도와주는 도구들도 필요하다.


gdb의 업그레이드 버전인 gdb-peda 와 python 모듈인 pwntools 가 그것들.

처음 시스템 공부를 했던 시절엔 저런 도구들 없이 그냥 gdb와 perl 스크립트, C언어 소켓, 파이썬 코드 등을 이용해 문제 풀이를 하곤 했었는데, 

(사실 자료조사가 많이 부족했다고 생각한다. peda가 최초 공개된게 블랙햇 2012였으니.. 근데 또 이렇게 보면 나름 최신 기술이다?)

저 도구들을 가지고 다시 공부를 시작해보니 .. 정말로 기능이 강력하다는걸 단박에 깨달을 수 있었다. 

이 도구들에 익숙해진다면 저것들 없이는 pwnable 풀이는 불가능하다고 느낄정도로 간편하다. 

나쁜거 아니냐고? 좋은게 좋은거다. 편하고 빠른게 장땡이다. 


#물론 기초공부를 할때는 저런 도구들 말고 perl 스크립트, 일반 gdb 사용 등을 권장한다. 좀 하다가 나중에 peda를 써보면 모 분의 말씀처럼 gdb가 정말 얼마나 구린지 깨닫게 된다. 


아무튼, 다른 도구들은 후순위로 밀려나더라도 , 저 두가지 도구는 아마 pwn 공부하는 사람들이 가장 많이 쓰고, 

서버를 새로 세팅할때 가장 우선순위에 두고 설치하지 않나 싶다. 


동적 디버깅에 시각적으로 많은 도움을 주고, pwn에 쓰이는 각종 도구들을 무진장 준비해놓은 peda ,

파이썬코드을 이용한 pwn에 필요한 거의 모든 라이브러리를 몽땅 모아놓은 pwntools


이번에 서버를 새로 세팅하면서 설치과정들을 한번 정리해봤다. (사실 매번 새로 팔때마다 매번 새로 자료 찾는게 넘나 귀찮아서 하는거다.)

다른 자료들을 보니 너무 예전 자료거나, 구구절절 길게 적어놓은것들이 많아서 그냥 간단하게 정리해봤다. 



gdb-peda 설치


git clone https://github.com/longld/peda.git ~/peda  

echo "source ~/peda/peda.py" >> ~/.gdbinit


간단하다. 그냥 깃허브 클론뜨고 , gdbinit 에 등록만 해주면 된다.  

# gdbinit : gdb가 실행될때마다 참조하는 파일. 여기에 peda를 등록하면 gdb 명령 실행시에 gdb-peda가 대신 실행된다고 보면 된다.


깃허브 설치가 안되어있다면 sudo apt-get install git 으로 설치해주자.



(빨간 gdb-peda 글자가 보이면 설치가 끝난거다.)


pwntools 설치


sudo apt-get install python2

sudo apt-get install python-pip

pip install pwntools 


얘도 어려울거 없다. 파이썬 설치하고, pip 설치하고, pip를 통해 pwntools를 설치하면 된다. 



(저 많은 파이썬 라이브러리를 다깔아준다. 종합 선물세트~)


잘보면 ropgadget같이 pwn에 많이 쓰이는 도구나, 

virtualenv같이 일반적으로 파이썬에서 많이 쓰는 라이브러리도 같이 깔리는게 보인다. 


우분투 18서버를 새로 파니까 이것저것 세팅할것들이 많았다. c9도 새로 깔고, 툴들도 새로 깔고.. 

새로운 환경에서 새로운 마음으로..?


참고 자료 : http://noplanlife.com/?p=968 // peda 에 관한 소개글. 

설치의 경우는 예전자료라 그런지, wget을 이용한 예전 설치 방식이 소개되어 있었다.