From 66599f38fe4c72c918c33ea7d64c7c80c5f97bfa Mon Sep 17 00:00:00 2001 From: marcsello Date: Tue, 20 Jul 2021 11:59:52 +0200 Subject: [PATCH] Initial commit --- .gitignore | 8 ++++++++ main.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .gitignore create mode 100644 main.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53fd5d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.swp +venv +*.pyc +__pycache__/* +__pycache__ +*.wpr +*.log +.idea diff --git a/main.py b/main.py new file mode 100644 index 0000000..6abeda4 --- /dev/null +++ b/main.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +import socket +import time +import fcntl +import struct + + +def get_ip_address(ifname): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15].encode()))[20:24]) + + +def get_uptime(): + with open('/proc/uptime', 'r') as f: + uptime_seconds = float(f.readline().split()[0]) + + return uptime_seconds + + +def main(): + sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, b"eth0") + + print("Beaconing...") # or something, idk i don't do english + while True: + + ipaddr = "" + try: + ipaddr = get_ip_address("eth0") + except: + pass + + message = b"BIRBOX|" + ipaddr.encode() + b"|" + str(int(get_uptime())).encode() + + sock.sendto(message, ('', 6969)) + time.sleep(10) + + +if __name__ == "__main__": + print("Starting beacon...") + try: + main() + except KeyboardInterrupt: + pass + + print("Beacon stopped.")