Run === The ``run`` command gives you access to all ``pwncat`` modules at runtime. Most functionality in ``pwncat`` is implemented using modules. This includes privilege escalation, enumeration and persistence. You can locate modules using the ``search`` command or tab-complete their name with the ``run`` command. The ``run`` command is similar to the command with the same name in frameworks like Metasploit. The first argument to ``run`` is the name of the module you would like to execute. This takes the form of a Python fully-qualified package name. The default modules are within the ``pwncat/modules`` directory, but other can be loaded with the ``load`` command. Modules may take arguments, which can be appended as key-value pairs to the end of a call to the ``run`` command: .. code-block:: bash # Enumerate setuid files on the remote host run enumerate.gather types=file.suid Required module arguments are first taken from these key-value pairs. If they aren't present, they are taken from the global configuration. Run Within A Context -------------------- In ``pwncat``, the ``use`` command can enter a module context. Within a module context, the pwncat prompt will change from "(pwncat) local$" to "(module_name) local$". In this state, you can set module arguments with the ``set`` command. After the arguments are set, you can run the module with ``run``. Within a module context, no arguments are required for ``run``, however you are allowed to specify other key-value items as well. For example: .. code-block:: bash # Perform the same enumeration as seen above use enumerate.gather set types file.suid run