设置私人 Burp 协作服务器

2021-12-31 09:26:15 浏览数 (1)

先决条件

  • 一个 VPS
  • 域名(子域也可以)
  • 通配符 DNS 证书(免费 LetsEncrypt 证书)
  • Burp Suite Pro(您不需要许可证,这意味着包括 BurpCommunity 用户在内的任何人也可以部署私人协作服务器)

设置 VPS

登录您的 VPS 并运行以下命令

代码语言:javascript复制
sudo apt-get update // update package
sudo apt-get install default-jre // install Java Runtime Enviornment
sudo mkdir -p /usr/local/collaborator/  // Create a directory

下载最新的 BurpSuite Pro并将其推送到/collaborator目录

ifconfig在终端中运行命令并查找您的内部和外部 IP

现在collaborator.config/collaborator目录下创建一个文件并使用以下内容对其进行编辑。

nano /usr/local/collaborator/collaborator.config

代码语言:javascript复制
{
  "serverDomain" : "outofbandconnections.yourdomain.com",
  "workerThreads" : 10,
  "eventCapture": {
      "localAddress" : [ "139.59.x.x" ],
      "publicAddress" : "139.59.x.x",
      "http": {
         "ports" : 80
       },
      "https": {
          "ports" : 443
      },
      "smtp": {
          "ports" : [25, 587]
      },
      "smtps": {
          "ports" : 465
      },
      "ssl": {
          "certificateFiles" : [
              "/usr/local/collaborator/keys/privkey.pem",
              "/usr/local/collaborator/keys/cert.pem",
              "/usr/local/collaborator/keys/fullchain.pem" ]
      }
  },
  "polling" : {
      "localAddress" :  "139.59.x.x",
      "publicAddress" :  "139.59.x.x",
      "http": {
          "port" : 39090
      },
      "https": {
          "port" : 39443
      },
      "ssl": {
          "certificateFiles" : [
              "/usr/local/collaborator/keys/privkey.pem",
              "/usr/local/collaborator/keys/cert.pem",
              "/usr/local/collaborator/keys/fullchain.pem" ]

      }
  },
  "metrics": {
      "path" : "jnaicmez8",
      "addressWhitelist" : ["0.0.0.0/1"]
  },
  "dns": {
      "interfaces" : [{
          "name":"ns1.outofbandconnections.yourdomain.com",
          "localAddress":"139.59.x.x",
          "publicAddress":"139.59.x.x"
      }],
      "ports" : 53
   },
   "logLevel" : "INFO"
}

localAddresspublicAddress 中, 通过运行 ifconfig 命令输入您的 VPS IP,并将serverDomain 替换为您的域名。

设置通配符 SSL 证书

configure_certs.sh使用以下代码在我们的工作目录下创建一个文件。

代码语言:javascript复制
sudo nano /usr/local/collaborator/configure_certs.sh
代码语言:javascript复制
CERTBOT_DOMAIN=$1
if [ -z $1 ];
then
    echo "Missing mandatory argument. "
    echo " - Usage: $0  <domain> "
    exit 1
fi
CERT_PATH=/etc/letsencrypt/live/$CERTBOT_DOMAIN/
mkdir -p /usr/local/collaborator/keys/

if [[ -f $CERT_PATH/privkey.pem && -f $CERT_PATH/fullchain.pem && -f $CERT_PATH/cert.pem ]]; then
        cp $CERT_PATH/privkey.pem /usr/local/collaborator/keys/
        cp $CERT_PATH/fullchain.pem /usr/local/collaborator/keys/
        cp $CERT_PATH/cert.pem /usr/local/collaborator/keys/
        chown -R collaborator /usr/local/collaborator/keys
        echo "Certificates installed successfully"
else
        echo "Unable to find certificates in $CERT_PATH"
fi

安装 Let's Encrypt 证书在命令下运行。

snap install --classic certbot

代码语言:javascript复制
certbot certonly -d outofbandconnections.yourdomain.com -d *.outofbandconnections.yourdomain.com  --server https://acme-v02.api.letsencrypt.org/directory --manual --agree-tos --no-eff-email --manual-public-ip-logging-ok --preferred-challenges dns-01

按照指南操作(它会要求您插入电子邮件)

之后,您将看到关于如何显示 DNS TXT 记录的第一条消息。按 Enter 并让它给您第二条消息。 现在您有两个不同的 TXT 记录要设置,请转到您的 DNS 服务器并配置这两个记录(使用相同的名称:“_acme-challenge.outofbandconnections”)

运行以下命令安装证书

代码语言:javascript复制
chmod  x /usr/local/collaborator/configure_certs.sh && /usr/local/collaborator/configure_certs.sh outofbandconnections.yourdomain.com

现在让我们第一次通过 VPS 运行我们的合作者服务器。运行下面的命令,看看我们的端口是否正确映射。

注意:其他服务可能正在使用我们在 collaborator.config 文件中定义的这些端口。因此,请确保没有其他服务正在使用这些端口,如果是,请先关闭这些服务,然后运行以下命令。

代码语言:javascript复制
bash -c  "java -Xms10m -Xmx200m -XX:GCTimeRatio=19 -jar /usr/local/collaborator/burpsuite_pro_version --collaborator-server --collaborator-config=/usr/local/collaborator/collaborator.config"

如果一切正常,那么我们准备进入下一阶段,即设置DNS。按CTRL C一会儿并停止服务。

域名系统

转到您的 DNS 服务器并创建两个新记录。

  1. 创建一个NS记录指向outofbandconnections.yourdomain.comns1.outofbandconnections.yourdomain.com
  2. 创建A指向记录ns1.outofbandconnections.yourdomain.comX.X.X.X(你的VPS的外部IP)

我们到这里就完成了。为了持续运行合作者服务,我们可以创建一个服务。按照以下步骤创建协作者服务。

代码语言:javascript复制
sudo nano /etc/systemd/system/collaborator.service // create a file

将以下代码复制到collaborator.service文件中

代码语言:javascript复制
[Unit]
Description=Burp Collaborator Server Daemon
After=network.target

[Service]
Type=simple
UMask=007
ExecStart=/usr/bin/java -Xms10m -Xmx200m -XX:GCTimeRatio=19 -jar /usr/local/collaborator/burpsuite_pro_version --collaborator-server --collaborator-config=/usr/local/collaborator/collaborator.config
Restart=on-failure

# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target

启用服务:

systemctl enable collaborator

最后,启动服务:

systemctl start collaborator

BurpSuite 设置

打开你的 Burp Suite,转到“项目选项”>“其他”选项卡,并配置以下设置:

服务器位置:outofbandconnections.yourdomain.com

Polling location :outofbandconnections.yourdomain.com : 39443

0 人点赞