{
"cells": [
{
"cell_type": "markdown",
"id": "88351af5-bc22-4b5b-8251-87fbc9c46ff5",
"metadata": {},
"source": [
"# Exploratory Threat Analytics using Jupyter Notebooks"
]
},
{
"cell_type": "markdown",
"id": "47a0179e-2d81-49c4-90c3-23e0bd2b360b",
"metadata": {},
"source": [
"#### Whoami ? \n",
"* Saksham Tushar - Bangalore/India - Lead Threat Researcher/Detection Engineer @ CRED\n",
"* Loves Tactical Security (All Things Threat: Detection/Analytics/Intelligence/Hunting)\n",
"* Seeks automation & Coffee Everywhere!!"
]
},
{
"cell_type": "markdown",
"id": "890a9984-6918-46d9-8429-62d3c385561e",
"metadata": {},
"source": [
"## Why Notebooks & not SIEM/EDR or any other Tool? \n",
"#### SIEM is for Log Collection & Detection, Case Management is for Notes & Annotation, Let's use Jupyter for **Investigation**\n",
"* **Vendor agnostic Query Language : Programming Language**\n",
"* **Intersection of Code/Investigation/Annotation-notes**\n",
"* **Programmatic control over Data/Logs**\n",
"* **Enrichment and Context on the Fly!!**\n",
"* **Orchestrated Approach and Flow**"
]
},
{
"cell_type": "markdown",
"id": "0b74f370-8e58-410a-964f-3063865ac637",
"metadata": {},
"source": [
"## Let's Explore a simple Investigation of Finding Suspicious Powershell Executions.\n",
"* Two Common Use-case that I have is : \n",
" * Import bulk alerts that might have been triggered in last 1 day due to a spike in data volume and perform statistical analysis on them to do a bulk investigation\n",
" * Or Do bulk Analysis of alerts for a New Detection to analyze areas of Fine-tuning and improvement/Context.\n",
" \n",
"#### Use-Case : Data from Wherever you want (Security Tools/S3/Online Datasets/Git repo)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7c4b3097-68de-44c4-b4c7-ac39ac0a94dc",
"metadata": {},
"outputs": [],
"source": [
"from elasticsearch import Elasticsearch\n",
"from elasticsearch import RequestsHttpConnection\n",
"from elasticsearch_dsl import Search,A"
]
},
{
"cell_type": "markdown",
"id": "6c05b379-e7a8-45fe-89f0-a06ff6f3c8c0",
"metadata": {},
"source": [
"\n",
"#### Use-Case : Data Analysis Capabilities\n",
"* Need Python Data Analysis capabilities ?"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dee72299-0533-469b-82ef-bb65886ef146",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"id": "8148691a-a4e8-4264-85e6-357d07159c18",
"metadata": {},
"source": [
"##### Need More ?? , SQL, Graphs, ML, Threat Intelligence, Alerts, Datasets, Visualization... ? \n",
"* Gather Analytical Capabilties (pyspark, Seaborn,plotly, graphframes)\n",
" "
]
},
{
"cell_type": "markdown",
"id": "8c3cb190-f0db-44f5-bb06-5e3b0d1866b2",
"metadata": {},
"source": [
"##### let me also Import Pyspark , you know for SQL capabilities"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "26141fd1-bd81-419e-9b52-101553c51fa1",
"metadata": {},
"outputs": [],
"source": [
"from pyspark.sql import SparkSession\n",
"spark = SparkSession.builder.getOrCreate()\n",
"spark.conf.set(\"spark.sql.caseSensitive\", \"true\")\n",
"\n",
"pd.set_option('display.max_columns',None)\n",
"pd.set_option('display.max_rows',None)\n",
"pd.set_option('display.max_colwidth',None)"
]
},
{
"cell_type": "markdown",
"id": "6da65832-2c00-4e56-923f-ba82f3c42c02",
"metadata": {},
"source": [
"##### Let's do a function to query Elastic to Pull data! We can call this Function From whenever I Need, so subject data at disposal is sorted!!. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "db0e7899-3d97-40f4-b1e0-3a3581b17faa",
"metadata": {},
"outputs": [],
"source": [
"#also Let's Suppress SSL Warnings as I'm making Unverified HTTPS request in my isolated Environment. \n",
"\n",
"es2 = Elasticsearch(['https://192.168.0.107:9200'], connection_class=RequestsHttpConnection, http_auth=('elastic', 'MyPassword'), use_ssl=True, verify_certs=False)\n",
"searchContext = Search(using=es2, index='logs-endpoint.events*', doc_type='doc')\n",
"\n",
"def queryes(query) :\n",
" print('Running Query : '+ query)\n",
" s = searchContext.query('query_string', query=query).filter('range' , **{'@timestamp': {'gte': \"now-120d/d\" , 'lt': \"now/d\", 'format' : 'basic_date'}})\n",
" response = s.execute()\n",
" if response.success():\n",
" df = pd.json_normalize((d.to_dict() for d in s.scan()))\n",
" print(\"data fetched Parsing...\")\n",
" sdf=spark.createDataFrame(df.astype(str))\n",
" #data santization\n",
" clean_df = sdf.toDF(*(c.replace('.', '_') for c in sdf.columns))\n",
" clean_df = clean_df.toDF(*(c.replace('@', '') for c in clean_df.columns))\n",
" print(\"Done!!!\")\n",
" return clean_df\n",
"\n",
" else :\n",
" print(\"Es query Failed\")"
]
},
{
"cell_type": "markdown",
"id": "25523715-d4cf-40ce-95bd-84533f75534c",
"metadata": {},
"source": [
"##### Pull all elasticsearch Events from my SIEM - Elastic to investigate/Hunt for ['Command and Scripting Interpreter: PowerShell'] https://attack.mitre.org/techniques/T1059/001/"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "ec0f14ef-9dac-4d62-abb6-ad664e898a2f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Running Query : data_stream.dataset:endpoint.events.process AND process.name:powershell.exe\n",
"data fetched Parsing...\n",
"Done!!!\n"
]
}
],
"source": [
"power_events= queryes(\"data_stream.dataset:endpoint.events.process AND process.name:powershell.exe\")\n",
"power_events.createOrReplaceTempView('powershell_events')"
]
},
{
"cell_type": "markdown",
"id": "d2b1bb9c-76ff-45de-8a7a-43a74a4923ca",
"metadata": {},
"source": [
"#### Use-Case : Statistical Capabilities at your disposal"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "378cf742-b346-4f61-85fa-50a4067360b9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"+--------+-------------------+\n",
"|count(1)|process_parent_name|\n",
"+--------+-------------------+\n",
"| 4| java.exe|\n",
"| 4| npcap.exe|\n",
"| 4| mshta.exe|\n",
"| 7| explorer.exe|\n",
"| 8| RuntimeBroker.exe|\n",
"| 8| Code.exe|\n",
"| 8| cmd.exe|\n",
"| 12| nan|\n",
"| 16| powershell.exe|\n",
"| 112|CompatTelRunner.exe|\n",
"+--------+-------------------+\n",
"\n"
]
},
{
"data": {
"text/plain": [
"None"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(spark.sql('select count(*),process_parent_name from powershell_events group by process_parent_name order by count(*) asc').show(1000,truncate=200, vertical=False))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d528fccf-35f1-4f8b-a4a8-b6bbf0a34c45",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+\n",
"|count(1)| process_command_line|process_parent_name|\n",
"+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+\n",
"| 2| Powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\neo4j.ps1\" install-service| cmd.exe|\n",
"| 2|powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Register-ScheduledTask -Force -TaskName 'npcapwatchdog' -Description 'Ensure Npcap service is configured to start at boot' -A...| npcap.exe|\n",
"| 2|powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command \"& { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls...| cmd.exe|\n",
"| 2| powershell.exe -OutputFormat Text -ExecutionPolicy Bypass -Command \"Get-Service neo4j | Format-Table -AutoSize\"| java.exe|\n",
"| 2| \"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\" | RuntimeBroker.exe|\n",
"| 2| powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Start-Service -Name npcap -PassThru | Stop-Service -PassThru | Start-Service\"| npcap.exe|\n",
"| 2|powershell.exe -OutputFormat Text -ExecutionPolicy Bypass -Command \"& 'C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\tools\\prunsrv-amd64.exe'\" \"'//IS//neo4j' '--StartMode=jvm' '--StartMetho...| java.exe|\n",
"| 2| powershell | cmd.exe|\n",
"| 2| powershell -nop .\\Desktop\\Initial_Dropper.ps1| cmd.exe|\n",
"| 4|\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAc...| mshta.exe|\n",
"| 6| \"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" | RuntimeBroker.exe|\n",
"| 7| \"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" | explorer.exe|\n",
"| 8| C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe| Code.exe|\n",
"| 12|\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAc...| nan|\n",
"| 16|\"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedCommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAc...| powershell.exe|\n",
"| 112| powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1';|CompatTelRunner.exe|\n",
"+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+\n",
"\n"
]
},
{
"data": {
"text/plain": [
"None"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(spark.sql('select count(*),process_command_line,process_parent_name from powershell_events group by process_command_line,process_parent_name order by count(*) asc').show(1000,truncate=200, vertical=False))"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "66139dc7-bdd6-493e-b8df-a878c9d735d8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-RECORD 0-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n",
" process_parent_name | mshta.exe \n",
" process_name | powershell.exe \n",
" process_command_line | \"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHMAIgApAC4AcwA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA \n",
"-RECORD 1-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n",
" process_parent_name | cmd.exe \n",
" process_name | powershell.exe \n",
" process_command_line | powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command \"& { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; & 'c:\\Users\\Leolabs-win\\.vscode\\extensions\\ms-dotnettools.vscode-dotnet-runtime-1.5.0\\dist\\install scripts\\dotnet-install.ps1' -InstallDir 'c:\\Users\\Leolabs-win\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-dotnettools.vscode-dotnet-runtime\\.dotnet\\6.0.9' -Version 6.0.9 -Runtime dotnet } \n",
"-RECORD 2-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n",
" process_parent_name | cmd.exe \n",
" process_name | powershell.exe \n",
" process_command_line | powershell \n",
"-RECORD 3-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n",
" process_parent_name | cmd.exe \n",
" process_name | powershell.exe \n",
" process_command_line | powershell -nop .\\Desktop\\Initial_Dropper.ps1 \n",
"-RECORD 4-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n",
" process_parent_name | cmd.exe \n",
" process_name | powershell.exe \n",
" process_command_line | Powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\neo4j.ps1\" install-service \n",
"\n"
]
},
{
"data": {
"text/plain": [
"None"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(spark.sql('select process_parent_name,process_name,process_command_line from powershell_events where process_parent_name in (\"mshta.exe\",\"cmd.exe\") group by process_parent_name,process_name,process_command_line').show(1000,truncate=0, vertical=True))"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "310e46c0-c8c1-43a1-88f8-e5185e3d6d42",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'$h=(gp HKLM:\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\X \"s\").s;$h.Split(\" \")|forEach{[char]([convert]::toint16($_,16))}|forEach{$r=$r+$_};iex $r;'"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import base64\n",
"def base64ToString(b):\n",
" return base64.b64decode(b).decode('utf-16')\n",
"base64ToString(\"JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHMAIgApAC4AcwA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA\")"
]
},
{
"cell_type": "markdown",
"id": "2904b6bb-4301-4ae0-8e8f-254391080830",
"metadata": {},
"source": [
"#### Use-Case : SuperCharged API Utilization\n",
"* use api powers of your tools - SQL API from Elasticsearch "
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3d503ef7-fcd1-4fc7-a9a6-52c061560b09",
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"from requests.auth import HTTPBasicAuth\n",
"import json\n",
"headers = {'Content-Type': 'application/json',}\n",
"query = {'query': ''' SELECT \"@timestamp\", \"process.name\",\"source.ip\",\"source.port\",\"destination.ip\",\"destination.port\" FROM \"logs-endpoint.events*\" where \"process.name\" = 'powershell.exe' and \"destination.ip\" IS NOT NULL and \"@timestamp\" > TODAY() - INTERVAL 90 DAY LIMIT 10000'''}\n",
"response = requests.post('https://192.168.0.107:9200/_sql?format=json', headers=headers, data=json.dumps(query) ,auth=HTTPBasicAuth('elastic', 'MyPassword'),verify=False)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "9fd003b3-dc81-469c-8fd3-45cdcec4c46f",
"metadata": {},
"outputs": [],
"source": [
"powershel_network_events=pd.DataFrame(json.loads(response.text)['rows'],columns=['Timestamp','Process','Source_ip','Source_port','Destination_ip','Destination_port'])"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "42b21db4-1f0b-4f71-a89e-3180cf78db26",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1000"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(powershel_network_events)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "29be3d05-c685-422d-b2a9-aeffff822335",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Timestamp | \n",
" Process | \n",
" Source_ip | \n",
" Source_port | \n",
" Destination_ip | \n",
" Destination_port | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2022-09-30T21:02:02.508Z | \n",
" powershell.exe | \n",
" 192.168.1.104 | \n",
" 58100 | \n",
" 58.158.177.102 | \n",
" 80 | \n",
"
\n",
" \n",
" 1 | \n",
" 2022-11-18T05:58:53.998Z | \n",
" powershell.exe | \n",
" 192.168.1.104 | \n",
" 55563 | \n",
" 58.158.177.102 | \n",
" 80 | \n",
"
\n",
" \n",
" 2 | \n",
" 2022-09-30T21:02:02.751Z | \n",
" powershell.exe | \n",
" 192.168.1.104 | \n",
" 58101 | \n",
" 58.158.177.102 | \n",
" 80 | \n",
"
\n",
" \n",
" 3 | \n",
" 2022-11-18T05:58:53.998Z | \n",
" powershell.exe | \n",
" 192.168.1.104 | \n",
" 55563 | \n",
" 58.158.177.102 | \n",
" 80 | \n",
"
\n",
" \n",
" 4 | \n",
" 2022-11-18T05:58:54.236Z | \n",
" powershell.exe | \n",
" 192.168.1.104 | \n",
" 55564 | \n",
" 58.158.177.102 | \n",
" 80 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Timestamp Process Source_ip Source_port \\\n",
"0 2022-09-30T21:02:02.508Z powershell.exe 192.168.1.104 58100 \n",
"1 2022-11-18T05:58:53.998Z powershell.exe 192.168.1.104 55563 \n",
"2 2022-09-30T21:02:02.751Z powershell.exe 192.168.1.104 58101 \n",
"3 2022-11-18T05:58:53.998Z powershell.exe 192.168.1.104 55563 \n",
"4 2022-11-18T05:58:54.236Z powershell.exe 192.168.1.104 55564 \n",
"\n",
" Destination_ip Destination_port \n",
"0 58.158.177.102 80 \n",
"1 58.158.177.102 80 \n",
"2 58.158.177.102 80 \n",
"3 58.158.177.102 80 \n",
"4 58.158.177.102 80 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"powershel_network_events.head()"
]
},
{
"cell_type": "markdown",
"id": "d846f217-837c-4ac7-a51f-28b17191f5bc",
"metadata": {},
"source": [
"##### Popular Threat Hunting Techniques like stack counting/Grouping/Clustering are a breeze away!!\n",
"* Stack Counting to Check Unique IPs and Connection Count\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "f6ff25b6-a434-4b38-a4ec-36382ad18cf3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Source_ip Destination_ip\n",
"192.168.1.104 58.158.177.102 1000\n",
"dtype: int64"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"powershel_network_events.groupby(['Source_ip','Destination_ip']).size()"
]
},
{
"cell_type": "markdown",
"id": "d40d57ae-bd21-41c3-8daf-4491ad86ca08",
"metadata": {},
"source": [
"Interestingly All Connections are made to Same Destination IP\n",
"#### Use-Case - Data Enrichment\n",
"* Let's Enrich reputational Data from Virustotal \n",
"* Gather Data & Intelligence : There are Product APIs, Webhooks (Siem/Case-management/Threat Intelligence Platform/EDRs/ Git/Slack), Service-APIs(Virustotal,Curl Websites, scrape data), The possibility to gather data is endless. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "78d74664-9ae6-4f98-bb2c-51503310f34d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Malicious Score {'harmless': 69, 'malicious': 14, 'suspicious': 0, 'undetected': 13, 'timeout': 0}\n"
]
}
],
"source": [
"#let's Correlate Data from Virustotal : \n",
"def check_virustotal(ip):\n",
" headers = {\n",
" 'x-apikey': '360523cac7446ee2bde736c004c72661718185c985d192d7e91f4a71fa8cedfc',\n",
" }\n",
"\n",
" response = requests.get('https://www.virustotal.com/api/v3/ip_addresses/'+ip, headers=headers)\n",
" return response.json()['data']['attributes']['last_analysis_stats']\n",
"\n",
"print(\"Malicious Score \"+ str(check_virustotal(powershel_network_events['Destination_ip'].iloc[0])))\n",
"\n",
"## do a for loop for as many IPs as you want. "
]
},
{
"cell_type": "markdown",
"id": "72c531cd-387c-4de4-9431-4ffb9fdab524",
"metadata": {},
"source": [
"#### Use-Case - Data Visualization powers (You are free to use your favourite library, Matplotlib, seaborn, plotly etc etc..)\n",
"* Exploratory Analysis of Process events using plotly \n",
"\n",
"Calling in Data from EDR Logs - this could be your EDR of choice, Defender/Crowdstrike/Carbon-black/sentinelOne/Elastic-EDR/OSQUERY etc etc.\n",
"\n",
"I'm using Elastic-EDR along with Elastic SIEM for this Case study."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "1d86ed37-f29c-44ac-99ec-70bdd1a9bbc0",
"metadata": {},
"outputs": [],
"source": [
"query = {'query': ''' SELECT \"@timestamp\", \"process.name\",\"process.command_line\" FROM \"logs-endpoint.events*\" where \"process.name\" = 'powershell.exe' AND \"process.command_line\" IS NOT NULL AND \"@timestamp\" > TODAY() - INTERVAL 90 DAY LIMIT 10000'''}\n",
"\n",
"Explo_analysis_example_response = requests.post('https://192.168.0.107:9200/_sql?format=json', headers=headers, data=json.dumps(query) ,auth=HTTPBasicAuth('elastic', 'MyPassword'),verify=False)"
]
},
{
"cell_type": "markdown",
"id": "f8b588d7-4d50-4c7b-928a-ee57f2fffe2f",
"metadata": {},
"source": [
"#### Use-Case - programmatic Control over Data, Wrangling, tuning, sanitization, enrichment, whatever you need !!! \n",
"* Truely a Canvas limited by the Artist's Creativity."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "47804d32-425c-433c-8b84-421d8f43c232",
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime\n",
"#load results of SQL Search into the Dataframe\n",
"Explo_analysis_example_df=pd.DataFrame(json.loads(Explo_analysis_example_response.text)['rows'],columns=['Timestamp','Process','Commandline'])\n",
"#Creating a new column of Data which hold datetime formatted object\n",
"Explo_analysis_example_df['Timestamp_parsed']=Explo_analysis_example_df['Timestamp'].apply(lambda x : datetime.strptime(x,\"%Y-%m-%dT%H:%M:%S.%fZ\"))\n",
"#creating a Column of Data which holds Date of event\n",
"Explo_analysis_example_df['Timestamp_date']=Explo_analysis_example_df['Timestamp_parsed'].apply(lambda x: x.date())\n",
"#Resetting index and grouping by commandline my Data set is ready for Investigation\n",
"plot_df=Explo_analysis_example_df.groupby(['Timestamp_date','Commandline']).size().reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "77fdfe5a-2a31-4bac-825e-e142104df6cf",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Timestamp_date | \n",
" Commandline | \n",
" 0 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2022-09-01 | \n",
" powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1'; | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" 2022-09-02 | \n",
" powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1'; | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" 2022-09-03 | \n",
" powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1'; | \n",
" 2 | \n",
"
\n",
" \n",
" 3 | \n",
" 2022-09-04 | \n",
" \"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\" | \n",
" 2 | \n",
"
\n",
" \n",
" 4 | \n",
" 2022-09-04 | \n",
" \"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Timestamp_date \\\n",
"0 2022-09-01 \n",
"1 2022-09-02 \n",
"2 2022-09-03 \n",
"3 2022-09-04 \n",
"4 2022-09-04 \n",
"\n",
" Commandline \\\n",
"0 powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1'; \n",
"1 powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1'; \n",
"2 powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1'; \n",
"3 \"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\" \n",
"4 \"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" \n",
"\n",
" 0 \n",
"0 4 \n",
"1 2 \n",
"2 2 \n",
"3 2 \n",
"4 2 "
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "2e75291a-eebd-48a4-a43a-2d547163b709",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1';
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1';",
"marker": {
"color": "#636efa",
"pattern": {
"shape": ""
}
},
"name": "powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1';",
"offsetgroup": "powershell.exe -ExecutionPolicy Restricted -Command Write-Host 'Final result: 1';",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-01",
"2022-09-02",
"2022-09-03",
"2022-09-04",
"2022-09-05",
"2022-09-06",
"2022-09-07",
"2022-09-08",
"2022-09-09",
"2022-09-10",
"2022-09-11",
"2022-09-12",
"2022-09-13",
"2022-09-14",
"2022-09-15",
"2022-09-16",
"2022-09-17",
"2022-09-18",
"2022-09-19",
"2022-09-20",
"2022-09-21",
"2022-09-22",
"2022-09-24",
"2022-09-25",
"2022-09-26",
"2022-09-27",
"2022-09-28",
"2022-09-29",
"2022-09-30",
"2022-10-01",
"2022-10-02",
"2022-10-03",
"2022-10-31",
"2022-11-01",
"2022-11-02",
"2022-11-03",
"2022-11-04",
"2022-11-06",
"2022-11-07",
"2022-11-08",
"2022-11-09",
"2022-11-14",
"2022-11-15",
"2022-11-16",
"2022-11-17"
],
"xaxis": "x",
"y": [
4,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
4,
2,
2,
2,
2,
2,
2,
2,
2,
2,
4,
2,
2,
2,
2,
2,
2,
2,
2,
4,
2,
2,
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=\"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\"
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "\"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\" ",
"marker": {
"color": "#EF553B",
"pattern": {
"shape": ""
}
},
"name": "\"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\" ",
"offsetgroup": "\"C:\\Windows\\SysWOW64\\WindowsPowerShell\\v1.0\\powershell.exe\" ",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-04"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\"
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" ",
"marker": {
"color": "#00cc96",
"pattern": {
"shape": ""
}
},
"name": "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" ",
"offsetgroup": "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" ",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-04",
"2022-09-25",
"2022-09-26",
"2022-09-29",
"2022-09-30",
"2022-10-01"
],
"xaxis": "x",
"y": [
2,
1,
2,
2,
6,
1
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Register-ScheduledTask -Force -TaskName 'npcapwatchdog' -Description 'Ensure Npcap service is configured to start at boot' -Action (New-ScheduledTaskAction -Execute 'C:\\Program Files\\Npcap\\CheckStatus.bat') -Principal (New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount) -Trigger (New-ScheduledTaskTrigger -AtStartup) -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8)\"
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Register-ScheduledTask -Force -TaskName 'npcapwatchdog' -Description 'Ensure Npcap service is configured to start at boot' -Action (New-ScheduledTaskAction -Execute 'C:\\Program Files\\Npcap\\CheckStatus.bat') -Principal (New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount) -Trigger (New-ScheduledTaskTrigger -AtStartup) -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8)\"",
"marker": {
"color": "#ab63fa",
"pattern": {
"shape": ""
}
},
"name": "powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Register-ScheduledTask -Force -TaskName 'npcapwatchdog' -Description 'Ensure Npcap service is configured to start at boot' -Action (New-ScheduledTaskAction -Execute 'C:\\Program Files\\Npcap\\CheckStatus.bat') -Principal (New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount) -Trigger (New-ScheduledTaskTrigger -AtStartup) -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8)\"",
"offsetgroup": "powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Register-ScheduledTask -Force -TaskName 'npcapwatchdog' -Description 'Ensure Npcap service is configured to start at boot' -Action (New-ScheduledTaskAction -Execute 'C:\\Program Files\\Npcap\\CheckStatus.bat') -Principal (New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount) -Trigger (New-ScheduledTaskTrigger -AtStartup) -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -Compatibility Win8)\"",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-07"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Start-Service -Name npcap -PassThru | Stop-Service -PassThru | Start-Service\"
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Start-Service -Name npcap -PassThru | Stop-Service -PassThru | Start-Service\"",
"marker": {
"color": "#FFA15A",
"pattern": {
"shape": ""
}
},
"name": "powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Start-Service -Name npcap -PassThru | Stop-Service -PassThru | Start-Service\"",
"offsetgroup": "powershell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"Start-Service -Name npcap -PassThru | Stop-Service -PassThru | Start-Service\"",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-07"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=\"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedCommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHgAIgApAC4AeAA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "\"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedCommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHgAIgApAC4AeAA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA",
"marker": {
"color": "#19d3f3",
"pattern": {
"shape": ""
}
},
"name": "\"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedCommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHgAIgApAC4AeAA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA",
"offsetgroup": "\"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedCommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHgAIgApAC4AeAA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-14",
"2022-09-15",
"2022-09-24",
"2022-10-01",
"2022-10-31",
"2022-11-10",
"2022-11-14",
"2022-11-16"
],
"xaxis": "x",
"y": [
1,
1,
1,
1,
4,
1,
4,
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHMAIgApAC4AcwA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHMAIgApAC4AcwA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA",
"marker": {
"color": "#FF6692",
"pattern": {
"shape": ""
}
},
"name": "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHMAIgApAC4AcwA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA",
"offsetgroup": "\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -encodedcommand JABoAD0AKABnAHAAIABIAEsATABNADoAXABTAFkAUwBUAEUATQBcAEMAdQByAHIAZQBuAHQAQwBvAG4AdAByAG8AbABTAGUAdABcAFMAZQByAHYAaQBjAGUAcwBcAFgAIAAiAHMAIgApAC4AcwA7ACQAaAAuAFMAcABsAGkAdAAoACIAIAAiACkAfABmAG8AcgBFAGEAYwBoAHsAWwBjAGgAYQByAF0AKABbAGMAbwBuAHYAZQByAHQAXQA6ADoAdABvAGkAbgB0ADEANgAoACQAXwAsADEANgApACkAfQB8AGYAbwByAEUAYQBjAGgAewAkAHIAPQAkAHIAKwAkAF8AfQA7AGkAZQB4ACAAJAByADsA",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-14",
"2022-09-15",
"2022-09-24",
"2022-10-01",
"2022-10-31",
"2022-11-10",
"2022-11-14",
"2022-11-16"
],
"xaxis": "x",
"y": [
1,
1,
1,
1,
4,
1,
4,
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell ",
"marker": {
"color": "#B6E880",
"pattern": {
"shape": ""
}
},
"name": "powershell ",
"offsetgroup": "powershell ",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-26"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell -nop .\\Desktop\\Initial_Dropper.ps1
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell -nop .\\Desktop\\Initial_Dropper.ps1",
"marker": {
"color": "#FF97FF",
"pattern": {
"shape": ""
}
},
"name": "powershell -nop .\\Desktop\\Initial_Dropper.ps1",
"offsetgroup": "powershell -nop .\\Desktop\\Initial_Dropper.ps1",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-26"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=Powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\neo4j.ps1\" install-service
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "Powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\neo4j.ps1\" install-service",
"marker": {
"color": "#FECB52",
"pattern": {
"shape": ""
}
},
"name": "Powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\neo4j.ps1\" install-service",
"offsetgroup": "Powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -File \"C:\\Users\\stushar\\Downloads\\neo4j-community-4.4.11\\bin\\neo4j.ps1\" install-service",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-27"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell.exe -OutputFormat Text -ExecutionPolicy Bypass -Command \"Get-Service neo4j | Format-Table -AutoSize\"
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell.exe -OutputFormat Text -ExecutionPolicy Bypass -Command \"Get-Service neo4j | Format-Table -AutoSize\"",
"marker": {
"color": "#636efa",
"pattern": {
"shape": ""
}
},
"name": "powershell.exe -OutputFormat Text -ExecutionPolicy Bypass -Command \"Get-Service neo4j | Format-Table -AutoSize\"",
"offsetgroup": "powershell.exe -OutputFormat Text -ExecutionPolicy Bypass -Command \"Get-Service neo4j | Format-Table -AutoSize\"",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-09-27"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"marker": {
"color": "#EF553B",
"pattern": {
"shape": ""
}
},
"name": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"offsetgroup": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-10-03",
"2022-10-04"
],
"xaxis": "x",
"y": [
6,
2
],
"yaxis": "y"
},
{
"alignmentgroup": "True",
"hovertemplate": "Commandline=powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command \"& { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; & 'c:\\Users\\Leolabs-win\\.vscode\\extensions\\ms-dotnettools.vscode-dotnet-runtime-1.5.0\\dist\\install scripts\\dotnet-install.ps1' -InstallDir 'c:\\Users\\Leolabs-win\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-dotnettools.vscode-dotnet-runtime\\.dotnet\\6.0.9' -Version 6.0.9 -Runtime dotnet }
Timestamp_date=%{x}
0=%{y}",
"legendgroup": "powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command \"& { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; & 'c:\\Users\\Leolabs-win\\.vscode\\extensions\\ms-dotnettools.vscode-dotnet-runtime-1.5.0\\dist\\install scripts\\dotnet-install.ps1' -InstallDir 'c:\\Users\\Leolabs-win\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-dotnettools.vscode-dotnet-runtime\\.dotnet\\6.0.9' -Version 6.0.9 -Runtime dotnet }",
"marker": {
"color": "#00cc96",
"pattern": {
"shape": ""
}
},
"name": "powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command \"& { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; & 'c:\\Users\\Leolabs-win\\.vscode\\extensions\\ms-dotnettools.vscode-dotnet-runtime-1.5.0\\dist\\install scripts\\dotnet-install.ps1' -InstallDir 'c:\\Users\\Leolabs-win\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-dotnettools.vscode-dotnet-runtime\\.dotnet\\6.0.9' -Version 6.0.9 -Runtime dotnet }",
"offsetgroup": "powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command \"& { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; & 'c:\\Users\\Leolabs-win\\.vscode\\extensions\\ms-dotnettools.vscode-dotnet-runtime-1.5.0\\dist\\install scripts\\dotnet-install.ps1' -InstallDir 'c:\\Users\\Leolabs-win\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-dotnettools.vscode-dotnet-runtime\\.dotnet\\6.0.9' -Version 6.0.9 -Runtime dotnet }",
"orientation": "v",
"showlegend": true,
"textposition": "auto",
"type": "bar",
"x": [
"2022-10-03"
],
"xaxis": "x",
"y": [
2
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"barmode": "relative",
"legend": {
"title": {
"text": "Commandline"
},
"tracegroupgap": 0
},
"showlegend": false,
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Exploraing CommandLine Executions occurances to identify outliers"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
"2022-08-31 12:00",
"2022-11-17 12:00"
],
"showticklabels": true,
"title": {
"text": "Timestamp_date"
},
"type": "date",
"visible": true
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
12.631578947368421
],
"showticklabels": false,
"title": {
"text": "0"
},
"type": "linear",
"visible": true
}
}
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABrsAAALQCAYAAAAgicuZAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3X2wbWdd2PHn3JckN+EawqtESSqgxIpKFcW26lDfi+NQmZFqtb51KNWiozIwxBlrta1BGNSxjpYiWHwXp8yIEutYFfFlQNtKra0UBN8wQPSGkEBuknvvOZ196c7s7Ox9zrOe33OevdZ6PvlLYT3PWuvzW/vcsL9377N3cHBwkPxDgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYIICe2LXBKfmkgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBC4LiF0eBAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgckKiF2THZ0LJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQELs8AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABApMVELsmOzoXToAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIHZ5BggQIECAAAECBAgQIECAAAECBAgQIECAAAECBCYrIHZNdnQunAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQOzyDBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECExWQOya7OhcOAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgNjlGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEJisgNg12dG5cAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAbHLM0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIDBZAbFrsqNz4QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAmKXZ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCyAmLXZEfnwgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBMQuzwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMBkBcSuyY7OhRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECIhdngECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHJCohdkx2dCydAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBC7PAMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKTFRC7Jjs6F06AAAECBAgQIECAAAECBAgQIECAAAECBAgQICB2eQYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQmKyB2TXZ0LpwAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQEDs8gwQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhMVkDsmuzoXDgBAgQIECBAgAABAgQIECBAgAABAgQIECBAgIDY5RkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCYrIDYNdnRuXACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAGxyzNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwWQGxa7Kjc+EECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJil2eAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgsgJi12RH58IJECBAgAABAgQIECBAgAABAgQIECBAgAABAgTELs8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAZAXErsmOzoUTIECAAAECBAgQIECAAAECBAgQIECAAAECBAiIXZ4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgACByQqIXZMdnQsnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQuzwDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECkxUQuyY7usMv/P0fuDt9w4u/P336U29K3/a858z0Lt1WC4HX3fqm9NpffGP6kZd8a7ru2rMtTukcBAjMWOCdf35bet6LXp5uufm56dOeetOo7vT7XvHa9KqfufXyNX3x535G+q4Xfn06c9UVo7rGwy5mcf2/99a3+Xk9mYm5UAIECBAgQIAAAQIECBAgQKCWgNhVS3LDPsvg9L/++F0bz/K4xz4yveKlL0hPvPH66lcxhti1eNPt1l9/y7HdYy7atjn8s694phCYgbgeu87fe3/6zpe9+vLKw94IXqz7jpe+Ov2nH3hx8ze0l9f4hl9789Y73MV1ZXA/5JBtb14vn+sbrn/M5N6QL3Gwpo7AccaQ3J/5rWLX0NfOcdrUmd6Hd1n6fePXPCs9+5mf/aCt1+/Bz4ma8vYiQIAAAQIECBAgQIAAAQIExiwgdh3jdHYZnHZ57iVp7hufxziCtAwu62Fr6bM4t08sHT6BKceuxZ1N7ZMZ69MY+ob9cb6e7D19geMMOrk/88cY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QIAAAQIECBAgQIAAAQIECMxXQOya72zdGQECBAgQIECAAAECBAgQIECAAAECBAgQIEBg9gJi1+xH7AYJECBAgAABAgQIECBAgAABAgQIECBAgAABAvMVELvmO1t3RoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCYvYDYNfsRu0ECBAgQIECAAAECBAgQIECAAAECBAgQIECAwHwFxK75ztadESBAgAABAgQIECBAgAABAgQIECBAgAABAgRmLyB2zX7EbpAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMF8BsWu+s3VnBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHZC4hdsx+xGyRAgAABAgQIECBAgAABAgQIECBAgAABAgQIzFdA7JrvbN0ZAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGD2AmLX7EfsBgkQIECAAAECBAgQIECAAAECBAgQIECAAAEC8xUQu+Y7W3dGgAABAgQIECBAgAABAgQIECBAgAABAgQIEJi9gNg1+xG7QQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAfAXErvnO1p0RIECAAAECBAgQIECAAAECBAgQIECAAAECBGYvIHbNfsRukAABAgQIECBAgAABAgQIECBAgAABAgQIECAwXwGxa76zdWcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdkLiF2zH7EbJECAAAECBAgQIECAAAECBAgQIECAAAECBAjMV0Dsmu9s3RkBAgQIECBAgAABAgQIECBAgAABAgQIECBAYPYCYtfsR+wGCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLzFRC75jtbd0aAAAECBAgQIECAAAECBAgQIECAAAECBAgQmL2A2DX7EbtBAgQIECBAgAABAgQIECBAgAABAgQIECBAgMB8BcSu+c7WnREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEZi8gds1+xG6QAAECBAgQIECAAAECBAgQIECAAAECBAgQIDBfAbFrvrN1ZwQIECBAgAABAgQIECBAgAABAgQIECBAgACB2QuIXbMfsRskQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECMxXQOya72zdGQECBAgQIECAAAECBAgQIECAAAECBAgQIEBg9gJi1+xH7AYJECBAgAABAgQIECBAgAABAgQIECBAgAABAvMVELvmO1t3RoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCYvYDYNfsRu0ECBAgQIECAAAECBAgQIECAAAECBAgQIECAwHwFxK75ztadESBAgAABAgQIECBAgAABAgQIECBAgAABAgRmLyB2zX7EbpAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMF8BsWu+s3VnBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHZC4hdsx+xGyRAgAABAgQIECBAgAABAgQIECBAgAABAgQIzFdA7JrvbN0ZAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGD2AmLX7EfsBgkQIECAAAECBAgQIECAAAECBAgQIECAAAEC8xUQu+Y7W3dGgAABAgQIECBAgAABAgQIECBAgAABAgQIEJi9gNg1+xG7QQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAfAXErvnO1p0RIECAAAECBAgQIECAAAECBAgQIECAAAECBGYvIHbNfsRukAABAgQIECBAgAABAgQIECBAgAABAgQIECAwXwGxa76zdWcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdkLiF2zH7EbJECAAAECBAgQIECAAAECBAgQIECAAAECBAjMV0Dsmu9s3RkBAgQIECBAgAABAgQIECBAgAABAgQIECBAYPYCYtfsR+wGCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLzFRC75jtbd0aAAAECBAgQIECAAAECBAgQIECAAAECBAgQmL2A2DX7EbtBAgQIECBAgAABAgQIECBAgAABAgQIECBAgMB8BcSu+c7WnREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEZi8gds1+xG6QAAECBAgQIECAAAECBAgQIECAAAECBAgQIDBfAbErONvbzp0P7mA5AQIECBAgQIAAAQIECBAgQIAAAQIECBAg0LPA9Y880/Pth+9d7AoSil1BQMsJECBAgAABAgQIECBAgAABAgQIECBAgEDnAmJX7AEQu2J+SewKAlpOgAABAgQIECBAgAABAgQIECBAgAABAgQ6FxC7Yg+A2BXzE7uCfpYTIECAAAECBAgQIECAAAECBAgQIECAAIHeBcSu2BMgdsX8xK6gn+UECBAgQIAAAQIECBAgQIAAAQIECBAgQKB3AbEr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EhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKjEhC7wuMQu/IJxa58K0cSIECAAAECFQXEroqYtiJAQOyq9wyIXTFLsSvmJ3YF/SwnQIAAAQKj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CBAgQIAAAQIEGiMgdjVmK90IAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGD+CYhd82/P3TEBAgQIECBAgAABAgQIECBAgAABAgQIECBAoDECYldjttKNECBAgAABAgQIECBAgAABAgQIECBAgAABAgTmn4DYNf/23B0TIECAAAECBAgQIECAAAECBAgQIECAAAECBBojIHY1ZivdCAECBAgQIECAAAECBAgQIECAAAECBAgQIEBg/gmIXfNvz90xAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAxAmJXY7bSjRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE5p+A2DX/9twdEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQaIyB2NWYr3QgBAgQIECBAgAABAgQIECBAgAABAgQIECBAYP4JiF3zb8/dMQECBAgQIECAAAECBAgQIECAAAECBAgQIECgMQJiV2O20o0QIECAAAECBAgQIECAAAECBAgQIECAAAECBOafgNg1//bcHRMgQIAAAQIECBAgMA8F/vGbt8UHLr06PvTed8byw5bOQwG3TIAAAQIECBAgQIBAUwXErqburPsiQIAAAQIECBAgMIcFPnXdV+L33nfZHq/wyNUr49L3vSv+5dYfxNXXfvlJDTTda73xG9+OP3j322LJQYvmsOreLy0bu7LrhxbGhRMgQIAAAQIECBAgMPQCYtfQb6EbIECAAAECBAgQIDDcAtse2x6///7L4rRTT4xzznrxnLsZscsrwebcULogAgQIECBAgAABAgR2ExC7DAQBAgQIECBAgAABAk+qwN5i1/TQ1L3IbhT7NyceH//67R/GZ//uxvHr/qX/cFb84lteE+94zwfjlu/8aPzP/vC33/aEcPbHl14df/Gx68b/fe+VY8evPWr8n39454Z4+29/IO65d/Nu//6BB7fEhb/53t18eueefr7ugpOfc9xur0DrXXv3ei/571eNn6O35vKPf27yWl778tMmXzX24E8eHr+PX7ng9fGZG74+eY+z3c++Nq13rp7JzGucec/T3Wb7d13n33r7m8c/7cxX5n3kT94Tzz/l2fu6JP+eAAECBAgQIECAAAEC+0VA7NovrE5KgAABAgQIECBAgECpQDZ2/fO3vj/+FofdUNWLMt3PNf3PfveSD8cfXXzR+JruRzdMdT96sab7Fn0XX/Lh8WNWHL50PDC96+1vngw23X+/fsOm8WC2p1d2/fmV18bLX3Tqbp9j46YHJsNVLwj1QlXvPruRbuaf9V7V1gtU9z/wkyfc4yUXX1QclHrnefPrXjoZ/Wa+LWHX7u+++o34j2993bhNz7L3efb0NoYzPWYeV7rv1hEgQIAAAQIECBAgQGBQAmLXoCSdhwABAgQIECBAgACBKoFs7Jr+doezHTvzz7ox5v1/9vG45HcuiuWHLR2/xulrnvtTJ8TMODb9RkrfxnDm55ntuH392WOPP/6E8Na9lpmxbl/Qs32ekt/B1f08Tz9mzXggm219N6Jd/J8/HO/+lbdMRr6a69vX9fv3BAgQIECAAAECBAgQyAiIXRktawkQIECAAAECBAgQGLjA/o5d3Wgz860IezfRfYXVa1522vjbI/beFnHmWwbuKXZNf6VW73zT3x5xX2FryUGLxg+bvm5Psas0uPWuY7Y4Nlu8ms2m93aFs62f7e0Ne59z+tscDnxInJAAAQIECBAgQIAAAQJ7ERC7jAcBAgQIECBAgAABAk+qwIGIXR+49Ordfp/WbDc8M171otdsoakXfc562Qsn3xqx+2fTXyH2ZMeu3iu0evc6M151g9h1X/yHybdL7K6bHsn2FLv29iq4J3WQfHICBAgQIECAAAECBOatgNg1b7fejRMgQIAAAQIECBCYGwL7O3bNjFAldz0z+nzy2i9P/i6u7vHdEDTzz/Zn7Mq+jeG+Xtl10OLF469me9PrXrrb7wGbftxsb//Y+11g03+/WYmnNQQIECBAgAABAgQIENifAmLX/tR1bgIECBAgQIAAAQIE9imwv2NX7/x3bdi026u7uq+8OuaoVePX99V/+NfJV2jNvJ5uRcSx0AAABFdJREFU2Lr4kg/v9gqomX/WO+afv/X9yXWDemXXbJ9/X6gzw1svUnWP+9B73xm92LVm1YrJ++69pWHv7Qh7r1675OKLnhDEZr4irHvs+g2bxn/Xlw8CBAgQIECAAAECBAgcaAGx60CL+3wECBAgQIAAAQIECOwmsL9jV++TdV+19Bcfu27yc5/8nOPGw0/34x3v+WDc8p0fTf67mb9/avqx09/e8Pfed9n4Md3f1fXud/x8XP7xz8UfXXxRHL/2qN1+F9dsv59rb7+za/q1TP89YJnRmf77uLr3+os/f2Zc/onrJ4NfL4D1Plf3nnsfv/X2N4//z26w693jdJPpf967/0vf967x+/ZBgAABAgQIECBAgACBAy0gdh1ocZ+PAAECBAgQIECAAAECexDwNoFGgwABAgQIECBAgAABAnkBsStv5ggCBAgQIECAAAECBAjsF4F9xa6Zr6ia7SJ6rzzbLxfopAQIECBAgAABAgQIEJiDAmLXHNwUl0SAAAECBAgQIECAwPwU2Ffsmp8q7poAAQIECBAgQIAAAQJ7FxC7TAgBAgQIECBAgAABAgQIECBAgAABAgQIECBAgMDQCohdQ7t1LpwAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQEDsMgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJDKyB2De3WuXACBAgQIECAAAECBAgQIECAAAECBAgQIECAAAGxywwQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgMrYDYNbRb58IJECBAgAABAgQIECBAgAABAgQIECBAgAABAgTELjNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwtAJi19BunQsnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQu8wAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDA0AqIXUO7dS6cAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBA7DIDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECQysgdg3t1rlwAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABscsMECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIDK2A2DW0W+fCCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIExC4zQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMLQCYtfQbp0LJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQELvMAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwNAKiF1Du3UunAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQOwyAwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkMrIHYN7da5cAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAbHLDBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAytwP8PIHVEKKGfZ60AAAAASUVORK5CYII=",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import plotly.express as px\n",
"fig = px.bar(plot_df, x=\"Timestamp_date\", y=0, color=\"Commandline\", title=\"Exploraing CommandLine Executions occurances to identify outliers\")\n",
"fig.update_layout(yaxis={'visible': True, 'showticklabels': False})\n",
"fig.update_layout(xaxis={'visible': True, 'showticklabels': True})\n",
"fig.layout.showlegend = False\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"id": "9fb477c2-6ce6-4f83-8b9d-991fc2f33b39",
"metadata": {},
"source": [
"#### Use-Case - Case-Management- bleeding into the Lifecycle !!! \n",
"* We'll use theHive Case Management solution for the Demo"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "b1949746-e43c-4922-908e-e3029d2716f4",
"metadata": {},
"outputs": [],
"source": [
"#import the required libraries - you can have jira/servicenow or any other Case management tools and use their apis to perform the same functions.\n",
"from thehive4py.api import TheHiveApi\n",
"from thehive4py.models import Alert, AlertArtifact, CustomFieldHelper\n",
"from thehive4py.models import Case, CaseObservable\n",
"THEHIVE_URL = 'http://192.168.0.107:9000'\n",
"THEHIVE_API_KEY = '6EyENjxqrFATV0S9zU99jxxjCAARFzCj'\n",
"api = TheHiveApi(THEHIVE_URL, THEHIVE_API_KEY)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "de8d9cc3-d9f0-4c83-b0fd-90ea5ede6b8d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pushing to Create a new case\n",
"-----------------------------\n",
"{\n",
" \"customFields\": {},\n",
" \"description\": \"Based on the Hunt, we observed suspicious Powershell COmmandline, malicious IP address communication and Deviation from the Baseline activity.\",\n",
" \"flag\": false,\n",
" \"id\": null,\n",
" \"metrics\": {},\n",
" \"owner\": null,\n",
" \"pap\": 2,\n",
" \"severity\": 2,\n",
" \"startDate\": 1669825472000,\n",
" \"tags\": [\n",
" \"Jupyterthon2022,Hunt,Powershell\"\n",
" ],\n",
" \"tasks\": [],\n",
" \"template\": null,\n",
" \"title\": \"Hunt: Suspicious Powershell Observation\",\n",
" \"tlp\": 2\n",
"}\n",
"{\n",
" \"_id\": \"~49216\",\n",
" \"_type\": \"case\",\n",
" \"caseId\": 3,\n",
" \"createdAt\": 1669825472677,\n",
" \"createdBy\": \"sakshamtushar@gmail.com\",\n",
" \"customFields\": {},\n",
" \"description\": \"Based on the Hunt, we observed suspicious Powershell COmmandline, malicious IP address communication and Deviation from the Baseline activity.\",\n",
" \"endDate\": null,\n",
" \"flag\": false,\n",
" \"id\": \"~49216\",\n",
" \"impactStatus\": null,\n",
" \"owner\": \"sakshamtushar@gmail.com\",\n",
" \"pap\": 2,\n",
" \"permissions\": [\n",
" \"manageShare\",\n",
" \"manageAnalyse\",\n",
" \"manageTask\",\n",
" \"manageCaseTemplate\",\n",
" \"manageCase\",\n",
" \"manageUser\",\n",
" \"manageProcedure\",\n",
" \"managePage\",\n",
" \"manageObservable\",\n",
" \"manageTag\",\n",
" \"manageConfig\",\n",
" \"manageAlert\",\n",
" \"accessTheHiveFS\",\n",
" \"manageAction\"\n",
" ],\n",
" \"resolutionStatus\": null,\n",
" \"severity\": 2,\n",
" \"startDate\": 1669825472000,\n",
" \"stats\": {},\n",
" \"status\": \"Open\",\n",
" \"summary\": null,\n",
" \"tags\": [\n",
" \"Jupyterthon2022,Hunt,Powershell\"\n",
" ],\n",
" \"title\": \"Hunt: Suspicious Powershell Observation\",\n",
" \"tlp\": 2,\n",
" \"updatedAt\": null,\n",
" \"updatedBy\": null\n",
"}\n",
"\n",
"Create observable\n",
"-----------------------------\n",
"[\n",
" {\n",
" \"_id\": \"~24728\",\n",
" \"_type\": \"case_artifact\",\n",
" \"createdAt\": 1669825474375,\n",
" \"createdBy\": \"sakshamtushar@gmail.com\",\n",
" \"data\": \"58.158.177.102\",\n",
" \"dataType\": \"ip\",\n",
" \"id\": \"~24728\",\n",
" \"ioc\": true,\n",
" \"message\": \"test\",\n",
" \"reports\": {},\n",
" \"sighted\": false,\n",
" \"startDate\": 1669825474375,\n",
" \"stats\": {},\n",
" \"tags\": [\n",
" \"Hunt - Powershell, Malicious IP\"\n",
" ],\n",
" \"tlp\": 1\n",
" }\n",
"]\n",
"\n"
]
}
],
"source": [
"#creating the case \n",
"print('Pushing to Create a new case')\n",
"print('-----------------------------')\n",
"case = Case(title='Hunt: Suspicious Powershell Observation', description='Based on the Hunt, we observed suspicious Powershell COmmandline, malicious IP address communication and Deviation from the Baseline activity.', tlp=2, tags=['Jupyterthon2022,Hunt,Powershell'])\n",
"print(case.jsonify())\n",
"\n",
"response = api.create_case(case)\n",
"if response.status_code == 201:\n",
" print(json.dumps(response.json(), indent=4, sort_keys=True))\n",
" print('')\n",
" id = response.json()['id']\n",
"else:\n",
" print('ko: {}/{}'.format(response.status_code, response.text))\n",
" sys.exit(0)\n",
"\n",
"\n",
"print('Create observable IP')\n",
"print('-----------------------------')\n",
"domain = CaseObservable(dataType='ip',\n",
" data=['58.158.177.102'],\n",
" tlp=1,\n",
" ioc=True,\n",
" tags=['Hunt - Powershell, Malicious IP'],\n",
" message='test'\n",
" )\n",
"response = api.create_case_observable(id, domain)\n",
"if response.status_code == 201:\n",
" print(json.dumps(response.json(), indent=4, sort_keys=True))\n",
" print('')\n",
"else:\n",
" print('ko: {}/{}'.format(response.status_code, response.text))\n",
" sys.exit(0)\n",
" \n",
"print('Create observable Other Details')\n",
"print('-----------------------------')\n",
"domain = CaseObservable(dataType='other',\n",
" data=['Suspicious IP Connection pattern to 58.158.177.102 is observed-IP reputation is Poor','Susspisi'],\n",
" tlp=1,\n",
" ioc=True,\n",
" tags=['Hunt - Powershell, Malicious IP'],\n",
" message='test'\n",
" )\n",
"response = api.create_case_observable(id, domain)\n",
"if response.status_code == 201:\n",
" print(json.dumps(response.json(), indent=4, sort_keys=True))\n",
" print('')\n",
"else:\n",
" print('ko: {}/{}'.format(response.status_code, response.text))\n",
" sys.exit(0)"
]
},
{
"cell_type": "markdown",
"id": "41f8f4de-38be-458e-95a3-97ceb319470b",
"metadata": {},
"source": [
"#### More Tips & use-cases\n",
"* Tip : Wrap all your reusable functions into a seperate python file -> Import and call them in all your notebooks wherever needed\n",
"* Tip : Schedule your notebooks to perform periodic hunts/Data Analysis reports\n",
"* Tip : Write a Web-server to call Notebooks on Demand or Use CLoud services like AWS Sagemaker to Make it API Driven.\n",
"* Usecase : Correlation - More Events from your security layers from Zeek/Suricata,Threat Intelligence Platform, MITRE, Firewall\n",
"* Usecase : Containment Action, call your EDR/Tools api to contain a Host or Perform netowrk isolation"
]
},
{
"cell_type": "markdown",
"id": "8f6e9f26-59d4-4d2e-a951-871be901e31c",
"metadata": {},
"source": [
"### What you've acheived by Using Jupyter Notebooks for conducting this Analysis : \n",
"* What investigation was performed. \n",
"* Notebook as tactical Investigation Report\n",
"* ReUsable Notebook - Variables not Constants\n",
"* You Can Draft your : \n",
" * Hunting Notebook\n",
" * Data Analysis Notebook \n",
" * Investigation Notebook \n",
" * Response Notebook \n",
" * Detection Notebooks\n",
" * Threat Intelligence Tracking Notebooks "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "196127a3-0cc7-47d5-b85d-1ac8ad1b5aaa",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.9.5 64-bit",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
},
"vscode": {
"interpreter": {
"hash": "d5578407454ed8b46d5a520aa891bfa98d54062902a5b11199a67e3a266b6c1b"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}