1SLOWHTTPTEST(1)           BSD General Commands Manual          SLOWHTTPTEST(1)
2

NAME

4     slowhttptest — Denial Of Service attacks simulator
5

SYNOPSIS

7     slowhttptest [-H|B|R|X] [-g] [-a range start] [-b range limit]
8                  [-c number of connections]
9                  [-d all traffic directed through HTTP proxy at host:port]
10                  [-e probe traffic directed through HTTP proxy at host:port]
11                  [-f value of Content-type header] [-i interval in seconds]
12                  [-k request multiply factor] [-l test duration in seconds]
13                  [-m value of Accept header]
14                  [-n slow read interval in seconds]
15                  [-o output file path and/or name]
16                  [-p timeout for probe connection in seconds]
17                  [-r connection per second]
18                  [-s value of Content-Length header] [-t HTTP verb]
19                  [-u absolute URL] [-v output verbosity level]
20                  [-w advertised window size range start]
21                  [-x max length of follow up data]
22                  [-y advertised window size range end]
23                  [-z slow read from receive buffer in bytes]
24

DESCRIPTION

26     The slowhttptest implements most common low-bandwidth Application Layer
27     DoS attacks and produces CSV and HTML files with test statistics.
28
29     Currently supported attacks are:
30
31           ·   Slowloris
32           ·   Slow HTTP POST
33           ·   Apache Range Header
34           ·   Slow Read
35
36     The options are as follows:
37
38     -g      Forces slowhttptest to generate CSV and HTML files when test fin‐
39             ishes with timestamp in filename.
40
41     -H      Starts slowhttptest in SlowLoris mode, sending unfinished HTTP
42             requests.
43
44     -B      Starts slowhttptest in Slow POST mode, sending unfinished HTTP
45             message bodies.
46
47     -R      Starts slowhttptest in Range Header mode, sending malicious Range
48             Request header data.
49
50     -X      Starts slowhttptest in Slow Read mode, reading HTTP responses
51             slowly.
52
53     -a start
54             Sets the start value of range-specifier for Range Header attack.
55
56     -b bytes
57             Sets the limit value of range-specifier for Range Header attack.
58
59     -c number of connections
60             Specifies the target number of connections to establish during
61             the test.
62
63     -d HTTP proxy host:port
64             Specifies HTTP proxy server to connect to for all connections.
65
66     -e HTTP proxy host:port
67             Specifies HTTP proxy server to connect to for probe connections.
68
69     -f content-type
70             Specifies the value of Content-Type header.
71
72     -i seconds
73             Specifies the interval between follow up data for slowrois and
74             Slow POST tests.
75
76     -k pipeline factor
77             Specifies number of times the resource would be requested per
78             socket in Slow Read test.
79
80     -l seconds
81             Specifies test duration in seconds.
82
83     -m accept
84             Specifies the value of Accept header.
85
86     -n seconds
87             Specifies the interval between read operations for Slow Read
88             test.
89
90     -o file name
91             Specifies custom file name, effective with -g.
92
93     -p seconds
94             Specifies the interval to wait for HTTP response on probe connec‐
95             tion, before marking the server as DoSed.
96
97     -r connections per second
98             Specifies the connection rate.
99
100     -s bytes
101             Specifies the value of Content-Length header for Slow POST test.
102
103     -t HTTP verb
104             Specifies the verb to use in HTTP request.
105
106     -u URL  Specifies the URL.
107
108     -v level
109             Specifies the verbosity level of logging.
110
111     -w bytes
112             Specifies the start of the range the TCP advertised window size
113             would be picked from in Slow Read test.
114
115     -x bytes
116             Specifies the maximum length of follow up data for slowloris and
117             Slow POST tests.
118
119     -y bytes
120             Specifies the end of the range the TCP advertised window size
121             would be picked from in Slow Read test.
122
123     -z bytes
124             Specifies the number of bytes to read from receive buffer with
125             each read() operation.
126

EXAMPLES

128     Start a slowloris test of host.example.com with 1000 connections, statis‐
129     tics goes into my_header_stats, interval between follow up headers is 10
130     seconds and connection rate is 200 connections per second:
131
132           $ slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET
133           -u https://host.example.com/index.html -x 24 -p 3
134
135     Start slow POST test of host.example.com with 3000 connections, statis‐
136     tics goes into my_body_stats, interval between follow up headers is 110
137     seconds, connection rate is 200 connections per second, Content-Length
138     header value is 8192, maximum length of follow up data is random value
139     limited by 10 bytes and probe connections waits 3 seconds for HTTP
140     response before marking server as DoSed:
141
142           $ slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192
143           -t FAKEVERB -u http://host.example.com/loginform.html -x 10 -p 3
144
145     Start Range Header test of host.example.com with 1000 connections, use
146     HEAD verb, and generate HTTP header Range:0-, x-1, x-2, x-3, ... x-y,
147     where x is 10 and y is 3000, connection rate is 500: interval between
148     follow up headers is 10 seconds and connection rate is 200 connections
149     per second:
150
151           $ slowhttptest -R -u http://host.example.com/ -t HEAD -c 1000 -a 10
152           -b 3000 -r 500
153
154     Start Slow Read test of host.example.com with 8000 connections, no sta‐
155     tistics is generated, connection rate is 200 connections per second, TCP
156     advertised window size is a random value between 512 and 1024,
157     slowhttptest reads 32 bytes from each connections every 5 seconds, 3
158     requests are pipelined per each connections, probe connection waits 3
159     seconds for HTTP response before marking server as DoSed:
160
161           $ slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u
162           https://host.example.com/resources/index.html -p 3
163
164     Start Slow Read test of host.example.com through HTTP proxy server at
165     10.10.0.1:8080 with 8000 connections, no statistics is generated, the
166     rest test values are default.  slowhttptest most likely would test HTTP
167     proxy server itself, rather than target server, but it all depends on the
168     HTTP proxy server implementation:
169
170           $ slowhttptest -d 10.10.0.1:8080 -c 8000 -X -u
171           https://host.example.com/resources/index.html
172
173     Start Slow Read test of host.example.com and direct probe traffic through
174     HTTP proxy server at 10.10.0.1:8080 with 8000 connections, no statistics
175     is generated, the rest test values are default.  Specifying another con‐
176     nection channel for probe connections helps to make sure that
177     slowhttptest shows valid statistics for availability of server under
178     test:
179
180           $ slowhttptest -e 10.10.0.1:8080 -c 8000 -X -u
181           https://host.example.com/resources/index.html
182

AUTHOR

184     Sergey Shekyan ⟨shekyan@gmail.com⟩.
185
186     Project page ⟨https://github.com/shekyan/slowhttptest/⟩.
187
188BSD                            November 25, 2013                           BSD
Impressum