Giter Site home page Giter Site logo

distress-releases's Introduction

Distress

load-testing tool

Features

  • uses proxies of all possible countries by default
  • built-in support for tor exit nodes (refer to --use-tor flag)
  • low CPU usage
  • supports a large number of platforms
  • automatic update of targets from ITArmy UA
  • advanced methods of flooding

Table of Contents

Usage tips

Warning Be sure to use a VPN with the --use-my-ip option

Warning Don't mix VPN with proxy as it can lead to poor performance

Warning To make it run in the background, use the screen or tmux utilities

Warning To run some advanced methods, you need to run the tool as an administrator

System optimizations

Warning Advanced users only

Installation

x100

Note X100+Distress is best used on VPS servers as it greatly reduces the chance of a ban.

Distress is integrated into the x100 tool, you can read the full documentation on setting up and run here.

Linux

wget https://github.com/Yneth/distress-releases/releases/latest/download/distress_x86_64-unknown-linux-musl
chmod +x distress_x86_64-unknown-linux-musl
./distress_x86_64-unknown-linux-musl
with screen
wget https://github.com/Yneth/distress-releases/releases/latest/download/distress_x86_64-unknown-linux-musl
chmod +x distress_x86_64-unknown-linux-musl
screen -S "distress" ./distress_x86_64-unknown-linux-musl

MacOS

wget https://github.com/Yneth/distress-releases/releases/latest/download/distress_x86_64-apple-darwin
chmod +x distress_x86_64-apple-darwin && sudo xattr -d com.apple.quarantine distress_x86_64-apple-darwin
./distress_x86_64-apple-darwin

Windows

Note preferably install the Linux version via WSL as it is more stable and provides better performance

download and run the latest binary

Docker

Warning Docker does not support auto updates

docker run --rm -it --pull always --network host ghcr.io/yneth/distress 

Community

If you encounter errors while using distress, please refer to github issues or telegram community

Output Description

Column Description
active_connections The number of successfully established connections performed by flood at the current moment
bps The average number of bits per second since the last log message read from the network interface
pps The average number of packets per second since the last log message read from the network interface
requests Queries made by the tool since the last log message
bytes Bytes sent by the tool since the last log message
pending_connections The number of connections in pending state

Help

./distress -h

load-testing tool

Usage: distress [OPTIONS]

Options:
  -v, --verbose...
          Increase logging verbosity
  -q, --quiet...
          Decrease logging verbosity
  -t, --targets-path <TARGETS_PATH>
          path or url to get configuration from [default: itarmy_ua]
  -c, --concurrency <CONCURRENCY>
          number of tasks
      --use-my-ip <USE_MY_IP>
          hint to use your ip in % of requests from 0 to 100 inclusive works amazing with VPN [default: 0]
      --use-tor <USE_TOR>
          number of tor connections per target to use, max 100
      --disable-auto-update
          disables automatic updates
      --log-per-target
          Enables togging info for targets
      --log-interval-sec <LOG_INTERVAL_SEC>
          manages log frequency
      --json-logs
          print logs as json
      --user-id <USER_ID>
          send personalized user stats to receive rewards in future
      --interface <INTERFACE>
          advanced: comma separated socket interface names to use example: --interface eth0,lo0
      --read-timeout <READ_TIMEOUT>
          advanced: socket read timeout in milliseconds [default: 10000]
      --tls-connect-timeout <TLS_CONNECT_TIMEOUT>
          advanced: tls handshake timeout in milliseconds [default: 10000]
      --connect-timeout <CONNECT_TIMEOUT>
          advanced: socket connect timeout for targets and proxies in milliseconds [default: 10000]
      --proxy-connect-timeout <PROXY_CONNECT_TIMEOUT>
          advanced: socket proxy connect timeout for targets and proxies in milliseconds [default: 10000]
      --tor-connect-timeout <TOR_CONNECT_TIMEOUT>
          advanced: tor connect timeout in milliseconds [default: 10000]
      --h2-handshake-timeout <H2_HANDSHAKE_TIMEOUT>
          advanced: h2 handshake timeout in milliseconds [default: 10000]
      --h2-ready-send-timeout <H2_READY_SEND_TIMEOUT>
          advanced: h2 handshake timeout in milliseconds [default: 10000]
      --buffer-read-size <BUFFER_READ_SIZE>
          advanced: application stream buffer read size
      --buffer-write-size <BUFFER_WRITE_SIZE>
          advanced: application stream buffer write size
      --requests-per-conn <REQUESTS_PER_CONN>
          advanced: hint to send specific amount requests per single connection [default: 128]
      --so-send-buf <SO_SEND_BUF>
          advanced: socket SO_SNDBUF option, see linux man for more
      --so-recv-buf <SO_RECV_BUF>
          advanced: socket SO_RCVBUF option, see linux man for more
      --disable-so-buf
          advanced: disable so_send_buf, so_recv_buf
      --disable-so-nolinger
          advanced: disable so_linger(0)
      --disable-tcp-nodelay
          advanced: disable tcp_nodelay option
      --worker-threads <WORKER_THREADS>
          advanced: customize worker thread count for tokio scheduler
  -h, --help
          Print help information (use `--help` for more detail)
  -V, --version
          Print version information

distress-releases's People

Contributors

okineadev avatar vadyochik avatar yneth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

distress-releases's Issues

bin_updater| something went wrong

Hit this error message on an embedded machine:

~# ./distress
2022-07-16 00:00:03 INFO - bin_updater| started
2022-07-16 00:00:03 INFO - bin_updater| found new version, current="0.2.2", new="0.3.0"
2022-07-16 00:00:03 INFO - bin_updater| there is new version available, updating
2022-07-16 00:00:05 INFO - bin_updater| something went wrong, reason IO(Os { code: 18, kind: CrossesDevices, message: "Cross-device link" })

Manual upgrade essentially does the job.

targets-path

Could you please describe config file format for "targets-path"&

Termux support

When I try to run it, I got the following error. Is it possible to support Termux?

$ ./distress_aarch64-unknown-linux-musl
2024-03-23 17:54:57 WARN  - failed to load latest version, reason: TimedOutFetchingVersion. continuing to work...
2024-03-23 17:54:59 INFO  - main| starting distress:0.7.20 for any questions or support refer to: https://t.me/distress_support
2024-03-23 17:54:59 INFO  - main| initializing context...
2024-03-23 17:56:55 INFO  - context| using interface ["wlan0"]
2024-03-23 17:59:21 ERROR - failed to load targets
2024-03-23 18:00:05 WARN  - failed to load proxies
2024-03-23 18:00:05 INFO  - main| starting...
2024-03-23 18:00:05 ERROR - core| failed due to internal error, error_id:d39a9b6c-9215-498a-b743-28cf47bad418 error:no targets...
2024-03-23 18:00:05 INFO  - core| attempting to restart in 30sec...
2024-03-23 18:00:35 INFO  - core| refreshing app...

Не працює в alpine

Я маю таку помилку

./distress_x86_64-unknown-linux-gnu 
zsh: no such file or directory: ./distress_x86_64-unknown-linux-gnu

Сам файл є, схоже що немає якоїсь утіліти, що використовується

targets-path no work

I use option targets-path
--targets-path /root/t.txt
see

2022-07-15 09:22:19 INFO - bin_updater| started
2022-07-15 09:22:19 INFO - bin_updater| no new version ("0.2.2"), skipping...
2022-07-15 09:22:19 INFO - main| initializing context...
2022-07-15 09:22:20 ERROR - failed to fetch web config src/core.rs:179
2022-07-15 09:22:20 INFO - bin_updater| child exited with status Ok(ExitStatus(unix_wait_status(256)))
2022-07-15 09:22:20 INFO - bin_updater| shutting down... it can take a couple of seconds

traffic_limit

реалізуйте обмеження трафіку щоб vps провайдери не блокували через алерти по трафіку

Incredibly large active connections value - uint32 underflow?

Probably something wrong happens to "active connections" variable:

2022-11-25 17:42:28.678919721 INFO - starting with concurrency: 2000
2022-11-25 17:42:28.681592604 INFO - Your IP 5%, pool_proxies: 200, tor_proxies: 0
2022-11-25 17:42:36.112770145 INFO - active connections=27, pps=0.54k, bps=2.325Mb, requests=3.81k, bytes=16.227Mb, pending connections=429
2022-11-25 17:42:43.118441435 INFO - active connections=2, pps=0.48k, bps=1.667Mb, requests=3.35k, bytes=11.574Mb, pending connections=340
2022-11-25 17:42:50.26875341 INFO - active connections=4294967276, pps=0.32k, bps=1.458Mb, requests=2.24k, bytes=10.136Mb, pending connections=314
2022-11-25 17:42:57.279640588 INFO - active connections=4294967235, pps=0.38k, bps=1.885Mb, requests=2.68k, bytes=13.54Mb, pending connections=314
2022-11-25 17:43:04.285786957 INFO - active connections=4294967239, pps=0.40k, bps=1.651Mb, requests=2.83k, bytes=11.461Mb, pending connections=308

Sqlite error

✦ ➜ ./distress_x86_64-apple-darwin -c 2048
2022-07-08 12:44:14 INFO - bin_updater| started
2022-07-08 12:44:15 INFO - bin_updater| no new version ("0.2.2"), skipping...
2022-07-08 12:44:15 INFO - main| initializing context...
thread 'main' panicked at 'called Result::unwrap() on an Err value: TorError(Error { detail: DirMgr(Bug(Bug(BugRepr { message: "sqlite detected bug", location: Location { file: "/Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/tor-dirmgr-0.5.0/src/err.rs", line: 286, col: 17 }, backtrace: Captured( 0: __mh_execute_header
1: __mh_execute_header
2: __mh_execute_header
3: __mh_execute_header
4: __mh_execute_header
5: __mh_execute_header
6: __mh_execute_header
7: __mh_execute_header
8: __mh_execute_header
9: __mh_execute_header
10: __mh_execute_header
11: __mh_execute_header
), source: Some(SqliteFailure(Error { code: ReadOnly, extended_code: 8 }, Some("attempt to write a readonly database"))), kind: Internal }))) })', src/main.rs:67:16

Please track this error here:
https://github.com/Yneth/distress-releases/issues
or
https://discord.gg/rWTNk3UR
additional info:
platform=distress_x86_64-apple-darwin
version=0.2.2

2022-07-08 12:44:28 INFO - bin_updater| child exited with status Ok(ExitStatus(unix_wait_status(6)))
2022-07-08 12:44:28 INFO - bin_updater| shutting down... it can take a couple of seconds

Error при запуску

./distress_x86_64-unknown-linux-musl -c 2048
2022-06-24 16:03:34 INFO - bin_updater| started
2022-06-24 16:03:34 INFO - main| initializing context...
2022-06-24 16:03:35 WARN - Failed to fetch targets, reason ReqwestError(reqwest::Error { kind: Decode, source: Error("invalid type: integer 404, expected a sequence", line: 1, column: 3) }) src/core.rs:111
2022-06-24 16:03:39 ERROR - main| failed to due to error, reason ReqwestError(reqwest::Error { kind: Decode, source: Error("expected value", line: 1, column: 1) }) src/main.rs:90
2022-06-24 16:03:39 INFO - bin_updater| child exited with status Ok(ExitStatus(unix_wait_status(256)))
2022-06-24 16:03:39 INFO - bin_updater| shutting down... it can take a couple of seconds

index out of bounds: the len is 46 but the index is 95

{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704061436688,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704062216394,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704062280846,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704062291847,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704062308635,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704104783122,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704127652922,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704127659137,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704131294247,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704138270705,"message":"Module DISTRESS started"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704183793944,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704186355801,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704196754771,"message":"Module DISTRESS started"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704225245811,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704226871511,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704233270123,"message":"Module DISTRESS started"}
{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704235515214,"message":"Module DISTRESS stopped"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704235596392,"message":"Module DISTRESS started"}
{"type":"STARTED","moduleName":"DISTRESS","timestamp":1704287967575,"message":"Module DISTRESS started"}
{ "level":"INFO", "date":"2024-01-03 14:19:27", "msg":"main| starting distress:0.7.11 for any questions or support refer to: https://t.me/distress_support" }
{ "level":"INFO", "date":"2024-01-03 14:19:27", "msg":"main| initializing context..." }
{ "level":"WARN", "date":"2024-01-03 14:19:28", "msg":"packet flood is not allowed, reason: "OpenSocketFailed(Os { code: 1, kind: PermissionDenied, message: "Operation not permitted" })"" }
thread 'main' panicked at 'index out of bounds: the len is 46 but the index is 95', /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/default-net-0.14.1/src/interface/unix.rs:178:17

Please track this error here:
https://t.me/distress_support

or
https://github.com/Yneth/distress-releases/issues
additional info:
platform=distress_x86_64-apple-darwin
version=0.7.11

{"type":"STOPPED","moduleName":"DISTRESS","timestamp":1704287968704,"message":"Module DISTRESS stopped"}

"no tunnels to flood through..."

1 hour - and stop attacking
.
.
.
2024-03-06 11:19:48 INFO - active connections=7194, pps=33.27k, bps=311.160Mb, requests=232.92k, bytes=2.130Gb, pending connections=1337
2024-03-06 11:19:55 INFO - active connections=7288, pps=30.55k, bps=289.837Mb, requests=213.85k, bytes=1.1004Gb, pending connections=1219
2024-03-06 11:20:01 WARN - failed to load proxies
2024-03-06 11:20:03 INFO - Your IP 0%, pool_proxies: 0, tor_proxies: 0
2024-03-06 11:20:03 WARN - loaded zero proxies...
2024-03-06 11:20:03 ERROR - core| failed due to internal error, error_id:f08ada2c-fecf-43c6-94c3-6e73565b5f1e error:Generic("no tunnels to flood through...")
2024-03-06 11:20:03 INFO - core| attempting to restart in 60sec...
2024-03-06 11:20:04 INFO - active connections=0, pps=29.76k, bps=283.915Mb, requests=238.06k, bytes=2.223Gb, pending connections=0
2024-03-06 11:21:03 INFO - Your IP 0%, pool_proxies: 0, tor_proxies: 0
2024-03-06 11:21:03 WARN - loaded zero proxies...
2024-03-06 11:21:04 ERROR - core| failed due to internal error, error_id:437e411f-0db4-41b8-bc87-fb3a85f35ff3 error:Generic("no tunnels to flood through...")
2024-03-06 11:21:04 INFO - core| attempting to restart in 60sec...

_distress_logs (1).txt

unknown flag: --user-id

$ docker run --name distress --rm -it --pull always --network host --user-id XXXXXXX ghcr.io/yneth/distress
unknown flag: --user-id

Scr

Hello, could you please upload the source code?

"--user-id" does not work

In version 0.7.9 "--user-id" does not work. When switch to the old version 0.7.8, then the statistics work.

failed to parse targets

2022-07-05 11:31:05 INFO - main| initializing context...                                                                
2022-07-05 11:31:05 ERROR - failed to fetch web config  src/core.rs:133                                                 
2022-07-05 11:31:07 ERROR - main| failed to due to error, reason Generic("failed to parse targets file, unknown version"
)  src/main.rs:90                                                                                                       
2022-07-05 11:31:07 INFO - bin_updater| child exited with status Ok(ExitStatus(unix_wait_status(256)))                  

v 0.1.8

And that`s all I got

2022-07-09 13:42:27 INFO - bin_updater| started
2022-07-09 13:42:27 INFO - bin_updater| no new version ("0.2.2"), skipping...
2022-07-09 13:42:27 INFO - main| initializing context...

WARN - failed to move current binary to tmp

Updater fails as below:

2022-09-19 07:26:47.624255 INFO - bin_updater| there is new version available, updating
2022-09-19 07:26:57.188623 WARN - failed to move current binary to tmp, reason: Os { code: 18, kind: CrossesDevices, message: "Cross-device link" }  src/updater.rs:188
2022-09-19 07:26:57.193351 WARN - bin_updater| failed to load new binary, reason: IO(Os { code: 18, kind: CrossesDevices, message: "Cross-device link" })  src/updater.rs:99

But binary is actually in /tmp:
-rwxr-xr-x 1 root root 11429588 Sep 19 07:28 distress_i686-unknown-linux-musl_1663572521256

HW: OpenWrt x86 box.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.