Skip to content

jazzpizazz/catch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catch

Rust-based linux reverse shell listener.

Installation

TODO: fix this installation guide, but this kinda works:

mkdir /opt/catch/
cd /opt/catch/
git clone https://github.com/jazzpizazz/catch.git
cargo build -r

Usage

Wihtout any arguments catch will start listening on 0.0.0.0:8443, you can however specify the IP and port you want to listen on:

$ target/release/catch -h
Rust-based linux reverse shell listener.

Usage: catch [OPTIONS]

Options:
  -i, --ip <IP>      [default: 0.0.0.0]
  -p, --port <PORT>  [default: 8443]
  -h, --help         Print help
  -V, --version      Print version

catch does not work with sessions, if you want to get multiple shells, just start multiple listeners.

Usage

When running catch it will start listening for an incoming shell. Once a connection is made, catch will attempt to upgrade to a fully interactive shell using either python3, python3 or script. After that it will unset the histfile, set the terminal to raw mode and drop into a fully interactive shell:

$ target/release/catch   
[i] Listening on 0.0.0.0:8443...
[+] Connected by 127.0.0.1:35262
[i] Attempting TTY upgrade...
[+] Binary 'python3' is installed, upgrading shell...
[i] Unsetting histfile...
┌──(kali㉿kali)-[~]
└─$    

Note: Situations where the tty upgrade fails are not yet handled correctly

Shortcuts

When in a shell you can press the magic ctrl+y key combination to open up a special menu: shortcuts
In here you can search for a "shortcut" either by arrow keys or by typing (notice the search query in the bottom left) after which you hit enter to directly send the associated command to the shell!

Adding your own shortcuts

Currently all shortcuts are stored in /opt/catch/shortcuts.json. It is created on first startup and you can add your own commands in it. In a future version catch will come with sane defaults shortcuts that are usefull for everyone, while still supporting extension through a JSON file, allowing you to add your own shortcuts with ease.

Exiting

To exit a connected reverse shell hit ctr+_ this will kill the shell and attempt to revert your terminal to its default settings.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please keep in mind that catch is still in development.

About

Rust-based linux reverse shell listener.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages