OpenVAS*the most popular(i.e. free) penetration test tool for

OpenVAS —A how-to guide
about the most popular
vulnerability test tool
Team Members: Yingchao Zhu; Chen
Qian; Xingyu Wu; XuZhuo Zhang;
Igibek Koishybayev;
1
EC521: Cybersecurity OpenVAS
The objective: Lab generation
The objective of this project is to:
• Learn in detail about OpenVAS
• Give a presentation about OpenVAS to the
class(what we are doing now)
• Design an around 20-minute lab/tutorial making
use of this tool
We will also provide a solution manual for our
lab/tutorial.
2
EC521: Cybersecurity OpenVAS
An overview to OpenVAS
The Open Vulnerability Assessment Scanner known
more commonly as OpenVAS, is a suite of tools that
work together to run tests against client computers
using a database of known exploits and weaknesses.
The goal is to learn about how well your servers are
guarded against known attack vectors.
3
EC521: Cybersecurity OpenVAS
OpenVAS Architecture
4
EC521: Cybersecurity OpenVAS
OpenVAS Modules
Modules
•
•
•
•
•
•
Relevant Commands
OpenVAS-Scanner: openvassd
openvas-mkcert
openvas-nvt-sync
OpenVAS-Manager: openvasmd
OpenVAS-Client:
openvas-cli
Greenbone-Security-Assistant: it is an web
interface
5
EC521: Cybersecurity OpenVAS
Several significant commands
•
•
•
•
•
openvas-setup
openvas-check-setup
openvas-nvt-sync
openvassd --help for more imformation
openvasmd --help for more imformation
Reference: http: //www.openvas.org/setup-and-start.html
https://www.digitalocean.com/community/tutorials/how-to-useopenvas-to-audit-the-security-of-remote-systems-on-ubuntu-12-04
6
EC521: Cybersecurity OpenVAS
7
EC521: Cybersecurity OpenVAS
Environment Build-up procedure
• Build up the working environment
• Kali linux OS(set up on virtual machine)
• Install OpenVAS in Kali linux
• Use ‘openvas-check-setup’ to check the
Installation
• OpenVAS Mkcert (process to create certificate
of SSL) , this is a very important step!
• NVT synchronization: openvas-nvt-sync
• Start OpenVAS Scanner
EC521: Cybersecurity OpenVAS
9
Environment Build-up procedure
• Start OpenVAS Manager
• Use ‘OpenVAS-mkcert-client –n om –I’ to create
certificate for OpenVAS Manager
• Create admin/user for GSA web client:
openvasad -c add_user -n admin -r Admin
• openvasmd –rebuild
• openvasmd –p 9390 –a 127.0.0.1
10
EC521: Cybersecurity OpenVAS
Environment Build-up procedure
• Openvasad –a 127.0.0.1 –p 9393
• Ogsad –http-only –listen=127.0.0.1 –p 9392
Congratuations!!
• GSA location: https://localhost:9392
• Open it by web browser you will be very likely to
see the next slide’s picture
11
EC521: Cybersecurity OpenVAS
I am not a
bad guy
12
EC521: Cybersecurity OpenVAS
Question: How to perform a
normal scan with OpenVAS?
13
EC521: Cybersecurity OpenVAS
Target -- XAMPP
XAMPP's name is an acronym for:
X (to be read as "cross", meaning cross-platform)
Apache HTTP Server
MySQL
PHP
Perl
It is a completely free, easy to install Apache
distribution containing MySQL, PHP, and Perl.
Reference: https://www.apachefriends.org/index.html
http://en.wikipedia.org/wiki/XAMPP
EC521: Cybersecurity OpenVAS
14
Set a target
15
EC521: Cybersecurity OpenVAS
Create a task
16
EC521: Cybersecurity OpenVAS
Get the result
17
EC521: Cybersecurity OpenVAS
Question: What is NASL
Language?
18
EC521: Cybersecurity OpenVAS
NASL Language
NASL is a scripting language designed for the Nessus
security scanner. Its aim is to allow anyone to write a
test for a given security hole in a few minutes, to allow
people to share their tests without having to worry about
their operating system, and to guarantee everyone that a
NASL script can not do anything nasty except
performing a given security test against a given target.
Reference: http://virtualblueness.net/nasl.html
EC521: Cybersecurity OpenVAS
19
NASL Plugin
How to write and implement our own plugins?
• Copy our plugins to OpenVAS plugin directory:
/var/lib/openvas/plugins
• Load plugins :
openvassd
• rebuild the library
openvasmd –rebuild
If you want to attach signature and certificate for your plugin
Please refer to: http://www.openvas.org/trusted-nvts.html
EC521: Cybersecurity OpenVAS
20
Webmail Vulnerability
& OpenVAS Plugins
21
EC521: Cybersecurity OpenVAS
Webmail Vuln. & OpenVAS Plugins
Content
1. Webmail environment
2. Vulnerability tests
3. Insert your plugins
22
EC521: Cybersecurity OpenVAS
Webmail Vulnerability
Mail Server Set-Up Environment (Local)
OS
: CentOS-6.5
SMTP
: Postfix-2.6 + Sasl
IMAP/POP3
: Dovecot-2.0
Web
: Apache-2.2
Webmail
: Openwebmail-2.30 (perl)/
[Squirrelmail-1.4.22 (php)]
localhost/cgi-bin/openwebmail/openwebmail.pl
EC521: Cybersecurity OpenVAS
23
24
EC521: Cybersecurity OpenVAS
OpenVAS Plugins
Network Vulnerability Tests (NVTs)
25
EC521: Cybersecurity OpenVAS
OpenVAS Plugins
NVTs
The OpenVAS project maintains a public feed of more than
35,000 NVTs (as of April 2014)
Command openvas-nvt-sync for online-synchronisation
from the feed service.
Based on NASL scripts
(Nessus Attack Scripting Language)
EC521: Cybersecurity OpenVAS
26
OpenVAS Plugins
Location: /var/lib/openvas/plugins
Security Tools INTERGRATED:
Portscanner: NMAP, pnscan, strobe
IPsec VPN scanning&fingerprinting: ike-scan
Web server scanning: Nikto
OVAL Interpreter: ovaldi
web application attack and audit framework: w3af
……
27
EC521: Cybersecurity OpenVAS
OpenVAS Plugins
NVTs Selection
28
EC521: Cybersecurity OpenVAS
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
include("revisions-lib.inc");
tag_summary = "The remote webmail server is affected by a cross-site scripting flaw.
OpenVAS Plugins
Description :
The remote host is running at least one instance of Open WebMail that
fails to sufficiently validate user input supplied to the 'logindomain'
parameter. This failure enables an attacker to run arbitrary script
code in the context of a user's web browser.";
tag_solution = "Upgrade to Open WebMail version 2.50 20040212 or later.";
if (description) {
script_id(16463);
script_version("$Revision: 17 $");
script_tag(name:"last_modification", value:"$Date: 2013-10-27 15:01:43 +0100 (Sun, 27 Oct 2013) $");
script_tag(name:"creation_date", value:"2005-11-03 14:08:04 +0100 (Thu, 03 Nov 2005)");
script_tag(name:"cvss_base", value:"4.3");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:M/Au:N/C:N/I:P/A:N");
script_tag(name:"risk_factor", value:"Medium");
script_cve_id("CVE-2005-0445");
script_bugtraq_id(12547);
script_xref(name:"OSVDB", value:"13788");
name = "Open WebMail Logindomain Parameter Cross-Site Scripting Vulnerability";
script_name(name);
desc = "
Summary:
" + tag_summary + "
Solution:
" + tag_solution; script_description(desc);
summary = "Checks for logindomain parameter cross-site scripting vulnerability in Open WebMail";
script_summary(summary);
script_category(ACT_ATTACK);
script_copyright("This script is Copyright (C) 2005 George A. Theall");
family = "Web application abuses";
script_family(family);
script_dependencies("openwebmail_detect.nasl");
script_require_ports("Services/www", 80);
if (revcomp(a: OPENVAS_VERSION, b: "6.0+beta5") >= 0) {
script_tag(name : "solution" , value : tag_solution);
script_tag(name : "summary" , value : tag_summary);
}
script_xref(name : "URL" , value : "http://openwebmail.org/openwebmail/download/cert/advisories/SA-05:01.txt");
exit(0);
}
include("global_settings.inc");
include("http_func.inc");
include("http_keepalive.inc");
port = get_http_port(default:80);
if (!get_port_state(port)) exit(0);
EC521: Cybersecurity OpenVAS
29
OpenVAS Plugins
Insert Plugins (with certification)
1. script.nasl
2. # openvas-nasl -X script.nasl (insert without cert)
3. # vim /etc/openvas/openvassd.conf
nasl_no_signature_check = no
4. Key generation
# wget http://www.openvas.org/OpenVAS_TI.asc
# gpg --homedir=/etc/openvas/gnupg --import
OpenVAS_TI.asc
EC521: Cybersecurity OpenVAS
30
OpenVAS Plugins
Insert Plugins (with certification)
5. Set Trust
6. Detach Signature
# gpg --homedir=/etc/openvas/gnupg/ --detach-sign -a -o
script.nasl.asc script.nasl
7. Add Certificate
# gpg --homedir=/etc/openvas/gnupg --import script.nasl.asc
8. Parse & Execute
# openvas-nasl –p –t script.nasl
Load Scanner & Rebuild Manager
EC521: Cybersecurity OpenVAS
31
Openwebmail Vulnerbilities
32
EC521: Cybersecurity OpenVAS
Webmail Vuln. & OpenVAS Plugins
References
Openwebmail: http://www.openwebmail.org/
Online Demo: http://openwebmail.amcpl.net/
NVT Signature: http://www.openvas.org/trusted-nvts.html
33
EC521: Cybersecurity OpenVAS
Web Application (Blackboard)
34
EC521: Cybersecurity OpenVAS
DEMO: Web Application (Blackboard)
Description: Blackboard is the web application
used by students to post their homework
solutions, which vulnerable to XSS and CSRF
attack.
35
EC521: Cybersecurity OpenVAS
DEMO: Web Application (Blackboard)
Story on behalf: You (hacker) don’t know
solution to the homework and want to steal the
solutions from others. Also you want to steal
final exam questions from teacher in a such way
that no one will find out that it was you. (i.e. like
a ninja)
36
EC521: Cybersecurity OpenVAS
DEMO: Web Application (Blackboard)
Mission:
1. Steal the solutions from “nerd”;
2. Make “badguy” to steal final exam q/a for
you;
3. Be the smartest guy (ninja, hacker) in the
class;
37
EC521: Cybersecurity OpenVAS
DEMO: Web Application (Blackboard)
Wait a minute…where is OpenVAS???
We will make security assessment on our web
application using OpenVAS. (in near future)
38
EC521: Cybersecurity OpenVAS
Metasploitable 2
Designed by HD Moore, Now owned by Rapid 7
(To test their well-known tool metasploit, for free)
A special version of Ubuntu Linux 8.0.4
A target machine with many built-in
vulnerabilities
A good platform to conduct security training, test
security tools, and practice common penetration
testing techniques.
39
40
Vulnerbilities
Apache 2.2.8, Tomcat Password , Samba NDR Parsing,
Heap Overflow, BIND libbind inet_network(), PHP
5.2.12, 5.2.6, 5.2.8, PHP Fixed security issue, VNC
password is "password“, Samba 'reply_netbios_packet'
Nmbd Buffer Overflow, cve-2012-1667, HTML Output
Script Insertion XXS, Key algorithm rollover bug,
DNS service BIND 9.4.2, MySQL 5.0.51a and so on…
About 135 in All. 40 are critical vulnerabilities!
41
List
42
OpenVAS Scan Report
Sadly not as much result as it should be. (Using the full ultimate scan) .
Some NVTs don’t have the full function as the original program or CVE.
43
A Brief Example
We can use this vulnerability to remote login into the target as the root, and execute shell
commands using the rsh-client servise.( In Kali Linux, apt-get install rsh-client.)
44
Nmap NVT port scan
No result in the Openvas NVT Nmap feed. It can’t list all the open ports while using the nmap
in kali, we can get the full result.
All the open ports are printed out in nmap as well
as their protocol or function. NVT can’t take the
place of the original program.
45
Remote Login
TCP ports 512 is known as "r" services, and have been misconfigured to allow
remote access from any host (a standard ".rhosts + +" situation).Fisrt, install rshclient. Then type in rlogin -l root 192.168.99.131, so…
46
Do something bad
Since we are SSH with the remote target, why not generate
the SSH (as we did in homework), so next time we can
access unlimitedly!
47
NVT Behind
Use OID To look for the NVT and more information with it
48
NVT Behind
include("revisions-lib.inc"); //
include("misc_func.inc"); //
port = get_kb_item("Services/rexecd"); //
if(!port)port = 512; //
//username is a string consist of 260 “x”
rexecd_string = string(raw_string(0), username, raw_string(0), "xxx",
raw_string(0), "id", raw_string(0)); //
soc = open_sock_tcp(port); //
send(socket:soc, data:rexecd_string); //
buf = recv_line(socket:soc, length:4096); //
if(ord(buf[0]) == 1 || egrep(pattern:"too long", string: buf)) //
register_service(port:port, proto:"rexecd"); //
security_warning(port:port, protocol:"tcp"); //
49
NVT Structure
# OpenVAS Vulnerability Test //
# $Id$ //
# Description: [one-line-description] //
(copyright and writer information)
if(description) //
script_oid(FIXME); # see http://www.openvas.org/openvas-oids.html
//
script_version("$Revision$"); # leave as is, SVN will update this //
…
include("FIXME.inc"); # in case you want to use a NASL library
# FIXME: the code. //
50
Nessus VS. Openvas
51
Lab Generation
Webmail
BlackBoard
Metasploitable
52
EC521: Cybersecurity OpenVAS
Questions?
53
EC521: Cybersecurity OpenVAS
Study collections