This commit is contained in:
Tim Blume 2020-08-05 02:08:41 +02:00
commit 103011f8f7
7 changed files with 415 additions and 0 deletions

51
mitmaddon/littlesnitch.py Normal file
View file

@ -0,0 +1,51 @@
#!/usr/bin/env python3
import pdb
from mitmproxy import ctx
import threading
from queue import Queue
import time
import zmq
def networking(q):
print("starting thread")
context = zmq.Context()
socket = context.socket(zmq.PAIR)
socket.connect("tcp://127.0.0.1:12345")
while True:
print("try recv")
message = socket.recv()
if message == b"littlesnitch_init":
print("connected")
socket.send(b"mitmaddon")
while True:
a = q.get()
print(f"got {a}")
if a:
socket.send(str.encode(a))
q.task_done()
else:
raise ValueError("init failed")
class Counter:
def __init__(self):
self.q = Queue()
self.thread = threading.Thread(name="NetworkThread", target=networking, args=(self.q,))
self.thread.start()
self.q.join()
def request(self, flow):
data = flow.request.data
self.q.put(f"{flow.id},REQ,{data.method},{data.scheme},{data.host},{data.port},{data.path},{data.http_version},{data.headers}")
self.q.join()
def response(self, flow):
data = flow.response.data
self.q.put(f"{flow.id},RES,{data.status_code},{data.http_version},{data.reason},{data.headers},{data.content},{data.timestamp_start},{data.timestamp_end}")
self.q.join()
addons = [
Counter()
]