An open API service indexing awesome lists of open source software.

https://github.com/fyxme/dreamcatcher

Dreamcatcher combines a TCP listener (eg. reverse shell listener) and an HTTP file server (ie. similar to python SimpleHTTPServer).
https://github.com/fyxme/dreamcatcher

fileserver listener shell tcp-server weblistener

Last synced: 3 months ago
JSON representation

Dreamcatcher combines a TCP listener (eg. reverse shell listener) and an HTTP file server (ie. similar to python SimpleHTTPServer).

Awesome Lists containing this project

README

          

# Dreamcatcher

Dreamcatcher combines a tcp connection listener (eg. reverse shell listener) and an HTTP file server (ie. similar to python SimpleHTTPServer).

This means you can listen for http requests and reverse shells on the same TCP port.

Also reduces the amount of tab, tmux panes, windows, etc.. that you need since everything is served on the same port.

This tool is provided as is. YMMV.

> It's like running an infinite number of netcat listeners and a python HTTP server at once. This is brilliant! - Emon Lusk

## Compiling

```
go build dreamcatcher.go
```

## Usage

```
$ dreamcatcher -h
Usage of dreamcatcher:
-d string
Directory you want to serve files from (default ".")
-i string
Host to listen on (default "127.0.0.1")
-p int
Port to listen on (default 4444)
-v Verbose mode
```

```
$ ./dreamcatcher -d /tmp
:: Catcher listening on 127.0.0.1:4444
:: Serving directory /tmp
:: HTTP request for file: /tmp/test.txt
[127.0.0.1:35776] :: $ whoami
[127.0.0.1:35776] :: root
```

## Known bugs and future improvements

It can currently catch multiple reverse shells at once but it doesnt handle them properly. Instead it will switch between them:
```
$ go run dreamcatcher.go
:: Catcher listening on 127.0.0.1:4444
:: Serving directory .
[127.0.0.1:35686] :: $ [127.0.0.1:35688] :: $
[127.0.0.1:35686] :: $ [127.0.0.1:35690] :: $
[127.0.0.1:35688] :: $
[127.0.0.1:35686] :: $
[127.0.0.1:35690] :: $
[127.0.0.1:35688] :: $
[127.0.0.1:35686] :: $
```

### Todo

- add menu with prefix
- prefix ":"
- action: help, list/ls, switch/s \
- add a way to switch between reverse shells (ie. via menu action)