#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. ;-} Я демонстрирую, как сделать именно это, на уроках управления рисками / безопасности, которые я преподаю, и на заданиях по тестированию белой шляпы, которые мне назначают.