forensic-cli 1.2.7__tar.gz → 1.2.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {forensic_cli-1.2.7/src/forensic_cli.egg-info → forensic_cli-1.2.11}/PKG-INFO +2 -5
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/pyproject.toml +1 -4
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/setup.py +2 -2
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/commands/network.py +1 -1
- forensic_cli-1.2.11/src/core/network/arp_scan.py +38 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11/src/forensic_cli.egg-info}/PKG-INFO +2 -5
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/forensic_cli.egg-info/requires.txt +0 -3
- forensic_cli-1.2.7/src/core/network/arp_scan.py +0 -16
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/LICENSE +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/LICENSE-GPL +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/README.md +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/setup.cfg +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/__init__.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/commands/__init__.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/commands/browser.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/commands/describe.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/commands/email.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/commands/utils.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/cli/main.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/__init__.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/browser/browser_history.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/browser/common_words.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/browser/downloads_history.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/browser/fav_screen.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/browser/logins.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/browser/unusual_patterns.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/data/__init__.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/data/data_recovery.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/db/db.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/email/email_parser.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/email/header_analysis.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/models/orm.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/models/schemas.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/__init__.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/dns_recon.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/fingerprinting.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/ip_info.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/network_map.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/ping_sweep.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/port_scanner.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/smb_scan.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/snmp_scan.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/traceroute.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/network/utils.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/registry.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/utils/__init__.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/core/utils/gerar_amostras.py +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/forensic_cli.egg-info/SOURCES.txt +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/forensic_cli.egg-info/dependency_links.txt +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/forensic_cli.egg-info/entry_points.txt +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/src/forensic_cli.egg-info/top_level.txt +0 -0
- {forensic_cli-1.2.7 → forensic_cli-1.2.11}/tests/test_file_inspector.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: forensic-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.11
|
|
4
4
|
Summary: DevKit Forense - CLI para análise de navegadores e rede
|
|
5
5
|
Home-page: https://github.com/ErickG123/devkit_forense
|
|
6
|
-
Author: Erick Gabriel
|
|
6
|
+
Author: Erick Gabriel
|
|
7
7
|
Author-email: Erick Gabriel dos Santos Alves <erickgabrielalves0@gmail.com>
|
|
8
8
|
License: MIT
|
|
9
9
|
Project-URL: Changelog, https://erickg123.github.io/devkit_forense/
|
|
@@ -30,7 +30,6 @@ Requires-Dist: defusedxml==0.7.1
|
|
|
30
30
|
Requires-Dist: dnspython==2.7.0
|
|
31
31
|
Requires-Dist: docopt==0.6.2
|
|
32
32
|
Requires-Dist: docutils==0.22
|
|
33
|
-
Requires-Dist: fastapi==0.116.1
|
|
34
33
|
Requires-Dist: fonttools==4.59.1
|
|
35
34
|
Requires-Dist: greenlet==3.2.4
|
|
36
35
|
Requires-Dist: h11==0.16.0
|
|
@@ -78,7 +77,6 @@ Requires-Dist: six==1.17.0
|
|
|
78
77
|
Requires-Dist: smbprotocol==1.15.0
|
|
79
78
|
Requires-Dist: sniffio==1.3.1
|
|
80
79
|
Requires-Dist: sortedcontainers==2.4.0
|
|
81
|
-
Requires-Dist: SQLAlchemy==2.0.43
|
|
82
80
|
Requires-Dist: starlette==0.47.2
|
|
83
81
|
Requires-Dist: trio==0.30.0
|
|
84
82
|
Requires-Dist: trio-websocket==0.12.2
|
|
@@ -87,7 +85,6 @@ Requires-Dist: typing-inspection==0.4.1
|
|
|
87
85
|
Requires-Dist: typing_extensions==4.14.1
|
|
88
86
|
Requires-Dist: tzdata==2025.2
|
|
89
87
|
Requires-Dist: urllib3==2.5.0
|
|
90
|
-
Requires-Dist: uvicorn==0.35.0
|
|
91
88
|
Requires-Dist: websocket-client==1.8.0
|
|
92
89
|
Requires-Dist: wsproto==1.2.0
|
|
93
90
|
Requires-Dist: yarg==0.1.10
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "forensic-cli"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.11"
|
|
8
8
|
description = "DevKit Forense - CLI para análise de navegadores e rede"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -31,7 +31,6 @@ dependencies = [
|
|
|
31
31
|
"dnspython==2.7.0",
|
|
32
32
|
"docopt==0.6.2",
|
|
33
33
|
"docutils==0.22",
|
|
34
|
-
"fastapi==0.116.1",
|
|
35
34
|
"fonttools==4.59.1",
|
|
36
35
|
"greenlet==3.2.4",
|
|
37
36
|
"h11==0.16.0",
|
|
@@ -79,7 +78,6 @@ dependencies = [
|
|
|
79
78
|
"smbprotocol==1.15.0",
|
|
80
79
|
"sniffio==1.3.1",
|
|
81
80
|
"sortedcontainers==2.4.0",
|
|
82
|
-
"SQLAlchemy==2.0.43",
|
|
83
81
|
"starlette==0.47.2",
|
|
84
82
|
"trio==0.30.0",
|
|
85
83
|
"trio-websocket==0.12.2",
|
|
@@ -88,7 +86,6 @@ dependencies = [
|
|
|
88
86
|
"typing_extensions==4.14.1",
|
|
89
87
|
"tzdata==2025.2",
|
|
90
88
|
"urllib3==2.5.0",
|
|
91
|
-
"uvicorn==0.35.0",
|
|
92
89
|
"websocket-client==1.8.0",
|
|
93
90
|
"wsproto==1.2.0",
|
|
94
91
|
"yarg==0.1.10"
|
|
@@ -2,8 +2,8 @@ from setuptools import setup, find_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name="forensic_cli",
|
|
5
|
-
version="1.2.
|
|
6
|
-
author="Erick Gabriel
|
|
5
|
+
version="1.2.11",
|
|
6
|
+
author="Erick Gabriel",
|
|
7
7
|
author_email="erickgabrielalves0@gmail.com",
|
|
8
8
|
description="Toolkit modular para análise de evidências digitais",
|
|
9
9
|
long_description=open("README.md").read(),
|
|
@@ -18,7 +18,7 @@ network_app = typer.Typer(help="Conjunto de ferramentas para análise e explora
|
|
|
18
18
|
@network_app.command("map", help="Mapeia dispositivos ativos na rede e salva os resultados em JSON/CSV")
|
|
19
19
|
def map(
|
|
20
20
|
network: str = typer.Option(..., help="Range de IPs da rede. Exemplo: 192.168.1.1-254"),
|
|
21
|
-
output_dir: str = typer.Option("
|
|
21
|
+
output_dir: str = typer.Option("./output", help="Diretório para salvar os resultados"),
|
|
22
22
|
):
|
|
23
23
|
result = run_network_map(network, output_dir)
|
|
24
24
|
typer.echo(f"Resultados salvos em: {result['json_file']} e {result['csv_file']}")
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import typer
|
|
2
|
+
import ipaddress
|
|
3
|
+
from scapy.all import ARP, Ether, srp, sr1, IP, ICMP
|
|
4
|
+
|
|
5
|
+
def is_valid_ip(addr: str) -> bool:
|
|
6
|
+
try:
|
|
7
|
+
ipaddress.ip_address(addr)
|
|
8
|
+
return True
|
|
9
|
+
except ValueError:
|
|
10
|
+
return False
|
|
11
|
+
|
|
12
|
+
def arp_scan(network_ips):
|
|
13
|
+
active_hosts = []
|
|
14
|
+
|
|
15
|
+
ips = [ip for ip in network_ips if is_valid_ip(ip)]
|
|
16
|
+
|
|
17
|
+
typer.echo(f"[+] Iniciando ARP scan ({len(ips)} IPs)...")
|
|
18
|
+
|
|
19
|
+
with typer.progressbar(ips, label="ARP Scan") as progress:
|
|
20
|
+
for ip in ips:
|
|
21
|
+
try:
|
|
22
|
+
pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip)
|
|
23
|
+
ans, _ = srp(pkt, timeout=1, verbose=0)
|
|
24
|
+
if ans:
|
|
25
|
+
active_hosts.append(ip)
|
|
26
|
+
|
|
27
|
+
except Exception:
|
|
28
|
+
try:
|
|
29
|
+
pkt = IP(dst=ip) / ICMP()
|
|
30
|
+
resp = sr1(pkt, timeout=1, verbose=0)
|
|
31
|
+
if resp:
|
|
32
|
+
active_hosts.append(ip)
|
|
33
|
+
except Exception:
|
|
34
|
+
pass
|
|
35
|
+
|
|
36
|
+
progress.update(1)
|
|
37
|
+
|
|
38
|
+
return active_hosts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: forensic-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.11
|
|
4
4
|
Summary: DevKit Forense - CLI para análise de navegadores e rede
|
|
5
5
|
Home-page: https://github.com/ErickG123/devkit_forense
|
|
6
|
-
Author: Erick Gabriel
|
|
6
|
+
Author: Erick Gabriel
|
|
7
7
|
Author-email: Erick Gabriel dos Santos Alves <erickgabrielalves0@gmail.com>
|
|
8
8
|
License: MIT
|
|
9
9
|
Project-URL: Changelog, https://erickg123.github.io/devkit_forense/
|
|
@@ -30,7 +30,6 @@ Requires-Dist: defusedxml==0.7.1
|
|
|
30
30
|
Requires-Dist: dnspython==2.7.0
|
|
31
31
|
Requires-Dist: docopt==0.6.2
|
|
32
32
|
Requires-Dist: docutils==0.22
|
|
33
|
-
Requires-Dist: fastapi==0.116.1
|
|
34
33
|
Requires-Dist: fonttools==4.59.1
|
|
35
34
|
Requires-Dist: greenlet==3.2.4
|
|
36
35
|
Requires-Dist: h11==0.16.0
|
|
@@ -78,7 +77,6 @@ Requires-Dist: six==1.17.0
|
|
|
78
77
|
Requires-Dist: smbprotocol==1.15.0
|
|
79
78
|
Requires-Dist: sniffio==1.3.1
|
|
80
79
|
Requires-Dist: sortedcontainers==2.4.0
|
|
81
|
-
Requires-Dist: SQLAlchemy==2.0.43
|
|
82
80
|
Requires-Dist: starlette==0.47.2
|
|
83
81
|
Requires-Dist: trio==0.30.0
|
|
84
82
|
Requires-Dist: trio-websocket==0.12.2
|
|
@@ -87,7 +85,6 @@ Requires-Dist: typing-inspection==0.4.1
|
|
|
87
85
|
Requires-Dist: typing_extensions==4.14.1
|
|
88
86
|
Requires-Dist: tzdata==2025.2
|
|
89
87
|
Requires-Dist: urllib3==2.5.0
|
|
90
|
-
Requires-Dist: uvicorn==0.35.0
|
|
91
88
|
Requires-Dist: websocket-client==1.8.0
|
|
92
89
|
Requires-Dist: wsproto==1.2.0
|
|
93
90
|
Requires-Dist: yarg==0.1.10
|
|
@@ -14,7 +14,6 @@ defusedxml==0.7.1
|
|
|
14
14
|
dnspython==2.7.0
|
|
15
15
|
docopt==0.6.2
|
|
16
16
|
docutils==0.22
|
|
17
|
-
fastapi==0.116.1
|
|
18
17
|
fonttools==4.59.1
|
|
19
18
|
greenlet==3.2.4
|
|
20
19
|
h11==0.16.0
|
|
@@ -62,7 +61,6 @@ six==1.17.0
|
|
|
62
61
|
smbprotocol==1.15.0
|
|
63
62
|
sniffio==1.3.1
|
|
64
63
|
sortedcontainers==2.4.0
|
|
65
|
-
SQLAlchemy==2.0.43
|
|
66
64
|
starlette==0.47.2
|
|
67
65
|
trio==0.30.0
|
|
68
66
|
trio-websocket==0.12.2
|
|
@@ -71,7 +69,6 @@ typing-inspection==0.4.1
|
|
|
71
69
|
typing_extensions==4.14.1
|
|
72
70
|
tzdata==2025.2
|
|
73
71
|
urllib3==2.5.0
|
|
74
|
-
uvicorn==0.35.0
|
|
75
72
|
websocket-client==1.8.0
|
|
76
73
|
wsproto==1.2.0
|
|
77
74
|
yarg==0.1.10
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
from scapy.all import ARP, Ether, srp
|
|
2
|
-
import typer
|
|
3
|
-
|
|
4
|
-
def arp_scan(network_ips):
|
|
5
|
-
active_hosts = []
|
|
6
|
-
|
|
7
|
-
typer.echo(f"[+] Iniciando ARP scan ({len(network_ips)} IPs)...")
|
|
8
|
-
with typer.progressbar(network_ips, label="ARP Scan") as progress:
|
|
9
|
-
for ip in network_ips:
|
|
10
|
-
pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip)
|
|
11
|
-
ans, _ = srp(pkt, timeout=1, verbose=0)
|
|
12
|
-
if ans:
|
|
13
|
-
active_hosts.append(ip)
|
|
14
|
-
progress.update(1)
|
|
15
|
-
|
|
16
|
-
return active_hosts
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|