Fixed Dockerfile and README typos

This commit is contained in:
Caleb Stewart 2021-11-28 19:58:09 -05:00
parent 473c70ecc8
commit 0cd9a9b64f
3 changed files with 51 additions and 80 deletions

View File

@ -11,3 +11,4 @@ test.py
.gitattributes .gitattributes
.gitignore .gitignore
.git/ .git/
!README.md

View File

@ -21,7 +21,7 @@ RUN set -eux \
# Setup pwncat # Setup pwncat
RUN set -eux \ RUN set -eux \
&& cd /opt/pwncat \ && cd /opt/pwncat \
&& python setup.py install && pip install .
FROM python:3.9-alpine as final FROM python:3.9-alpine as final
@ -32,13 +32,13 @@ RUN set -eux \
# Copy installed packages from builder image # Copy installed packages from builder image
COPY --from=builder /usr/local/lib/python3.9 /usr/local/lib/python3.9 COPY --from=builder /usr/local/lib/python3.9 /usr/local/lib/python3.9
COPY --from=builder /usr/local/bin/pwncat /usr/local/bin/pwncat COPY --from=builder /usr/local/bin/pwncat-cs /usr/local/bin/pwncat-cs
# Ensure we have the pwncat plugins downloaded # Ensure we have the pwncat plugins downloaded
RUN python -m pwncat --download-plugins RUN pwncat-cs --download-plugins
# Set working directory # Set working directory
WORKDIR /work WORKDIR /work
# Entrypoint is pwncat itself # Entrypoint is pwncat itself
ENTRYPOINT ["python", "-m", "pwncat"] ENTRYPOINT ["pwncat-cs"]

122
README.md
View File

@ -43,84 +43,8 @@ the latest usage and development documentation!
**pwncat requires Python 3.9+ on Linux** **pwncat requires Python 3.9+ on Linux**
## Naming Changes
Due to the naming conflict with [Cytopia's pwncat](https://pwncat.org/), I have
decided to rename the package to `pwncat-cs`. This includes renaming the
entrypoint so that there are no direct conflicts with Cytopia's project. If you
are updating from `v0.4.*`, the command name will now have changed, and the `pcat`
and `pc` varianst have been removed. See the most recent release notes for more
details.
The added benefit of this move is that the project is now pushed to PyPI for
easier installation/updating in the future.
## Installation ## Installation
pwncat is available on PyPI as `pwncat-cs`. It exposes an entrypoints named
`pwncat`, `pcat` and `pc`. It **does** conflict with the `pwncat` package,
so if you need both, we recommend using a virtual environment. pwncat also
exposes an importable module named `pwncat` with full access to the internals
and automation. You can install from PyPi like so:
``` shell
pip install pwncat-cs
```
pwncat uses [poetry](https://python-poetry.org) for dependency and build
management. For a development environment, install poetry as described on their
website, and then use it to manage your environment:
``` shell
# Clone the repo
git clone https://github.com/calebstewart/pwncat
cd pwncat
# Enter/create the pwncat specific virtual environment
poetry shell
# Install dependencies
poetry install
# Use pwncat
pwncat --help
# Use `exit` to leave the virtual environment
exit
```
## Windows Support
`pwncat` now supports connections from Windows targets starting at `v0.4.0a1`. The Windows
platform utilizes a .Net-based C2 library which is loaded automatically. Windows
targets should connect with either a `cmd.exe` or `powershell.exe` shell, and
pwncat will take care of the rest.
The libraries implementing the C2 are implemented at [pwncat-windows-c2].
The DLLs for the C2 will be automatically downloaded from the targeted release
for you. If you do not have internet connectivity on your target machine,
you can tell pwncat to pre-stage the DLLs using the `--download-plugins`
argument. If you are running a release version of pwncat, you can also download
a tarball of all built-in plugins from the releases page.
The plugins are stored by default in `~/.local/share/pwncat`, however this is
configurable with the `plugin_path` configuration. If you download the packaged
set of plugins from the releases page, you should extract it to the path pointed
to by `plugin_path`.
Aside from the main C2 DLLs, other plugins may also be available. Currently,
the only provided default plugins are the C2 and an implementation of [BadPotato].
pwncat can reflectively load .Net binaries to be used a plugins for the C2.
For more information on Windows C2 plugins, please see the [documentation].
## Modules
Recently, the architecture of the pwncat framework was redesigned to
incorporate a generic "module" structure. All functionality is now
implemented as modules. This includes enumeration, persistence and
privilege escalation. Interacting with modules is similar to most other
post-exploitation platforms. You can utilize the familiar `run`, `search`
and `info` commands and enter module contexts with the `use` command.
Refer to the documentation for more information.
## Install
`pwncat` only depends on a working Python development environment running on Linux. `pwncat` only depends on a working Python development environment running on Linux.
In order to install some of the packages required with `pip`, you will likely need In order to install some of the packages required with `pip`, you will likely need
your distribution's "Python Development" package. On Debian based systems, your distribution's "Python Development" package. On Debian based systems,
@ -156,6 +80,52 @@ poetry install
poetry shell poetry shell
``` ```
## Naming Changes
Due to the naming conflict with [Cytopia's pwncat](https://pwncat.org/), I have
decided to rename the package to `pwncat-cs`. This includes renaming the
entrypoint so that there are no direct conflicts with Cytopia's project. If you
are updating from `v0.4.*`, the command name will now have changed, and the `pcat`
and `pc` varianst have been removed. See the most recent release notes for more
details.
The added benefit of this move is that the project is now pushed to PyPI for
easier installation/updating in the future.
## Windows Support
`pwncat` now supports connections from Windows targets starting at `v0.4.0a1`. The Windows
platform utilizes a .Net-based C2 library which is loaded automatically. Windows
targets should connect with either a `cmd.exe` or `powershell.exe` shell, and
pwncat will take care of the rest.
The libraries implementing the C2 are implemented at [pwncat-windows-c2].
The DLLs for the C2 will be automatically downloaded from the targeted release
for you. If you do not have internet connectivity on your target machine,
you can tell pwncat to pre-stage the DLLs using the `--download-plugins`
argument. If you are running a release version of pwncat, you can also download
a tarball of all built-in plugins from the releases page.
The plugins are stored by default in `~/.local/share/pwncat`, however this is
configurable with the `plugin_path` configuration. If you download the packaged
set of plugins from the releases page, you should extract it to the path pointed
to by `plugin_path`.
Aside from the main C2 DLLs, other plugins may also be available. Currently,
the only provided default plugins are the C2 and an implementation of [BadPotato].
pwncat can reflectively load .Net binaries to be used a plugins for the C2.
For more information on Windows C2 plugins, please see the [documentation].
## Modules
Recently, the architecture of the pwncat framework was redesigned to
incorporate a generic "module" structure. All functionality is now
implemented as modules. This includes enumeration, persistence and
privilege escalation. Interacting with modules is similar to most other
post-exploitation platforms. You can utilize the familiar `run`, `search`
and `info` commands and enter module contexts with the `use` command.
Refer to the documentation for more information.
## BlackArch Packaging ## BlackArch Packaging
[![Packaging status](https://repology.org/badge/vertical-allrepos/pwncat-caleb.svg)](https://repology.org/project/pwncat-caleb/versions) [![Packaging status](https://repology.org/badge/vertical-allrepos/pwncat-caleb.svg)](https://repology.org/project/pwncat-caleb/versions)