OpenVAS 환경 구성
[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-sync
는 wget
으로 받을 수 있지만 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/