ЧИТАЙТЕ
Это приложение решает проблему атак на локальную сеть и перехвата данных. Он может выполнять двухточечные атаки на любой целевой терминал в локальной сети, чтобы перехватить восходящие и нисходящие интернет-данные целевого терминала. С учетом неоднородности множества источников и характера сетевых данных в режиме реального времени разработан механизм целевого обнаружения и мониторинга в сочетании с естественными характеристиками NoSQL MongoDB.
1. Server: The core technology used in the backend is SpringBoot. The core technologies used for network attacks include winpcap, jpcap, ARP Spoofing (ARP deception), MITM (Man-in-the-Middle Attack), and network packet grouping/degrouping, decompression, and restoration.
2. Client: The core technologies used in the frontend include Angular6, ECharts, etc.
3. Packaging and Deployment: The front-end and back-end are packaged into the same jar file using Maven.
1. Конфигурация среды
1) макОС
Необходимые загрузки и установка программного обеспечения
- Java (не выбирайте 64-разрядную версию): Загрузка Java
- MongoDB (необходимо выбрать 3.4.24): Загрузка MongoDB
- Последняя версия WinPcap: Загрузка WinPcap
- Wireshark: Скачать Wireshark
- Мавен, NodeJS
Требуемые конфигурации
- Включите переадресацию IP:
sudo sysctl -w net.inet.ip.forwarding=1
. Проверьте, включена ли переадресация IP (должно быть 1): sudo sysctl -a | grep net.inet.ip.forwarding
. После перезапуска системы переадресация IP вернется в состояние «выключено» по умолчанию, поэтому ее необходимо снова включить; в противном случае атакуемая цель не сможет нормально получить доступ к Интернету. - Добавьте абсолютный путь к каталогу bin в каталоге установки MongoDB к пути к переменной среды, чтобы запустить службу MongoDB из командной строки.
- Скопируйте
libjpcap.jnilib
в /Library/Java/Extensions/
. - Убедитесь, что сервер, на котором запущена эта программа, и целевой мобильный телефон подключены к одному и тому же маршрутизатору через Wi-Fi.
- Перейдите в корневой каталог кода в командной строке, скомпилируйте и упакуйте с помощью Maven:
mvn package -Dmaven.test.skip=true
, скопируйте jpcap-mitm.jar
в любой каталог в качестве рабочего каталога и создайте data/db
папку в этом рабочем каталоге как папку данных MongoDB. - Откройте загруженный пакет Wireshark dmg, вы увидите пакет
Install ChmodBPF.pkg
, дважды щелкните его, чтобы установить этот пакет программного обеспечения.
Шаги запуска
- Откройте терминал, перейдите в указанный рабочий каталог и запустите
mongod --dbpath=data/db
. Через несколько секунд дождитесь успешного запуска службы MongoDB и распечатайте журнал, похожий на: *** ожидание соединений на порту 27017. - Нажмите кнопку «Пуск» Windows в левом нижнем углу, введите
cmd
, затем щелкните правой кнопкой мыши, чтобы запустить командную строку от имени администратора. Перейдите к D:mitm
в командной строке, затем запустите java -jar jpcap-mitm.jar
. Подождите, пока служба успешно запустится, и распечатайте журнал, похожий на: *** Приложение запущено через ** секунд. - Откройте браузер Chrome и перейдите по адресу
http://localhost:8888
или получите доступ к программе удаленно с другого устройства через http://<local IP>:8888
. - После успешного открытия сайта управления этой программой выберите правильную сетевую карту в разделе
Select interface
, установите локальный IP-адрес и MAC-адрес, целевой мобильный IP-адрес и MAC-адрес, IP-адрес и MAC шлюза (маршрутизатора). Обратите внимание, что все это IP-адреса внутренней сети и должны находиться в одной подсети. - IP-адрес и MAC-адрес целевого мобильного телефона можно просмотреть в информации о подключении Wi-Fi на телефоне. Если вы не знаете локальный IP-адрес и MAC-адрес или IP-адрес и MAC-адрес маршрутизатора, введите
ifconfig
в терминале, чтобы найти адрес IPv4, физический адрес и шлюз по умолчанию. Запустите arp -a
, чтобы узнать MAC-адрес шлюза. - После установки вышеуказанной информации нажмите кнопку настройки, после чего приложение установит соответствующее соединение. При каждом запуске программы вы можете сбросить соединение, но после установки его нельзя изменить. Для сброса закройте процесс
jpcap-mitm.jar
в окне командной строки, нажав control+c
, а затем перезапустите программу. - Прежде чем начать атаку, попробуйте использовать целевой мобильный телефон для доступа к веб-сайтам или приложениям. Убедитесь, что телефон может нормально подключаться к Интернету, не запуская атаку.
- После нажатия кнопки «Начать атаку» подождите несколько секунд, чтобы атака вступила в силу и отобразилась динамическая панель. Проверьте данные на панели статистики в реальном времени ниже и используйте целевой мобильный телефон для доступа к веб-сайтам или приложениям, чтобы просмотреть обновления панели данных.
- После завершения функций веб-сайта или приложения нажмите «Остановить атаку». Атака немедленно прекратится, но сервер перехватил большое количество пакетов, которые необходимо последовательно сохранять, поэтому данные панели статистики в реальном времени могут продолжать медленно увеличиваться в течение нескольких минут, прежде чем остановиться.
- После остановки атаки подождите несколько секунд, пока не появится сообщение о завершении анализа пакета. Затем вы можете выбрать идентификатор пакета (последний идентификатор) этой атаки на страницах анализа, статистики и дампа, чтобы просмотреть подробное содержимое и диаграммы.
Примечания
- Если появится сообщение об ошибке, проверьте, не завершился ли пакет jar командной строки ненормально. Возможно, программа вышла из строя. Попробуйте перезапустить банку. Обратите внимание на лог командной строки программы. Если ошибки выдаются постоянно, программа, возможно, не сможет нормально перехватывать пакеты. Попробуйте перезапустить банку.
- Если на маршрутизаторе включена статическая привязка IP/MAC, отключен DHCP или модули защиты от атак ARP, это может привести к тому, что программа будет перехватывать только восходящие пакеты, а не нисходящие. Если настройки роутера невозможно настроить, переключитесь на другое оборудование и атакуйте снова. Если шлюзовое устройство очень мощное, атака может оказаться не совсем успешной.
- Если после запуска атаки цель может нормально получить доступ к Интернету, но на странице управления программы не прослушиваются пакеты или цель не может получить доступ к Интернету, проверьте, включена ли в системе переадресация IP, внимательно проверьте IP и MAC всех устройства, настроенные в Интернете, проверьте правильность выбранного интерфейса сетевой карты, проверьте, подключены ли сервер и целевой мобильный телефон к одному и тому же маршрутизатору, проверьте, изменился ли IP-адрес целевого мобильного телефона (может быть фиксированный IP-адрес), проверьте, окно командной строки, в котором работает jar, запускается как Администратор, попробуйте перезагрузить компьютер и подождать несколько минут, прежде чем повторить попытку.
- Приступ не должен длиться слишком долго, оптимально несколько десятков секунд. После тестирования остановите атаку, чтобы предотвратить непрерывные атаки на цель и шлюз, вызывающие бурю данных в локальной сети, которая может перегрузить шлюз и привести к сбою всей локальной сети.
2) Окна
Необходимые загрузки и установка программного обеспечения
- Java (не выбирайте 64-разрядную версию): Загрузка Java
- MongoDB (необходимо выбрать 3.4.24): Загрузка MongoDB
- Последняя версия WinPcap: Загрузка WinPcap
- Мавен, NodeJS
Требуемые конфигурации
- Включите переадресацию IP-адресов. Нажмите кнопку «Пуск» Windows в левом нижнем углу, введите
regedit
и выберите редактор реестра. Щелкните правой кнопкой мыши, чтобы запустить редактор реестра от имени администратора. Перейдите к разделу реестра HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
, выберите элемент IPEnableRouter
и измените значение на 1. - Добавьте абсолютный путь к каталогу bin в каталоге установки MongoDB к пути к переменной среды, чтобы запустить службу MongoDB из командной строки.
- Создайте рабочий каталог для этой программы. Например, создайте папку
D:mitm
в качестве рабочего каталога. В том же корневом каталоге, что и рабочий каталог, создайте папку данных MongoDB data/db
. Например, если корневой каталог — D
, создайте папку D:datadb
. - Убедитесь, что сервер, на котором запущена эта программа, и целевой мобильный телефон подключены к одному и тому же маршрутизатору через Wi-Fi.
- Перейдите в корневой каталог кода в командной строке, скомпилируйте и упакуйте с помощью Maven:
mvn package -Dmaven.test.skip=true
, скопируйте jpcap-mitm.jar
и Jpcap.dll
в рабочий каталог и создайте data/db
в этом рабочем каталоге как папка данных MongoDB.
Шаги запуска
- Нажмите кнопку «Пуск» Windows в левом нижнем углу, введите
cmd
, затем щелкните правой кнопкой мыши, чтобы запустить командную строку от имени администратора. Перейдите к D:
, затем запустите mongod
. Через несколько секунд подождите, пока служба MongoDB успешно запустится, и распечатайте журнал, похожий на: *** ожидание соединений на порту 27017. Не используйте левую кнопку мыши для выбора какого-либо содержимого в окне командной строки. Выбранное состояние приведет к приостановке службы. - Нажмите кнопку «Пуск» Windows в левом нижнем углу, введите
cmd
, затем щелкните правой кнопкой мыши, чтобы запустить командную строку от имени администратора. Перейдите к D:mitm
в командной строке, затем запустите java -jar jpcap-mitm.jar
. Подождите, пока служба успешно запустится, и распечатайте журнал, похожий на: *** Приложение запущено через ** секунд. - Откройте браузер Chrome и перейдите по адресу
http://localhost:8888
или получите доступ к программе удаленно с другого устройства через http://<local IP>:8888
. - После успешного открытия сайта управления этой программой выберите правильную сетевую карту в разделе
Select interface
, установите локальный IP-адрес и MAC-адрес, целевой мобильный IP-адрес и MAC-адрес, IP-адрес и MAC-адрес шлюза (маршрутизатора). Обратите внимание, что все это IP-адреса внутренней сети и должны находиться в одной подсети. - IP-адрес и MAC-адрес целевого мобильного телефона можно просмотреть в информации о подключении Wi-Fi на телефоне. Если вы не знаете локальный IP-адрес и MAC-адрес или IP-адрес и MAC-адрес маршрутизатора, нажмите кнопку «Пуск» Windows в левом нижнем углу, введите
cmd
, затем щелкните правой кнопкой мыши, чтобы запустить командную строку от имени администратора. Введите ipconfig /all
в командной строке, чтобы найти раздел Wi-Fi адаптера беспроводной локальной сети, найдите адрес IPv4, физический адрес и шлюз по умолчанию. Запустите arp -a
, чтобы узнать MAC-адрес шлюза. - После установки вышеуказанной информации нажмите кнопку настройки, после чего приложение установит соответствующее соединение. При каждом запуске программы вы можете сбросить соединение, но после установки его нельзя изменить. Для сброса закройте процесс
jpcap-mitm.jar
в окне командной строки, нажав control+c
, а затем перезапустите программу. - Прежде чем начать атаку, попробуйте использовать целевой мобильный телефон для доступа к веб-сайтам или приложениям. Убедитесь, что телефон может нормально подключаться к Интернету, не запуская атаку.
- После нажатия кнопки «Начать атаку» подождите несколько секунд, чтобы атака вступила в силу и отобразилась динамическая панель. Проверьте данные на панели статистики в реальном времени ниже и используйте целевой мобильный телефон для доступа к веб-сайтам или приложениям, чтобы просмотреть обновления панели данных.
- После завершения функций веб-сайта или приложения нажмите «Остановить атаку». Атака немедленно прекратится, но сервер перехватил большое количество пакетов, которые необходимо последовательно сохранять, поэтому данные панели статистики в реальном времени могут продолжать медленно увеличиваться в течение нескольких минут, прежде чем остановиться.
- После остановки атаки подождите несколько секунд, пока не появится сообщение о завершении анализа пакета. Затем вы можете выбрать идентификатор пакета (последний идентификатор) этой атаки на страницах анализа, статистики и дампа, чтобы просмотреть подробное содержимое и диаграммы.
Примечания
- Если появится сообщение об ошибке, проверьте, не завершился ли пакет jar командной строки ненормально. Возможно, программа вышла из строя. Попробуйте перезапустить банку. Обратите внимание на лог командной строки программы. Если ошибки выдаются постоянно, программа, возможно, не сможет нормально перехватывать пакеты. Попробуйте перезапустить банку.
- Если на маршрутизаторе включена статическая привязка IP/MAC, отключен DHCP или модули защиты от атак ARP, это может привести к тому, что программа будет перехватывать только восходящие пакеты, а не нисходящие. Если настройки роутера невозможно настроить, переключитесь на другое оборудование и атакуйте снова. Если шлюзовое устройство очень мощное, атака может оказаться не совсем успешной.
- Если после запуска атаки цель может нормально получить доступ к Интернету, но на странице управления программы не прослушиваются пакеты или цель не может получить доступ к Интернету, проверьте, включена ли в системе переадресация IP, внимательно проверьте IP и MAC всех устройства, настроенные в Интернете, проверьте правильность выбранного интерфейса сетевой карты, проверьте, подключены ли сервер и целевой мобильный телефон к одному и тому же маршрутизатору, проверьте, изменился ли IP-адрес целевого мобильного телефона (может быть фиксированный IP-адрес), проверьте, окно командной строки, в котором работает jar, запускается как Администратор, попробуйте перезагрузить компьютер и подождать несколько минут, прежде чем повторить попытку.
- Если имя в списке интерфейсов сетевой карты не позволяет определить, какой из них выбрать, откройте редактор реестра и проверьте ключ реестра
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{*}
. Этот список соответствует списку интерфейсов. Проверьте по очереди каждый элемент интерфейса и посмотрите, какая конфигурация соответствует текущему IP-адресу сервера с указанием интерфейса, который нам нужно выбрать. - Приступ не должен длиться слишком долго, оптимально несколько десятков секунд. После тестирования остановите атаку, чтобы предотвратить непрерывные атаки на цель и шлюз, вызывающие бурю данных в локальной сети, которая может перегрузить шлюз и привести к сбою всей локальной сети.
2. Описание программы
Внешний интерфейс этого проекта выглядит следующим образом.
Страница атаки по локальной сети
- В этом интерфейсе установите сетевую карту, IP-адрес и MAC-адрес локального компьютера/цели/шлюза, установите список отслеживаемых доменов (один домен или несколько доменов, разделенных запятыми), а затем управляйте началом или остановкой атаки.
- Первым шагом является выполнение необходимых настроек. Эти настройки можно выполнить только после каждого нового запуска программы. Информация будет сохранена в базе данных, и программа автоматически прочитает эту информацию при следующем запуске. При первом запуске программы она автоматически считывает локальный IP и MAC. Чтобы это было правильно, необходимо тщательно подтвердить это. Сетевой карте необходимо выбрать устройство сетевой карты, используемое для обычного доступа в Интернет. Целью является мобильный телефон или другие устройства, которые нам необходимо отслеживать. Под шлюзом обычно подразумевается маршрутизатор или другие шлюзовые устройства, к которым мы подключаемся через Wi-Fi. Вся вышеперечисленная информация должна быть строго правильно настроена, иначе программа не сможет нормально работать. Интерфейс настройки показан на рисунке ниже:
- IP-адрес и MAC-адрес шлюза можно просмотреть на устройстве шлюза или их также можно увидеть из локальной таблицы маршрутизации, как показано на рисунке ниже:
- Когда мы завершим настройку и сохраним или начнем атаку, список адресов доменных имен, который будет отслеживаться, будет разрешен DNS, а соответствующий список IP-адресов будет обновлен до MongoDB, а затем официально начнется атака локальной сети и перехват данных. Интерфейс покажет статус атаки, как показано на рисунке ниже:
- В это время вы можете перетащить страницу в нижнюю часть, чтобы просмотреть статистику перехвата пакетов. Статистическая часть в основном разделена на два типа: восходящий и нисходящий, которые далее делятся на четыре типа TCP/UDP/ICMP/ARP. Восходящий поток означает пакеты, отправленные от цели, а нисходящий поток означает пакеты, полученные целью. Если цель в это время не просматривает указанный список доменов, вся статистика всегда будет равна 0. Если она начнет просматривать указанный список доменов, вы увидите, что статистика начинает содержать данные, как показано на рисунке ниже:
- Когда мы остановим атаку, автоматически запустится детальный анализ пакетов в этой атаке. После завершения атаки также появится всплывающее окно, как показано на рисунке ниже:
Страница анализа пакетов
- В этом интерфейсе сначала будет показано, выполняется ли процесс анализа пакетов. Если он все еще анализируется, вам необходимо дождаться завершения анализа, прежде чем просматривать результаты. После завершения анализа статус автоматически перейдет на завершено, и вы сможете просмотреть результаты анализа.
- Во-первых, мы можем выбрать фильтр пакетов: идентификатор пакета атаки/восходящий поток или нисходящий поток/протокол/контент. Каждый элемент фильтра можно выбрать несколько раз или оставить пустым, что означает совпадение всех типов. После нажатия кнопки «Фильтр» в первой таблице ниже будут показаны все совпавшие пакеты после анализа. Обратите внимание, что пакеты здесь отличаются от пакетов в интерфейсе атаки. Все пакеты здесь представляют собой комбинированные пакеты, а в интерфейсе атаки — оригинальные кадры. Поэтому количество пакетов здесь намного меньше, чем раньше. В первой таблице мы можем увидеть все важные поля пакетов, включая некоторые поля после анализа (например, заголовок HTTP/тело HTTP/МЕТОД и т. д.), как показано на рисунке ниже:
- Щелкнув любую строку в первой таблице, проверьте вторую таблицу ниже, чтобы увидеть, какие исходные кадры данных соответствуют этому пакету. Здесь мы можем увидеть некоторые основные поля кадров этих пакетов, как показано на рисунке ниже:
Страница статистики пакетов
- Аналогично, в этом интерфейсе сначала будет показано, идет ли процесс анализа пакетов. Если он все еще анализируется, вам необходимо дождаться завершения анализа, прежде чем просматривать результаты. После завершения анализа статус автоматически перейдет на завершено, и вы сможете просмотреть результаты анализа.
- Во-первых, мы можем фильтровать по пакету атак, который можно выбрать несколько раз или оставить пустым, что означает, что все пакеты атак совпадают, как показано на рисунке ниже:
- Нажав фильтр, вы можете сначала увидеть статистику пакетов различных подробных типов протоколов, в основном разделенных на две категории: восходящий и нисходящий, каждая из которых дополнительно делится на типы протоколов HTTP/HTTPS/TCP/UDP/ICMP/ARP. Обратите внимание, что здесь TCP относится к другим типам протоколов TCP, кроме HTTP и HTTPS, тогда как HTTP и HTTPS обычно анализируются и учитываются отдельно. Интерфейс статистики показан на рисунке ниже:
- Продолжая смотреть вниз, вы также можете увидеть круговые диаграммы каждого типа протокола, разделенные на две категории: восходящий и нисходящий, как показано на рисунке ниже:
- Аналогичным образом вы также можете увидеть круговые диаграммы каждого типа контента, разделенные на две категории: восходящий и нисходящий, где
other
относится к другим TCP-пакетам, кроме HTTP/HTTPS, и пакетам других протоколов, которые невозможно проанализировать. Поскольку фактическое содержимое таких пакетов не может быть проанализировано, они единообразно классифицируются как other
, как показано на рисунке ниже: - Мы также можем увидеть распределение различного содержимого пакетов на основе временной шкалы. Многолинейный график внизу показывает тенденции изменения содержимого различных пакетов, а круговая диаграмма вверху управляется мышью. Когда мышь перемещается по оси X многострочного графика, круговая диаграмма отображает статистику и пропорции содержимого различных пакетов в текущий момент времени по оси X в режиме реального времени, как показано на рисунке ниже:
- Аналогично, временная диаграмма также разделена на восходящие и нисходящие, как показано на рисунке ниже, где показаны нисходящие данные:
Страница хранилища пакетов
- На этой странице мы можем увидеть основные данные каждой атаки, такие как идентификатор атаки/время атаки/количество кадров данных в восходящем направлении/количество кадров данных в нисходящем направлении и т. д. Мы также можем работать с каждым процессом атаки, повторно анализировать или удалять все связанные пакеты и результаты анализа, как показано на рисунке ниже:
Вклад