python反向bash shell
reshell的Python项目详细描述
使用黑客工具进行部署调试。
安装
pip install reshell
用法
在主机启动接收器上,使用
$ nc -lvp 12345
在目标主机上启动反向外壳:
$ reshell 127.0.0.1:12345
(或使用env变量而不是参数):
$ exportRESHELL_TARGET=127.0.0.1:12345 $ reshell
Teamcity命令行生成步骤:
virtualenv .env . .env/bin/activate pip install reshell reshell
请确保添加env.RESHELL_TARGET以生成参数。
reshell将尝试每隔10秒连接到其目标,持续10分钟。 10分钟后它就要出来了。
术语
因为不是所有的开发者都熟悉黑客的技术, 我将简要地描述一下这是怎么回事。
打开计算机上的终端时,它是localshell
运行SSH连接到远程计算机时,它是remoteshell
当您监听计算机上的端口并使远程计算机连接到您时,它是reverseshell。
伦理
此工具是notusefullfor实际的hacking。 既然你已经有能力在远程机器上执行任意代码, 它不会买任何东西。 您只需要一个shell作为任意代码。
反向收益
与远程外壳相比,反向外壳具有一些优势:
- bypass firewall-传入连接通常在未使用的端口上被阻止。 而通常允许传出连接
- 更安全-相反,reverse shell与单个主机:端口通信
- 目的地可能未知-甚至不可访问。 必须从目标访问主机。 不是相反
背景(用例)
想象一下crazy环境。 您可以将python应用程序部署到cloudy远程主机并使其运行。 但是您没有ssh访问权限,无法调试它或查看启动日志。 另外,您也不知道远程主机的网络地址是什么。
但在同一个网络中有一台dev机器,您可以在其中自由运行任何内容: 一所以您可以在dev机器上启动服务器,并通过常规部署过程部署反向shell。 2一旦应用程序被部署,它将连接到服务器并将自身转换为bash。 三。……你可以四处看看,找出问题所在… 四。利润!
奖金(专业提示)
nc不是最方便的shell,您需要在日常工作中使用它。 您将无法访问快捷方式,例如向上箭头或上一个命令的ctrl-p。 它不会就地展开制表符,而是在命令发送后展开。 例如,您可以编写:
$ ls /us<TAB>loc<TAB>li ls /usr/local/lib
处理键盘中断时应特别小心。 如果在nc会话中按Ctrl+C,它将被nc进程捕获 它本身,尽管不会被发送到远程机器。 相反,您可以在启动nc之前为SIGINT放置一个信号陷阱:
$trap'' INT $ nc -lvp 12345
发送Ctrl+C到远程计算机(到中断当前进程) 您可以使用组合Ctrl+V Ctrl+C ReturnCtrl+V说bash按原样发送以下符号, 没有经过处理。^实际发送^C命令需要{tt11}$
完成后,使用以下命令终止远程会话:
$exit
历史
0.1.0(2015-02-30)
- pypi上的第一个版本。