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作为任意代码

反向收益

与远程外壳相比,反向外壳具有一些优势:

  1. bypass firewall-传入连接通常在未使用的端口上被阻止。 而通常允许传出连接
  2. 更安全-相反,reverse shell与单个主机:端口通信
  3. 目的地可能未知-甚至不可访问。 必须从目标访问主机。 不是相反

背景(用例)

想象一下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上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jenkins在java代码的csv中使用前导零传递数字   终止java应用程序javaw。exe eclipse   java平均字长。文本   java在事务中关闭连接时会发生什么?   java如何为rich faces extendedDatatable启用可调整大小的列?   SpringJavaWebApp头nosniff不适合js和css文件   Java:抛出异常   java获取拒绝ArrayList中存在的用户名的代码。   关于编写JNDI服务提供者的java教程   java Android emulator电子书示例已停止   java如何防止双向关系中的循环   在Java中,如何将接口的实现作为变量传递给方法?   java有没有办法通过注释来监听CoreNLP处理的进度?   java Eclipse错误:导入项目时“无法读取项目描述文件”   java为什么findViewById返回null?