Вопрос или проблема
У меня есть маленький интранет, в котором я полностью контролирую его развертывание. Я даже могу делать MiTM, анализировать/внедрять пакеты и т.д. Есть роутер, за которым находятся 5 пользователей. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу определить источник трафика по IP-адресу. Если я анализирую трафик после роутера, я всегда получаю публичный IP-адрес, поэтому не могу сопоставить и увидеть, использует ли человек A google.com или кто получил доступ к X.com.
Мой вопрос заключается в том, как решить эту проблему с помощью внедрения пакетов? Есть ли какой-либо фрагмент (javascript, который я могу вставить) в мой трафик (только HTTP), чтобы идентифицировать и сопоставить трафик. Так же, как Google Analytics.
Ответ или решение
Ваша задача по идентификации пользователей, находящихся за роутером, может быть решена несколькими способами с использованием методов пакетной инъекции и анализа трафика. Поскольку вы имеете полный контроль над вашей сетью и можете выполнять атаки типа "человек посередине" (MiTM), вы можете внедрять JavaScript-код в HTTP-трафик, чтобы отслеживать действия пользователей. Вот шаги, которые вы можете предпринять:
Шаг 1: Внедрение JavaScript-кода
Вы можете вставить JavaScript-код в загружаемые страницы, который будет отслеживать действия пользователя и отправлять информацию о сеансе обратно на ваш сервер. Вот простой пример кода, который можно внедрить:
<script>
window.onload = function() {
var userData = {
timestamp: new Date().toISOString(),
url: window.location.href,
userAgent: navigator.userAgent,
// Вы можете добавить любые другие данные, которые хотите отслеживать
};
// Отправка данных на сервер
fetch('http://ваш_сервер/track', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userData)
});
};
</script>
Шаг 2: Настройка вашего сервера
Вам нужно создать серверное приложение для получения данных от вашего JavaScript-кода. Например, используя Node.js, вы можете настроить обработчик, который будет принимать POST-запросы с данными:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.post('/track', (req, res) => {
console.log(req.body); // Здесь вы можете сохранять данные в базе данных
res.sendStatus(200);
});
app.listen(3000, () => {
console.log('Сервер запущен на порту 3000');
});
Шаг 3: Идентификация пользователей
Чтобы идентифицировать пользователей, вы можете внедрять уникальные идентификаторы (например, через куки или URL-параметры), которые будут передаваться с каждой отправкой данных. Также рассмотрите возможность создания сессий, чтобы отслеживать активность конкретного пользователя.
Шаг 4: Аудит и анализ данных
Когда данные о пользователях будут собраны на вашем сервере, вы сможете проводить анализ, чтобы увидеть, какой пользователь посетил какие страницы. Вы также можете интегрировать эту информацию в свою базу данных или применять инструменты визуализации, чтобы отслеживать активность пользователей.
Важно
Прежде чем внедрять такой код, убедитесь, что у вас есть разрешение от пользователей на сбор данных, чтобы избежать правовых последствий. Также учитывайте аспекты конфиденциальности и безопасной обработки персональных данных.
Используя данные методы, вы сможете эффективно идентифицировать пользователей на вашем локальном уровне и анализировать их интернет-активность, несмотря на используемый общедоступный IP-адрес.