Automated Penetration Testing with Nmap's New Scripting Engine

Total Page:16

File Type:pdf, Size:1020Kb

Automated Penetration Testing with Nmap's New Scripting Engine SYSADMIN Nmap Scripting SCANAutomated penetration testing with TIME Nmap’s new scripting engine Nmap is rolling out a new scripting engine to automatically investigate vulnerabilities that turn up in a security scan. We’ll show you how to protect your network with Nmap and NSE. BY ERIC AMBERG map is the tool of choice for pen- functions into custom scripts. Fyodor, expressions – a useful option for pen tes- etration testing [1]. Experts use the Nmap project leader, placed the de- ters who want to check existing vulnera- NNmap to search out security velopment of this scripting engine in the bilities by launching exploits. However, holes and scan for open network services. capable hands of Diman Todorov. The the developers point out that Nmap is But what happens when you find a prob- result is the Nmap Scripting Engine not looking to compete with the lem? Many administrators prefer to follow (NSE) [2], which has been an integral Metasploit framework [3]. up the discovery with additional tests. For part of Nmap since version 4.21. NSE provides an easy means for build- instance, if Nmap finds an http service, NSE extends the core functionality of ing automated solutions around Nmap. why not query to determine the web the Nmap scanner, providing detailed in- The NSE option works well for small to server version? formation on services such as NFS, SMB, mid-sized networks. Tools such as Nes- Thus far, administrators have written or RPC. You can also use NSE to search sus [4], GFI LANguard [5], or ISS Inter- their own scripts to parse Nmap output for active systems using domain look- net Scanner [6] might be better suited files – a slow and time-consuming pro- ups, Whois searches, or other source for large-scale scanning operations. You cess. The Nmap project recently decided network discovery techniques. To can download the NSE source code from it was time to introduce a scripting en- discover backdoors, NSE checks any the project server [1] or check out your gine so that users could automate Nmap version strings it detects against regular distributor’s repository for a binary. 68 ISSUE 87 FEBRUARY 2008 068-072_nmap-script.indd 68 13.12.2007 16:54:22 Uhr Nmap Scripting SYSADMIN NSE is built on the Lua interpreted NSE. The pre-built scripting language [7]. Lua is designed scripts attend to to work with software written in other common tasks Scanned Host languages, such as C or C++. Lua, often associated which is based on ANSI C, owes its flexi- with Nmap. For bility to the fact that most functions are example, if the available in the form of libraries. This scanner discovers approach makes it easy to extend the that TCP port 80 is functional scope by binding required open and if the Nmap modules. In addition, the Lua interpreter pre-built showHT- with Nmap Scripting Engine has a very small footprint; even commer- MLTitle.nse script cial games (including World of Warcraft) is available, a call rely on Lua. to the script is is- A Lua interpreter forms the core of sued. The script NSE (see Figure 1). When Nmap detects queries the web NSE Script Nmap API a host or port, it calls the Lua interpreter server’s front page with a matching script to leverage the and displays the abilities of the Lua language and Nmap- header (see Figure specific functions from the NSE library. 2). Several pre- The NSE library provides additional built scripts are Nmap-related features that Lua doesn’t available in /usr/ Lua Extensions offer such as tools for evaluating and share/nmap/ manipulating IP addresses, using Perl- scripts. compatible regular expressions, or ma- Figure 1: A combination of NSE scripts, Nmap libraries, and new Lua nipulating URLs. Categories calls extends the functional scope of the classic Nmap tool. Lua makes intensive use of data struc- NSE organize tures in tables. Tables contain attribute- scripts in categories to allow for more search fails, Nmap then looks for a direc- value pairs, and they can also contain granular control. The defined script cate- tory with the same name and binds any subtables. For example, NSE uses the host gories are safe and intrusive, malware, scripts ending in .nse. and port tables to access Nmap scan re- version, discovery, and vulnerability. If this search also fails, Nmap searches sults. A registry table that all scripts can Scripts that NSE categorizes as safe are for an individual script of the same read and write to resides above all scripts. very unlikely to cause problems on the name. For example, the command-line This design lets scripts exchange data. scan target. The scripts in the intrusive option --script discovery,malware binds category are unlikely to cause damage, the categories discovery and malware. A NSE in Action but will attempt to use default pass- database file titled script.db in the scripts Nmap and NSE use the Nmap API to ex- words to access systems, and thus they subdirectory maps scripts to individual change information, including the target are more likely to generate log entries categories. Admins can update the file host name, the operating system and IP on the scan target. by entering --script-updatedb after address, the port number, and the port Scripts in the malware and vulnerabil- adding scripts. If you set the -sC flag, status. The API also lets users call ity categories test the scan targets for only scripts from the categories safe and Nmap’s socket functions for network malware and known vulnerabilities. The intrusive are executed. communications. An extension that lets version category plays a special role: users send custom packets is due for re- scripts in this category, which are en- Your Own NSE Scripts lease in the near future. abled by the -sV command-line option, Anexample will make it easier to under- Nmap starts by checking whether it extend Nmap’s version detection capa- stand the structure of an NSE script. can reach ports on a host. In case of a bilities. Their output is no different from Most built-in scripts are kept simple – TCP scan, the tool will ascertain the port standard Nmap output; the script is not normally smaller than 100 lines includ- status, which could be open, closed, or referenced in the report generated by the ing comments. The ripeQuery.nse script filtered. Once Nmap has detected a port, scan. The discovery category includes in Listing 1 should give you some idea and assuming NSE has been enabled scripts that are designed to find out more of how Lua and NSE work. The script with the -sC option, the subsystem will about the target host or network by que- queries an address for an entry in the attempt to locate a matching script for rying various services (including SNMP RIPE network registration system [8]. the test. or LDAP). An NSE script consists of three compo- Scripting rules determine whether The --script argument specifies the nents: the header defines the script Nmap will run an NSE script. These categories, directories, and individual name in the Nmap output, the script scripting rules specify the conditions scripts for NSE to integrate and execute. category, and the run level. The rule under which the script will launch. A comma-separated list of values is pos- specifies the conditions under which the You can build your own scripts or rely sible. Nmap starts by searching for a script is executed. The action component on the pre-built scripts included with category with the specified name; if the calls the functions that handle the actual FEBRUARY 2008 ISSUE 87 69 068-072_nmap-script.indd 69 13.12.2007 16:54:58 Uhr SYSADMIN Nmap Scripting socket:connectU ("whois.ripe.net", 43) tells the script to connect to the RIPE da- tabase, which responds to TCP port 43 requests. The Whois service expects an IP address in quatted dot notation. The code socket:send(host.ip .. "\n") sends the IP address. The query line must be terminated by a newline character. To allow this to happen, the concatenator operator .. adds \n to the IP address for the scanned host parsed from host.ip. In- side an infinite loop beginning in line 23, local status, lines = U Figure 2: In new script mode (option -sC), Nmap calls external scripts. Nmap has detected socket:receive_lines(1) that port 80 is open, so the tool chips in to query the heading of the website it has discovered and displays the results. The figure also shows NSE detecting the NetBIOS names of a target. reads the response from the RIPE data- base until the data input dries up. The tasks. Authors can implement all three (host, port) function. The function again Boolean variable status shows whether sections of the script in Lua. expects host and port as arguments. the connection is still delivering data. Each NSE script has a header that In line 16, the script first creates a new If this is not so, break in line 27 quits comprises four descriptive details. The TCP/ IP socket then defines the local the loop. The parsed response is avail- id contains the script name and is used variables status, line, and result. Line 20, able in lines, and result accumulates the for Nmap output; description is a short description; and author names the au- Listing 1: ripeQuery.nse thor. The interpreter does not process 01 require “ipOps” 23 while true do the license field. 02 24 local status, lines = socket: A script will only run under specific 03 id = “RIPE query” receive_lines(1) conditions.
Recommended publications
  • Final Project Report
    FINAL REPORT The OS Security Showdown Ciara Dunleavy C00217731 Supervisor Paul J. Barry 30th April 2021 Contents Introduction ............................................................................................................................................ 2 Description of Submitted Project............................................................................................................ 3 Description of Conformance to Specification and Design ...................................................................... 5 Description of Learning ........................................................................................................................... 5 Technical ............................................................................................................................................. 5 Python ............................................................................................................................................. 5 Nmap ............................................................................................................................................... 5 Personal .............................................................................................................................................. 5 Review of Project .................................................................................................................................... 6 Acknowledgements ................................................................................................................................
    [Show full text]
  • Lab 4: Generating, Capturing and Analyzing Network Scanner Traffic
    The Cyber Center for Security and Analytics ZEEK INSTRUSION DETECTION SERIES Lab 4: Generating, Capturing and Analyzing Network Scanner Traffic Document Version: 02-01-2020 Award 1829698 “CyberTraining CIP: Cyberinfrastructure Expertise on High-throughput Networks for Big Science Data Transfers” Lab 4: Generating, Capturing and Analyzing Network Scanner Traffic Contents Overview ............................................................................................................................. 3 Objective ............................................................................................................................. 3 Lab topology........................................................................................................................ 3 Lab settings ......................................................................................................................... 3 Lab roadmap ................................................................................................................... 4 1 Introduction to Internet scanning and probing .......................................................... 4 2 Generating real time network scans ........................................................................... 5 2.1 Starting a new instance of Zeek ........................................................................... 5 2.2 Setting up the Bro2 machine for live network capture ....................................... 6 2.3 Using the Bro1 machine for network scanning activities ...................................
    [Show full text]
  • PDF with Notes
    Wireless Tools Training materials for wireless trainers This talk covers tools that will show you a great deal of information about wireless networks, including network discovery, data logging, security auditing, and spectrum analysis. Version 1.4 by Rob, @2009-11-23 Version 1.5 by Rob, @2010-02-28 Version 1.6 by Rob, @2010-03-12 Goals ‣ The goal of this talk is to provide an introduction to a few software tools that will help you to: ‣ monitor your WiFi network to identify problems ‣ perform security audits and prevent attacks ‣ observe the ongoing performance of your network and plan for future needs ‣ detect interference 2 Types of wireless tools ‣ Network ESSID scanners ‣ Wireless protocol analyzers ‣ Encryption cracking tools ‣ Wireless device auditing and management ‣ “War driving” tools: network mapping ‣ Spectrum analysis 3 Built-in wireless clients 4 If a computer has a wireless card, it has a basic network scanner. NetStumbler http://www.stumbler.net/ 5 NetStumbler was one of the first and most widely used WiFi detection tools. It runs only in Windows XP or Windows 2000, and works with many (but not all) wireless cards. NetStumbler can be used for mapping the coverage of your WiFi network, War Driving, rogue AP detection, aligning antennas on a long distance link, and more. NetStumbler is not open source, and was last updated in 2004. http://www.vistumbler.net/ 6 Vistumbler is an updated open source network detection tool for Windows Vista and Windows 7. It supports many of the same features as NetStumbler, including network detection and GPS integration. It also works with Google Earth to allow realtime WiFi mapping on a live map.
    [Show full text]
  • Lab 3: Scanning and Reconnaissance
    CSC 5991 Cyber Security Practice Lab 3: Scanning and Reconnaissance Introduction The key to successfully exploit or intrude a remote system is about the information you have. The first step for penetration is the scanning and reconnaissance. In this lab, you will learn how to use tools to scan and retrieve information from a targeting system. You will be using nmap and OpenVAS to scan a vulnerable machine and identify exploits that can be used to attack it. We will use two Linux virtual machines: One is a Kali Linux with nmap and OpenVAS installed; and the other one is intentionally vulnerable Linux. We will use the nmap and OpenVAS on Kali Linux to scan the vulnerable Linux machine. Software Requirements - The VMWare Software http://apps.eng.wayne.edu/MPStudents/Dreamspark.aspx - The Kali Linux, Penetration Testing Distribution https://www.kali.org/downloads/ - Metasploitable2: Vulnerable Linux Platform http://sourceforge.net/projects/metasploitable/files/Metasploitable2/ - nmap: the Network Mapper - Free Security Scanner https://nmap.org/ - OpenVAS: Open Vulnerability Assessment System http://www.openvas.org/index.html Fengwei Zhang - CSC 5991 Cyber Security Practice 1 Starting the Lab 3 Virtual Machines We need to use two VMs for this lab: the Kali Linux and the Metasploitable2-Linux. First, select the Kali Linux and press Start up Login the Kali Linux with username root, and password [TBA in the class]. Below is the screen snapshot after login. Fengwei Zhang - CSC 5991 Cyber Security Practice 2 Then, you select Metasploitble2-Linux, and press Start up. This is an intentionally vulnerable Linux VM that you will attack against.
    [Show full text]
  • Metasploit Pro User Guide
    4.11 USER GUIDE Getting Started First things first. If you haven't installed Metasploit yet, check out this these instructions if you're a commercial user. Otherwise, if you already have Metasploit installed, congratulations! You've come to the right place to get started. What's Metasploit? Metasploit is a penetration testing platform that enables you to find, exploit, and validate vulnerabilities. The platform includes the Metasploit Framework and its commercial counterparts: Metasploit Pro, Express, Community, and Nexpose Ultimate. Metasploit Framework The Metasploit Framework is the foundation on which the commercial products are built. It is an open source project that provides the infrastructure, content, and tools to perform penetration tests and extensive security auditing. Thanks to the open source community and Rapid7's own hard working content team, new modules are added on a regular basis, which means that the latest exploit is available to you as soon as it's published. There are quite a few resources available online to help you learn how to use the Metasploit Framework; however, we highly recommend that you take a look at the Metasploit Framework Wiki, which is maintained by Rapid7's content team, to ensure that you have the most up to date information available. You can also use the sidebar navigation on the left to view the documentation that is available on this site; just click on the Metasploit Framework topic or search for the topic you want. Either way, if you are unable to find what you need, let us know, and we will add it to the documentation back log.
    [Show full text]
  • List of NMAP Scripts Use with the Nmap –Script Option
    List of NMAP Scripts Use with the nmap –script option Retrieves information from a listening acarsd daemon. Acarsd decodes ACARS (Aircraft Communication Addressing and Reporting System) data in real time. The information retrieved acarsd-info by this script includes the daemon version, API version, administrator e-mail address and listening frequency. Shows extra information about IPv6 addresses, such as address-info embedded MAC or IPv4 addresses when available. Performs password guessing against Apple Filing Protocol afp-brute (AFP). Attempts to get useful information about files from AFP afp-ls volumes. The output is intended to resemble the output of ls. Detects the Mac OS X AFP directory traversal vulnerability, afp-path-vuln CVE-2010-0533. Shows AFP server information. This information includes the server's hostname, IPv4 and IPv6 addresses, and hardware type afp-serverinfo (for example Macmini or MacBookPro). Shows AFP shares and ACLs. afp-showmount Retrieves the authentication scheme and realm of an AJP service ajp-auth (Apache JServ Protocol) that requires authentication. Performs brute force passwords auditing against the Apache JServ protocol. The Apache JServ Protocol is commonly used by ajp-brute web servers to communicate with back-end Java application server containers. Performs a HEAD or GET request against either the root directory or any optional directory of an Apache JServ Protocol ajp-headers server and returns the server response headers. Discovers which options are supported by the AJP (Apache JServ Protocol) server by sending an OPTIONS request and lists ajp-methods potentially risky methods. ajp-request Requests a URI over the Apache JServ Protocol and displays the result (or stores it in a file).
    [Show full text]
  • Hacking Techniques & Intrusion Detection
    Hacking Techniques & Intrusion Detection Ali Al-Shemery arabnix [at] gmail All materials is licensed under a Creative Commons “Share Alike” license. • http://creativecommons.org/licenses/by-sa/3.0/ 2 # whoami • Ali Al-Shemery • Ph.D., MS.c., and BS.c., Jordan • More than 14 years of Technical Background (mainly Linux/Unix and Infosec) • Technical Instructor for more than 10 years (Infosec, and Linux Courses) • Hold more than 15 well known Technical Certificates • Infosec & Linux are my main Interests 3 Scanning and Fingerprinting Outline • Diving into Important Network Protocols (TCP, UDP, ICMP, ARP, etc) • Nmap – Intro. • Host Discovery • Tracing the Route • Port Scanning • OS and Service Fingerprinting • Learning Python in 4 Slides • Packet Crafting 5 Diving into Important Network Protocols • Diving into Important Network Protocols: – TCP – UDP – ICMP – ARP – HTTP – etc 6 Nmap • "Network Mapper” is a free and open source utility for network discovery and security auditing. - Fyodor • IMO: #1 tool in your security arsenal! Important Note: A huge difference between running Nmap as a privileged/unprivileged user! 7 Host Discovery • Identifying Live Systems • Also called “Network Sweep” • Nmap ping sweeps: – Ping Only (-sP) – ARP Ping (-PR) – ICMP Echo Request Ping (-PE) – TCP SYN Ping (-PS) – TCP ACK Ping (-PA) – UDP Ping (-PU) DEMO 8 Assignment #1 • Why do host discovery or network sweeping if we already have the target list of IP(s)? 9 Tracing the Route • Nmap --traceroute option • DEMO DEMO 10 Port Scanning • The act of testing a remote
    [Show full text]
  • Project 3: Networking Due: Parts 1–3: May 18 11:59 PM PT Part 4: May 25 11:59 PM PT
    CS155: Computer Security Spring 2021 Project 3: Networking Due: Parts 1{3: May 18 11:59 PM PT Part 4: May 25 11:59 PM PT Introduction This project is all about network security. You will both use existing software to examine remote machines and local traffic as well as play the part of a powerful network attacker. Parts one and two show you how a simple port scan can reveal a large amount of information about a remote server, as well as teach you how to use Wireshark to closely monitor and understand network traffic observable by your machine. Part three will focus on a dump of network traffic in a local network, and will teach you how to identify different types of anomalies. Finally, in part four, you will get to implement a DNS spoofer that hijacks a HTTP connection. This project will solidify your understanding of the mechanics and shortfalls of the DNS and HTTP protocols. Go Language. This project will be implemented in Go, a programming language most of you have not used before. As such, part of this project will be spent learning how to use Go. Why? As you saw in Project 1, C and C++ are riddled with memory safety pitfalls, especially when it comes to writing network code. It's practically impossible to write perfectly secure C/C++ code|even experienced programmers make errors. For example, just this week, Qualys uncovered 21 exploits in Exim, a popular open source mail server. The security community has largely agreed that future systems need to be built in safe languages.
    [Show full text]
  • Penetration Testing Using Metasploit Framework: an Ethical Approach
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 08 | Aug 2019 www.irjet.net p-ISSN: 2395-0072 PENETRATION TESTING USING METASPLOIT FRAMEWORK: AN ETHICAL APPROACH Seema Rani1, Ritu Nagpal2 1M.Tech Scholar, Computer Science & Engineering, GJUS&T, Hisar, India 2Associate Professor, Computer Science & Engineering, GJUS&T, Hisar, India ---------------------------------------------------------------------***---------------------------------------------------------------------- Abstract-Security is an essential concern for the internet describe the installation and lists of tools provided by since nowadays almost all communication occurs via the Kali Linux 2017.3 and uses preconfigured and internet. The motive of performing penetration testing is preinstalled tools for laboratory project using VMware to ensure that system and network have no security hole (virtual machine framework). Matthew Denis et al [2] that allows an unauthorized access to system and in this paper titled "Penetration testing: Concepts, attack network. One possible and appropriate way to avoid methods, and defense strategies" examines the distinct hacking of system and network is penetration testing. This penetration testing tools of Kali Linux: Metasploit, paper summarily describe some basics of penetration Wireshark, JohnThe Ripper, BeEF, Nmap, Nessus and testing, evaluation of existing exploits and tools and use Dradisare to study attack methodologies and defense Metasploit framework for penetration testing and to run strategies. Himanshu Gupta and Rohit Kumar [4] In exploits in this framework. We describe penetration this paper titled “Protection against penetration attacks testing techniques: information gathering, vulnerability using Metasploit” discusses the script based attacks, analysis, vulnerability exploitation, post exploitation and using Metasploit built-in module to exploit the target report generation using Metasploit framework’s existing system, implements Metasploit attacks and analyze modules, exploits and tools.
    [Show full text]
  • Zenmap Nmap Multi Platform Graphical Frontend for Checking Port Security
    Walking in Light with Christ - Faith, Computing, Diary Articles & tips and tricks on GNU/Linux, FreeBSD, Windows, mobile phone articles, religious related texts http://www.pc-freak.net/blog ZenMap Nmap multi platform Graphical frontend for checking port security Author : admin Recently I wrote little article with some examples for scanning server port security with Nmap. I forgot to mention in the article that there is also Nmap frontend GUI program called ZenMap. ZenMap port is available for both Windows and Linux. In Debian, Ubuntu, Mint and other debian derivative distributions ZenMap is available from standard package repositories; noah:~# apt-cache show zenmap|grep -i description -A 3 Description-en: The Network Mapper Front End Zenmap is an Nmap frontend. It is meant to be useful for advanced users and to make Nmap easy to use by beginners. It was originally derived 1 / 5 Walking in Light with Christ - Faith, Computing, Diary Articles & tips and tricks on GNU/Linux, FreeBSD, Windows, mobile phone articles, religious related texts http://www.pc-freak.net/blog from Umit, an Nmap GUI created as part of the Google Summer of Code. Description-md5: 4e4e4c6aeaa4441484054473e97b7168 Tag: implemented-in::python, interface::x11, network::scanner, role::program, uitoolkit::gtk, use::scanning, x11::application Section: net To install ZenMap on Debian / Ubuntu Linux: noah:~# apt-get install --yes zenmap ... In Fedora, CentOS and other RPM based Linux-es to install ZenMap run: noah:~# yum -y install nmap-frontend nmap ... To use Nmap's Frontend full functionality, you have to run it as (root) superuser: hipo@noah:~$ sudo su [sudo] password for hipo: noah:~# zenmap Zenmap saves, a lot of time as there is no need to remember Nmap's arguments or run few Nmap scans until you get essential information for remote scanned machine.
    [Show full text]
  • The Nmap Scripting Engine
    THE NMAP SCRIPTING ENGINE David Fifield <[email protected]> 6 February 201 0 This document shows how to use the Nmap Scripting Engine (NSE)—the combination of an embedded Lua interpreter, networking libraries, and the Nmap scanning apparatus. It tells you how to use the scripting engine in your scans, and gives advice on writing your own scripts. About Nmap Nmap is a free network security scanner with many features. The web page http://nmap.org/download.html has source packages and installers for many operating systems. Most free Unixes include a package called nmap. To get the very latest, check out from Subversion: $ svn co - - username guest - - password "" svn: //svn. insecure. org/nmap $ cd nmap $ . /configure && make In its most basic usage, Nmap will scan a host and report the state of its ports. Try this example: $ nmap scanme. nmap. org Nmap scan report for scanme. nmap. org ( 64. 13. 134. 52) PORT STATE SERVICE 25/tcp closed smtp 53/tcp open domain 80/tcp open http 113/tcp closed auth 31337/tcp closed Elite Nmap done: 1 IP address ( 1 host up) scanned in 8. 62 seconds Using NSE Nmap can get more information from the remote system by running scripts against it. A script is a program written in the embedded Lua programming language. Nmap ships with dozens of scripts that do various network discovery tasks. (See http://nmap.org/nsedoc/ for the full list). Scripts have access to Nmap’s scan results and several networking libraries. To enable NSE, add the - sC or - - script $ nmap - - script=safe scanme.
    [Show full text]
  • Project 3: Network Security
    CIS 331 March 21, 2017 Introduction to Networks & Security Project 3: Network Security Project 3: Network Security This project is due on Tuesday, April 4 at 10 p.m.. You must work in teams of two and submit one project per team. You will have a budget of five late days (24-hour periods) over the course of the semester that you can use to turn assignments in late without penalty and without needing to ask for an extension. You may use a maximum of two late days per assignment. Late pair projects will be charged to both partners. Once your late days are used up, extensions will only be granted in extraordinary circumstances. The code and other answers your group submits must be entirely your own work, and you must adhere to the Code of Academic Integrity. You may consult with other students about the concep- tualization of the project and the meaning of the questions, but you may not look at any part of someone else’s solution or collaborate with anyone outside your group. You may consult published references, provided that you appropriately cite them (e.g., with program comments), as you would in an academic paper. Solutions must be submitted electronically via Canvas, following the submission checklist at the end of this file. Introduction This project will introduce you to common network protocols, the basics behind analyzing network traces from both offensive and defensive perspectives, and local network attacks. Objectives • Gain exposure to core network protocols and concepts. • Understand offensive techniques used to attack local network traffic.
    [Show full text]