Как увеличить 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 я не вижу.



