mirror of
https://github.com/calebstewart/pwncat.git
synced 2024-11-27 19:04:15 +01:00
Added lpwd and lcd commands for local cwd changes
Also updated the documentation to reflect the new commands. Ran tests and formatting requirements. Fixes #218.
This commit is contained in:
parent
7f8531f7ed
commit
9db70d10ed
@ -32,6 +32,7 @@ and simply didn't have the time to go back and retroactively create one.
|
||||
- Added `OSError` for `bind` protocol to show appropriate error messages
|
||||
- Contributing guidelines for GitHub maintainers
|
||||
- Installation instructions for BlackArch
|
||||
- Added `lpwd` and `lcd` commands to interact with the local working directory ([#218](https://github.com/calebstewart/pwncat/issues/218))
|
||||
### Changed
|
||||
- Removed handling of `shell` argument to `Popen` to prevent `euid` problems ([#179](https://github.com/calebstewart/pwncat/issues/179))
|
||||
- Changed some 'red' warning message color to 'yellow'
|
||||
|
@ -10,4 +10,6 @@ zodburi==2.4.0
|
||||
jinja2
|
||||
paramiko==2.7.2
|
||||
sphinx-toolbox==2.11.2
|
||||
apeye<1.0.0
|
||||
enum-tools==0.6.4
|
||||
sphinx_rtd_theme==1.0.0
|
||||
|
@ -12,7 +12,9 @@ Command index
|
||||
connect.rst
|
||||
download.rst
|
||||
escalate.rst
|
||||
lcd.rst
|
||||
load.rst
|
||||
lpwd.rst
|
||||
run.rst
|
||||
info.rst
|
||||
search.rst
|
||||
|
14
docs/source/commands/lcd.rst
Normal file
14
docs/source/commands/lcd.rst
Normal file
@ -0,0 +1,14 @@
|
||||
lcd
|
||||
===
|
||||
|
||||
The ``lcwd`` command allows you to change the *local* working directory of the running
|
||||
pwncat instance. This effects any command which interacts with the local filesystem (
|
||||
e.g. ``upload`` and ``download``).
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Example from @DanaEpp :P
|
||||
lcd ~/engagements/client_some_gawd_aweful_guid/host_abc/loot
|
||||
# Now, the following downloads will end up in the above directory
|
||||
download /path/to/some/loot
|
||||
download /paht/to/some/other/loot
|
10
docs/source/commands/lpwd.rst
Normal file
10
docs/source/commands/lpwd.rst
Normal file
@ -0,0 +1,10 @@
|
||||
lpwd
|
||||
====
|
||||
|
||||
The ``lpwd`` directory will print the current *local* working directory. This is the directory
|
||||
which commands like ``upload`` and ``download`` will interpret as ``.``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Print the local working directory
|
||||
lpwd
|
27
pwncat/commands/lcd.py
Normal file
27
pwncat/commands/lcd.py
Normal file
@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import pathlib
|
||||
|
||||
import pwncat
|
||||
from pwncat.commands import Complete, Parameter, CommandDefinition
|
||||
|
||||
|
||||
class Command(CommandDefinition):
|
||||
"""Change the local current working directory"""
|
||||
|
||||
PROG = "lcd"
|
||||
ARGS = {
|
||||
"path": Parameter(Complete.LOCAL_FILE),
|
||||
}
|
||||
|
||||
def run(self, manager: "pwncat.manager.Manager", args):
|
||||
|
||||
# Expand `~`
|
||||
path = pathlib.Path(args.path).expanduser()
|
||||
|
||||
# Ensure the directory exists
|
||||
if not path.is_dir():
|
||||
self.parser.error(f"{path}: not a directory")
|
||||
|
||||
# Change to that directory
|
||||
os.chdir(str(path))
|
17
pwncat/commands/lpwd.py
Normal file
17
pwncat/commands/lpwd.py
Normal file
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env python3
|
||||
from pathlib import Path
|
||||
|
||||
import pwncat
|
||||
from pwncat.util import console
|
||||
from pwncat.commands import CommandDefinition
|
||||
|
||||
|
||||
class Command(CommandDefinition):
|
||||
"""Print the local current working directory"""
|
||||
|
||||
PROG = "lpwd"
|
||||
ARGS = {}
|
||||
|
||||
def run(self, manager: "pwncat.manager.Manager", args):
|
||||
|
||||
console.print(Path.cwd())
|
Loading…
Reference in New Issue
Block a user