Started working on bank scanner

This commit is contained in:
Thastertyn 2025-02-06 15:17:37 +01:00
parent 7a7417ac1c
commit da7c809a16
2 changed files with 38 additions and 7 deletions

View File

@ -0,0 +1,37 @@
from typing import Optional
import socket
import threading
import logging
class BankScanner():
def __init__(self, host: str, port_start: int, port_end: int):
self.logger = logging.getLogger(__name__)
self.host = host
self.port_start = port_start
self.port_end = port_end
def scan(self) -> Optional[socket]:
threads = []
for port in range(self.port_start, self.port_end + 1):
t = threading.Thread(target=self.__probe_for_open_ports, args=(self.host, port,), name=f"ScannerThread-{self.host}:{port}")
threads.append(t)
def __probe_for_open_ports(self, host: str, port: int) -> Optional[socket]:
try:
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.connect((host, port))
self.__scan_for_bank(connection)
except socket.error as e:
if e.errno == 111: # Connection refused
self.logger.debug("Port %d not open", port)
def __scan_for_bank(self, connection: socket.socket):
ping_command = "BC"
connection.sendall(ping_command.encode("utf-8"))
response = connection.recv(1024)
host, port = connection.getpeername()
if response == f"BC {host}\n\r":
self.logger.debug("Bank application found on %s:%s", host, port)
return connection

View File

@ -28,10 +28,4 @@ class BankProxy():
raise NoPortsOpenError("Destination host has no open ports from range")
def __proxy_request(self, port):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
client_socket.connect((self.address, port))
client_socket.sendall(self.request.as_request())
response = client_socket.recv(1024)
return response
pass