nopasaran 0.2.100__tar.gz → 0.2.102__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.
- {nopasaran-0.2.100 → nopasaran-0.2.102}/PKG-INFO +1 -1
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/tcp_dns_response_primitives.py +5 -4
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/udp_dns_response_primitives.py +4 -3
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/tcp_dns_socket_server.py +4 -4
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/udp_dns_socket_server.py +4 -7
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/utils.py +4 -4
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran.egg-info/PKG-INFO +1 -1
- {nopasaran-0.2.100 → nopasaran-0.2.102}/setup.py +1 -1
- {nopasaran-0.2.100 → nopasaran-0.2.102}/LICENSE +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/README.md +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/__main__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/controllers/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/controllers/controller.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/controllers/factory.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/controllers/protocol.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/decorators.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/definitions/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/definitions/commands.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/definitions/control_channel.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/definitions/events.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/definitions/transitions.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/errors/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/errors/parsing_error.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/http_2_utils.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/interpreters/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/interpreters/action_interpreter.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/interpreters/condition_interpreter.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/interpreters/interpreter.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/interpreters/transition_interpreter.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/machines/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/machines/action_queue.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/machines/state_machine.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/parsers/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/parsers/interpreter_parser.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/parsers/state_machine_parser.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/action_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/certificate_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/client_echo_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/control_channel_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/data_channel_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/data_manipulation.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/dns_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/event_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/http_1_request_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/http_1_response_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/http_2_client_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/http_2_server_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/http_simple_client_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/https_1_request_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/https_1_response_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/icmp_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/io_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/ip_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/nested_machine_utils.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/probing_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/replay_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/server_echo_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/signaling_primitive.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/tcp_dns_request_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/tcp_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/timing_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/tls_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/udp_dns_request_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/udp_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/condition_primitives/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/condition_primitives/condition_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/condition_primitives/variable_comparisons.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/transition_primitives/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/transition_primitives/assignment_transitions.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/transition_primitives/transition_primitives.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/sniffers/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/sniffers/sniffer.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/__init__.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/checks.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/echo_socket_server.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/http_1_socket_server.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/http_2_overwrite.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/http_2_socket_base.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/http_2_socket_client.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/http_2_socket_server.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/tools/https_1_socket_server.py +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran.egg-info/SOURCES.txt +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran.egg-info/dependency_links.txt +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran.egg-info/entry_points.txt +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran.egg-info/requires.txt +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran.egg-info/top_level.txt +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/setup.cfg +0 -0
- {nopasaran-0.2.100 → nopasaran-0.2.102}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nopasaran
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.102
|
4
4
|
Summary: NoPASARAN is an advanced network tool designed to detect, fingerprint, and locate network middleboxes in a unified framework.
|
5
5
|
Home-page: https://github.com/BenIlies/NoPASARAN
|
6
6
|
Author: Ilies Benhabbour
|
@@ -10,11 +10,12 @@ class TCPDNSResponsePrimitives:
|
|
10
10
|
state_machine.set_variable_value(outputs[0], server)
|
11
11
|
|
12
12
|
@staticmethod
|
13
|
-
@parsing_decorator(input_args=
|
13
|
+
@parsing_decorator(input_args=3, output_args=0)
|
14
14
|
def start_tcp_dns_server(inputs, outputs, state_machine):
|
15
15
|
server = state_machine.get_variable_value(inputs[0])
|
16
|
-
|
17
|
-
|
16
|
+
listening_ip = int(state_machine.get_variable_value(inputs[1]))
|
17
|
+
port = int(state_machine.get_variable_value(inputs[2]))
|
18
|
+
server.start(listening_ip, port)
|
18
19
|
|
19
20
|
@staticmethod
|
20
21
|
@parsing_decorator(input_args=4, output_args=1)
|
@@ -28,7 +29,7 @@ class TCPDNSResponsePrimitives:
|
|
28
29
|
"""
|
29
30
|
server = state_machine.get_variable_value(inputs[0])
|
30
31
|
timeout = int(state_machine.get_variable_value(inputs[2]))
|
31
|
-
response_spec = state_machine.get_variable_value(inputs[3])
|
32
|
+
response_spec = state_machine.get_variable_value(inputs[3])
|
32
33
|
|
33
34
|
result, _ = server.wait_for_query(timeout, response_spec)
|
34
35
|
state_machine.set_variable_value(outputs[0], result)
|
@@ -10,11 +10,12 @@ class UDPDNSResponsePrimitives:
|
|
10
10
|
state_machine.set_variable_value(outputs[0], server)
|
11
11
|
|
12
12
|
@staticmethod
|
13
|
-
@parsing_decorator(input_args=
|
13
|
+
@parsing_decorator(input_args=3, output_args=0)
|
14
14
|
def start_udp_dns_server(inputs, outputs, state_machine):
|
15
15
|
server = state_machine.get_variable_value(inputs[0])
|
16
|
-
|
17
|
-
|
16
|
+
listening_ip = int(state_machine.get_variable_value(inputs[1]))
|
17
|
+
port = int(state_machine.get_variable_value(inputs[2]))
|
18
|
+
server.start(listening_ip, port)
|
18
19
|
|
19
20
|
@staticmethod
|
20
21
|
@parsing_decorator(input_args=4, output_args=1)
|
@@ -10,13 +10,13 @@ class TCPDNSSocketServer:
|
|
10
10
|
def __init__(self):
|
11
11
|
self.sock = None
|
12
12
|
|
13
|
-
def start(self, port):
|
13
|
+
def start(self, listening_ip, port):
|
14
14
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
15
15
|
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
16
|
-
self.sock.bind((
|
16
|
+
self.sock.bind((listening_ip, port))
|
17
17
|
self.sock.listen(5)
|
18
|
-
logging.info(f"TCP DNS server started on
|
19
|
-
return EventNames.SERVER_STARTED.name, f"TCP DNS server started on
|
18
|
+
logging.info(f"TCP DNS server started on {listening_ip}:{port}")
|
19
|
+
return EventNames.SERVER_STARTED.name, f"TCP DNS server started on {listening_ip}:{port}"
|
20
20
|
|
21
21
|
def wait_for_query(self, timeout, response_spec=None):
|
22
22
|
timeout = float(timeout)
|
@@ -1,7 +1,4 @@
|
|
1
1
|
import socket
|
2
|
-
import struct
|
3
|
-
import select
|
4
|
-
import time
|
5
2
|
from dnslib import DNSRecord, RR, QTYPE, A, CNAME, MX, TXT, NS, SOA, PTR, AAAA, SRV, DS, RRSIG, NSEC, DNSKEY
|
6
3
|
from nopasaran.definitions.events import EventNames
|
7
4
|
import logging
|
@@ -10,12 +7,12 @@ class UDPDNSSocketServer:
|
|
10
7
|
def __init__(self):
|
11
8
|
self.sock = None
|
12
9
|
|
13
|
-
def start(self, port):
|
10
|
+
def start(self, listening_ip, port):
|
14
11
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
15
12
|
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
16
|
-
self.sock.bind((
|
17
|
-
logging.info(f"UDP DNS server started on
|
18
|
-
return EventNames.SERVER_STARTED.name, f"UDP DNS server started on
|
13
|
+
self.sock.bind((listening_ip, port))
|
14
|
+
logging.info(f"UDP DNS server started on {listening_ip}:{port}")
|
15
|
+
return EventNames.SERVER_STARTED.name, f"UDP DNS server started on {listening_ip}:{port}"
|
19
16
|
|
20
17
|
def wait_for_query(self, timeout, response_spec=None):
|
21
18
|
self.sock.settimeout(timeout)
|
@@ -426,7 +426,7 @@ def send_tcp_dns_query(server_ip, server_port, domain, query_type="A"):
|
|
426
426
|
|
427
427
|
try:
|
428
428
|
logging.debug(f"Building DNS query for domain {domain} with type {query_type_str} ({qtype})")
|
429
|
-
dns_query = DNSRecord.question(domain, qtype=qtype)
|
429
|
+
dns_query = DNSRecord.question(domain, qtype=dnsatypes[qtype])
|
430
430
|
dns_query.header.id = random.randint(0, 65535)
|
431
431
|
query_packet = dns_query.pack()
|
432
432
|
result["query"] = dns_query.toZone()
|
@@ -463,7 +463,7 @@ def send_tcp_dns_query(server_ip, server_port, domain, query_type="A"):
|
|
463
463
|
|
464
464
|
except Exception as e:
|
465
465
|
result["error"] = f"Exception occurred: {str(e)}"
|
466
|
-
logging.
|
466
|
+
logging.error("An error occurred while sending the TCP DNS query")
|
467
467
|
return result
|
468
468
|
|
469
469
|
def send_udp_dns_query(server_ip, server_port, domain, query_type="A"):
|
@@ -495,7 +495,7 @@ def send_udp_dns_query(server_ip, server_port, domain, query_type="A"):
|
|
495
495
|
|
496
496
|
try:
|
497
497
|
logging.debug(f"Building DNS query for domain {domain} with type {query_type_str} ({qtype})")
|
498
|
-
dns_query = DNSRecord.question(domain, qtype=qtype)
|
498
|
+
dns_query = DNSRecord.question(domain, qtype=dnsatypes[qtype])
|
499
499
|
dns_query.header.id = random.randint(0, 65535)
|
500
500
|
query_packet = dns_query.pack()
|
501
501
|
result["query"] = dns_query.toZone()
|
@@ -516,5 +516,5 @@ def send_udp_dns_query(server_ip, server_port, domain, query_type="A"):
|
|
516
516
|
|
517
517
|
except Exception as e:
|
518
518
|
result["error"] = f"Exception occurred: {str(e)}"
|
519
|
-
logging.
|
519
|
+
logging.error("An error occurred while sending the UDP DNS query")
|
520
520
|
return result
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nopasaran
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.102
|
4
4
|
Summary: NoPASARAN is an advanced network tool designed to detect, fingerprint, and locate network middleboxes in a unified framework.
|
5
5
|
Home-page: https://github.com/BenIlies/NoPASARAN
|
6
6
|
Author: Ilies Benhabbour
|
@@ -13,7 +13,7 @@ with open(requirements_file, "r") as f:
|
|
13
13
|
# Version will automatically be updated when pushed on the main branch
|
14
14
|
setup(
|
15
15
|
name="nopasaran",
|
16
|
-
version='0.2.
|
16
|
+
version='0.2.102',
|
17
17
|
author="Ilies Benhabbour",
|
18
18
|
author_email="ilies.benhabbour@kaust.edu.sa",
|
19
19
|
description="NoPASARAN is an advanced network tool designed to detect, fingerprint, and locate network middleboxes in a unified framework.",
|
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
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/action_primitives.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/data_manipulation.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/dns_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/event_primitives.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/icmp_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/io_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/ip_primitives.py
RENAMED
File without changes
|
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/probing_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/replay_primitives.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/tcp_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/timing_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/tls_primitives.py
RENAMED
File without changes
|
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/action_primitives/udp_primitives.py
RENAMED
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/condition_primitives/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nopasaran-0.2.100 → nopasaran-0.2.102}/nopasaran/primitives/transition_primitives/__init__.py
RENAMED
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
|