VScan Black Hat edition by Federico Massa - fmassa@vanguardsec.com - @fgmassa

Instalation of VScan on GNU Linux Debian 6:
-------------------------------------------

1. Download and extract VScan.

# tar -zxvf vscan-blackhat.tar.gz
# mv vscan-blackhat /var/www/
# chown www-data.www-data -R /var/www/vscan/
# chmod 755 -R /var/www/vscan/
# chmod 777 -R /var/www/vscan/cache/


2. Install VScan dependencies.

# apt-get install libapache2-mod-php5 php5-mysql mysql-server php5-curl


3. Create the VScan database.

# mysql -u root -p

create user 'vscan'@'%' identified by 'MYSQL_VSCAN_PASSWORD';
create database vscan;
grant all privileges on vscan.* TO 'vscan'@'%' with grant option;

# cd /var/www/vscan/data/
# mysql -uvscan -pMYSQL_PASSWORD --database vscan < structure.sql
# mysql -uvscan -pMYSQL_PASSWORD --database vscan < dataset.sql


4. Configure PHP.

# vim /etc/php5/apache2/php.ini

max_execution_time = 300
memory_limit = 512M
post_max_size = 8M


5. Configure Apache

# a2enmod ssl rewrite
# vim /etc/apache2/sites-available/default

SetEnv APPLICATION_ENV prod

DocumentRoot /var/www/vscan/public
<Directory />
  Options FollowSymLinks
  AllowOverride all
  Order allow,deny
  allow from all
</Directory>

<Location /cron_get_custom_reports.php>
  Order allow,deny
  allow from 127.0.0.1
</Location>

<Location /cron_get_reports.php>
  Order allow,deny
  allow from 127.0.0.1
</Location>

<Location /cron_run_scans.php>
  Order allow,deny
  allow from 127.0.0.1
</Location>

<Location /cron_run_custom_scans.php>
  Order allow,deny
  allow from 127.0.0.1
</Location>

<Location /webservices/vscan.php>
  Order allow,deny
  allow from 127.0.0.1
</Location>



5. Configure VScan.  

# vim /var/www/vscan/application/configs/application.ini

date.timezone = 'YOUR_TIME_ZONE'
resources.db.params.username = "vscan"
resources.db.params.password = "MYSQL_VSCAN_PASSWORD"
resources.db.params.dbname = "vscan"
ws.url = https://vscan.YOUR_HOST.com/webservices/vscan.php?wsdl
nessus.user = "NESSUS_USER";
nessus.password = "NESSUS_PASSWORD";
admin.email = 'YOUR_EMAIL'


5. Configure VScan Nessus WebService.

# vim /var/www/vscan/public/webservices/vscan.php

$application_path = "/var/www/vscan";
$nessus_server = "https://127.0.0.1:8834";
$username = "NESSUS_USER";
$password = "NESSUS_PASSWORD";


6. Download and install Nessus from http://www.tenable.com/.

# dpkg -i Nessus-5.0.3-debian6_i386.deb

Verify Nessus installation

# /opt/nessus/bin/nessus -qp localhost 1241 NESSUS_USER NESSUS_PASSWORD (choose 1 and Yes)

# vim /usr/local/bin/update_plugin_list.sh

user=NESSUS_USER
password=NESSUS_PASSWORD
plugin_list=/var/www/vscan/data/nessus_plugin_list

Upload in Nessus the two Nesssus policies located in /var/www/data/nessus_policy_VScanCustomScan.nessus and /var/www/data/nessus_policy_VScanFullScan.nessus


7. Configure Cron.

# vim /etc/cron.d/vscan

*/1 *   * * *   root    wget http://vscan.YOUR_HOST.com/cron_run_scans.php -O /dev/null > /dev/null
*/5 *   * * *   root    wget http://vscan.YOUR_HOST.com/cron_get_reports.php -O /dev/null > /dev/null
*/2 *   * * *   root    wget http://vscan.YOUR_HOST.com/cron_run_custom_scans.php  -O /dev/null > /dev/null
*/2 *   * * *   root    wget http://vscan.YOUR_HOST.com/cron_get_custom_reports.php -O /dev/null > /dev/null
00 22   * * *   root    /var/www/vscan/public/cron_get_plugins.sh  > /dev/null






