Others

OpenVAS 환경 구성

wrallee 2020. 6. 17. 21:59

[1] 환경 구성

OpenVAS는 오픈소스 기반 웹 취약점 점검 툴이다.

VirtualBox & Kali Linux 설치

보통 보안, 모의해킹 관련 OS로 Kali Linux를 활용한다고 한다. 공식사이트에서 다운받을 수 있지만 느리거나 할 경우 Mirror사이트에서 받으면 생각보다 빨리 받아진다. VirtualBox는 적당히 받는다.

kali-linux-2020.2-installer-i386.iso를 받았다.

VirtualBox에 대충 올려서 대충 설치하면 되는데 설치 시작하자마자 아래 오류가 뜬다면

설정 > 시스템 > 프로세서 > PAE/NX 사용하기 를 체크하면 된다.

This kernel requires the following features not present on the CPU:pae
Unable to boot - please use a kernel appropriate for your cpu

설치 중 필요에 따라 프록시도 설정해준다.
이후 설치가 완료되면 아래 명령을 순서대로 실행한다.

apt 최신화

$ sudo apt update
$ sudo apt upgrade
$ sudo reboot

[2] OpenVAS 설치

openvas 설치

$ sudo apt install openvas

openvas 자동 셋업

$ sudo openvas-setup

셋업은 꽤 오래걸리므로 느긋하게 기다려야 한다. 문제가 생기면 터미널에 출력되는 오류메시지를 참고하여 고친다. OS에 따라 다를 수 있으므로 되도록 리눅스 배포판과 버전을 맞추는 것이 좋다.

(Optional) admin 비밀번호 변경

셋업이 끝나면 admin 비밀번호가 무작위로 생성되는데, openvasmd --user=admin --new-password=abcdefg 명령으로 비밀번호를 변경할 수 있다(추후 웹 화면 로그인 시 필요).

openvas 시작

$ sudo openvas-start

openvas를 시작하게 되면 총 3개의 서비스가 정상적으로 구동되어야 한다. netstat -antp를 통해 listen 상태의 포트를 확인 가능하다. 추가로 아래 명령을 통해 서비스가 active (running)상태임을 확인한다.

$ sudo service openvas-scanner status
$ sudo service openvas-manager status
$ sudo service greenbone-security-assistant status

openvas 설치 확인

$ sudo openvas-check-setup

서비스가 제대로 구동되었는지 확인하는 명령어이다. 총 10가지 Step을 검사하며, 현재는 9버전 기준으로 설치되어 9버전으로 검사를 한다. 만약 다른 버전을 설치했다면 --v7, --v8 등의 옵션을 입력하여 적절한 기준으로 검사해야 한다.

터미널 로그 마지막에 아래 문장이 표시된다면 서비스 구동에 이상이 없는것이다.

...
It seems like your OpenVAS-9 installation is OK.

GSA(Greenbone Security Assistant) 접속

모든 확인이 끝났으면 https://127.0.0.1:9392로 접속하여 스캔을 시작하면 된다.

(Optional) GSA 접근 설정(IP, Host)

일반적으로 127.0.0.1 이외의 주소로 로그인이 불가한데, 아래와 같이 서비스 구동 옵션을 수정해주면 된다. listen ip는 0.0.0.0으로, 호스트 주소로 ip도 입력 가능하다.

$ sudo vi /lib/systemd/system/greenbone-security-assistant.service

...
[Service]
...
ExecStart=/usr/sbin/gsad --foreground --listen=0.0.0.0 --port=9392 --mlisten=0.0.0.0 --mport=9390 --allow-header-host my-host.com
...

이후 아래 명령을 실행시켜 반영한다.

$ sudo openvas-stop
$ sudo systemctl daemon-reload
$ sudo openvas-start

(Optional) greenbone-xxx-sync 수동 처리

네트워크 문제 때문에 sync가 실패할 수 있다. /usr/sbin/greenbone-nvt-sync를 열어보니 rsync라는 ssh 기반 프로토콜을 쓰는 듯 하다. nvt-syncwget으로 받을 수 있지만 scapdata, certdata는 역시 rsync가 필요하다.

사내망에서 22번 아웃바운드 규칙이 막혀있을 수 있는데, 조금 무식한 방법이지만 직접 받아서 풀어주면 제대로 동작한다.

정상 구동되는 환경에서 아래 명령어를 수행한다. 이후 대상 서버로 가서 /var/lib/openvas/에 풀어준다.

$ cd /var/lib/openvas/
$ sudo mkdir ~/Downloads/openvas-data
$ sudo cp -r plugins ~/Downloads/openvas-data/
$ sudo cp -r scap-data ~/Downloads/openvas-data/
$ sudo cp -r cert-data ~/Downloads/openvas-data/