[Multi] Password Reveal

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil graag de techniek willen weten achter de tools "password reveal". Het gaat om de tools die je kan starten waarbij de asterixes worden omgezet in text.

Ik heb al zitten googlen, maar kom niet achter de techniek. Misschien dat iemand al iets gebouwd heeft in een andere taal die mij meer kan vertellen hierover :+

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Onder Win 2000 (of was 't XP?) en hoger werkt het al lang niet meer (als je het hebt over deze. Voor oude (of gare) software waar geen passwordbox gebruikt wordt maar een textbox kan dit soort software nog steeds wel werken, maar dat is dan de schuld van de software die met allerlei stunts de daadwerkelijke tekst verandert naar sterretjes, bullets of whatever. Een correcte implementatie (en dus bij gebruik van een passwordbox) is anno 2011 (als het goed is) veilig voor dit soort tools omdat ze geen 'gewone' textbox zijn en dus het onderliggende wachtwoord afschermen op OS niveau. Password revealer werkte door gewoon met wat pointers te spelen en 't juiste adres in 't geheugen op te zoeken en de daar opgeslagen text weer te geven.

Op websites (in HTML dus) e.d. is 't gewoon een kwestie van met JS de type van een input control veranderen van password naar text. Tools als de web developer toolbar doen dat.


Ik zie verder niet echt wat dit met PRG te maken heeft :?

[ Voor 58% gewijzigd door RobIII op 01-02-2011 11:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Die techniek heet Javascript. Het type van een input kun je gewoon aanpassen van password naar text. Nadeel is wel dat je je password dan van meet af aan al in je HTML-bron hebt staan, wat je uiteraard niet moet willen. Niet in de laatste plaats omdat je je wachtwoorden daar al plain text voor in je database moet zetten.

Wat is er mis met een ouderwetse password reset (dus géén recovery!) per mail?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het werkt nog steeds op 2008 R2. Het gaat b.v. om deze:

http://www.nucleustechnol...rd-Show-Reveal-Stars.html

Gezien ik wil weten hoe dit wordt gedaan moet ik toch iemand hebben die eventueel een eigen applicatie hiervoor gemaakt heeft. Misschien dat ik het zelfde wil doen met C#.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
RobIII schreef op dinsdag 01 februari 2011 @ 11:17:
Voor oude (of gare) software waar geen passwordbox gebruikt wordt maar een textbox kan dit soort software nog steeds wel werken, maar dat is dan de schuld van de software die met allerlei stunts de daadwerkelijke tekst verandert naar sterretjes, bullets of whatever.
Je kunt hooguit een passwordbox omturnen naar een textbox en de daarna getypte tekst zien; de inhoud van een wachtwoord zul je je (mits de software fatsoenlijk in elkaar zit) niet gaan zien daarmee. Heb je een voorbeeld van een applicatie waar 't volgens jou werkt?

Afbeeldingslocatie: http://tweakers.net/ext/f/HtpyGFXRuW50ihzQ20XlioYr/full.png

[edit]
Hmmm, deze tool toont wel wachtwoorden die ik in Outlook 2010 heb zitten (waarvan ik dacht dat 't wel goed zat).

[ Voor 10% gewijzigd door RobIII op 01-02-2011 11:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als je in Visual C# bijvoorbeeld een form maakt met daarin een textbox en property UseSystemPasswordChar. Als je de applicatie opstart die waarbij ik hierboven een link heb gegeven dan wordt dit netjes opgezet.

Ik heb het ook getest met RES Automation Manager en daar werkt het ook prima. Het lijkt op alle applicaties te werken.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Mja, nogmaals: als de implementatie goed is wordt een "opgeslagen wachtwoord" niet eens in een input control geladen. Vziw zal en passwordbox op OS niveau toegang van buitenaf niet toestaan maar er zullen allicht wat workarounds/hacks zijn (dat blijkt :P ). Het zou, afaik, niet moeten kunnen.

Hoe 't precies gebeurt weet ik niet, maar het is allicht een kwestie van de juiste window classes zoeken, en ze dan met een Sendmessage oid gaan jennen of ze een andere window class assignen of zoiets flikken of iets dergelijks. Met pure C# ga je er vermoed ik niet komen; je zult wat API calls moeten gaan maken en wellicht zelf wat "undocumented features" moeten gebruiken :P

Edit: Op KeePass werkt 't niet, evenals "Wachtwoord wijzigen" onder windows.
Edit2: Hier en hier een korte/simpele uitleg v.w.b. het gebruik van 2 verschillende buffers en wat pointers naar zaken als GetWindowText e.d. die dat soort tools (waarschijnlijk) gebruiken. Ook wordt er in de comments gepraat over het hooken en subclassen van een control om zo de window class van een control om te turnen naar een gewone textbox.
Again: bij een goede implementatie wordt een opgeslagen wachtwoord niet eens met de control geassocieerd; helaas zijn er (blijkbaar) nog genoeg minder goede implementaties :P

Ik heb 't even getest op onze eigen software; die is er in ieder geval imuun voor :P (*pfew* :P )
Afbeeldingslocatie: http://tweakers.net/ext/f/IxGSS0in4A8z6YDX2YGBjOY9/full.png

[ Voor 46% gewijzigd door RobIII op 01-02-2011 11:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Overigens is de verwarring die je hierboven bij mij en RobIII terugzag een teken aan de wand dat je niet genoeg informatie gaf in je topicstart. Lees De Quickstart even door en probeer daar bij een eventueel volgend topic aan te denken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thanks RobIII, hier kan ik wel wat mee :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 01 februari 2011 @ 11:57:
Thanks RobIII, hier kan ik wel wat mee :)
Mag ik vragen wat je van plan bent? :P
Overigens: ook zonder control zou je het proces geheugen kunnen doorspitten om zodoende wachtwoorden te vinden (mits de juiste privileges etc. natuurlijk), maar ook voor dat soort "workarounds" zijn gewoon bestaande, goede, oplossingen als SecureString (hoewel, met voldoende doorzettingsvermogen, dat ding wellicht ook wel weer met wat spitten in het geheugen te foppen is; de SecureString zal z'n key ook ergens moeten hebben opgeslagen. Of 't zich loont of dat 't een beetje vooruit te fikken zal zijn is een tweede). Heel dat spul is, AFAIK (maar ik ben zeer zeker geen expert) gebouwd op DPAPI en AFAIK (maar pin me er niet op vast) is dat nog niet als "flawed" of "broken" bestempeld. En wie weet, misschien lul ik nu wel de grootste onzin maar dan hoor ik 't graag :Y)

[ Voor 82% gewijzigd door RobIII op 01-02-2011 12:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

RobIII schreef op dinsdag 01 februari 2011 @ 11:35:
Again: bij een goede implementatie wordt een opgeslagen wachtwoord niet eens met de control geassocieerd;
Definieer "opgeslagen wachtwoord". Als jij een wachtwoord instelt (intypen danwel SetWindowText()) op het control dan is het vrij logisch dat je dat wachtwoord ook weer op kunt vragen met GetWindowText(). Sinds ik geloof Windows XP zijn edit controls met de ES_PASSWORD style beveiligd in de zin dat het niet meer mogelijk is om vanaf een andere thread of vanuit een ander proces de window style aan te passen of er een GetWindowText() op te doen. Waar natuurlijk een simpele oplossing voor is: code injecteren in het betreffende proces en die uit laten voeren.

[ Voor 11% gewijzigd door .oisyn op 01-02-2011 12:06 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
.oisyn schreef op dinsdag 01 februari 2011 @ 12:06:
[...]

Definieer "opgeslagen wachtwoord". Als jij een wachtwoord instelt (intypen danwel SetWindowText()) op het control dan is het vrij logisch dat je dat wachtwoord ook weer op kunt vragen met GetWindowText().
Uiteraard; ik doel meer op 't "wijzigen" scenario waarin de control al "pre-filled" verschijnt. Daar zou nooit het huidige wachtwoord gebruikt moeten worden; hooguit een dummy om de sterretjes/bullets te tonen/forceren.
.oisyn schreef op dinsdag 01 februari 2011 @ 12:06:
Sinds ik geloof Windows XP zijn edit controls met de ES_PASSWORD style beveiligd
Ik twijfelde tussen Win2k en XP, maar volgens mij was 't al 2k. Boeie, beiden zijn zwaar verouderd :P

[ Voor 33% gewijzigd door RobIII op 01-02-2011 12:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het gaat niet met GetWindowText lukken zoals beschreven in "The Code Project" artikel.

"Copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied. However, GetWindowText cannot retrieve the text of a control in another application."

Source:
http://msdn.microsoft.com...ry/ms633520(v=VS.85).aspx

Ik kan wel de window title bar uitlezen hiermee. Ik ga kijken of het toch niet mogelijk is om een edit control uit te lezen zoals beschreven in "The Code Project" artikel:

"Use the Windows API function GetWindowText on the Edit control and you get the text, even if you are not the owner of the control (i.e. another process), and even stars are displayed."

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het werkt met WM_GETTEXT :)

C#:

SendMessage(focused, WM_GETTEXT, builder.Capacity, builder);
MessageBox.Show("Text: " + builder);

Ik heb een TextBox in een form geplakt met als property UseSystemPasswordChar:

Afbeeldingslocatie: http://img94.imageshack.us/img94/3577/passwordm.jpg
Pagina: 1