p0wn-box - 가볍게 사용하기 좋은 모의해킹/침투테스트 툴 도커 이미지

최근에 Docker image 한번 제대로 날려먹은적이 있습니다. 테스트용 칼리….ㅜㅜ (맥은 리눅스와 다르게 세팅을 다 안해놓은지라… 도커에 엄청 의존하고 있었죠)

아무튼 급히 툴 쓸일이 있어서 찾던 중 여러 보안툴 세팅해놓은 Docker project가 있어 공유드릴까 합니다.

dotdotpwn 사용 때문에(ssl 문제로 perl module 빌드에러…) 올려서 써봤는데, 가볍게 쓰기엔 나쁘지 않은 것 같네요.

p0wn-box 입니다.

p0wn-box

유명한 프로젝트는 아니지만, 필요한건 얼추 있습니다. https://github.com/Nitr4x/p0wn-box

john~p0f, sqlmap, dotdotpwn 등등 대략 20개 정도 툴 세팅이 되어 있습니다.

* dirb
* john
* p0f
* patator
* dotdotpwn
* enum4linux
* dnsenum
* smtp-user-enum
* hydra
* wpscan
* snmpcheck
* wafw00f
* medusa
* hping3
* crunch
* setoolkit
* metasploit
* httrack
* SQLmap
* nmap
* SSLscan
* joomscan
* theharvester
* tcpdump
* openvpn
* nikto
* telnet
* proxychains
* htop
* DNS SOCKS Proxy

물론 별일 없으면 칼리 도커 이미지 쓰시는게 훨씬 편합니다. 다만 칼리 도커 이미지 아주 무겁습니다. (그놈이 용량 떄문에 지우다가 날려먹었쬬…, https://www.hahwul.com/2018/08/docker-no-space-left-on-device-in-macos.html )

Docker build & Troubleshooting

다른 툴이랑 거의 비슷한데, 에러나는게 있어서 약간 수작업 필요합니다.

p0wn-box repo에서 클론받습니다.

#> git clone https://github.com/Nitr4x/p0wn-box
#> cd p0wn-box

해당 디렉토리 하위에 Dockerfile 있는거보니 바로 build 해줍시다.

다만, 바로하면 아래와 같이 에러날겁니다. (아래부터 보고 진행해주세요.. build 중간에 실패하는거라 이미지 용량은 잡힙니다. 혹여나 실행해서 에러를 보셨다면 docker rmi로 쓸데없는 이미지만 지워주도록 합니다.)

원본 코드 패치되서 아마 바로 될겁니다. 혹시나 에러나면 아래 참고해주세요

#> docker build -t pwn .

에러발생

Err http://repo.kali.org kali-rolling/main Sources
  403  Forbidden
Err http://repo.kali.org kali-rolling/non-free Sources
  403  Forbidden
Err http://repo.kali.org kali-rolling/contrib Sources
  403  Forbidden
Err http://repo.kali.org kali-rolling/main amd64 Packages
  403  Forbidden
Err http://repo.kali.org kali-rolling/non-free amd64 Packages
  403  Forbidden
Err http://repo.kali.org kali-rolling/contrib amd64 Packages
  403  Forbidden

내용을 보면 kali쪽 Repo 주소가 403으로 떨어지는데, 이건 kali쪽 repo 주소 변경이 있어서 그렇습니다. 아직 반영안된 옛날 코드이지요.

그래서 그 부분만 수정해서 pull 하려했더니 이미 pull req가 있었네요. https://github.com/Nitr4x/p0wn-box/pull/19

초안 써둘때만 해도 반영 안되었었느넫, 방금 확인해보니 접수 받은듯 합니다 !! (그럼 아래 내용을 볼 필요가 없다는 이야기..)

아무튼 내용은 내용이니 작성하겠습니당.

저 부분은 Dockerfile에서 apt source.list 파일을 추가해주고 있는데 그 부분 주소만 바꿔주면 해결됩니다.

[-] : 삭제 [+] : 추가

Docker file

# Adding Kali repository
[-] RUN echo 'deb http://repo.kali.org/kali kali-rolling main non-free contrib' >> /etc/apt/sources.list
[-] RUN echo 'deb-src http://repo.kali.org/kali kali-rolling main non-free contrib' >> /etc/apt/sources.list
[+] RUN echo 'deb http://http.kali.org/kali kali-rolling main contrib non-free' >> /etc/apt/sources.list
[+] RUN echo 'deb-src http://http.kali.org/kali kali-rolling main contrib non-free' >> /etc/apt/sources.list

RUN gpg --keyserver pgpkeys.mit.edu --recv-key ED444FF07D8D0BF6
RUN gpg -a --export ED444FF07D8D0BF6 | apt-key add -

수정하고 다시 빌드하면 잘 됩니다 :)

#> docker build -t pwn. 
#> docker images
REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
pwn                                                   latest              87164bb32fc4        20 seconds ago      2.48GB

이제 이미지를 올려봅시다.

#> docker run -td -p 0.0.0.0:9990-9999:9990-9999 -v ~/p0wnM3/:/tmp/data --name pwn pwn
9ee5fa668f345623fe16f53da6ab655ec09a984585ac02cbee4028b32e8cc601

ps로 컨테이너 id 확인하고, exec로 쉘로 진입합니다.

#> docker ps
CONTAINER ID        IMAGE                                                 COMMAND                  CREATED             STATUS              PORTS                                                                                                        NAMES
9ee5fa668f34        pwn                                                   "bash"                   15 seconds ago      Up 14 seconds       0.0.0.0
#> docker exec -it 9ee5fa668f34 /bin/bash

툴은 미리 다 깔려있으니 필요한거만 사용하시면 됩니다.

root@9ee5fa668f34:/tmp/data#

root@9ee5fa668f34:/tmp/data# ls /usr/sbin/ | grep "john\|dotdot\|hping\|p0f"
dmg2john
dotdotpwn
dotdotpwn.pl
gpg2john
hccap2john
hping3
john
keepass2john
keychain2john
keyring2john
kwallet2john
p0f
pfx2john
putty2john
pwsafe2john
racf2john
rar2john
ssh2john
zip2john

etc...