Files
Auto-Shodanner/libs/scanners/tcp80.py
T

46 lines
1.2 KiB
Python

import random
import socket
from faker import Faker
def generate_headers():
fake = Faker()
return [
f"User-Agent: {fake.user_agent()}",
f"Accept: {fake.mime_type()}",
f"Accept-Language: {fake.language_code()},{fake.language_code()};q=0.9",
f"Accept-Encoding: {fake.mime_type()}, {fake.mime_type()}, {fake.mime_type()}",
f"Referer: {fake.url()}",
f"Connection: {random.choice(['keep-alive', 'close'])}",
f"Cache-Control: {random.choice(['no-cache', 'max-age=0'])}",
f"Pragma: {random.choice(['no-cache', ''])}",
]
def scan(host:str, port:int):
returnVal = ""
error = False
try:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
headers = generate_headers()
request = "GET / HTTP/1.1\r\n"
request += "Host: " + host + "\r\n"
request += "\r\n".join(headers)
request += "\r\n\r\n"
client_socket.send(request.encode())
while True:
chunk = client_socket.recv(64)
if not chunk: break
returnVal += chunk.decode()
except Exception as e:
returnVal += f"<error {e}>"
error = True
finally:
if client_socket:
client_socket.close()
return returnVal, error