Book Image

Nmap: Network Exploration and Security Auditing Cookbook - Second Edition

By : Paulino Calderon
Book Image

Nmap: Network Exploration and Security Auditing Cookbook - Second Edition

By: Paulino Calderon

Overview of this book

This is the second edition of ‘Nmap 6: Network Exploration and Security Auditing Cookbook’. A book aimed for anyone who wants to master Nmap and its scripting engine through practical tasks for system administrators and penetration testers. Besides introducing the most powerful features of Nmap and related tools, common security auditing tasks for local and remote networks, web applications, databases, mail servers, Microsoft Windows machines and even ICS SCADA systems are explained step by step with exact commands and argument explanations. The book starts with the basic usage of Nmap and related tools like Ncat, Ncrack, Ndiff and Zenmap. The Nmap Scripting Engine is thoroughly covered through security checks used commonly in real-life scenarios applied for different types of systems. New chapters for Microsoft Windows and ICS SCADA systems were added and every recipe was revised. This edition reflects the latest updates and hottest additions to the Nmap project to date. The book will also introduce you to Lua programming and NSE script development allowing you to extend further the power of Nmap.
Table of Contents (25 chapters)
Title Page
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
13
Brute Force Password Auditing Options
17
References and Additional Reading

Writing a new NSE library in C/C++


NSE libraries in Lua are preferred, but the Nmap Scripting Engine also supports C/C++ modules via the Lua C API. This is only recommended if you require better performance or integrating an already existing project.

This recipe will teach you how to create an NSE library in C/C++.

How to do it...

Let's go through the process of creating a C library and accessing it with the Lua C API. Our module will only contain a single function that prints a message on screen:

  1. Create your library source and header files. C library file names must be prepended with the string nse_. For our library test, we will need nse_test.cc and nse_test.h. First, create nse_test.cc and paste the following code:
   extern "C" {  
   #include "lauxlib.h"  
   #include "lua.h"  
   } 
   #include "nse_test.h"  
   static int hello_world(lua_State *L) {  
   printf("Hello World From a C library\n");  
   return 1;  
   } 
   static const struct luaL_Reg testlib[] = { 
   {"hello", hello_world...