YeoPEVA

칼리리눅스 DVWA 환경 구축 본문

#WEB

칼리리눅스 DVWA 환경 구축

YeoPEVA 2017. 7. 15. 17:51

오늘은 우리 OWASP 에서 제공하는 DVWA 라는 웹 취약점 테스트 해보라고 주는 환경을 한번 구현해보도록 하겠다

[물론 1인은 웹 해킹에 대해 전-혀 모른다


여튼, 구축을 시작하기 전에 준비물은 아래와 같다.


vmware or player [vmware] 설치만 하면.. 문제는 없을듯하다. 


주의할 점이라고 한다면, 여기서는 구축을 중점으로 하기에 vmware 사용법이나 명령어에 대해 

자세히 파고 들지 않는다는 점을 기억해주길 바란다.


위 준비물이 다 갖춰졌다면, 이제 한번 구축을 시작해보도록 하자.


말이 좀 딱딱한 점은 양해 부탁한다. 


ps 1. 그리고 진행하다가 보면 ip가 바뀌는데 작업 환경을 왔다 갔다 해서 그렇다. 양해 부탁한다.

ps 2.dvwa 인데, dvma라고 한건, 철자 실수 인 것 같다. 단, dvma라고 해도 문제는 없으니, 아래와 같이 dvma로 진행 해도 상관 없고, dvwa 라고 해도 무방하다.  



1. 칼리리눅스 iso로 직접 설치 or vmware 구축 환경을 먼저 구하러 가자. 


https://www.kali.org/  


먼저 칼리리눅스 사이트로 접속을 하도록 하자. 

참고로, 우리는 iso를 통해 설치 과정을 거치는게 아닌, 칼리리눅스에서 제공하는 이미지 파일을 받아, 사용할 예정이다. 


[그림 1 - 칼리리눅스 사이트]

위 사이트에서 다운로드를 클릭하거나 조금만 화면을 내리면 다운로드라는 글귀가 나오니, 이동하여 다운로드를 

진행하도록 하자.  

[그림 2 - 칼리리눅스 iso]

위에서 말했듯이, 우리는 이미 칼리 설치가 끝난, vm을 받아 사용할 예정이니, 이번 강의에선 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 프로그램 사용