Skip to content

Commit

Permalink
doc: update doc (#3)
Browse files Browse the repository at this point in the history
* doc: update readme

* chore: import published version in cmd

* doc: update demo

* doc: describe scenarios

* doc: logo

* chore: change to h3
  • Loading branch information
bcho committed Sep 2, 2023
1 parent 39aed47 commit df6d6d8
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 13 deletions.
94 changes: 85 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,91 @@
# turtle
<h3 align="center">
<a href="https://github.com/b4fun/turtle">
<img src="docs/assets/turtle-logo.png" width="220px" style="inline-block" />
</a>
</h3>

🐢 Turtle is a toolkit for simulating and validating application layer denial-of-service attacks in both live and unit testing environments.

<p align="center">
<a href="https://github.com/b4fun/turtle/releases"><img src="https://img.shields.io/github/release/b4fun/turtle.svg" alt="Github release"></a>
<a href="https://pkg.go.dev/github.com/b4fun/turtle"><img src="https://pkg.go.dev/badge/github.com/b4fun/turtle.svg" alt="GoDoc" /></a>
</p>

## 🚨 Disclaimer

> **Important**: The use of this program for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to comply with all applicable local, state, and federal laws. The developers assume no liability and are not responsible for any misuse or damage caused by this program.
## 🎯 Why Use Turtle?

Exposing an application to the public internet is fraught with risks due to various types of denial-of-service attacks, such as:

- [slowloris][cf_slowloris]
- [low and slow attack][cf_low_and_slow]
- [R.U.D.Y][cf_rudy]
- ... and many more

While some applications may have well-configured settings that render them invulnerable to these attacks, others, such as those built with popular languages like Golang, might be [vulnerable by default][gonuts_slowloris].
Turtle provides an easy way to validate your application against these common threats to identify risks.

Furthermore, an application that is secure today may become vulnerable due to future changes.
Therefore, integrating these attack simulations into your regular validation process is crucial.

## 🛠 Features

Turtle provides:

- A Command-Line Interface (CLI) for validating real endpoints
- A Golang library for easy integration into unit/integration tests

### Supported Scenarios

Turtle current supports the following scenarios:

- [slowloris][cf_slowloris]
- [slow body read][cf_low_and_slow]

## 🚀 Getting Started

### Turtle CLI

You can install the CLI tool via:

```bash
go install github.com/b4fun/turtle/cmd/turtle@latest
```

Or download a release binary from the [GitHub Release page][gh_release].

### Using Turtle CLI

The turtle CLI embeds supported scenarios as sub-commands. A common way to invoke a scenario test:

```
$ turtle <scenario-name> <target-url>
```

![](/docs/demo/demo.gif)

## Disclaimer
Further details can be obtained by viewing the command's help message:


```
$ turtle -h
# Scenario specified help
$ turtle slowloris -h
```

### Turtle Golang Library

For the Golang library, documentation can be found on [GoDoc][godoc].

> Usage of this program for attacking targets without
> prior mutual consent is illegal. It is the end user's responsibility to obey
> all applicable local, state and federal laws in all countries.
> Developers assume no liability and are not responsible for any misuse or
> damage caused by this program.
## 📜 LICENSE

## LICENSE
Turtle is distributed under the [MIT license][/LICENSE]

MIT
[cf_slowloris]: https://www.cloudflare.com/learning/ddos/ddos-attack-tools/slowloris/
[cf_low_and_slow]: https://www.cloudflare.com/learning/ddos/ddos-low-and-slow-attack/
[cf_rudy]: https://www.cloudflare.com/learning/ddos/ddos-attack-tools/r-u-dead-yet-rudy/
[gonuts_slowloris]: https://groups.google.com/g/golang-nuts/c/MFZd6b8zQTQ
[gh_release]: https://github.com/b4fun/turtle/releases
[godoc]: http://godoc.org/github.com/b4fun/turtle
4 changes: 1 addition & 3 deletions cmd/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@ module github.com/b4fun/turtle/cmd

go 1.20

replace github.com/b4fun/turtle => ../

require (
github.com/b4fun/turtle v0.0.0-00010101000000-000000000000
github.com/b4fun/turtle v0.0.2
github.com/charmbracelet/bubbles v0.16.1
github.com/charmbracelet/bubbletea v0.24.2
github.com/charmbracelet/lipgloss v0.7.1
Expand Down
2 changes: 2 additions & 0 deletions cmd/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ github.com/alecthomas/kong v0.8.0/go.mod h1:n1iCIO2xS46oE8ZfYCNDqdR0b0wZNrXAIAqr
github.com/alecthomas/repr v0.1.0 h1:ENn2e1+J3k09gyj2shc0dHr/yjaWSHRlrJ4DPMevDqE=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/b4fun/turtle v0.0.2 h1:KQ1bmylw1NIMLtlhRjA5pEIbdauOtbTVTVHUj0BRd8Y=
github.com/b4fun/turtle v0.0.2/go.mod h1:uyKhRwB9MT7cTu1LtC6xPHhnmbm4OWjWaNCNlET/ZQ0=
github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY=
github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc=
github.com/charmbracelet/bubbletea v0.24.2 h1:uaQIKx9Ai6Gdh5zpTbGiWpytMU+CfsPp06RaW2cx/SY=
Expand Down
Binary file added docs/assets/turtle-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/demo/demo.cast
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Set Shell zsh
Set FontSize 11
Escape
Type "[200~go run ./turtle/ slowloris http://localhost:8889 --http-send-gibberish"
Type "[200~turtle slowloris http://localhost:8889 --http-send-gibberish"
Escape
Type "[201~"
Enter
Expand Down
Binary file modified docs/demo/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit df6d6d8

Please sign in to comment.