Workflow n8n

Automatisation n8n : rapport d'accidents hebdomadaire sur Shodan

Ce workflow n8n a pour objectif d'automatiser la génération d'un rapport hebdomadaire sur les accidents détectés via Shodan, un moteur de recherche pour les dispositifs connectés. Dans un contexte où la sécurité des réseaux est cruciale, ce processus permet aux équipes de sécurité informatique de rester informées des vulnérabilités potentielles. Le workflow commence par un déclencheur programmé qui s'active chaque lundi, garantissant ainsi une mise à jour régulière des données. Étape 1 : le workflow utilise le nœud 'Scan each IP' pour interroger les adresses IP surveillées. Étape 2 : il récupère les IP et ports à l'aide du nœud 'Get watched IPs & Ports'. Ensuite, les services sont extraits grâce au nœud 'Split out services', permettant une analyse plus fine des données. Étape 3 : une condition est appliquée avec le nœud 'Unexpected port?' pour filtrer les résultats inattendus. Les données sont ensuite préparées pour publication via le nœud 'Set data to post for each port', suivie de la conversion des résultats en format table et Markdown. Enfin, une alerte est créée dans TheHive pour chaque incident détecté, assurant une réponse rapide. Ce workflow offre une visibilité accrue sur les menaces potentielles, réduisant ainsi les risques de sécurité et permettant une gestion proactive des incidents. Tags clés : automatisation, n8n, sécurité informatique.

Catégorie: Scheduled · Tags: automatisation, n8n, sécurité informatique, Shodan, alertes0

Vue d'ensemble du workflow n8n

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Détail des nœuds du workflow n8n

  • Scan each IP

    Ce noeud effectue une requête HTTP pour scanner chaque adresse IP.

  • Get watched IPs & Ports

    Ce noeud récupère les adresses IP et les ports surveillés via une requête HTTP.

  • Split out services

    Ce noeud divise les services en fonction d'un champ spécifié.

  • Unexpected port?

    Ce noeud filtre les résultats pour identifier les ports inattendus selon des conditions définies.

  • Set data to post for each port

    Ce noeud définit les données à poster pour chaque port.

  • Convert to table

    Ce noeud convertit les données en un tableau HTML.

  • Convert to Markdown

    Ce noeud convertit le contenu HTML en Markdown.

  • For each IP

    Ce noeud traite chaque adresse IP par lots.

  • Sticky Note

    Ce noeud crée une note autocollante avec un contenu spécifié.

  • Sticky Note1

    Ce noeud crée une seconde note autocollante avec un contenu spécifié.

  • Sticky Note2

    Ce noeud crée une troisième note autocollante avec un contenu spécifié.

  • Sticky Note4

    Ce noeud crée une quatrième note autocollante avec un contenu spécifié.

  • Every Monday

    Ce noeud déclenche le workflow chaque lundi selon une règle définie.

  • Create TheHive alert

    Ce noeud crée une alerte dans TheHive avec les informations fournies.

  • Sticky Note5

    Ce noeud crée une cinquième note autocollante avec un contenu spécifié.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "VoLT6Omw9KMQgPum",
  "meta": {
    "instanceId": "03e9d14e9196363fe7191ce21dc0bb17387a6e755dcc9acc4f5904752919dca8"
  },
  "name": "Weekly_Shodan_Query___Report_Accidents__no_function_node_",
  "tags": [
    {
      "id": "GCHVocImoXoEVnzP",
      "name": "🛠️ In progress",
      "createdAt": "2023-10-31T02:17:21.618Z",
      "updatedAt": "2023-10-31T02:17:21.618Z"
    },
    {
      "id": "QPJKatvLSxxtrE8U",
      "name": "Secops",
      "createdAt": "2023-10-31T02:15:11.396Z",
      "updatedAt": "2023-10-31T02:15:11.396Z"
    }
  ],
  "nodes": [
    {
      "id": "54b2b2bd-9101-402c-b7cb-3d5e1070fcd2",
      "name": "Scan each IP",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2123,
        202
      ],
      "parameters": {
        "url": "=https://api.shodan.io/shodan/host/{{ $json.ip }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth"
      },
      "credentials": {
        "httpQueryAuth": {
          "id": "LyUxI7J9gK1haB4h",
          "name": "Shodan API Key"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "f6b194a7-a38d-46b4-899f-a9cb71de247e",
      "name": "Get watched IPs & Ports",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1448.635348143835,
        200
      ],
      "parameters": {
        "url": "https://internal.users.n8n.cloud/webhook/mock-shodan-ips",
        "options": {}
      },
      "typeVersion": 4.1
    },
    {
      "id": "a6754adf-610b-46f0-9019-7ea21ac22690",
      "name": "Split out services",
      "type": "n8n-nodes-base.itemLists",
      "position": [
        2323,
        202
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 3
    },
    {
      "id": "fa9dd77c-32e9-48c5-a1bf-8b95720aad43",
      "name": "Unexpected port?",
      "type": "n8n-nodes-base.filter",
      "position": [
        2543,
        202
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $('For each IP').item.json.ports.includes($json.port) }}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "addfeaf8-0c5d-4e4a-924e-53b3e28a23de",
      "name": "Set data to post for each port",
      "type": "n8n-nodes-base.set",
      "position": [
        2763,
        202
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "ip",
              "value": "={{ $('Get watched IPs & Ports').item.json.ip }}"
            },
            {
              "name": "hostnames",
              "value": "={{ $json.hostnames.join(', ') }}"
            },
            {
              "name": "port",
              "value": "={{ $json.port }}"
            },
            {
              "name": "description",
              "value": "={{ $json.description }}"
            },
            {
              "name": "data",
              "value": "={{ $json.data }}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 2
    },
    {
      "id": "aaef71c0-927c-4297-9fa1-331e7009bf7e",
      "name": "Convert to table",
      "type": "n8n-nodes-base.html",
      "position": [
        2983,
        202
      ],
      "parameters": {
        "options": {},
        "operation": "convertToHtmlTable"
      },
      "typeVersion": 1
    },
    {
      "id": "2f257556-cf1b-4a80-8f40-7989ea077f48",
      "name": "Convert to Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        3203,
        202
      ],
      "parameters": {
        "html": "={{ $json.table }}",
        "options": {},
        "destinationKey": "markdown"
      },
      "typeVersion": 1
    },
    {
      "id": "9fdd40ba-1ab4-43a2-9e9d-53af5fc32f9f",
      "name": "For each IP",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1740,
        200
      ],
      "parameters": {
        "options": {},
        "batchSize": 1
      },
      "typeVersion": 2
    },
    {
      "id": "01823f1f-9612-4e56-a8f2-62aa2a0d5d5e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2722,
        -137.71236116790237
      ],
      "parameters": {
        "width": 607.8070576425011,
        "height": 564.6974012965735,
        "content": "![Shodan](https://i.imgur.com/tK0RXSK.png)\n## Format port service data as a Markdown table\nAfter identifying the open ports, the next step is to organize this information neatly. This node converts the data gathered from the previous steps into a `Markdown table format`. \n\nIt's crucial for readability and makes it easier to parse through the port and service information. This formatted data can then be seamlessly integrated into documentation or reports, ensuring that the information is accessible and understandable for further analysis or sharing with team members."
      },
      "typeVersion": 1
    },
    {
      "id": "7ef1232b-8386-4b47-8617-a65749357ede",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2083.3970861885364,
        -134.67908072298724
      ],
      "parameters": {
        "width": 606.297701841459,
        "height": 562.5474916374191,
        "content": "![Shodan](https://i.imgur.com/q4G3kQf.png)\n## Query Shodan for unexpected open ports\nThis stage of the workflow leverages `Shodan`, a search engine for internet-connected devices, to identify running services on each IP port.\n\nOnce the services and ports are returned, the `split out services` node extracts all the services to be filtered at once. \n\nIf an unexpected port is found, it allows the service to pass the service through the filter node."
      },
      "typeVersion": 1
    },
    {
      "id": "afd6651a-bcf1-4d66-ae1c-0f5616d3f29a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        928,
        -465
      ],
      "parameters": {
        "width": 650.8045775723033,
        "height": 890.9735108226744,
        "content": "![Scheduled](https://i.imgur.com/PcOuvAL.png)\n# Workflow Overview\n\nThe n8n workflow initiates with a node that fetches a list of IP addresses and their specified ports from a security system, which is essential for ongoing surveillance of network integrity. \n\nThe data is expected to be in JSON format, detailing each IP with an array of associated ports to be monitored. While the example provided showcases a basic API call, in practice, this should be replaced with a call to the organization's own security system. \n\n`It's important to note that error handling is not included in this example and should be implemented according to the specific data formatting and error response protocols of the user's system.` The expectation for successful execution is that the incoming data conforms to the predefined JSON structure.\n\n## Get list of IPs from your IPS or database\n\nThis section retrieves a current list of IP addresses and their associated ports that require monitoring from your Intrusion Prevention System (IPS). It is essential to maintain an updated list to monitor for any unauthorized changes or traffic. The expected format for each entry is a JSON object containing the IP address and an array of ports.\n\nOur sample api call below can be replaced with api access to your IPS. To ensure it works, this workflow expects data to be in the following format:\n```\n[\n  {\n    \"ip\": \"116.202.106.35\",\n    \"ports\": [\n      5678,\n      80\n    ]\n  },\n  {\n    \"ip\": \"188.114.96.9\",\n    \"ports\": [\n      8080,\n      80\n    ]\n  }\n]\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "14730a2f-42cc-4d96-b401-8a6a2c41aa27",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3362,
        -167.68304244703404
      ],
      "parameters": {
        "width": 438.8550109331452,
        "height": 594.7981050471616,
        "content": "![thehive](https://i.imgur.com/y2Yw1ZP.png)\n## Post to TheHive\nThe final step in the process involves posting the findings to TheHive - a scalable, open-source and free Security Incident Response Platform. \n\nIf the workflow has identified an unexpected open port, it creates an alert in TheHive. This integration ensures that any potential security issues are escalated appropriately, and the relevant teams can begin the incident response process immediately, leveraging TheHive's powerful case management capabilities."
      },
      "typeVersion": 1
    },
    {
      "id": "f8cd7e3f-b55e-400d-ba45-486d4c736a16",
      "name": "Every Monday",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1228.635348143835,
        200
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 5
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "804ef38c-3ecb-41b2-ab38-ef8c231b7425",
      "name": "Create TheHive alert",
      "type": "n8n-nodes-base.theHive",
      "position": [
        3423,
        202
      ],
      "parameters": {
        "date": "={{$now}}",
        "tags": "={{ $('For each IP').last().json.ip }}",
        "type": "Unexpected open port",
        "title": "=Unexpected ports for {{ $('For each IP').last().json.ip }}",
        "source": "n8n",
        "sourceRef": "={{ $('For each IP').last().json.ip }}:{{$now.toUnixInteger()}}",
        "description": "=Unexpected open ports:\n\n{{ $json.markdown }}",
        "additionalFields": {}
      },
      "credentials": {
        "theHiveApi": {
          "id": "Qm1GXxzVWvg1FiHg",
          "name": "The Hive account (David)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5f09a27b-c6a4-4f74-a5ff-4c684e5e8917",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        -261.14340884889145
      ],
      "parameters": {
        "width": 432.3140705656865,
        "height": 690.0398460499007,
        "content": "![n8n](https://i.imgur.com/lKnBNnH.png)\n## Iterate Through IP addresses\nThe \"`Split In Batches`\" node is configured with a batch size of one, ensuring that the array of IP addresses received is processed one at a time. \n\nThis approach allows for a focused analysis of each detection, ensuring no detail is overlooked. \n\nFollowing this, the \"`Split out services`\" node further along dissects each service to extract and separately handle the array of behaviors associated with them. \n\nBy processing these elements one by one, we effectively manage the workflow's load, maintaining optimal performance and adherence to external APIs' rate limits, crucial for the seamless operation of our security protocols.\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {
    "Scan each IP": [
      {
        "json": {
          "ip": 3161612297,
          "os": null,
          "asn": "AS13335",
          "isp": "Cloudflare, Inc.",
          "org": "CloudFlare, Inc.",
          "city": "San Francisco",
          "data": [
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "data": "HTTP/1.1 403 Forbidden\r\nDate: Sat, 02 Sep 2023 13:14:00 GMT\r\nContent-Type: text/html; charset=UTF-8\r\nContent-Length: 5892\r\nConnection: close\r\nX-Frame-Options: SAMEORIGIN\r\nReferrer-Policy: same-origin\r\nCache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\nExpires: Thu, 01 Jan 1970 00:00:01 GMT\r\nVary: Accept-Encoding\r\nServer: cloudflare\r\nCF-RAY: 80060379ef7009ef-LAS\r\n\r\n",
              "hash": -135673925,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<!DOCTYPE html>\n<!--[if lt IE 7]> <html class=\"no-js ie6 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if IE 7]>    <html class=\"no-js ie7 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if IE 8]>    <html class=\"no-js ie8 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if gt IE 8]><!--> <html class=\"no-js\" lang=\"en-US\"> <!--<![endif]-->\n<head>\n<title>Direct IP access not allowed | Cloudflare</title>\n<meta charset=\"UTF-8\" />\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\" />\n<meta name=\"robots\" content=\"noindex, nofollow\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n<link rel=\"stylesheet\" id=\"cf_styles-css\" href=\"/cdn-cgi/styles/main.css\" />\n\n\n<script>\n(function(){if(document.addEventListener&&window.XMLHttpRequest&&JSON&&JSON.stringify){var e=function(a){var c=document.getElementById(\"error-feedback-survey\"),d=document.getElementById(\"error-feedback-success\"),b=new XMLHttpRequest;a={event:\"feedback clicked\",properties:{errorCode:1003,helpful:a,version:1}};b.open(\"POST\",\"https://sparrow.cloudflare.com/api/v1/event\");b.setRequestHeader(\"Content-Type\",\"application/json\");b.setRequestHeader(\"Sparrow-Source-Key\",\"c771f0e4b54944bebf4261d44bd79a1e\");\nb.send(JSON.stringify(a));c.classList.add(\"feedback-hidden\");d.classList.remove(\"feedback-hidden\")};document.addEventListener(\"DOMContentLoaded\",function(){var a=document.getElementById(\"error-feedback\"),c=document.getElementById(\"feedback-button-yes\"),d=document.getElementById(\"feedback-button-no\");\"classList\"in a&&(a.classList.remove(\"feedback-hidden\"),c.addEventListener(\"click\",function(){e(!0)}),d.addEventListener(\"click\",function(){e(!1)}))})}})();\n</script>\n\n<script defer src=\"https://performance.radar.cloudflare.com/beacon.js\"></script>\n</head>\n<body>\n  <div id=\"cf-wrapper\">\n    <div class=\"cf-alert cf-alert-error cf-cookie-error hidden\" id=\"cookie-alert\" data-translate=\"enable_cookies\">Please enable cookies.</div>\n    <div id=\"cf-error-details\" class=\"p-0\">\n      <header class=\"mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased\">\n         <h1 class=\"inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight\">\n           <span data-translate=\"error\">Error</span>\n           <span>1003</span>\n         </h1>\n         <span class=\"inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed\">Ray ID: 80060379ef7009ef &bull;</span>\n         <span class=\"inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed\">2023-09-02 13:14:00 UTC</span>\n        <h2 class=\"text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light\">Direct IP access not allowed</h2>\n      </header>\n\n      <section class=\"w-240 lg:w-full mx-auto mb-8 lg:px-8\">\n          <div id=\"what-happened-section\" class=\"w-1/2 md:w-full\">\n            <h2 class=\"text-3xl leading-tight font-normal mb-4 text-black-dark antialiased\" data-translate=\"what_happened\">What happened?</h2>\n            <p>You've requested an IP address that is part of the <a href=\"https://www.cloudflare.com/5xx-error-landing/\" target=\"_blank\">Cloudflare</a> network. A valid Host header must be supplied to reach the desired website.</p>\n            \n          </div>\n\n          \n          <div id=\"resolution-copy-section\" class=\"w-1/2 mt-6 text-15 leading-normal\">\n            <h2 class=\"text-3xl leading-tight font-normal mb-4 text-black-dark antialiased\" data-translate=\"what_can_i_do\">What can I do?</h2>\n            <p>If you are interested in learning more about Cloudflare, please <a href=\"https://www.cloudflare.com/5xx-error-landing/\" target=\"_blank\">visit our website</a>.</p>\n          </div>\n          \n      </section>\n\n      <div class=\"feedback-hidden py-8 text-center\" id=\"error-feedback\">\n    <div id=\"error-feedback-survey\" class=\"footer-line-wrapper\">\n        Was this page helpful?\n        <button class=\"border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded\" id=\"feedback-button-yes\" type=\"button\">Yes</button>\n        <button class=\"border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded\" id=\"feedback-button-no\" type=\"button\">No</button>\n    </div>\n    <div class=\"feedback-success feedback-hidden\" id=\"error-feedback-success\">\n        Thank you for your feedback!\n    </div>\n</div>\n\n\n      <div class=\"cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300\">\n  <p class=\"text-13\">\n    <span class=\"cf-footer-item sm:block sm:mb-1\">Cloudflare Ray ID: <strong class=\"font-semibold\">80060379ef7009ef</strong></span>\n    <span class=\"cf-footer-separator sm:hidden\">&bull;</span>\n    <span id=\"cf-footer-item-ip\" class=\"cf-footer-item hidden sm:block sm:mb-1\">\n      Your IP:\n      <button type=\"button\" id=\"cf-footer-ip-reveal\" class=\"cf-footer-ip-reveal-btn\">Click to reveal</button>\n      <span class=\"hidden\" id=\"cf-footer-ip\">224.151.30.79</span>\n      <span class=\"cf-footer-separator sm:hidden\">&bull;</span>\n    </span>\n    <span class=\"cf-footer-item sm:block sm:mb-1\"><span>Performance &amp; security by</span> <a rel=\"noopener noreferrer\" href=\"https://www.cloudflare.com/5xx-error-landing\" id=\"brand_link\" target=\"_blank\">Cloudflare</a></span>\n    \n  </p>\n  <script>(function(){function d(){var b=a.getElementById(\"cf-footer-item-ip\"),c=a.getElementById(\"cf-footer-ip-reveal\");b&&\"classList\"in b&&(b.classList.remove(\"hidden\"),c.addEventListener(\"click\",function(){c.classList.add(\"hidden\");a.getElementById(\"cf-footer-ip\").classList.remove(\"hidden\")}))}var a=document;document.addEventListener&&a.addEventListener(\"DOMContentLoaded\",d)})();</script>\n</div><!-- /.error-footer -->\n\n\n    </div><!-- /#cf-error-details -->\n  </div><!-- /#cf-wrapper -->\n\n  <script>\n  window._cf_translation = {};\n  \n  \n</script>\n\n</body>\n</html>\n",
                "title": "Direct IP access not allowed | Cloudflare",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": -1841956297,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": 144737606,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {},
              "port": 80,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "5447d0c1-4151-4f22-a542-17adadb88fd5",
                "ptr": true,
                "module": "http",
                "region": "na",
                "crawler": "49217c0cdcbcebaf23c2979ae16d4eba64180b1f",
                "options": {}
              },
              "domains": [],
              "product": "CloudFlare",
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [],
              "timestamp": "2023-09-02T13:14:00.635115",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "ssl": {
                "alpn": [],
                "cert": {
                  "issued": "20230703000000Z",
                  "issuer": {
                    "C": "US",
                    "O": "Cloudflare, Inc.",
                    "CN": "Cloudflare Inc ECC CA-3"
                  },
                  "pubkey": {
                    "bits": 256,
                    "type": "dsa"
                  },
                  "serial": 2.0515453915550058e+37,
                  "expired": false,
                  "expires": "20240702235959Z",
                  "sig_alg": "ecdsa-with-SHA256",
                  "subject": {
                    "C": "US",
                    "L": "San Francisco",
                    "O": "Cloudflare, Inc.",
                    "CN": "sni.cloudflaressl.com",
                    "ST": "California"
                  },
                  "version": 2,
                  "extensions": [
                    {
                      "data": "0\\x16\\x80\\x14\\xa5\\xce7\\xea\\xeb\\xb0u\\x0e\\x94g\\x88\\xb4E\\xfa\\xd9$\\x10\\x87\\x96\\x1f",
                      "name": "authorityKeyIdentifier"
                    },
                    {
                      "data": "\\x04\\x14nS\\x87\\x04\\' \\x03\\x07\\x1d\\tIp\\xf3\\x1f(\\xb0C*\\xc6\\x1d",
                      "name": "subjectKeyIdentifier"
                    },
                    {
                      "data": "0E\\x82\\x16*.cdnjs.cloudflare.com\\x82\\x14cdnjs.cloudflare.com\\x82\\x15sni.cloudflaressl.com",
                      "name": "subjectAltName"
                    },
                    {
                      "data": "\\x03\\x02\\x07\\x80",
                      "name": "keyUsage",
                      "critical": true
                    },
                    {
                      "data": "0\\x14\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x01\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x02",
                      "name": "extendedKeyUsage"
                    },
                    {
                      "data": "0r07\\xa05\\xa03\\x861http://crl3.digicert.com/CloudflareIncECCCA-3.crl07\\xa05\\xa03\\x861http://crl4.digicert.com/CloudflareIncECCCA-3.crl",
                      "name": "crlDistributionPoints"
                    },
                    {
                      "data": "0503\\x06\\x06g\\x81\\x0c\\x01\\x02\\x020)0\\'\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x02\\x01\\x16\\x1bhttp://www.digicert.com/CPS",
                      "name": "certificatePolicies"
                    },
                    {
                      "data": "0h0$\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x01\\x86\\x18http://ocsp.digicert.com0@\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x02\\x864http://cacerts.digicert.com/CloudflareIncECCCA-3.crt",
                      "name": "authorityInfoAccess"
                    },
                    {
                      "data": "0\\x00",
                      "name": "basicConstraints",
                      "critical": true
                    },
                    {
                      "data": "\\x04\\x82\\x01j\\x01h\\x00u\\x00v\\xff\\x88?\\n\\xb6\\xfb\\x95Q\\xc2a\\xcc\\xf5\\x87\\xba4\\xb4\\xa4\\xcd\\xbb)\\xdchB\\n\\x9f\\xe6gLZ:t\\x00\\x00\\x01\\x89\\x19\\x8cog\\x00\\x00\\x04\\x03\\x00F0D\\x02 \\x11\\xd8.\\xb2l\\xc9\\xc4\\xb3A\\xa7\\xbc\\x87!EP\\xe3{\\x01\\x86j\\x0cA\\x82V\\xc2\\x1b\\xa9M$\\x8c\\x84\\x02\\x02 k\\x8f\\xb7\\x10\\xae\\xa0#\\x97\\x8cY\\xb1\\x07k]e.M\\xb7\\xef\\x86L\\x98.\\xc6?\\xd4\\xf5`-TN\\x06\\x00v\\x00\\xda\\xb6\\xbfk?\\xb5\\xb6\"\\x9f\\x9b\\xc2\\xbb\\\\k\\xe8p\\x91ql\\xbbQ\\x84\\x854\\xbd\\xa4=0H\\xd7\\xfb\\xab\\x00\\x00\\x01\\x89\\x19\\x8co\\\\\\x00\\x00\\x04\\x03\\x00G0E\\x02!\\x00\\xf5+\\x0b\\t\\xf7\\xe7\\x88\\x96\\x1c\\x1a\\xe5\\x83\\xb3\\xb6\\xc1z\\\\^\\xa0\\xa4\\xe5Sj\\xd3\\xc6\\xcb\\xe7\\xfbR\\rbY\\x02 \\x13\\xaf\\xac\\x90\\x82\\x85\\x9ex\\xe2r\\x13\\x12o\\xb2\\xb9\\x18\\xf2E/\\x9eA\\xd8C\"\\xfd\\x8b\\xed\\x04c`\\xc4\\xc1\\x00w\\x00;Swu>-\\xb9\\x80N\\x8b0[\\x06\\xfe@;g\\xd8O\\xc3\\xf4\\xc7\\xbd\\x00\\r-ro\\xe1\\xfa\\xd4\\x17\\x00\\x00\\x01\\x89\\x19\\x8co\\x95\\x00\\x00\\x04\\x03\\x00H0F\\x02!\\x00\\x81\\xa0\\xc71ra\\xa8\\xb0\\x82\\xbf/\\x0e\\xaeL\\xfe\\xba\\x9b\\x80\\xea\\xd2S\\x80@;\\xe8\\x858\\x1f\\xed\\xd6\\xaa\\xc2\\x02!\\x00\\xe0\\xca\\x8aT\\x95\\xdf\\xb9\\xdc\\xf1\\nS~^\\xb1\\x02\"\\xc4\\xa5\\x95\\xa2\\x11\\xd4\\xf8J\\x00aAL<?3e",
                      "name": "ct_precert_scts"
                    }
                  ],
                  "fingerprint": {
                    "sha1": "7aeab90971706c87c9d382748a7bb460e5402d8d",
                    "sha256": "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754"
                  }
                },
                "ja3s": "93546012d50bbfdd5a94bc6b31fcafea",
                "jarm": "00000000000000000000000000000000000000000000000000000000000000",
                "ocsp": {},
                "chain": [
                  "-----BEGIN CERTIFICATE-----\nMIIFRjCCBO2gAwIBAgIQD28h+L/cG2Vrzn8gtDPO8zAKBggqhkjOPQQDAjBKMQsw\nCQYDVQQGEwJVUzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEgMB4GA1UEAxMX\nQ2xvdWRmbGFyZSBJbmMgRUNDIENBLTMwHhcNMjMwNzAzMDAwMDAwWhcNMjQwNzAy\nMjM1OTU5WjB1MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG\nA1UEBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEe\nMBwGA1UEAxMVc25pLmNsb3VkZmxhcmVzc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZI\nzj0DAQcDQgAEBdEtMsvu3smlxlhSNOhcWjJZGyJyyiT61Uy0Fs1d46606Hct4fe2\nD7Gb/zG3ToLdOeb50pGKk3cjCO4AjYXRXqOCA4gwggOEMB8GA1UdIwQYMBaAFKXO\nN+rrsHUOlGeItEX62SQQh5YfMB0GA1UdDgQWBBRuU4cEJyADBx0JSXDzHyiwQyrG\nHTBOBgNVHREERzBFghYqLmNkbmpzLmNsb3VkZmxhcmUuY29tghRjZG5qcy5jbG91\nZGZsYXJlLmNvbYIVc25pLmNsb3VkZmxhcmVzc2wuY29tMA4GA1UdDwEB/wQEAwIH\ngDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwewYDVR0fBHQwcjA3oDWg\nM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJbmNFQ0NDQS0z\nLmNybDA3oDWgM4YxaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJ\nbmNFQ0NDQS0zLmNybDA+BgNVHSAENzA1MDMGBmeBDAECAjApMCcGCCsGAQUFBwIB\nFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwdgYIKwYBBQUHAQEEajBoMCQG\nCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG\nNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9DbG91ZGZsYXJlSW5jRUNDQ0Et\nMy5jcnQwDAYDVR0TAQH/BAIwADCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHUA\ndv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGJGYxvZwAABAMARjBE\nAiAR2C6ybMnEs0GnvIchRVDjewGGagxBglbCG6lNJIyEAgIga4+3EK6gI5eMWbEH\na11lLk2374ZMmC7GP9T1YC1UTgYAdgDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9\npD0wSNf7qwAAAYkZjG9cAAAEAwBHMEUCIQD1KwsJ9+eIlhwa5YOztsF6XF6gpOVT\natPGy+f7Ug1iWQIgE6+skIKFnnjichMSb7K5GPJFL55B2EMi/YvtBGNgxMEAdwA7\nU3d1Pi25gE6LMFsG/kA7Z9hPw/THvQANLXJv4frUFwAAAYkZjG+VAAAEAwBIMEYC\nIQCBoMcxcmGosIK/Lw6uTP66m4Dq0lOAQDvohTgf7daqwgIhAODKilSV37nc8QpT\nfl6xAiLEpZWiEdT4SgBhQUw8PzNlMAoGCCqGSM49BAMCA0cAMEQCIE3N2bdqR//Q\nnY3dOoAd/qF27XPVoQTIFCHcoQohx8eYAiACzJD6zev3cygABsNQsyAMiwGsvg4e\nFBEgsK78YyZ8lg==\n-----END CERTIFICATE-----\n",
                  "-----BEGIN CERTIFICATE-----\nMIIDzTCCArWgAwIBAgIQCjeHZF5ftIwiTv0b7RQMPDANBgkqhkiG9w0BAQsFADBa\nMQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\nclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\nMDEyNzEyNDgwOFoXDTI0MTIzMTIzNTk1OVowSjELMAkGA1UEBhMCVVMxGTAXBgNV\nBAoTEENsb3VkZmxhcmUsIEluYy4xIDAeBgNVBAMTF0Nsb3VkZmxhcmUgSW5jIEVD\nQyBDQS0zMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEua1NZpkUC0bsH4HRKlAe\nnQMVLzQSfS2WuIg4m4Vfj7+7Te9hRsTJc9QkT+DuHM5ss1FxL2ruTAUJd9NyYqSb\n16OCAWgwggFkMB0GA1UdDgQWBBSlzjfq67B1DpRniLRF+tkkEIeWHzAfBgNVHSME\nGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYI\nKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j\nb20wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL09t\nbmlyb290MjAyNS5jcmwwbQYDVR0gBGYwZDA3BglghkgBhv1sAQEwKjAoBggrBgEF\nBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw\nCAYGZ4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEB\nAAUkHd0bsCrrmNaF4zlNXmtXnYJX/OvoMaJXkGUFvhZEOFp3ArnPEELG4ZKk40Un\n+ABHLGioVplTVI+tnkDB0A+21w0LOEhsUCxJkAZbZB2LzEgwLt4I4ptJIsCSDBFe\nlpKU1fwg3FZs5ZKTv3ocwDfjhUkV+ivhdDkYD7fa86JXWGBPzI6UAPxGezQxPk1H\ngoE6y/SJXQ7vTQ1unBuCJN0yJV0ReFEQPaA1IwQvZW+cwdFD19Ae8zFnWSfda9J1\nCZMRJCQUzym+5iPDuI9yP+kHyCREU3qzuWFloUwOxkgAyXVjBYdwRVKD05WdRerw\n6DEdfgkfCv4+3ao8XnTSrLE=\n-----END CERTIFICATE-----\n"
                ],
                "trust": {
                  "browser": null,
                  "revoked": false
                },
                "cipher": {
                  "bits": 256,
                  "name": "TLS_AES_256_GCM_SHA384",
                  "version": "TLSv1.3"
                },
                "tlsext": [],
                "dhparams": null,
                "versions": [
                  "-TLSv1",
                  "-SSLv2",
                  "-SSLv3",
                  "-TLSv1.1",
                  "-TLSv1.2",
                  "-TLSv1.3"
                ],
                "chain_sha256": [
                  "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754",
                  "3abbe63daf756c5016b6b85f52015fd8e8acbe277c5087b127a60563a841ed8a"
                ],
                "acceptable_cas": [],
                "handshake_states": [
                  "before SSL initialization",
                  "SSLv3/TLS write client hello",
                  "SSLv3/TLS read server hello",
                  "TLSv1.3 read encrypted extensions",
                  "SSLv3/TLS read server certificate",
                  "TLSv1.3 read server certificate verify",
                  "SSLv3/TLS read finished",
                  "SSLv3/TLS write change cipher spec",
                  "SSLv3/TLS write finished",
                  "SSL negotiation finished successfully"
                ]
              },
              "data": "HTTP/1.1 403 Forbidden\r\nServer: cloudflare\r\nDate: Sat, 26 Aug 2023 19:21:35 GMT\r\nContent-Type: text/html\r\nContent-Length: 553\r\nConnection: keep-alive\r\nCF-RAY: 7fce704e3ffbb95a-AMS\r\n\r\n",
              "hash": -729257584,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
                "title": "403 Forbidden",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": 1471629837,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": -2088197660,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {
                "vulns": [],
                "heartbleed": "2023/08/26 19:21:54 188.114.96.9:443 - SAFE\n"
              },
              "port": 443,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "69515b9b-4cbc-46a3-9d87-5b8f667a7c3a",
                "ptr": true,
                "module": "https",
                "region": "eu",
                "crawler": "f84746de6c89bcf60f34a5f0aee149448facfc91",
                "options": {}
              },
              "domains": [
                "cloudflare.com",
                "cloudflaressl.com"
              ],
              "product": "CloudFlare",
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [
                "cdnjs.cloudflare.com",
                "sni.cloudflaressl.com"
              ],
              "timestamp": "2023-08-26T19:21:35.776635",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "data": "HTTP/1.1 400 Bad Request\r\nServer: cloudflare\r\nDate: Thu, 17 Aug 2023 17:36:50 GMT\r\nContent-Type: text/html\r\nContent-Length: 655\r\nConnection: close\r\nCF-RAY: -\r\n\r\n",
              "hash": 1752897737,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<html>\r\n<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n<center>The plain HTTP request was sent to HTTPS port</center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
                "title": "400 The plain HTTP request was sent to HTTPS port",
                "robots": null,
                "server": "cloudflare",
                "status": 400,
                "sitemap": null,
                "location": "/",
                "html_hash": 141477257,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": 96733798,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {},
              "port": 2053,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "996f5c99-c660-4619-9c1d-7b6f26fc96f3",
                "module": "auto",
                "region": "na",
                "crawler": "8f9776facb65747441d1d26b112981f75def6d58",
                "options": {}
              },
              "domains": [],
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [],
              "timestamp": "2023-08-17T17:36:50.070056",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "data": "HTTP/1.1 403 Forbidden\r\nDate: Sat, 02 Sep 2023 17:29:11 GMT\r\nContent-Type: text/html; charset=UTF-8\r\nContent-Length: 5893\r\nConnection: close\r\nX-Frame-Options: SAMEORIGIN\r\nReferrer-Policy: same-origin\r\nCache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\nExpires: Thu, 01 Jan 1970 00:00:01 GMT\r\nVary: Accept-Encoding\r\nServer: cloudflare\r\nCF-RAY: 800779496dff4636-DFW\r\n\r\n",
              "hash": 756359919,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<!DOCTYPE html>\n<!--[if lt IE 7]> <html class=\"no-js ie6 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if IE 7]>    <html class=\"no-js ie7 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if IE 8]>    <html class=\"no-js ie8 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if gt IE 8]><!--> <html class=\"no-js\" lang=\"en-US\"> <!--<![endif]-->\n<head>\n<title>Direct IP access not allowed | Cloudflare</title>\n<meta charset=\"UTF-8\" />\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\" />\n<meta name=\"robots\" content=\"noindex, nofollow\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n<link rel=\"stylesheet\" id=\"cf_styles-css\" href=\"/cdn-cgi/styles/main.css\" />\n\n\n<script>\n(function(){if(document.addEventListener&&window.XMLHttpRequest&&JSON&&JSON.stringify){var e=function(a){var c=document.getElementById(\"error-feedback-survey\"),d=document.getElementById(\"error-feedback-success\"),b=new XMLHttpRequest;a={event:\"feedback clicked\",properties:{errorCode:1003,helpful:a,version:1}};b.open(\"POST\",\"https://sparrow.cloudflare.com/api/v1/event\");b.setRequestHeader(\"Content-Type\",\"application/json\");b.setRequestHeader(\"Sparrow-Source-Key\",\"c771f0e4b54944bebf4261d44bd79a1e\");\nb.send(JSON.stringify(a));c.classList.add(\"feedback-hidden\");d.classList.remove(\"feedback-hidden\")};document.addEventListener(\"DOMContentLoaded\",function(){var a=document.getElementById(\"error-feedback\"),c=document.getElementById(\"feedback-button-yes\"),d=document.getElementById(\"feedback-button-no\");\"classList\"in a&&(a.classList.remove(\"feedback-hidden\"),c.addEventListener(\"click\",function(){e(!0)}),d.addEventListener(\"click\",function(){e(!1)}))})}})();\n</script>\n\n<script defer src=\"https://performance.radar.cloudflare.com/beacon.js\"></script>\n</head>\n<body>\n  <div id=\"cf-wrapper\">\n    <div class=\"cf-alert cf-alert-error cf-cookie-error hidden\" id=\"cookie-alert\" data-translate=\"enable_cookies\">Please enable cookies.</div>\n    <div id=\"cf-error-details\" class=\"p-0\">\n      <header class=\"mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased\">\n         <h1 class=\"inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight\">\n           <span data-translate=\"error\">Error</span>\n           <span>1003</span>\n         </h1>\n         <span class=\"inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed\">Ray ID: 800779496dff4636 &bull;</span>\n         <span class=\"inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed\">2023-09-02 17:29:11 UTC</span>\n        <h2 class=\"text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light\">Direct IP access not allowed</h2>\n      </header>\n\n      <section class=\"w-240 lg:w-full mx-auto mb-8 lg:px-8\">\n          <div id=\"what-happened-section\" class=\"w-1/2 md:w-full\">\n            <h2 class=\"text-3xl leading-tight font-normal mb-4 text-black-dark antialiased\" data-translate=\"what_happened\">What happened?</h2>\n            <p>You've requested an IP address that is part of the <a href=\"https://www.cloudflare.com/5xx-error-landing/\" target=\"_blank\">Cloudflare</a> network. A valid Host header must be supplied to reach the desired website.</p>\n            \n          </div>\n\n          \n          <div id=\"resolution-copy-section\" class=\"w-1/2 mt-6 text-15 leading-normal\">\n            <h2 class=\"text-3xl leading-tight font-normal mb-4 text-black-dark antialiased\" data-translate=\"what_can_i_do\">What can I do?</h2>\n            <p>If you are interested in learning more about Cloudflare, please <a href=\"https://www.cloudflare.com/5xx-error-landing/\" target=\"_blank\">visit our website</a>.</p>\n          </div>\n          \n      </section>\n\n      <div class=\"feedback-hidden py-8 text-center\" id=\"error-feedback\">\n    <div id=\"error-feedback-survey\" class=\"footer-line-wrapper\">\n        Was this page helpful?\n        <button class=\"border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded\" id=\"feedback-button-yes\" type=\"button\">Yes</button>\n        <button class=\"border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded\" id=\"feedback-button-no\" type=\"button\">No</button>\n    </div>\n    <div class=\"feedback-success feedback-hidden\" id=\"error-feedback-success\">\n        Thank you for your feedback!\n    </div>\n</div>\n\n\n      <div class=\"cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300\">\n  <p class=\"text-13\">\n    <span class=\"cf-footer-item sm:block sm:mb-1\">Cloudflare Ray ID: <strong class=\"font-semibold\">800779496dff4636</strong></span>\n    <span class=\"cf-footer-separator sm:hidden\">&bull;</span>\n    <span id=\"cf-footer-item-ip\" class=\"cf-footer-item hidden sm:block sm:mb-1\">\n      Your IP:\n      <button type=\"button\" id=\"cf-footer-ip-reveal\" class=\"cf-footer-ip-reveal-btn\">Click to reveal</button>\n      <span class=\"hidden\" id=\"cf-footer-ip\">224.186.114.57</span>\n      <span class=\"cf-footer-separator sm:hidden\">&bull;</span>\n    </span>\n    <span class=\"cf-footer-item sm:block sm:mb-1\"><span>Performance &amp; security by</span> <a rel=\"noopener noreferrer\" href=\"https://www.cloudflare.com/5xx-error-landing\" id=\"brand_link\" target=\"_blank\">Cloudflare</a></span>\n    \n  </p>\n  <script>(function(){function d(){var b=a.getElementById(\"cf-footer-item-ip\"),c=a.getElementById(\"cf-footer-ip-reveal\");b&&\"classList\"in b&&(b.classList.remove(\"hidden\"),c.addEventListener(\"click\",function(){c.classList.add(\"hidden\");a.getElementById(\"cf-footer-ip\").classList.remove(\"hidden\")}))}var a=document;document.addEventListener&&a.addEventListener(\"DOMContentLoaded\",d)})();</script>\n</div><!-- /.error-footer -->\n\n\n    </div><!-- /#cf-error-details -->\n  </div><!-- /#cf-wrapper -->\n\n  <script>\n  window._cf_translation = {};\n  \n  \n</script>\n\n</body>\n</html>\n",
                "title": "Direct IP access not allowed | Cloudflare",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": 1101197795,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": 144737606,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {},
              "port": 2082,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "34ae2e64-e3fd-4f17-9f24-6b74bdd63c2e",
                "module": "http-simple-new",
                "region": "na",
                "crawler": "85a2598833c03b2cff4b6d747001845f87a89147",
                "options": {}
              },
              "domains": [],
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [],
              "timestamp": "2023-09-02T17:29:11.928111",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "ssl": {
                "alpn": [],
                "cert": {
                  "issued": "20230703000000Z",
                  "issuer": {
                    "C": "US",
                    "O": "Cloudflare, Inc.",
                    "CN": "Cloudflare Inc ECC CA-3"
                  },
                  "pubkey": {
                    "bits": 256,
                    "type": "dsa"
                  },
                  "serial": 2.0515453915550058e+37,
                  "expired": false,
                  "expires": "20240702235959Z",
                  "sig_alg": "ecdsa-with-SHA256",
                  "subject": {
                    "C": "US",
                    "L": "San Francisco",
                    "O": "Cloudflare, Inc.",
                    "CN": "sni.cloudflaressl.com",
                    "ST": "California"
                  },
                  "version": 2,
                  "extensions": [
                    {
                      "data": "0\\x16\\x80\\x14\\xa5\\xce7\\xea\\xeb\\xb0u\\x0e\\x94g\\x88\\xb4E\\xfa\\xd9$\\x10\\x87\\x96\\x1f",
                      "name": "authorityKeyIdentifier"
                    },
                    {
                      "data": "\\x04\\x14nS\\x87\\x04\\' \\x03\\x07\\x1d\\tIp\\xf3\\x1f(\\xb0C*\\xc6\\x1d",
                      "name": "subjectKeyIdentifier"
                    },
                    {
                      "data": "0E\\x82\\x16*.cdnjs.cloudflare.com\\x82\\x14cdnjs.cloudflare.com\\x82\\x15sni.cloudflaressl.com",
                      "name": "subjectAltName"
                    },
                    {
                      "data": "\\x03\\x02\\x07\\x80",
                      "name": "keyUsage",
                      "critical": true
                    },
                    {
                      "data": "0\\x14\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x01\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x02",
                      "name": "extendedKeyUsage"
                    },
                    {
                      "data": "0r07\\xa05\\xa03\\x861http://crl3.digicert.com/CloudflareIncECCCA-3.crl07\\xa05\\xa03\\x861http://crl4.digicert.com/CloudflareIncECCCA-3.crl",
                      "name": "crlDistributionPoints"
                    },
                    {
                      "data": "0503\\x06\\x06g\\x81\\x0c\\x01\\x02\\x020)0\\'\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x02\\x01\\x16\\x1bhttp://www.digicert.com/CPS",
                      "name": "certificatePolicies"
                    },
                    {
                      "data": "0h0$\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x01\\x86\\x18http://ocsp.digicert.com0@\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x02\\x864http://cacerts.digicert.com/CloudflareIncECCCA-3.crt",
                      "name": "authorityInfoAccess"
                    },
                    {
                      "data": "0\\x00",
                      "name": "basicConstraints",
                      "critical": true
                    },
                    {
                      "data": "\\x04\\x82\\x01j\\x01h\\x00u\\x00v\\xff\\x88?\\n\\xb6\\xfb\\x95Q\\xc2a\\xcc\\xf5\\x87\\xba4\\xb4\\xa4\\xcd\\xbb)\\xdchB\\n\\x9f\\xe6gLZ:t\\x00\\x00\\x01\\x89\\x19\\x8cog\\x00\\x00\\x04\\x03\\x00F0D\\x02 \\x11\\xd8.\\xb2l\\xc9\\xc4\\xb3A\\xa7\\xbc\\x87!EP\\xe3{\\x01\\x86j\\x0cA\\x82V\\xc2\\x1b\\xa9M$\\x8c\\x84\\x02\\x02 k\\x8f\\xb7\\x10\\xae\\xa0#\\x97\\x8cY\\xb1\\x07k]e.M\\xb7\\xef\\x86L\\x98.\\xc6?\\xd4\\xf5`-TN\\x06\\x00v\\x00\\xda\\xb6\\xbfk?\\xb5\\xb6\"\\x9f\\x9b\\xc2\\xbb\\\\k\\xe8p\\x91ql\\xbbQ\\x84\\x854\\xbd\\xa4=0H\\xd7\\xfb\\xab\\x00\\x00\\x01\\x89\\x19\\x8co\\\\\\x00\\x00\\x04\\x03\\x00G0E\\x02!\\x00\\xf5+\\x0b\\t\\xf7\\xe7\\x88\\x96\\x1c\\x1a\\xe5\\x83\\xb3\\xb6\\xc1z\\\\^\\xa0\\xa4\\xe5Sj\\xd3\\xc6\\xcb\\xe7\\xfbR\\rbY\\x02 \\x13\\xaf\\xac\\x90\\x82\\x85\\x9ex\\xe2r\\x13\\x12o\\xb2\\xb9\\x18\\xf2E/\\x9eA\\xd8C\"\\xfd\\x8b\\xed\\x04c`\\xc4\\xc1\\x00w\\x00;Swu>-\\xb9\\x80N\\x8b0[\\x06\\xfe@;g\\xd8O\\xc3\\xf4\\xc7\\xbd\\x00\\r-ro\\xe1\\xfa\\xd4\\x17\\x00\\x00\\x01\\x89\\x19\\x8co\\x95\\x00\\x00\\x04\\x03\\x00H0F\\x02!\\x00\\x81\\xa0\\xc71ra\\xa8\\xb0\\x82\\xbf/\\x0e\\xaeL\\xfe\\xba\\x9b\\x80\\xea\\xd2S\\x80@;\\xe8\\x858\\x1f\\xed\\xd6\\xaa\\xc2\\x02!\\x00\\xe0\\xca\\x8aT\\x95\\xdf\\xb9\\xdc\\xf1\\nS~^\\xb1\\x02\"\\xc4\\xa5\\x95\\xa2\\x11\\xd4\\xf8J\\x00aAL<?3e",
                      "name": "ct_precert_scts"
                    }
                  ],
                  "fingerprint": {
                    "sha1": "7aeab90971706c87c9d382748a7bb460e5402d8d",
                    "sha256": "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754"
                  }
                },
                "ja3s": "93546012d50bbfdd5a94bc6b31fcafea",
                "jarm": "00000000000000000000000000000000000000000000000000000000000000",
                "ocsp": {},
                "chain": [
                  "-----BEGIN CERTIFICATE-----\nMIIFRjCCBO2gAwIBAgIQD28h+L/cG2Vrzn8gtDPO8zAKBggqhkjOPQQDAjBKMQsw\nCQYDVQQGEwJVUzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEgMB4GA1UEAxMX\nQ2xvdWRmbGFyZSBJbmMgRUNDIENBLTMwHhcNMjMwNzAzMDAwMDAwWhcNMjQwNzAy\nMjM1OTU5WjB1MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG\nA1UEBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEe\nMBwGA1UEAxMVc25pLmNsb3VkZmxhcmVzc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZI\nzj0DAQcDQgAEBdEtMsvu3smlxlhSNOhcWjJZGyJyyiT61Uy0Fs1d46606Hct4fe2\nD7Gb/zG3ToLdOeb50pGKk3cjCO4AjYXRXqOCA4gwggOEMB8GA1UdIwQYMBaAFKXO\nN+rrsHUOlGeItEX62SQQh5YfMB0GA1UdDgQWBBRuU4cEJyADBx0JSXDzHyiwQyrG\nHTBOBgNVHREERzBFghYqLmNkbmpzLmNsb3VkZmxhcmUuY29tghRjZG5qcy5jbG91\nZGZsYXJlLmNvbYIVc25pLmNsb3VkZmxhcmVzc2wuY29tMA4GA1UdDwEB/wQEAwIH\ngDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwewYDVR0fBHQwcjA3oDWg\nM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJbmNFQ0NDQS0z\nLmNybDA3oDWgM4YxaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJ\nbmNFQ0NDQS0zLmNybDA+BgNVHSAENzA1MDMGBmeBDAECAjApMCcGCCsGAQUFBwIB\nFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwdgYIKwYBBQUHAQEEajBoMCQG\nCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG\nNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9DbG91ZGZsYXJlSW5jRUNDQ0Et\nMy5jcnQwDAYDVR0TAQH/BAIwADCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHUA\ndv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGJGYxvZwAABAMARjBE\nAiAR2C6ybMnEs0GnvIchRVDjewGGagxBglbCG6lNJIyEAgIga4+3EK6gI5eMWbEH\na11lLk2374ZMmC7GP9T1YC1UTgYAdgDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9\npD0wSNf7qwAAAYkZjG9cAAAEAwBHMEUCIQD1KwsJ9+eIlhwa5YOztsF6XF6gpOVT\natPGy+f7Ug1iWQIgE6+skIKFnnjichMSb7K5GPJFL55B2EMi/YvtBGNgxMEAdwA7\nU3d1Pi25gE6LMFsG/kA7Z9hPw/THvQANLXJv4frUFwAAAYkZjG+VAAAEAwBIMEYC\nIQCBoMcxcmGosIK/Lw6uTP66m4Dq0lOAQDvohTgf7daqwgIhAODKilSV37nc8QpT\nfl6xAiLEpZWiEdT4SgBhQUw8PzNlMAoGCCqGSM49BAMCA0cAMEQCIE3N2bdqR//Q\nnY3dOoAd/qF27XPVoQTIFCHcoQohx8eYAiACzJD6zev3cygABsNQsyAMiwGsvg4e\nFBEgsK78YyZ8lg==\n-----END CERTIFICATE-----\n",
                  "-----BEGIN CERTIFICATE-----\nMIIDzTCCArWgAwIBAgIQCjeHZF5ftIwiTv0b7RQMPDANBgkqhkiG9w0BAQsFADBa\nMQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\nclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\nMDEyNzEyNDgwOFoXDTI0MTIzMTIzNTk1OVowSjELMAkGA1UEBhMCVVMxGTAXBgNV\nBAoTEENsb3VkZmxhcmUsIEluYy4xIDAeBgNVBAMTF0Nsb3VkZmxhcmUgSW5jIEVD\nQyBDQS0zMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEua1NZpkUC0bsH4HRKlAe\nnQMVLzQSfS2WuIg4m4Vfj7+7Te9hRsTJc9QkT+DuHM5ss1FxL2ruTAUJd9NyYqSb\n16OCAWgwggFkMB0GA1UdDgQWBBSlzjfq67B1DpRniLRF+tkkEIeWHzAfBgNVHSME\nGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYI\nKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j\nb20wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL09t\nbmlyb290MjAyNS5jcmwwbQYDVR0gBGYwZDA3BglghkgBhv1sAQEwKjAoBggrBgEF\nBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw\nCAYGZ4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEB\nAAUkHd0bsCrrmNaF4zlNXmtXnYJX/OvoMaJXkGUFvhZEOFp3ArnPEELG4ZKk40Un\n+ABHLGioVplTVI+tnkDB0A+21w0LOEhsUCxJkAZbZB2LzEgwLt4I4ptJIsCSDBFe\nlpKU1fwg3FZs5ZKTv3ocwDfjhUkV+ivhdDkYD7fa86JXWGBPzI6UAPxGezQxPk1H\ngoE6y/SJXQ7vTQ1unBuCJN0yJV0ReFEQPaA1IwQvZW+cwdFD19Ae8zFnWSfda9J1\nCZMRJCQUzym+5iPDuI9yP+kHyCREU3qzuWFloUwOxkgAyXVjBYdwRVKD05WdRerw\n6DEdfgkfCv4+3ao8XnTSrLE=\n-----END CERTIFICATE-----\n"
                ],
                "trust": {
                  "browser": null,
                  "revoked": false
                },
                "cipher": {
                  "bits": 256,
                  "name": "TLS_AES_256_GCM_SHA384",
                  "version": "TLSv1.3"
                },
                "tlsext": [],
                "dhparams": null,
                "versions": [
                  "-TLSv1",
                  "-SSLv2",
                  "-SSLv3",
                  "-TLSv1.1",
                  "-TLSv1.2"
                ],
                "chain_sha256": [
                  "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754",
                  "3abbe63daf756c5016b6b85f52015fd8e8acbe277c5087b127a60563a841ed8a"
                ],
                "acceptable_cas": [],
                "handshake_states": [
                  "before SSL initialization",
                  "SSLv3/TLS write client hello",
                  "SSLv3/TLS read server hello",
                  "TLSv1.3 read encrypted extensions",
                  "SSLv3/TLS read server certificate",
                  "TLSv1.3 read server certificate verify",
                  "SSLv3/TLS read finished",
                  "SSLv3/TLS write change cipher spec",
                  "SSLv3/TLS write finished",
                  "SSL negotiation finished successfully"
                ]
              },
              "data": "HTTP/1.1 403 Forbidden\r\nServer: cloudflare\r\nDate: Sun, 03 Sep 2023 13:42:38 GMT\r\nContent-Type: text/html\r\nContent-Length: 553\r\nConnection: keep-alive\r\nCF-RAY: 800e6ac8aaa40ad1-LAS\r\n\r\n",
              "hash": -1590544613,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
                "title": "403 Forbidden",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": 1471629837,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": -2088197660,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {
                "vulns": [],
                "heartbleed": "2023/09/03 13:42:45 188.114.96.9:2083 - SAFE\n"
              },
              "port": 2083,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "a1305870-6744-4676-b869-2fc85a928da7",
                "ptr": true,
                "module": "https-simple-new",
                "region": "",
                "crawler": "91597136eb9b132d7cc954511e0d9cbe7ce2e377",
                "options": {}
              },
              "domains": [
                "cloudflare.com",
                "cloudflaressl.com"
              ],
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [
                "cdnjs.cloudflare.com",
                "sni.cloudflaressl.com"
              ],
              "timestamp": "2023-09-03T13:42:38.190340",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "data": "HTTP/1.1 403 Forbidden\r\nDate: Tue, 05 Sep 2023 23:03:21 GMT\r\nContent-Type: text/html; charset=UTF-8\r\nContent-Length: 5892\r\nConnection: close\r\nX-Frame-Options: SAMEORIGIN\r\nReferrer-Policy: same-origin\r\nCache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\nExpires: Thu, 01 Jan 1970 00:00:01 GMT\r\nVary: Accept-Encoding\r\nServer: cloudflare\r\nCF-RAY: 80221ae499c509ed-LAS\r\n\r\n",
              "hash": -1311473370,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<!DOCTYPE html>\n<!--[if lt IE 7]> <html class=\"no-js ie6 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if IE 7]>    <html class=\"no-js ie7 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if IE 8]>    <html class=\"no-js ie8 oldie\" lang=\"en-US\"> <![endif]-->\n<!--[if gt IE 8]><!--> <html class=\"no-js\" lang=\"en-US\"> <!--<![endif]-->\n<head>\n<title>Direct IP access not allowed | Cloudflare</title>\n<meta charset=\"UTF-8\" />\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\" />\n<meta name=\"robots\" content=\"noindex, nofollow\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n<link rel=\"stylesheet\" id=\"cf_styles-css\" href=\"/cdn-cgi/styles/main.css\" />\n\n\n<script>\n(function(){if(document.addEventListener&&window.XMLHttpRequest&&JSON&&JSON.stringify){var e=function(a){var c=document.getElementById(\"error-feedback-survey\"),d=document.getElementById(\"error-feedback-success\"),b=new XMLHttpRequest;a={event:\"feedback clicked\",properties:{errorCode:1003,helpful:a,version:1}};b.open(\"POST\",\"https://sparrow.cloudflare.com/api/v1/event\");b.setRequestHeader(\"Content-Type\",\"application/json\");b.setRequestHeader(\"Sparrow-Source-Key\",\"c771f0e4b54944bebf4261d44bd79a1e\");\nb.send(JSON.stringify(a));c.classList.add(\"feedback-hidden\");d.classList.remove(\"feedback-hidden\")};document.addEventListener(\"DOMContentLoaded\",function(){var a=document.getElementById(\"error-feedback\"),c=document.getElementById(\"feedback-button-yes\"),d=document.getElementById(\"feedback-button-no\");\"classList\"in a&&(a.classList.remove(\"feedback-hidden\"),c.addEventListener(\"click\",function(){e(!0)}),d.addEventListener(\"click\",function(){e(!1)}))})}})();\n</script>\n\n<script defer src=\"https://performance.radar.cloudflare.com/beacon.js\"></script>\n</head>\n<body>\n  <div id=\"cf-wrapper\">\n    <div class=\"cf-alert cf-alert-error cf-cookie-error hidden\" id=\"cookie-alert\" data-translate=\"enable_cookies\">Please enable cookies.</div>\n    <div id=\"cf-error-details\" class=\"p-0\">\n      <header class=\"mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-15 antialiased\">\n         <h1 class=\"inline-block md:block mr-2 md:mb-2 font-light text-60 md:text-3xl text-black-dark leading-tight\">\n           <span data-translate=\"error\">Error</span>\n           <span>1003</span>\n         </h1>\n         <span class=\"inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed\">Ray ID: 80221ae499c509ed &bull;</span>\n         <span class=\"inline-block md:block heading-ray-id font-mono text-15 lg:text-sm lg:leading-relaxed\">2023-09-05 23:03:21 UTC</span>\n        <h2 class=\"text-gray-600 leading-1.3 text-3xl lg:text-2xl font-light\">Direct IP access not allowed</h2>\n      </header>\n\n      <section class=\"w-240 lg:w-full mx-auto mb-8 lg:px-8\">\n          <div id=\"what-happened-section\" class=\"w-1/2 md:w-full\">\n            <h2 class=\"text-3xl leading-tight font-normal mb-4 text-black-dark antialiased\" data-translate=\"what_happened\">What happened?</h2>\n            <p>You've requested an IP address that is part of the <a href=\"https://www.cloudflare.com/5xx-error-landing/\" target=\"_blank\">Cloudflare</a> network. A valid Host header must be supplied to reach the desired website.</p>\n            \n          </div>\n\n          \n          <div id=\"resolution-copy-section\" class=\"w-1/2 mt-6 text-15 leading-normal\">\n            <h2 class=\"text-3xl leading-tight font-normal mb-4 text-black-dark antialiased\" data-translate=\"what_can_i_do\">What can I do?</h2>\n            <p>If you are interested in learning more about Cloudflare, please <a href=\"https://www.cloudflare.com/5xx-error-landing/\" target=\"_blank\">visit our website</a>.</p>\n          </div>\n          \n      </section>\n\n      <div class=\"feedback-hidden py-8 text-center\" id=\"error-feedback\">\n    <div id=\"error-feedback-survey\" class=\"footer-line-wrapper\">\n        Was this page helpful?\n        <button class=\"border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded\" id=\"feedback-button-yes\" type=\"button\">Yes</button>\n        <button class=\"border border-solid bg-white cf-button cursor-pointer ml-4 px-4 py-2 rounded\" id=\"feedback-button-no\" type=\"button\">No</button>\n    </div>\n    <div class=\"feedback-success feedback-hidden\" id=\"error-feedback-success\">\n        Thank you for your feedback!\n    </div>\n</div>\n\n\n      <div class=\"cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300\">\n  <p class=\"text-13\">\n    <span class=\"cf-footer-item sm:block sm:mb-1\">Cloudflare Ray ID: <strong class=\"font-semibold\">80221ae499c509ed</strong></span>\n    <span class=\"cf-footer-separator sm:hidden\">&bull;</span>\n    <span id=\"cf-footer-item-ip\" class=\"cf-footer-item hidden sm:block sm:mb-1\">\n      Your IP:\n      <button type=\"button\" id=\"cf-footer-ip-reveal\" class=\"cf-footer-ip-reveal-btn\">Click to reveal</button>\n      <span class=\"hidden\" id=\"cf-footer-ip\">224.151.30.79</span>\n      <span class=\"cf-footer-separator sm:hidden\">&bull;</span>\n    </span>\n    <span class=\"cf-footer-item sm:block sm:mb-1\"><span>Performance &amp; security by</span> <a rel=\"noopener noreferrer\" href=\"https://www.cloudflare.com/5xx-error-landing\" id=\"brand_link\" target=\"_blank\">Cloudflare</a></span>\n    \n  </p>\n  <script>(function(){function d(){var b=a.getElementById(\"cf-footer-item-ip\"),c=a.getElementById(\"cf-footer-ip-reveal\");b&&\"classList\"in b&&(b.classList.remove(\"hidden\"),c.addEventListener(\"click\",function(){c.classList.add(\"hidden\");a.getElementById(\"cf-footer-ip\").classList.remove(\"hidden\")}))}var a=document;document.addEventListener&&a.addEventListener(\"DOMContentLoaded\",d)})();</script>\n</div><!-- /.error-footer -->\n\n\n    </div><!-- /#cf-error-details -->\n  </div><!-- /#cf-wrapper -->\n\n  <script>\n  window._cf_translation = {};\n  \n  \n</script>\n\n</body>\n</html>\n",
                "title": "Direct IP access not allowed | Cloudflare",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": 296273452,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": 144737606,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {},
              "port": 2086,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "a82291f6-c50e-4486-847d-f8be8391c465",
                "ptr": true,
                "module": "http-simple-new",
                "region": "na",
                "crawler": "49217c0cdcbcebaf23c2979ae16d4eba64180b1f",
                "options": {}
              },
              "domains": [],
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [],
              "timestamp": "2023-09-05T23:03:21.067084",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "ssl": {
                "alpn": [],
                "cert": {
                  "issued": "20230703000000Z",
                  "issuer": {
                    "C": "US",
                    "O": "Cloudflare, Inc.",
                    "CN": "Cloudflare Inc ECC CA-3"
                  },
                  "pubkey": {
                    "bits": 256,
                    "type": "dsa"
                  },
                  "serial": 2.0515453915550058e+37,
                  "expired": false,
                  "expires": "20240702235959Z",
                  "sig_alg": "ecdsa-with-SHA256",
                  "subject": {
                    "C": "US",
                    "L": "San Francisco",
                    "O": "Cloudflare, Inc.",
                    "CN": "sni.cloudflaressl.com",
                    "ST": "California"
                  },
                  "version": 2,
                  "extensions": [
                    {
                      "data": "0\\x16\\x80\\x14\\xa5\\xce7\\xea\\xeb\\xb0u\\x0e\\x94g\\x88\\xb4E\\xfa\\xd9$\\x10\\x87\\x96\\x1f",
                      "name": "authorityKeyIdentifier"
                    },
                    {
                      "data": "\\x04\\x14nS\\x87\\x04\\' \\x03\\x07\\x1d\\tIp\\xf3\\x1f(\\xb0C*\\xc6\\x1d",
                      "name": "subjectKeyIdentifier"
                    },
                    {
                      "data": "0E\\x82\\x16*.cdnjs.cloudflare.com\\x82\\x14cdnjs.cloudflare.com\\x82\\x15sni.cloudflaressl.com",
                      "name": "subjectAltName"
                    },
                    {
                      "data": "\\x03\\x02\\x07\\x80",
                      "name": "keyUsage",
                      "critical": true
                    },
                    {
                      "data": "0\\x14\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x01\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x02",
                      "name": "extendedKeyUsage"
                    },
                    {
                      "data": "0r07\\xa05\\xa03\\x861http://crl3.digicert.com/CloudflareIncECCCA-3.crl07\\xa05\\xa03\\x861http://crl4.digicert.com/CloudflareIncECCCA-3.crl",
                      "name": "crlDistributionPoints"
                    },
                    {
                      "data": "0503\\x06\\x06g\\x81\\x0c\\x01\\x02\\x020)0\\'\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x02\\x01\\x16\\x1bhttp://www.digicert.com/CPS",
                      "name": "certificatePolicies"
                    },
                    {
                      "data": "0h0$\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x01\\x86\\x18http://ocsp.digicert.com0@\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x02\\x864http://cacerts.digicert.com/CloudflareIncECCCA-3.crt",
                      "name": "authorityInfoAccess"
                    },
                    {
                      "data": "0\\x00",
                      "name": "basicConstraints",
                      "critical": true
                    },
                    {
                      "data": "\\x04\\x82\\x01j\\x01h\\x00u\\x00v\\xff\\x88?\\n\\xb6\\xfb\\x95Q\\xc2a\\xcc\\xf5\\x87\\xba4\\xb4\\xa4\\xcd\\xbb)\\xdchB\\n\\x9f\\xe6gLZ:t\\x00\\x00\\x01\\x89\\x19\\x8cog\\x00\\x00\\x04\\x03\\x00F0D\\x02 \\x11\\xd8.\\xb2l\\xc9\\xc4\\xb3A\\xa7\\xbc\\x87!EP\\xe3{\\x01\\x86j\\x0cA\\x82V\\xc2\\x1b\\xa9M$\\x8c\\x84\\x02\\x02 k\\x8f\\xb7\\x10\\xae\\xa0#\\x97\\x8cY\\xb1\\x07k]e.M\\xb7\\xef\\x86L\\x98.\\xc6?\\xd4\\xf5`-TN\\x06\\x00v\\x00\\xda\\xb6\\xbfk?\\xb5\\xb6\"\\x9f\\x9b\\xc2\\xbb\\\\k\\xe8p\\x91ql\\xbbQ\\x84\\x854\\xbd\\xa4=0H\\xd7\\xfb\\xab\\x00\\x00\\x01\\x89\\x19\\x8co\\\\\\x00\\x00\\x04\\x03\\x00G0E\\x02!\\x00\\xf5+\\x0b\\t\\xf7\\xe7\\x88\\x96\\x1c\\x1a\\xe5\\x83\\xb3\\xb6\\xc1z\\\\^\\xa0\\xa4\\xe5Sj\\xd3\\xc6\\xcb\\xe7\\xfbR\\rbY\\x02 \\x13\\xaf\\xac\\x90\\x82\\x85\\x9ex\\xe2r\\x13\\x12o\\xb2\\xb9\\x18\\xf2E/\\x9eA\\xd8C\"\\xfd\\x8b\\xed\\x04c`\\xc4\\xc1\\x00w\\x00;Swu>-\\xb9\\x80N\\x8b0[\\x06\\xfe@;g\\xd8O\\xc3\\xf4\\xc7\\xbd\\x00\\r-ro\\xe1\\xfa\\xd4\\x17\\x00\\x00\\x01\\x89\\x19\\x8co\\x95\\x00\\x00\\x04\\x03\\x00H0F\\x02!\\x00\\x81\\xa0\\xc71ra\\xa8\\xb0\\x82\\xbf/\\x0e\\xaeL\\xfe\\xba\\x9b\\x80\\xea\\xd2S\\x80@;\\xe8\\x858\\x1f\\xed\\xd6\\xaa\\xc2\\x02!\\x00\\xe0\\xca\\x8aT\\x95\\xdf\\xb9\\xdc\\xf1\\nS~^\\xb1\\x02\"\\xc4\\xa5\\x95\\xa2\\x11\\xd4\\xf8J\\x00aAL<?3e",
                      "name": "ct_precert_scts"
                    }
                  ],
                  "fingerprint": {
                    "sha1": "7aeab90971706c87c9d382748a7bb460e5402d8d",
                    "sha256": "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754"
                  }
                },
                "ja3s": "93546012d50bbfdd5a94bc6b31fcafea",
                "jarm": "00000000000000000000000000000000000000000000000000000000000000",
                "ocsp": {},
                "chain": [
                  "-----BEGIN CERTIFICATE-----\nMIIFRjCCBO2gAwIBAgIQD28h+L/cG2Vrzn8gtDPO8zAKBggqhkjOPQQDAjBKMQsw\nCQYDVQQGEwJVUzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEgMB4GA1UEAxMX\nQ2xvdWRmbGFyZSBJbmMgRUNDIENBLTMwHhcNMjMwNzAzMDAwMDAwWhcNMjQwNzAy\nMjM1OTU5WjB1MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG\nA1UEBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEe\nMBwGA1UEAxMVc25pLmNsb3VkZmxhcmVzc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZI\nzj0DAQcDQgAEBdEtMsvu3smlxlhSNOhcWjJZGyJyyiT61Uy0Fs1d46606Hct4fe2\nD7Gb/zG3ToLdOeb50pGKk3cjCO4AjYXRXqOCA4gwggOEMB8GA1UdIwQYMBaAFKXO\nN+rrsHUOlGeItEX62SQQh5YfMB0GA1UdDgQWBBRuU4cEJyADBx0JSXDzHyiwQyrG\nHTBOBgNVHREERzBFghYqLmNkbmpzLmNsb3VkZmxhcmUuY29tghRjZG5qcy5jbG91\nZGZsYXJlLmNvbYIVc25pLmNsb3VkZmxhcmVzc2wuY29tMA4GA1UdDwEB/wQEAwIH\ngDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwewYDVR0fBHQwcjA3oDWg\nM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJbmNFQ0NDQS0z\nLmNybDA3oDWgM4YxaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJ\nbmNFQ0NDQS0zLmNybDA+BgNVHSAENzA1MDMGBmeBDAECAjApMCcGCCsGAQUFBwIB\nFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwdgYIKwYBBQUHAQEEajBoMCQG\nCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG\nNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9DbG91ZGZsYXJlSW5jRUNDQ0Et\nMy5jcnQwDAYDVR0TAQH/BAIwADCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHUA\ndv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGJGYxvZwAABAMARjBE\nAiAR2C6ybMnEs0GnvIchRVDjewGGagxBglbCG6lNJIyEAgIga4+3EK6gI5eMWbEH\na11lLk2374ZMmC7GP9T1YC1UTgYAdgDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9\npD0wSNf7qwAAAYkZjG9cAAAEAwBHMEUCIQD1KwsJ9+eIlhwa5YOztsF6XF6gpOVT\natPGy+f7Ug1iWQIgE6+skIKFnnjichMSb7K5GPJFL55B2EMi/YvtBGNgxMEAdwA7\nU3d1Pi25gE6LMFsG/kA7Z9hPw/THvQANLXJv4frUFwAAAYkZjG+VAAAEAwBIMEYC\nIQCBoMcxcmGosIK/Lw6uTP66m4Dq0lOAQDvohTgf7daqwgIhAODKilSV37nc8QpT\nfl6xAiLEpZWiEdT4SgBhQUw8PzNlMAoGCCqGSM49BAMCA0cAMEQCIE3N2bdqR//Q\nnY3dOoAd/qF27XPVoQTIFCHcoQohx8eYAiACzJD6zev3cygABsNQsyAMiwGsvg4e\nFBEgsK78YyZ8lg==\n-----END CERTIFICATE-----\n",
                  "-----BEGIN CERTIFICATE-----\nMIIDzTCCArWgAwIBAgIQCjeHZF5ftIwiTv0b7RQMPDANBgkqhkiG9w0BAQsFADBa\nMQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\nclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\nMDEyNzEyNDgwOFoXDTI0MTIzMTIzNTk1OVowSjELMAkGA1UEBhMCVVMxGTAXBgNV\nBAoTEENsb3VkZmxhcmUsIEluYy4xIDAeBgNVBAMTF0Nsb3VkZmxhcmUgSW5jIEVD\nQyBDQS0zMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEua1NZpkUC0bsH4HRKlAe\nnQMVLzQSfS2WuIg4m4Vfj7+7Te9hRsTJc9QkT+DuHM5ss1FxL2ruTAUJd9NyYqSb\n16OCAWgwggFkMB0GA1UdDgQWBBSlzjfq67B1DpRniLRF+tkkEIeWHzAfBgNVHSME\nGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYI\nKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j\nb20wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL09t\nbmlyb290MjAyNS5jcmwwbQYDVR0gBGYwZDA3BglghkgBhv1sAQEwKjAoBggrBgEF\nBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw\nCAYGZ4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEB\nAAUkHd0bsCrrmNaF4zlNXmtXnYJX/OvoMaJXkGUFvhZEOFp3ArnPEELG4ZKk40Un\n+ABHLGioVplTVI+tnkDB0A+21w0LOEhsUCxJkAZbZB2LzEgwLt4I4ptJIsCSDBFe\nlpKU1fwg3FZs5ZKTv3ocwDfjhUkV+ivhdDkYD7fa86JXWGBPzI6UAPxGezQxPk1H\ngoE6y/SJXQ7vTQ1unBuCJN0yJV0ReFEQPaA1IwQvZW+cwdFD19Ae8zFnWSfda9J1\nCZMRJCQUzym+5iPDuI9yP+kHyCREU3qzuWFloUwOxkgAyXVjBYdwRVKD05WdRerw\n6DEdfgkfCv4+3ao8XnTSrLE=\n-----END CERTIFICATE-----\n"
                ],
                "trust": {
                  "browser": null,
                  "revoked": false
                },
                "cipher": {
                  "bits": 256,
                  "name": "TLS_AES_256_GCM_SHA384",
                  "version": "TLSv1.3"
                },
                "tlsext": [],
                "dhparams": null,
                "versions": [
                  "-TLSv1",
                  "-SSLv2",
                  "-SSLv3",
                  "-TLSv1.1",
                  "-TLSv1.2"
                ],
                "chain_sha256": [
                  "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754",
                  "3abbe63daf756c5016b6b85f52015fd8e8acbe277c5087b127a60563a841ed8a"
                ],
                "acceptable_cas": [],
                "handshake_states": [
                  "before SSL initialization",
                  "SSLv3/TLS write client hello",
                  "SSLv3/TLS read server hello",
                  "TLSv1.3 read encrypted extensions",
                  "SSLv3/TLS read server certificate",
                  "TLSv1.3 read server certificate verify",
                  "SSLv3/TLS read finished",
                  "SSLv3/TLS write change cipher spec",
                  "SSLv3/TLS write finished",
                  "SSL negotiation finished successfully"
                ]
              },
              "data": "HTTP/1.1 403 Forbidden\r\nServer: cloudflare\r\nDate: Sun, 03 Sep 2023 04:37:15 GMT\r\nContent-Type: text/html\r\nContent-Length: 553\r\nConnection: keep-alive\r\nCF-RAY: 800b4be1eb0b1177-ORD\r\n\r\n",
              "hash": -1038337740,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
                "title": "403 Forbidden",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": 1471629837,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": -2088197660,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {
                "vulns": [],
                "heartbleed": "2023/09/03 04:37:19 188.114.96.9:2087 - SAFE\n"
              },
              "port": 2087,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "f9fdaf1b-ec27-45bf-a5e2-a761a44a3398",
                "ptr": true,
                "module": "https-simple-new",
                "region": "eu",
                "crawler": "42f86247b760542c0192b61c60405edc5db01d55",
                "options": {}
              },
              "domains": [
                "cloudflare.com",
                "cloudflaressl.com"
              ],
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [
                "cdnjs.cloudflare.com",
                "sni.cloudflaressl.com"
              ],
              "timestamp": "2023-09-03T04:37:15.337068",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "ssl": {
                "alpn": [],
                "cert": {
                  "issued": "20230703000000Z",
                  "issuer": {
                    "C": "US",
                    "O": "Cloudflare, Inc.",
                    "CN": "Cloudflare Inc ECC CA-3"
                  },
                  "pubkey": {
                    "bits": 256,
                    "type": "dsa"
                  },
                  "serial": 2.0515453915550058e+37,
                  "expired": false,
                  "expires": "20240702235959Z",
                  "sig_alg": "ecdsa-with-SHA256",
                  "subject": {
                    "C": "US",
                    "L": "San Francisco",
                    "O": "Cloudflare, Inc.",
                    "CN": "sni.cloudflaressl.com",
                    "ST": "California"
                  },
                  "version": 2,
                  "extensions": [
                    {
                      "data": "0\\x16\\x80\\x14\\xa5\\xce7\\xea\\xeb\\xb0u\\x0e\\x94g\\x88\\xb4E\\xfa\\xd9$\\x10\\x87\\x96\\x1f",
                      "name": "authorityKeyIdentifier"
                    },
                    {
                      "data": "\\x04\\x14nS\\x87\\x04\\' \\x03\\x07\\x1d\\tIp\\xf3\\x1f(\\xb0C*\\xc6\\x1d",
                      "name": "subjectKeyIdentifier"
                    },
                    {
                      "data": "0E\\x82\\x16*.cdnjs.cloudflare.com\\x82\\x14cdnjs.cloudflare.com\\x82\\x15sni.cloudflaressl.com",
                      "name": "subjectAltName"
                    },
                    {
                      "data": "\\x03\\x02\\x07\\x80",
                      "name": "keyUsage",
                      "critical": true
                    },
                    {
                      "data": "0\\x14\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x01\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x03\\x02",
                      "name": "extendedKeyUsage"
                    },
                    {
                      "data": "0r07\\xa05\\xa03\\x861http://crl3.digicert.com/CloudflareIncECCCA-3.crl07\\xa05\\xa03\\x861http://crl4.digicert.com/CloudflareIncECCCA-3.crl",
                      "name": "crlDistributionPoints"
                    },
                    {
                      "data": "0503\\x06\\x06g\\x81\\x0c\\x01\\x02\\x020)0\\'\\x06\\x08+\\x06\\x01\\x05\\x05\\x07\\x02\\x01\\x16\\x1bhttp://www.digicert.com/CPS",
                      "name": "certificatePolicies"
                    },
                    {
                      "data": "0h0$\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x01\\x86\\x18http://ocsp.digicert.com0@\\x06\\x08+\\x06\\x01\\x05\\x05\\x070\\x02\\x864http://cacerts.digicert.com/CloudflareIncECCCA-3.crt",
                      "name": "authorityInfoAccess"
                    },
                    {
                      "data": "0\\x00",
                      "name": "basicConstraints",
                      "critical": true
                    },
                    {
                      "data": "\\x04\\x82\\x01j\\x01h\\x00u\\x00v\\xff\\x88?\\n\\xb6\\xfb\\x95Q\\xc2a\\xcc\\xf5\\x87\\xba4\\xb4\\xa4\\xcd\\xbb)\\xdchB\\n\\x9f\\xe6gLZ:t\\x00\\x00\\x01\\x89\\x19\\x8cog\\x00\\x00\\x04\\x03\\x00F0D\\x02 \\x11\\xd8.\\xb2l\\xc9\\xc4\\xb3A\\xa7\\xbc\\x87!EP\\xe3{\\x01\\x86j\\x0cA\\x82V\\xc2\\x1b\\xa9M$\\x8c\\x84\\x02\\x02 k\\x8f\\xb7\\x10\\xae\\xa0#\\x97\\x8cY\\xb1\\x07k]e.M\\xb7\\xef\\x86L\\x98.\\xc6?\\xd4\\xf5`-TN\\x06\\x00v\\x00\\xda\\xb6\\xbfk?\\xb5\\xb6\"\\x9f\\x9b\\xc2\\xbb\\\\k\\xe8p\\x91ql\\xbbQ\\x84\\x854\\xbd\\xa4=0H\\xd7\\xfb\\xab\\x00\\x00\\x01\\x89\\x19\\x8co\\\\\\x00\\x00\\x04\\x03\\x00G0E\\x02!\\x00\\xf5+\\x0b\\t\\xf7\\xe7\\x88\\x96\\x1c\\x1a\\xe5\\x83\\xb3\\xb6\\xc1z\\\\^\\xa0\\xa4\\xe5Sj\\xd3\\xc6\\xcb\\xe7\\xfbR\\rbY\\x02 \\x13\\xaf\\xac\\x90\\x82\\x85\\x9ex\\xe2r\\x13\\x12o\\xb2\\xb9\\x18\\xf2E/\\x9eA\\xd8C\"\\xfd\\x8b\\xed\\x04c`\\xc4\\xc1\\x00w\\x00;Swu>-\\xb9\\x80N\\x8b0[\\x06\\xfe@;g\\xd8O\\xc3\\xf4\\xc7\\xbd\\x00\\r-ro\\xe1\\xfa\\xd4\\x17\\x00\\x00\\x01\\x89\\x19\\x8co\\x95\\x00\\x00\\x04\\x03\\x00H0F\\x02!\\x00\\x81\\xa0\\xc71ra\\xa8\\xb0\\x82\\xbf/\\x0e\\xaeL\\xfe\\xba\\x9b\\x80\\xea\\xd2S\\x80@;\\xe8\\x858\\x1f\\xed\\xd6\\xaa\\xc2\\x02!\\x00\\xe0\\xca\\x8aT\\x95\\xdf\\xb9\\xdc\\xf1\\nS~^\\xb1\\x02\"\\xc4\\xa5\\x95\\xa2\\x11\\xd4\\xf8J\\x00aAL<?3e",
                      "name": "ct_precert_scts"
                    }
                  ],
                  "fingerprint": {
                    "sha1": "7aeab90971706c87c9d382748a7bb460e5402d8d",
                    "sha256": "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754"
                  }
                },
                "ja3s": "93546012d50bbfdd5a94bc6b31fcafea",
                "jarm": "00000000000000000000000000000000000000000000000000000000000000",
                "ocsp": {},
                "chain": [
                  "-----BEGIN CERTIFICATE-----\nMIIFRjCCBO2gAwIBAgIQD28h+L/cG2Vrzn8gtDPO8zAKBggqhkjOPQQDAjBKMQsw\nCQYDVQQGEwJVUzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEgMB4GA1UEAxMX\nQ2xvdWRmbGFyZSBJbmMgRUNDIENBLTMwHhcNMjMwNzAzMDAwMDAwWhcNMjQwNzAy\nMjM1OTU5WjB1MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG\nA1UEBxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQQ2xvdWRmbGFyZSwgSW5jLjEe\nMBwGA1UEAxMVc25pLmNsb3VkZmxhcmVzc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZI\nzj0DAQcDQgAEBdEtMsvu3smlxlhSNOhcWjJZGyJyyiT61Uy0Fs1d46606Hct4fe2\nD7Gb/zG3ToLdOeb50pGKk3cjCO4AjYXRXqOCA4gwggOEMB8GA1UdIwQYMBaAFKXO\nN+rrsHUOlGeItEX62SQQh5YfMB0GA1UdDgQWBBRuU4cEJyADBx0JSXDzHyiwQyrG\nHTBOBgNVHREERzBFghYqLmNkbmpzLmNsb3VkZmxhcmUuY29tghRjZG5qcy5jbG91\nZGZsYXJlLmNvbYIVc25pLmNsb3VkZmxhcmVzc2wuY29tMA4GA1UdDwEB/wQEAwIH\ngDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwewYDVR0fBHQwcjA3oDWg\nM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJbmNFQ0NDQS0z\nLmNybDA3oDWgM4YxaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0Nsb3VkZmxhcmVJ\nbmNFQ0NDQS0zLmNybDA+BgNVHSAENzA1MDMGBmeBDAECAjApMCcGCCsGAQUFBwIB\nFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwdgYIKwYBBQUHAQEEajBoMCQG\nCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKG\nNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9DbG91ZGZsYXJlSW5jRUNDQ0Et\nMy5jcnQwDAYDVR0TAQH/BAIwADCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHUA\ndv+IPwq2+5VRwmHM9Ye6NLSkzbsp3GhCCp/mZ0xaOnQAAAGJGYxvZwAABAMARjBE\nAiAR2C6ybMnEs0GnvIchRVDjewGGagxBglbCG6lNJIyEAgIga4+3EK6gI5eMWbEH\na11lLk2374ZMmC7GP9T1YC1UTgYAdgDatr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9\npD0wSNf7qwAAAYkZjG9cAAAEAwBHMEUCIQD1KwsJ9+eIlhwa5YOztsF6XF6gpOVT\natPGy+f7Ug1iWQIgE6+skIKFnnjichMSb7K5GPJFL55B2EMi/YvtBGNgxMEAdwA7\nU3d1Pi25gE6LMFsG/kA7Z9hPw/THvQANLXJv4frUFwAAAYkZjG+VAAAEAwBIMEYC\nIQCBoMcxcmGosIK/Lw6uTP66m4Dq0lOAQDvohTgf7daqwgIhAODKilSV37nc8QpT\nfl6xAiLEpZWiEdT4SgBhQUw8PzNlMAoGCCqGSM49BAMCA0cAMEQCIE3N2bdqR//Q\nnY3dOoAd/qF27XPVoQTIFCHcoQohx8eYAiACzJD6zev3cygABsNQsyAMiwGsvg4e\nFBEgsK78YyZ8lg==\n-----END CERTIFICATE-----\n",
                  "-----BEGIN CERTIFICATE-----\nMIIDzTCCArWgAwIBAgIQCjeHZF5ftIwiTv0b7RQMPDANBgkqhkiG9w0BAQsFADBa\nMQswCQYDVQQGEwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJl\nclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTIw\nMDEyNzEyNDgwOFoXDTI0MTIzMTIzNTk1OVowSjELMAkGA1UEBhMCVVMxGTAXBgNV\nBAoTEENsb3VkZmxhcmUsIEluYy4xIDAeBgNVBAMTF0Nsb3VkZmxhcmUgSW5jIEVD\nQyBDQS0zMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEua1NZpkUC0bsH4HRKlAe\nnQMVLzQSfS2WuIg4m4Vfj7+7Te9hRsTJc9QkT+DuHM5ss1FxL2ruTAUJd9NyYqSb\n16OCAWgwggFkMB0GA1UdDgQWBBSlzjfq67B1DpRniLRF+tkkEIeWHzAfBgNVHSME\nGDAWgBTlnVkwgkdYzKz6CFQ2hns6tQRN8DAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwNAYI\nKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j\nb20wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL09t\nbmlyb290MjAyNS5jcmwwbQYDVR0gBGYwZDA3BglghkgBhv1sAQEwKjAoBggrBgEF\nBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw\nCAYGZ4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEB\nAAUkHd0bsCrrmNaF4zlNXmtXnYJX/OvoMaJXkGUFvhZEOFp3ArnPEELG4ZKk40Un\n+ABHLGioVplTVI+tnkDB0A+21w0LOEhsUCxJkAZbZB2LzEgwLt4I4ptJIsCSDBFe\nlpKU1fwg3FZs5ZKTv3ocwDfjhUkV+ivhdDkYD7fa86JXWGBPzI6UAPxGezQxPk1H\ngoE6y/SJXQ7vTQ1unBuCJN0yJV0ReFEQPaA1IwQvZW+cwdFD19Ae8zFnWSfda9J1\nCZMRJCQUzym+5iPDuI9yP+kHyCREU3qzuWFloUwOxkgAyXVjBYdwRVKD05WdRerw\n6DEdfgkfCv4+3ao8XnTSrLE=\n-----END CERTIFICATE-----\n"
                ],
                "trust": {
                  "browser": null,
                  "revoked": false
                },
                "cipher": {
                  "bits": 256,
                  "name": "TLS_AES_256_GCM_SHA384",
                  "version": "TLSv1.3"
                },
                "tlsext": [],
                "dhparams": null,
                "versions": [
                  "-TLSv1",
                  "-SSLv2",
                  "-SSLv3",
                  "-TLSv1.1",
                  "-TLSv1.2"
                ],
                "chain_sha256": [
                  "d99edad76f5ae08716f33ea0a8348b84b7b098302d18d853e63c090619480754",
                  "3abbe63daf756c5016b6b85f52015fd8e8acbe277c5087b127a60563a841ed8a"
                ],
                "acceptable_cas": [],
                "handshake_states": [
                  "before SSL initialization",
                  "SSLv3/TLS write client hello",
                  "SSLv3/TLS read server hello",
                  "TLSv1.3 read encrypted extensions",
                  "SSLv3/TLS read server certificate",
                  "TLSv1.3 read server certificate verify",
                  "SSLv3/TLS read finished",
                  "SSLv3/TLS write change cipher spec",
                  "SSLv3/TLS write finished",
                  "SSL negotiation finished successfully"
                ]
              },
              "data": "HTTP/1.1 403 Forbidden\r\nServer: cloudflare\r\nDate: Sat, 12 Aug 2023 06:20:47 GMT\r\nContent-Type: text/html\r\nContent-Length: 553\r\nConnection: keep-alive\r\nCF-RAY: 7f569d4aeb340add-LAS\r\n\r\n",
              "hash": -685587276,
              "http": {
                "waf": "Cloudflare (Cloudflare Inc.)",
                "host": "188.114.96.9",
                "html": "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n<!-- a padding to disable MSIE and Chrome friendly error page -->\r\n",
                "title": "403 Forbidden",
                "robots": null,
                "server": "cloudflare",
                "status": 403,
                "sitemap": null,
                "location": "/",
                "html_hash": 1471629837,
                "redirects": [],
                "components": {},
                "robots_hash": null,
                "securitytxt": null,
                "headers_hash": -2088197660,
                "sitemap_hash": null,
                "securitytxt_hash": null
              },
              "opts": {
                "vulns": [],
                "heartbleed": "2023/08/12 06:20:53 188.114.96.9:8443 - SAFE\n"
              },
              "port": 8443,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "a20e3bda-719d-4586-a603-68af98b6bb67",
                "ptr": true,
                "module": "https",
                "region": "",
                "crawler": "91597136eb9b132d7cc954511e0d9cbe7ce2e377",
                "options": {}
              },
              "domains": [
                "cloudflare.com",
                "cloudflaressl.com"
              ],
              "product": "CloudFlare",
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [
                "cdnjs.cloudflare.com",
                "sni.cloudflaressl.com"
              ],
              "timestamp": "2023-08-12T06:20:47.191508",
              "transport": "tcp"
            },
            {
              "ip": 3161612297,
              "os": null,
              "asn": "AS13335",
              "isp": "Cloudflare, Inc.",
              "org": "CloudFlare, Inc.",
              "data": "HTTP/1.1 403 Forbidden\r\nDate: Thu, 31 Aug 2023 13:42:31 GMT\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Length: 16\r\nConnection: close\r\nX-Frame-Options: SAMEORIGIN\r\nReferrer-Policy: same-origin\r\nCache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\nExpires: Thu, 01 Jan 1970 00:00:01 GMT\r\nServer: cloudflare\r\nCF-RAY: 7ff5b27d5f77316b-DFW\r\n\r\nerror code: 1003",
              "hash": -699700262,
              "opts": {},
              "port": 8880,
              "tags": [
                "cdn"
              ],
              "ip_str": "188.114.96.9",
              "_shodan": {
                "id": "b7a737bc-0e7f-427a-af61-243dba3f0889",
                "module": "https-simple-new",
                "region": "na",
                "crawler": "85a2598833c03b2cff4b6d747001845f87a89147",
                "options": {}
              },
              "domains": [],
              "location": {
                "city": "San Francisco",
                "latitude": 37.7621,
                "area_code": null,
                "longitude": -122.3971,
                "region_code": "CA",
                "country_code": "US",
                "country_name": "United States"
              },
              "hostnames": [],
              "timestamp": "2023-08-31T13:42:31.262345",
              "transport": "tcp"
            }
          ],
          "tags": [
            "cdn"
          ],
          "ports": [
            8880,
            2082,
            2083,
            2053,
            2086,
            2087,
            80,
            8443,
            443
          ],
          "ip_str": "188.114.96.9",
          "domains": [
            "cloudflaressl.com",
            "cloudflare.com"
          ],
          "latitude": 37.7621,
          "area_code": null,
          "hostnames": [
            "cdnjs.cloudflare.com",
            "sni.cloudflaressl.com"
          ],
          "longitude": -122.3971,
          "last_update": "2023-09-05T23:03:21.067084",
          "region_code": "CA",
          "country_code": "US",
          "country_name": "United States"
        },
        "pairedItem": {
          "item": 0
        }
      }
    ],
    "Get watched IPs & Ports": [
      {
        "json": {
          "ip": "116.202.106.35",
          "ports": [
            5678,
            80
          ]
        },
        "pairedItem": {
          "item": 0
        }
      },
      {
        "json": {
          "ip": "188.114.96.9",
          "ports": [
            8080,
            80
          ]
        },
        "pairedItem": {
          "item": 0
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "28b191c5-e23c-42db-9815-6770a2b72260",
  "connections": {
    "For each IP": {
      "main": [
        [
          {
            "node": "Scan each IP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Every Monday": {
      "main": [
        [
          {
            "node": "Get watched IPs & Ports",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scan each IP": {
      "main": [
        [
          {
            "node": "Split out services",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to table": {
      "main": [
        [
          {
            "node": "Convert to Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Unexpected port?": {
      "main": [
        [
          {
            "node": "Set data to post for each port",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split out services": {
      "main": [
        [
          {
            "node": "Unexpected port?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Markdown": {
      "main": [
        [
          {
            "node": "Create TheHive alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create TheHive alert": {
      "main": [
        [
          {
            "node": "For each IP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get watched IPs & Ports": {
      "main": [
        [
          {
            "node": "For each IP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set data to post for each port": {
      "main": [
        [
          {
            "node": "Convert to table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux équipes de sécurité informatique et aux responsables de la cybersécurité au sein des entreprises, notamment celles qui gèrent des infrastructures critiques. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, familiarisés avec les outils d'automatisation et de gestion des alertes.

Problème résolu

Ce workflow résout le problème de la surveillance manuelle des incidents de sécurité, qui peut être chronophage et sujet à des erreurs. En automatisant le processus de collecte et d'analyse des données de Shodan, les équipes peuvent rapidement identifier les vulnérabilités et réagir en conséquence. Cela réduit le risque d'attaques potentielles et améliore la réactivité face aux incidents de sécurité.

Étapes du workflow

Étape 1 : Le déclencheur programmé 'Every Monday' active le workflow chaque semaine. Étape 2 : Le nœud 'Get watched IPs & Ports' récupère les adresses IP à surveiller. Étape 3 : Le nœud 'Scan each IP' interroge chaque adresse pour détecter des anomalies. Étape 4 : Les résultats sont filtrés avec 'Unexpected port?' pour identifier les ports non prévus. Étape 5 : Les données pertinentes sont préparées avec 'Set data to post for each port'. Étape 6 : Les résultats sont convertis en tableau et en Markdown pour une meilleure lisibilité. Étape 7 : Pour chaque incident, une alerte est créée dans TheHive via le nœud 'Create TheHive alert'.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier l'URL dans le nœud 'Get watched IPs & Ports' pour cibler des sources spécifiques. Ajustez les paramètres du nœud 'Scan each IP' pour affiner les requêtes selon vos besoins. Vous pouvez également personnaliser le contenu des alertes dans le nœud 'Create TheHive alert' en ajoutant des informations supplémentaires ou en changeant le format. Assurez-vous que les permissions d'accès aux API utilisées sont correctement configurées pour éviter des problèmes de sécurité. Enfin, vous pouvez intégrer d'autres outils de notification si nécessaire.