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