Jul-23-2023, 04:42 PM
For the code snippet below , I am unable to trap error (as enumerated as tracebac)
hostF = "keys/id_rsa"
HOST_KEY = paramiko.RSAKey(filename=hostF)
transport = paramiko.Transport(client)
transport.add_server_key(HOST_KEY)
transport.local_version = "SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3" # this is the banner that goes out
server = libServer.mySSH()
try:
[b] transport.start_server(server=server) # Trouble here for DOS attack. Error below arent captured[/b][color=#E74C3C][/color]
channel = transport.accept(20)
channel.send("Got Channel .. will try SSH connection \r\n")
except Exception as e:
print (e)transport.start_server(server=server) --> this triggers a traceback as enumertaed below when a plain socket connection attempt is made on paramiko SSH server listening port. This can be a raw potential DOS attack.Error:Exception (server): Error reading SSH protocol banner
Traceback (most recent call last):
File "/home/uzi/.local/lib/python3.8/site-packages/paramiko/transport.py", line 2292, in _check_banner
buf = self.packetizer.readline(timeout)
File "/home/uzi/.local/lib/python3.8/site-packages/paramiko/packet.py", line 374, in readline
buf += self._read_timeout(timeout)
File "/home/uzi/.local/lib/python3.8/site-packages/paramiko/packet.py", line 603, in _read_timeout
raise EOFError()
EOFError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/uzi/.local/lib/python3.8/site-packages/paramiko/transport.py", line 2113, in run
self._check_banner()
File "/home/uzi/.local/lib/python3.8/site-packages/paramiko/transport.py", line 2296, in _check_banner
raise SSHException(
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner
You could also look into the source code to see why the exception is not handled by the calling thread.