精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

如何搭建一個DrupalCoreRCE漏洞的蜜罐

如何搭建一個Drupal Core RCE漏洞的蜜罐,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創新互聯公司-專業網站定制、快速模板網站建設、高性價比尖扎網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式尖扎網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋尖扎地區。費用合理售后完善,十余年實體公司更值得信賴。

Webhoneypot框架是使用Python 3編寫的,需要docker和docker-compose才能運行。你可以使用JSON和相應的docker-compose文件來配置蜜罐。docker-compose文件描述了用于蜜罐的容器及其設置,而JSON文件則用于配置框架如何檢測攻擊并獲取蜜罐的快照。

JSON配置的基本結構如下所示:

{
    "docker_compose_file": "./docker-compose.yml",
    "pre_start": "...",
    "post_start": "...",
    "snapshot_path": "./snapshots",
    "snapshots": [
        ...
    ],
    "detections": [
        ...
    ]
}

docker_compose_file的選項非常簡單。使用選項pre_start和post_start,用戶可以在啟動蜜罐后分別在啟動前執行腳本。我通常使用它來調整Web根目錄的文件權限和文件所有權。

該框架的主要功能是在檢測到攻擊后創建蜜罐的快照。目前,可以創建目錄或MySQL數據庫的快照。

要獲取MySQL快照,應在快照下添加mysql_snapshot選項。這將會創建一個標準MySQL容器的MySQL轉儲(https://hub.docker.com/_/mysql):

{
    "type": "mysql_snapshot",
    "mysql_container_name": "webhoneypot_mysql_1",
    "mysql_user": "root",
    "mysql_password": "Password123!",
    "mysql_restore_path": "./mysql/config"
}

來自docker庫的MySQL容器,允許通過將文件放入容器的/docker-entrypoint-initdb.d文件夾來恢復數據庫轉儲。因此mysql_restore_path選項應指向該目錄的掛載點。

另一個選項是使用folder_snapshot來創建目錄快照:

{
    "type": "folder_snapshot",
    "folder_path": "./apache/html"
},

這將創建指定文件夾的ZIP存檔,并將其放在已配置的快照文件夾中。

為了檢測攻擊,webhoneypot框架目前僅支持folder_changed和file_contains。

檢測方法folder_changed可以檢測與初始快照相比的任意文件更改:

{
    "type": "folder_changed",
    "folder_path": "./apache/html",
    "ignore_files": [
        "folder_to_ignore/"
    ]
}

folder_path選項必須與folder_snapshot塊中指定的選項匹配。為了減少干擾,可以忽略某些文件或文件夾。

第二個檢測方法file_contains檢測指定的文件是否包含特定的字符串或正則表達式:

{
    "type": "file_contains",
    "file_path": "./nginx/logs/access.log",
    "pattern": "pattern to search"
}

要運行該腳本,只需克隆存儲庫并運行webhoneypot.py:

$ git clone https://gitlab.com/SecurityBender/webhoneypot-framework.git && cd webhoneypot-framework
$ ./webhoneypot.py -h                                                                                             
usage: webhoneypot.py [-h] -c CONFIG option
Management script for docker-based web application honeypots
positional arguments:
  option                the honeypot option, can be
                        [start|stop|init|update|reset]
optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        the honeypot configuration file

該腳本主要支持以下五個選項:

  • start:啟動honeypot容器

  • 停止:停止蜜罐容器

  • init:初始化蜜罐(例如,第一次設置)并創建初始快照

  • 更新:更新蜜罐并創建新的初始快照

  • reset:快照蜜罐,檢測更改并恢復初始快照

在野捕獲 CVE-2019-6340

有了以上的基礎,現在我們可以構建和配置Drupal蜜罐來嘗試在野捕獲CVE-2019-6340。CVE-2019-6340是Drupal core 中的RCE漏洞,它允許攻擊者在主機系統上執行任意命令。

配置蜜罐

我已經為構建Drupalgeddon2蜜罐做了一個配置。你可以在GitLab上找到它。讓我們克隆它并為CVE-2019-6340做準備。

$ git clone https://gitlab.com/SecurityBender/webhoneypot-drupal.git
$ cd webhoneypot-drupal

在目錄中我們有多個目錄和文件:

webhoneypot-drupal/
├── apache/
│   └── Dockerfile
├── nginx/
│   ├── config/
│   │   └── default.conf
│   └── Dockerfile
├── docker-compose.yml
├── drupal.json
└── drupal.sh

apache和nginx目錄分別包含Apache和nginx容器的數據和配置文件。其中最重要的文件是docker-compose.yml和drupal.json。

docker-compose.yml包含了啟動必要容器的所有信息:

version: '2'

services:
  apache:
    build: apache/
    volumes:
      - ./apache/html:/var/www/html
      - ./apache/tmp:/tmp
    networks:
      - webhoneypot

  nginx:
    build: nginx/
    volumes:
      - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf:ro
      - ./nginx/logs:/var/log/nginx
    ports:
      - "80:80"
    networks:
      - webhoneypot
    depends_on:
      - apache

networks:
  webhoneypot:
    driver: bridge

在此設置中,我們有一個Apache容器,它托管并運行Drupal和一個用作反向代理的nginx。我們將html和tmp目錄掛載到Apache容器,以便從主機訪問它們,并讓我們拍攝快照以及恢復它們。出于同樣的目的,我們還將日志目錄掛載到了nginx容器。

主要配置在drupal.json中完成:

{
    "docker_compose_file": "./docker-compose.yml",
    "pre_start": "",
    "post_start": "./drupal.sh",
    "snapshot_path": "./snapshots",
    "snapshots": [
        {
            "type": "folder_snapshot",
            "folder_path": "./apache/html"
        },
        {
            "type": "folder_snapshot",
            "folder_path": "./apache/tmp"
        },
        {
            "type": "folder_snapshot",
            "folder_path": "./nginx/logs"
        }
    ],
    "detections": [
        {
            "type": "folder_changed",
            "folder_path": "./apache/html",
            "ignore_files": [
                "sites/default/files/php/twig/"
            ]
        },
        {
            "type": "folder_changed",
            "folder_path": "./apache/tmp",
            "ignore_files": [
            ]
        },
        {
            "type": "file_contains",
            "file_path": "./nginx/logs/access.log",
            "pattern": "node/1\\?_format=hal_json"
        }
    ]
}

首先,我們使用docker_compose_file指定用于通過docker-compose創建,啟動和停止docker容器的文件。每次啟動容器后,都會執行drupal.sh來調整./apache/html(Web根目錄)目錄的所有者和權限,并清除nginx訪問日志。此外,我們將蜜罐配置為在每次重置后拍攝./apache/html,./apache/tmp和./nginx/logs目錄的快照。我注意到很多drupalgeddon2都利用了/tmp中的drop文件,所以我添加了它。

最關鍵的是檢測部分。你可能會看到我們想要檢測./apache/html和./apache/tmp目錄中的更改。檢測到與初始快照不同的所有文件。因為Drupal將一些生成的文件存儲在sites/default/files/php/twig/中,所以我們忽略對該目錄的任何更改。檢測的另一個選項是檢查文件是否包含特定的正則表達式。在這種情況下,我們監控nginx訪問日志中的典型的CVE-2019-6340 url。

運行蜜罐

配置蜜罐完成后,我們來獲取易受攻擊的Drupal版本(例如8.6.9),并將其解壓縮到./apache/html目錄中:

$ wget -q https://ftp.drupal.org/files/projects/drupal-8.6.9.zip
$ unzip drupal-8.6.9.zip -d ./apache/
$ mv ./apache/drupal-8.6.9 ./apache/html

現在讓我們克隆Webhoneypot框架,并初始化Drupal蜜罐。使用./webhoneypot.py -c ../webhoneypot-drupal/drupal.json init初始化腳本,將啟動并構建所需的容器。

$ ./webhoneypot.py -c ../webhoneypot-drupal/drupal.json init
2019-04-07 15:11:50,455 - DEBUG - Starting docker compose /opt/webhoneypot-drupal/docker-compose.yml ...
Creating network "webhoneypot-drupal_webhoneypot" with driver "bridge"
Building apache
[...]
Building nginx
[...]
Creating webhoneypot-drupal_apache_1 ... done
Creating webhoneypot-drupal_nginx_1  ... done
Press any key if honeypot setup is finished

初始啟動成功,我們可以通過公共IP地址訪問Drupal實例。配置(啟用RESTful服務等) - 比我想象的更難 - 完成后我們按ENTER鍵,腳本將開始創建蜜罐的初始快照。

2019-04-07 15:23:17,604 - DEBUG - Creating snapshot "initial" ...
2019-04-07 15:23:17,621 - DEBUG - Create folder backup of "/opt/webhoneypot-drupal/apache/html" to "/opt/webhoneypot-drupal/snapshots/initial/_opt_webhoneypot-drupal_apache_html.zip" ...
2019-04-07 15:23:48,775 - DEBUG - Create folder backup of "/opt/webhoneypot-drupal/apache/tmp" to "/opt/webhoneypot-drupal/snapshots/initial/_opt_webhoneypot-drupal_apache_tmp.zip" ...
2019-04-07 15:23:48,787 - DEBUG - Create folder backup of "/opt/webhoneypot-drupal/nginx/logs" to "/opt/webhoneypot-drupal/snapshots/initial/_opt_webhoneypot-drupal_nginx_logs.zip" ...

測試蜜罐

一切運行良好,現在讓我們來對它進行測試。我從@leonjza獲取到了一個POC并運行了它:

$ python3 poc.py http:/// "id"     
CVE-2019-6340 Drupal 8 REST Services Unauthenticated RCE PoC
 by @leonjza
References:
 https://www.drupal.org/sa-core-2019-003
 https://www.ambionics.io/blog/drupal8-rce
[warning] Caching heavily affects reliability of this exploit.
Nodes are used as they are discovered, but once they are done,
you will have to wait for cache expiry.
Targeting http://37.120.165.218/...
[+] Finding a usable node id...
[x] Node enum found a cached article at: 1, skipping
[+] Using node_id 2
[+] Target appears to be vulnerable!
uid=33(www-data) gid=33(www-data) groups=33(www-data)

POC成功被執行。現在讓我們看看我們的檢測是否正常:

$ ./webhoneypot.py -c ../webhoneypot-drupal/drupal.json reset
2019-04-07 17:04:11,767 - DEBUG - Creating snapshot "20190407_170411" ...
[...]
2019-04-07 17:04:48,115 - DEBUG - Stopping docker compose /opt/docker/webhoneypot-drupal/docker-compose.yml ...
Stopping webhoneypot-drupal_nginx_1  ... done
Stopping webhoneypot-drupal_apache_1 ... done
Removing webhoneypot-drupal_nginx_1  ... done
Removing webhoneypot-drupal_apache_1 ... done
Removing network webhoneypot-drupal_webhoneypot
2019-04-07 17:05:08,442 - INFO - Pattern "node/1\?_format=hal_json" detected in file!
2019-04-07 17:05:08,443 - DEBUG - Restoring snapshot "initial" ...
[...]

這就是一個現實世界的Drupal蜜罐,用于檢測CVE-2019-6340攻擊。

警告

一個被妥協的蜜罐可用于許多其他非法目的(例如加密貨幣挖礦,發送垃圾郵件,DoS等)。我強烈建議你們設置一個定期的cronjob(每15到30分鐘)重置蜜罐。此外,你還可以通過限制容器的CPU時間,或通過主機防火墻來阻止某些傳出連接。

看完上述內容,你們掌握如何搭建一個Drupal Core RCE漏洞的蜜罐的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!


文章題目:如何搭建一個DrupalCoreRCE漏洞的蜜罐
文章位置:http://m.jcarcd.cn/article/goeepi.html
主站蜘蛛池模板: 日韩欧美在线视频 | 精品蜜桃 | 九一精品| 99日本精品 | 成人午夜福利 | 97人人爱人人 | 国产噜噜免费 | 欧美一区亚洲二区 | 91特制| 国色天香精 | 黑丝在线 | 人摸人人 | 欧美日韩精品 | 国产区视频在线 | 欧美一级夜夜爽视频 | 欧一欧二欧三精品 | 奇米777亚洲| 国产大片免费天天看 | 精品成人一区二区 | 国产在线观看福利 | 日韩免费视频线观看 | 国产欧美精品区一区 | 精品免费人成视 | 国产剧情片视须资 | 国内精品露脸在线 | 国产观看免费在线久 | 国产高清精品一级 | 国产老熟女精品视 | 欧美中文字幕在 | 国语第一次处破女 | 国产精品喷潮免费观 | 欧洲美熟女乱又 | 午夜国产福到在线 | 日韩精品在线播放 | www亚洲一区| 精品国产呦系列在线 | 91视频站 | 国产福利一区二区久 | 国产免费永 | 最新精品国偷自产在线美女足 | 青草青草久 |