Lucene search
K

NIDS Evasion Options

🗓️ 19 Feb 2002 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 23 Views

Configures Nessus for Network Intrusion Detection System evasion techniques for testing quality.

Code
#
# (C) Tenable Network Security, Inc.
#

# @PREFERENCES@

# The HTTP IDS evasion mode comes from Whisker, by RFP.
# It has been moved to http_ids_evasion.nasl
#
# The TCP IDS evasion techniques are largely inspired by
# the work from Tom Ptacek and Tim Newsham.

if ( NASL_LEVEL >= 3000 ) exit(0);


include("compat.inc");

if(description)
{
 script_id(10889);
 script_version ("$Revision: 1.30 $");
 script_cvs_date("$Date: 2015/08/03 18:01:48 $");

 script_name(english:"NIDS Evasion Options");
 
 script_set_attribute(attribute:"synopsis", value:
"This plugin configures Nessus for NIDS evasion." );
 script_set_attribute(attribute:"description", value:
"This plugin configures Nessus for NIDS evasion (see the 'Prefs' panel).
NIDS evasion options are useful if you want to determine
the quality of the expensive NIDS you just bought.

TCP Evasion techniques :
- Split : send data one byte at a time. This confuses
  NIDS which do not perform stream reassembly
  
- Injection : same as split, but malformed TCP packets
  containing bogus data are sent between normal packets. 
  Here, a 'malformed' tcp packet means a legitimate TCP packet 
  with a bogus checksum.
  This confuses NIDS which perform stream reassembly but do
  not accurately verify the checksum of the packets or
  do not determine if the remote host actually
  receives the packets seen ;
  
- Short TTL : same as split, but a valid TCP packets
  containing bogus data are sent between normal packets.
  These packets have a short (N-1), meaning that if
  the NIDS is on a gateway, it will see these packets
  go through, but they will not reach the target
  host.
  This confuses NIDS which perform stream reassembly
  but do not accurately check if the packet can actually
  reach the remote host or which do not determine if the 
  remote host actually receives the packets seen ;

- Fake RST : each time a connection is established, Nessus
  will send a RST packet with a bogus tcp checksum or
  a bogus ttl (depending on the options you chose above),
  thus making the IDS believe the connection was closed
  abruptly.
  This confuses badly written NIDS which believe
  anything they see.
  
Warning: those features are experimental and some 
options may result in false negatives!
This plugin does not do any security check." );
 script_set_attribute(attribute:"risk_factor", value:"None" );

 script_set_attribute(attribute:"plugin_publication_date", value: "2002/02/19");
 script_set_attribute(attribute:"plugin_type", value:"settings");
 script_end_attributes();

 script_summary(english:"NIDS evasion options");
 script_category(ACT_SETTINGS);
 script_copyright(english:"This script is Copyright (C) 2002-2015 Tenable Network Security, Inc.");
 script_family(english:"Settings");
 
 script_add_preference(name:"TCP evasion technique", type:"radio", value:"none;split;injection;short ttl");

 script_add_preference(name:"Send fake RST when establishing a TCP connection",
 	type:"checkbox", value:"no");
 exit(0);
}

pref =  script_get_preference("TCP evasion technique");
if(!pref)exit(0);

if(pref == "none")exit(0);


if(pref == "none;split;injection;short ttl")exit(0);

if(pref == "split")
{
 set_kb_item(name:"NIDS/TCP/split", value:"yes");

  if (! get_kb_item("Settings/Whisker/NIDS"))
    set_kb_item(name: "Settings/Whisker/NIDS", value: "9");

w="TCP split NIDS evasion function is enabled. Some tests might
run slowly and you may get some false negative results";
 security_note(port:0, protocol:"tcp", data:w);
}

if(pref == "injection")
{
 set_kb_item(name:"NIDS/TCP/inject", value:"yes");
w="TCP inject NIDS evasion function is enabled. Some tests might
run slowly and you may get some false negative results.";
 security_note(port:0, protocol:"tcp", data:w);
}


if(pref == "short ttl")
 {
 set_kb_item(name:"NIDS/TCP/short_ttl", value:"yes");
w="TCP short ttl NIDS evasion function is enabled. Some tests might
run slowly and you may get some false negative results.";
 security_note(port:0, protocol:"tcp", data:w);
 }


pref = script_get_preference("Send fake RST when establishing a TCP connection");
if(!pref) exit(0);

if(pref == "no")exit(0);



if(pref == "yes") {
 set_kb_item(name:"NIDS/TCP/fake_rst", value:"yes");
w="TCP fake RST NIDS evasion function is enabled. Some tests might
run slowly and you may get some false negative results.";
 security_note(port:0, protocol:"tcp", data:w);
}

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation