Skip to content

Commit

Permalink
Added debugging output for key exchanges.
Browse files Browse the repository at this point in the history
  • Loading branch information
jtesta committed Aug 26, 2024
1 parent 9049c84 commit a6f02ae
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 2 deletions.
15 changes: 14 additions & 1 deletion src/ssh_audit/ssh2_kex.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
The MIT License (MIT)
Copyright (C) 2017-2020 Joe Testa ([email protected])
Copyright (C) 2017-2024 Joe Testa ([email protected])
Copyright (C) 2017 Andris Raugulis ([email protected])
Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down Expand Up @@ -132,3 +132,16 @@ def parse(cls, outputbuffer: 'OutputBuffer', payload: bytes) -> 'SSH2_Kex':
srv = SSH2_KexParty(srv_enc, srv_mac, srv_compression, srv_languages)
kex = cls(outputbuffer, cookie, kex_algs, key_algs, cli, srv, follows, unused)
return kex

def __str__(self) -> str:
ret = "----\nSSH2_Kex object:"
ret += "\nHost keys: "
ret += ", ".join(self.__key_algs)
ret += "\nKey exchanges: "
ret += ", ".join(self.__kex_algs)
ret += "\nClient SSH2_KexParty:"
ret += "\n" + str(self.__client)
ret += "\nServer SSH2_KexParty:"
ret += "\n" + str(self.__server)
ret += "\n----"
return ret
8 changes: 8 additions & 0 deletions src/ssh_audit/ssh2_kexparty.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
The MIT License (MIT)
Copyright (C) 2024 Joe Testa ([email protected])
Copyright (C) 2017 Andris Raugulis ([email protected])
Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down Expand Up @@ -48,3 +49,10 @@ def compression(self) -> List[str]:
@property
def languages(self) -> List[str]:
return self.__languages

def __str__(self) -> str:
ret = "Ciphers: " + ", ".join(self.__enc)
ret += "\nMACs: " + ", ".join(self.__mac)
ret += "\nCompressions: " + ", ".join(self.__compression)
ret += "\nLanguages: " + ", ".join(self.__languages)
return ret
3 changes: 2 additions & 1 deletion src/ssh_audit/ssh_audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"""
The MIT License (MIT)
Copyright (C) 2017-2023 Joe Testa ([email protected])
Copyright (C) 2017-2024 Joe Testa ([email protected])
Copyright (C) 2017 Andris Raugulis ([email protected])
Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down Expand Up @@ -1317,6 +1317,7 @@ def audit(out: OutputBuffer, aconf: AuditConf, sshv: Optional[int] = None, print
elif sshv == 2:
try:
kex = SSH2_Kex.parse(out, payload)
out.d(str(kex))
except Exception:
out.fail("Failed to parse server's kex. Stack trace:\n%s" % str(traceback.format_exc()))
return exitcodes.CONNECTION_ERROR
Expand Down

0 comments on commit a6f02ae

Please sign in to comment.