About Gordon Stresser
About Gordon Stresser
1. Introduction
This document provides a detailed guide to using the Gorgon stress tester's web interface.
Designed to assess the resilience and performance of various network services and
applications under load, Gorgon supports multiple protocols including TCP, SMTP, SSH,
HTTP, and DNS.
This section details each field in the Gorgon stress tester's web interface form, explaining its
purpose and impact on the test, as well as how different values affect various types of tests.
● Victim URL: Specify the target URL or IP address for testing. This is the primary
endpoint that will be tested under load. Supported protocols include HTTP(S), SMTP,
SSH, etc.
○ Impact: Determines the target of the stress test.
○ Examples:
■ https://www.example.com
■ smtp://mail.example.com:25
■ ssh://192.168.1.1:22
■ tcp://192.168.1.1:22:1234
■ dns://ns1.domain.server:53
○ Effect on Tests:
■ For HTTP Flood, Slowdos HTTP, and other HTTP-based tests, this
URL defines the web server that will be attacked.
● Add GET parameters corresponding to the URL.
● {STRING;4-10} - Generates random Latin characters with a
given string length.
● {STRING_RU;2-23} - Generates random Cyrillic characters
with a given string length.
● {NUMBER;2-33} - Generates random numbers characters with
a given string length.
● https://web.server/?1={NUMBER;1-3}&a={STRING;6-9}
■ For SMTP/SSH/DNS/TCP tests, it points to the mail server under load.
● Host Header: Set the host header for HTTP requests. This is used when one IP
address hosts multiple domains.
○ Impact: Helps direct HTTP requests to the correct domain on a shared
server.
○ Example: example.com
○ Effect on Tests:
■ Essential for HTTP-based tests targeting specific domains hosted on
the same IP address.
■ Essential for SMTP based tests, for the hello header.
■ Essential for tests based on DNS as domain name for flood.
● TimeOut: Set the victim timeout in seconds for connections.
○ Impact: Determines how long the system will wait to connect to a victim
before timing out.
○ Example: 5s
○ Effect on Tests:
■ Shorter timeouts may lead to more connection errors but can simulate
scenarios with poor network conditions.
■ Longer timeouts ensure that slower responses are accounted for but
may reduce the overall request rate.
● TLS: Select the version of TLS (Transport Layer Security) for HTTPS connections.
○ Impact: Secures the connection by encrypting data.
○ Example: TLS1.2
○ Effect on Tests:
■ Only applicable to HTTPS connections.
■ TLS increases server load by generating random handshakes
SOCKS5 Settings:
● Socks URL: Provide the address and port of the SOCKS5 proxy for routing test
traffic. This is crucial for simulating traffic from different geographical locations or
maintaining anonymity.
○ Impact: Routes test traffic through a specified proxy server.
○ Example: proxy.example.com
○ Note: Multiple proxies or a range of ports can be specified in additional
settings or by uploading a SOCKS5 list file.
○ Effect on Tests:
■ Helps in testing the target server's behavior when requests come from
various locations.
■ Useful for bypassing IP-based rate limiting or geo-blocking
mechanisms.
● Port Min & Port Max: Define the starting and ending ports for your SOCKS5 proxy's
traffic routing.
○ Port Min (Starting port): The initial port for the SOCKS5 proxy's available
range.
■ Impact: Starting point for port usage.
■ Example: 10000
○ Port Max (Ending port): The final port in the SOCKS5 proxy's range.
■ Impact: Ending point for port usage.
■ Example: 10010
○ Effect on Tests:
■ Distributes the load across a range of ports, helping in scenarios
where a single port might be rate limited or blocked.
■ Useful for testing servers with port-based load balancing.
● Username & Password: Enter credentials for SOCKS proxy authentication, if
required.
○ Impact: Allows authenticated access to SOCKS5 proxies.
○ Example: username, password
○ Effect on Tests:
■ Necessary for accessing authenticated proxies, enabling the use of
more diverse proxy services.
● Dial Workers Count: Set the number of concurrent connections to the target server.
○ Impact: Defines the intensity of the load on the target server.
○ Example: 150000
○ Effect on Tests:
■ Higher values simulate a larger number of simultaneous users,
increasing the stress on the server.
■ Useful for stress testing the server's ability to handle high concurrency.
● Main loop interval: Set the interval for the main loop execution.
○ Impact: Determines how frequently the main loop runs.
○ Example: 10ms
○ Effect on Tests:
■ Shorter intervals lead to more frequent execution of tasks, increasing
the load.
■ Longer intervals reduce the frequency of task execution, potentially
lowering the overall load.
● Go Max Procs: Set the number of processor cores that can be used by the test.
○ Impact: Limits the CPU usage for the test process.
○ Example: 12
○ Effect on Tests:
■ Allocating more cores can improve the performance of the stress
tester, especially for CPU-intensive tasks.
■ Useful for maximizing the efficiency of the testing machine.
● Data sending loop: Set the number of iterations for data sending once a connection
is successfully established.
○ Impact: Controls the amount of data sent per established connection.
○ Example: 50
○ Effect on Tests:
■ Higher values increase the number of requests sent over an
established connection, simulating high throughput scenarios.
● Error Limit: Set the limit for the number of errors before the test stops.
○ Impact: Helps in aborting the test when too many errors occur.
○ Example: 100
○ Effect on Tests:
■ Prevents prolonged testing under conditions where the server is
clearly overwhelmed or misconfigured.
● Data Size: Specify the size of the data to be sent in each request.
○ Impact: Determines the payload size of each request.
○ Example: 1024
○ Effect on Tests:
■ Larger data sizes increase the bandwidth usage and processing load
on the server.
■ Useful for testing the server's ability to handle large payloads.
● Duration: Determine the duration of the test in hours.
○ Impact: Specifies how long the stress test will run.
○ Example: 1
○ Effect on Tests:
■ Longer durations help in understanding the server's behavior over
extended periods.
■ Useful for identifying memory leaks or other long-term stability issues.
● PauseSet: Time to pause between sets of requests.
○ Impact: Controls the pause duration between request sets.
○ Example: 500s
○ Effect on Tests:
■ Introducing pauses can simulate more realistic user behavior, where
requests are not constant.
■ Helps in testing the server's ability to recover during periods of
reduced load.
● PauseRemove: Time to pause between removing sets.
○ Impact: Controls the pause duration between removing sets.
○ Example: 50s
○ Effect on Tests:
■ Similar to PauseSet, it allows for more realistic traffic patterns and can
help in observing the server's recovery.
● Test Type: Select the type of test to run (e.g., HTTP Flood, DNS
, etc.).
○ Impact: Determines the nature of the stress test.
○ Example: Flood HTTP, DNS:TCP
○ Effect on Tests:
■ Each test type simulates different kinds of load, useful for testing
specific aspects of the server's performance.
● Upload SOCKS5 File: Upload a file containing a list of SOCKS5 proxy addresses.
○ Impact: Allows routing test traffic through various proxies, simulating traffic
from different sources and geolocations.
○ Example: socks5_list.txt
○ Effect on Tests:
■ Enables distributed testing, useful for simulating DDoS attacks or
testing geo-redundant systems.
● PostType: Specify the type of POST request (e.g., form-data, JSON).
○ Impact: Determines the content type of the POST request.
○ Example: form-data, application/json
○ Effect on Tests:
■ Useful for testing endpoints that expect specific content types,
ensuring that the stress test mimics real-world traffic accurately.
● PostData: Specify data to be sent in the body of the POST request to the target web
server.
○ Impact: Used to simulate form submissions or other POST request activities.
○Example: username=testuser&password=secret
○Effect on Tests:
■ Essential for testing APIs or web forms, ensuring that the payload
matches expected formats.
● CustomHeaders: Add custom headers to the requests.
○ Impact: Allows adding specific headers required by the target server.
○ Example: Authorization: Bearer <token>
○ Effect on Tests:
■ Enables more sophisticated tests by mimicking authenticated requests
or adding necessary headers for specific server configurations.
This section describes each type of test available in Gorgon stress tester, along with detailed
instructions for configuring and running the tests, including all relevant fields.
● Description: Tests the SMTP server's ability to handle a large number of incoming
emails and connections.
● Configuration:
○ Victim URL: Enter the SMTP server's address. Example:
smtp://mail.example.com:25
○ Host Header: Set the host header for the SMTP server. Example:
mail.example.com
○ TimeOut: Set the timeout for connections. Example: 10s
○ Socks URL: (Optional) Provide a SOCKS5 proxy URL. Example:
proxy.example.com
○ Port Min: (Optional) Starting port for SOCKS5 proxy. Example: 10000
○ Port Max: (Optional) Ending port for SOCKS5 proxy. Example: 10010
○ Username: (Optional) Username for SOCKS5 proxy authentication. Example:
username
○ Password: (Optional) Password for SOCKS5 proxy authentication. Example:
password
○ Dial Workers Count: Set the number of concurrent connections. Example:
500
○ Main loop interval: Set the interval for the main loop execution. Example:
10ms
○ Go Max Procs: Set the number of processor cores to be used. Example: 12
○ Data sending loop: Number of iterations for data sending once a connection
is established. Example: 50
○ Error Limit: Set the error limit before stopping the test. Example: 100
○ Data Size: Specify the size of the data in each request. Example: 1024
○ Duration: Set the duration of the test in hours. Example: 1
○ PauseSet: Time to pause between sets of requests. Example: 5s
○ PauseRemove: Time to pause between removing sets. Example: 5s
○ CustomHeaders: (Optional) Add custom headers to the requests. Example:
Authorization: Bearer <token>
● Execution:
○ Enter all the necessary configurations.
○ Click "Start Test" to begin the SMTP stress test.
3.4. SSH
3.5. TCP
3.6. DNS
● Description: Tests the DNS server's resilience to a large volume of queries over
TCP.
● Configuration:
○ Victim URL: Enter the target URL with the dns:// prefix. Example:
dns://8.8.8.8
○ Hostname: Enter the hostname for DNS queries. Example: example.com
○ TimeOut: Set the timeout for connections. Example: 10s
○ Socks URL: (Optional) Provide a SOCKS5 proxy URL. Example:
proxy.example.com
○ Port Min: (Optional) Starting port for SOCKS5 proxy. Example: 10000
○ Port Max: (Optional) Ending port for SOCKS5 proxy. Example: 10010
○ Username: (Optional) Username for SOCKS5 proxy authentication. Example:
username
○ Password: (Optional) Password for SOCKS5 proxy authentication. Example:
password
○ Dial Workers Count: Set the number of concurrent connections. Example:
600
○ Main loop interval: Set the interval for the main loop execution. Example:
10ms
○ Go Max Procs: Set the number of processor cores to be used. Example: 12
○ Data sending loop: Number of iterations for data sending once a connection
is established. Example: 50
○ Error Limit: Set the error limit before stopping the test. Example: 100
○ Data Size: Specify the size of the data in each request. Example: 1024
○ Duration: Set the duration of the test in hours. Example: 1
○ PauseSet: Time to pause between sets of requests. Example: 5s
○ PauseRemove: Time to pause between removing sets. Example: 5s
○ CustomHeaders: (Optional) Add custom headers to the requests. Example:
Authorization: Bearer <token>
● Execution:
○ Enter all the necessary configurations.
○ Click "Start Test" to begin the DNS
stress test.
3.7. TRAF
● Description: Designed for simulating custom traffic to analyze the server's behavior
under various traffic patterns.
● Configuration:
○ Type: Select TRAF.
○ Victim URL: Enter the target URL. Example: http://example.com
○ Host Header: Set the host header if the server hosts multiple domains.
Example: example.com
○ TimeOut: Set the timeout for connections. Example: 5s
○ TLS: Select the TLS version if using HTTPS. Example: TLS1.2
○ Socks URL: (Optional) Provide a SOCKS5 proxy URL. Example:
proxy.example.com
○ Port Min: (Optional) Starting port for SOCKS5 proxy. Example: 10000
○ Port Max: (Optional) Ending port for SOCKS5 proxy. Example: 10010
○ Username: (Optional) Username for SOCKS5 proxy authentication. Example:
username
○ Password: (Optional) Password for SOCKS5 proxy authentication. Example:
password
○ Dial Workers Count: Set the number of concurrent connections. Example:
1000
○ Main loop interval: Set the interval for the main loop execution. Example:
10ms
○ Go Max Procs: Set the number of processor cores to be used. Example: 12
○ Data sending loop: Number of iterations for data sending once a connection
is established. Example: 50
○ Error Limit: Set the error limit before stopping the test. Example: 100
○ Data Size: Specify the size of the data in each request. Example: 1024
○ Duration: Set the duration of the test in hours. Example: 2
○ PauseSet: Time to pause between sets of requests. Example: 5s
○ PauseRemove: Time to pause between removing sets. Example: 5s
○ PostType: Specify the type of POST request. Example: form-data
○ PostData: Specify data to be sent in the body of the POST request. Example:
username=testuser&password=secret
○ CustomHeaders: (Optional) Add custom headers to the requests. Example:
Authorization: Bearer <token>
● Execution:
○ Enter all the necessary configurations.
○ Click "Start Test" to begin the TRAF test.
● Upload SOCKS5 File: This option allows you to upload a file containing a list of
SOCKS5 proxy addresses. This list is used to route test traffic through various
proxies, simulating traffic from different sources and geolocations.
○ File format: The file should contain a list of proxy addresses, each on a new
line. You can specify proxies with or without authentication.
■ With authentication:
socks5://username:password@host:port
■ Without authentication: socks5://host:port
○ socks5://proxy1.example.com:1080
○ socks5://user:[email protected]:1080
○ socks5://proxy3.example.com:1080
Usage: After uploading the file, the system will automatically use the provided
SOCKS5 addresses to route the test traffic. This enables tests from different IP
addresses and geolocations, useful for testing geo-dependent features or the
resilience of the service to international traffic.
Important: Ensure all proxies in the list are active and operational before starting the
test. Incorrectly configured or unavailable proxies can affect the accuracy and
effectiveness of the testing.