SAM überschreiben?

Moin,

ich bin neu hier
ich suche Sicherheitlücken in systemen
(mehr so als Hobby nicht professionel, aber irgendwann...
können tu ich das auch noch nicht wirklich, aber ein paar Tricks kenn ich,
ich mein richtige, nicht sowas wie das Admin-Konto von XP *g*)

ich wüsste gerne ob ich das WinXP Passwort ändern kann (löschen würde eigentlich auch reichen, aber ich denke ich kann nicht einfach die SAM löschen*g*), indem ich die SAM ersetze
also natürlich über Ms-Dos, Linux oder so

das es geht weiß ich, aber ich möchte keine vorgefertigten Programme benutzen
ich mach meine proggs für sowas immer selbst
sonst werd ich sowas nie professionel können

ich stell mir das so vor:
neues Passwort -> MD5 Hash (oder was auch immer)
alten MD5 Hash durch neuen ersetzen (oder die ganze SAM ersetzen)

ich stell mir sowas aber immer zu einfach vor
ich denk mal da gibt es ein paar haken, aber so im prinzip ungefähr

nun meine Frage:
an welcher Stelle ist den der MD5 Hash in die SAM gespeichert?
Texteditor half mir nicht wirklich weiter (hätte mich auch gewundert)
und gibt es irgendwo nen Haken so wie ich mir das vorstell?

dann wollt ich noch sagen das ich übrigens die suche benutzt hab
aber wenn ich nach XP, SAM und MD5 suche kommen viel zu viele Ergebnisse
Google hab ich auch benutzt
das einzige vernünftige Ergebnis war dieses Forum

die Fragen bei der Registrierung find ich vielleicht becheuert
ich dachte ich schaffs nicht weil ich nicht wusste wo Saab hergestellt wird :D
aber zum Glück kann man das einfach immer wieder probieren

also in diesem Sinne: auf gutes gequatsche
ich werd euch sicher noch oft genug mit fragen auf die Nerven gehen,
genauso aber wie mit hoffentlich (*g*) hilfreichen antworten
 
Dir ist schon klar, dass die SAM ab win 2000 mittels SYSKEY "geschützt" ist, darum ist es nicht möglich mit tools wie http://home.eunet.no/~pnordahl/ntpasswd/bootdisk.html
neue Passwörter zu schreiben (danke für die info an SUID:root ;) ). Viel Spass schon mal mit Syskey.
löschen würde eigentlich auch reichen, aber ich denke ich kann nicht einfach die SAM löschen*g*
Der Link oben. Damit kann man das Passwort zumindst immer löschen. Warum sollte es auch nicht gehen? Wenn man ein anderes OS bootet, welches sich nicht um NTFS Zugriffsreche schert?

ber ich möchte keine vorgefertigten Programme benutzen
Du möchtest also lieber einen eigenen Bootlader und ein kleines OS schreiben und zusätzlich den NTFS Zugriff realisieren? Wozu das Rad neuerfinden ?


neues Passwort -> MD5 Hash (oder was auch immer)
geht seit NT SP3 nicht, siehe Syskey
dann wollt ich noch sagen das ich übrigens die suche benutzt hab
Wenn Du SAM Structur brauchst, ich denke nicht dass MS da eine Documentation dazu hat, aber siehe link oben - da gibts auch Source zum Programm, einfach die SAM.h anschauen.

Ich fasse es mal zusammen: Du nimmt Dir ein kleines OS, welches auf Diskette passt (DOS, usw). Du besorgst Dir dafür NTFS Treiber (auch für Dose gibts die). Du schreibst ein eigenes Programm, welches die SAM zurücksetzt. Also doch das Rad neuerfinden.
Vor allem - ich würde nicht versuchen, die SAM zu ersetzen, weil man dann eben die Langwiriege Besitzübernahme aller Daten in Angriff nehmen muss. Aber editieren sollte gehen.
 
Dir ist schon klar, dass die SAM ab win 2000 mittels SYSKEY "geschützt" ist, darum ist es nicht möglich mit tools wie http://home.eunet.no/~pnordahl/ntpasswd/bootdisk.html
neue Passwörter zu schreiben (danke für die info an SUID:root Augenzwinkern ). Viel Spass schon mal mit Syskey.[/Quote|

irgendwas hab ich davon schon gehört
aber nicht genau wo an der Sache der Sinn ist
aber Passwort löschen reicht völlig aus
das ganze ist eh von einem Recovery System geschützt das as Passwort beim nächsten Image aufspielen wieder herstellt

[Quote|Du möchtest also lieber einen eigenen Bootlader und ein kleines OS schreiben und zusätzlich den NTFS Zugriff realisieren? Wozu das Rad neuerfinden ?

okay da hab ich mich wohl ein bisschen blöd ausgedrückt
ich meinte damit das ich nicht einfach ein Programm haben will:
"neues Passwort:" und fertig

geht seit NT SP3 nicht, siehe Syskey

Syskey scheint ja ein lustiges System zu sein
hat sich Microsoft doch mal was vernünftiges ausgedacht?


gut dann scheint das wenigstens mit dem Passwort löschen so zu funktionieren wie ich mir das vorgestellt hab
ich depp hätte gestern eigentlich gucken können ob man überhaupt auswählen kann von wo man startet
jetzt muss ich erst wieder ne Woche warten...
also dann Gute Nacht!
ich meld mich dann wieder wenn ich neue Probleme hab :D
PS: wo ist hier eigentlich der "Quote" Knopf?
habs jetzt von Hand eingegeben
 
okay da bin ich wieder
mit 4 neuen Fragen:

1. was genau ist den Syskey?
hier im forum find ich nur halbe Sachen
kann man das nicht auch irgendwie umgehen?

2. woher bekom ich die Structur von der SAM?
die in dem Source gefällt mir nich so
da steht ja fast überall "unknown"
aber im MSDN find ich nix

3. ich hab mal auf meinem Pc nach der SAM gesucht
dabei hab ich auch eine in "repair" gefunden
scheint ne sicherungskopie oder so zu sein
aber wann kommt die zum einsatz?
dann bräuchte man ja nur die ändern

4. der Admin von dem System hat mir grad gesagt das das ganze gar kein NTFS ist
sondern FAT32, kann ich da tortzdem dieses NTFS-Dos benutzen
oder tuts das nicht?
 
1. was genau ist den Syskey?
kann man das nicht auch irgendwie umgehen?
http://home.eunet.no/~pnordahl/ntpasswd/
Syskey.txt. Auch wie man es umgeht.
ansonten sollte Google was brauchbares liefern (zumindest gestern tat es noch)

2. woher bekom ich die Structur von der SAM?
die in dem Source gefällt mir nich so
da steht ja fast überall "unknown"
aber im MSDN find ich nix
Du glaubst gar nicht, wieviele Sachen in MSDN nicht stehen und nicht offiziell dokumentiert sind ;). Z.B die ganzen Kernelinternen APIs. Und da kann man nun mal nicht viel machen, es sei denn Du versuchst dahinter zu steigen, was die unknowns bedeuten könnten. Nochmal: es gibt keine offizielle Doku von MS. Wenn es die gäbe, würde im Source bestimmt nicht "unknown" stehen (sondern die offizielle Structur übernommen werden). Vielleicht gibts aber irgendwo eine bessere Doku, jedoch reicht diese offenbar bei ntpasswrd aus.

3. ich hab mal auf meinem Pc nach der SAM gesucht
dabei hab ich auch eine in "repair" gefunden
scheint ne sicherungskopie oder so zu sein
aber wann kommt die zum einsatz?
dann bräuchte man ja nur die ändern
http://msdn.microsoft.com/archive/en-us/dnarntpro00/html/ntp0063.asp
http://www.microsoft.com/technet/archive/security/news/efs.mspx
eine gute Zusammenfassung:
http://is-it-true.org/nt/atips/atips262.shtml
das sollte erstmals genügen. Nimm entweder MS Tool (Stichwort ERD) und schaue es dir im Disassembler an oder eine Bootdisk, von der Soruce verfügbar ist.
In den Links ist übrgiens auch enthalten, was ERD braucht und womit man es zu tun hat und was es auf sich mit dem Repair Ordner hat.

4. der Admin von dem System hat mir grad gesagt das das ganze gar kein NTFS ist
sondern FAT32, kann ich da tortzdem dieses NTFS-Dos benutzen
oder tuts das nicht?
Du weißt schon was gemeint war? Treiber für DOS. Es gibt auch andere alternativen (und auch andere DOSen). Wichtig ist nur eben, dass man für alle Fälle Treiber für NTFS mit dabei hat. Und dass man die SAM seit 2000 nicht ohne weiteres überschreiben kann. Nicht dass ich mich hier auskennen würde - 5 Minuten googlen hat bis jetzt alles was Du lesen konntest, zum Vorschein gebracht :rolleyes:
 
Du glaubst gar nicht, wieviele Sachen in MSDN nicht stehen und nicht offiziell dokumentiert sind Augenzwinkern . Z.B die ganzen Kernelinternen APIs. Und da kann man nun mal nicht viel machen, es sei denn Du versuchst dahinter zu steigen, was die unknowns bedeuten könnten. Nochmal: es gibt keine offizielle Doku von MS. Wenn es die gäbe, würde im Source bestimmt nicht "unknown" stehen (sondern die offizielle Structur übernommen werden). Vielleicht gibts aber irgendwo eine bessere Doku, jedoch reicht diese offenbar bei ntpasswrd aus.

dacht ich mir irgendwie schon
das Problem ist nur das ich zu dumm bin :D
ich seh in der Struktur in dem Code beim besten Willen nix von "Passwort"
da steht nur Zeugs über die Passwort Maximal Länge usw.

5 Minuten googlen hat bis jetzt alles was Du lesen konntest, zum Vorschein gebracht Augen rollen

das dacht ich auch
ich hab zb nach "SAM Struktur Windows XP" gesucht
da kommen aber immer nur Seiten wie ich zb die Registry wiederherstellen kann
aber von der Struktur konnte ich nicht auf einer einzigen Seite was finden


und dann hät ich da noch ne Frage:
nach welchem Prinzip funktioniert denn das ganze?
das Passwort wird ja nur gelöscht und nicht überschrieben
ibts da in der SAM einen Eintrag ob das Passwort aktiv ist
oder muss man den Teil wo das Passwort steht mit Nullen überschreiben?
 
Also die SAM alleine nützt Dir bei einem W2k und XP Rechner rein gar nichts Du brauchst dazu auch noch die SYSTEM datei! Nur mal so am rande!
 
hä? :rolleyes:

so langsam versteh ich gar nix mehr
aber das is nich das erste mal :D

also nochmal von vorn:

ich will ja das Passwort "nur" ausschalten
wie genau soll das denn überhaupt funktionieren?

a) einfach mit keinem Passwort überschreiben
wo man aber doch theoretisch auch den Syskey zu bräuchte oder nicht?

b)gibts da ein Bit oder so das einfach sagt es gibt ein Passwort oder es gibt keins
aber das wär ja eigentlich zu leicht

c)wie sonst?


und wo steht jetzt berhaupt das Passwort?
in System oder in SAM?
oder in beiden die hälfte?

auf der Seite zu der du mir den Link immer wieder zeigst
steht ja nur wie ich das Programm von diesem Typ bedienen kann
das hilft mir aber irgendwie nicht weiter
 
http://support.microsoft.com/kb/q143475/
http://home.eunet.no/~pnordahl/ntpasswd/syskey.txt <= Das meinte CDW

So, und hier noch eine kleine Anleitung, damit du die Files findest und bekommst und ich mir nicht die Finger blutig tippen muss (Man verzeihe mr die Faulheit heute;).

Retrieving the Windows XP SAM and SYSTEM files

- With a DOS boot disk -

1. Copy the NTFSDOS file onto your DOS boot disk.

2. Copy the RAR utility files onto one of your empty floppy disks.

3. Boot your system with the boot disk.

If your system drive uses the FAT32 file system:

5. From the a: prompt, insert the disk with the RAR utility.

6. Type: Rar32 a -v a:\systemandsam c:\windows\system32\config\system c:\windows\system32\config\sam

This will copy both the System and SAM files into a compressed file on your floppy called 'systemandsam.' They should all fit onto the one disk, but if not, you will be prompted to insert another blank floppy.

7. Now skip down to the section on extracting passwords.

If your system drive uses the NTFS file system:

8. Type: ntfsdos to detect NTFS formatted drives. The system will inform you which drive letters are allocated to which drives. Make a note of the drive letter of your main drive (the one with windows installed on it).

9. Insert the disk with the RAR utility and type:

10. Rar32 a -v a:\systemandsam (drive letter of your main drive as above):\windows\system32\config\system (drive letter of your main drive as above):\windows\system32\config\sam

11. This will copy both the System and SAM files into a compressed file on your floppy called 'systemandsam.' They should all fit onto the one disk, but if not, you will be prompted to insert another blank floppy.

12. Now skip down to the section on extracting passwords.

- Using a portable Linux CD -

1. These tend to be pretty user friendly, at least compared to most Linux versions? Just boot from the CD.

2. As most current versions of Linux read NTFS drives as well as FAT32, simply navigate to the HDA1\windows\system32\config directory from the desktop and copy the SAM and SYSTEM files to the desktop, then email them to yourself.

From a hard disk you transferred to a new computer

1. Easiest of all. Simply navigate to the (drive letter)\windows\system32\config directory and copy the SAM and SYSTEM files to the location you desire.

root
 
verdammt irgendwie drück ich mich zu unverständlich aus
ich weiß wie man Dos benutzt und die SAM und SYSTEM Datei kopieren kann
das ist überhaupt kein Problem

also noch ein neuer Erklärungsversuch:

ich will wissen wie ich die SAM bzw. SYSTEM Datei modifizieren muss
damit das Passwort gelöscht (oder ausgeschaltet, was auch immer...) ist
wie genau ich das ganze dann realisieren kann weiß ich schon,
aber man muss ja irgendwelche Bytes in der Datei ändern
und genau das welche das sind will ich wissen bzw. auf welche Werte ich die ändern muss


(hab das wichtige mal Fett geschrieben)

wie ich das Passwort überschreibe ist jetzt egal
ich muss nur einmalig zugriff auf den Admin Account haben
danach setzt nämlich das Recovery System alles zurück
ausser die Netzlaufwerke
und auf die hab ich nur als Admin zugriff und genau den brauch ich
auf einem Netzlaufwerk ist nämlich das Passwort für das administrier-tool gespeichert
(wie ich da dran kom weiß ich schon)

und wenn ich das hab, hab ich eine Wette mehr gewonnen
und der Admin eine mehr verloren :D

das ganze ist auch kein Problem, die Boot-Reihenfolge ist glücklichwerweiße nicht geändert
ich muss nur noch an dem Admin Passwort vorbei
 
Sag mal, liest du eigentlich auch das, was man postet?`

Ich hab von C/C++ wirklich keine Ahnung, aber wenn man mal in den Sourcecode von dem Programm guckt, sieht man:

Code:
if (*yn == 'y') {
     if (pl == 1 && *newp == '*') {
       /* Setting hash lengths to zero seems to make NT think it is blank

Du hast wirklich alle Informationen. Erklärung zu Syskey, SAM, Sourcecode samt guter Dokumentation.
Wie wäre es denn mit ein bisschen Eigenintiative, statt sich alles vorkauen zu lassen?


root
 
okay also wenn ich den Hash auf Null setze denkt NT es gibt kein Passwort

aber das Problem ist doch gar nicht das Problem
das Problem ist das ich nicht weiß an welcher Stelle der sein soll
und ich kann im ganzen Code keine Info darüber finden wo der sein soll
ich will doch bloß wissen am wievielten Byte der sitzt und wie lang er ist (die Länge ist nicht das Problem)

der Code von dem Programm ist leider für NT4
ich hab aber Windows XP
deswegen kann ich wahrscheinlich bei mir auch die Stelle mit dem Hash nicht finden

ich hab mir das eigentlich so wie bei PDF Dokumenten vorgestellt
man setzt ein Byte um das sagt ob es ein Passwort gibt und das wars
(nur halt nicht ganz so leicht)

und ich will doch einfach nur wissen welcher Byte bzw. Bytes das sind
davon seh ich in dem Code aber absolut gar nichts

drück ich mich wirlklich so unverständlich aus :(

egal ich hab Zeit, es würde mir auch ein Link oder so reichen
aber der Quellcode sagt mir gar nix

vielleicht muss ich mal eine Antenne neu einstellen
irgendwie hab ich das Gefühl die läuft auf ner anderen Wellenlänge wie eure :D
und wenn alle Stricke reißen hab ich noch nen ersatzplan
der ist nur leider viel unspektakulärer
 
Ich verstehe dich schon, aber du mich wohl nicht. ;)
Such dir ein Programm mit dem du die Hashes angezeigt bekommst (SAMinside?), suche einen Hash raus, nimm vielleicht einen Hex-Editor oder einen Dissassmbler (musst du testen, wie du das File "lesbar" machst), suche den String, usw... Dann hast du alles was du brauchst. Wo ist dein Problem?

Warum sollte es bei XP nicht gehen? XP ist ein NT-basiertes System. Der Unterschied besteht hier im default-aktiven SYSKEY. Dazu hast du aber auch alle Informationen.
Du hast praktisch kein Basis-Wissen darüber, willst aber alles per Hand machen, was andere per Tool erledigen. Ich kann dir auch nicht beantworten, an welchem Offset der Hash für Administrator abgelegt ist.
Bisher habe ich diese Info einfach nicht gebraucht. So wird es wohl fast allen hier gehen.
Das wirst du dir erarbeiten müssen.

Wenn du das PW zurücksetzten willst, nimm ein Tool. Wenn du das nicht willst, lerne wie die Tools funktionen und mach es per Hand.
Wenn du Wert auf Spektakuläres legst, und den 1337-H4X0r raushängen lassen willst, dann erarbeite dir die Lösung. :rolleyes:

Gruss

root
 
der Code von dem Programm ist leider für NT4
ich hab aber Windows XP
deswegen kann ich wahrscheinlich bei mir auch die Stelle mit dem Hash nicht finden
kleine Korrektur: das Programm hat bis jetzt nicht nur bei mir, sondern auch ca. mindestens 10 XP Usern geschafft, das Passwort zurückzusetzen (wie sie mir freundlich in ihren Mail mitteilten :rolleyes: ). Ich habe es zwar noch nicht auf einem 2003 Windows testen können, aber laut google geht das da auch
http://www.administrator.de/Passwort_von_Windows_vergessen._Hilfe!!!!.html
Mit dieser CD kommst Du eigentlich in jeden Rechner, von NT bis 2003!



und ich will doch einfach nur wissen welcher Byte bzw. Bytes das sind
soweit ich das verstanden habe, ist das eine Art Datenbank, deshalb wirst Du keine festen Adressen dafür finden können. Vielmehr muss wohl ausgelesen werden, wo diese Adresse ist .
Auszug aus der Readme.txt die dem Source beigelegt ist:
Code:
This is how NT encrypts the passwords:

The logon cleartext password a user enters is:
1) Converted to unicode
2) A MD4 hash is made out of the unicode string
3) Then the hash is crypted with DES, using the RID (lower
   part of the SID, userid) as the crypt key.
   This is the so called "obfuscation" step, so
   it's not obvious on a hex dump of the file
   that two or more users have the same password.
4) The result of stage 3 (16 bytes) is put into the V struct.

For the LANMAN password:
1) Uppercased (and illegal characters probably removed)
   14 bytes max, if less the remaining bytes are zeroed.
2) A known (constant) string is DES-encrypted
   using 7 first characters of the password as the key.
   Another constant is encrypted using the last 7 chars
   as the key.
   The result of these two crypts are simply appended,
   resulting in a 16 byte string.
3) The same obfuscation DES stage as 3 above.
4) 16 bytes result put into the V struct.

...

This program, however, don't care at all what the old
one is, it just overwrites it with the new one.

[COLOR=red]
Ok. So, how do we find and identify the V struct?
Yeah.. that was the hard part.. The files structure
is not documented (as far as I know..)[/COLOR]
But, with help from an unnamed German, and a lot of testing
and guesswork from myself, it's now possible to follow
the actual registry tree. (see source code for struct-defines
and comments on the registry structure)

The usernames are listed in:
\SAM\Domains\Account\Users\Names\

[2d18] \SAM\Domains\Account\Users\Names> l
ls of node at offset 0x2d1c
Node has 4 subkeys and 1 values
nk-offset      name
0x003290 - <Administrator>
0x003630 - <Guest>
0x001c88 - <luser>
0x003428 - <pnh>

Each name is a subkey, with one namless value containing
the RID.

[2d18] \SAM\Domains\Account\Users\Names> cd pnh

[3428] \SAM\Domains\Account\Users\Names\pnh> l
ls of node at offset 0x342c
Node has 0 subkeys and 1 values
vk-offs    size    type           name
0x003688     0  (unknown)        <> INLINE:  val (in type field?): 1000 (0x3e8)

To get the userinfo (V struct), access
\SAM\Domains\Account\Users\<RID>\V

[2c90] \SAM\Domains\Account\Users> l
ls of node at offset 0x2c94
Node has 5 subkeys and 1 values
nk-offset      name
0x003320 - <000001F4>
0x0036b8 - <000001F5>
0x003550 - <000003E8>
0x001d00 - <000003E9>
0x002d18 - <Names>

[2c90] \SAM\Domains\Account\Users> cd 000003E8

[3550] \SAM\Domains\Account\Users\000003E8> l
ls of node at offset 0x3554
Node has 0 subkeys and 2 values
vk-offs    size    type           name
0x0035a8    80  REG_BINARY       <F>
0x003228   508  REG_BINARY       <V>

[B]For more techincal info, look it up in the source code[/B].

So, jetzt zum
ausser die Netzlaufwerke
und auf die hab ich nur als Admin zugriff und genau den brauch ich
Hier begebe ich mich noch mehr auf dünnes Eis (zu deutsch: es könnte auch Mist sein, was ich schreibe ;) ). Aber war das nicht so, dass im Netzwerk so was wie ein Domaincontroller vorhanden ist und dass man sich da mit dem Admin passwort einlogt - es bringt dann nichts, mit einer Kiste anzukommen, auf der man Admin ist. Natürlich könnte das auch anders aussehen (je nach Netzwerklösung, hab ja schon echt schlimme Sachen von "Profifirmen" gesehen, die einer Schule viel Geld abknüpfen)

Also nach möglichkeit lieber versuchen das Passwort zu kopieren und es zu brutforcen. Hier sollte die Hauptschwäche liegen, denn viele Hobby-Admins setzen keine langen Passwörter ein (unser Schulnetzwerk hatte irgendwas mit Adminpass oder adminpass *an die guten alten Zeiten denk* ). Wie man das am besten anstellt, kann ich leider nicht sagen, es sollten aber genügend Anleitungen zu finden sein.

Wenn es darum geht, nichts vorgefertigtes zu benutzen: was ist dann überhaupt mit einer Bootdisk? Man kann z.B auch eine WinliveCD mit Bart-PE erstellen, @stake (oder wie es hieß) drauf machen und sein Glück damit versuchen - man sollte damit auf jedenfall entwerder Zugriff auf alles haben oder sich diesen verschaffen können (Rechte ändern) und eventuell kann man das Programm von /ntpaswd auf einer Winplattform zum laufen bringen oder eine entsprechende Portierung finden (den sollte es geben). Damit es auch 1337 aussieht, kann man bei der BootCD auch die GUI weglassen und stattdessen in der Console arbeiten ;)
 
Such dir ein Programm mit dem du die Hashes angezeigt bekommst (SAMinside?), suche einen Hash raus, nimm vielleicht einen Hex-Editor oder einen Dissassmbler (musst du testen), suche den String, usw... Dann hast du alles was du brauchst. Wo ist dein Problem?

ah das bringt mich auf eine Idee
ich speicher die SAM einfach
dan änder ich das Passwort und vergleiche die neue mit der alten SAM
dann sollte ich die Unterschiede sehen

es gibt zwar noch ein paar mehr Werte (was weiß ich PW-Counter)
aber der Hash hat ja eine festgelegte Länge
also sollte das kein Problem sein in so zu finden

meld mich dann wieder...
 
Zurück
Oben