在 Linode 上安装 Pwndrop

当我第一次接触 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 密码管理器。
您可以通过两种主要方式来完成此操作
- 通过 SSH 在命令行中。
- 在 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 的过程。一旦页面重新加载并且您看到正在运行的容器,您就会知道容器已部署。
现在您可以访问 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 中找到
对于“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 轻松上传和共享有效负载。
您可以在这里观看教程