前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0x2 Python教程:反向Shell

0x2 Python教程:反向Shell

作者头像
重生信息安全
发布2020-04-27 10:08:45
1.1K0
发布2020-04-27 10:08:45
举报
文章被收录于专栏:重生信息安全

这篇文章将演示如何利用Python创建反向shell。首先,我们将展示如何利用Web服务器功能将文件从一个主机移动到另一个主机。比如说,你有一个潜在受害者的原始shell,并希望拉过一个Python反向shell(或meterpreter二进制文件),以便更好地访问主机。您可以在单行代码中快速启动Python Web服务器,然后将文件拉过来。

要创建python HTTP服务器,可以利用内置函数“SimpleHTTPServer”。您可以使用开关“-m”直接从命令行调用模块。默认情况下,侦听器将从端口8000开始,但您可以指定要用作参数的端口:

代码语言:javascript
复制
python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 80 ...

现在假设您没有防火墙阻止连接,您应该能够向服务器发出请求。您可以将python shell放在启动Python HTTP服务器的同一目录中,并且远程客户端应该可以访问它。以下是您可能希望如何利用wget的示例。我发现在你没有权限在当前工作目录中写入的初始Web shell并且你无法更改目录的情况下,这种情况很常见。因此,要解决此问题,您可以执行以下操作:

现在让我们来看看后门的实际代码。我们将利用套接字和子进程模块与OS进行交互。我非常喜欢子进程模块,因为它允许您将STDOUT存储到一个变量中,该变量可以在脚本中进一步填充。要添加一层混淆,我们将对通过线路发送的数据进行异或,并将其发送到端口443.这是因为此端口通常用于传输SSL数据,并且XOR的数据可以轻松地混合在一起:

上面的代码基于我们在教程0x1中介绍的概念,但除了建立套接字连接之外,我们现在正在使用子进程模块执行命令。子进程模块非常方便,因为它允许您将STDOUT / STDERR从命令重定向到变量。然后,我们可以对命令的输出进行编码,并通过网络套接字发送。关于XOR'n数据的好处是,您可以通过XOR'n相同的数据再次使用相同的键轻松地反转编码以恢复正常。这允许我们快速编码数据并通过线路传递,然后解码数据以明文形式执行命令。

现在为了成功使用这个后门,我们需要在另一端有一个监听器来再次对数据进行异或,这样我们就可以看到明文了。下面是一个监听器,用于捕获反向shell并正确解码/编码输入/输出,因此我们可以在终端上看到明文,但数据包内容是XOR编码的。

这是一个非常有趣的Python用例,因为每个人都喜欢shell!这可以通过使用PyInstaller将Python脚本编译为可执行文件来适应Windows。对于练习尝试使用base64而不是XOR编码/解码数据,这可以帮助您建立Python技能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 重生信息安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档