Как увеличить мощность wifi адаптера в kali linux

Обновлено: 04.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

В разных странах разное законодательство и технические нормативы, в том числе в отношении Wi-Fi. В некоторых странах не разрешено использовать частоты некоторых Wi-Fi каналов (например, в США нельзя использовать каналы 12, 13 и 14). В большинстве стран установлено ограничение на мощность Wi-Fi сигнала в 20.0 dBm. Но есть страны в которых стоит ограничение в 30.0 dBm. Можно воспользоваться этой лазейкой (заставить думать Wi-Fi карту, что она в стране где разрешено 30.0 dBm) и поднять её мощность (TX Power) до значения в 30.0 dBm.

Для Wi-Fi устройств есть такое понятие как управляющий домен (regulatory domain или "regdomain") – именно в этом параметре указана страна, в котором, как предполагается, работает данное устройство. Также имеется сопутствующая база данных, в которой для каждой страны прописаны разрешённые частоты и разрешённая для них мощность.

  • мы устанавливаем общесистемную настройку управляющего домена на значение той страны, где разрешена мощность в 30.0 dBm;
  • устанавливаем повышенную мощность для беспроводного адаптера.

По идее, описанный метод должен работать для многих беспроводных карт, но на практике встречаются следующие ограничения:

  • физическая неспособность карт работать на мощностях более 20.0 dBm (например, беспроводной интерфейс изначально показывает мощность 15.0 dBm при разрешённых 20.0 dBm – в таком случае никаким способом не удастся поднять мощность выше 15.0 dBm, хотя бы даже до тех же самых 20.0 dBm);
  • особенности драйверов, например, некоторые драйверы игнорируют системные настройки. Это не является неразрешимой проблемой – но для каждой модели нужен свой подход (обычно, требуется небольшой патч для драйвера) или (что намного проще), патч базы данных управляющего домена.

Посмотреть, что вам разрешено прямо сейчас и на что способен ваш беспроводной адаптер можно командой:

Например, для России разрешены следующие частоты и мощность:



Оказывается, каналы с 100 по 128 не разрешается использовать, а для каналов с 132 по 165 разрешена повышенная мощность.

Полную актуальную базу в текстовом виде можно посмотреть здесь.

Странами, в которых разрешены каналы с 1 по 13 на мощности 30.0 dBm являются (к примеру):

Обратите внимание, что для каналов на 5 ГГц у них разные значения (разный список разрешённых частот и мощностей).

Далее я покажу поднятие мощности на примере Alfa AWUS052NH в Kali Linux. В старых инструкциях указывается на необходимость установить дополнительные пакеты – в настоящее время это не нужно. Всё необходимое в Kali Linux уже имеется! Подробности для BlackArch/Arch Linux ниже.

Останавливаем службы, которые могут нам помещать (это необязательно, должно работать и с ними):

Чтобы узнать, настройки какого региона действуют в данный момент выполните команду:


Строка country 00 говорит о том, что у меня не установлено какое-либо значение и применяются стандартные настройки.

Теперь устанавливаем управляющий домен на значение BZ:

Сразу можно проверить, принялись ли настройки:


Заодно на новые возможности можно посмотреть командой:


Если на данном этапе настройки управляющего замена не применились (не установились) на системном уровне, то не получится повысить мощность Wi-Fi адаптера, пока вы не разберётесь с причиной этого.

Посмотреть имя беспроводного интерфейса и его текущее состояние можно командой:

Далее увеличиваем мощность (замените wlan0 на имя вашего беспроводного интерфейса):


Строка txpower 30.00 dBm говорит о том, что у нас всё получилось.

Усиление мощности для Alfa AWUS036NHA

Для AWUS036NHA эти же команды не имеют эффекта.

Объяснение можно найти здесь:

«За назначение свойств каналам отвечает regulatory domain, который зависит от страны. Данные берутся из базы данных в юзерспейсе при помощи утилиты crda. По идее сменить страну можно командой «iw reg set $КОД_СТРАНЫ», но в случае с устройствами от atheros из коробки этот метод не работает, так как у атеросов regulatory domain зашит в EEPROM и линуксовый драйвер читает именно его, игнорируя настойки системы. К счастью, у нас тут opensource и мы можем наложить несложный патч:»

Т.е. это тот самый случай, когда драйвер игнорирует системные настройки и использует значение, зашитое производителем на аппаратном уровне. Проблема, в принципе, решаема, причём несколькими различными методами.

Если у вас Alfa AWUS036NHA или любая другая, которая игнорирует системные настройки regulatory domain, то это не повод впадать в отчаянье.

Начнём с того, что проверим, для какой страны произведена ваша беспроводная карта:


В моём случае строка country GB говорит о том, что карта произведена для страны, которая в базе данных названа GB.

Мой метод отличается от других инструкций, где вручную устанавливаются пакеты wireless-regdb и crda. Эти пакеты уже должны быть установлены в вашей системе (в Kali Linux есть по умолчанию). Единственное что мы сделаем – заменим файл базы данных.

В последних версиях Kali Linux не установлен пакет crda, установим его:

Установим зависимости, необходимые для компиляции базы данных:

Клонируем исходные файлы:

Теперь нам нужно отредактировать текстовый файл базы данных:


Эти же строки впишите для country GB (у вас может быть другая страна — зависит от вашей карты, вы можете посмотреть это значение командой sudo iw reg get):


Сохраните и закройте файл.

Пропатчим файлы для использования Python3

В результате из текстового файла был создан бинарный файл БД (regulatory.bin) которым мы подменим одноимённый файл в системе.

Удаляем исходный файл базы данных:

Копируем нашу модифицированную БД:

Ещё раз для нового формата, который также используется:

Копируем необходимый публичный ключ (файл БД подписан сгенерированным специально для нашего пользователя ключом):

Теперь НЕ нужно использовать sudo iw reg set BZ.

Убедимся в этом:


говорят о возможности увеличить мощность до 30 dBm.


После того, как мы пропатчили базу данных, больше нет необходимости менять значение управляющего домена ни для какого беспроводного интерфейса!

Повышение можности Wi-Fi адаптера в BlackArch / Arch Linux

В BlackArch/Arch Linux рекомендуется установить пакет wireless-regdb-pentest. Подробности в статье «Как увеличить мощность (TX-Power) Wi-Fi карты в BlackArch». Если по каким-либо причинам вы не хотите использовать wireless-regdb-pentest, то ниже описано, как это сделать другим путём (по аналогии с Kali Linux).

Все вышеприведённые команды работают и в BlackArch / Arch Linux. Но необходимо установить пару дополнительных пакетов:

В файле /etc/conf.d/wireless-regdom можно разкомментировать строку с соответствующей страной, чтобы значение устанавливалось при загрузке системы.

Также в BlackArch / Arch Linux другое имя беспроводных интерфейсов – замените их в командах на правильные.

В BlackArch / Arch Linux при генерации бинарного файла БД возникнет ошибка

Она связана с тем, что по умолчанию Arch Linux использует Python 3, а не Python 2. Для решения проблемы откройте файл Makefile:

И замените в нём строку

Заключение

Увеличение мощности Wi-Fi адаптера бесспорно полезно только при глушении Wi-Fi, а также в атаках деаутентификации. Во всех остальных атаках увеличение мощности совсем не обязательно что-то изменит, поскольку мощность влияет на то, как громко «кричит» ваш Wi-Fi адаптер, но не увеличивает его чувствительность (как хорошо он «слышит» других).

Также следует помнить о возможности разблокировать некоторые каналы, которые могут быть недоступны в вашей стране.

Если вы хотите всё вернуть в исходное состояние, то выполните следующие команды:

Обращение к тем, кто разбирается

В этой инструкции мы меняем базу данных, генерируем свою пару ключ-сертификат и подписываем ей БД. Раньше проверка подписи выполнялась пакетом crda и нам достаточно было просто скопировать свой сертификат, чтобы crda делала по нему проверку.

Теперь валидация сертификата выполняется на уровне ядра и crda больше не нужен. По этой причине в последних версиях crda уже не устанавливается по умолчанию. Тем не менее в репозиториях этот пакет присутствует, его можно установить. После этого за проверку подписи вновь начинает отвечать crda и мы используем проверенный способ с копированием нашего сертификата в /lib/crda/pubkeys/.

Но теперь это уже можно назвать костылём и не факт, что пакет crda вовсе не уберут из репозитория.

В связи с этим вопрос, кто знает, как добавить свой сертификат, чтобы он использовался для проверки подписи файла regulatory.db на уровне ядра, то есть без crda? Если кто-то знает, то пишите в комментариях.

В данный момент всё примерно так:

Но в выводе получаем, что загруженная БД regulatory.db неправильно сделана или подпись отсутствует/недействительна:

Пока пакет crda решает эту проблему.

Небольшой анонс, на Arch Linux пакет wireless-regdb-pentest теперь делает так:




То есть устанавливает TX power на 36.00 dBm. Тестирую, уже обнаружились нюансы, но всё вроде решаемо. Если всё получится, то адаптирую это для Kali Linux.

Данная статья носит чисто теоретическое исследование, в части стран, в частности в России законодательством запрещено увеличивать мощность wi-fi адаптера. Все действия вы будете производить на ваш страх и риск. Тем не менее в материале вы найдете исчерпывающую информацию о том как увеличить мощность WIFI сигнала программно.

Как увеличить мощность WIFI

В предыдущей статье мы частично рассмотрели тюнинг с выставлением региона Белиз, была дана ссылка на интересный материал wi-fi more 30 dBm данная статья изначально задумывалась, как перевод, но в ходе написания я решил пойти немного дальше.

Все действия предпринимались с адаптерами Alfa Network, усиление мощности при работе с другими адаптерами не гарантируется!

Для ленивых, или для тех кому лень читать был написан небольшой скрипт: запустив следующую последовательность в консоли при выборе региона BO вы получите мощность в 33 dBm или 2 Вт .

script

Вы наверно спросите зачем такие сложности и что мы будем с этого иметь? Давайте разберемся откуда у нас берутся стандартные настройки и что мы можем с этим сделать. Существует ISO 3166, определяющий кодовые обозначения государств и зависимых территорий, а так же crda agent, который посылает ядру wireless regulatory domain. Crda запускается udev скриптом. Если мы хотим изменить регион для тюнинга мы используем утилиту iw.

rules

Так вот когда crda посылает ядру информацию о текущем регионе и параметрах для него, он берет информацию из regulatory.bin — The Linux wireless regulatory database. Это обыкновенный файл, который мы можем найти по пути /lib/crda/regulatory.bin, минус что мы не можем посмотреть его стандартными средствами, для просмотра нам надо использовать утилиту regdbdump.

regdb

Так вот для того что бы у нас все заработало как мы хотим, нам надо создать новый crda и regulatory.bin, а наградой за наши труды нам будет увеличение мощности:

базовые 20dBm — 100 мВт

используем BZ 30dBm — 1000 мВт

тюнинг на примере BO 33dBm — 2000 мВт

давайте посмотрим, что мы имеем на старте

default

Для начала нам надо установить дополнительное программное обеспечение.

new soft

После скачаем исходники crda и regulatory.bin , в оригинальном мануале ссылки неправильные.

git

Первым делом изменим на нужные значения в файле db.txt и соберем regulatory.bin . Я сторонник использовать sed, но вы можете отредактировать файл в ручном режиме

db.txt

после чего нам надо заменить оригинальный regulatory.bin и сертификаты для сборки crda

после чего запускаем сборку и установку

да я не описался мы делаем make install, а не make checkinstall учитывая наш тюнинг .

Данная статья носит чисто теоретическое исследование, в части стран, в частности в России законодательством запрещено увеличивать мощность wi-fi адаптера. Все действия вы будете производить на ваш страх и риск. Тем не менее в материале вы найдете исчерпывающую информацию о том как увеличить мощность WIFI сигнала программно.

Как увеличить мощность WIFI в Kali Linux, изображение №1

В предыдущей статье мы частично рассмотрели тюнинг с выставлением региона Белиз, была дана ссылка на интересный материал wi-fi more 30 dBm данная статья изначально задумывалась, как перевод, но в ходе написания я решил пойти немного дальше.

Все действия предпринимались с адаптерами Alfa Network, усиление мощности при работе с другими адаптерами не гарантируется!

Для ленивых, или для тех кому лень читать был написан небольшой скрипт: запустив следующую последовательность в консоли при выборе региона BO вы получите мощность в 33 dBm или 2 Вт .

apt-get install python-m2crypto libgcrypt11 libgcrypt11-dev libnl-dev

sed '/BO:/,+3s%(20)%(33)%g' db.txt > db.tmp && mv db.tmp db.txt

cp regulatory.bin /lib/crda/regulatory.bin

cp root.key.pub.pem ../crda-ct/pubkeys/root.key.pub.pem

sed 's%REG_BIN?=/usr/lib/crda/regulatory.bin%REG_BIN?=/lib/crda/regulatory.bin%g' Makefile > Makefile.tmp && mv Makefile.tmp Makefile

Как увеличить мощность WIFI в Kali Linux, изображение №2

Вы наверно спросите зачем такие сложности и что мы будем с этого иметь? Давайте разберемся откуда у нас берутся стандартные настройки и что мы можем с этим сделать. Существует ISO 3166, определяющий кодовые обозначения государств и зависимых территорий, а так же crda agent, который посылает ядру wireless regulatory domain. Crda запускается udev скриптом. Если мы хотим изменить регион для тюнинга мы используем утилиту iw.

Как увеличить мощность WIFI в Kali Linux, изображение №3

Так вот когда crda посылает ядру информацию о текущем регионе и параметрах для него, он берет информацию из regulatory.bin — The Linux wireless regulatory database. Это обыкновенный файл, который мы можем найти по пути /lib/crda/regulatory.bin, минус что мы не можем посмотреть его стандартными средствами, для просмотра нам надо использовать утилиту regdbdump.

Как увеличить мощность WIFI в Kali Linux, изображение №4

Так вот для того что бы у нас все заработало как мы хотим, нам надо создать новый crda и regulatory.bin, а наградой за наши труды нам будет увеличение мощности:

базовые 20dBm — 100 мВт

используем BZ 30dBm — 1000 мВт

тюнинг на примере BO 33dBm — 2000 мВт

давайте посмотрим, что мы имеем на старте

3 iw reg set BO

Как увеличить мощность WIFI в Kali Linux, изображение №5

Для начала нам надо установить дополнительное программное обеспечение.

1) apt-get install python-m2crypto libgcrypt11 libgcrypt11-dev libnl-dev

Как увеличить мощность WIFI в Kali Linux, изображение №6

После скачаем исходники crda и regulatory.bin , в оригинальном мануале ссылки неправильные.

Как увеличить мощность WIFI в Kali Linux, изображение №7

Первым делом изменим на нужные значения в файле db.txt и соберем regulatory.bin. Я сторонник использовать sed, но вы можете отредактировать файл в ручном режиме

Как увеличить мощность WIFI в Kali Linux, изображение №8

после чего нам надо заменить оригинальный regulatory.bin и сертификаты для сборки crda

3)cp root.key.pub.pem ../crda-ct/pubkeys/root.key.pub.pem

после чего запускаем сборку и установку

да я не описался мы делаем make install, а не make checkinstall учитывая наш тюнинг .

Проблема - не могу изменять мощность WiFi, даже не то чтобы в сторону увеличения, уменьшить тоже не могу.

Менял ограничители мощности для страны в соответствие как по ссылке:

Сдается мне причина вообще не в ограничителях страны, потому что я на обоих девайсах не могу понизить мощность.

Прошу помощи знатоков

sudo ifconfig wlan1 down
sudo iw reg set BO (или RU)
sudo iwconfig wlan1 txpower 30



протухшая команда, пробуй

Плюс, не факт, что в драйвере для самого устройства не режется мощность по своему усмотрению (бывает хардкод под железо, а бывает доп. инфа берётся из eeprom/otp). Какой драйвер используется, точнее какой чип в адаптере стоит?


3000 - это миливатт?


RTL8188RU - чип альфы, но в убунте на него модуль rtl8192cu вешается.

Не получилось поменять, ни на встроенном ни на внешнем, ни вниз ни в верх(((


У меня на acer R3-131T на внутренней карте жестко зашита мощность 16dbm (

50 mWt). Для драйвинга пришлось покупать внешний USB WiFi


Так вот купил, новую тип версию. Хотя у кореша awus036nh и все работит


Проверь версию прошивки. Сейчас в РФ и РБ идут с новыми прошивками, которые многое не могут, ищи со старой. Напрмер в новых TL-WN7200ND ( мой случай) жестко ограничена мощность 100 mWt. Пришлось поискать по рукам старый.


mBm - миллиБелл метрический, от децибелла отличается в 100 раз (два ноля дописывать приходится для dBm).


Собственно, выхода два - поискать что-нибудь на atheros, они отлично тюнятся и по мощности и по частотам; или использовать правильные методы усиления сигнала - антенны, т.к. усилив мощность своего передатчика вы не усилите чувствительность приёмника, этого можно добится только антенным хозяйством. Проще взять или направленную антенну (компактную панельную, с усилением до 13-14дБ или полноразмерную с узким лучём, с усилением до 24дБ) или всенаправленную (коллинеарную, или ещё их называют omni, но усиление у них реальное до 7дБ, есть и на 9дБ, но плоскость излучения очень узкая).


Вообще установить внешний девайс удалось только с установкой толпы бэкпортов. Предлагаемые драйвера для убунты давали только возможность мониторить. При подключении к сети система наглухо замирала вообще. А антенны то понятно, можно еще антенный усилитель придумать)


Увы, это риалтек, с ним всегда не всё в порядке. Что железо обрезанное по самое не могу, да и драйвера такие же.

По части усилителя - проблема в том, что антенные усилители, как правило, однонаправленные, то есть в сторону TX усиливают, а в обратную сторону LNA нет, поэтому и смысла в них немного. Применение таких усилителей имеет смысл при использовании с двух сторон. А т.к. основная задача у вас wardriving, то лучше всё-таки использовать направленные антенны.

Читайте также: