Skip to content

Commit

Permalink
Updated documentation for v0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
RickdeJager committed Nov 8, 2020
1 parent 37f3323 commit 5adb92d
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 30 deletions.
35 changes: 31 additions & 4 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,37 @@
# Build instructions

The build instructions will vary somewhat based on your host system. Ubuntu is used as an example.

## Installing dependencies
Running the following command will install all required dependencies:
In any case you will need to following dependencies:

```bash
sudo apt install libmhash-dev libmcrypt-dev libjpeg-dev zlib1g-dev git autoconf build-essential
* libmhash-dev
* libmcrypt-dev
* libjpeg-dev
* Can either the independent JPEG version or the libjpeg-turbo version
* The libjpeg version must be below 9
* zlib1g-dev

On Ubuntu, all of these packages can be installed using the following command:

```
sudo apt install libmhash-dev libmcrypt-dev libjpeg-dev zlib1g-dev
```

## build tools
You will also need the "autotools" suite of build tools. Depending on your distribution, these might be bundled in a single package (such as `build-essential` on Ubuntu).
If there is not a bundle available, you should install the following tools:

* make
* g++
* autoconf
* git


On Ubuntu, all of these packages can be installed using the following command:

```
sudo apt install git autoconf build-essential
```

## Building Stegseek
Expand All @@ -22,4 +50,3 @@ autoreconf -i
make
sudo make install
```

51 changes: 30 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# :zap: Stegseek

Stegseek is a lightning fast steghide cracker, built as a fork of the original steghide project. As a result it is _thousands of times_ faster than other crackers and can run through the entirety of **`rockyou.txt` in just 5 seconds.**
Stegseek is a lightning fast steghide cracker, built as a fork of the original steghide project. As a result it is _thousands of times_ faster than other crackers and can run through the entirety of **`rockyou.txt` in under 5 seconds.**

Skip ahead to [Performance](#chart_with_upwards_trend-performance) for some raw numbers.

Expand All @@ -10,10 +10,10 @@ The following instructions walk you through the installation process. Alternativ

## Releases

On Ubuntu-based systems, you can use the provided `.deb` package for installation:
On Ubuntu and Debian-based systems, you can use the provided `.deb` package for installation:

1. Download the latest [Stegseek release](https://github.com/RickdeJager/stegseek/releases)
1. Install the `.deb` file using `sudo apt install ./stegseek_0.2-1.deb`
1. Install the `.deb` file using `sudo apt install ./stegseek_0.3-1.deb`

## Building from source
On other systems you will have to build Stegseek yourself. See [BUILD.md](BUILD.md) for more information.
Expand All @@ -28,7 +28,7 @@ stegseek --crack -sf [stegofile.jpg] -wl [wordlist.txt]

Use `stegseek --help` to get the full list of available options:
```
Stegseek version 0.2
Stegseek version 0.3
=== Stegseek Help ===
To crack a stegofile;
Expand All @@ -37,6 +37,7 @@ stegseek --crack -sf [stegofile.jpg] -wl [wordlist.txt]
Cracking options:
-sf, --stegofile select stego file
-wl, --wordlist select the wordlist file
-xf, --extractfile select file name for extracted data
-t, --threads set the number of threads. Defaults to the number of cores.
-v, --verbose display detailed information
-q, --quiet skip performance metrics (slightly increases performance)
Expand Down Expand Up @@ -66,50 +67,58 @@ This password is on line `14344383` out of `14344391`

```
time stegseek --crack -wl rockyou.txt -sf 7spaces1.jpg
Stegseek version 0.2
Stegseek version 0.3
[i] Read the entire wordlist (14344391 words), starting cracker
[ 14344392 / 14344391 ] (100,00%)
[ 14299660 / 14344391 ] (99,69%)
[i] --> Found passphrase: " 1"
[i] Original filename: "secret.txt"
[i] Original filename: "secret"
[i] Extracting to "7spaces1.jpg.out"
real 0m5,236s
user 0m32,943s
sys 0m3,909s
real 0m4,397s
user 0m27,948s
sys 0m0,220s
```

And there it is, over 14 million passwords in 5 seconds :heart_eyes:.
And there it is, over 14 million passwords in less than 5 seconds :heart_eyes:.

## How does this compare to other tools?

To test the performance of of other tools, I created several stego files with different passwords, taken from `rockyou.txt`. I ran each of the tools with their default settings, except Stegbrute where I increased threading for a fair comparison.

| password | Line | Stegseek v0.2 | Stegcracker 2.0.9 | Stegbrute v0.1.1 (-t 8) |
| password | Line | Stegseek v0.3 | Stegcracker 2.0.9 | Stegbrute v0.1.1 (-t 8) |
|-------------|-------------|---------------|-------------------|-------------------------|
| "cassandra" | 1 000 | 0.7s | 3.1s | 0.7s |
| "kupal" | 10 000 | 0.8s | 14.4s | 7.1s |
| "sagar" | 100 000 | 0.8s | 2m23.0s | 1m21.9s |
| "budakid1" | 1 000 000 | 1.1s | [p] 23m50.0s | 13m45.7s |
| "␣␣␣␣␣␣␣1" | 14 344 383 | 5.2s | [p] 5h41m52.5s | [p] 3h17m38.0s |
| "cassandra" | 1 000 | 1.0s | 3.1s | 0.7s |
| "kupal" | 10 000 | 1.0s | 14.4s | 7.1s |
| "sagar" | 100 000 | 1.1s | 2m23.0s | 1m21.9s |
| "budakid1" | 1 000 000 | 1.2s | [p] 23m50.0s | 13m45.7s |
| "␣␣␣␣␣␣␣1" | 14 344 383 | 4.4s | [p] 5h41m52.5s | [p] 3h17m38.0s |

[p] = projected time based on previous results.

To compare the speed of each tool, let's look at the last row of the table (otherwise Stegseek finishes before all threads have started).
At this scale Stegseek is almost **4000** times faster than Stegcracker and over **2000** times faster than Stegbrute.
At this scale Stegseek is over **4500** times faster than Stegcracker and over **2500** times faster than Stegbrute.


## Changelog
# :notebook: Changelog

### v0.2
## v0.3
2020-11-08
improvements:
* Made threading lock-free s.t. multiple threads are used more efficiently
* Added `-xf` argument to `--crack`, used to specify the location of the extracted file
* Made the .deb package compatible with Debian/Kali
* cracks `rockyou.txt` in 4 seconds

## v0.2
2020-11-05
improvements:
* Give up on a passphrase once a single bit of the magic fails to decode
* Removed costly BitString / EmbData allocations
* Improved performance of the selector
* cracks `rockyou.txt` in 5 seconds.

### v0.1
## v0.1
2020-11-04
Initial release, features:
* Only loads the stego file once, unlike conventional crackers
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(stegseek, 0.2)
AC_INIT(stegseek, 0.3)
AC_CONFIG_SRCDIR(src/main.cc)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([foreign])
Expand Down
4 changes: 2 additions & 2 deletions package/package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
#

NAME="stegseek"
VER="0.2"
REV="2"
VER="0.3"
REV="1"
VERSION="${VER}-${REV}"
PACKAGE="${NAME}_${VERSION}"
INSTALL_PATH="${PACKAGE}/usr/local/bin/"
Expand Down
2 changes: 1 addition & 1 deletion src/Cracker.cc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Stegseek 0.2 - a steghide cracker
* Stegseek 0.3 - a steghide cracker
* Copyright (C) 2020 Rick de Jager
*
* Based on the work of Stefan Hetzl <[email protected]>
Expand Down
2 changes: 1 addition & 1 deletion src/Cracker.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
*
* Stegseek 0.2 - a steghide cracker
* Stegseek 0.3 - a steghide cracker
* Copyright (C) 2020 Rick de Jager
*
* Based on the work of Stefan Hetzl <[email protected]>
Expand Down

0 comments on commit 5adb92d

Please sign in to comment.