feat: add examples and imporve ui
Browse files
tdagent/tools/get_domain_information.py
CHANGED
|
@@ -325,39 +325,44 @@ def retrieve_ioc_from_threatfox(potentially_ioc: str) -> str:
|
|
| 325 |
|
| 326 |
geo_location_tool = gr.Interface(
|
| 327 |
fn=get_geolocation,
|
| 328 |
-
inputs=
|
| 329 |
-
outputs="
|
| 330 |
title="Domain Associated Geolocation Finder",
|
| 331 |
description="Retrieves the geolocation associated to an input ip address",
|
| 332 |
theme="default",
|
|
|
|
| 333 |
)
|
| 334 |
|
| 335 |
dns_enumeration_tool = gr.Interface(
|
| 336 |
fn=enumerate_dns,
|
| 337 |
-
inputs=
|
| 338 |
-
outputs="
|
| 339 |
title="DNS record enumerator of domains",
|
| 340 |
description="Retrieves several dns record types for the input domain names",
|
| 341 |
theme="default",
|
|
|
|
| 342 |
)
|
| 343 |
|
| 344 |
scrap_subdomains_tool = gr.Interface(
|
| 345 |
fn=scrap_subdomains_for_domain,
|
| 346 |
-
inputs=
|
| 347 |
-
outputs="
|
| 348 |
title="Subdomains Extractor of domains",
|
| 349 |
description="Retrieves the subdomains for the input domain if they are common",
|
| 350 |
theme="default",
|
|
|
|
| 351 |
)
|
| 352 |
|
| 353 |
extractor_of_ioc_from_threatfox_tool = gr.Interface(
|
| 354 |
fn=retrieve_ioc_from_threatfox,
|
| 355 |
-
inputs=
|
| 356 |
-
outputs="
|
| 357 |
title="IoC information extractor associated to particular entities",
|
| 358 |
description=(
|
| 359 |
"If information as an Indicator of Compromise (IoC) exists "
|
| 360 |
"for the input url, domain or hash, it retrieves it"
|
| 361 |
),
|
| 362 |
theme="default",
|
|
|
|
|
|
|
| 363 |
)
|
|
|
|
| 325 |
|
| 326 |
geo_location_tool = gr.Interface(
|
| 327 |
fn=get_geolocation,
|
| 328 |
+
inputs=gr.Textbox(label="ip"),
|
| 329 |
+
outputs=gr.JSON(label="Geolocation of IP"),
|
| 330 |
title="Domain Associated Geolocation Finder",
|
| 331 |
description="Retrieves the geolocation associated to an input ip address",
|
| 332 |
theme="default",
|
| 333 |
+
examples=["1.0.3.255", "59.34.7.3"],
|
| 334 |
)
|
| 335 |
|
| 336 |
dns_enumeration_tool = gr.Interface(
|
| 337 |
fn=enumerate_dns,
|
| 338 |
+
inputs=gr.Textbox(label="domain"),
|
| 339 |
+
outputs=gr.JSON(label="DNS records"),
|
| 340 |
title="DNS record enumerator of domains",
|
| 341 |
description="Retrieves several dns record types for the input domain names",
|
| 342 |
theme="default",
|
| 343 |
+
examples=["owasp.org", "nist.gov"],
|
| 344 |
)
|
| 345 |
|
| 346 |
scrap_subdomains_tool = gr.Interface(
|
| 347 |
fn=scrap_subdomains_for_domain,
|
| 348 |
+
inputs=gr.Textbox(label="domain"),
|
| 349 |
+
outputs=gr.JSON(label="Subdomains managed by domain"),
|
| 350 |
title="Subdomains Extractor of domains",
|
| 351 |
description="Retrieves the subdomains for the input domain if they are common",
|
| 352 |
theme="default",
|
| 353 |
+
examples=["github.com", "netacea.com"],
|
| 354 |
)
|
| 355 |
|
| 356 |
extractor_of_ioc_from_threatfox_tool = gr.Interface(
|
| 357 |
fn=retrieve_ioc_from_threatfox,
|
| 358 |
+
inputs=gr.Textbox(label="IoC - url, domains or hash"),
|
| 359 |
+
outputs=gr.Text(label="Entity information as an IoC"),
|
| 360 |
title="IoC information extractor associated to particular entities",
|
| 361 |
description=(
|
| 362 |
"If information as an Indicator of Compromise (IoC) exists "
|
| 363 |
"for the input url, domain or hash, it retrieves it"
|
| 364 |
),
|
| 365 |
theme="default",
|
| 366 |
+
examples=["advertipros.com", "dev.couplesparks.com"],
|
| 367 |
+
example_labels=["๐พ IoC 1", "๐พ IoC 2"],
|
| 368 |
)
|
tdagent/tools/get_url_content.py
CHANGED
|
@@ -51,13 +51,16 @@ def get_url_http_content(
|
|
| 51 |
|
| 52 |
gr_get_url_http_content = gr.Interface(
|
| 53 |
fn=get_url_http_content,
|
| 54 |
-
inputs=["
|
| 55 |
-
outputs="
|
| 56 |
title="Get the content of a URL using an HTTP GET request.",
|
| 57 |
description=(
|
| 58 |
"Get the content of a URL in one of the specified content types."
|
| 59 |
" The server may not honor the content type and if it fails the"
|
| 60 |
" reason should also be returned with the corresponding HTTP"
|
| 61 |
-
" error code."
|
| 62 |
),
|
|
|
|
|
|
|
|
|
|
| 63 |
)
|
|
|
|
| 51 |
|
| 52 |
gr_get_url_http_content = gr.Interface(
|
| 53 |
fn=get_url_http_content,
|
| 54 |
+
inputs=[gr.Textbox(label="url"), gr.Textbox(label="content type")],
|
| 55 |
+
outputs=gr.Text(label="content"),
|
| 56 |
title="Get the content of a URL using an HTTP GET request.",
|
| 57 |
description=(
|
| 58 |
"Get the content of a URL in one of the specified content types."
|
| 59 |
" The server may not honor the content type and if it fails the"
|
| 60 |
" reason should also be returned with the corresponding HTTP"
|
| 61 |
+
" error code. Be wary of retrieving the content of malicious urls."
|
| 62 |
),
|
| 63 |
+
examples=[
|
| 64 |
+
["https://google.com", "html"],
|
| 65 |
+
],
|
| 66 |
)
|
tdagent/tools/query_abuse_ip_db.py
CHANGED
|
@@ -156,11 +156,13 @@ def query_abuseipdb(ip_address: str, days: int = 30) -> str:
|
|
| 156 |
|
| 157 |
gr_query_abuseipdb = gr.Interface(
|
| 158 |
fn=query_abuseipdb,
|
| 159 |
-
inputs=
|
| 160 |
-
outputs="
|
| 161 |
title="AbuseIPDB IP Checker",
|
| 162 |
description=(
|
| 163 |
"Check if an IP address has been reported for abusive behavior"
|
| 164 |
" using AbuseIP DB API"
|
| 165 |
),
|
|
|
|
|
|
|
| 166 |
)
|
|
|
|
| 156 |
|
| 157 |
gr_query_abuseipdb = gr.Interface(
|
| 158 |
fn=query_abuseipdb,
|
| 159 |
+
inputs=gr.Textbox(label="ip"),
|
| 160 |
+
outputs=gr.Text(label="Report on abusive behaviour"),
|
| 161 |
title="AbuseIPDB IP Checker",
|
| 162 |
description=(
|
| 163 |
"Check if an IP address has been reported for abusive behavior"
|
| 164 |
" using AbuseIP DB API"
|
| 165 |
),
|
| 166 |
+
examples=["5.252.155.14", "77.239.99.248"],
|
| 167 |
+
example_labels=["๐พ Malicious IP 1", "๐พ Malicious IP 2"],
|
| 168 |
)
|
tdagent/tools/rdap.py
CHANGED
|
@@ -102,8 +102,9 @@ def query_rdap( # noqa: PLR0911
|
|
| 102 |
|
| 103 |
gr_query_rdap = gr.Interface(
|
| 104 |
fn=query_rdap,
|
| 105 |
-
inputs=
|
| 106 |
-
outputs="
|
| 107 |
title="Get RDAP information for a given URL.",
|
| 108 |
description="Query a RDAP database to gather information about a url or domain.",
|
|
|
|
| 109 |
)
|
|
|
|
| 102 |
|
| 103 |
gr_query_rdap = gr.Interface(
|
| 104 |
fn=query_rdap,
|
| 105 |
+
inputs=gr.Textbox(label="url or ip"),
|
| 106 |
+
outputs=gr.JSON(label="Report from RDAP"),
|
| 107 |
title="Get RDAP information for a given URL.",
|
| 108 |
description="Query a RDAP database to gather information about a url or domain.",
|
| 109 |
+
examples=["8.8.8.8", "pastebin.com"],
|
| 110 |
)
|
tdagent/tools/retrieve_from_mitre_attack.py
CHANGED
|
@@ -42,11 +42,18 @@ def get_stix_object_of_attack_id(
|
|
| 42 |
|
| 43 |
gr_get_stix_of_attack_id = gr.Interface(
|
| 44 |
fn=get_stix_object_of_attack_id,
|
| 45 |
-
inputs=[
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
| 47 |
title="MITRE ATT&CK STIX information",
|
| 48 |
description=(
|
| 49 |
"Retrieves a specific STIX object identified by an ATT&CK ID across all ATT&CK"
|
| 50 |
" matrices"
|
| 51 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
)
|
|
|
|
| 42 |
|
| 43 |
gr_get_stix_of_attack_id = gr.Interface(
|
| 44 |
fn=get_stix_object_of_attack_id,
|
| 45 |
+
inputs=[
|
| 46 |
+
gr.Textbox(label="Mitre technique ID"),
|
| 47 |
+
gr.Textbox(label="Mitre object type"),
|
| 48 |
+
],
|
| 49 |
+
outputs=gr.JSON(label="Mitre report"),
|
| 50 |
title="MITRE ATT&CK STIX information",
|
| 51 |
description=(
|
| 52 |
"Retrieves a specific STIX object identified by an ATT&CK ID across all ATT&CK"
|
| 53 |
" matrices"
|
| 54 |
),
|
| 55 |
+
examples=[
|
| 56 |
+
["T1568.002", "attack-pattern"],
|
| 57 |
+
["M1042", "course-of-action"],
|
| 58 |
+
],
|
| 59 |
)
|
tdagent/tools/virus_total.py
CHANGED
|
@@ -69,8 +69,10 @@ Cache Status: Hit
|
|
| 69 |
|
| 70 |
gr_virus_total_url_info = gr.Interface(
|
| 71 |
fn=get_virus_total_url_info,
|
| 72 |
-
inputs=
|
| 73 |
-
outputs="
|
| 74 |
title="VirusTotal URL Scanner",
|
| 75 |
description="Get URL Info from VirusTotal URL Scanner. Scan URL is not available",
|
|
|
|
|
|
|
| 76 |
)
|
|
|
|
| 69 |
|
| 70 |
gr_virus_total_url_info = gr.Interface(
|
| 71 |
fn=get_virus_total_url_info,
|
| 72 |
+
inputs=gr.Textbox(label="url"),
|
| 73 |
+
outputs=gr.Text(label="VirusTotal report"),
|
| 74 |
title="VirusTotal URL Scanner",
|
| 75 |
description="Get URL Info from VirusTotal URL Scanner. Scan URL is not available",
|
| 76 |
+
examples=["https://advertipros.com//?u=script", "https://google.com"],
|
| 77 |
+
example_labels=["๐พ Malicious URL", "๐งโ๐ป Benign URL"],
|
| 78 |
)
|