python -c 'import pty;pty.spawn("/bin/bash")'
I think this is the highest used Python
program in the land of Pentesting/Security
, Almost every blog post or tutorial I read, they talk about the above-mentioned line to get a proper terminal after getting access to a minimal shell on a remote Linux server.
What does this code do?
We are calling the Python
executable with -c
and python statements inside of the double quote. -c
executes the Python statements, and as we are running it as non-interactive mode, it parses the entire input before executing it.
The code we pass as the argument of the -c
has two statements.
import pty
pty.spawn("/bin/bash")
pty is a Python module which defines operations related to the pseudo-terminal concept, it can create another process, and from the controlling terminal, it can read/write to the new process.
The pty.spawn function spawns a new process (/bin/bash in this case) and then connects IO of the new process to the parent/controlling process.
In most cases, even though you get access to bash
using the way mentioned above, TAB completion is still not working. To enable it, press Ctrl+z
to move the process to sleep, and then use the following command on your terminal.
stty raw -echo
stty
changes terminal line settings and part of the GNU coreutils package. To read about all the options we set by using raw -echo
, read the man page of stty
.
Many years ago, I watched a documentary about Security firms showcasing offensive attacks, that was the first I saw them using Python scripts to send in the payload and exploit the remote systems. Now, I am using similar scripts in the lab to learn and having fun with Python. It is a new world for me, but, it also shows the diverse world we serve via Python.
from Planet Python
via read more
No comments:
Post a Comment