Forking nmap is incredibly inefficient, especially for such a simple task as testing to see if a port is open. it also introduces an unnecessary dependency. A much faster procedure is documented in the standard library at https://docs.python.org/3/howto/sockets.html: simply try to make a TCP connection on port 22. If you fail, then move on, otherwise close the connection and start the attack.
The only value of this program is to prove to the world that it is important to pick strong passwords. It also shows the advantage of disabling the root account and using sudo for everything. Finally, it also demonstrates the value of listening for ssh connections on some port OTHER than port 22.
It would be interesting for you to make an estimate of how long it would take your program to break into a system using a dictionary attack. Then, make another estimate of how long it would take your program to break into a system where the password has been augmented by a number, e.g. jeff9, and also if the password is a simple modification of the username, e.g. Jeff*Silverman.
Forking nmap is incredibly inefficient, especially for such a simple task as testing to see if a port is open. it also introduces an unnecessary dependency. A much faster procedure is documented in the standard library at https://docs.python.org/3/howto/sockets.html: simply try to make a TCP connection on port 22. If you fail, then move on, otherwise close the connection and start the attack.
The only value of this program is to prove to the world that it is important to pick strong passwords. It also shows the advantage of disabling the root account and using sudo for everything. Finally, it also demonstrates the value of listening for ssh connections on some port OTHER than port 22.
It would be interesting for you to make an estimate of how long it would take your program to break into a system using a dictionary attack. Then, make another estimate of how long it would take your program to break into a system where the password has been augmented by a number, e.g. jeff9, and also if the password is a simple modification of the username, e.g. Jeff*Silverman.