Scenario:
You as a pentester are in a situation where you want to do multi hopping to jump over several ssh servers to your target. The systems are somehow outdated so you want to check what you can do. ssh -v localhost
reveals the ssh version and you can deduce how you will perform the jumps.
There are 3 main possibilities:
-J
: from version August 2016 : version 7.3 likessh -J root@jmp1,root@jmp2 root@jmp3
-W
: from March 2010 : version 5.4 likessh -oProxyCommand="ssh -W %h:%p -oProxyCommand=\"ssh -W %%h:%%p root@jmp1\" jumphost@jmp2" root@jmp3
-o ProxyCommand
from ? : version ? likessh -oProxyCommand="ssh root@jmp2 -oProxyCommand=\"ssh root@jmp1 nc -q0 jmp2 22\" nc -q0 jmp3 22" root@jmp3'
I searched in the OpenSSH release page and in Github to find when ProxyCommand
was introduced.
At the release page I couldn't find a hint. Browsing the commits I found:
commit 36143d785143daabda83962a0f34404a9abf0964
Author: Damien Miller <[email protected]>
Date: Mon Feb 7 13:20:26 2000 +1100
- Removed SOCKS code. Will support through a ProxyCommand.
and
commit 61f08ac35a06e758c20fc85b9944d1feee146d47
Author: Damien Miller <[email protected]>
Date: Mon Feb 24 11:56:27 2003 +1100
- [email protected] 2003/02/05 09:02:28
[readconf.c]
simplify ProxyCommand parsing, remove strcat/xrealloc; ok henning@, djm@
but no definite entry.
Does anyone know since which version ProxyCommand
was available in OpenSSH?