Hacking/Pwnable

[pwnable] Ubuntu 16.04에 Pwntools, Pwndbg 설치하기

h4won 2021. 2. 26. 17:20

VMware Workstation Pro에 Ubuntu 16.04 설치하기

64 bit PC Desktop image를 다운받았다.

 

vmware에 우분투를 설치해준다.

 

설치가 완료된 모습이다.

 

 

 

Ubuntu 초기 기본 설정

~$ sudo apt-get update
~$ sudo apt-get upgrade

명령어를 통해 최신 파일들로 업데이트

 

 

 

 

Ubuntu 16.04에 Pwntools 설치하기

apt-get install python2.7-dev python-pip

pip install pwntools

apt-get install libcapstone-dev

 

이때, 주의점이 있다..

pip를 굳이 업그레이드 하지 말 것! (업그레이드 했다가 밑의 오류가 떴다..)

$ pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==21.0.1', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python2.7/site-packages/pip/_internal/cli/main.py", line 60
    sys.stderr.write(f"ERROR: {exc}")
                                   ^
SyntaxError: invalid syntax

python 2.7을 사용할 경우 pip를 업그레이드 하고 난 뒤 아래와 같은 에러가 발생할 경우 pip가 python 2.7에서 지원되지 않는 버전으로 업데이트가 되어서 발생된 원인이다.

 

-> pip를 업그레이드 할 경우, python2.7이 지원되는 마지막 버전으로만 업데이트를 수행한다.

$ curl -O https://bootstrap.pypa.io/2.7/get-pip.py
$ python get-pip.py
$ python -m pip install --upgrade "pip < 21.0"

python2.7이 최종 지원하는 버전은 20.3.4 이다.

 

 

 

 

Ubuntu 16.04에 Pwndbg 설치하기

git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh

코드는 너무 간단하지만, setup.sh을 실행시키는 중에 또 에러가 떴다^^ (또 pip가 문제였다..)

 

E : Unable to locate package python3-pip

pwndbg 설치를 위해서 실행하는 setup.sh에서 pip를 재설치하는 과정이 있는데 이때 path 관련 설정이나 위치가 꼬여서 발생하는 오류인 것 같다.

아까 python3-pip도 깔아뒀기에 그냥 setup.sh(shell code)에서 관련 코드를 지우기로 했다.

 

-> setup.sh을 vim으로 열어서 pip 설치 관련 코드를 주석 처리했다.

-> ./setup.sh 을 다시 입력하니 이번엔 제대로 실행이 됨을 알 수 있었다.