VNC

  • Hallo Leute.


    Also folgende Situation:

    Wir benutzen zur Fernwartung unseres Netzwerkes VNC.
    D.h nun das jeder PC ein festes Passwort hat.

    So mein Chef hat mir nun die aufgabe gestellt in mein Adminprgramm folgendes einzubauen:

    Wenn ich einen Benutzer anklicke und eine Verbindung herstelle soll das Programm ein Passwort automitsch generieren.

    So das Passwort wird in die Registry eingetragen aber halt verschlüsselt.

    Nun muss ich das automatisch generierte Passwort nun verschlüsseln.

    Nun die Preisfrage wie?

    Ich habe mich bei Google totgesucht und versucht selber ansätze zu finden.

    Aber die einzigen hinweise waren die versclüsselungsart 3DEs (ist aber nicht bestätigt) und das die Passwörter nachher in einer 8 teiligen hexadezimal zahl in der Registry steht.

    Hat von euch einer Ahnung davon der mir weiterhelfen könnte oder neue Lösungsansetze geben könnte?

    Danke im Vorraus

    Aiden

  • das ist nicht so einfach leider.. dann kommt einfach eine kommische kombination raus aber nicht das passwort...

    zb ich setze 0123456789 als passwort.

    in der registry steht dann 75587B396A8146FF

    Welches wieder enschlüsselt uX{9j?Fÿ

    ergibt ^^

  • ja das ist ja mein anliegen: welchen Algorithmus wird verwendes.. wie verschlüsselt...

    Beispiele wären nett


    Danke

    • Offizieller Beitrag

    Ich glaube, er meint etwas anderes, th.meger.
    Scheinbar schreibt die VNC-Variante (welche genau, Open Source?) das Passwort, das man eingibt selbst verschlüsselt in die Registry. Das Anliegen scheint mir nun zu sein, aus dem Wert in der Registry das Klartextpasswort auszulesen, um die Verbindung zu initialisieren.

    peethebee

    • Offizieller Beitrag

    Hi!

    UltraVNC ist meines Wissens OpenSource, es sollte sich also herausfinden lassen, welche Verschlüsselung verwendet wird. Aber ich verstehe noch nicht, wieso du das aus der Registry auslesen/dorthin schreiben willst!?
    Man kann das Passwort beispielsweise mit RSA sicher oder mit _StringEncrypt aushandeln und dann einfach neu setzen, würde ich sagen...

    peethebee

    • Offizieller Beitrag

    Hallo und herzlichen glückwunsch zum Doppel-As ;)

    _StringEncrypt funktioniert mit RC4! Ein beispiel (wie so oft ;) ) ist in der Hilfe zu finden:

    Spoiler anzeigen
    [autoit]

    include <guiconstants.au3>
    #include <string.au3>
    ; GUI and String stuff
    $WinMain = GuiCreate('Encryption tool', 400, 400)
    ; Creates window
    $EditText = GuiCtrlCreateEdit('',5,5,380,350)
    ; Creates main edit
    $InputPass = GuiCtrlCreateInput('',5,360,100,20, 0x21)
    ; Creates the password box with blured/centered input
    $InputLevel = GuiCtrlCreateInput(1, 110, 360, 50, 20, 0x2001)
    $UpDownLevel = GUICtrlSetLimit(GuiCtrlCreateUpDown($inputlevel),10,1)
    ; These two make the level input with the Up|Down ability
    $EncryptButton = GuiCtrlCreateButton('Encrypt', 170, 360, 105, 35)
    ; Encryption button
    $DecryptButton = GuiCtrlCreateButton('Decrypt', 285, 360, 105, 35)
    ; Decryption button
    GUICtrlCreateLabel('Password', 5, 385)
    GuiCtrlCreateLabel('Level',110,385)
    ; Simple text labels so you know what is what
    GuiSetState()
    ; Shows window

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $Msg = GuiGetMsg()
    If $msg = $EncryptButton Then
    GuiSetState(@SW_DISABLE,$WinMain) ; Stops you from changing anything
    $string = GuiCtrlRead($EditText) ; Saves the editbox for later
    GUICtrlSetData($EditText,'Please wait while the text is Encrypted/Decrypted.') ; Friendly message
    GuiCtrlSetData($EditText,_StringEncrypt(1,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
    ; Calls the encryption. Sets the data of editbox with the encrypted string
    ; The encryption starts with 1/0 to tell it to encrypt/decrypt
    ; The encryption then has the string that we saved for later from edit box
    ; It then reads the password box & Reads the level box
    GuiSetState(@SW_ENABLE,$WinMain) ; This turns the window back on
    EndIf
    If $msg = $DecryptButton Then
    GuiSetState(@SW_DISABLE,$WinMain) ; Stops you from changing anything
    $string = GuiCtrlRead($EditText) ; Saves the editbox for later
    GUICtrlSetData($EditText,'Please wait while the text is Encrypted/Decrypted.') ; Friendly message
    GuiCtrlSetData($EditText,_StringEncrypt(0,$string,GuiCtrlRead($InputPass),GuiCtrlRead($InputLevel)))
    ; Calls the encryption. Sets the data of editbox with the encrypted string
    ; The encryption starts with 1/0 to tell it to encrypt/decrypt
    ; The encryption then has the string that we saved for later from edit box
    ; It then reads the password box & Reads the level box
    GuiSetState(@SW_ENABLE,$WinMain) ; This turns the window back on
    EndIf
    Until $msg = $GUI_EVENT_CLOSE ; Continue loop untill window is closed

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    Und hier nochmal ein von mir erstelltes beispiel:

    Spoiler anzeigen
    [autoit]

    #include <string.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $sKeyname = "HKEY_LOCAL_MACHINE\SOFTWARE\GtaSpider",$sValuename = "Supergeheime Formel"

    [/autoit] [autoit][/autoit] [autoit]

    _Write("5x5=25","DasPasswort");hier wird die supergeheime formel abgespeichert^^
    MsgBox(0,"",_Read("DasPasswort"));hier wird sie Gelesen
    RegDelete($sKeyname);Hier wird alles wider entfernt, damit die Registry aufgeräumt bleibt ;)

    [/autoit] [autoit][/autoit] [autoit]

    Func _Write($sText,$sPassword)
    RegWrite($sKeyname,$sValuename,"REG_SZ",_StringEncrypt(1,$sText,$sPassword)) ;StringEncrypt(Entschlüsseln = 0 Verschlüsseln = 1 , Der Text, Das Password, [Welche Stufe (optional]
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Read($sPassword)
    Return _StringEncrypt(0,RegRead($sKeyname,$sValuename),$sPassword)
    EndFunc

    [/autoit]

    Mfg Spider

    Edit: axo^^ nagut... dann is der beitrag hier wohl für die katz... aber trozdem für die die es Brauchen ;)


    ABER: Ich hab noch was für dich, auch selbstgeschrieben: Vnc-ph

  • Danke! (habe ich jetzt erst gesehen)

    Nunja so ein cmdscipt habe ich auch werde ich wohl nun auch benutzen müssen...

    es wäre schön gewesen es direkt über den Algorithmus zu machen aber dann werde ich wohl mal drumherumbauen.

    Mal schauen wie weit ich komme ohne hilfe XD

  • Also...
    Erseinmal habe ich ein zufälliges passwort welches sich zb aus Ip, Sekunde, Aktuellen Benutzer, Wochentag oder ähnlichem zusammen setzt.

    So wenn ich nun den Algorithmus kennen würde könnte ich ihn durchlaufenlassen und diesen Wert gleich in die Registry eintragen lassen
    (Den verschlüsselten wert)

    Da dieses nicht geht lasse ich es nun mit vncpwdum verschlüsseln
    diesen wert den mit das Script auspuckt in die Registry eintragen.

    Mehr ist es ersteinmal nicht.

    Esgeht eigentlich nur darum dieses Script welches ich nun benutze wegzulassen

    Nachtrag:

    Hi nochmal!

    Also ich habe mich soweit drumherumgeschlungen..
    Es läuft jetzt so weit.
    Also ich lasse einen Hexwertgenereiren... dieser soll nun per remote in die Registry des jeweiligen benutzers eingetragen werden...
    Nun zu dem Problem:

    Ich benutze das Tool nircmd

    Damit funktioniert es ja acuh aber werden die änderungen erst nach c.a 45sec sichtbar... das ist leider zu lange.

    Kennt jemand von euch ein Cmd Tool welches die registry bearbeiten kann per remoteund Binary unterstützt ?

    Einmal editiert, zuletzt von Aiden (9. Februar 2007 um 09:43)