OpenVAS Libraries  8.0.3
ids_send.h
Go to the documentation of this file.
1 /* OpenVAS
2  * $Id$
3  * Description: IDS stressing functions.
4  *
5  * ids_send() sends data spliced into several packets, with bad packets
6  * between them, thus making bad NIDSes reassemble the tcp stream awkwardly;
7  *
8  * ids_open_sock_tcp() opens a tcp socket and immediately sends a badly
9  * formed RST packet to the remote host, thus making bad NIDSes think
10  * the connection was immediately dropped on our end.
11  *
12  * Authors:
13  * Renaud Deraison <deraison@nessus.org> (Original pre-fork development)
14  *
15  * Copyright:
16  * Based on work Copyright (C) 1998 - 2002 Renaud Deraison
17  *
18  * This library is free software; you can redistribute it and/or
19  * modify it under the terms of the GNU Library General Public
20  * License as published by the Free Software Foundation; either
21  * version 2 of the License, or (at your option) any later version.
22  *
23  * This library is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26  * Library General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
31  */
32 
33 #ifndef __OPENVAS_IDS_SEND_H__
34 #define __OPENVAS_IDS_SEND_H__
35 
36 /* for struct arglist */
37 #include "arglists.h"
38 
39 /*
40  * Transport layer options
41  * XXX: These defines were moved here from libopenvas.h sind they
42  * are used most often in ids_send module. More reengineering
43  * probably needed.
44  */
45 #define OPENVAS_CNX_IDS_EVASION_SPLIT 1L /* Try to evade NIDS by spliting sends */
46 #define OPENVAS_CNX_IDS_EVASION_INJECT 2L /* Split + insert garbage */
47 #define OPENVAS_CNX_IDS_EVASION_SHORT_TTL 4L /* Split + too short ttl for garbage */
48 #define OPENVAS_CNX_IDS_EVASION_FAKE_RST 8L /* Send a fake RST from our end after each established connection */
49 
50 #define OPENVAS_CNX_IDS_EVASION_SEND_MASK (OPENVAS_CNX_IDS_EVASION_SPLIT|OPENVAS_CNX_IDS_EVASION_INJECT|OPENVAS_CNX_IDS_EVASION_SHORT_TTL)
51 
52 int ids_send (int, void *, int, int);
53 int ids_open_sock_tcp (struct arglist *, int, int, int);
54 
55 #endif
int ids_open_sock_tcp(struct arglist *, int, int, int)
Definition: ids_send.c:690
int ids_send(int, void *, int, int)
Definition: ids_send.c:526
Definition: arglists.h:29