在 Linode 上安装 Pwndrop

作者:David Burgess
Pwndrop on Linode

当我第一次接触 PwnDrop 时,我就对其开发者的设计意图产生了浓厚的兴趣。例如,如果您是一名白帽黑客,并且希望安全地与您的客户分享漏洞利用程序,您可能会使用像 PwnDrop 这样的服务。如果您是一名记者,需要与任何试图保守身份秘密的人进行沟通,您也可能会使用像 PwnDrop 这样的服务。

在本教程中,我们将了解在短短几分钟内设置和使用它是多么容易。

在 Docker 中安装 Pwndrop 的先决条件

首先,您需要设置一个 Docker 服务器。Linode 使这个过程非常简单,您只需每月花费几美元即可设置一个,并且可以免费添加一个私有 IP 地址,以及每月只需再花费几美元即可获得备份服务。

您还需要一个域名,您可以从几乎任何在线平台购买域名,价格范围很广,具体取决于您的购买地点。请务必将域名的 DNS 设置指向 Linode。您可以在这里找到更多相关信息: https://www.linode.com/docs/guides/dns-manager/

您还需要在您的 Docker 服务器上设置反向代理,以便您可以执行诸如路由流量和管理服务器上的 SSL 等操作。我制作了一个关于使用 Portainer 和名为 Nginx Proxy Manager 的反向代理设置 Docker 服务器的视频,您可以在这里查看: https://www.youtube.com/watch?v=7oUjfsaR0NU

一旦您设置好 Docker 服务器,就可以开始在该服务器上设置您的 PwnDrop 密码管理器。

您可以通过两种主要方式来完成此操作

  1. 通过 SSH 在命令行中。
  2. 在 Portainer 中,通过 Portainer 仪表板。

我们将看看如何在 Portainer 中执行此操作,以便我们可以使用用户界面。

前往 http://your-server-ip-address:9000 并使用我们在之前的文章/视频中设置的凭据登录到 Portainer。

在屏幕的左侧,我们将单击“Stacks”链接,然后在下一个页面上,单击“+ Add stack”按钮。

这将弹出一个页面,您将在其中输入堆栈的名称。在下面,您可以复制并粘贴以下内容

version: "2"<br></br>services:<br></br>  pwndrop:<br></br>    image: lscr.io/linuxserver/pwndrop:latest<br></br>    container_name: pwndrop<br></br>    environment:<br></br>      - PUID=1000<br></br>      - PGID=1000<br></br>      - TZ=America/Denver<br></br>      - SECRET_PATH=/dbtech #optional<br></br>    volumes:<br></br>      - /home/docker/pwndrop:/config<br></br>    ports:<br></br>      - 8080:8080<br></br>    restart: unless-stopped<br></br>    networks:<br></br>      nginxproxymanager_default:<br></br><br></br>networks:<br></br>  nginxproxymanager_default:<br></br>    external: true

这个 Docker Compose 文件/堆栈告诉系统下载最新的 linuxserver/pwndrop 镜像到 Docker 服务器,将容器命名为“pwndrop”,将其附加到“nginxproxymanager_default”网络,将其挂载到目录“home/docker/pwndrop”,并在 Docker 服务器的 8080 端口上使其可用。

您可以更改您想要存储 PwnDrop 数据的路径(如果您愿意)。只需确保该文件夹具有正确的写入权限。

此外,secret path 变量非常重要,因为它将是您添加到 URL 末尾以访问仪表板的内容。请明智地选择此变量。

一旦您对这里的设置感到满意,我们就可以通过单击标有“Deploy the stack”的按钮来部署容器。

这将开始在您的服务器上下载和部署 FileRun 的过程。一旦页面重新加载并且您看到正在运行的容器,您就会知道容器已部署。

Pwndrop on Linode Image 1

现在您可以访问 http://your-server-ip-address:90,您应该能够看到 PwnDrop 的登录界面。

停止

为了让您能够真正使用 PwnDrop,它需要一个域名和 SSL。

设置域名和 SSL

返回到您的 Linode 仪表板,然后转到“Domains”。然后找到您添加到您帐户的域名。单击它,然后查找域名管理的 CNAME 部分。

通过为您希望您的子域名设置的主机名条目,将 CNAME 添加到您的域名。在示例视频中,我输入了“pwn”(不带引号)。在下面,我在“Alias to”框中输入了 @ 符号,然后单击了“Save”按钮。

现在您已经完成此操作,我们可以前往 Nginx Proxy Manager 并设置我们的 SSL 和域名。

现在您可以访问 http://your-server-ip-address:81,您应该能够看到 Nginx Proxy Manager 的登录界面。

Nginx Proxy Manager 的默认凭据是

Email:    admin@example.com
Password: changeme

输入这些凭据(或者如果您已更新,则输入您自己的凭据)以登录到您的 Nginx Proxy Manager 实例。

单击页面顶部的标签,上面写着“SSL Certificates”,然后单击页面右上角附近的“Add SSL Certificate”按钮。

接下来,单击“Let's Encrypt”选项。

在出现的弹出窗口中,输入您要保护的域名的完整 URL,然后按键盘上的“Enter”键。在本示例中,您将输入 https://pwn.yourdomain.com

输入您的 URL 后,单击正下方的“Test Server Reachability”按钮。如果您收到错误消息,请务必纠正问题并重试。如果没有返回错误,请确保页面上的电子邮件地址正确,然后阅读并同意 Let's Encrypt 服务条款,然后单击“Save”按钮。

系统可能需要一两分钟来生成和安装密钥,但完成后,页面将重新加载,您将能够在 Nginx Proxy Manager 中看到所有可用的 SSL。

现在我们已经在我们的系统上设置了 SSL,我们可以单击页面顶部的“Hosts”选项卡。然后单击子菜单中显示的“Proxy Hosts”选项。

找到页面右上角附近的“Add Proxy Host”按钮并单击它。

将弹出一个新窗口,我们将填写一些选项来配置我们的域名。

输入您刚刚为其创建 SSL 的域名或子域名。

将 Scheme 保留为 http。

输入您的容器的 IP 地址。这可以在 Portainer 中找到

Pwndrop on Linode Image 2

对于“Forward Port”文本框,输入容器端口。在本例中,它是 8080。

单击“Cache Assets”、“Block Common Exploits”和“Websocket Support”的选项。

现在单击弹出窗口顶部的“SSL”选项卡。

您将看到一个下拉菜单,上面写着“SSL Certificate”,下面写着“None”

单击“None”,然后选择您在上一步中创建的 SSL。

现在选中下面的 4 个选项,然后阅读并同意 Let's Encrypt TOS,然后单击 Save。

片刻之后,页面将重新加载,您应该在 Nginx Proxy Manager 的 Proxy Hosts 页面中看到您的新条目。

创建您的账户

现在您可以前往浏览器中的新 URL。

系统应提示您创建一个帐户。输入用户名和密码,然后单击提交按钮。

就这样。您已创建您的帐户。

此时,您现在可以登录到您的帐户并开始共享文件。

PwnDrop 有一些很酷的功能,允许您通过单击“facade”按钮来获得可用的备用文件和 URL。您可以设置 facade 文件,这些文件将在您需要时替代原始文件提供服务。我相信您可以找到各种此类用途。

总结

就这样!您应该一切就绪,并且您应该能够使用您的新的半自助托管文件托管服务,供红队成员使用,使您能够通过 HTTP 和 WebDAV 轻松上传和共享有效负载。

您可以在这里观看教程

David Burgess。DB Tech YouTube 频道的创始人。  DBTech 专注于关于 Docker、Portainer、自助托管服务、OpenMediaVault 和 Raspberry Pi 的教程视频。

加载 Disqus 评论