웹 해킹 연습을 위해 아무 사이트나 해킹하는 것은 엄연한 불법이다.
하지만 그렇다고 해서 연습을 안 할 수는 없는 법. 이 때 사용하는 것이 DVWA이다.
DVWA(Damn Vulnerable Web Application)은 웹 보안 교육을 위해 만든 오픈 소스 웹 어플리케이션이다.
DVWA는 일부러 보안이 취약한 홈페이지를 제공하는데 학습자는 직접 해킹을 해 보기도 하고 보안 방법을 연습할 수도 있다.
또한 보안 레벨을 Low, Medium, High, Impossible 네 단계로 설정할 수 있어 난이도를 높여가며 실력을 키울 수 있다.
오늘은 Rocky Linux에 DVWA를 설치해 볼 것이다.
사용 장비 : Macbook Pro M1 2021
가상머신 : Vmware Fusion
OS : Rocky Linux 9
1. Apache 설치하기
편의상 root 계정으로 설치하였다.
[root@localhost ~]# dnf install -y httpd
아파치를 설치한다. 인스톨 할 때 옵션 -y를 넣으면 설치 중 yes를 물어보는 질문을 자동으로 넘어간다.
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
설치 후 아파치를 실행시킨다.
2. php 설치하기
[root@localhost ~]# dnf install -y php php-mysqli php-gd php-xml php-mbstring
php는 설치할 것이 많다. 오타가 나지 않게 조심하자.
[root@localhost ~]# systemctl restart httpd
php를 설치했으니 아파치를 재실행한다.
3. mariadb 설치하기
[root@localhost ~]# dnf install -y mariadb-server
mariadb를 설치한다.
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
설치가 완료되었으면 mariadb를 실행한다.
4. mariadb에서 DVWA용 데이터베이스 생성하기
[root@localhost ~]# mysql -u root -p
mariadb를 실행한다. 초기 패스워드는 설정되어 있지 않기 때문에 패스워드를 물어보면 그냥 엔터를 입력하면 된다.
MariaDB [(none)]> CREATE DATABASE dvwa;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> CREATE USER 'dvwauser'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwauser'@'localhost';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> EXIT;
5. DVWA 설치
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# git clone https://github.com/digininja/DVWA.git
bash: git: command not found...
Install package 'git-core' to provide command 'git'? [N/y] y
* Waiting in queue...
* Loading list of packages....
The following packages have to be installed:
git-core-2.43.0-1.el9.aarch64 Core package of git with minimal functionality
Proceed with changes? [N/y] y
* Waiting in queue...
* Waiting for authentication...
* Waiting in queue...
* Downloading packages...
* Requesting data...
* Testing changes...
* Installing packages...
'DVWA'에 복제합니다...
remote: Enumerating objects: 4590, done.
remote: Counting objects: 100% (140/140), done.
remote: Compressing objects: 100% (103/103), done.
remote: Total 4590 (delta 58), reused 101 (delta 36), pack-reused 4450
오브젝트를 받는 중: 100% (4590/4590), 2.34 MiB | 23.52 MiB/s, 완료.
델타를 알아내는 중: 100% (2153/2153), 완료.
ls를 입력해 폴더를 확인해 보면 성공적으로 설치된 것을 볼 수 있다.
[root@localhost html]# ls
DVWA
6. DVWA 설정 파일 수정
[root@localhost html]# cd DVWA
[root@localhost DVWA]# cp config/config.inc.php.dist config/config.inc.php
config.inc.php파일을 열어 아래 설정을 추가하자.
[root@localhost DVWA]# vi config/config.inc.php
$_DVWA = array();
$_DVWA[ 'db_server' ] = 'localhost';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwauser';
$_DVWA[ 'db_password' ] = 'password';
$_DVWA[ 'db_port'] = '3306';
7. apache 권한 설정
[root@localhost DVWA]# chown -R apache:apache /var/www/html/DVWA/
[root@localhost DVWA]# chmod -R 755 /var/www/html/DVWA/
8. php 설정 파일 수정
php.ini 파일을 열어 아래대로 설정을 변경한다.
[root@localhost DVWA]# vi /etc/php.ini
allow_url_fopen = On
allow_url_include = On
display_errors = Off
설정을 마쳤으면 아파치를 재시작한다.
[root@localhost DVWA]# systemctl restart httpd
9. 방화벽 설정변경
http 서비스를 차단하지 않도록 방화벽을 설정한다.
방화벽을 해제하지 않으면 localhost에서는 접속이 가능하나 외부에서는 접속이 불가능하다.
[root@localhost DVWA]# firewall-cmd --state
running
[root@localhost DVWA]# firewall-cmd --add-service=http --permanent
success
[root@localhost DVWA]# firewall-cmd --reload
success
10. DVWA 실행하기
접속 방법은 다음과 같다.
http://IP주소/DVWA
접속하면 다음과 같은 화면이 보인다.
로그인을 해 보자.
아이디와 패스워드는 아까 설정한 대로
admin과 password이다.
그러면 다음과 같은 화면이 나온다.
맨 아래 있는 Create / Reset Database 버튼을 클릭하면 본격적으로 DVWA가 실행된다.
이제 본격적으로 웹 해킹을 해 보자.
'모의 해킹' 카테고리의 다른 글
[웹 해킹] 3. SQL Injection 공격 (0) | 2024.06.28 |
---|---|
[웹 해킹] 2. DVWA 보안 난이도 조정하기 (0) | 2024.06.26 |
침해사고 발생시 체크해야 할 리눅스 log 파일 (0) | 2024.06.17 |
패킷 스니핑 세 번째_ARP Spooping 공격 (0) | 2024.05.30 |
패킷 스니핑 두 번째 - dsniff 사용하기 (0) | 2024.05.29 |