domain_tools_rod (#5)
Browse files- build: update dependencies (1c6e88d9c66188ba8c0defe1ef75a86fa55a21b8)
- feat: add tools and interfaces to inspect domains (dc8fed07898d310f9ae83f65cdb1a3a47f559832)
- feat: add tools (1fbf466dca5c9cc8729ccc9633828e679b1d9848)
- feat: add tools to app (35aff7c1b7c710519a5d82c8cf86adba26f2fb3a)
- Merge branch 'main' into pr/5 (e7e6c15215589f9c781732dc0dbffe1fb84e7868)
Co-authored-by: Rodrigo Domínguez Sanz <RodDoSanz@users.noreply.huggingface.co>
- app.py +10 -0
- pyproject.toml +1 -0
- requirements-dev.txt +200 -0
- requirements.txt +151 -23
- subdomains/subdomains.txt +999 -0
- tdagent/tools/get_domain_information.py +334 -0
- uv.lock +0 -0
app.py
CHANGED
|
@@ -2,6 +2,12 @@ from typing import NamedTuple
|
|
| 2 |
|
| 3 |
import gradio as gr
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
from tdagent.tools.get_url_content import gr_get_url_http_content
|
| 6 |
from tdagent.tools.internal_company_user_search import gr_internal_company
|
| 7 |
from tdagent.tools.lookup_company_cloud_account_information import (
|
|
@@ -33,6 +39,10 @@ TOOLS = (
|
|
| 33 |
# ToolInfo("Query WHOIS", gr_query_whois),
|
| 34 |
ToolInfo("Query RDAP", gr_query_rdap),
|
| 35 |
ToolInfo("Virus Total URL info", gr_virus_total_url_info),
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
## Fake tools
|
| 37 |
ToolInfo("Fake company directory", gr_internal_company),
|
| 38 |
ToolInfo(
|
|
|
|
| 2 |
|
| 3 |
import gradio as gr
|
| 4 |
|
| 5 |
+
from tdagent.tools.get_domain_information import (
|
| 6 |
+
dns_enumeration_tool,
|
| 7 |
+
extractor_of_ioc_from_threatfox_tool,
|
| 8 |
+
geo_location_tool,
|
| 9 |
+
scrap_subdomains_tool,
|
| 10 |
+
)
|
| 11 |
from tdagent.tools.get_url_content import gr_get_url_http_content
|
| 12 |
from tdagent.tools.internal_company_user_search import gr_internal_company
|
| 13 |
from tdagent.tools.lookup_company_cloud_account_information import (
|
|
|
|
| 39 |
# ToolInfo("Query WHOIS", gr_query_whois),
|
| 40 |
ToolInfo("Query RDAP", gr_query_rdap),
|
| 41 |
ToolInfo("Virus Total URL info", gr_virus_total_url_info),
|
| 42 |
+
ToolInfo("Get IP's Location", geo_location_tool),
|
| 43 |
+
ToolInfo("DNS Enumerator", dns_enumeration_tool),
|
| 44 |
+
ToolInfo("Subdomain Retriever", scrap_subdomains_tool),
|
| 45 |
+
ToolInfo("Extractor of IoCs", extractor_of_ioc_from_threatfox_tool),
|
| 46 |
## Fake tools
|
| 47 |
ToolInfo("Fake company directory", gr_internal_company),
|
| 48 |
ToolInfo(
|
pyproject.toml
CHANGED
|
@@ -14,6 +14,7 @@ readme = "README.md"
|
|
| 14 |
license = ""
|
| 15 |
dependencies = [
|
| 16 |
"cachetools>=6.0.0",
|
|
|
|
| 17 |
"gradio[mcp]>=5.32.1",
|
| 18 |
"python-whois>=0.9.5",
|
| 19 |
"requests>=2.32.3",
|
|
|
|
| 14 |
license = ""
|
| 15 |
dependencies = [
|
| 16 |
"cachetools>=6.0.0",
|
| 17 |
+
"dnspython>=2.7.0",
|
| 18 |
"gradio[mcp]>=5.32.1",
|
| 19 |
"python-whois>=0.9.5",
|
| 20 |
"requests>=2.32.3",
|
requirements-dev.txt
CHANGED
|
@@ -1,109 +1,309 @@
|
|
| 1 |
# This file was autogenerated by uv via the following command:
|
| 2 |
# uv export --format requirements-txt --no-hashes --group dev --group test -o requirements-dev.txt
|
| 3 |
aiofiles==24.1.0
|
|
|
|
|
|
|
|
|
|
| 4 |
aiohappyeyeballs==2.6.1
|
|
|
|
| 5 |
aiohttp==3.12.8
|
|
|
|
| 6 |
aiosignal==1.3.2
|
|
|
|
| 7 |
annotated-types==0.7.0
|
|
|
|
| 8 |
anyio==4.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
async-timeout==5.0.1 ; python_full_version < '3.11'
|
|
|
|
| 10 |
attrs==25.3.0
|
|
|
|
| 11 |
audioop-lts==0.2.1 ; python_full_version >= '3.13'
|
|
|
|
| 12 |
boolean-py==5.0
|
|
|
|
| 13 |
cachecontrol==0.14.3
|
|
|
|
| 14 |
cachetools==6.0.0
|
|
|
|
| 15 |
certifi==2025.4.26
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
cfgv==3.4.0
|
|
|
|
| 17 |
charset-normalizer==3.4.2
|
|
|
|
| 18 |
click==8.2.1 ; sys_platform != 'emscripten'
|
|
|
|
|
|
|
|
|
|
| 19 |
colorama==0.4.6 ; sys_platform == 'win32'
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
coverage==7.8.2
|
|
|
|
| 21 |
cyclonedx-python-lib==9.1.0
|
|
|
|
| 22 |
defusedxml==0.7.1
|
|
|
|
| 23 |
distlib==0.3.9
|
|
|
|
|
|
|
|
|
|
| 24 |
exceptiongroup==1.3.0 ; python_full_version < '3.11'
|
|
|
|
|
|
|
|
|
|
| 25 |
fastapi==0.115.12
|
|
|
|
| 26 |
ffmpy==0.6.0
|
|
|
|
| 27 |
filelock==3.18.0
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
frozenlist==1.6.2
|
|
|
|
|
|
|
|
|
|
| 29 |
fsspec==2025.5.1
|
|
|
|
|
|
|
|
|
|
| 30 |
gradio==5.32.1
|
|
|
|
| 31 |
gradio-client==1.10.2
|
|
|
|
| 32 |
groovy==0.1.2
|
|
|
|
| 33 |
h11==0.16.0
|
|
|
|
|
|
|
|
|
|
| 34 |
hf-xet==1.1.2 ; platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'
|
|
|
|
| 35 |
httpcore==1.0.9
|
|
|
|
| 36 |
httpx==0.28.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
httpx-sse==0.4.0
|
|
|
|
| 38 |
huggingface-hub==0.32.4
|
|
|
|
|
|
|
|
|
|
| 39 |
identify==2.6.12
|
|
|
|
| 40 |
idna==3.10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
iniconfig==2.1.0
|
|
|
|
| 42 |
jinja2==3.1.6
|
|
|
|
| 43 |
license-expression==30.4.1
|
|
|
|
| 44 |
markdown-it-py==3.0.0
|
|
|
|
| 45 |
markupsafe==3.0.2
|
|
|
|
|
|
|
|
|
|
| 46 |
mcp==1.9.0
|
|
|
|
| 47 |
mdurl==0.1.2
|
|
|
|
| 48 |
msgpack==1.1.0
|
|
|
|
| 49 |
multidict==6.4.4
|
|
|
|
|
|
|
|
|
|
| 50 |
mypy==1.16.0
|
| 51 |
mypy-extensions==1.1.0
|
|
|
|
| 52 |
nodeenv==1.9.1
|
|
|
|
| 53 |
numpy==2.2.6
|
|
|
|
|
|
|
|
|
|
| 54 |
orjson==3.10.18
|
|
|
|
| 55 |
packageurl-python==0.16.0
|
|
|
|
| 56 |
packaging==25.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
pandas==2.2.3
|
|
|
|
| 58 |
pathspec==0.12.1
|
|
|
|
| 59 |
pillow==11.2.1
|
|
|
|
| 60 |
pip==25.1.1
|
|
|
|
| 61 |
pip-api==0.0.34
|
|
|
|
| 62 |
pip-audit==2.9.0
|
| 63 |
pip-requirements-parser==32.0.1
|
|
|
|
| 64 |
platformdirs==4.3.8
|
|
|
|
|
|
|
|
|
|
| 65 |
pluggy==1.6.0
|
|
|
|
| 66 |
pre-commit==3.8.0
|
| 67 |
propcache==0.3.1
|
|
|
|
|
|
|
|
|
|
| 68 |
py-serializable==2.0.0
|
|
|
|
| 69 |
pydantic==2.11.5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
pydantic-core==2.33.2
|
|
|
|
| 71 |
pydantic-settings==2.9.1
|
|
|
|
| 72 |
pydub==0.25.1
|
|
|
|
| 73 |
pygments==2.19.1
|
|
|
|
| 74 |
pyparsing==3.2.3
|
|
|
|
| 75 |
pytest==7.4.4
|
|
|
|
|
|
|
|
|
|
| 76 |
pytest-cov==4.1.0
|
| 77 |
pytest-randomly==3.16.0
|
| 78 |
python-dateutil==2.9.0.post0
|
|
|
|
|
|
|
|
|
|
| 79 |
python-dotenv==1.1.0
|
|
|
|
| 80 |
python-multipart==0.0.20
|
|
|
|
|
|
|
|
|
|
| 81 |
python-whois==0.9.5
|
|
|
|
| 82 |
pytz==2025.2
|
|
|
|
| 83 |
pyyaml==6.0.2
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
requests==2.32.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
rich==14.0.0
|
|
|
|
|
|
|
|
|
|
| 86 |
ruff==0.11.12
|
|
|
|
| 87 |
safehttpx==0.1.6
|
|
|
|
| 88 |
semantic-version==2.10.0
|
|
|
|
| 89 |
shellingham==1.5.4 ; sys_platform != 'emscripten'
|
|
|
|
| 90 |
six==1.17.0
|
|
|
|
| 91 |
sniffio==1.3.1
|
|
|
|
| 92 |
sortedcontainers==2.4.0
|
|
|
|
| 93 |
sse-starlette==2.3.6
|
|
|
|
| 94 |
starlette==0.46.2
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
toml==0.10.2
|
|
|
|
| 96 |
tomli==2.2.1 ; python_full_version <= '3.11'
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
tomlkit==0.13.2
|
|
|
|
| 98 |
tqdm==4.67.1
|
|
|
|
| 99 |
typer==0.16.0 ; sys_platform != 'emscripten'
|
|
|
|
| 100 |
typing-extensions==4.14.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
typing-inspection==0.4.1
|
|
|
|
|
|
|
|
|
|
| 102 |
tzdata==2025.2
|
|
|
|
| 103 |
urllib3==2.4.0
|
|
|
|
|
|
|
|
|
|
| 104 |
uvicorn==0.34.3 ; sys_platform != 'emscripten'
|
|
|
|
|
|
|
|
|
|
| 105 |
virtualenv==20.31.2
|
|
|
|
| 106 |
vt-py==0.21.0
|
|
|
|
| 107 |
websockets==15.0.1
|
|
|
|
| 108 |
xdoctest==1.2.0
|
| 109 |
yarl==1.20.0
|
|
|
|
|
|
| 1 |
# This file was autogenerated by uv via the following command:
|
| 2 |
# uv export --format requirements-txt --no-hashes --group dev --group test -o requirements-dev.txt
|
| 3 |
aiofiles==24.1.0
|
| 4 |
+
# via
|
| 5 |
+
# gradio
|
| 6 |
+
# vt-py
|
| 7 |
aiohappyeyeballs==2.6.1
|
| 8 |
+
# via aiohttp
|
| 9 |
aiohttp==3.12.8
|
| 10 |
+
# via vt-py
|
| 11 |
aiosignal==1.3.2
|
| 12 |
+
# via aiohttp
|
| 13 |
annotated-types==0.7.0
|
| 14 |
+
# via pydantic
|
| 15 |
anyio==4.9.0
|
| 16 |
+
# via
|
| 17 |
+
# gradio
|
| 18 |
+
# httpx
|
| 19 |
+
# mcp
|
| 20 |
+
# sse-starlette
|
| 21 |
+
# starlette
|
| 22 |
async-timeout==5.0.1 ; python_full_version < '3.11'
|
| 23 |
+
# via aiohttp
|
| 24 |
attrs==25.3.0
|
| 25 |
+
# via aiohttp
|
| 26 |
audioop-lts==0.2.1 ; python_full_version >= '3.13'
|
| 27 |
+
# via gradio
|
| 28 |
boolean-py==5.0
|
| 29 |
+
# via license-expression
|
| 30 |
cachecontrol==0.14.3
|
| 31 |
+
# via pip-audit
|
| 32 |
cachetools==6.0.0
|
| 33 |
+
# via tdagent
|
| 34 |
certifi==2025.4.26
|
| 35 |
+
# via
|
| 36 |
+
# httpcore
|
| 37 |
+
# httpx
|
| 38 |
+
# requests
|
| 39 |
cfgv==3.4.0
|
| 40 |
+
# via pre-commit
|
| 41 |
charset-normalizer==3.4.2
|
| 42 |
+
# via requests
|
| 43 |
click==8.2.1 ; sys_platform != 'emscripten'
|
| 44 |
+
# via
|
| 45 |
+
# typer
|
| 46 |
+
# uvicorn
|
| 47 |
colorama==0.4.6 ; sys_platform == 'win32'
|
| 48 |
+
# via
|
| 49 |
+
# click
|
| 50 |
+
# pytest
|
| 51 |
+
# tqdm
|
| 52 |
coverage==7.8.2
|
| 53 |
+
# via pytest-cov
|
| 54 |
cyclonedx-python-lib==9.1.0
|
| 55 |
+
# via pip-audit
|
| 56 |
defusedxml==0.7.1
|
| 57 |
+
# via py-serializable
|
| 58 |
distlib==0.3.9
|
| 59 |
+
# via virtualenv
|
| 60 |
+
dnspython==2.7.0
|
| 61 |
+
# via tdagent
|
| 62 |
exceptiongroup==1.3.0 ; python_full_version < '3.11'
|
| 63 |
+
# via
|
| 64 |
+
# anyio
|
| 65 |
+
# pytest
|
| 66 |
fastapi==0.115.12
|
| 67 |
+
# via gradio
|
| 68 |
ffmpy==0.6.0
|
| 69 |
+
# via gradio
|
| 70 |
filelock==3.18.0
|
| 71 |
+
# via
|
| 72 |
+
# cachecontrol
|
| 73 |
+
# huggingface-hub
|
| 74 |
+
# virtualenv
|
| 75 |
frozenlist==1.6.2
|
| 76 |
+
# via
|
| 77 |
+
# aiohttp
|
| 78 |
+
# aiosignal
|
| 79 |
fsspec==2025.5.1
|
| 80 |
+
# via
|
| 81 |
+
# gradio-client
|
| 82 |
+
# huggingface-hub
|
| 83 |
gradio==5.32.1
|
| 84 |
+
# via tdagent
|
| 85 |
gradio-client==1.10.2
|
| 86 |
+
# via gradio
|
| 87 |
groovy==0.1.2
|
| 88 |
+
# via gradio
|
| 89 |
h11==0.16.0
|
| 90 |
+
# via
|
| 91 |
+
# httpcore
|
| 92 |
+
# uvicorn
|
| 93 |
hf-xet==1.1.2 ; platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'
|
| 94 |
+
# via huggingface-hub
|
| 95 |
httpcore==1.0.9
|
| 96 |
+
# via httpx
|
| 97 |
httpx==0.28.1
|
| 98 |
+
# via
|
| 99 |
+
# gradio
|
| 100 |
+
# gradio-client
|
| 101 |
+
# mcp
|
| 102 |
+
# safehttpx
|
| 103 |
httpx-sse==0.4.0
|
| 104 |
+
# via mcp
|
| 105 |
huggingface-hub==0.32.4
|
| 106 |
+
# via
|
| 107 |
+
# gradio
|
| 108 |
+
# gradio-client
|
| 109 |
identify==2.6.12
|
| 110 |
+
# via pre-commit
|
| 111 |
idna==3.10
|
| 112 |
+
# via
|
| 113 |
+
# anyio
|
| 114 |
+
# httpx
|
| 115 |
+
# requests
|
| 116 |
+
# yarl
|
| 117 |
iniconfig==2.1.0
|
| 118 |
+
# via pytest
|
| 119 |
jinja2==3.1.6
|
| 120 |
+
# via gradio
|
| 121 |
license-expression==30.4.1
|
| 122 |
+
# via cyclonedx-python-lib
|
| 123 |
markdown-it-py==3.0.0
|
| 124 |
+
# via rich
|
| 125 |
markupsafe==3.0.2
|
| 126 |
+
# via
|
| 127 |
+
# gradio
|
| 128 |
+
# jinja2
|
| 129 |
mcp==1.9.0
|
| 130 |
+
# via gradio
|
| 131 |
mdurl==0.1.2
|
| 132 |
+
# via markdown-it-py
|
| 133 |
msgpack==1.1.0
|
| 134 |
+
# via cachecontrol
|
| 135 |
multidict==6.4.4
|
| 136 |
+
# via
|
| 137 |
+
# aiohttp
|
| 138 |
+
# yarl
|
| 139 |
mypy==1.16.0
|
| 140 |
mypy-extensions==1.1.0
|
| 141 |
+
# via mypy
|
| 142 |
nodeenv==1.9.1
|
| 143 |
+
# via pre-commit
|
| 144 |
numpy==2.2.6
|
| 145 |
+
# via
|
| 146 |
+
# gradio
|
| 147 |
+
# pandas
|
| 148 |
orjson==3.10.18
|
| 149 |
+
# via gradio
|
| 150 |
packageurl-python==0.16.0
|
| 151 |
+
# via cyclonedx-python-lib
|
| 152 |
packaging==25.0
|
| 153 |
+
# via
|
| 154 |
+
# gradio
|
| 155 |
+
# gradio-client
|
| 156 |
+
# huggingface-hub
|
| 157 |
+
# pip-audit
|
| 158 |
+
# pip-requirements-parser
|
| 159 |
+
# pytest
|
| 160 |
pandas==2.2.3
|
| 161 |
+
# via gradio
|
| 162 |
pathspec==0.12.1
|
| 163 |
+
# via mypy
|
| 164 |
pillow==11.2.1
|
| 165 |
+
# via gradio
|
| 166 |
pip==25.1.1
|
| 167 |
+
# via pip-api
|
| 168 |
pip-api==0.0.34
|
| 169 |
+
# via pip-audit
|
| 170 |
pip-audit==2.9.0
|
| 171 |
pip-requirements-parser==32.0.1
|
| 172 |
+
# via pip-audit
|
| 173 |
platformdirs==4.3.8
|
| 174 |
+
# via
|
| 175 |
+
# pip-audit
|
| 176 |
+
# virtualenv
|
| 177 |
pluggy==1.6.0
|
| 178 |
+
# via pytest
|
| 179 |
pre-commit==3.8.0
|
| 180 |
propcache==0.3.1
|
| 181 |
+
# via
|
| 182 |
+
# aiohttp
|
| 183 |
+
# yarl
|
| 184 |
py-serializable==2.0.0
|
| 185 |
+
# via cyclonedx-python-lib
|
| 186 |
pydantic==2.11.5
|
| 187 |
+
# via
|
| 188 |
+
# fastapi
|
| 189 |
+
# gradio
|
| 190 |
+
# mcp
|
| 191 |
+
# pydantic-settings
|
| 192 |
pydantic-core==2.33.2
|
| 193 |
+
# via pydantic
|
| 194 |
pydantic-settings==2.9.1
|
| 195 |
+
# via mcp
|
| 196 |
pydub==0.25.1
|
| 197 |
+
# via gradio
|
| 198 |
pygments==2.19.1
|
| 199 |
+
# via rich
|
| 200 |
pyparsing==3.2.3
|
| 201 |
+
# via pip-requirements-parser
|
| 202 |
pytest==7.4.4
|
| 203 |
+
# via
|
| 204 |
+
# pytest-cov
|
| 205 |
+
# pytest-randomly
|
| 206 |
pytest-cov==4.1.0
|
| 207 |
pytest-randomly==3.16.0
|
| 208 |
python-dateutil==2.9.0.post0
|
| 209 |
+
# via
|
| 210 |
+
# pandas
|
| 211 |
+
# python-whois
|
| 212 |
python-dotenv==1.1.0
|
| 213 |
+
# via pydantic-settings
|
| 214 |
python-multipart==0.0.20
|
| 215 |
+
# via
|
| 216 |
+
# gradio
|
| 217 |
+
# mcp
|
| 218 |
python-whois==0.9.5
|
| 219 |
+
# via tdagent
|
| 220 |
pytz==2025.2
|
| 221 |
+
# via pandas
|
| 222 |
pyyaml==6.0.2
|
| 223 |
+
# via
|
| 224 |
+
# gradio
|
| 225 |
+
# huggingface-hub
|
| 226 |
+
# pre-commit
|
| 227 |
requests==2.32.3
|
| 228 |
+
# via
|
| 229 |
+
# cachecontrol
|
| 230 |
+
# huggingface-hub
|
| 231 |
+
# pip-audit
|
| 232 |
+
# tdagent
|
| 233 |
rich==14.0.0
|
| 234 |
+
# via
|
| 235 |
+
# pip-audit
|
| 236 |
+
# typer
|
| 237 |
ruff==0.11.12
|
| 238 |
+
# via gradio
|
| 239 |
safehttpx==0.1.6
|
| 240 |
+
# via gradio
|
| 241 |
semantic-version==2.10.0
|
| 242 |
+
# via gradio
|
| 243 |
shellingham==1.5.4 ; sys_platform != 'emscripten'
|
| 244 |
+
# via typer
|
| 245 |
six==1.17.0
|
| 246 |
+
# via python-dateutil
|
| 247 |
sniffio==1.3.1
|
| 248 |
+
# via anyio
|
| 249 |
sortedcontainers==2.4.0
|
| 250 |
+
# via cyclonedx-python-lib
|
| 251 |
sse-starlette==2.3.6
|
| 252 |
+
# via mcp
|
| 253 |
starlette==0.46.2
|
| 254 |
+
# via
|
| 255 |
+
# fastapi
|
| 256 |
+
# gradio
|
| 257 |
+
# mcp
|
| 258 |
toml==0.10.2
|
| 259 |
+
# via pip-audit
|
| 260 |
tomli==2.2.1 ; python_full_version <= '3.11'
|
| 261 |
+
# via
|
| 262 |
+
# coverage
|
| 263 |
+
# mypy
|
| 264 |
+
# pytest
|
| 265 |
tomlkit==0.13.2
|
| 266 |
+
# via gradio
|
| 267 |
tqdm==4.67.1
|
| 268 |
+
# via huggingface-hub
|
| 269 |
typer==0.16.0 ; sys_platform != 'emscripten'
|
| 270 |
+
# via gradio
|
| 271 |
typing-extensions==4.14.0
|
| 272 |
+
# via
|
| 273 |
+
# anyio
|
| 274 |
+
# exceptiongroup
|
| 275 |
+
# fastapi
|
| 276 |
+
# gradio
|
| 277 |
+
# gradio-client
|
| 278 |
+
# huggingface-hub
|
| 279 |
+
# multidict
|
| 280 |
+
# mypy
|
| 281 |
+
# pydantic
|
| 282 |
+
# pydantic-core
|
| 283 |
+
# rich
|
| 284 |
+
# typer
|
| 285 |
+
# typing-inspection
|
| 286 |
+
# uvicorn
|
| 287 |
typing-inspection==0.4.1
|
| 288 |
+
# via
|
| 289 |
+
# pydantic
|
| 290 |
+
# pydantic-settings
|
| 291 |
tzdata==2025.2
|
| 292 |
+
# via pandas
|
| 293 |
urllib3==2.4.0
|
| 294 |
+
# via
|
| 295 |
+
# gradio
|
| 296 |
+
# requests
|
| 297 |
uvicorn==0.34.3 ; sys_platform != 'emscripten'
|
| 298 |
+
# via
|
| 299 |
+
# gradio
|
| 300 |
+
# mcp
|
| 301 |
virtualenv==20.31.2
|
| 302 |
+
# via pre-commit
|
| 303 |
vt-py==0.21.0
|
| 304 |
+
# via tdagent
|
| 305 |
websockets==15.0.1
|
| 306 |
+
# via gradio-client
|
| 307 |
xdoctest==1.2.0
|
| 308 |
yarl==1.20.0
|
| 309 |
+
# via aiohttp
|
requirements.txt
CHANGED
|
@@ -1,84 +1,212 @@
|
|
| 1 |
# This file was autogenerated by uv via the following command:
|
| 2 |
-
# uv
|
| 3 |
aiofiles==24.1.0
|
|
|
|
|
|
|
|
|
|
| 4 |
aiohappyeyeballs==2.6.1
|
|
|
|
| 5 |
aiohttp==3.12.8
|
|
|
|
| 6 |
aiosignal==1.3.2
|
|
|
|
| 7 |
annotated-types==0.7.0
|
|
|
|
| 8 |
anyio==4.9.0
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
attrs==25.3.0
|
| 11 |
-
|
|
|
|
|
|
|
| 12 |
cachetools==6.0.0
|
|
|
|
| 13 |
certifi==2025.4.26
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
charset-normalizer==3.4.2
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
| 19 |
fastapi==0.115.12
|
|
|
|
| 20 |
ffmpy==0.6.0
|
|
|
|
| 21 |
filelock==3.18.0
|
|
|
|
| 22 |
frozenlist==1.6.2
|
|
|
|
|
|
|
|
|
|
| 23 |
fsspec==2025.5.1
|
|
|
|
|
|
|
|
|
|
| 24 |
gradio==5.32.1
|
|
|
|
| 25 |
gradio-client==1.10.2
|
|
|
|
| 26 |
groovy==0.1.2
|
|
|
|
| 27 |
h11==0.16.0
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
httpcore==1.0.9
|
|
|
|
| 30 |
httpx==0.28.1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
httpx-sse==0.4.0
|
|
|
|
| 32 |
huggingface-hub==0.32.4
|
|
|
|
|
|
|
|
|
|
| 33 |
idna==3.10
|
| 34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
jinja2==3.1.6
|
| 36 |
-
|
|
|
|
|
|
|
| 37 |
markupsafe==3.0.2
|
|
|
|
|
|
|
|
|
|
| 38 |
mcp==1.9.0
|
| 39 |
-
|
|
|
|
|
|
|
| 40 |
multidict==6.4.4
|
|
|
|
|
|
|
|
|
|
| 41 |
numpy==2.2.6
|
|
|
|
|
|
|
|
|
|
| 42 |
orjson==3.10.18
|
|
|
|
| 43 |
packaging==25.0
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
pandas==2.2.3
|
|
|
|
| 45 |
pillow==11.2.1
|
| 46 |
-
|
| 47 |
propcache==0.3.1
|
|
|
|
|
|
|
|
|
|
| 48 |
pydantic==2.11.5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
pydantic-core==2.33.2
|
|
|
|
| 50 |
pydantic-settings==2.9.1
|
|
|
|
| 51 |
pydub==0.25.1
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
pytest-randomly==3.16.0
|
| 56 |
python-dateutil==2.9.0.post0
|
|
|
|
|
|
|
|
|
|
| 57 |
python-dotenv==1.1.0
|
|
|
|
| 58 |
python-multipart==0.0.20
|
|
|
|
|
|
|
|
|
|
| 59 |
python-whois==0.9.5
|
|
|
|
| 60 |
pytz==2025.2
|
|
|
|
| 61 |
pyyaml==6.0.2
|
|
|
|
|
|
|
|
|
|
| 62 |
requests==2.32.3
|
| 63 |
-
|
| 64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
safehttpx==0.1.6
|
|
|
|
| 66 |
semantic-version==2.10.0
|
| 67 |
-
|
|
|
|
|
|
|
| 68 |
six==1.17.0
|
|
|
|
| 69 |
sniffio==1.3.1
|
|
|
|
| 70 |
sse-starlette==2.3.6
|
|
|
|
| 71 |
starlette==0.46.2
|
| 72 |
-
|
|
|
|
|
|
|
|
|
|
| 73 |
tomlkit==0.13.2
|
|
|
|
| 74 |
tqdm==4.67.1
|
| 75 |
-
|
|
|
|
|
|
|
| 76 |
typing-extensions==4.14.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
typing-inspection==0.4.1
|
|
|
|
|
|
|
|
|
|
| 78 |
tzdata==2025.2
|
|
|
|
| 79 |
urllib3==2.4.0
|
| 80 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
vt-py==0.21.0
|
|
|
|
| 82 |
websockets==15.0.1
|
| 83 |
-
|
| 84 |
yarl==1.20.0
|
|
|
|
|
|
| 1 |
# This file was autogenerated by uv via the following command:
|
| 2 |
+
# uv pip compile pyproject.toml -o requirements.txt
|
| 3 |
aiofiles==24.1.0
|
| 4 |
+
# via
|
| 5 |
+
# gradio
|
| 6 |
+
# vt-py
|
| 7 |
aiohappyeyeballs==2.6.1
|
| 8 |
+
# via aiohttp
|
| 9 |
aiohttp==3.12.8
|
| 10 |
+
# via vt-py
|
| 11 |
aiosignal==1.3.2
|
| 12 |
+
# via aiohttp
|
| 13 |
annotated-types==0.7.0
|
| 14 |
+
# via pydantic
|
| 15 |
anyio==4.9.0
|
| 16 |
+
# via
|
| 17 |
+
# gradio
|
| 18 |
+
# httpx
|
| 19 |
+
# mcp
|
| 20 |
+
# sse-starlette
|
| 21 |
+
# starlette
|
| 22 |
attrs==25.3.0
|
| 23 |
+
# via aiohttp
|
| 24 |
+
audioop-lts==0.2.1
|
| 25 |
+
# via gradio
|
| 26 |
cachetools==6.0.0
|
| 27 |
+
# via tdagent (pyproject.toml)
|
| 28 |
certifi==2025.4.26
|
| 29 |
+
# via
|
| 30 |
+
# httpcore
|
| 31 |
+
# httpx
|
| 32 |
+
# requests
|
| 33 |
charset-normalizer==3.4.2
|
| 34 |
+
# via requests
|
| 35 |
+
click==8.2.1
|
| 36 |
+
# via
|
| 37 |
+
# typer
|
| 38 |
+
# uvicorn
|
| 39 |
+
dnspython==2.7.0
|
| 40 |
+
# via tdagent (pyproject.toml)
|
| 41 |
fastapi==0.115.12
|
| 42 |
+
# via gradio
|
| 43 |
ffmpy==0.6.0
|
| 44 |
+
# via gradio
|
| 45 |
filelock==3.18.0
|
| 46 |
+
# via huggingface-hub
|
| 47 |
frozenlist==1.6.2
|
| 48 |
+
# via
|
| 49 |
+
# aiohttp
|
| 50 |
+
# aiosignal
|
| 51 |
fsspec==2025.5.1
|
| 52 |
+
# via
|
| 53 |
+
# gradio-client
|
| 54 |
+
# huggingface-hub
|
| 55 |
gradio==5.32.1
|
| 56 |
+
# via tdagent (pyproject.toml)
|
| 57 |
gradio-client==1.10.2
|
| 58 |
+
# via gradio
|
| 59 |
groovy==0.1.2
|
| 60 |
+
# via gradio
|
| 61 |
h11==0.16.0
|
| 62 |
+
# via
|
| 63 |
+
# httpcore
|
| 64 |
+
# uvicorn
|
| 65 |
+
hf-xet==1.1.2
|
| 66 |
+
# via huggingface-hub
|
| 67 |
httpcore==1.0.9
|
| 68 |
+
# via httpx
|
| 69 |
httpx==0.28.1
|
| 70 |
+
# via
|
| 71 |
+
# gradio
|
| 72 |
+
# gradio-client
|
| 73 |
+
# mcp
|
| 74 |
+
# safehttpx
|
| 75 |
httpx-sse==0.4.0
|
| 76 |
+
# via mcp
|
| 77 |
huggingface-hub==0.32.4
|
| 78 |
+
# via
|
| 79 |
+
# gradio
|
| 80 |
+
# gradio-client
|
| 81 |
idna==3.10
|
| 82 |
+
# via
|
| 83 |
+
# anyio
|
| 84 |
+
# httpx
|
| 85 |
+
# requests
|
| 86 |
+
# yarl
|
| 87 |
jinja2==3.1.6
|
| 88 |
+
# via gradio
|
| 89 |
+
markdown-it-py==3.0.0
|
| 90 |
+
# via rich
|
| 91 |
markupsafe==3.0.2
|
| 92 |
+
# via
|
| 93 |
+
# gradio
|
| 94 |
+
# jinja2
|
| 95 |
mcp==1.9.0
|
| 96 |
+
# via gradio
|
| 97 |
+
mdurl==0.1.2
|
| 98 |
+
# via markdown-it-py
|
| 99 |
multidict==6.4.4
|
| 100 |
+
# via
|
| 101 |
+
# aiohttp
|
| 102 |
+
# yarl
|
| 103 |
numpy==2.2.6
|
| 104 |
+
# via
|
| 105 |
+
# gradio
|
| 106 |
+
# pandas
|
| 107 |
orjson==3.10.18
|
| 108 |
+
# via gradio
|
| 109 |
packaging==25.0
|
| 110 |
+
# via
|
| 111 |
+
# gradio
|
| 112 |
+
# gradio-client
|
| 113 |
+
# huggingface-hub
|
| 114 |
pandas==2.2.3
|
| 115 |
+
# via gradio
|
| 116 |
pillow==11.2.1
|
| 117 |
+
# via gradio
|
| 118 |
propcache==0.3.1
|
| 119 |
+
# via
|
| 120 |
+
# aiohttp
|
| 121 |
+
# yarl
|
| 122 |
pydantic==2.11.5
|
| 123 |
+
# via
|
| 124 |
+
# fastapi
|
| 125 |
+
# gradio
|
| 126 |
+
# mcp
|
| 127 |
+
# pydantic-settings
|
| 128 |
pydantic-core==2.33.2
|
| 129 |
+
# via pydantic
|
| 130 |
pydantic-settings==2.9.1
|
| 131 |
+
# via mcp
|
| 132 |
pydub==0.25.1
|
| 133 |
+
# via gradio
|
| 134 |
+
pygments==2.19.1
|
| 135 |
+
# via rich
|
|
|
|
| 136 |
python-dateutil==2.9.0.post0
|
| 137 |
+
# via
|
| 138 |
+
# pandas
|
| 139 |
+
# python-whois
|
| 140 |
python-dotenv==1.1.0
|
| 141 |
+
# via pydantic-settings
|
| 142 |
python-multipart==0.0.20
|
| 143 |
+
# via
|
| 144 |
+
# gradio
|
| 145 |
+
# mcp
|
| 146 |
python-whois==0.9.5
|
| 147 |
+
# via tdagent (pyproject.toml)
|
| 148 |
pytz==2025.2
|
| 149 |
+
# via pandas
|
| 150 |
pyyaml==6.0.2
|
| 151 |
+
# via
|
| 152 |
+
# gradio
|
| 153 |
+
# huggingface-hub
|
| 154 |
requests==2.32.3
|
| 155 |
+
# via
|
| 156 |
+
# tdagent (pyproject.toml)
|
| 157 |
+
# huggingface-hub
|
| 158 |
+
rich==14.0.0
|
| 159 |
+
# via typer
|
| 160 |
+
ruff==0.11.12
|
| 161 |
+
# via gradio
|
| 162 |
safehttpx==0.1.6
|
| 163 |
+
# via gradio
|
| 164 |
semantic-version==2.10.0
|
| 165 |
+
# via gradio
|
| 166 |
+
shellingham==1.5.4
|
| 167 |
+
# via typer
|
| 168 |
six==1.17.0
|
| 169 |
+
# via python-dateutil
|
| 170 |
sniffio==1.3.1
|
| 171 |
+
# via anyio
|
| 172 |
sse-starlette==2.3.6
|
| 173 |
+
# via mcp
|
| 174 |
starlette==0.46.2
|
| 175 |
+
# via
|
| 176 |
+
# fastapi
|
| 177 |
+
# gradio
|
| 178 |
+
# mcp
|
| 179 |
tomlkit==0.13.2
|
| 180 |
+
# via gradio
|
| 181 |
tqdm==4.67.1
|
| 182 |
+
# via huggingface-hub
|
| 183 |
+
typer==0.16.0
|
| 184 |
+
# via gradio
|
| 185 |
typing-extensions==4.14.0
|
| 186 |
+
# via
|
| 187 |
+
# fastapi
|
| 188 |
+
# gradio
|
| 189 |
+
# gradio-client
|
| 190 |
+
# huggingface-hub
|
| 191 |
+
# pydantic
|
| 192 |
+
# pydantic-core
|
| 193 |
+
# typer
|
| 194 |
+
# typing-inspection
|
| 195 |
typing-inspection==0.4.1
|
| 196 |
+
# via
|
| 197 |
+
# pydantic
|
| 198 |
+
# pydantic-settings
|
| 199 |
tzdata==2025.2
|
| 200 |
+
# via pandas
|
| 201 |
urllib3==2.4.0
|
| 202 |
+
# via requests
|
| 203 |
+
uvicorn==0.34.3
|
| 204 |
+
# via
|
| 205 |
+
# gradio
|
| 206 |
+
# mcp
|
| 207 |
vt-py==0.21.0
|
| 208 |
+
# via tdagent (pyproject.toml)
|
| 209 |
websockets==15.0.1
|
| 210 |
+
# via gradio-client
|
| 211 |
yarl==1.20.0
|
| 212 |
+
# via aiohttp
|
subdomains/subdomains.txt
ADDED
|
@@ -0,0 +1,999 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
www
|
| 2 |
+
mail
|
| 3 |
+
ftp
|
| 4 |
+
localhost
|
| 5 |
+
webmail
|
| 6 |
+
smtp
|
| 7 |
+
pop
|
| 8 |
+
ns1
|
| 9 |
+
webdisk
|
| 10 |
+
ns2
|
| 11 |
+
cpanel
|
| 12 |
+
whm
|
| 13 |
+
autodiscover
|
| 14 |
+
autoconfig
|
| 15 |
+
m
|
| 16 |
+
imap
|
| 17 |
+
test
|
| 18 |
+
ns
|
| 19 |
+
blog
|
| 20 |
+
pop3
|
| 21 |
+
dev
|
| 22 |
+
www2
|
| 23 |
+
admin
|
| 24 |
+
forum
|
| 25 |
+
news
|
| 26 |
+
vpn
|
| 27 |
+
ns3
|
| 28 |
+
mail2
|
| 29 |
+
new
|
| 30 |
+
mysql
|
| 31 |
+
old
|
| 32 |
+
lists
|
| 33 |
+
support
|
| 34 |
+
mobile
|
| 35 |
+
mx
|
| 36 |
+
static
|
| 37 |
+
docs
|
| 38 |
+
beta
|
| 39 |
+
shop
|
| 40 |
+
sql
|
| 41 |
+
secure
|
| 42 |
+
demo
|
| 43 |
+
cp
|
| 44 |
+
calendar
|
| 45 |
+
wiki
|
| 46 |
+
web
|
| 47 |
+
media
|
| 48 |
+
email
|
| 49 |
+
images
|
| 50 |
+
img
|
| 51 |
+
www1
|
| 52 |
+
intranet
|
| 53 |
+
portal
|
| 54 |
+
video
|
| 55 |
+
sip
|
| 56 |
+
dns2
|
| 57 |
+
api
|
| 58 |
+
cdn
|
| 59 |
+
stats
|
| 60 |
+
dns1
|
| 61 |
+
ns4
|
| 62 |
+
www3
|
| 63 |
+
dns
|
| 64 |
+
search
|
| 65 |
+
staging
|
| 66 |
+
server
|
| 67 |
+
mx1
|
| 68 |
+
chat
|
| 69 |
+
wap
|
| 70 |
+
my
|
| 71 |
+
svn
|
| 72 |
+
mail1
|
| 73 |
+
sites
|
| 74 |
+
proxy
|
| 75 |
+
ads
|
| 76 |
+
host
|
| 77 |
+
crm
|
| 78 |
+
cms
|
| 79 |
+
backup
|
| 80 |
+
mx2
|
| 81 |
+
lyncdiscover
|
| 82 |
+
info
|
| 83 |
+
apps
|
| 84 |
+
download
|
| 85 |
+
remote
|
| 86 |
+
db
|
| 87 |
+
forums
|
| 88 |
+
store
|
| 89 |
+
relay
|
| 90 |
+
files
|
| 91 |
+
newsletter
|
| 92 |
+
app
|
| 93 |
+
live
|
| 94 |
+
owa
|
| 95 |
+
en
|
| 96 |
+
start
|
| 97 |
+
sms
|
| 98 |
+
office
|
| 99 |
+
exchange
|
| 100 |
+
ipv4
|
| 101 |
+
mail3
|
| 102 |
+
help
|
| 103 |
+
blogs
|
| 104 |
+
helpdesk
|
| 105 |
+
web1
|
| 106 |
+
home
|
| 107 |
+
library
|
| 108 |
+
ftp2
|
| 109 |
+
ntp
|
| 110 |
+
monitor
|
| 111 |
+
login
|
| 112 |
+
service
|
| 113 |
+
correo
|
| 114 |
+
www4
|
| 115 |
+
moodle
|
| 116 |
+
it
|
| 117 |
+
gateway
|
| 118 |
+
gw
|
| 119 |
+
i
|
| 120 |
+
stat
|
| 121 |
+
stage
|
| 122 |
+
ldap
|
| 123 |
+
tv
|
| 124 |
+
ssl
|
| 125 |
+
web2
|
| 126 |
+
ns5
|
| 127 |
+
upload
|
| 128 |
+
nagios
|
| 129 |
+
smtp2
|
| 130 |
+
online
|
| 131 |
+
ad
|
| 132 |
+
survey
|
| 133 |
+
data
|
| 134 |
+
radio
|
| 135 |
+
extranet
|
| 136 |
+
test2
|
| 137 |
+
mssql
|
| 138 |
+
dns3
|
| 139 |
+
jobs
|
| 140 |
+
services
|
| 141 |
+
panel
|
| 142 |
+
irc
|
| 143 |
+
hosting
|
| 144 |
+
cloud
|
| 145 |
+
de
|
| 146 |
+
gmail
|
| 147 |
+
s
|
| 148 |
+
bbs
|
| 149 |
+
cs
|
| 150 |
+
ww
|
| 151 |
+
mrtg
|
| 152 |
+
git
|
| 153 |
+
image
|
| 154 |
+
members
|
| 155 |
+
poczta
|
| 156 |
+
s1
|
| 157 |
+
meet
|
| 158 |
+
preview
|
| 159 |
+
fr
|
| 160 |
+
cloudflare-resolve-to
|
| 161 |
+
dev2
|
| 162 |
+
photo
|
| 163 |
+
jabber
|
| 164 |
+
legacy
|
| 165 |
+
go
|
| 166 |
+
es
|
| 167 |
+
ssh
|
| 168 |
+
redmine
|
| 169 |
+
partner
|
| 170 |
+
vps
|
| 171 |
+
server1
|
| 172 |
+
sv
|
| 173 |
+
ns6
|
| 174 |
+
webmail2
|
| 175 |
+
av
|
| 176 |
+
community
|
| 177 |
+
cacti
|
| 178 |
+
time
|
| 179 |
+
sftp
|
| 180 |
+
lib
|
| 181 |
+
facebook
|
| 182 |
+
www5
|
| 183 |
+
smtp1
|
| 184 |
+
feeds
|
| 185 |
+
w
|
| 186 |
+
games
|
| 187 |
+
ts
|
| 188 |
+
alumni
|
| 189 |
+
dl
|
| 190 |
+
s2
|
| 191 |
+
phpmyadmin
|
| 192 |
+
archive
|
| 193 |
+
cn
|
| 194 |
+
tools
|
| 195 |
+
stream
|
| 196 |
+
projects
|
| 197 |
+
elearning
|
| 198 |
+
im
|
| 199 |
+
iphone
|
| 200 |
+
control
|
| 201 |
+
voip
|
| 202 |
+
test1
|
| 203 |
+
ws
|
| 204 |
+
rss
|
| 205 |
+
sp
|
| 206 |
+
wwww
|
| 207 |
+
vpn2
|
| 208 |
+
jira
|
| 209 |
+
list
|
| 210 |
+
connect
|
| 211 |
+
gallery
|
| 212 |
+
billing
|
| 213 |
+
mailer
|
| 214 |
+
update
|
| 215 |
+
pda
|
| 216 |
+
game
|
| 217 |
+
ns0
|
| 218 |
+
testing
|
| 219 |
+
sandbox
|
| 220 |
+
job
|
| 221 |
+
events
|
| 222 |
+
dialin
|
| 223 |
+
ml
|
| 224 |
+
fb
|
| 225 |
+
videos
|
| 226 |
+
music
|
| 227 |
+
a
|
| 228 |
+
partners
|
| 229 |
+
mailhost
|
| 230 |
+
downloads
|
| 231 |
+
reports
|
| 232 |
+
ca
|
| 233 |
+
router
|
| 234 |
+
speedtest
|
| 235 |
+
local
|
| 236 |
+
training
|
| 237 |
+
edu
|
| 238 |
+
bugs
|
| 239 |
+
manage
|
| 240 |
+
s3
|
| 241 |
+
status
|
| 242 |
+
host2
|
| 243 |
+
ww2
|
| 244 |
+
marketing
|
| 245 |
+
conference
|
| 246 |
+
content
|
| 247 |
+
network-ip
|
| 248 |
+
broadcast-ip
|
| 249 |
+
english
|
| 250 |
+
catalog
|
| 251 |
+
msoid
|
| 252 |
+
mailadmin
|
| 253 |
+
pay
|
| 254 |
+
access
|
| 255 |
+
streaming
|
| 256 |
+
project
|
| 257 |
+
t
|
| 258 |
+
sso
|
| 259 |
+
alpha
|
| 260 |
+
photos
|
| 261 |
+
staff
|
| 262 |
+
e
|
| 263 |
+
auth
|
| 264 |
+
v2
|
| 265 |
+
web5
|
| 266 |
+
web3
|
| 267 |
+
mail4
|
| 268 |
+
devel
|
| 269 |
+
post
|
| 270 |
+
us
|
| 271 |
+
images2
|
| 272 |
+
master
|
| 273 |
+
rt
|
| 274 |
+
ftp1
|
| 275 |
+
qa
|
| 276 |
+
wp
|
| 277 |
+
dns4
|
| 278 |
+
www6
|
| 279 |
+
ru
|
| 280 |
+
student
|
| 281 |
+
w3
|
| 282 |
+
citrix
|
| 283 |
+
trac
|
| 284 |
+
doc
|
| 285 |
+
img2
|
| 286 |
+
css
|
| 287 |
+
mx3
|
| 288 |
+
adm
|
| 289 |
+
web4
|
| 290 |
+
hr
|
| 291 |
+
mailserver
|
| 292 |
+
travel
|
| 293 |
+
sharepoint
|
| 294 |
+
sport
|
| 295 |
+
member
|
| 296 |
+
bb
|
| 297 |
+
agenda
|
| 298 |
+
link
|
| 299 |
+
server2
|
| 300 |
+
vod
|
| 301 |
+
uk
|
| 302 |
+
fw
|
| 303 |
+
promo
|
| 304 |
+
vip
|
| 305 |
+
noc
|
| 306 |
+
design
|
| 307 |
+
temp
|
| 308 |
+
gate
|
| 309 |
+
ns7
|
| 310 |
+
file
|
| 311 |
+
ms
|
| 312 |
+
map
|
| 313 |
+
cache
|
| 314 |
+
painel
|
| 315 |
+
js
|
| 316 |
+
event
|
| 317 |
+
mailing
|
| 318 |
+
db1
|
| 319 |
+
c
|
| 320 |
+
auto
|
| 321 |
+
img1
|
| 322 |
+
vpn1
|
| 323 |
+
business
|
| 324 |
+
mirror
|
| 325 |
+
share
|
| 326 |
+
cdn2
|
| 327 |
+
site
|
| 328 |
+
maps
|
| 329 |
+
tickets
|
| 330 |
+
tracker
|
| 331 |
+
domains
|
| 332 |
+
club
|
| 333 |
+
images1
|
| 334 |
+
zimbra
|
| 335 |
+
cvs
|
| 336 |
+
b2b
|
| 337 |
+
oa
|
| 338 |
+
intra
|
| 339 |
+
zabbix
|
| 340 |
+
ns8
|
| 341 |
+
assets
|
| 342 |
+
main
|
| 343 |
+
spam
|
| 344 |
+
lms
|
| 345 |
+
social
|
| 346 |
+
faq
|
| 347 |
+
feedback
|
| 348 |
+
loopback
|
| 349 |
+
groups
|
| 350 |
+
m2
|
| 351 |
+
cas
|
| 352 |
+
loghost
|
| 353 |
+
xml
|
| 354 |
+
nl
|
| 355 |
+
research
|
| 356 |
+
art
|
| 357 |
+
munin
|
| 358 |
+
dev1
|
| 359 |
+
gis
|
| 360 |
+
sales
|
| 361 |
+
images3
|
| 362 |
+
report
|
| 363 |
+
google
|
| 364 |
+
idp
|
| 365 |
+
cisco
|
| 366 |
+
careers
|
| 367 |
+
seo
|
| 368 |
+
dc
|
| 369 |
+
lab
|
| 370 |
+
d
|
| 371 |
+
firewall
|
| 372 |
+
fs
|
| 373 |
+
eng
|
| 374 |
+
ann
|
| 375 |
+
mail01
|
| 376 |
+
mantis
|
| 377 |
+
v
|
| 378 |
+
affiliates
|
| 379 |
+
webconf
|
| 380 |
+
track
|
| 381 |
+
ticket
|
| 382 |
+
pm
|
| 383 |
+
db2
|
| 384 |
+
b
|
| 385 |
+
clients
|
| 386 |
+
tech
|
| 387 |
+
erp
|
| 388 |
+
monitoring
|
| 389 |
+
cdn1
|
| 390 |
+
images4
|
| 391 |
+
payment
|
| 392 |
+
origin
|
| 393 |
+
client
|
| 394 |
+
foto
|
| 395 |
+
domain
|
| 396 |
+
pt
|
| 397 |
+
pma
|
| 398 |
+
directory
|
| 399 |
+
cc
|
| 400 |
+
public
|
| 401 |
+
finance
|
| 402 |
+
ns11
|
| 403 |
+
test3
|
| 404 |
+
wordpress
|
| 405 |
+
corp
|
| 406 |
+
sslvpn
|
| 407 |
+
cal
|
| 408 |
+
mailman
|
| 409 |
+
book
|
| 410 |
+
ip
|
| 411 |
+
zeus
|
| 412 |
+
ns10
|
| 413 |
+
hermes
|
| 414 |
+
storage
|
| 415 |
+
free
|
| 416 |
+
static1
|
| 417 |
+
pbx
|
| 418 |
+
banner
|
| 419 |
+
mobil
|
| 420 |
+
kb
|
| 421 |
+
mail5
|
| 422 |
+
direct
|
| 423 |
+
ipfixe
|
| 424 |
+
wifi
|
| 425 |
+
development
|
| 426 |
+
board
|
| 427 |
+
ns01
|
| 428 |
+
st
|
| 429 |
+
reviews
|
| 430 |
+
radius
|
| 431 |
+
pro
|
| 432 |
+
atlas
|
| 433 |
+
links
|
| 434 |
+
in
|
| 435 |
+
oldmail
|
| 436 |
+
register
|
| 437 |
+
s4
|
| 438 |
+
images6
|
| 439 |
+
static2
|
| 440 |
+
id
|
| 441 |
+
shopping
|
| 442 |
+
drupal
|
| 443 |
+
analytics
|
| 444 |
+
m1
|
| 445 |
+
images5
|
| 446 |
+
images7
|
| 447 |
+
img3
|
| 448 |
+
mx01
|
| 449 |
+
www7
|
| 450 |
+
redirect
|
| 451 |
+
sitebuilder
|
| 452 |
+
smtp3
|
| 453 |
+
adserver
|
| 454 |
+
net
|
| 455 |
+
user
|
| 456 |
+
forms
|
| 457 |
+
outlook
|
| 458 |
+
press
|
| 459 |
+
vc
|
| 460 |
+
health
|
| 461 |
+
work
|
| 462 |
+
mb
|
| 463 |
+
mm
|
| 464 |
+
f
|
| 465 |
+
pgsql
|
| 466 |
+
jp
|
| 467 |
+
sports
|
| 468 |
+
preprod
|
| 469 |
+
g
|
| 470 |
+
p
|
| 471 |
+
mdm
|
| 472 |
+
ar
|
| 473 |
+
lync
|
| 474 |
+
market
|
| 475 |
+
dbadmin
|
| 476 |
+
barracuda
|
| 477 |
+
affiliate
|
| 478 |
+
mars
|
| 479 |
+
users
|
| 480 |
+
images8
|
| 481 |
+
biblioteca
|
| 482 |
+
mc
|
| 483 |
+
ns12
|
| 484 |
+
math
|
| 485 |
+
ntp1
|
| 486 |
+
web01
|
| 487 |
+
software
|
| 488 |
+
pr
|
| 489 |
+
jupiter
|
| 490 |
+
labs
|
| 491 |
+
linux
|
| 492 |
+
sc
|
| 493 |
+
love
|
| 494 |
+
fax
|
| 495 |
+
php
|
| 496 |
+
lp
|
| 497 |
+
tracking
|
| 498 |
+
thumbs
|
| 499 |
+
up
|
| 500 |
+
tw
|
| 501 |
+
campus
|
| 502 |
+
reg
|
| 503 |
+
digital
|
| 504 |
+
demo2
|
| 505 |
+
da
|
| 506 |
+
tr
|
| 507 |
+
otrs
|
| 508 |
+
web6
|
| 509 |
+
ns02
|
| 510 |
+
mailgw
|
| 511 |
+
education
|
| 512 |
+
order
|
| 513 |
+
piwik
|
| 514 |
+
banners
|
| 515 |
+
rs
|
| 516 |
+
se
|
| 517 |
+
venus
|
| 518 |
+
internal
|
| 519 |
+
webservices
|
| 520 |
+
cm
|
| 521 |
+
whois
|
| 522 |
+
sync
|
| 523 |
+
lb
|
| 524 |
+
is
|
| 525 |
+
code
|
| 526 |
+
click
|
| 527 |
+
w2
|
| 528 |
+
bugzilla
|
| 529 |
+
virtual
|
| 530 |
+
origin-www
|
| 531 |
+
top
|
| 532 |
+
customer
|
| 533 |
+
pub
|
| 534 |
+
hotel
|
| 535 |
+
openx
|
| 536 |
+
log
|
| 537 |
+
uat
|
| 538 |
+
cdn3
|
| 539 |
+
images0
|
| 540 |
+
cgi
|
| 541 |
+
posta
|
| 542 |
+
reseller
|
| 543 |
+
soft
|
| 544 |
+
movie
|
| 545 |
+
mba
|
| 546 |
+
n
|
| 547 |
+
r
|
| 548 |
+
developer
|
| 549 |
+
nms
|
| 550 |
+
ns9
|
| 551 |
+
webcam
|
| 552 |
+
construtor
|
| 553 |
+
ebook
|
| 554 |
+
ftp3
|
| 555 |
+
join
|
| 556 |
+
dashboard
|
| 557 |
+
bi
|
| 558 |
+
wpad
|
| 559 |
+
admin2
|
| 560 |
+
agent
|
| 561 |
+
wm
|
| 562 |
+
books
|
| 563 |
+
joomla
|
| 564 |
+
hotels
|
| 565 |
+
ezproxy
|
| 566 |
+
ds
|
| 567 |
+
sa
|
| 568 |
+
katalog
|
| 569 |
+
team
|
| 570 |
+
emkt
|
| 571 |
+
antispam
|
| 572 |
+
adv
|
| 573 |
+
mercury
|
| 574 |
+
flash
|
| 575 |
+
myadmin
|
| 576 |
+
sklep
|
| 577 |
+
newsite
|
| 578 |
+
law
|
| 579 |
+
pl
|
| 580 |
+
ntp2
|
| 581 |
+
x
|
| 582 |
+
srv1
|
| 583 |
+
mp3
|
| 584 |
+
archives
|
| 585 |
+
proxy2
|
| 586 |
+
ps
|
| 587 |
+
pic
|
| 588 |
+
ir
|
| 589 |
+
orion
|
| 590 |
+
srv
|
| 591 |
+
mt
|
| 592 |
+
ocs
|
| 593 |
+
server3
|
| 594 |
+
meeting
|
| 595 |
+
v1
|
| 596 |
+
delta
|
| 597 |
+
titan
|
| 598 |
+
manager
|
| 599 |
+
subscribe
|
| 600 |
+
develop
|
| 601 |
+
wsus
|
| 602 |
+
oascentral
|
| 603 |
+
mobi
|
| 604 |
+
people
|
| 605 |
+
galleries
|
| 606 |
+
wwwtest
|
| 607 |
+
backoffice
|
| 608 |
+
sg
|
| 609 |
+
repo
|
| 610 |
+
soporte
|
| 611 |
+
www8
|
| 612 |
+
eu
|
| 613 |
+
ead
|
| 614 |
+
students
|
| 615 |
+
hq
|
| 616 |
+
awstats
|
| 617 |
+
ec
|
| 618 |
+
security
|
| 619 |
+
school
|
| 620 |
+
corporate
|
| 621 |
+
podcast
|
| 622 |
+
vote
|
| 623 |
+
conf
|
| 624 |
+
magento
|
| 625 |
+
mx4
|
| 626 |
+
webservice
|
| 627 |
+
tour
|
| 628 |
+
s5
|
| 629 |
+
power
|
| 630 |
+
correio
|
| 631 |
+
mon
|
| 632 |
+
mobilemail
|
| 633 |
+
weather
|
| 634 |
+
international
|
| 635 |
+
prod
|
| 636 |
+
account
|
| 637 |
+
xx
|
| 638 |
+
pages
|
| 639 |
+
pgadmin
|
| 640 |
+
bfn2
|
| 641 |
+
webserver
|
| 642 |
+
www-test
|
| 643 |
+
maintenance
|
| 644 |
+
me
|
| 645 |
+
magazine
|
| 646 |
+
syslog
|
| 647 |
+
int
|
| 648 |
+
view
|
| 649 |
+
enews
|
| 650 |
+
ci
|
| 651 |
+
au
|
| 652 |
+
mis
|
| 653 |
+
dev3
|
| 654 |
+
pdf
|
| 655 |
+
mailgate
|
| 656 |
+
v3
|
| 657 |
+
ss
|
| 658 |
+
internet
|
| 659 |
+
host1
|
| 660 |
+
smtp01
|
| 661 |
+
journal
|
| 662 |
+
wireless
|
| 663 |
+
opac
|
| 664 |
+
w1
|
| 665 |
+
signup
|
| 666 |
+
database
|
| 667 |
+
demo1
|
| 668 |
+
br
|
| 669 |
+
android
|
| 670 |
+
career
|
| 671 |
+
listserv
|
| 672 |
+
bt
|
| 673 |
+
spb
|
| 674 |
+
cam
|
| 675 |
+
contacts
|
| 676 |
+
webtest
|
| 677 |
+
resources
|
| 678 |
+
1
|
| 679 |
+
life
|
| 680 |
+
mail6
|
| 681 |
+
transfer
|
| 682 |
+
app1
|
| 683 |
+
confluence
|
| 684 |
+
controlpanel
|
| 685 |
+
secure2
|
| 686 |
+
puppet
|
| 687 |
+
classifieds
|
| 688 |
+
tunet
|
| 689 |
+
edge
|
| 690 |
+
biz
|
| 691 |
+
host3
|
| 692 |
+
red
|
| 693 |
+
newmail
|
| 694 |
+
mx02
|
| 695 |
+
sb
|
| 696 |
+
physics
|
| 697 |
+
ap
|
| 698 |
+
epaper
|
| 699 |
+
sts
|
| 700 |
+
proxy1
|
| 701 |
+
ww1
|
| 702 |
+
stg
|
| 703 |
+
sd
|
| 704 |
+
science
|
| 705 |
+
star
|
| 706 |
+
www9
|
| 707 |
+
phoenix
|
| 708 |
+
pluto
|
| 709 |
+
webdav
|
| 710 |
+
booking
|
| 711 |
+
eshop
|
| 712 |
+
edit
|
| 713 |
+
panelstats
|
| 714 |
+
xmpp
|
| 715 |
+
food
|
| 716 |
+
cert
|
| 717 |
+
adfs
|
| 718 |
+
mail02
|
| 719 |
+
cat
|
| 720 |
+
edm
|
| 721 |
+
vcenter
|
| 722 |
+
mysql2
|
| 723 |
+
sun
|
| 724 |
+
phone
|
| 725 |
+
surveys
|
| 726 |
+
smart
|
| 727 |
+
system
|
| 728 |
+
twitter
|
| 729 |
+
updates
|
| 730 |
+
webmail1
|
| 731 |
+
logs
|
| 732 |
+
sitedefender
|
| 733 |
+
as
|
| 734 |
+
cbf1
|
| 735 |
+
sugar
|
| 736 |
+
contact
|
| 737 |
+
vm
|
| 738 |
+
ipad
|
| 739 |
+
traffic
|
| 740 |
+
dm
|
| 741 |
+
saturn
|
| 742 |
+
bo
|
| 743 |
+
network
|
| 744 |
+
ac
|
| 745 |
+
ns13
|
| 746 |
+
webdev
|
| 747 |
+
libguides
|
| 748 |
+
asp
|
| 749 |
+
tm
|
| 750 |
+
core
|
| 751 |
+
mms
|
| 752 |
+
abc
|
| 753 |
+
scripts
|
| 754 |
+
fm
|
| 755 |
+
sm
|
| 756 |
+
test4
|
| 757 |
+
nas
|
| 758 |
+
newsletters
|
| 759 |
+
rsc
|
| 760 |
+
cluster
|
| 761 |
+
learn
|
| 762 |
+
panelstatsmail
|
| 763 |
+
lb1
|
| 764 |
+
usa
|
| 765 |
+
apollo
|
| 766 |
+
pre
|
| 767 |
+
terminal
|
| 768 |
+
l
|
| 769 |
+
tc
|
| 770 |
+
movies
|
| 771 |
+
sh
|
| 772 |
+
fms
|
| 773 |
+
dms
|
| 774 |
+
z
|
| 775 |
+
base
|
| 776 |
+
jwc
|
| 777 |
+
gs
|
| 778 |
+
kvm
|
| 779 |
+
bfn1
|
| 780 |
+
card
|
| 781 |
+
web02
|
| 782 |
+
lg
|
| 783 |
+
editor
|
| 784 |
+
metrics
|
| 785 |
+
feed
|
| 786 |
+
repository
|
| 787 |
+
asterisk
|
| 788 |
+
sns
|
| 789 |
+
global
|
| 790 |
+
counter
|
| 791 |
+
ch
|
| 792 |
+
sistemas
|
| 793 |
+
pc
|
| 794 |
+
china
|
| 795 |
+
u
|
| 796 |
+
payments
|
| 797 |
+
ma
|
| 798 |
+
pics
|
| 799 |
+
www10
|
| 800 |
+
e-learning
|
| 801 |
+
auction
|
| 802 |
+
hub
|
| 803 |
+
sf
|
| 804 |
+
cbf8
|
| 805 |
+
forum2
|
| 806 |
+
ns14
|
| 807 |
+
app2
|
| 808 |
+
passport
|
| 809 |
+
hd
|
| 810 |
+
talk
|
| 811 |
+
ex
|
| 812 |
+
debian
|
| 813 |
+
ct
|
| 814 |
+
rc
|
| 815 |
+
2012
|
| 816 |
+
imap4
|
| 817 |
+
blog2
|
| 818 |
+
ce
|
| 819 |
+
sk
|
| 820 |
+
relay2
|
| 821 |
+
green
|
| 822 |
+
print
|
| 823 |
+
geo
|
| 824 |
+
multimedia
|
| 825 |
+
iptv
|
| 826 |
+
backup2
|
| 827 |
+
webapps
|
| 828 |
+
audio
|
| 829 |
+
ro
|
| 830 |
+
smtp4
|
| 831 |
+
pg
|
| 832 |
+
ldap2
|
| 833 |
+
backend
|
| 834 |
+
profile
|
| 835 |
+
oldwww
|
| 836 |
+
drive
|
| 837 |
+
bill
|
| 838 |
+
listas
|
| 839 |
+
orders
|
| 840 |
+
win
|
| 841 |
+
mag
|
| 842 |
+
apply
|
| 843 |
+
bounce
|
| 844 |
+
mta
|
| 845 |
+
hp
|
| 846 |
+
suporte
|
| 847 |
+
dir
|
| 848 |
+
pa
|
| 849 |
+
sys
|
| 850 |
+
mx0
|
| 851 |
+
ems
|
| 852 |
+
antivirus
|
| 853 |
+
web8
|
| 854 |
+
inside
|
| 855 |
+
play
|
| 856 |
+
nic
|
| 857 |
+
welcome
|
| 858 |
+
premium
|
| 859 |
+
exam
|
| 860 |
+
sub
|
| 861 |
+
cz
|
| 862 |
+
omega
|
| 863 |
+
boutique
|
| 864 |
+
pp
|
| 865 |
+
management
|
| 866 |
+
planet
|
| 867 |
+
ww3
|
| 868 |
+
orange
|
| 869 |
+
c1
|
| 870 |
+
zzb
|
| 871 |
+
form
|
| 872 |
+
ecommerce
|
| 873 |
+
tmp
|
| 874 |
+
plus
|
| 875 |
+
openvpn
|
| 876 |
+
fw1
|
| 877 |
+
hk
|
| 878 |
+
owncloud
|
| 879 |
+
history
|
| 880 |
+
clientes
|
| 881 |
+
srv2
|
| 882 |
+
img4
|
| 883 |
+
open
|
| 884 |
+
registration
|
| 885 |
+
mp
|
| 886 |
+
blackboard
|
| 887 |
+
fc
|
| 888 |
+
static3
|
| 889 |
+
server4
|
| 890 |
+
s6
|
| 891 |
+
ecard
|
| 892 |
+
dspace
|
| 893 |
+
dns01
|
| 894 |
+
md
|
| 895 |
+
mcp
|
| 896 |
+
ares
|
| 897 |
+
spf
|
| 898 |
+
kms
|
| 899 |
+
intranet2
|
| 900 |
+
accounts
|
| 901 |
+
webapp
|
| 902 |
+
ask
|
| 903 |
+
rd
|
| 904 |
+
www-dev
|
| 905 |
+
gw2
|
| 906 |
+
mall
|
| 907 |
+
bg
|
| 908 |
+
teste
|
| 909 |
+
ldap1
|
| 910 |
+
real
|
| 911 |
+
m3
|
| 912 |
+
wave
|
| 913 |
+
movil
|
| 914 |
+
portal2
|
| 915 |
+
kids
|
| 916 |
+
gw1
|
| 917 |
+
ra
|
| 918 |
+
tienda
|
| 919 |
+
private
|
| 920 |
+
po
|
| 921 |
+
2013
|
| 922 |
+
cdn4
|
| 923 |
+
gps
|
| 924 |
+
km
|
| 925 |
+
ent
|
| 926 |
+
tt
|
| 927 |
+
ns21
|
| 928 |
+
at
|
| 929 |
+
athena
|
| 930 |
+
cbf2
|
| 931 |
+
webmail3
|
| 932 |
+
mob
|
| 933 |
+
matrix
|
| 934 |
+
ns15
|
| 935 |
+
send
|
| 936 |
+
lb2
|
| 937 |
+
pos
|
| 938 |
+
2
|
| 939 |
+
cl
|
| 940 |
+
renew
|
| 941 |
+
admissions
|
| 942 |
+
am
|
| 943 |
+
beta2
|
| 944 |
+
gamma
|
| 945 |
+
mx5
|
| 946 |
+
portfolio
|
| 947 |
+
contest
|
| 948 |
+
box
|
| 949 |
+
mg
|
| 950 |
+
wwwold
|
| 951 |
+
neptune
|
| 952 |
+
mac
|
| 953 |
+
pms
|
| 954 |
+
traveler
|
| 955 |
+
media2
|
| 956 |
+
studio
|
| 957 |
+
sw
|
| 958 |
+
imp
|
| 959 |
+
bs
|
| 960 |
+
alfa
|
| 961 |
+
cbf4
|
| 962 |
+
servicedesk
|
| 963 |
+
wmail
|
| 964 |
+
video2
|
| 965 |
+
switch
|
| 966 |
+
sam
|
| 967 |
+
sky
|
| 968 |
+
ee
|
| 969 |
+
widget
|
| 970 |
+
reklama
|
| 971 |
+
msn
|
| 972 |
+
paris
|
| 973 |
+
tms
|
| 974 |
+
th
|
| 975 |
+
vega
|
| 976 |
+
trade
|
| 977 |
+
intern
|
| 978 |
+
ext
|
| 979 |
+
oldsite
|
| 980 |
+
learning
|
| 981 |
+
group
|
| 982 |
+
f1
|
| 983 |
+
ns22
|
| 984 |
+
ns20
|
| 985 |
+
demo3
|
| 986 |
+
bm
|
| 987 |
+
dom
|
| 988 |
+
pe
|
| 989 |
+
annuaire
|
| 990 |
+
portail
|
| 991 |
+
graphics
|
| 992 |
+
iris
|
| 993 |
+
one
|
| 994 |
+
robot
|
| 995 |
+
ams
|
| 996 |
+
s7
|
| 997 |
+
foro
|
| 998 |
+
gaia
|
| 999 |
+
vpn3
|
tdagent/tools/get_domain_information.py
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json
|
| 2 |
+
import os
|
| 3 |
+
from concurrent.futures import ThreadPoolExecutor
|
| 4 |
+
from pathlib import Path
|
| 5 |
+
from typing import Any
|
| 6 |
+
|
| 7 |
+
import gradio as gr
|
| 8 |
+
import requests
|
| 9 |
+
import urllib3
|
| 10 |
+
from dns import message
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
_DNS_SERVER = "https://dns.google/dns-query" # can use others
|
| 14 |
+
_DNS_RECORD_TYPES = [
|
| 15 |
+
"A",
|
| 16 |
+
"AAAA",
|
| 17 |
+
"CNAME",
|
| 18 |
+
"MX",
|
| 19 |
+
"NS",
|
| 20 |
+
"SOA",
|
| 21 |
+
"TXT",
|
| 22 |
+
"RP",
|
| 23 |
+
"LOC",
|
| 24 |
+
"CAA",
|
| 25 |
+
"SPF",
|
| 26 |
+
"SRV",
|
| 27 |
+
"NSEC",
|
| 28 |
+
"RRSIG",
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
+
_COMMON_SUBDOMAINS_TXT_PATH = Path("./subdomains/subdomains.txt")
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def get_geolocation(ip: str) -> dict[str, Any] | str:
|
| 35 |
+
"""Get location information from an ip address.
|
| 36 |
+
|
| 37 |
+
Returns the following information on an ip address:
|
| 38 |
+
1. IPv4
|
| 39 |
+
2. city
|
| 40 |
+
4. country_code
|
| 41 |
+
5. country_name
|
| 42 |
+
6. latitude
|
| 43 |
+
7. longitude
|
| 44 |
+
8. postal
|
| 45 |
+
9. state
|
| 46 |
+
|
| 47 |
+
Example:
|
| 48 |
+
>>> from pprint import pprint
|
| 49 |
+
>>> pprint(get_location("103.100.104.0"))
|
| 50 |
+
... {'IPv4': '103.100.104.0',
|
| 51 |
+
'city': None,
|
| 52 |
+
'country_code': 'NZ',
|
| 53 |
+
'country_name': 'New Zealand',
|
| 54 |
+
'latitude': -41,
|
| 55 |
+
'longitude': 174,
|
| 56 |
+
'postal': None,
|
| 57 |
+
'state': None}
|
| 58 |
+
|
| 59 |
+
Args:
|
| 60 |
+
ip: ip address
|
| 61 |
+
|
| 62 |
+
Returns:
|
| 63 |
+
Location information on the ip address.
|
| 64 |
+
"""
|
| 65 |
+
try:
|
| 66 |
+
return requests.get(
|
| 67 |
+
f"https://geolocation-db.com/json/{ip}",
|
| 68 |
+
timeout=0.5,
|
| 69 |
+
).json()
|
| 70 |
+
except Exception as e: # noqa: BLE001
|
| 71 |
+
return str(e)
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
def _request_dns_record(domain: str, record_type: str) -> str:
|
| 75 |
+
"""Utility to build dns resolve requests that do not use port 53.
|
| 76 |
+
|
| 77 |
+
Args:
|
| 78 |
+
domain: domain to investigate
|
| 79 |
+
record_type: record type
|
| 80 |
+
|
| 81 |
+
Returns:
|
| 82 |
+
Information about the dns record type for the domain.
|
| 83 |
+
"""
|
| 84 |
+
q = message.make_query(domain, record_type)
|
| 85 |
+
response = requests.post(
|
| 86 |
+
_DNS_SERVER,
|
| 87 |
+
headers={
|
| 88 |
+
"Content-Type": "application/dns-message",
|
| 89 |
+
"Accept": "application/dns-message",
|
| 90 |
+
},
|
| 91 |
+
data=q.to_wire(),
|
| 92 |
+
verify=True,
|
| 93 |
+
timeout=0.2,
|
| 94 |
+
)
|
| 95 |
+
dns_message = message.from_wire(response.content)
|
| 96 |
+
return [str(rdata) for rdata in dns_message.answer[0]] if dns_message.answer else []
|
| 97 |
+
|
| 98 |
+
# see: https://thepythoncode.com/article/dns-enumeration-with-python
|
| 99 |
+
# https://dnspython.readthedocs.io
|
| 100 |
+
def enumerate_dns(domain_name: str) -> dict[str, Any] | None:
|
| 101 |
+
r"""Enumerates information about a specific domain's DNS configuration.
|
| 102 |
+
|
| 103 |
+
Information collected about the domain name:
|
| 104 |
+
1. A records: the IPv4 associated with the domain
|
| 105 |
+
2. AAAA records: the IPv6 associated with the domain
|
| 106 |
+
3. CAA records: used by owners to specify which Certificate Authorities
|
| 107 |
+
are authorized to issue SSL/TLS certificates for their domains.
|
| 108 |
+
4. CNAME records: alias of one name to another - the DNS lookup will
|
| 109 |
+
continue by retrying the lookup with the new name.
|
| 110 |
+
5. LOC records: geographic location associated with a domain name.
|
| 111 |
+
6. MX records: associated email servers to the domain.
|
| 112 |
+
7. NS records: DNS servers that are authoritative for a particular domain.
|
| 113 |
+
These may be use to inquire information about the domain.
|
| 114 |
+
8. SOA records: defines authoritative information about a DNS zone,
|
| 115 |
+
including zone transfers and cache expiration.
|
| 116 |
+
9. TXT records: used for domain verification and email security.
|
| 117 |
+
10. RP records: the responsible person for a domain.
|
| 118 |
+
11. SPF records: defines authorized email servers.
|
| 119 |
+
12. SRV records: specifies location of specific services
|
| 120 |
+
(port and host) for the domain.
|
| 121 |
+
14. NSEC records: proves non-existence of DNS records
|
| 122 |
+
and prevents zone enumeration.
|
| 123 |
+
15. RRSIG records: contains cryptographic signatures for DNSSEC-signed
|
| 124 |
+
records, providing authentication and integrity.
|
| 125 |
+
|
| 126 |
+
Example:
|
| 127 |
+
>>> from pprint import pprint
|
| 128 |
+
>>> pprint(enumerate_dns("youtube.com"))
|
| 129 |
+
... {'A': 'youtube.com. 300 IN A 142.250.200.142',
|
| 130 |
+
'AAAA': 'youtube.com. 286 IN AAAA 2a00:1450:4003:80f::200e',
|
| 131 |
+
'CAA': 'youtube.com. 14352 IN CAA 0 issue "pki.goog"',
|
| 132 |
+
'CNAME': None,
|
| 133 |
+
'LOC': None,
|
| 134 |
+
'MX': 'youtube.com. 300 IN MX 0 smtp.google.com.',
|
| 135 |
+
'NS': 'youtube.com. 21600 IN NS ns4.google.com.\n'
|
| 136 |
+
'youtube.com. 21600 IN NS ns1.google.com.\n'
|
| 137 |
+
'youtube.com. 21600 IN NS ns2.google.com.\n'
|
| 138 |
+
'youtube.com. 21600 IN NS ns3.google.com.',
|
| 139 |
+
'NSEC': None,
|
| 140 |
+
'RP': None,
|
| 141 |
+
'RRSIG': None,
|
| 142 |
+
'SOA': 'youtube.com. 60 IN SOA ns1.google.com. dns-admin.google.com. '
|
| 143 |
+
'766113658 900 900 1800 60',
|
| 144 |
+
'SPF': None,
|
| 145 |
+
'SRV': None,
|
| 146 |
+
'TXT': 'youtube.com. 3586 IN TXT "v=spf1 include:google.com mx -all"\n'
|
| 147 |
+
'youtube.com. 3586 IN TXT '
|
| 148 |
+
'"facebook-domain-verification=64jdes7le4h7e7lfpi22rijygx58j1"\n'
|
| 149 |
+
'youtube.com. 3586 IN TXT '
|
| 150 |
+
'"google-site-verification=QtQWEwHWM8tHiJ4s-jJWzEQrD_fF3luPnpzNDH-Nw-w"'}
|
| 151 |
+
|
| 152 |
+
Args:
|
| 153 |
+
domain_name: domain name for which to
|
| 154 |
+
enumerate the DNS configuration.
|
| 155 |
+
|
| 156 |
+
Returns:
|
| 157 |
+
The domain's DNS configuration.
|
| 158 |
+
"""
|
| 159 |
+
enumeration = {}
|
| 160 |
+
for record_type in _DNS_RECORD_TYPES:
|
| 161 |
+
try:
|
| 162 |
+
record = _request_dns_record(domain_name, record_type)
|
| 163 |
+
if record:
|
| 164 |
+
enumeration[record_type] = record
|
| 165 |
+
except Exception as e: # noqa: BLE001, PERF203
|
| 166 |
+
enumeration[record_type] = str(e)
|
| 167 |
+
return enumeration if enumeration else None
|
| 168 |
+
|
| 169 |
+
def resolve_subdomain_ipv4(domain: str) -> str | None:
|
| 170 |
+
"""Resolve the IPv4 address of a domain.
|
| 171 |
+
|
| 172 |
+
Args:
|
| 173 |
+
domain: domain name
|
| 174 |
+
|
| 175 |
+
Returns:
|
| 176 |
+
The domain is returned provided
|
| 177 |
+
it was resolved. Otherwise nothing
|
| 178 |
+
is returned.
|
| 179 |
+
"""
|
| 180 |
+
try:
|
| 181 |
+
_request_dns_record(domain, "A")
|
| 182 |
+
return domain # noqa: TRY300
|
| 183 |
+
except Exception: # noqa: BLE001
|
| 184 |
+
return None
|
| 185 |
+
|
| 186 |
+
|
| 187 |
+
def scrap_subdomains_for_domain(domain_name: str) -> list[str]:
|
| 188 |
+
"""Retrieves subdomains associated to a domain if any.
|
| 189 |
+
|
| 190 |
+
The information retrieved from a domain is its subdomains
|
| 191 |
+
provided they are the top 1000 subdomain prefixes as
|
| 192 |
+
indicated by https://github.com/rbsec/dnscan/tree/master
|
| 193 |
+
|
| 194 |
+
Importantly, it finds subdomains only if their prefixes
|
| 195 |
+
are along the top 1000 most common. Hence, it may not
|
| 196 |
+
yield all the subdomains associated to the domain.
|
| 197 |
+
|
| 198 |
+
Example:
|
| 199 |
+
>>> scrap_subdomains_for_domain("github.com")
|
| 200 |
+
... ['www.github.com', 'smtp.github.com', 'ns1.github.com',
|
| 201 |
+
'ns2.github.com','autodiscover.github.com', 'test.github.com',
|
| 202 |
+
'blog.github.com', 'admin.github.com', 'support.github.com',
|
| 203 |
+
'docs.github.com', 'shop.github.com', 'wiki.github.com',
|
| 204 |
+
'api.github.com', 'live.github.com', 'help.github.com',
|
| 205 |
+
'jobs.github.com', 'services.github.com', 'de.github.com',
|
| 206 |
+
'cs.github.com', 'fr.github.com', 'ssh.github.com',
|
| 207 |
+
'partner.github.com', 'community.github.com',
|
| 208 |
+
'mailer.github.com', 'training.github.com', ...]
|
| 209 |
+
|
| 210 |
+
Args:
|
| 211 |
+
domain_name: domain name for which to retrieve a
|
| 212 |
+
list of subdomains
|
| 213 |
+
|
| 214 |
+
Returns:
|
| 215 |
+
List of subdomains if any.
|
| 216 |
+
"""
|
| 217 |
+
try:
|
| 218 |
+
with open(_COMMON_SUBDOMAINS_TXT_PATH) as file: # noqa: PTH123
|
| 219 |
+
subdomains = [line.strip() for line in file if line.strip()]
|
| 220 |
+
except FileNotFoundError:
|
| 221 |
+
return []
|
| 222 |
+
|
| 223 |
+
potential_subdomains = [f"{subdomain}.{domain_name}" for subdomain in subdomains]
|
| 224 |
+
with ThreadPoolExecutor(max_workers=5) as executor:
|
| 225 |
+
results = executor.map(resolve_subdomain_ipv4, potential_subdomains)
|
| 226 |
+
return [domain for domain in results if domain]
|
| 227 |
+
|
| 228 |
+
def retrieve_ioc_from_threatfox(potentially_ioc: str) -> str:
|
| 229 |
+
r"""Retrieves information about a potential IoC from ThreatFox.
|
| 230 |
+
|
| 231 |
+
It may be used to retrieve information of indicators of compromise
|
| 232 |
+
(IOCs) associated with malware, with the infosec community, AV
|
| 233 |
+
vendors and cyber threat intelligence providers.
|
| 234 |
+
|
| 235 |
+
Examples:
|
| 236 |
+
>>> retrieve_ioc_from_threatfox("139.180.203.104")
|
| 237 |
+
... {
|
| 238 |
+
"query_status": "ok",
|
| 239 |
+
"data": [
|
| 240 |
+
{
|
| 241 |
+
"id": "12",
|
| 242 |
+
"ioc": "139.180.203.104:443",
|
| 243 |
+
"threat_type": "botnet_cc",
|
| 244 |
+
"threat_type_desc": "Indicator that identifies a botnet command&control...",
|
| 245 |
+
"ioc_type": "ip:port",
|
| 246 |
+
"ioc_type_desc": "ip:port combination that is used for botnet Command&...,
|
| 247 |
+
"malware": "win.cobalt_strike",
|
| 248 |
+
"malware_printable": "Cobalt Strike",
|
| 249 |
+
"malware_alias": "Agentemis,BEACON,CobaltStrike",
|
| 250 |
+
"malware_malpedia": "https:\/\/malpedia.caad.fkie.fraunhofer.de\/...",
|
| 251 |
+
"confidence_level": 75,
|
| 252 |
+
"first_seen": "2020-12-06 09:10:23 UTC",
|
| 253 |
+
"last_seen": null,
|
| 254 |
+
"reference": null,
|
| 255 |
+
"reporter": "abuse_ch",
|
| 256 |
+
"tags": null,
|
| 257 |
+
"malware_samples": [
|
| 258 |
+
{
|
| 259 |
+
"time_stamp": "2021-03-23 08:18:06 UTC",
|
| 260 |
+
"md5_hash": "5b7e82e051ade4b14d163eea2a17bf8b",
|
| 261 |
+
"sha256_hash": "b325c92fa540edeb89b95dbfd4400c1cb33599c66859....",
|
| 262 |
+
"malware_bazaar": "https:\/\/bazaar.abuse.ch\/sample\/b325c...\/"
|
| 263 |
+
},
|
| 264 |
+
]
|
| 265 |
+
|
| 266 |
+
}
|
| 267 |
+
]
|
| 268 |
+
}
|
| 269 |
+
|
| 270 |
+
Args:
|
| 271 |
+
potentially_ioc: this can be a url, a domain, a hash,
|
| 272 |
+
or any other type of IoC.
|
| 273 |
+
|
| 274 |
+
Returns:
|
| 275 |
+
Information of the input as an IoC: threat type, malware type andsamples,
|
| 276 |
+
confidence level, first/last seen dates, and more IoC information.
|
| 277 |
+
"""
|
| 278 |
+
headers = {"Auth-Key": os.environ["THREATFOX_APIKEY"]}
|
| 279 |
+
pool = urllib3.HTTPSConnectionPool(
|
| 280 |
+
"threatfox-api.abuse.ch",
|
| 281 |
+
port=443,
|
| 282 |
+
maxsize=50,
|
| 283 |
+
headers=headers,
|
| 284 |
+
)
|
| 285 |
+
data = {
|
| 286 |
+
"query": "search_ioc",
|
| 287 |
+
"search_term": potentially_ioc,
|
| 288 |
+
}
|
| 289 |
+
json_data = json.dumps(data)
|
| 290 |
+
try:
|
| 291 |
+
response = pool.request("POST", "/api/v1/", body=json_data)
|
| 292 |
+
return response.data.decode("utf-8", "ignore")
|
| 293 |
+
except Exception as e: # noqa: BLE001
|
| 294 |
+
return str(e)
|
| 295 |
+
|
| 296 |
+
|
| 297 |
+
geo_location_tool = gr.Interface(
|
| 298 |
+
fn=get_geolocation,
|
| 299 |
+
inputs=["text"],
|
| 300 |
+
outputs=["text"],
|
| 301 |
+
title="Domain Associated Geolocation Finder",
|
| 302 |
+
description="Retrieves the geolocation associated to an input ip address",
|
| 303 |
+
theme="default",
|
| 304 |
+
)
|
| 305 |
+
|
| 306 |
+
dns_enumeration_tool = gr.Interface(
|
| 307 |
+
fn=enumerate_dns,
|
| 308 |
+
inputs=["text"],
|
| 309 |
+
outputs=["text"],
|
| 310 |
+
title="DNS record enumerator of domains",
|
| 311 |
+
description="Retrieves several dns record types for the input domain names",
|
| 312 |
+
theme="default",
|
| 313 |
+
)
|
| 314 |
+
|
| 315 |
+
scrap_subdomains_tool = gr.Interface(
|
| 316 |
+
fn=scrap_subdomains_for_domain,
|
| 317 |
+
inputs=["text"],
|
| 318 |
+
outputs=["text"],
|
| 319 |
+
title="Subdomains Extractor of domains",
|
| 320 |
+
description="Retrieves the subdomains for the input domain if they are common",
|
| 321 |
+
theme="default",
|
| 322 |
+
)
|
| 323 |
+
|
| 324 |
+
extractor_of_ioc_from_threatfox_tool = gr.Interface(
|
| 325 |
+
fn=retrieve_ioc_from_threatfox,
|
| 326 |
+
inputs=["text"],
|
| 327 |
+
outputs=["text"],
|
| 328 |
+
title="IoC information extractor associated to particular entities",
|
| 329 |
+
description=(
|
| 330 |
+
"If information as an Indicator of Compromise (IoC) exists"
|
| 331 |
+
"for the input url, domain or hash, it retrieves it"
|
| 332 |
+
),
|
| 333 |
+
theme="default",
|
| 334 |
+
)
|
uv.lock
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|