Sie sind nicht angemeldet.

  • »Predat0r« ist der Autor dieses Themas

Beiträge: 21

Registrierungsdatum: 07.11.2012

Derivat: Ubuntu

Architektur: 32-Bit PC

Desktop: GNOME 2.x

  • Nachricht senden

1

07.11.2012, 08:17

Passwortprobleme beim Nutzer per Script (Preseed und Post Preseed (.sh) Script) erstellen. "Login incorrect" oder maximal 8 Zeichen Passwort

Hallo liebes Forum,

ich hoffe ich bin hier richtig.

Undzwar verzweifel ich schon seit einiger Zeit an der automatisierten Nutzererstellung im preseed Script und Post Preseed Script.
Allerdings tritt dieses Problem auch bei manueller Eingabe auf, gestertete Systeme: Ubuntu 32/64 Bit 10.04 Desktop, 32/64 Bit 12.04 Server.

Es fing an mit dem Server Preseed:
Quelle: http://schneidr.de/2012/05/preseed-fuer-…-aktualisieren/

Quellcode

1
2
3
4
5
d-i passwd/user-fullname string user
d-i passwd/username string user 
d-i passwd/user-password-crypted password cyptedpass # md5-hash generieren: echo "secretpass" | md5sum - 
d-i user-setup/allow-password-weak boolean true 
d-i user-setup/encrypt-home boolean false


Wenn ich mit

Quellcode

1
echo "secretpass" | md5sum - 
ein Passwort generiere, spuckt er mir einen Code aus, diesen nimmt er allerdings nicht an, beim Login steht immer "Login Incorrect", natürlich gibt es keinerlei Fehlermeldung

Selbiges macht er auch mit

Quellcode

1
$ printf "r00tme" | mkpasswd -s -m md5
, wie es laut der Ubuntu Doku (https://help.ubuntu.com/12.04/installati…d-contents.html) funktionieren sollte.

Wenn ich z.B. per Konsole

Quellcode

1
useradd -m -s /bin/bash -g sudo "CRYPTEDPASSWD" testuser -c "Test User"
eingebe (und die ausgespuckten Passwörter dort einfüge) kommt exakt dasselbe -> login incorrect.

Verschiedene Passwörter wurden ausprobiert, beispielsweise 123456, test123, Wurstbude und so weiter.

Jetzt kam bei mir der persönliche Durchbruch, ich habe mcrypt installiert und den Befehl "mkpasswd" ausgeführt und dort ein Passwort eingegeben, welches auch funktioniert, allerdings ist dies auf 8 Zeichen beschränkt (ich dachte erst, dass er das Dollar-Zeichen nicht angenommen hat, was an 9. Stelle steht, ist aber nicht so).
Er gibt keinerlei Fehlermeldung aus und schneidet einfach nach 8 Buchstaben ab, wenn ich zum Beispiel test$1234 eingebe, komme ich mit "test$123" rein, gebe ich jedoch "test$123irgendwasnochsosinnloses" danach beim Login ein, komme ich auch rein, auch hier wurden selbstverständlich verscheidene Passwörter ausprobiert.

Hat einer eventuell eine Lösung, wie ich ein funktionierendes, längeres Passwort erstellen kann?
Die Erstellung kann ruhig mit Abfragen sein, da ich das Passwort per useradd im .sh Script einfügen will.

Überall lese ich, dass man einen md5 Hash erstellen muss als Passwort (siehe z.B. in den beiden Links) ich habe auch schon versucht ein funktionierendes Passwort aus der Shadow (wenn man mit adduser einen nutzer erstellt und manuell das Passwort im klartext einhackt, funkt. es) zu kopieren, was auch nicht klappte.

Danke schonmal im Voraus! :thumbsup:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Predat0r« (07.11.2012, 22:19)


  • »maettu« ist männlich

Beiträge: 3 299

Registrierungsdatum: 14.09.2005

Derivat: Xubuntu

Architektur: 64-Bit PC

Desktop: XFCE

  • Nachricht senden

2

07.11.2012, 09:56

Also normalerweise solltest du bei useradd gar kein Passwort angeben, es ist nicht sicher, da im Prinzip jemand in deinem System die laufenden Prozesse anschauen kann und dann im Klartext das neu vergebene Passwort sieht.
So grundsätzlich fehlt bei deiner useradd-Syntax ein "-p" vor deinem Passwort. Es ist übrigens zu empfehlen alle Optionen (das Zeugs mit "-") als erstes zu schreiben und dann das "Argument" bei dir wäre das "testuser".
Also das mit "-c" vorne schreiben.
Also Passwörter beliebiger Länge kannst du mit

Quellcode

1
sudo passwd testuser

setzen, klar das geht natürlich nur mit Root-Rechten.

  • »Predat0r« ist der Autor dieses Themas

Beiträge: 21

Registrierungsdatum: 07.11.2012

Derivat: Ubuntu

Architektur: 32-Bit PC

Desktop: GNOME 2.x

  • Nachricht senden

3

07.11.2012, 10:11

Oh, sorry, das -p im Syntax habe ich vergessen anzugeben, das wurde natürlich im Script mit eingetragen.
Da das neu vergebene Passwort ja kryptisch vergeben werden soll und sowieso nur für die Installation wichtig ist und umgehend geändert wird, lass ich diese "Sicherheitslücke" bewusst offen.

Der jetzige Code wäre dann, wenn ich den Kommentar nach vorne setze so:

Quellcode

1
useradd -m -s /bin/bash -g sudo  -c "Test User" -p "CRYPTEDPASSWD" testuser


Allerdings möchte ich wie gesagt das Passwort nicht manuell eingeben, sondern direkt per Script übergeben im besten Fall halt mit einem Passwort mit über 8 Zeichen, also ich möchte während der Installation kein Passwort eingeben, sondern voreingestellt mit über 8 Zeichen übergeben.
Heißt also im Fall der Preseed-Installation -> CD rein, warten bis die IP Adresse abgefragt wird, manuell einhacken -> Mittagspause -> Installation fertig und alle Nutzer automatisch angelegt inklusive Passwort.

Das klappt soweit sogar, nur halt mit der Problematik, dass er das Passwort nach 8 Buchstaben abschneidet und wenn die ersten acht Buchstaben richtig sind, kann ich alles was ich will als Passwort eingeben.
Das muss doch gehen oder? :?:

4

07.11.2012, 21:22

Habe mich mit der Anleitung nicht intensiv beschäftigt. Aber ich frage mich, wie die auf MD5 als Algo kommt. Historisch wird für Passwörter des-crypt verwendet, in aktuellen Systemen sha-512. Und beides geht mit fast allen Methoden, die du oben angeführt hast. Ich sehe auch keine 8-Zeichen-Einschränkung, da wird sehr wohl unterschieden.

Eine ganz andere Ursache hat dieses Problem:
wenn ich zum Beispiel test$1234 eingebe, komme ich mit "test$123" rein, gebe ich jedoch "test$123irgendwasnochsosinnloses" danach beim Login ein, komme ich auch rein
Meiner Meinung nach kämst du wahrscheinlich auch mit "test" rein.
Denn wenn du das verschlüsselte PW so wie oben in "double quotes" erzeugt bzw. übertragen hast, dann werden die '$' nicht ignoriert, sondern von der shell erkannt und alles folgende zu Variablennamen expandiert. Und da die ziemlich sicher nicht mit einem Wert besetzt sind... (was auch egal wäre, da es wieder nicht das wäre, was du wolltest).
Merke: Es gibt Unterschiede zwischen single und double quotes.
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

  • »Predat0r« ist der Autor dieses Themas

Beiträge: 21

Registrierungsdatum: 07.11.2012

Derivat: Ubuntu

Architektur: 32-Bit PC

Desktop: GNOME 2.x

  • Nachricht senden

5

07.11.2012, 21:47

Nein, mit test alleine funktioniert es nicht, das habe ich ausprobiert, ich muss wirklich test$123 eingeben.

Teste gerade sha-512 auf meinem privaten System (Ubuntu 10.04 32bit), aber das funktioniert auch nicht.

Quellcode

1
mkpasswd -m sha-512
mit manueller Eingabe verschiedener Passwörter z.B. test123A funktioniert nicht, genau so wie

Quellcode

1
printf "test123A" | mkpasswd -s -m sha-512


Lt. http://www.cyberciti.biz/faq/rhel-centos…ssword-hashing/
Soll das aber mit md5 gehen...
Ich habe allerdings auf meinem Heimsystem ein

Quellcode

1
cat /etc/login.defs
gemacht, da steht explizit

Quellcode

1
ENCRYPT_METHOD SHA512
NICHT auskommentiert drin, da ich daran an meinem System nichts geändert habe, nehme ich an, dass es Standard ist.

Also bei den Double Quotes ich nehme mal an das:

Quellcode

1
" 
? übernimmt er das Doillar-Zeichen nicht, mach ich allerdings ein

Quellcode

1
'
tut er das?

So, jetzt kommt der Burner:

http://serverfault.com/questions/330069/…word-for-shadow

Da steht drin ein sha-512er Algorhytmus fängt mit $6$ an.

Also hab ich die Ausgabe von mkpasswd und Shadow verglichen:
Ausgabe mkpasswd -m sha-512 (und manueller Eingabe des Passworts "ubuntuforum"):

Quellcode

1
$6$fWRvUMJw$pnQ.NhFhxwI.6I42iZEI8euq8t7lpABRuTIQlEsmlBdv0kbbt42EKKIqjrHkRdUxmoclsw/G97PHnGPWe0H/P.


useradd -p $6$fWRvUMJw$pnQ.NhFhxwI.6I42iZEI8euq8t7lpABRuTIQlEsmlBdv0kbbt42EKKIqjrHkRdUxmoclsw/G97PHnGPWe0H/P. test

und in der Shadow kommt folgendes raus:

Quellcode

1
test:.NhFhxwI.6I42iZEI8euq8t7lpABRuTIQlEsmlBdv0kbbt42EKKIqjrHkRdUxmoclsw/G97PHnGPWe0H/P.:15651:0:99999:7:::
also $6$fWRvUMJw$pnQ fehlt.


Folglich habe das passwort in ' gesetzt:

Quellcode

1
useradd -p '$6$fWRvUMJw$pnQ.NhFhxwI.6I42iZEI8euq8t7lpABRuTIQlEsmlBdv0kbbt42EKKIqjrHkRdUxmoclsw/G97PHnGPWe0H/P.' test


Und nun steht in der Shadow folgendes:

Quellcode

1
test:$6$fWRvUMJw$pnQ.NhFhxwI.6I42iZEI8euq8t7lpABRuTIQlEsmlBdv0kbbt42EKKIqjrHkRdUxmoclsw/G97PHnGPWe0H/P.:15651:0:99999:7:::


Und ich komme endlich rein und er frisst auch Dollarzeichen im Passwort und schneidet nicht nach 8 Zeichen ab! :thumbsup:

Problem scheint gelöst, danke schonmal! :thumbup:

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Predat0r« (07.11.2012, 22:09)


6

07.11.2012, 22:05

mkpasswd -m sha-512
mit manueller Eingabe verschiedener Passwörter z.B. test123A funktioniert nicht, genau so wie
printf "test123A" | mkpasswd -s -m sha-512

Quellcode

1
2
3
4
5
6
fredl@iris:/tmp$ printf "test123A" | mkpasswd -s -m sha-512
$6$nEmLiMAeh$b8JM4D.v.gfd1EeZ4MIzJERwhBX4EcfWiLPnwjvu4YWcVGsiU1v5sOk7B3VWQIEc8XNfBgvimqVJhlhYyfrBO1
fredl@iris:/tmp$ sudo usermod -s /bin/bash -g sudo  -c "Test User" -p '$6$nEmLiMAeh$b8JM4D.v.gfd1EeZ4MIzJERwhBX4EcfWiLPnwjvu4YWcVGsiU1v5sOk7B3VWQIEc8XNfBgvimqVJhlhYyfrBO1' testuser1
fredl@iris:/tmp$ su testuser1
Passwort:[test123A]
testuser1@iris:/tmp$


Lt. http://www.cyberciti.biz/faq/rhel-centos…ssword-hashing/
Soll das aber mit md5 gehen
Dann würde ich mal dort nachfragen...

bei den Double Quotes ich nehme mal an das:
"
? übernimmt er das Doillar-Zeichen nicht, mach ich allerdings ein
'
tut er das?
'man bash':

Zitat

Enclosing characters in single quotes preserves the literal value of each character within the quotes. A single quote may not occur between single quotes, even when preceded by a backslash.

Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the exception of $, `, \, and, when history expansion is enabled, !. The characters $ and ` retain their special meaning within double quotes.
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

7

07.11.2012, 22:12

Aber weil du gerade login.defs erwähnst, ein Auszug aus meiner:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# If set to "yes", new passwords will be encrypted using the MD5-based
# algorithm compatible with the one used by recent releases of FreeBSD.
# It supports passwords of unlimited length and longer salt strings.
# Set to "no" if you need to copy encrypted passwords to other systems
# which don't understand the new algorithm.  Default is "no".
#
# This variable is deprecated. You should use ENCRYPT_METHOD.
#
#MD5_CRYPT_ENAB no

#
# If set to MD5 , MD5-based algorithm will be used for encrypting password
# If set to SHA256, SHA256-based algorithm will be used for encrypting password
# If set to SHA512, SHA512-based algorithm will be used for encrypting password
# If set to DES, DES-based algorithm will be used for encrypting password (default)
# Overrides the MD5_CRYPT_ENAB option
#
# Note: It is recommended to use a value consistent with
# the PAM modules configuration.

Instinktiv hatte ich aber schon zuvor in /etc/pam.d/common-password nachgesehen:

Quellcode

1
password        [success=2 default=ignore]      pam_unix.so obscure sha512
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

  • »Predat0r« ist der Autor dieses Themas

Beiträge: 21

Registrierungsdatum: 07.11.2012

Derivat: Ubuntu

Architektur: 32-Bit PC

Desktop: GNOME 2.x

  • Nachricht senden

8

07.11.2012, 22:13

Danke für die Antworten, Fredl, ich hatte schlichtweg vergessen die Anführungszeichen beim useradd -p 'PASSWORT' zu setzen, nachdem ich den SDA-512 Hash eingefügt hatte habe ich in meinem Beitrag über deinen auch editiert :)

Mal wieder eine Menge gelernt, nun kann ich ruhig Schlafen :sleeping:

Sollte ja wohl kein Problem mehr sein dies auch auf den 12.04 Server zum Laufen zu kriegen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Predat0r« (07.11.2012, 22:18)


9

07.11.2012, 22:19

Alles klar :)
Und an deinem konkreten Beispiel kannst du auch nachvollziehen, was ich oben gemeint habe:
Eine Variable kann keinen Punkt im Namen haben, daher wird von "$6$fWRvUMJw$pnQ" auch $6, $fWRvUMJw und $pnQ versucht, zu interpretieren. Natürlich sind diese Variablen leer und deshalb fängt dein übertragener Hash auch erst mit dem Punkt an.
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

  • »Predat0r« ist der Autor dieses Themas

Beiträge: 21

Registrierungsdatum: 07.11.2012

Derivat: Ubuntu

Architektur: 32-Bit PC

Desktop: GNOME 2.x

  • Nachricht senden

10

08.11.2012, 14:21

So, gerade getestet, klappt so genau wie gewünscht! :thumbsup:
Danke nochmal

11

08.11.2012, 20:24

Gerne :)
Der Beitrag muss mindestens 10 Zeichen lang sein und 5 Wörter enthalten.
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl