Soft Kali без Kali: превращаем Windows в боевую машину для пентеста без WSL


Практическое исследование с PoC: как поставить 30+ инструментов Kali Linux нативно на Windows одним скриптом за 12 минут, зачем вам Git Bash, и почему hashcat на Windows может быть быстрее, чем на Linux.


TL;DR

Один PowerShell-скрипт ставит на Windows:
  • Nmap, Wireshark, Burp Suite, ffuf, feroxbuster — через winget;
  • nuclei, subfinder, httpx, gobuster + ещё 6 инструментов — компиляцией через go install;
  • sqlmap, impacket, scapy + ещё 6 библиотек — через pip;
  • hashcat, John the Ripper — портативные бинарники + словари.
Итого ~3.5 ГБ, ~12 минут, 85% функциональности Kali. Без WSL, без VM, без переустановки системы.
Скрипт и все материалы: github.com/grizzzer/win-pentest-toolkit


Оглавление​

  1. Зачем это вообще нужно
  2. Что уже есть: обзор существующих решений
  3. Наш подход: архитектура решения
  4. Установка: один скрипт, 12 минут
  5. Proof of Concept: всё работает
  6. Секретное оружие: Git Bash
  7. Встроенные «хакерские» инструменты Windows
  8. Kali vs наш Windows-тулкит
  9. Лайфхаки и трюки
  10. Чего не хватает (и что с этим делать)
  11. Заключение

1. Зачем это вообще нужно​

Дисклеймер: легковесный Linux на голом железе или в VM всегда будет производительнее для задач пентеста — меньше overhead, нативная поддержка raw sockets, привычная экосистема. Эта статья не призывает отказаться от Kali. Она для тех, кто по какой-то причине привязан к Windows (корпоративный ноутбук, основная рабочая машина, отсутствие второго диска) и хочет иметь быстрый доступ ко всем необходимым инструментам прямо здесь и сейчас, без переключения между ОС.
Классический сценарий: вы работаете на Windows-машине, и вам нужно быстро проверить сеть, просканировать порты, протестировать веб-приложение или расковырять хеш пароля. Что делать?
Вариант 1 — WSL. Подсистема Windows для Linux. Казалось бы, идеальное решение, но:
  • WSL2 требует Hyper-V, который конфликтует с некоторыми программами (VirtualBox, некоторые античиты);
  • На корпоративных машинах WSL часто заблокирован групповыми политиками;
  • Raw sockets работают через раз;
  • Не на всех машинах вообще включена виртуализация в BIOS.
Вариант 2 — VM с Kali. Виртуальная машина. Работает, но:
  • Нужно 8+ ГБ RAM на VM;
  • 30+ ГБ на диске минимум;
  • Переключение между хостом и VM неудобно;
  • Копирование файлов — вечная боль.
Вариант 3 — то, что мы сделаем. Ставим всё нативно на Windows. Один скрипт — и через 12 минут у вас полноценный арсенал.

2. Что уже есть: обзор существующих решений​

Прежде чем изобретать велосипед, посмотрим, кто уже пытался решить эту задачу.

CommandoVM от Mandiant (бывш. FireEye)​

CommandoVM — первый и самый известный проект в этой нише. Полноценный Windows-дистрибутив для пентеста от Mandiant (тех самых ребят, которые раскрыли APT1). 7.7k звёзд на GitHub, 140+ инструментов.
ПлюсыМинусы
140+ предустановленных инструментовТребует чистую Windows VM
Поддержка от серьёзной командыОтключает Windows Defender
Автоматическая установка через PowerShell60 ГБ свободного места, 2-3 часа

Pentest-Windows (arch3rPro)​

Pentest-Windows — 400+ инструментов, собранных в готовый образ VM. Использует пакетный менеджер scoop.
Плюсы: огромная коллекция, scoop для обновлений.
Минусы: только как VM-образ, 30+ ГБ.

PentestBox​

PentestBox — портативная среда, работает с флешки. 20 МБ RAM, 100+ инструментов.
Плюсы: ультра-портативность, не требует установки.
Минусы: давно не обновлялся, многие инструменты устарели.
Наш подход другой: мы не создаём отдельную VM и не ломаем основную систему. Мы ставим инструменты рядом с основной системой, в отдельную директорию, используя нативные пакетные менеджеры Windows и прямые загрузки бинарников.

3. Наш подход: архитектура решения​

Код:
G:\PentestToolkit\                      ← всё на несистемном диске
├── go\bin\                             ← Go-инструменты (nuclei, subfinder, httpx...)
├── portable\                           ← портативные бинарники
│   ├── hashcat\                        ← hashcat 6.2.6
│   └── john\                           ← John the Ripper 1.9.0
├── wordlists\                          ← словари (rockyou.txt, SecLists...)
├── scripts\                            ← свои скрипты
├── activate.ps1                        ← активация окружения для PowerShell
└── activate.sh                         ← активация для Git Bash
Инструменты попадают к нам четырьмя путями:
ИсточникЧто ставимКуда
wingetNmap, Wireshark, Burp Suite, ffuf, feroxbusterProgram Files (системно)
pipsqlmap, impacket, scapy, dnspython, pycryptodomePython-окружение
go installnuclei, subfinder, httpx, gobuster, dnsx, naabu...G:\PentestToolkit\go\bin\
Прямые загрузкиhashcat, John the Ripper, словариG:\PentestToolkit\portable\

4. Установка: один скрипт, 12 минут​

Предварительные требования​

Код:
# Проверка
winget --version      # >= 1.4
python --version      # >= 3.10
go version            # >= 1.20
git --version         # любая
Если чего-то нет:
Код:
# Ставим всё через winget
winget install Python.Python.3.12
winget install GoLang.Go
winget install Git.Git
winget install 7zip.7zip

Запуск установщика​

Код:
# Клонируем репозиторий
git clone https://github.com/grizzzer/win-pentest-toolkit.git
cd win-pentest-toolkit

# Разрешаем выполнение и запускаем
Set-ExecutionPolicy Bypass -Scope Process
.\install.ps1 -ToolkitPath "G:\PentestToolkit"

# Или минимальная установка (только основное)
.\install_pentest_toolkit.ps1 -ToolkitPath "G:\PentestToolkit" -Minimal

# Или выборочно
.\install_pentest_toolkit.ps1 -SkipWinget -SkipDownloads  # только pip + go
Скрипт проходит 7 этапов:
  1. Проверяет зависимости — winget, Python, Go, Git, 7-Zip
  2. Создаёт структуру директорий на выбранном диске
  3. winget — ставит Nmap, Wireshark, Burp Suite Community, ffuf, feroxbuster
  4. pip — ставит sqlmap, impacket, scapy, pycryptodome, dnspython и другие
  5. go install — компилирует nuclei, subfinder, httpx, gobuster и другие из исходников
  6. Прямые загрузки — скачивает hashcat, John the Ripper, словари
  7. Создаёт скрипты активацииactivate.ps1 и activate.sh
Запуск install_pentest_toolkit.ps1 — проверка зависимостей, установка инструментов через winget

Запуск скрипта: проверка зависимостей (winget 1.29, Python 3.13, Go 1.25, Git 2.53), создание структуры, начало установки через winget
Завершение установки: 10 Go-бинарников, 2 портативных инструмента, 3 словаря, 3.65 ГБ за 12.2 минут

Результат: 10 Go-бинарников, 2 портативных инструмента, 3 словаря. Общий размер 3.65 ГБ, время установки 12.2 минут

Активация окружения​

После установки нужно «активировать» тулкит, чтобы все инструменты попали в PATH:
Код:
# PowerShell
. G:\PentestToolkit\activate.ps1

# Git Bash
source 'G:/PentestToolkit/activate.sh'

5. Proof of Concept: всё работает​

Все результаты ниже — реальные, с моей Windows 11 машины (i5-13500H, 32 ГБ RAM).

Nmap — сканирование сети​

Код:
PS> nmap -sV -p 80,443,3389,8080 127.0.0.1

Starting Nmap 7.98 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
PORT     STATE  SERVICE       VERSION
80/tcp   closed http
443/tcp  closed https
3389/tcp open   ms-wbt-server
8080/tcp closed http-proxy
Nmap на Windows работает так же, как на Linux. Установка через winget — одна команда.

Subfinder + httpx — разведка поддоменов​

Код:
PS> subfinder -d hackerone.com -silent | httpx -silent -status-code -title

https://hackerone.com [403] [403 Forbidden]
https://api.hackerone.com [200] [HackerOne API]
https://docs.hackerone.com [302]
https://mail.hackerone.com [301]
https://go.hackerone.com [301]
https://info.hackerone.com [301]
Связка subfinder → httpx работает через пайп точно так же, как на Linux. Оба инструмента скомпилированы go install прямо на Windows.

Hashcat — взлом хешей на GPU​

Код:
PS> hashcat -b -m 0 --force

Speed.#1.........: 21114.8 MH/s (37.70ms)  ← NVIDIA GPU
Speed.#2.........:   539.7 MH/s (73.42ms)  ← CPU fallback
Speed.#*.........: 21654.5 MH/s
21.6 гигахешей в секунду на MD5. Hashcat на Windows даже предпочтительнее, потому что GPU-драйверы для Windows обычно более зрелые, чем для Linux.

SQLMap, Impacket, Scapy​

Код:
PS> sqlmap --version
1.10.6#pip

PS> python -c "from impacket.smbconnection import SMBConnection; print('OK')"
Impacket SMBConnection imported successfully

PS> python -c "from scapy.all import *; print('Scapy', conf.version)"
Scapy 2.7.0
Все Python-инструменты ставятся через pip install и работают из коробки. impacket — для работы с SMB, NTLM, Kerberos и AD. scapy — для крафтинга и снифинга пакетов (требует Npcap).

Nuclei — сканер уязвимостей​

Код:
PS> nuclei -version
Nuclei Engine Version: v3.10.0
Скомпилированный через go install, работает идентично Linux-версии — те же YAML-шаблоны, те же результаты.

6. Секретное оружие: Git Bash​

Вот лайфхак, о котором мало кто задумывается. Когда вы устанавливаете Git for Windows, вместе с ним приходит полноценная POSIX-среда на базе MSYS2/MinGW. Это не просто git — это 366 Unix-команд из коробки:
Код:
$ ls /usr/bin/ | wc -l
366
Что доступно:
КатегорияИнструменты
Обработка текстаgrep, sed, awk, sort, uniq, wc, tr, cut, diff
Файлы и архивыfind, xargs, tar, gzip, bzip2, chmod, chown
Сеть и криптографияssh, scp, ssh-keygen, openssl, curl (через Windows)
Кодированиеbase64, xxd, md5sum, sha256sum
Разработкаperl, vim, nano, make, git

Практические примеры​

Кодирование/декодирование:
Код:
# Base64
echo -n "admin:password" | base64
# YWRtaW46cGFzc3dvcmQ=

echo "YWRtaW46cGFzc3dvcmQ=" | base64 -d
# admin:password

# Hex-дамп
echo -n "Hello" | xxd
# 00000000: 4865 6c6c 6f    Hello
Обработка результатов сканирования:
Код:
# Достаём только открытые порты из вывода nmap
nmap -p- 10.10.10.1 | grep "open" | awk '{print $1}' | cut -d'/' -f1 | tr '\n' ','
# 22,80,443,8080,

# Уникальные IP из лога
cat access.log | awk '{print $1}' | sort -u | wc -l
SSH-туннели (прямо из Git Bash):
Код:
# Проброс порта
ssh -L 8080:internal-server:80 user@jump-host

# Динамический SOCKS-прокси
ssh -D 1080 user@proxy-host
Генерация словарей:
Код:
# Все комбинации из 4 цифр
seq -w 0000 9999 > pins.txt

# Мутации пароля
echo "password" | sed 's/a/@/g; s/s/$/g; s/o/0/g'
# p@$$w0rd
Бонус: Git Bash можно сделать терминалом по умолчанию в VS Code:
Код:
// settings.json
{
    "terminal.integrated.defaultProfile.windows": "Git Bash"
}

7. Встроенные «хакерские» инструменты Windows​

Windows сама по себе содержит множество инструментов, полезных для пентеста. На нашей тестовой машине подтверждено наличие всех 15: certutil, netsh, ssh, curl, tar, arp, route, tracert, nslookup, PowerShell, sc, reg, wmic, net, icacls.

certutil — швейцарский нож Windows​

Код:
# Загрузка файлов (аналог wget/curl для скачивания)
certutil -urlcache -f http://example.com/file.exe output.exe

# Base64 кодирование/декодирование
certutil -encode input.txt encoded.b64
certutil -decode encoded.b64 output.txt

# Вычисление хешей файлов
certutil -hashfile document.pdf SHA256

# Проверка цепочки сертификатов
certutil -verify -urlfetch server.crt

PowerShell — мощнее, чем вы думаете​

Код:
# Сканирование портов (без Nmap!)
1..1024 | ForEach-Object {
    $result = Test-NetConnection -ComputerName 10.10.10.1 -Port $_ -WarningAction SilentlyContinue
    if ($result.TcpTestSucceeded) { "Port $_ is OPEN" }
}

# DNS-разведка
Resolve-DnsName -Name example.com -Type MX
Resolve-DnsName -Name example.com -Type TXT
Resolve-DnsName -Name example.com -Type NS

# Просмотр Wi-Fi паролей
netsh wlan show profiles
netsh wlan show profile name="WiFi_Name" key=clear

# Список активных соединений (аналог netstat)
Get-NetTCPConnection | Where-Object { $_.State -eq "Established" } |
    Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort

netsh — сетевой контроль​

Код:
# Трассировка пакетов (встроенный pcap!)
netsh trace start capture=yes tracefile=C:\trace.etl
# ... делаем что нужно ...
netsh trace stop
# Конвертация: etl2pcapng C:\trace.etl C:\trace.pcap

# Проброс портов
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.1.100

# Правила firewall
netsh advfirewall firewall show rule name=all

8. Kali vs наш Windows-тулкит​

КатегорияKali LinuxWindows-тулкитСтатус
Сканирование сетиnmapnmap (winget)Идентично
СниффингWireshark, tcpdumpWireshark (winget), netsh traceИдентично
Веб-сканерыnikto, gobuster, ffufgobuster (go), ffuf (winget), feroxbusterИдентично
SQL-инъекцииsqlmapsqlmap (pip)Идентично
Сканер уязвимостейnucleinuclei (go install)Идентично
Разведкаsubfinder, httpx, amasssubfinder, httpx (go install)Идентично
Паролиhashcat, johnhashcat, john (portable)GPU даже лучше
AD/SMBimpacket, responderimpacket (pip)Почти идентично
Крафтинг пакетовscapyscapy (pip)Требует Npcap
ЭксплойтыMetasploitMetasploit (ручная установка)Доступно, сложнее
Wi-Fiaircrack-ngОграниченоСлабое место
Raw socketsНативноОграниченоСлабое место
Итого: ~85% функциональности Kali доступно на Windows нативно.

9. Лайфхаки и трюки​

Windows Terminal + профили​

Создайте отдельный профиль в Windows Terminal для пентеста:
Код:
{
    "name": "Pentest",
    "commandline": "powershell.exe -NoExit -File G:\\PentestToolkit\\activate.ps1",
    "icon": "G:\\PentestToolkit\\icon.png",
    "colorScheme": "One Half Dark",
    "font": { "face": "Cascadia Code" }
}

Алиасы в PowerShell-профиле​

Код:
# Добавьте в $PROFILE
function portscan { param($target, $ports = "1-1024") nmap -sV -p $ports $target }
function webscan { param($url) nuclei -u $url -severity critical,high }
function subdomains { param($domain) subfinder -d $domain -silent | httpx -silent -sc -title }

Portable toolkit на флешке​

Все Go-инструменты и портативные бинарники можно скопировать на USB:
Код:
$usbPath = "E:\PentestPortable"
Copy-Item "G:\PentestToolkit\go\bin\*" "$usbPath\bin\" -Force
Copy-Item "G:\PentestToolkit\portable\*" "$usbPath\portable\" -Recurse -Force
Copy-Item "G:\PentestToolkit\wordlists\*" "$usbPath\wordlists\" -Force
Copy-Item "G:\PentestToolkit\activate.*" "$usbPath\" -Force

Scapy: отправка пакетов на Windows​

На Windows Scapy требует Npcap (ставится вместе с Nmap или Wireshark):
Код:
from scapy.all import *
# ARP-сканирование локальной сети
ans, _ = srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.1.0/24"), timeout=2)
for _, rcv in ans:
    print(f"{rcv[ARP].psrc} -> {rcv[Ether].src}")

Быстрый HTTP-сервер​

Код:
# Аналог python -m http.server
python -m http.server 8000

10. Чего не хватает (и что с этим делать)​

ПроблемаРешение
aircrack-ng (Wi-Fi аудит)Windows-драйверы не поддерживают monitor mode. Решение: USB Wi-Fi адаптер + Live USB с Linux
Raw socketsОграничены начиная с Windows XP SP2. Npcap частично решает проблему
MetasploitРаботает, но установка сложнее (нужен Ruby). Альтернатива: Sliver (Go, нативная компиляция)
ResponderPython-версия работает, но требует прав администратора
tcpdumpnetsh trace + etl2pcapng + Wireshark покрывают 90% задач

11. Заключение​

Windows — не идеальная платформа для пентеста. Но идеальная — враг хорошей. Если у вас есть Windows-машина с Python, Go и winget, вы можете за 12 минут получить рабочий набор инструментов, покрывающий 85% задач среднестатистического пентеста.
Ключевые выводы:
  1. Go-инструменты (nuclei, subfinder, httpx, gobuster) — компилируются под Windows одной командой и работают идентично Linux-версиям
  2. Python-инструменты (sqlmap, impacket, scapy) — ставятся через pip, работают из коробки
  3. Git Bash — 366 Unix-команд бесплатно, идеально для скриптинга и привычного workflow
  4. Hashcat на Windows + GPU — часто работает даже лучше, чем на Linux (21.6 GH/s MD5 на нашем тесте)
  5. Встроенные инструменты Windows (certutil, netsh, PowerShell) — недооценённый арсенал, 15 инструментов без установки

Размеры итогового тулкита​

КомпонентРазмер
Go-инструменты (10 бинарников)~500 МБ
Hashcat + John (portable)~400 МБ
Python-пакеты~150 МБ
Словари (rockyou + SecLists базовый)~140 МБ
Nmap + Wireshark + Burp Suite (на C:\)~800 МБ
Итого~3.5 ГБ
Против 30+ ГБ у VM с Kali — разница на порядок.

Скрипт установки, верификатор и документация: github.com/grizzzer/win-pentest-toolkit


Все тесты проведены в легальном контексте. Инструменты предназначены для авторизованного тестирования на проникновение и CTF-соревнований. Используйте ответственно.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab