Jump to content

MichaTo

Members
  • Gesamte Inhalte

    61
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von MichaTo

  1. Guten Tag zusammen,

     

    ich stehe vor einem kleinen Problem: Ich soll in der nächsten Zeit in der Firma eine Art "Inhouse-Schulung" mit den Azubis abhalten zum Thema IT-Sicherheit. Im Vorgespräch hat sich herausgestellt, dass die Motivation der jungen Herren diesbezüglich nicht sehr hoch ist.

    Also habe ich mir überlegt, das ganze etwas interessanter zu gestalten.

    Überlegt habe ich mir hierzu folgende Themen:

     

    - Passwortsicherheit: Warum Passwörter >8 Zeichen gem. Microsoft Empfehlung

    - Rainbow-Tables: Grobe Funktionsweise, Vor- und Nachteile

    - Pass-The-Hash Verfahren (und was man dagegen unternehmen kann)

    - etc...

     

    Zu Punkt 2 folgendes:

    Die Teilnehmer sollen sich Passwörter für Benutzer ausdenken und diese dann auch vergeben. Mit vorgerechneten Rainbow-Tables möchte ich demonstrieren wie schnell ein LM gehashtes Passwort zu ermitteln ist (nur Uppercase, logischerweise).

     

    Ich arbeite mit der [Link von Dr.Melzer entfernt]. Hiermit habe ich auch schon ein bisschen rumgespielt.

    Ich möchte nun also eine Rainbow-Table für den LM-Hash der Windows SAM mit 1-7 Stellen erstellen. Exemplarisch habe ich das mal durchprobiert, allerdings nicht mit dem erhofften Ergebnis. Zum erstellen habe ich eine Batch-Datei erstellt und dieses auch durchlaufen lassen:

    rtgen lm alpha-numeric 1 7 0 2400 40000000 all
    rtgen lm alpha-numeric 1 7 1 2400 40000000 all
    rtgen lm alpha-numeric 1 7 2 2400 40000000 all
    rtgen lm alpha-numeric 1 7 3 2400 40000000 all
    rtgen lm alpha-numeric 1 7 4 2400 40000000 all
    

     

    Zum testen habe ich das Passwort sieben7 als LM-Hash übergeben, habe aber nicht SIEBEN7 (wie erhofft) erhalten.

     

    Falls jemand sich die Mühe gemacht hat, bis hier hin zu lesen, frage ich nun: Kann mir jemand weiterhelfen?

    PS: Habe genug Zeit neue Tabellen zu berechnen ;)

     

    Gruß und Danke für die Geduld

    Micha

  2. Hallo, ich brauche nochmal eure Hilfe:

     

    Habe in einem Skript folgenden Aufruf:

     

    $cred = (Get-Credential)
    Start-Process -FilePath "$env:temp\RunIt.exe" -ArgumentList "/q" -Credential $cred
    

     

    Ein Test-Path auf $env:temp\RunIt.exe gibt ein TRUE zurück, ich bekomme aber trotzdem folgende Fehlermeldung:

     

    Start-Process : Dieser Befehl kann aufgrund des folgenden Fehlers nicht ausgeführt werden: Der Verzeichnisname ist ungültig.
    Bei Zeile:1 Zeichen:15
    +  Start-Process <<<<  -FilePath "$env:temp\RunIt.exe" -Credential $cred
       + CategoryInfo          : InvalidOperation: (:) [start-Process], InvalidOperationException
       + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
    

     

    PS: Es handelt sich um ein Windows 7 System (UAC abgeschaltet); auf einem XP-Client funktioniert der Aufruf...

     

     

    Gruß Micha

  3. Hallo,

     

    ich bastel grad ein bisschen mit Freigaben rum. Freigaben erstellen habe ich schon hinbekommen, auch die Rechtevergabe (Freigabeberechtigung) für Benutzer. Wenn ich allerdings einer Gruppe die Freigabeberechtigung F(ull) erteilen will, kommt die Meldung:

    C:\Windows\System32>net share Daten=D:\Daten /grant:administratoren,f
    Sie haben einen ungültigen Wert für die Option /GRANT angegeben.
    
    Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 3952 eingeben.
    
    C:\Windows\System32>
    

    Weiß jemand Rat?

     

    Gruß Micha

  4. Hi,

    ich denke für diese Ansprüche sollte die PowerShell das richtige sein.

     

    Die Version des Betriebssystem könntest du so abfragen:

    $arch = (Get-WMIObject -Class Win32_OperatingSystem).OSArchitecture

     

    Das CmdLet Copy-Item wäre wohl auch sehr hilfreich. Vorteil der PowerShell: Sie kann wunderbar mit UNC-Pfaden arbeiten.

     

    Implementierung des Scripts wäre per Registry Eintrag sinnvoll (HKLM:\Software\Microsoft\Windows\CurrentVersion\Run).

     

    Eine Inspiration zum Thema "Existenzprüfung von Elementen" findest du hier und hier findest du Informationen zum Thema "Kopieren und Verschieben von Dateien und Verzeichnissen"

     

     

    Schönen Gruß

     

    Micha

  5. Du musst dir erstmal überlegen, von wo ausgehend etwas kopiert werden soll. Ist das Ausgangsverzeichnis IMMER gleich, muss der User ja nur den Verzeichnisnamen angeben. So wie am Anfang mit $env:USERPROFILE

    Wenn z.B. "C:\Folder123\" das Ausgangsverzeichnis wäre, dann könnte dir evtl. folgender Code helfen:

     

    $TestPath = $false
    while(!($TestPath))
    {
     $path = Read-Host "Zu kopierendes Verzeichnis?"
     $TestPath = Test-Path $path
     if(!($TestPath))
     {
       write-warning "Angegebenes Verzeichnis existiert nicht"
     }
    }
    

     

    Zum Thema $env:USERPROFILE

    Gib mal in deiner PS den Befehl dir env: ein. Damit listest du dir alles Umgebungsvariablen von Windows auf. Dort wirst du auch die Umgebungsvariable USERPROFILE finden, welche du mit $env:USERPROFILE aufrufst, bei welcher es sich übrigens um das Profil des aktuell angemeldeten Benutzers (!!!) handelt.

  6. Hello again,

     

    melde mich dieses mal mit einem neuen Problem:

    Habe ein Script geschrieben, was von bestimmten Servern (aus einer Textdatei) alle Nicht-Dollar-Shares ausliest, und im Anschluss die Größe des Verzeichnisses der jeweiligen Freigabe in einer Excel Tabelle erfasst.

    Hier wurde mir zwar schon weitergeholfen, aber aus Performancegründen musste eine Alternative (ganz unten im Link; New-Object -com Scripting.FileSystem.Object) her. Weitgehend funktioniert das auch, aber wenn ich die GetFolder-Methode auf eine Partition, D:\ z.B. ansetze, wird bei der Size-Property 0MB ausgegeben.

     

    Hat einer eine Idee, woran das liegt?

     

     

    Gruß Micha

  7. blub: Vielen Vielen Dank!!! Made my Day!

    Habs mit Framework 2.0 kompiliert und

    [Reflection.Assembly]::LoadFile("D:\Rect.dll")
    

    hat zum Erfolg geführt.

     

    Noch eine Frage zum instantiieren:

    $obj = New-Object Rect.Rect

    Das erste "Rect" bezieht sich auf das Assembly (Rect.dll) und das zweite "Rect" bezieht sich auf den Namen der Klasse. Ist dies korrekt?

     

     

    Gruß Micha

  8. Moin liebe Scripting Gemeinde,

     

    ich brauche schon wieder eure Hilfe.

    Folgendes Szenario:

    Habe dieses Script in Visual C# Express 2010 in eine *.dll kompiliert und möchte nun die Library in der Powershell laden um auf die Properties zugreifen zu können.

    Habe folgendes Probiert:

    [Reflection.Assembly]::LoadFile("D:\Rect.dll")
    [Reflection.Assembly]::Load("D:\Rect.dll")
    

    Leider hat beides nicht zum Erfolg geführt, sondern vielmehr zu folgenden Fehlermeldungen:

    PS -> [Reflection.Assembly]::LoadFile("D:\Rect.dll")
    Ausnahme beim Aufrufen von "LoadFile" mit 1 Argument(en):  "Die Assembly wird von einer Laufzeit erstellt, die aktuelle
    r als die derzeit geladene Laufzeit ist, und kann nicht geladen werden. (Ausnahme von HRESULT: 0x8013101B)"
    Bei Zeile:1 Zeichen:32
    + [Reflection.Assembly]::LoadFile <<<< ("D:\Rect.dll")
       + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
       + FullyQualifiedErrorId : DotNetMethodException
    

    PS -> [Reflection.Assembly]::Load("D:\Rect.dll")
    Ausnahme beim Aufrufen von "Load" mit 1 Argument(en):  "Die Datei oder Assembly "D:\\Rect.dll" oder eine Abhängigkeit d
    avon wurde nicht gefunden. Der angegebene Assemblyname oder die Codebasis ist ungültig. (Ausnahme von HRESULT: 0x801310
    47)"
    Bei Zeile:1 Zeichen:28
    + [Reflection.Assembly]::Load <<<< ("D:\Rect.dll")
       + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
       + FullyQualifiedErrorId : DotNetMethodException
    

     

    Wer weiß Rat?

     

    Gruß Micha

×
×
  • Neu erstellen...