Lucene search

K
kitploitKitPloitKITPLOIT:914458182851735372
HistoryApr 13, 2022 - 12:30 p.m.

Melody - A Transparent Internet Sensor Built For Threat Intelligence

2022-04-1312:30:00
www.kitploit.com
81
threat intelligence
transparent sensor
detection rules
packet analysis
vulnerable websites
internet protocols
log rotation
minimal configuration
standalone mode
scalable
internet facing sensor
malicious activity
exploitation attempts
emerging threats
stream analysis
background noise profile
melody preview
quickstart installation

CVSS2

10

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS

0.975

Percentile

100.0%

Melody

Monitor the Internet’s background noise

Melody is a transparent internet sensor built for threat intelligence and supported by a detection rule framework which allows you to tag packets of interest for further analysis and threat monitoring.

Features

Here are some key features of Melody :

  • Transparent capture
  • Write detection rules and tag specific packets to analyze them at scale
  • Mock vulnerable websites using the builtin HTTP/S server
  • Supports the main internet protocols over IPv4 and IPv6
  • Handles log rotation for you : Melody is designed to run forever on the smallest VPS
  • Minimal configuration required
  • Standalone mode : configure Melody using only the CLI
  • Easily scalable :
    • Statically compiled binary
    • Up-to-date Docker image

Wishlist

Since I have to focus on other projects right now, I can’t put much time in Melody’s development.

There is a lot of rom for improvement though, so here are some features that I’d like to implement someday :

  • Dedicated helper program to create, test and manage rules -> Check Meloctl in cmd/meloctl
  • Centralized rules management
  • Per port mock application

Use cases

Internet facing sensor

  • Extract trends and patterns from Internet’s noise
  • Index malicious activity, exploitation attempts and targeted scanners
  • Monitor emerging threats exploitation
  • Keep an eye on specific threats

Stream analysis

  • Build a background noise profile to make targeted attacks stand out
  • Replay captures to tag malicious packets in a suspicious stream

Preview

Quickstart

Quickstart details.

TL;DR

Release

Get the latest release at https://github.com/bonjourmalware/melody/releases.

make install               # Set default outfacing interface  
make cap                   # Set network capabilities to start Melody without elevated privileges  
make certs                 # Make self signed certs for the HTTPS fileserver  
make enable_all_rules      # Enable the default rules  
make service               # Create a systemd service to restart the program automatically and launch it at startup   
  
sudo systemctl stop melody  # Stop the service while we're configuring it

Update the filter.bpf file to filter out unwanted packets.

sudo systemctl start melody     # Start Melody  
sudo systemctl status melody    # Check that Melody is running    

The logs should start to pile up in /opt/melody/logs/melody.ndjson.

tail -f /opt/melody/logs/melody.ndjson # | jq

From source

git clone https://github.com/bonjourmalware/melody /opt/melody  
cd /opt/melody  
make build

Then continue with the steps from the release TL;DR.

Docker

make certs                           # Make self signed certs for the HTTPS fileserver  
make enable_all_rules                # Enable the default rules  
mkdir -p /opt/melody/logs  
cd /opt/melody/  
  
docker pull bonjourmalware/melody:latest  
  
MELODY_CLI="" # Put your CLI options here. Example : export MELODY_CLI="-s -i 'lo' -F 'dst port 5555' -o 'server.http.port: 5555'"  
  
docker run \  
    --net=host \  
    -e "MELODY_CLI=$MELODY_CLI" \  
    --mount type=bind,source="$(pwd)/filter.bpf",target=/app/filter.bpf,readonly \  
    --mount type=bind,source="$(pwd)/config.yml",target=/app/config.yml,readonly \  
    --mount type=bind,source="$(pwd)/var",target=/app/var,readonly \  
    --mount type=bind,source="$(pwd)/rules",target=/app/rules,readonly \  
    --mount type=bind,source="$(pwd)/logs",target=/app/logs/ \  
    bonjourmalware/melody

The logs should start to pile up in /opt/melody/logs/melody.ndjson.

Rules

Rule syntax details.

Example

CVE-2020-14882 Oracle Weblogic Server RCE:  
  layer: http  
  meta:  
    id: 3e1d86d8-fba6-4e15-8c74-941c3375fd3e  
    version: 1.0  
    author: BonjourMalware  
    status: stable  
    created: 2020/11/07  
    modified: 2020/20/07  
    description: "Checking or trying to exploit CVE-2020-14882"  
    references:  
      - "https://nvd.nist.gov/vuln/detail/CVE-2020-14882"  
  match:  
    http.uri:  
      startswith|any|nocase:  
        - "/console/css/"  
        - "/console/images"  
      contains|any|nocase:  
        - "console.portal"  
        - "consolejndi.portal?test_handle="  
  tags:  
    cve: "cve-2020-14882"  
    vendor: "oracle"  
    product: "weblogic"  
    impact: "rce"

Logs

Logs content details.

Example

Netcat TCP packet over IPv4 :

{  
  "tcp": {  
    "window": 512,  
    "seq": 1906765553,  
    "ack": 2514263732,  
    "data_offset": 8,  
    "flags": "PA",  
    "urgent": 0,  
    "payload": {  
      "content": "I made a discovery today. I found a computer.\n",  
      "base64": "SSBtYWRlIGEgZGlzY292ZXJ5IHRvZGF5LiAgSSBmb3VuZCBhIGNvbXB1dGVyLgo=",  
      "truncated": false  
    }  
  },  
  "ip": {  
    "version": 4,  
    "ihl": 5,  
    "tos": 0,  
    "length": 99,  
    "id": 39114,  
    "fragbits": "DF",  
    "frag_offset": 0,  
    "ttl": 64,  
    "protocol": 6  
  },  
  "timestamp": "2020-11-16T15:50:01.277828+01:00",  
  "session": "bup9368o4skolf20rt8g",  
  "type": "tcp",  
  "src_ip": "127.0.0.1",  
  "dst_port": 1234,  
  "matches": {},  
  "inline_matches": [],  
  "embedded": {}  
}

Download Melody

CVSS2

10

Attack Vector

NETWORK

Attack Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

EPSS

0.975

Percentile

100.0%