Простой способ увеличить TX Power для Wi-Fi в Kali Linux и BlackArch


Как увеличить txpower до 36.00 dBm

В статье «Как увеличить мощность (TX Power) Wi-Fi карты в Kali Linux и BlackArch» рассматривается теория и разные подходы к увеличению TX Power до 30.00 dBm и снятию ограничений на использование заблокированных Wi-Fi каналов. Статья довольно длинная и некоторые моменты уже устарели. Тем не менее, она рекомендуется для ознакомления, поскольку в ней рассматриваются такие вопросы как: 1) зачем это вообще нужно; 2) как увеличить мощность сменой региона; 3) почему txpower некоторых Wi-Fi адаптеров не поднимается выше определённого значения.

Уже давно для пользователей Arch Linux и BlackArch в AUR человек с ником muhviehstarr (Timo Sarawinski) создал пакет wireless-regdb-pentest который представляет собой Central Regulatory Domain Database с модифицированными для пентестеров значениями txpower/каналов.

Я взял рецепты из файла PKGBUILD пакета wireless-regdb-pentest и переписал их в команды Bash, подходящие для запуска в Kali Linux.

Ещё я использовал патч (https://github.com/buildroot/buildroot/tree/master/package/crda) и дописал несколько команд для совместимости с Python 3.

Как повысить TX Power для Wi-Fi в Kali Linux 

Создайте файл wireless-regdb-pentest.sh:

gedit wireless-regdb-pentest.sh

И скопируйте в него следующее:

#!/bin/bash

# all thanks to this awesome guy! => https://aur.archlinux.org/packages/wireless-regdb-pentest/
# thanks to them too https://github.com/buildroot/buildroot/tree/master/package/crda

which pacman > /dev/null 2>&1
if [[ $? -eq '0' ]]; then
	sudo pacman -Sy iw libgcrypt libnl sh systemd python-attrs python-m2crypto python-pycryptodomex --needed --noconfirm
else
	which apt > /dev/null 2>&1
	if [ $? -eq '0' ]; then
		sudo apt update
		sudo apt -y install python3-m2crypto libssl-dev libnl-3-dev pkg-config libgcrypt20-dev python3-pycryptodome libnl-genl-3-dev
	else
		echo 'Man, I am really lost...'
		exit 1;
	fi
fi

wget 'https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git/snapshot/crda-4.14.tar.gz'
wget 'https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2020.04.29.tar.xz'
curl 'https://aur.archlinux.org/cgit/aur.git/plain/0001-Makefile-Don-t-run-ldconfig.patch?h=wireless-regdb-pentest' > 0001-Makefile-Don-t-run-ldconfig.patch
curl 'https://aur.archlinux.org/cgit/aur.git/plain/0001-Makefile-Link-libreg.so-against-the-crypto-library.patch?h=wireless-regdb-pentest' > 0001-Makefile-Link-libreg.so-against-the-crypto-library.patch
curl 'https://aur.archlinux.org/cgit/aur.git/plain/crda.conf.d?h=wireless-regdb-pentest' > crda.conf.d
curl 'https://aur.archlinux.org/cgit/aur.git/plain/db.txt?h=wireless-regdb-pentest' > db.txt
curl 'https://aur.archlinux.org/cgit/aur.git/plain/set-wireless-regdom?h=wireless-regdb-pentest' > set-wireless-regdom
curl https://raw.githubusercontent.com/buildroot/buildroot/master/package/crda/0001-crda-support-python-3-in-utils-key2pub.py.patch > 0001-crda-support-python-3-in-utils-key2pub.py.patch

tar xf wireless-regdb-2020.04.29.tar.xz
tar xvzf crda-4.14.tar.gz

cd crda-4.14
patch -p1 -i ../0001-Makefile-Link-libreg.so-against-the-crypto-library.patch
patch -p1 -i ../0001-Makefile-Don-t-run-ldconfig.patch
patch -p1 -i ../0001-crda-support-python-3-in-utils-key2pub.py.patch
sed -i 's/#!\/usr\/bin\/env python/#!\/usr\/bin\/env python3/' ./utils/key2pub.py

cp ../db.txt ../wireless-regdb-2020.04.29/db.txt

export CC=gcc
export CXX=g++
cd ../wireless-regdb-2020.04.29/
make mrproper
export REGDB_AUTHOR=root
sed -i 's/#!\/usr\/bin\/env python/#!\/usr\/bin\/env python3/' *.py
make
cd ../crda-4.14
cp ../wireless-regdb-2020.04.29/root.key.pub.pem pubkeys/

sed -i 's/python utils\/key2pub.py/python3 utils\/key2pub.py/' Makefile
make REG_BIN=../wireless-regdb-2020.04.29/regulatory.bin

sudo install -d -m755 /usr/lib
sudo mkdir -p /usr/lib/crda/pubkeys
sudo make DESTDIR="" UDEV_RULE_DIR=/usr/lib/udev/rules.d/ SBINDIR=/usr/bin/ install
cd ../wireless-regdb-2020.04.29/

sudo install -D -m644 ../wireless-regdb-2020.04.29/root.key.pub.pem /usr/lib/crda/pubkeys/root.key.pub.pem
sudo install -D -m644 ../wireless-regdb-2020.04.29/regulatory.bin /usr/lib/crda/regulatory.bin

# let’s skip this bashisms
# (if LD_LIBRARY_PATH=../crda-4.14 ../crda-4.14/regdbdump /usr/lib/crda/regulatory.bin > /dev/null) && (echo "Regulatory database verification was succesful.") || (echo "Regulatory database verification failed.")

sudo install -d -m755 /usr/lib/firmware
sudo install -D -m644 ../wireless-regdb-2020.04.29/regulatory.db /usr/lib/firmware/regulatory.db
sudo install -D -m644 ../wireless-regdb-2020.04.29/regulatory.db.p7s /usr/lib/firmware/regulatory.db.p7s
sudo install -D -m644 ../wireless-regdb-2020.04.29/LICENSE /usr/share/licenses/wireless-regdb/LICENSE
sudo install -D -m644 ../wireless-regdb-2020.04.29/regulatory.bin.5 /usr/share/man/man5/regulatory.bin.5
sudo install -D -m644 ../crda.conf.d /etc/conf.d/wireless-regdom

# sudo su # if you type the commands, you have to be root now
for dom in $(grep ^country ../wireless-regdb-2020.04.29/db.txt | cut -d' ' -f2 | sed 's|:||g'); do echo "#WIRELESS_REGDOM=\"${dom}\"" >> /etc/conf.d/wireless-regdom.tmp; done
sort -u /etc/conf.d/wireless-regdom.tmp >> /etc/conf.d/wireless-regdom
rm /etc/conf.d/wireless-regdom.tmp
# CTRL+d

sudo install -D -m644  ../wireless-regdb-2020.04.29/LICENSE "/usr/share/licenses/wireless-regdb/LICENSE"

# Not sure if this is necessary since the crda package is already installed above. 
# But without these lines, I did not find crda in the system
cd ../crda-4.14
sudo make install

Запускать так:


sudo bash wireless-regdb-pentest.sh

После завершения работы скрипта перезагрузите компьютер.

Результат:

Для увеличения мощности Wi-Fi адаптеров больше не нужно вводить какие-либо команды. Но иногда мощность повышается только после второго подсоединения устройства к компьютеру.

Как повысить TX Power для Wi-Fi в BlackArch

Очевидно, что в Arch Linux и BlackArch можно установить wireless-regdb-pentest из AUR.

Но проблема в том, что в официальном репозитории Arch Linux больше нет пакета python2-m2crypto, который является зависимостью для wireless-regdb-pentest.

В BlackArch этой проблемы нет, поскольку в репозиториях BlackArch сохранён пакет python2-m2crypto.

То есть в BlackArch для увеличения мощности Wi-Fi достаточно установить pikaur, а затем выполнить команду:

pikaur -S wireless-regdb-pentest

Пользователи Arch Linux могут воспользоваться моим скриптом, который приведён выше. Версия для Arch Linux отличается только тем, что используется менеджер пакетов pacman вместо apt, в остальном команды идентичны.

После завершения работы скрипта перезагрузите компьютер.

Результат:


Работает ли вообще повышение TX Power для Wi-Fi?

Я встречал мнения в Интернете, что эти цифры ни на что не влияют. Не в том смысле не влияют, в каком я объяснял в предыдущей инструкции «Как увеличить мощность (TX Power) Wi-Fi карты в Kali Linux и BlackArch», а вообще не работают. Я уже писал, что TX Power это то, насколько сильно «кричит» Wi-Fi адаптер и, на самом деле, обычно мощности передачи хватает. На мой взгляд, не менее важна такая характеристика как чувствительность, то есть образно говоря насколько хорошо «слышит» Wi-Fi адаптер. И данная инструкция никак не улучшает чувствительность (но это можно сделать поставив более крупную антенну или изначально нужно выбирать Wi-Fi адаптер с хорошей чувствительностью — она зависит от чипсета).

Говоря совсем просто, повлияет ли увеличение TX Power на количество удачных атак? Может быть и нет. Я бы начал с замены антенны на побольше (если это подходит для вашего Wi-Fi адаптера).

Что касается утверждения одного из пользователей, что он с помощью USB tester’а делал замеры и не увидел никакой разницы после повышения TX Power, то я думаю, что это неправда. Я тоже делал замеры с помощью USB тестера. Так вот, потребление энергии Wi-Fi адаптером является плавающим и меняется слишком быстро, чтобы вообще что-то понять. То есть можно выполнить физические измерения и убедиться, что TX Power увеличилась, но не с помощью USB tester’а.

Причин не доверять значению txpower в выводе iw dev я не вижу.


Рекомендуется Вам:

14 комментариев to Простой способ увеличить TX Power для Wi-Fi в Kali Linux и BlackArch

  1. Олек:

    Здравствуйте. При запускуе скрипта,выходит ошибка (make: *** [Makefile:140: crda] Ошибка 1) Что надо исправить?
     

    • Alexey:

      Приветствую! Какой у вас дистрибутив Linux?

      Это единственная ошибка? Я имею ввиду какие строки выводятся до этой ошибки? Если будете запускать скрипт повторно, то предварительно удалите все скаченные скриптом файлы.

      • Vic:

        Такая же проблема. Дистрибутив только что установленная на виртуалку Кали со всеми обновлениями. До скрипта только установил драйвер для alfa awus036ach c github

        • Alexey:

          Кажется догадываюсь… забыли выполнить sudo apt update, там перед этой ошибкой ещё сообщения что не найдены кандидаты на установку и как следствие — все зависимости не установлены.

          • Vic:

            apt update выполнил, но вот. извиняюсь, что скопировал полностью, получилось много текста, но вдруг поможет

            sudo bash wireless-regdb-pentest.sh
            Чтение списков пакетов… Готово
            Построение дерева зависимостей… Готово
            Чтение информации о состоянии… Готово         
            Уже установлен пакет libgcrypt20-dev самой новой версии (1.9.4-5).
            Уже установлен пакет libnl-3-dev самой новой версии (3.4.0-1+b1).
            Уже установлен пакет libssl-dev самой новой версии (1.1.1m-1).
            Уже установлен пакет pkg-config самой новой версии (0.29.2-1).
            Уже установлен пакет python3-m2crypto самой новой версии (0.38.0-2).
            Уже установлен пакет python3-pycryptodome самой новой версии (3.11.0+dfsg1-3).
            Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
            --2022-02-05 13:01:05--  https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git/snapshot/crda-4.14.tar.gz
            Распознаётся git.kernel.org (git.kernel.org)… 145.40.68.75, 2604:1380:4601:e00::1
            Подключение к git.kernel.org (git.kernel.org)|145.40.68.75|:443… соединение установлено.
            HTTP-запрос отправлен. Ожидание ответа… 200 OK
            Длина: нет данных [application/x-gzip]
            Сохранение в: «crda-4.14.tar.gz»

            crda-4.14.tar.gz                   [ <=>                                               ]  71,05K  --.-KB/s    за 0,1s    

            2022-02-05 13:01:05 (544 KB/s) - «crda-4.14.tar.gz» сохранён [72753]

            --2022-02-05 13:01:05--  https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2020.04.29.tar.xz
            Распознаётся http://www.kernel.org (www.kernel.org)… 145.40.68.75, 2604:1380:4601:e00::1
            Подключение к http://www.kernel.org (www.kernel.org)|145.40.68.75|:443… соединение установлено.
            HTTP-запрос отправлен. Ожидание ответа… 301 Moved Permanently
            Адрес: https://mirrors.edge.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2020.04.29.tar.xz [переход]
            --2022-02-05 13:01:06--  https://mirrors.edge.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2020.04.29.tar.xz
            Распознаётся mirrors.edge.kernel.org (mirrors.edge.kernel.org)… 147.75.101.1, 2604:1380:2001:3900::1
            Подключение к mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.101.1|:443… соединение установлено.
            HTTP-запрос отправлен. Ожидание ответа… 200 OK
            Длина: 24552 (24K) [application/x-xz]
            Сохранение в: «wireless-regdb-2020.04.29.tar.xz»

            wireless-regdb-2020.04.29.tar. 100%[==================================================>]  23,98K  --.-KB/s    за 0,007s  

            2022-02-05 13:01:06 (3,45 MB/s) - «wireless-regdb-2020.04.29.tar.xz» сохранён [24552/24552]

              % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload  Upload   Total   Spent    Left  Speed
            100   581  100   581    0     0   1556      0 --:--:-- --:--:-- --:--:--  1587
              % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload  Upload   Total   Spent    Left  Speed
            100  1466  100  1466    0     0   4971      0 --:--:-- --:--:-- --:--:--  5020
              % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload  Upload   Total   Spent    Left  Speed
            100    48  100    48    0     0    162      0 --:--:-- --:--:-- --:--:--   162
              % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload  Upload   Total   Spent    Left  Speed
            100 63075  100 63075    0     0   134k      0 --:--:-- --:--:-- --:--:--  135k
              % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload  Upload   Total   Spent    Left  Speed
            100   126  100   126    0     0    407      0 --:--:-- --:--:-- --:--:--   411
              % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                             Dload  Upload   Total   Spent    Left  Speed
            100  8938  100  8938    0     0  19959      0 --:--:-- --:--:-- --:--:-- 19995
            crda-4.14/
            crda-4.14/.gitignore
            crda-4.14/CONTRIBUTING
            crda-4.14/LICENSE
            crda-4.14/Makefile
            crda-4.14/README
            crda-4.14/copyleft-next-0.3.0
            crda-4.14/crda.8
            crda-4.14/crda.c
            crda-4.14/crda.spec
            crda-4.14/db2rd.c
            crda-4.14/debian-example/
            crda-4.14/debian-example/changelog
            crda-4.14/debian-example/compat
            crda-4.14/debian-example/control
            crda-4.14/debian-example/copyright
            crda-4.14/debian-example/docs
            crda-4.14/debian-example/rules
            crda-4.14/intersect.c
            crda-4.14/nl80211.h
            crda-4.14/optimize.c
            crda-4.14/pubkeys/
            crda-4.14/pubkeys/linville.key.pub.pem
            crda-4.14/pubkeys/sforshee.key.pub.pem
            crda-4.14/regdb.h
            crda-4.14/regdbdump.8
            crda-4.14/regdbdump.c
            crda-4.14/reglib.c
            crda-4.14/reglib.h
            crda-4.14/udev/
            crda-4.14/udev/regulatory.rules
            crda-4.14/utils/
            crda-4.14/utils/key2pub.py
            patching file Makefile
            patching file Makefile
            patching file Makefile
            Hunk #1 succeeded at 115 (offset 3 lines).
            patching file utils/key2pub.py
            Removed public key, regulatory.bin, regulatory.db.5 and compressed man pages
            Generating public key for root…
            openssl rsa -in ~/.wireless-regdb-root.key.priv.pem -out root.key.pub.pem -pubout -outform PEM
            writing RSA key
            Generating certificate for root…
            ./gen-pubcert.sh ~/.wireless-regdb-root.key.priv.pem root.x509.pem
            Generating regulatory.bin digitally signed by root…
            ./db2bin.py regulatory.bin db.txt ~/.wireless-regdb-root.key.priv.pem
            sha1sum db.txt > sha1sum.txt
            Generating regulatory.db
            ./db2fw.py regulatory.db db.txt
            Signing regulatory.db (by root)…
              GEN  keys-gcrypt.c
              Trusted pubkeys: pubkeys/linville.key.pub.pem pubkeys/root.key.pub.pem pubkeys/sforshee.key.pub.pem
              CC   libreg.so
              CC   crda.o
            Package libnl-genl-3.0 was not found in the pkg-config search path.
            Perhaps you should add the directory containing `libnl-genl-3.0.pc'
            to the PKG_CONFIG_PATH environment variable
            No package 'libnl-genl-3.0' found
              LD   crda
            /usr/bin/ld: crda.o: в функции «nl80211_init»:
            /home/vic/crda-4.14/crda.c:63: неопределённая ссылка на «genl_connect»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:69: неопределённая ссылка на «genl_ctrl_alloc_cache»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:75: неопределённая ссылка на «genl_ctrl_search_by_name»
            /usr/bin/ld: crda.o: в функции «main»:
            /home/vic/crda-4.14/crda.c:218: неопределённая ссылка на «genl_family_get_id»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:218: неопределённая ссылка на «genlmsg_put»
            /usr/bin/ld: crda.o: в функции «nl80211_cleanup»:
            /home/vic/crda-4.14/crda.c:93: неопределённая ссылка на «genl_family_put»
            collect2: error: ld returned 1 exit status
            make: *** [Makefile:140: crda] Ошибка 1
              INSTALL  libreg
              INSTALL  libreg-headers
            Package libnl-genl-3.0 was not found in the pkg-config search path.
            Perhaps you should add the directory containing `libnl-genl-3.0.pc'
            to the PKG_CONFIG_PATH environment variable
            No package 'libnl-genl-3.0' found
              LD   crda
            /usr/bin/ld: crda.o: в функции «nl80211_init»:
            /home/vic/crda-4.14/crda.c:63: неопределённая ссылка на «genl_connect»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:69: неопределённая ссылка на «genl_ctrl_alloc_cache»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:75: неопределённая ссылка на «genl_ctrl_search_by_name»
            /usr/bin/ld: crda.o: в функции «main»:
            /home/vic/crda-4.14/crda.c:218: неопределённая ссылка на «genl_family_get_id»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:218: неопределённая ссылка на «genlmsg_put»
            /usr/bin/ld: crda.o: в функции «nl80211_cleanup»:
            /home/vic/crda-4.14/crda.c:93: неопределённая ссылка на «genl_family_put»
            collect2: error: ld returned 1 exit status
            make: *** [Makefile:140: crda] Ошибка 1
              INSTALL  libreg
              INSTALL  libreg-headers
            Package libnl-genl-3.0 was not found in the pkg-config search path.
            Perhaps you should add the directory containing `libnl-genl-3.0.pc'
            to the PKG_CONFIG_PATH environment variable
            No package 'libnl-genl-3.0' found
              LD   crda
            /usr/bin/ld: crda.o: в функции «nl80211_init»:
            /home/vic/crda-4.14/crda.c:63: неопределённая ссылка на «genl_connect»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:69: неопределённая ссылка на «genl_ctrl_alloc_cache»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:75: неопределённая ссылка на «genl_ctrl_search_by_name»
            /usr/bin/ld: crda.o: в функции «main»:
            /home/vic/crda-4.14/crda.c:218: неопределённая ссылка на «genl_family_get_id»
            /usr/bin/ld: /home/vic/crda-4.14/crda.c:218: неопределённая ссылка на «genlmsg_put»
            /usr/bin/ld: crda.o: в функции «nl80211_cleanup»:
            /home/vic/crda-4.14/crda.c:93: неопределённая ссылка на «genl_family_put»
            collect2: error: ld returned 1 exit status
            make: *** [Makefile:140: crda] Ошибка 1
             

          • Vic:

            Возможно не отправилось моё сообщение… sudo apt update выполнял. Могу скинуть лог операции

            • Alexey:

              Приветствую! Сообщение с журналом выполнения скрипта попало в СПАМ, сейчас я его восстановил.

              Ключевые строки в этом сообщении:

              Package libnl-genl-3.0 was not found in the pkg-config search path.
              Perhaps you should add the directory containing `libnl-genl-3.0.pc'
              to the PKG_CONFIG_PATH environment variable
              No package 'libnl-genl-3.0' found

              То есть отсутствует зависимость libnl-genl-3.0, самым похожим пакетом является libnl-genl-3-dev, попробуйте установить его и снова запустите скрипт:

              sudo apt install libnl-genl-3-dev
              
  2. Berg:

    Хм, работает СПАСИБО

  3. NO_SIGNAL22:

    После перезагрузки значения возвращаются к стандартным.
    Kali Linux 2021.4a
    как-то можно это исправить, кроме варинтов выполнят ьскрипт каждый раз?
    Виртуалка на VMware, USB адаптер TP-Link TL WN 821N.

    • Alexey:

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

      Значения не столько возвращаются к прежним, сколько являются нестабильными. То есть иногда настройки применяются, иногда они слетают, но затем опять возвращаются. Точной причины этого я не знаю.

  4. Alexandr:

    Здравствуйте, Алексей! Я уже несколько месяцев пытаюсь увеличить мощность Wi-Fi адаптера alfa awus036ach, но всё безуспешно.( В первой версии этого адаптера, под корпусом был переключатель, которым можно было менять мощность. В новой версии(USB type C) его убрали, у меня как раз таки новая версия. Пробовал повысить мощность программно выключив девайс. Менял регион на Боливию,а потом увеличивал мощность.Включал обратно. Через вашу, данную статью - тоже не выходит . Не можете ли вы поделиться своим огромным опытом со мной ? За ранее благодарю!

    • Алексей:

      Такая же фигня, уже подумал что альфа не оригинал раз без переключателя, но проверку на подлинность прошла…

  5. 505ka:

    Добрый день. Данный способ подойдет для Ubuntu?

  6. Антон:

    Здравствуйте! После перезагрузки пк ограничения на 20дбм изменились на 36, но сама мощность адаптера так и осталась на 20дбм. Адаптер tp-link tl-wn722n v1 на AR9271. ОС Kali Linux 2022.3. Перепробовал все что было в интернете, и метод с прошлой статьи в том числе. Код региона адаптера кстати не меняется. Помогите!!!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *