YeoPEVA
칼리리눅스 DVWA 환경 구축 본문
오늘은 우리 OWASP 에서 제공하는 DVWA 라는 웹 취약점 테스트 해보라고 주는 환경을 한번 구현해보도록 하겠다
[물론 1인은 웹 해킹에 대해 전-혀 모른다]
여튼, 구축을 시작하기 전에 준비물은 아래와 같다.
vmware or player [vmware] 설치만 하면.. 문제는 없을듯하다.
주의할 점이라고 한다면, 여기서는 구축을 중점으로 하기에 vmware 사용법이나 명령어에 대해
자세히 파고 들지 않는다는 점을 기억해주길 바란다.
위 준비물이 다 갖춰졌다면, 이제 한번 구축을 시작해보도록 하자.
말이 좀 딱딱한 점은 양해 부탁한다.
ps 1. 그리고 진행하다가 보면 ip가 바뀌는데 작업 환경을 왔다 갔다 해서 그렇다. 양해 부탁한다.
ps 2.dvwa 인데, dvma라고 한건, 철자 실수 인 것 같다. 단, dvma라고 해도 문제는 없으니, 아래와 같이 dvma로 진행 해도 상관 없고, dvwa 라고 해도 무방하다.
1. 칼리리눅스 iso로 직접 설치 or vmware 구축 환경을 먼저 구하러 가자.
먼저 칼리리눅스 사이트로 접속을 하도록 하자.
참고로, 우리는 iso를 통해 설치 과정을 거치는게 아닌, 칼리리눅스에서 제공하는 이미지 파일을 받아, 사용할 예정이다.
[그림 1 - 칼리리눅스 사이트]
위 사이트에서 다운로드를 클릭하거나 조금만 화면을 내리면 다운로드라는 글귀가 나오니, 이동하여 다운로드를
진행하도록 하자.
[그림 2 - 칼리리눅스 iso]
[그림 3 - 칼리리눅스 가상 환경 ]
여기서 KALI VIRTUAL IMAGES를 클릭해서 다운로드 해주자. 그러면 32bit, 64bit를 선택할 수 있을텐데,
이번 강좌에서는 64bit를 통해 구축을 진행할 예정이니 이왕이면 똑같은 64bit를 사용해주길 바란다.
만약 나중에 시간적 여유가 있다면, 칼리 설치를 직접 해보는걸 추천해본다. 나름 설치 하면서 가져갈 수 있는 지식이
많은편이다.
2. 이제 iso로 직접 설치나, vmware 구축 환경을 구했으니, DVWA 구축을 진행해보자.
여기서는 이미 설치가 완료된 칼리를 사용한다. [사이트 제공]
그러므로, 설치 과정은 넘어가도록 하겠다.
[그림 4 - 칼리 리눅스 vm을 선택했을 경우]
이제 한번 미리 구축된 환경에 DVWA 구축을 시작해보도록 하자.
초기 비밀번호는 root | toor 이라는 점, 기억하자. [위 구축 환경 사용시]
[구동시 가상 머신의 사양은 각자 컴퓨터 사양에 맞게 설정하길 바란다.]
[네트워크 설정은 NAT이나 bridge 로 주고, 나중에 구축이 끝난 뒤 Host-only를 사용하면 될듯 하다.]
[그림 5 - 칼리리눅스 구동]
칼리 리눅스를 시작한 화면이다. 이제 구축을 시작해보도록 하자. 먼저 구축을 하기 위해 dvwa 파일을 받을 필요가 있다. 밑의 링크로 가보도록 하자. [참고로, 브라우저는 맨왼쪽 아이콘 들 중, 맨 상위 아이콘이다 - 파이어 폭스]
[그림 6 - 파이어폭스 시작]
여기서 이제 dvwa 사이트로 이동하도록 하겠다. http://www.dvwa.co.uk/ 로 가주도록 하자.
[그림 7 - dvwa 사이트]
성공적으로 dvwa 사이트에 들어왔다. 이제 밑에 보이는 다운로드 버튼을 클릭해주도록 하자.
[그림 8 - dvwa 파일 다운로드]
우리는 파일을 열게 아니라, save를 통해 저장을 해야하니, save를 선택해주고 ok로 넘어가도록 하자.
이제 파일을 받았으니 본격적인 구축을 시작하면 될듯하다. 이제 터미널을 열어보도록 하자.
[그림 9 - 터미널 | 업데이트 진행]
진행하기 전에, 먼저 칼리를 업데이트 해주도록 하자. apt-get update | apt-get upgrade를 통해 가능하다.
[그림 10 - 터미널 | 받은 파일 압축 해제]
이제 받은 파일을 압축 해제 해보도록 하자. 먼저 root의 다운로드 풀더로 들어가 unzip을 통해
파일의 압축을 풀어주면 된다. 명령어는 아래와 같으니 참고 바란다.
cd /root/Downloads
unzip DVWA-master.zip
[그림 11 - 터미널 | dvwa 파일, 웹서버 쪽으로 이동]
이 표현이 맞는지는 모르겠지만, dvwa 파일들을 웹서버 쪽으로 옮기도록 하자.
경로는 /var/www/html/dvma이다.
명령어는 아래와 같으니 참고 바란다.
cp -r DVWA-master /var/www/html/dvma
cd /var/www/html/dvma
[그림 12 - 터미널 | 권한 설정 | dvma 디렉토리]
이제 우리가 옮긴 디렉토리에 권한을 주도록 하자.
명령어는 아래와 같으니 확인 해보도록 하자.
chmod -R 755 /var/www/html/dvma
ls -l
[그림 13 - 터미널 | 아파치2 서버 및 mysql 시작]
위 명령어로 이제 아파치2와 mysql을 구동시켜주자.
그러면 이제 웹으로 접속이 가능할 것이다.
이제 ifconfig를 통해 ip를 알아내고, ip를 통해 vm이 아닌 호스트 컴퓨터에서 접속을 시도해보자.
service apache2 start && service mysql start
ifconfig
[그림 14 - 아파치2 서버 및 정상 작동]
접속이 가능한 걸 보니, 문제는 없었나 보다. 그러면 이제 위 주소에 /dvma [or 디렉토리 이름] 을 넣어주고
접속을 시도해보도록 하자.
3. 이제 오류들을 하나씩 정리하면서 해결해보자.
이제 뒤 과정부터는 구축하면서 발생한 오류나, 해결해야할 오류들을 살펴보면서 그에 대해 해결해보도록 하겠다.
[그림 15 - 1차 오류 ]
dvwa[현 디렉토리 이름은 dvma라고 설정했음] 쪽으로 접속을 해보니 오류가 발생했다.
읽어보니 config 쪽에 문제가 있는 것 같다. 문제는 이러하다. config.inc.php.dist 파일은 있는데 현재 config.inc.php 파일이 없어서 오류가 발생한 것이다.
다시 vm으로 가서 이 문제를 해결해주도록 하자.
[그림 16 - 1차 오류 fix]
그리 어렵지 않다. cp 명령어를 통해 config.inc.php.dist 파일을 복사해, config.inc.php를 만들어주면 된다.
cd /var/www/html/dvma/config
cp config.inc.php.dist config.inc.php
그럼 1차 오류는 일단 해결이 된다. 다시 접속을 시도해보자
[그림 17 - 2차 오류 ]
2번째 오류이다. 이번에는 setup check에 많은 빨간색 글씨가 보이며.. db랑도 뭔가 문제가 발생한 듯하다.
먼저 db 문제를 해결하기 전에, Setup Check에서 빨간색 줄로 되있는 부분을 해결해보도록 하자.
[그림 18 - 2차 오류 세부적 ]
확인해보니, php function 쪽과 reCAPTCHA key 가 없고, 밑 경로에 권한이 없는 듯 하다 [밑 출처에서 참고]
그리고 맨 밑에 unable to connect to the database 라는 오류는 먼저 빨간색 줄을 해결하고 다루도록 하겠다.
[그림 19 - php 오류 해결 (파일 찾기) ]
먼저 PHP 관련 오류를 해결 해 보자. 이 점은 allow_url_include 를 off 로 설정해둬서
그런 것 같다. 일단 나 같은 경우 위 3파일 모두 off를 on으로 설정해주었다.
[그림 20 - 오류 해결 1 ]
vi 을 통해 위 파일들에 들어 간 다음 '/' 을 통해 allow_url_include 를 검색,
off를 on으로 바꿔주면 된다.
[그림 21 - 오류 해결 2]
/var/www/html/dvma 에 있는 php.ini 파일도 위와 같이 수정해주자
[그림 22- 오류 해결 -php ]
그럼 일단 php 함수 관련 오류는 해결이 된다.
위 설정을 마치고 밑에 그 하단에 발생했던
/var/www/html/dvma/hackable/uploads
/var/www/html/dvma/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt 는 권한 문제이다.
아래와 같이 권한 설정을 해주길 바란다.
chmod 777 /var/www/html/dvma/hackable/uploads
chmod /var/www/html/dvma/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
로 주면 이제 해결이 될 것이다.
[그림 23- 2차 오류 일부 해결 ]
그럼 이제 상단에 있는 reCAPTCHA key 문제를 해결해보자.
먼저 아래의 사이트로 접속하도록 하자.
https://www.google.com/recaptcha/intro/android.html
여기서 상단에 있는 get reCAPTCHA 클릭해주자.
[그림 24- reCAPTCHA 키 발급 과정 1 ]
이제 여기서 Register 버튼을 누르게 되면 아래와 같은 창이 뜨게 된다.
[그림 25- reCAPTCHA 키 발급 과정 2]
이렇게 체크를 마친 다음 register를 눌러주자.
[그림 26- reCAPTCHA 키 발급 과정 완료]
이렇게 키가 발급되었다. 그럼 이제 이 키를 config.inc.php 에다가 입력 해주면 된다.
[그림 27- reCAPTCHA 키 config 입력]
이제 키를 config.inc.php에다가 입력해준 다음, 다시 웹페이지에 접속을 시도해보자.
[그림 28- reCAPTCHA 에러 해결]
이렇게 reCAPTCHA 에러가 해결되었다. 그럼 이제 Create/Reset Database 버튼을 통해
마무리를 하도록 하자.
[그림 29- 3번째 오류 발생]
... 그러나, Create/Reset Database를 누를려고 하니, mysql에 관한 오류가 뜬다.
이 오류를 먼저 해결하도록 하자.
[그림 30- mysql DB 접속 및 설정 1]
mysql DB에 접속해준 다음, dvwa db와 user를 만들어주자.
create database dvwa;
grant all on dvwa.* to dvwa@localhost identified by 'dvwauser';
flush privileges;
[그림 31- DB 유저 비밀번호 변경]
위 설정을 마치고 나서, dvwa의 비밀번호를 바꿔주자.
use mysql;
show tables;
select user,password from user;
[그림 32 - 비밀번호 변경 2]
select user,password from user;
update user set password=password('p@ssw0rd')where user='dvwa';
select user,password from user;
를 통해 비밀번호를 변경한 다음, exit를 통해 나가주자.
[그림 33- config 설정 마무리]
이제 db_user를 dvwa로 바꿔주고 위와 같이 설정을 맞춰주자.
위와 같이 설정을 마쳤다면, mysql을 재시작 해주자.
service mysql restart
그 후 접속하게 되면
[그림 34- 성공]
로그인 창이 뜬다.
초기 아이디와 비밀번호는 아래와 같으니
입력하고 로그인을 시도해보자.
admin/password
[그림 35- DB create 체크]
setup check 창이 떠도, 당황하지 않고, 밑에 있는 버튼을 눌러주면 된다.
그럼 이때까지 뜨지 않았던 바들이 차라라락 뜨면서
login을 하라고 한다.
[그림 36- 진짜 성공]
이제 성공적으로 구축이 완료됬다. 이 긴 글을 읽어주신 여러분께 감사의 말을 올린다.
이제 웹해킹의 세계로 다시 빠져들어 보길 바란다.
[물론 나는 제외다]
참고 문헌 및 사이트
dvwa 설치 | centos 기반
http://ryusful.com/tech-system/dvwa-installation/
칼리 리눅스를 이용한 dvwa 설치
http://chachainforsec.tistory.com/6
github dvwa 설정 관련 readme
https://github.com/ethicalhack3r/DVWA/blob/master/README.md
스택오버플로우 | dvwa 관련 답변
https://stackoverflow.com/questions/34274492/dvwa-setup-php-function-allow-url-include-disabled
캡처 - shutter 프로그램 사용