diff --git a/404.html b/404.html index 64eb8ba..c949a53 100644 --- a/404.html +++ b/404.html @@ -294,7 +294,7 @@
  • - + Install Guides
  • @@ -306,7 +306,7 @@
  • - + Contribute
  • @@ -337,7 +337,7 @@
  • - + License
  • diff --git a/contribute/index.html b/contribute/index.html new file mode 100644 index 0000000..d8743d1 --- /dev/null +++ b/contribute/index.html @@ -0,0 +1,1017 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Contribute - MISP Modules Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skip to content + + + +
    + +
    + +
    + + + + +
    +
    + + +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + + + +

    Contribute

    + +

    How to add your own MISP modules?

    +

    Create your module in misp_modules/modules/expansion/, misp_modules/modules/export_mod/, or misp_modules/modules/import_mod/. The module should have at minimum three functions:

    +
      +
    • introspection function that returns a dict of the supported attributes (input and output) by your expansion module.
    • +
    • handler function which accepts a JSON document to expand the values and return a dictionary of the expanded values.
    • +
    • version function that returns a dict with the version and the associated meta-data including potential configurations required of the module.
    • +
    +

    Don't forget to return an error key and value if an error is raised to propagate it to the MISP user-interface.

    +

    Your module's script name should also be added in the __all__ list of <module type folder>/__init__.py in order for it to be loaded.

    +
    ...
    +    # Checking for required value
    +    if not request.get('ip-src'):
    +        # Return an error message
    +        return {'error': "A source IP is required"}
    +...
    +
    + +

    introspection

    +

    The function that returns a dict of the supported attributes (input and output) by your expansion module.

    +
    mispattributes = {'input': ['link', 'url'],
    +                  'output': ['attachment', 'malware-sample']}
    +
    +def introspection():
    +    return mispattributes
    +
    + +

    version

    +

    The function that returns a dict with the version and the associated meta-data including potential configurations required of the module.

    +

    Additional Configuration Values

    +

    If your module requires additional configuration (to be exposed via the MISP user-interface), you can define those in the moduleconfig value returned by the version function.

    +
    # config fields that your code expects from the site admin
    +moduleconfig = ["apikey", "event_limit"]
    +
    +def version():
    +    moduleinfo['config'] = moduleconfig
    +    return moduleinfo
    +
    + +

    When you do this a config array is added to the meta-data output containing all the potential configuration values:

    +
    "meta": {
    +      "description": "PassiveTotal expansion service to expand values with multiple Passive DNS sources",
    +      "config": [
    +        "username",
    +        "password"
    +      ],
    +      "module-type": [
    +        "expansion",
    +        "hover"
    +      ],
    +
    +...
    +
    + +

    If you want to use the configuration values set in the web interface they are stored in the key config in the JSON object passed to the handler.

    +
    def handler(q=False):
    +
    +    # Check if we were given a configuration
    +    config = q.get("config", {})
    +
    +    # Find out if there is a username field
    +    username = config.get("username", None)
    +
    + +

    handler

    +

    The function which accepts a JSON document to expand the values and return a dictionary of the expanded values.

    +
    def handler(q=False):
    +    "Fully functional rot-13 encoder"
    +    if q is False:
    +        return False
    +    request = json.loads(q)
    +    src = request.get('ip-src')
    +    if src is None:
    +        # Return an error message
    +        return {'error': "A source IP is required"}
    +    else:
    +        return {'results':
    +                codecs.encode(src, "rot-13")}
    +
    + +

    export module

    +

    For an export module, the request["data"] object corresponds to a list of events (dictionaries) to handle.

    +

    Iterating over events attributes is performed using their Attribute key.

    +
    ...
    +for event in request["data"]:
    +        for attribute in event["Attribute"]:
    +          # do stuff w/ attribute['type'], attribute['value'], ...
    +...
    +
    +### Returning Binary Data
    +
    +If you want to return a file or other data you need to add a data attribute.
    +
    +~~~python
    +{"results": {"values": "filename.txt",
    +             "types": "attachment",
    +             "data"  : base64.b64encode(<ByteIO>)  # base64 encode your data first
    +             "comment": "This is an attachment"}}
    +
    + +

    If the binary file is malware you can use 'malware-sample' as the type. If you do this the malware sample will be automatically zipped and password protected ('infected') after being uploaded.

    +
    {"results": {"values": "filename.txt",
    +             "types": "malware-sample",
    +             "data"  : base64.b64encode(<ByteIO>)  # base64 encode your data first
    +             "comment": "This is an attachment"}}
    +
    + +

    To learn more about how data attributes are processed you can read the processing code here.

    +

    Module type

    +

    A MISP module can be of four types:

    +
      +
    • expansion - service related to an attribute that can be used to extend and update an existing event.
    • +
    • hover - service related to an attribute to provide additional information to the users without updating the event.
    • +
    • import - service related to importing and parsing an external object that can be used to extend an existing event.
    • +
    • export - service related to exporting an object, event, or data.
    • +
    +

    module-type is an array where the list of supported types can be added.

    +

    Testing your modules?

    +

    MISP uses the modules function to discover the available MISP modules and their supported MISP attributes:

    +
    % curl -s http://127.0.0.1:6666/modules | jq .
    +[
    +  {
    +    "name": "passivetotal",
    +    "type": "expansion",
    +    "mispattributes": {
    +      "input": [
    +        "hostname",
    +        "domain",
    +        "ip-src",
    +        "ip-dst"
    +      ],
    +      "output": [
    +        "ip-src",
    +        "ip-dst",
    +        "hostname",
    +        "domain"
    +      ]
    +    },
    +    "meta": {
    +      "description": "PassiveTotal expansion service to expand values with multiple Passive DNS sources",
    +      "config": [
    +        "username",
    +        "password"
    +      ],
    +      "author": "Alexandre Dulaunoy",
    +      "version": "0.1"
    +    }
    +  },
    +  {
    +    "name": "sourcecache",
    +    "type": "expansion",
    +    "mispattributes": {
    +      "input": [
    +        "link"
    +      ],
    +      "output": [
    +        "link"
    +      ]
    +    },
    +    "meta": {
    +      "description": "Module to cache web pages of analysis reports, OSINT sources. The module returns a link of the cached page.",
    +      "author": "Alexandre Dulaunoy",
    +      "version": "0.1"
    +    }
    +  },
    +  {
    +    "name": "dns",
    +    "type": "expansion",
    +    "mispattributes": {
    +      "input": [
    +        "hostname",
    +        "domain"
    +      ],
    +      "output": [
    +        "ip-src",
    +        "ip-dst"
    +      ]
    +    },
    +    "meta": {
    +      "description": "Simple DNS expansion service to resolve IP address from MISP attributes",
    +      "author": "Alexandre Dulaunoy",
    +      "version": "0.1"
    +    }
    +  }
    +]
    +
    + +

    The MISP module service returns the available modules in a JSON array containing each module name along with their supported input attributes.

    +

    Based on this information, a query can be built in a JSON format and saved as body.json:

    +
    {
    +  "hostname": "www.foo.be",
    +  "module": "dns"
    +}
    +
    + +

    Then you can POST this JSON format query towards the MISP object server:

    +
    curl -s http://127.0.0.1:6666/query -H "Content-Type: application/json" --data @body.json -X POST
    +
    + +

    The module should output the following JSON:

    +
    {
    +  "results": [
    +    {
    +      "types": [
    +        "ip-src",
    +        "ip-dst"
    +      ],
    +      "values": [
    +        "188.65.217.78"
    +      ]
    +    }
    +  ]
    +}
    +
    + +

    It is also possible to restrict the category options of the resolved attributes by passing a list of categories along (optional):

    +
    {
    +  "results": [
    +    {
    +      "types": [
    +        "ip-src",
    +        "ip-dst"
    +      ],
    +      "values": [
    +        "188.65.217.78"
    +      ],
    +      "categories": [
    +        "Network activity",
    +        "Payload delivery"
    +      ]
    +    }
    +  ]
    +}
    +
    + +

    For both the type and the category lists, the first item in the list will be the default setting on the interface.

    +

    Enable your module in the web interface

    +

    For a module to be activated in the MISP web interface it must be enabled in the "Plugin Settings.

    +

    Go to "Administration > Server Settings" in the top menu +- Go to "Plugin Settings" in the top "tab menu bar" +- Click on the name of the type of module you have created to expand the list of plugins to show your module. +- Find the name of your plugin's "enabled" value in the Setting Column. +"Plugin.[MODULE NAME]_enabled" +- Double click on its "Value" column

    +
    Priority        Setting                         Value   Description                             Error Message
    +Recommended     Plugin.Import_ocr_enabled       false   Enable or disable the ocr module.       Value not set.
    +
    + +
      +
    • Use the drop-down to set the enabled value to 'true'
    • +
    +
    Priority        Setting                         Value   Description                             Error Message
    +Recommended     Plugin.Import_ocr_enabled       true   Enable or disable the ocr module.       Value not set.
    +
    + +

    Set any other required settings for your module

    +

    In this same menu set any other plugin settings that are required for testing.

    +

    Documentation

    +

    In order to provide documentation about some modules that require specific input / output / configuration, the doc directory contains detailed information about the general purpose, requirements, features, input and output of each of these modules:

    +
      +
    • ***description** - quick description of the general purpose of the module, as the one given by the moduleinfo
    • +
    • requirements - special libraries needed to make the module work
    • +
    • features - description of the way to use the module, with the required MISP features to make the module give the intended result
    • +
    • references - link(s) giving additional information about the format concerned in the module
    • +
    • input - description of the format of data used in input
    • +
    • output - description of the format given as the result of the module execution
    • +
    +

    In addition to the module documentation please add your module to docs/index.md.

    +

    There are also complementary slides for the creation of MISP modules.

    +

    Tips for developers creating modules

    +

    Download a pre-built virtual image from the MISP training materials.

    +
      +
    • Create a Host-Only adapter in VirtualBox
    • +
    • Set your Misp OVA to that Host-Only adapter
    • +
    • Start the virtual machine
    • +
    • Get the IP address of the virutal machine
    • +
    • SSH into the machine (Login info on training page)
    • +
    • Go into the misp-modules directory
    • +
    +
    cd /usr/local/src/misp-modules
    +
    + +

    Set the git repo to your fork and checkout your development branch. If you SSH'ed in as the misp user you will have to use sudo.

    +
    sudo git remote set-url origin https://github.com/YourRepo/misp-modules.git
    +sudo git pull
    +sudo git checkout MyModBranch
    +
    + +

    Remove the contents of the build directory and re-install misp-modules.

    +
    sudo rm -fr build/*
    +sudo pip3 install --upgrade .
    +
    + +

    SSH in with a different terminal and run misp-modules with debugging enabled.

    +
    sudo killall misp-modules
    +misp-modules -d
    +
    + +

    In your original terminal you can now run your tests manually and see any errors that arrive

    +
    cd tests/
    +curl -s http://127.0.0.1:6666/query -H "Content-Type: application/json" --data @MY_TEST_FILE.json -X POST
    +cd ../
    +
    + + + + + + + + + +
    +
    +
    +
    + + + + +
    + + + + + + + + \ No newline at end of file diff --git a/expansion/index.html b/expansion/index.html index 5911650..3f1ab6f 100644 --- a/expansion/index.html +++ b/expansion/index.html @@ -365,6 +365,13 @@ countrycode + + +
  • + + cpe + +
  • @@ -498,6 +505,13 @@ hibp +
  • + +
  • + + html_to_markdown + +
  • @@ -701,6 +715,13 @@ sigma_syntax_validator +
  • + +
  • + + socialscan + +
  • @@ -882,7 +903,7 @@
  • - + Install Guides
  • @@ -894,7 +915,7 @@
  • - + Contribute
  • @@ -925,7 +946,7 @@
  • - + License
  • @@ -1036,6 +1057,13 @@ countrycode + + +
  • + + cpe + +
  • @@ -1169,6 +1197,13 @@ hibp +
  • + +
  • + + html_to_markdown + +
  • @@ -1372,6 +1407,13 @@ sigma_syntax_validator +
  • + +
  • + + socialscan + +
  • @@ -1526,7 +1568,7 @@

    Expansion Modules

    -

    apiosintds

    +

    apiosintds

    On demand query API for OSINT.digitalside.it project. - features:

    @@ -1543,8 +1585,8 @@ Hashes and urls resulting from the query to OSINT.digitalside.it The apiosintDS python library to query the OSINT.digitalside.it API.


    -

    apivoid

    -

    +

    apivoid

    +

    Module to query APIVoid with some domain attributes. - features:

    @@ -1560,8 +1602,8 @@ DNS records and SSL certificates related to the domain. A valid APIVoid API key with enough credits to proceed 2 queries


    -

    assemblyline_query

    -

    +

    assemblyline_query

    +

    A module tu query the AssemblyLine API with a submission ID to get the submission report and parse it. - features:

    @@ -1578,8 +1620,8 @@ MISP attributes & objects parsed from the AssemblyLine submission. assemblyline_client: Python library to query the AssemblyLine rest API.


    -

    assemblyline_submit

    -

    +

    assemblyline_submit

    +

    A module to submit samples and URLs to AssemblyLine for advanced analysis, and return the link of the submission. - features:

    @@ -1595,43 +1637,39 @@ Link of the report generated in AssemblyLine. assemblyline_client: Python library to query the AssemblyLine rest API.


    -

    backscatter_io

    -

    +

    backscatter_io

    +

    Query backscatter.io (https://backscatter.io/). - features:

    -

    The module takes a source or destination IP address as input and displays the information known by backscatter.io.

    - +

    The module takes a source or destination IP address as input and displays the information known by backscatter.io. +- input: +IP addresses. +- output: +Text containing a history of the IP addresses especially on scanning based on backscatter.io information . +- references: +https://pypi.org/project/backscatter/ +- requirements: +backscatter python library


    -

    bgpranking

    +

    bgpranking

    Query BGP Ranking (https://bgpranking-ng.circl.lu/). - features:

    -

    The module takes an AS number attribute as input and displays its description as well as its ranking position in BGP Ranking for a given day.

    - +

    The module takes an AS number attribute as input and displays its description as well as its ranking position in BGP Ranking for a given day. +- input: +Autonomous system number. +- output: +An asn object with its related bgp-ranking object. +- references: +https://github.com/D4-project/BGP-Ranking/ +- requirements: +pybgpranking python library


    -

    btc_scam_check

    -

    +

    btc_scam_check

    +

    An expansion hover module to query a special dns blacklist to check if a bitcoin address has been abused. - features:

    @@ -1646,8 +1684,8 @@ Text to indicate if the BTC address has been abused. dnspython3: dns python library


    -

    btc_steroids

    -

    +

    btc_steroids

    +

    An expansion hover module to get a blockchain balance from a BTC address in MISP. - input:

    @@ -1656,7 +1694,7 @@ dnspython3: dns python library

    Text to describe the blockchain balance and the transactions related to the btc address in input.


    -

    censys_enrich

    +

    censys_enrich

    An expansion module to enrich attributes in MISP by quering the censys.io API - features:

    @@ -1671,8 +1709,8 @@ MISP objects retrieved from censys, including open ports, ASN, Location of the I API credentials to censys.io


    -

    circl_passivedns

    -

    +

    circl_passivedns

    +

    Module to access CIRCL Passive DNS. - features:

    @@ -1683,13 +1721,15 @@ Hostname, domain, or ip-address attribute. - ouput: Passive DNS objects related to the input attribute. - references: -https://www.circl.lu/services/passive-dns/, https://datatracker.ietf.org/doc/draft-dulaunoy-dnsop-passive-dns-cof/ +- https://www.circl.lu/services/passive-dns/ +- https://datatracker.ietf.org/doc/draft-dulaunoy-dnsop-passive-dns-cof/ - requirements: -pypdns: Passive DNS python library, A CIRCL passive DNS account with username & password

    +- pypdns: Passive DNS python library +- A CIRCL passive DNS account with username & password


    -

    circl_passivessl

    -

    +

    circl_passivessl

    +

    Modules to access CIRCL Passive SSL. - features:

    @@ -1702,10 +1742,11 @@ x509 certificate objects seen by the IP address(es). - references: https://www.circl.lu/services/passive-ssl/ - requirements: -pypssl: Passive SSL python library, A CIRCL passive SSL account with username & password

    +- pypssl: Passive SSL python library +- A CIRCL passive SSL account with username & password


    -

    countrycode

    +

    countrycode

    Module to expand country codes. - features:

    @@ -1717,8 +1758,25 @@ Hostname or domain attribute. Text with the country code the input belongs to.


    -

    crowdstrike_falcon

    -

    +

    cpe

    +

    +

    An expansion module to query the CVE search API with a cpe code to get its related vulnerabilities. +- features:

    +
    +

    The module takes a cpe attribute as input and queries the CVE search API to get its related vulnerabilities.
    +The list of vulnerabilities is then parsed and returned as vulnerability objects.

    +

    Users can use their own CVE search API url by defining a value to the custom_API_URL parameter. If no custom API url is given, the default cve.circl.lu api url is used.

    +

    In order to limit the amount of data returned by CVE serach, users can also the limit parameter. With the limit set, the API returns only the requested number of vulnerabilities, sorted from the highest cvss score to the lowest one. +- input: +CPE attribute. +- output: +The vulnerabilities related to the CPE. +- references: +https://cve.circl.lu/api/

    +
    +
    +

    crowdstrike_falcon

    +

    Module to query Crowdstrike Falcon. - features:

    @@ -1768,8 +1826,8 @@ MISP attributes mapped after the CrowdStrike API has been queried, included in t A CrowdStrike API access (API id & key)


    -

    cuckoo_submit

    -

    +

    cuckoo_submit

    +

    An expansion module to submit files and URLs to Cuckoo Sandbox. - features:

    @@ -1780,13 +1838,14 @@ A malware-sample or attachment for files. A url or domain for URLs. - output: A text field containing 'Cuckoo task id: ' - references: -https://cuckoosandbox.org/, https://cuckoo.sh/docs/ +- https://cuckoosandbox.org/ +- https://cuckoo.sh/docs/ - requirements: Access to a Cuckoo Sandbox API and an API key if the API requires it. (api_url and api_key)


    -

    cve

    -

    +

    cve

    +

    An expansion hover module to expand information about CVE id. - features:

    @@ -1796,11 +1855,12 @@ Vulnerability attribute. - output: Text giving information about the CVE related to the Vulnerability. - references: -https://cve.circl.lu/, https://cve.mitre.org/

    +- https://cve.circl.lu/ +- https://cve.mitre.org/


    -

    cve_advanced

    -

    +

    cve_advanced

    +

    An expansion module to query the CIRCL CVE search API for more information about a vulnerability (CVE). - features:

    @@ -1812,11 +1872,12 @@ Vulnerability attribute. - output: Additional information about the vulnerability, such as its cvss score, some references, or the related weaknesses and attack patterns. - references: -https://cve.circl.lu, https://cve/mitre.org/

    +- https://cve.circl.lu +- https://cve/mitre.org/


    -

    cytomic_orion

    -

    +

    cytomic_orion

    +

    An expansion module to enrich attributes in MISP by quering the Cytomic Orion API - features:

    @@ -1826,13 +1887,14 @@ MD5, hash of the sample / malware to search for. - output: MISP objects with sightings of the hash in Cytomic Orion. Includes files and machines. - references: -https://www.vanimpe.eu/2020/03/10/integrating-misp-and-cytomic-orion/, https://www.cytomicmodel.com/solutions/ +- https://www.vanimpe.eu/2020/03/10/integrating-misp-and-cytomic-orion/ +- https://www.cytomicmodel.com/solutions/ - requirements: Access (license) to Cytomic Orion


    -

    dbl_spamhaus

    -

    +

    dbl_spamhaus

    +

    Module to check Spamhaus DBL for a domain name. - features:

    @@ -1849,7 +1911,7 @@ Information about the nature of the input. dnspython3: DNS python3 library


    -

    dns

    +

    dns

    A simple DNS expansion service to resolve IP address from domain MISP attributes. - features:

    @@ -1864,8 +1926,8 @@ IP address resolving the input. dnspython3: DNS python3 library


    -

    docx_enrich

    -

    +

    docx_enrich

    +

    Module to extract freetext from a .docx document. - features:

    @@ -1878,8 +1940,8 @@ Text and freetext parsed from the document. docx python library


    -

    domaintools

    -

    +

    domaintools

    +

    DomainTools MISP expansion module. - features:

    @@ -1909,11 +1971,12 @@ MISP attributes mapped after the Domaintools API has been queried, included in t - references: https://www.domaintools.com/ - requirements: -Domaintools python library, A Domaintools API access (username & apikey)

    +- Domaintools python library +- A Domaintools API access (username & apikey)


    -

    eql

    -

    +

    eql

    +

    EQL query generation for a MISP attribute. - features:

    @@ -1926,8 +1989,8 @@ Attribute containing EQL for a network or file attribute. https://eql.readthedocs.io/en/latest/


    -

    eupi

    -

    +

    eupi

    +

    A module to query the Phishing Initiative service (https://phishing-initiative.lu). - features:

    @@ -1940,27 +2003,33 @@ Text containing information about the input, resulting from the query on Phishin - references: https://phishing-initiative.eu/?lang=en - requirements: -pyeupi: eupi python library, An access to the Phishing Initiative API (apikey & url)

    +- pyeupi: eupi python library +- An access to the Phishing Initiative API (apikey & url)


    -

    farsight_passivedns

    -

    +

    farsight_passivedns

    +

    Module to access Farsight DNSDB Passive DNS. - features:

    -

    This module takes a domain, hostname or IP address MISP attribute as input to query the Farsight Passive DNS API. The API returns then the result of the query with some information about the value queried. +

    This module takes a domain, hostname or IP address MISP attribute as input to query the Farsight Passive DNS API. + The results of rdata and rrset lookups are then returned and parsed into passive-dns objects.

    +

    An API key is required to submit queries to the API. + It is also possible to define a custom server URL, and to set a limit of results to get. + This limit is set for each lookup, which means we can have an up to the limit number of passive-dns objects resulting from an rdata query about an IP address, but an up to the limit number of passive-dns objects for each lookup queries about a domain or a hostname (== twice the limit). - input: A domain, hostname or IP address MISP attribute. - output: -Text containing information about the input, resulting from the query on the Farsight Passive DNS API. +Passive-dns objects, resulting from the query on the Farsight Passive DNS API. - references: -https://www.farsightsecurity.com/ +- https://www.farsightsecurity.com/ +- https://docs.dnsdb.info/dnsdb-api/ - requirements: An access to the Farsight Passive DNS API (apikey)


    -

    geoip_asn

    -

    +

    geoip_asn

    +

    - descrption:

    An expansion module to query a local copy of Maxmind's Geolite database with an IP address, in order to get information about its related AS number. @@ -1976,8 +2045,8 @@ Text containing information about the AS number of the IP address. A local copy of Maxmind's Geolite database


    -

    geoip_city

    -

    +

    geoip_city

    +

    An expansion module to query a local copy of Maxmind's Geolite database with an IP address, in order to get information about the city where it is located. - features:

    @@ -1992,8 +2061,8 @@ Text containing information about the city where the IP address is located. A local copy of Maxmind's Geolite database


    -

    geoip_country

    -

    +

    geoip_country

    +

    Module to query a local copy of Maxmind's Geolite database. - features:

    @@ -2009,8 +2078,8 @@ Text containing information about the location of the IP address. A local copy of Maxmind's Geolite database


    - -

    +

    +

    - descrption:

    A hover module to get information about an url using a Google search. @@ -2026,8 +2095,8 @@ Text containing the result of a Google search on the input url. The python Google Search API library


    -

    greynoise

    -

    +

    greynoise

    +

    Module to access GreyNoise.io API - features:

    @@ -2037,12 +2106,13 @@ An IP address. - output: Additional information about the IP fetched from Greynoise API. - references: -https://greynoise.io/, https://github.com/GreyNoise-Intelligence/api.greynoise.io +- https://greynoise.io/ +- https://github.com/GreyNoise-Intelligence/api.greynoise.io - requirements: A Greynoise API key.


    -

    hashdd

    +

    hashdd

    A hover module to check hashes against hashdd.com including NSLR dataset. - features:

    @@ -2055,8 +2125,8 @@ Text describing the known level of the hash in the hashdd databases. https://hashdd.com/


    -

    hibp

    -

    +

    hibp

    +

    Module to access haveibeenpwned.com API. - features:

    @@ -2069,8 +2139,21 @@ Additional information about the email address. https://haveibeenpwned.com/


    -

    intel471

    -

    +

    html_to_markdown

    +

    Expansion module to fetch the html content from an url and convert it into markdown. +- features:

    +
    +

    The module take an URL as input and the HTML content is fetched from it. This content is then converted into markdown that is returned as text. +- input: +URL attribute. +- output: +Markdown content converted from the HTML fetched from the url. +- requirements: +The markdownify python library

    +
    +
    +

    intel471

    +

    - descrption:

    An expansion module to query Intel471 in order to get additional information about a domain, ip address, email address, url or hash. @@ -2099,8 +2182,8 @@ Freetext The intel471 python library


    -

    intelmq_eventdb

    -

    +

    intelmq_eventdb

    +

    Module to access intelmqs eventdb. - features:

    @@ -2111,12 +2194,14 @@ A hostname, domain, IP address or AS attribute. - output: Text giving information about the input using IntelMQ database. - references: -https://github.com/certtools/intelmq, https://intelmq.readthedocs.io/en/latest/Developers-Guide/ +- https://github.com/certtools/intelmq +- https://intelmq.readthedocs.io/en/latest/Developers-Guide/ - requirements: -psycopg2: Python library to support PostgreSQL, An access to the IntelMQ database (username, password, hostname and database reference)

    +- psycopg2: Python library to support PostgreSQL +- An access to the IntelMQ database (username, password, hostname and database reference)


    -

    ipasn

    +

    ipasn

    Module to query an IP ASN history service (https://github.com/D4-project/IPASN-History). - features:

    @@ -2131,7 +2216,7 @@ Asn object(s) objects related to the IP address used as input. pyipasnhistory: Python library to access IPASN-history instance


    -

    iprep

    +

    iprep

    Module to query IPRep data for IP addresses. - features:

    @@ -2146,8 +2231,8 @@ Text describing additional information about the input after a query on the IPRe An access to the packetmail API (apikey)


    -

    joesandbox_query

    -

    +

    joesandbox_query

    +

    Query Joe Sandbox API with a submission url to get the json report and extract its data that is parsed and converted into MISP attributes and objects.

    This url can by the way come from the result of the joesandbox_submit expansion module. - features:

    @@ -2161,13 +2246,14 @@ Link of a Joe Sandbox sample or url submission. - output: MISP attributes & objects parsed from the analysis report. - references: -https://www.joesecurity.org, https://www.joesandbox.com/ +- https://www.joesecurity.org +- https://www.joesandbox.com/ - requirements: jbxapi: Joe Sandbox API python3 library


    -

    joesandbox_submit

    -

    +

    joesandbox_submit

    +

    A module to submit files or URLs to Joe Sandbox for an advanced analysis, and return the link of the submission. - features:

    @@ -2178,13 +2264,14 @@ Sample, url (or domain) to submit to Joe Sandbox for an advanced analysis. - output: Link of the report generated in Joe Sandbox. - references: -https://www.joesecurity.org, https://www.joesandbox.com/ +- https://www.joesecurity.org +- https://www.joesandbox.com/ - requirements: jbxapi: Joe Sandbox API python3 library


    -

    lastline_query

    -

    +

    lastline_query

    +

    Query Lastline with an analysis link and parse the report into MISP attributes and objects. The analysis link can also be retrieved from the output of the lastline_submit expansion module. - features:

    @@ -2200,8 +2287,8 @@ MISP attributes and objects parsed from the analysis report. https://www.lastline.com


    -

    lastline_submit

    -

    +

    lastline_submit

    +

    Module to submit a file or URL to Lastline. - features:

    @@ -2215,8 +2302,8 @@ Link to the report generated by Lastline. https://www.lastline.com


    -

    macaddress_io

    -

    +

    macaddress_io

    +

    MISP hover module for macaddress.io - features:

    @@ -2230,13 +2317,15 @@ MAC address MISP attribute. - output: Text containing information on the MAC address fetched from a query on macaddress.io. - references: -https://macaddress.io/, https://github.com/CodeLineFi/maclookup-python +- https://macaddress.io/ +- https://github.com/CodeLineFi/maclookup-python - requirements: -maclookup: macaddress.io python library, An access to the macaddress.io API (apikey)

    +- maclookup: macaddress.io python library +- An access to the macaddress.io API (apikey)


    -

    macvendors

    -

    +

    macvendors

    +

    Module to access Macvendors API. - features:

    @@ -2246,10 +2335,11 @@ A MAC address. - output: Additional information about the MAC address. - references: -https://macvendors.com/, https://macvendors.com/api

    +- https://macvendors.com/ +- https://macvendors.com/api


    -

    malwarebazaar

    +

    malwarebazaar

    Query the MALWAREbazaar API to get additional information about the input hash attribute. - features:

    @@ -2263,7 +2353,7 @@ File object(s) related to the input attribute found on MALWAREbazaar databases. https://bazaar.abuse.ch/


    -

    ocr_enrich

    +

    ocr_enrich

    Module to process some optical character recognition on pictures. - features:

    @@ -2276,8 +2366,8 @@ Text and freetext fetched from the input picture. cv2: The OpenCV python library.


    -

    ods_enrich

    -

    +

    ods_enrich

    +

    Module to extract freetext from a .ods document. - features:

    @@ -2287,11 +2377,12 @@ Attachment attribute containing a .ods document. - output: Text and freetext parsed from the document. - requirements: -ezodf: Python package to create/manipulate OpenDocumentFormat files., pandas_ods_reader: Python library to read in ODS files.

    +- ezodf: Python package to create/manipulate OpenDocumentFormat files. +- pandas_ods_reader: Python library to read in ODS files.


    -

    odt_enrich

    -

    +

    odt_enrich

    +

    Module to extract freetext from a .odt document. - features:

    @@ -2304,8 +2395,8 @@ Text and freetext parsed from the document. ODT reader python library.


    -

    onyphe

    -

    +

    onyphe

    +

    Module to process a query on Onyphe. - features:

    @@ -2315,13 +2406,15 @@ A domain, hostname or IP address MISP attribute. - output: MISP attributes fetched from the Onyphe query. - references: -https://www.onyphe.io/, https://github.com/sebdraven/pyonyphe +- https://www.onyphe.io/ +- https://github.com/sebdraven/pyonyphe - requirements: -onyphe python library, An access to the Onyphe API (apikey)

    +- onyphe python library +- An access to the Onyphe API (apikey)


    -

    onyphe_full

    -

    +

    onyphe_full

    +

    Module to process a full query on Onyphe. - features:

    @@ -2332,13 +2425,15 @@ A domain, hostname or IP address MISP attribute. - output: MISP attributes fetched from the Onyphe query. - references: -https://www.onyphe.io/, https://github.com/sebdraven/pyonyphe +- https://www.onyphe.io/ +- https://github.com/sebdraven/pyonyphe - requirements: -onyphe python library, An access to the Onyphe API (apikey)

    +- onyphe python library +- An access to the Onyphe API (apikey)


    -

    otx

    -

    +

    otx

    +

    Module to get information from AlienVault OTX. - features:

    @@ -2370,8 +2465,8 @@ MISP attributes mapped from the result of the query on OTX, included in the foll An access to the OTX API (apikey)


    -

    passivetotal

    -

    +

    passivetotal

    +


    -

    pdf_enrich

    -

    +

    pdf_enrich

    +

    Module to extract freetext from a PDF document. - features:

    @@ -2441,8 +2539,8 @@ Text and freetext parsed from the document. pdftotext: Python library to extract text from PDF.


    -

    pptx_enrich

    -

    +

    pptx_enrich

    +

    Module to extract freetext from a .pptx document. - features:

    @@ -2455,7 +2553,7 @@ Text and freetext parsed from the document. pptx: Python library to read PowerPoint files.


    -

    qrcode

    +

    qrcode

    Module to decode QR codes. - features:

    @@ -2465,10 +2563,11 @@ A QR code stored as attachment attribute. - output: The URL or bitcoin address the QR code is pointing to. - requirements: -cv2: The OpenCV python library., pyzbar: Python library to read QR codes.

    +- cv2: The OpenCV python library. +- pyzbar: Python library to read QR codes.


    -

    ransomcoindb

    +

    ransomcoindb


    -

    rbl

    +

    rbl

    Module to check an IPv4 address against known RBLs. - features:

    @@ -2513,8 +2612,8 @@ Text with additional data from Real-time Blackhost Lists about the IP address. dnspython3: DNS python3 library


    -

    recordedfuture

    -

    +

    recordedfuture

    +

    Module to enrich attributes with threat intelligence from Recorded Future. - features:

    @@ -2529,7 +2628,7 @@ A MISP object containing a copy of the enriched attribute with added tags from R A Recorded Future API token.


    -

    reversedns

    +

    reversedns

    Simple Reverse DNS expansion service to resolve reverse DNS from MISP attributes. - features:

    @@ -2544,8 +2643,8 @@ Hostname attribute the input is resolved into. DNS python library


    -

    securitytrails

    -

    +

    securitytrails

    +

    An expansion modules for SecurityTrails. - features:

    @@ -2570,11 +2669,12 @@ MISP attributes resulting from the query on SecurityTrails API, included in the - references: https://securitytrails.com/ - requirements: -dnstrails python library, An access to the SecurityTrails API (apikey)

    +- dnstrails python library +- An access to the SecurityTrails API (apikey)


    -

    shodan

    -

    +

    shodan

    +

    Module to query on Shodan. - features:

    @@ -2586,11 +2686,12 @@ Text with additional data about the input, resulting from the query on Shodan. - references: https://www.shodan.io/ - requirements: -shodan python library, An access to the Shodan API (apikey)

    +- shodan python library +- An access to the Shodan API (apikey)


    -

    sigma_queries

    -

    +

    sigma_queries

    +

    An expansion hover module to display the result of sigma queries. - features:

    @@ -2605,8 +2706,8 @@ Text displaying results of queries on the Sigma attribute. Sigma python library


    -

    sigma_syntax_validator

    -

    +

    sigma_syntax_validator

    +

    An expansion hover module to perform a syntax check on sigma rules. - features:

    @@ -2619,11 +2720,27 @@ Text describing the validity of the Sigma rule. - references: https://github.com/Neo23x0/sigma/wiki - requirements: -Sigma python library, Yaml python library

    +- Sigma python library +- Yaml python library


    -

    sophoslabs_intelix

    -

    +

    socialscan

    +

    A hover module to get information on the availability of an email address or username on some online platforms. +- features:

    +
    +

    The module takes an email address or username as input and check its availability on some online platforms. The results for each platform are then returned to see if the email address or the username is used, available or if there is an issue with it. +- input: +An email address or usename attribute. +- output: +Text containing information about the availability of an email address or a username in some online platforms. +- references: +https://github.com/iojw/socialscan +- requirements: +The socialscan python library

    +
    +
    +

    sophoslabs_intelix

    +

    An expansion module to query the Sophoslabs intelix API to get additional information about an ip address, url, domain or sha256 attribute. - features:

    @@ -2638,7 +2755,7 @@ SophosLabs Intelix report and lookup objects A client_id and client_secret pair to authenticate to the SophosLabs Intelix API


    -

    sourcecache

    +

    sourcecache

    Module to cache web pages of analysis reports, OSINT sources. The module returns a link of the cached page. - features:

    @@ -2653,8 +2770,8 @@ A malware-sample attribute describing the cached page. urlarchiver: python library to fetch and archive URL on the file-system


    -

    stix2_pattern_syntax_validator

    -

    +

    stix2_pattern_syntax_validator

    +

    An expansion hover module to perform a syntax check on stix2 patterns. - features:

    @@ -2670,8 +2787,8 @@ Text describing the validity of the STIX2 pattern. stix2patterns python library


    -

    threatcrowd

    -

    +

    threatcrowd

    +

    Module to get information from ThreatCrowd. - features:

    @@ -2704,8 +2821,8 @@ MISP attributes mapped from the result of the query on ThreatCrowd, included in https://www.threatcrowd.org/


    -

    threatminer

    -

    +

    threatminer

    +

    Module to get information from ThreatMiner. - features:

    @@ -2741,8 +2858,8 @@ MISP attributes mapped from the result of the query on ThreatMiner, included in https://www.threatminer.org/


    -

    trustar_enrich

    -

    +

    trustar_enrich

    +

    Module to get enrich indicators with TruSTAR. - features:

    @@ -2767,8 +2884,8 @@ MISP attributes enriched with indicator summary data from the TruSTAR API. Data https://docs.trustar.co/api/v13/indicators/get_indicator_summaries.html


    -

    urlhaus

    -

    +

    urlhaus

    +

    Query of the URLhaus API to get additional information about the input attribute. - features:

    @@ -2782,8 +2899,8 @@ MISP attributes & objects fetched from the result of the URLhaus API query. https://urlhaus.abuse.ch/


    -

    urlscan

    -

    +

    urlscan

    +

    An expansion module to query urlscan.io. - features:

    @@ -2799,8 +2916,8 @@ MISP attributes mapped from the result of the query on urlscan.io. An access to the urlscan.io API


    -

    virustotal

    -

    +

    virustotal

    +

    Module to get advanced information from virustotal. - features:

    @@ -2813,13 +2930,14 @@ A domain, hash (md5, sha1, sha256 or sha512), hostname or IP address attribute. - output: MISP attributes and objects resulting from the parsing of the VirusTotal report concerning the input attribute. - references: -https://www.virustotal.com/, https://developers.virustotal.com/reference +- https://www.virustotal.com/ +- https://developers.virustotal.com/reference - requirements: An access to the VirusTotal API (apikey), with a high request rate limit.


    -

    virustotal_public

    -

    +

    virustotal_public

    +

    Module to get information from VirusTotal. - features:

    @@ -2832,13 +2950,14 @@ A domain, hostname, ip, url or hash (md5, sha1, sha256 or sha512) attribute. - output: MISP attributes and objects resulting from the parsing of the VirusTotal report concerning the input attribute. - references: -https://www.virustotal.com, https://developers.virustotal.com/reference +- https://www.virustotal.com +- https://developers.virustotal.com/reference - requirements: An access to the VirusTotal API (apikey)


    -

    vmray_submit

    -

    +

    vmray_submit

    +

    Module to submit a sample to VMRay. - features:

    @@ -2859,8 +2978,8 @@ MISP attributes mapped from the result of the query on VMRay API, included in th An access to the VMRay API (apikey & url)


    -

    vulndb

    -

    +

    vulndb

    +

    Module to query VulnDB (RiskBasedSecurity.com). - features:

    @@ -2876,8 +2995,8 @@ Additional data enriching the CVE input, fetched from VulnDB. An access to the VulnDB API (apikey, apisecret)


    -

    vulners

    -

    +

    vulners

    +

    An expansion hover module to expand information about CVE id using Vulners API. - features:

    @@ -2890,10 +3009,11 @@ Text giving additional information about the CVE in input. - references: https://vulners.com/ - requirements: -Vulners python library, An access to the Vulners API

    +- Vulners python library +- An access to the Vulners API


    -

    whois

    +

    whois

    Module to query a local instance of uwhois (https://github.com/rafiot/uwhoisd). - features:

    @@ -2908,8 +3028,8 @@ Text describing the result of a whois request for the input value. uwhois: A whois python library


    -

    wiki

    -

    +

    wiki

    +

    An expansion hover module to extract information from Wikidata to have additional information about particular term for analysis. - features:

    @@ -2924,8 +3044,8 @@ Text attribute. SPARQLWrapper python library


    -

    xforceexchange

    -

    +

    xforceexchange

    +

    An expansion module for IBM X-Force Exchange. - features:

    @@ -2946,8 +3066,8 @@ MISP attributes mapped from the result of the query on X-Force Exchange. An access to the X-Force API (apikey)


    -

    xlsx_enrich

    -

    +

    xlsx_enrich

    +

    Module to extract freetext from a .xlsx document. - features:

    @@ -2960,8 +3080,8 @@ Text and freetext parsed from the document. pandas: Python library to perform data analysis, time series and statistics.


    -

    yara_query

    -

    +

    yara_query

    +

    An expansion & hover module to translate any hash attribute into a yara rule. - features:

    @@ -2972,13 +3092,14 @@ MISP Hash attribute (md5, sha1, sha256, imphash, or any of the composite attribu - output: YARA rule. - references: -https://virustotal.github.io/yara/, https://github.com/virustotal/yara-python +- https://virustotal.github.io/yara/ +- https://github.com/virustotal/yara-python - requirements: yara-python python library


    -

    yara_syntax_validator

    -

    +

    yara_syntax_validator

    +

    An expansion hover module to perform a syntax check on if yara rules are valid or not. - features:

    diff --git a/export_mod/index.html b/export_mod/index.html index a5ba1ce..637a3d3 100644 --- a/export_mod/index.html +++ b/export_mod/index.html @@ -307,6 +307,13 @@ cisco_firesight_manager_ACL_rule_export +
  • + +
  • + + defender_endpoint_export + +
  • @@ -413,7 +420,7 @@
  • - + Install Guides
  • @@ -425,7 +432,7 @@
  • - + Contribute
  • @@ -456,7 +463,7 @@
  • - + License
  • @@ -497,6 +504,13 @@ cisco_firesight_manager_ACL_rule_export + + +
  • + + defender_endpoint_export + +
  • @@ -588,7 +602,7 @@

    Export Modules

    -

    cef_export

    +

    cef_export

    Module to export a MISP event in CEF format. - features:

    @@ -602,8 +616,8 @@ Common Event Format file https://community.softwaregrp.com/t5/ArcSight-Connectors/ArcSight-Common-Event-Format-CEF-Guide/ta-p/1589306?attachment-id=65537


    -

    cisco_firesight_manager_ACL_rule_export

    -

    +

    cisco_firesight_manager_ACL_rule_export

    +

    Module to export malicious network activity attributes to Cisco fireSIGHT manager block rules. - features:

    @@ -616,8 +630,22 @@ Cisco fireSIGHT manager block rules. Firesight manager console credentials


    -

    goamlexport

    -

    +

    defender_endpoint_export

    +

    +

    Defender for Endpoint KQL hunting query export module +- features:

    +
    +

    This module export an event as Defender for Endpoint KQL queries that can then be used in your own python3 or Powershell tool. If you are using Microsoft Sentinel, you can directly connect your MISP instance to Sentinel and then create queries using the ThreatIntelligenceIndicator table to match events against imported IOC. +- input: +MISP Event attributes +- output: +Defender for Endpoint KQL queries +- references: +https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/advanced-hunting-schema-reference

    +
    +
    +

    goamlexport

    +

    This module is used to export MISP events containing transaction objects into GoAML format. - features:

    @@ -644,10 +672,11 @@ GoAML format file, describing financial transactions, with their origin and targ - references: http://goaml.unodc.org/ - requirements: -PyMISP, MISP objects

    +- PyMISP +- MISP objects


    -

    liteexport

    +

    liteexport

    Lite export of a MISP event. - features:

    @@ -658,8 +687,8 @@ MISP Event attributes Lite MISP Event


    -

    mass_eql_export

    -

    +

    mass_eql_export

    +

    Mass EQL query export for a MISP event. - features:

    @@ -672,8 +701,8 @@ Text file containing one or more EQL queries https://eql.readthedocs.io/en/latest/


    -

    nexthinkexport

    -

    +

    nexthinkexport

    +

    Nexthink NXQL query export module - features:

    @@ -686,8 +715,8 @@ Nexthink NXQL queries https://doc.nexthink.com/Documentation/Nexthink/latest/APIAndIntegrations/IntroducingtheWebAPIV2


    -

    osqueryexport

    -

    +

    osqueryexport

    +

    OSQuery export of a MISP event. - features:

    @@ -698,7 +727,7 @@ MISP Event attributes osquery SQL queries


    -

    pdfexport

    +

    pdfexport

    Simple export of a MISP event to PDF. - features:

    @@ -716,14 +745,15 @@ MISP Event in a PDF file. - references: https://acrobat.adobe.com/us/en/acrobat/about-adobe-pdf.html - requirements: -PyMISP, reportlab

    +- PyMISP +- reportlab


    -

    testexport

    +

    testexport

    Skeleton export module.


    -

    threatStream_misp_export

    -

    +

    threatStream_misp_export

    +

    Module to export a structured CSV file for uploading to threatStream. - features:

    @@ -733,13 +763,14 @@ MISP Event attributes - output: ThreatStream CSV format file - references: -https://www.anomali.com/platform/threatstream, https://github.com/threatstream +- https://www.anomali.com/platform/threatstream +- https://github.com/threatstream - requirements: csv


    -

    threat_connect_export

    -

    +

    threat_connect_export

    +

    Module to export a structured CSV file for uploading to ThreatConnect. - features:

    @@ -755,8 +786,8 @@ ThreatConnect CSV format file csv


    -

    vt_graph

    -

    +

    vt_graph

    +

    This module is used to create a VirusTotal Graph from a MISP event. - features:

    diff --git a/import_mod/index.html b/import_mod/index.html index 51b90ec..94c95fd 100644 --- a/import_mod/index.html +++ b/import_mod/index.html @@ -406,7 +406,7 @@
  • - + Install Guides
  • @@ -418,7 +418,7 @@
  • - + Contribute
  • @@ -449,7 +449,7 @@
  • - + License
  • @@ -574,7 +574,7 @@

    Import Modules

    -

    csvimport

    +

    csvimport

    Module to import MISP attributes from a csv file. - features:

    @@ -586,13 +586,14 @@ CSV format file. - output: MISP Event attributes - references: -https://tools.ietf.org/html/rfc4180, https://tools.ietf.org/html/rfc7111 +- https://tools.ietf.org/html/rfc4180 +- https://tools.ietf.org/html/rfc7111 - requirements: PyMISP


    -

    cuckooimport

    -

    +

    cuckooimport

    +

    Module to import Cuckoo JSON. - features:

    @@ -602,10 +603,11 @@ Cuckoo JSON file - output: MISP Event attributes - references: -https://cuckoosandbox.org/, https://github.com/cuckoosandbox/cuckoo

    +- https://cuckoosandbox.org/ +- https://github.com/cuckoosandbox/cuckoo


    -

    email_import

    +

    email_import

    Module to import emails in MISP. - features:

    @@ -617,8 +619,8 @@ E-mail file MISP Event attributes


    -

    goamlimport

    -

    +

    goamlimport

    +

    Module to import MISP objects about financial transactions from GoAML files. - features:

    @@ -633,25 +635,24 @@ MISP objects (transaction, bank-account, person, legal-entity, geolocation), wit PyMISP


    -

    joe_import

    -

    +

    joe_import

    +

    A module to import data from a Joe Sandbox analysis json report. - features:

    Module using the new format of modules able to return attributes and objects.

    -

    The module returns the same results as the expansion module joesandbox_query using the submission link of the analysis to get the json report.

    - +

    The module returns the same results as the expansion module joesandbox_query using the submission link of the analysis to get the json report. +- input: +Json report of a Joe Sandbox analysis. +- output: +MISP attributes & objects parsed from the analysis report. +- references: +- https://www.joesecurity.org +- https://www.joesandbox.com/


    -

    lastline_import

    -

    +

    lastline_import

    +

    Module to import and parse reports from Lastline analysis links. - features:

    @@ -666,7 +667,7 @@ MISP attributes and objects parsed from the analysis report. https://www.lastline.com


    -

    mispjson

    +

    mispjson

    Module to import MISP JSON format for merging MISP events. - features:

    @@ -677,7 +678,7 @@ MISP Event MISP Event attributes


    -

    ocr

    +

    ocr

    Optical Character Recognition (OCR) module for MISP. - features:

    @@ -688,7 +689,7 @@ Image freetext MISP attribute


    -

    openiocimport

    +

    openiocimport

    Module to import OpenIOC packages. - features:

    @@ -703,7 +704,7 @@ MISP Event attributes PyMISP


    -

    threatanalyzer_import

    +

    threatanalyzer_import

    Module to import ThreatAnalyzer archive.zip / analysis.json files. - features:

    @@ -717,8 +718,8 @@ MISP Event attributes https://www.threattrack.com/malware-analysis.aspx


    -

    vmray_import

    -

    +

    vmray_import

    +

    Module to import VMRay (VTI) results. - features:

    @@ -769,6 +770,20 @@ vmray_rest_api

    + + diff --git a/index.html b/index.html index 1cdfd97..fde7c57 100644 --- a/index.html +++ b/index.html @@ -91,6 +91,10 @@ + + Skip to content + +
  • @@ -303,7 +379,7 @@
  • - + Install Guides
  • @@ -315,7 +391,7 @@
  • - + Contribute
  • @@ -346,7 +422,7 @@
  • - + License
  • @@ -364,19 +440,191 @@ +
    +
    +
    + + +
    +
    +
    +
    -

    Home

    - -