Идентификация пользователя за маршрутизатором

Вопрос или проблема

У меня есть маленький интранет, в котором я полностью контролирую его развертывание. Я даже могу делать 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-адрес.

Оцените материал
Добавить комментарий

Капча загружается...