Как я могу увидеть все пароли Wifi с помощью netsh с помощью 1 команды?

#powershell

#powershell

Вопрос:

Я хочу создать автоматизированный скрипт ducky, который будет использовать

 netsh wlan show profile * key=clear > G:Profiles.txt
  

команда или что-то подобное, чтобы просмотреть все учетные данные Wlan и записать их в файл.

Когда я использую команду netsh wlan show profile * key = clear, я могу просто увидеть пароль верхней Wlan.

Мне очень жаль, потому что все это будет на немецком языке, потому что я немец. Но я отметил место, где находятся пароли. Мне очень жаль. Это мой первый вопрос здесь.

Пример:

 Das Profil "?????? ???????" auf Schnittstelle WLAN:
=======================================================================

Angewendet: Profil für alle Benutzer

Profilinformationen
------------------- 
    Version                : 1
    Typ                    : Drahtlos-LAN
    Name                   : ?????? ???????
    Steuerungsoptionen     :
        Verbindungsmodus   : Automatisch verbinden
        Netzwerkübertragung  : Verbinden, nur wenn dieses Netzwerk überträgt
        Automatisch wechseln         : Nicht zu anderen Netzwerken wechseln.
        MAC-Randomisierung  : Deaktiviert

Konnektivitätseinstellungen
---------------------
    Anzahl von SSIDs        : 1
    SSID-Name              : "???"
    Netzwerktyp            : Infrastruktur
    Funktyp                : [ Beliebiger Funktyp ]
    Herstellererweiterung          : Nicht vorhanden

Sicherheitseinstellungen
------------------------ 
    Authentifizierung         : WPA2-Personal
    Verschlüsselung                 : CCMP
    Authentifizierung         : WPA2-Personal
    Verschlüsselung                 : GCMP
    Sicherheitsschlüssel   : Vorhanden
    Schlüsselinhalt            : Beispiel123  <--------------- This is the Password

Kosteneinstellungen 
------------------- 
    Kosten                 : Uneingeschränkt
    Überlastet              : Nein
    Datenlimit bald erreicht: Nein
    Über Datenlimit         : Nein
    Roaming                : Nein
    Kostenquelle            : Standard


Das Profil "WLANSoeNi" auf Schnittstelle WLAN:
=======================================================================

Angewendet: Profil für alle Benutzer

Profilinformationen
------------------- 
    Version                : 1
    Typ                    : Drahtlos-LAN
    Name                   : WLANSoeNi
    Steuerungsoptionen     :
        Verbindungsmodus   : Manuell verbinden
        Netzwerkübertragung  : Verbinden, nur wenn dieses Netzwerk überträgt
        Automatisch wechseln         : Nicht zu anderen Netzwerken wechseln.
        MAC-Randomisierung  : Deaktiviert

Konnektivitätseinstellungen
---------------------
    Anzahl von SSIDs        : 1
    SSID-Name              : "WLANSoeNi"
    Netzwerktyp            : Infrastruktur
    Funktyp                : [ Beliebiger Funktyp ]
    Herstellererweiterung          : Nicht vorhanden

Sicherheitseinstellungen
------------------------ 
    Authentifizierung         : WPA2-Personal
    Verschlüsselung                 : CCMP
    Authentifizierung         : WPA2-Personal
    Verschlüsselung                 : GCMP
    Sicherheitsschlüssel   : Vorhanden
                                                   <----------- This is where the other Password 
                                                                should be

Kosteneinstellungen 
------------------- 
    Kosten                 : Uneingeschränkt
    Überlastet              : Nein
    Datenlimit bald erreicht: Nein
    Über Datenlimit         : Nein
    Roaming                : Nein
    Kostenquelle            : Standard
  

Есть ли у кого-нибудь сейчас команда, которая действительно показала бы их все?

Комментарии:

1. Этот вопрос относится к общему программному обеспечению и лучше подходит для суперпользователя.

2. Согласен с NineBerry, и это не проблема с кодом PowerShell. Тем не менее, подобные вещи встречаются в образцах по всему Интернету. Что вы искали? Это ваш подход, а не аксинг для всего, что вам нужно. Это не так просто, как вы пытаетесь. Как показывает hackoo, это комбинация команд, но это может быть одноканальная команда, состоящая примерно из 6-7 каналов. Каков ваш вариант использования для этого? Как правило, когда я вижу это, обычно кто-то ищет помощи, чтобы очистить сети WALN, которые не являются их собственными (ducky). он же гнусная попытка. Ну, может быть, домашнее задание для какого-нибудь курса по взлому, который вы, возможно, посещаете. ;-}.

Ответ №1:

Я думаю, что лучший способ сделать это — быть независимым от любого языка!

Итак, мы должны экспортировать все профили в XML и проанализировать их, чтобы извлечь то, что вы хотите, в качестве данных: вы можете попробовать этот сценарий powershell


 cls
# We must execute this Powershell script with admin rights !
if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) 
{
  if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) 
  {

      $CommandLine = $MyInvocation.InvocationName
      Start -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
      Exit
   }
}

$outputFile = "$env:APPDATAWifi-Keys.txt"
if (Test-Path $outputFile) { Remove-Item $outputFile }
cmd /c mkdir wifi>nul 2>amp;1 | Out-Null;
cmd /c cd wifi | Out-Null;
netsh wlan export profile key=clear | Out-Null;
dir *.xml |% { $xml=[xml] (get-content $_) 
    $SSID = $xml.WLANProfile.SSIDConfig.SSID.name 
    $KeyPassword = $xml.WLANProfile.MSM.Security.sharedKey.keymaterial
    if ($SSID -ne $null) 
    {
        $SSID   ":"   $KeyPassword | Out-File -Append $outputFile -Encoding UTF8 -Force
    }    
}
Start $outputFile
  

РЕДАКТИРОВАТЬ: 21/09/2020: сценарий Powershell в одной строке :


 netsh wlan show profiles | Select-String ":.*[a-zA-Z0-0-_] " | % {"$_".split(":")[1].trim()} | % {netsh wlan show profile name=$_ key=clear}
  

Комментарии:

1. Конечно, но это можно сделать изначально в PowerShell, используя только netsh cmd для правильного разбора строк. Никаких внешних материалов, XML и т. Д., Не требуется.

2. @postanote Можете ли вы показать мне без использования XML, как мы можем использовать netsh и извлекать строку пропрера, когда система немецкая? Спасибо!

3. Хаку, я в США, и в последний раз, когда я даже смотрел на немецкий язык, это были мои школьные и ранние военные годы в 1970-х годах. ;-} Итак, я понятия не имею, как это будет выглядеть на немецком языке. Тем не менее, это всего лишь вопрос использования netsh пару раз и 4 раза ForEach-Object, дважды Select-String и PSCustomObject для вывода имени и пароля. Я не хочу просто публиковать это здесь, так как я не хочу помогать оператору в том, что кажется бесполезным, но мне сказали, что на SO есть способ подключиться к разговору 1 к 1, но я никогда не использовал эту функцию, поскольку у меня не было причин для этого.дата для этого.

Ответ №2:

Я не уверен, что вам абсолютно необходимо использовать netsh для сбора этого. Но если вы этого не сделаете, модуль управления WiFiProfileManagement — ваш друг в этом случае! (все это было сделано в консоли PS 7.0.3, работающей в режиме администратора) Также обратите внимание, что я не перенаправлял на txt или другой файл. Хотя это достаточно просто, но вам нужно будет получить «Имя» каждого профиля и передать его этой команде, поскольку параметр -ProfileName не принимает подстановочные знаки.

 PS C:Usersxxxxxxxbin> Install-Module -Name WiFiProfileManagement
PS C:Usersxxxxxxxbin> Get-Command -Module WiFiProfileManagement

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Connect-WiFiProfile                                0.5.0.0    WiFiProfileManagement
Function        Get-WiFiAvailableNetwork                           0.5.0.0    WiFiProfileManagement
Function        Get-WiFiProfile                                    0.5.0.0    WiFiProfileManagement
Function        New-WiFiProfile                                    0.5.0.0    WiFiProfileManagement
Function        Remove-WiFiProfile                                 0.5.0.0    WiFiProfileManagement
Function        Set-WiFiProfile                                    0.5.0.0    WiFiProfileManagement


PS C:Usersxxxxxxxbin> Get-WiFiProfile

ProfileName               ConnectionMode Authentication Encryption Password
-----------               -------------- -------------- ---------- --------
foobar                    auto           WPA2PSK        AES
NETGEAR-5G-Guest          manual         open           none
Fi-foobar                 auto           WPA2PSK        AES
xxxxxxx                   auto           WPA2PSK        AES

PS C:Usersxxxxxxxbin> Get-WiFiProfile -ProfileName foobar -ClearKey

ProfileName               ConnectionMode Authentication Encryption Password
-----------               -------------- -------------- ---------- --------
Verizon-MiFi7730L-2C70    auto           WPA2PSK        AES        30d80266

PS C:Usersxxxxxxxbin>
  

Ответ №3:

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

 netsh wlan show profile * key=clear 2>amp;1 | Tee-Object -FilePath "Pathtooutfile.txt"
  

Комментарии:

1. Ваш код и код Уильяма Хиггса получают все профили, он просто не дает вам все пароли (ваш вариант использования) для всех профилей, что требует дополнительного анализа строк. Вы буквально просите случайных людей на SO помочь вам написать хакерский код для ваших усилий rubber ducky hak5. ;-} Я демонстрирую, как сделать именно это, на уроках управления рисками / безопасности, которые я преподаю, и на заданиях по тестированию белой шляпы, которые мне назначают.