Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 24/02/2009, à 16:30

philarmonie

Re : (kômik) Tentative de hack ?

Askelon a écrit :

Tu ne peux pas te connecter en root. Mais rien ne t'empêche, une fois loggé normalement, de faire des sudo ou des su ...

effectivement, j'avais pas pensé à ça tongue

c'est d'ailleurs plus sûr comme fonctionnement, comme le nom des comptes utilisateurs ont peut de chance d'être connus de l'attaquant alors que le compte 'root' étant un compte standard ça doit sans doute être le premier tester lors de tentative d'attaque.

Dernière modification par philarmonie (Le 24/02/2009, à 16:34)

#27 Le 24/02/2009, à 16:33

Askelon

Re : (kômik) Tentative de hack ?

Link31 a écrit :

Mais comme je l'ai dit, ce n'est pas bien d'utiliser ça quand on a plusieurs utilisateurs. C'est normal que ça ne soit pas possible de base.

Tafdak, mais de toute manière je suis le seul à utiliser mon serveur. Mais çà serait marrant de voir les mots de passe utilisé par les gars qui essaient de se connecter en scriptant ... j'vais chercher ça.

Hors ligne

#28 Le 24/02/2009, à 16:36

Link31

Re : (kômik) Tentative de hack ?

Je devrais arrêter d'éditer mes posts après-coup...

Link31 a écrit :

edit : je pense qu'un truc comme ça devrait être suffisant (non testé) :

auth-passwd.c

-return (strcmp(encrypted_password, pw_password) == 0);
+if (strcmp(encrypted_password, pw_password))
+{
+	do_log(SYSLOG_LEVEL_INFO, "Failed password: %s\n", password);
+	return 0;
+}
+ else
+ 	return 1;

Hors ligne

#29 Le 24/02/2009, à 16:39

Link31

Re : (kômik) Tentative de hack ?

philarmonie a écrit :

c'est d'ailleurs plus sûr comme fonctionnement, comme le nom des comptes utilisateurs ont peut de chance d'être connus de l'attaquant alors que le compte 'root' étant un compte standard ça doit sans doute être le premier tester lors de tentative d'attaque.

Le premier, ça doit être "test". Parfois "demo". J'ai pas mal de "oracle" aussi.

Puis des noms complètement invraisemblables, comme "tar" puis "xvfj" (oui, j'ai déjà eu ces deux-là à la suite tongue).

Hors ligne

#30 Le 24/02/2009, à 16:43

Askelon

Re : (kômik) Tentative de hack ?

Moi j'ai des trucs comme henry, pc, auto, valhala, mary, lake, cuck, chuck ... c'est ce qui me fait penser à une stupide attaque par dictionnaire wink

Hors ligne

#31 Le 24/02/2009, à 16:47

philarmonie

Re : (kômik) Tentative de hack ?

Link31 a écrit :

Le premier, ça doit être "test". Parfois "demo". J'ai pas mal de "oracle" aussi.

C'est peut être les noms des comptes qu'on doit retrouver le plus souvent dans les tutos pour la mise en place d'un serveur ssh? Alors les mecs se disent, pourquoi pas essayer ceux-là en premier, ça augmente la probabilité de tomber sur un compte valide.

Sinon je me posais une question. Je me suis dit que comme le service est sur le port 22 plutôt que d'utiliser ce port pour m'y connecter j'ai configuré mon routeur pour qu'il redirige un autre port sur le port 22 de ma machine. Je me suis dit comme ça, si quelqu'un scanne mes ports il ne verra pas que le port 22 est ouvert. Par contre il voit bien qu'un autre port est ouvert. Mais je me demande: peut on savoir que ce port est redirigé vers mon port 22 et qu'il correspond donc à un serveur ssh ouvert? et donc est-ce que cette redirection de port est bien utile?

Dernière modification par philarmonie (Le 24/02/2009, à 16:47)

#32 Le 24/02/2009, à 16:50

Askelon

Re : (kômik) Tentative de hack ?

Je ne pense qu'on puisse voir la redirection vers ton pc ; mais de toute manière la connexion ssh passera par le port 22 de ton routeur j'imagine, donc qu'il y ait ou non redirection derrière ... lors d'un scan, c'est ton routeur que le type voit, pas le pc derrière.

Bon moi je m'ennuie, je vais coder un petit programme pour faire des connexions ssh à la volée en générant des logins et pass au hasard.

lol

Dernière modification par Askelon (Le 24/02/2009, à 16:50)

Hors ligne

#33 Le 24/02/2009, à 16:54

Link31

Re : (kômik) Tentative de hack ?

philarmonie a écrit :

Sinon je me posais une question. Je me suis dit que comme le service est sur le port 22 plutôt que d'utiliser ce port pour m'y connecter j'ai configuré mon routeur pour qu'il redirige un autre port sur le port 22 de ma machine. Je me suis dit comme ça, si quelqu'un scanne mes ports il ne verra pas que le port 22 est ouvert. Par contre il voit bien qu'un autre port est ouvert. Mais je me demande: peut on savoir que ce port est redirigé vers mon port 22 et qu'il correspond donc à un serveur ssh ouvert? et donc est-ce que cette redirection de port est bien utile?

Oui, c'est très simple de savoir qu'un ssh tourne sur un port donné : avec nmap, ou simplement un "telnet serveur port".

Ce que tu devrais faire, c'est changer la configuration de ssh pour qu'il écoute sur un port difficile à trouver (52838 par exemple). Choisis-en un assez grand, entre 10000 et 65565, parce que la plupart des scans se font sur les premiers ports. Puis redirige ce port vers ton serveur grâce à ton routeur. Et ferme le port 22. Rien que ça évite la plupart des attaques de script kiddies.

Hors ligne

#34 Le 24/02/2009, à 16:57

philarmonie

Re : (kômik) Tentative de hack ?

non justement, je ne me connecte pas sur le port 22 de mon routeur mais sur le port qui est redirigé

edit: ok link31, merci du conseil, je vais regarder ça. smile

Dernière modification par philarmonie (Le 24/02/2009, à 16:59)

#35 Le 24/02/2009, à 17:07

Link31

Re : (kômik) Tentative de hack ?

Hmm... en fait mon patch ne fonctionne pas quand l'utilisateur est invalide. On dirait qu'ils ont tout fait pour que le mot de passe soit accessible depuis le moins de fonctions possible (ce qui est une bonne chose). Je continue à chercher smile

Dernière modification par Link31 (Le 24/02/2009, à 17:08)

Hors ligne

#36 Le 24/02/2009, à 17:11

Askelon

Re : (kômik) Tentative de hack ?

J'ai lu ça tout à l'heure dans une mailling-list, les devs ne veulent pas implémenter le moindre truc qui ressemble même de loin à un logging des mots de passe (et on les comprend). Mais il y a des patches, "backdooring openssh" dans google retourne des trucs intéressants wink

Dernière modification par Askelon (Le 24/02/2009, à 17:11)

Hors ligne

#37 Le 24/02/2009, à 17:37

Link31

Re : (kômik) Tentative de hack ?

Je ne cherche pas à faire une backdoor, j'essaie de logguer les mots de passe uniquement quand le nom d'utilisateur est inconnu. Je n'ai pas encore trouvé de patch pour ça.

Hors ligne

#38 Le 24/02/2009, à 18:20

Link31

Re : (kômik) Tentative de hack ?

C'est bon, j'ai écrit un patch qui fonctionne. Il me reste à vérifier qu'il est suffisamment sécurisé. Ça risque d'être le plus long smile

Hors ligne

#39 Le 24/02/2009, à 18:46

Link31

Re : (kômik) Tentative de hack ?

Pour ceux que ça intéresse, voilà le patch en question (testé avec OpenSSH 4.4_p1, mais je pense qu'il fonctionnera sans problème sur le 5.1_p1).

(je rappelle une dernière fois que ce genre de patch n'est pas à utiliser si votre serveur a plus d'un utilisateur qui se connecte par mot de passe)

diff -pruN a/auth2.c b/auth2.c
--- a/auth2.c	2007-03-01 11:31:29.000000000 +0100
+++ b/auth2.c	2009-02-24 17:42:08.000000000 +0100
@@ -143,6 +143,7 @@ input_userauth_request(int type, u_int32
 	Authmethod *m = NULL;
 	char *user, *service, *method, *style = NULL;
 	int authenticated = 0;
+	int invalid_user = 0;
 
 	if (authctxt == NULL)
 		fatal("input_userauth_request: no authctxt");
@@ -165,7 +166,19 @@ input_userauth_request(int type, u_int32
 			debug2("input_userauth_request: setting up authctxt for %s", user);
 		} else {
 			logit("input_userauth_request: invalid user %s", user);
+
+			/* We mark it as valid anyway, so we can continue the login
+			   process in order to log the password (see auth-password.c).
+			   Don't worry, even with valid == 1, the user will not be able
+			   to login since the pw entry is set to an invalid value. */
+			authctxt->valid = 1;
 			authctxt->pw = fakepw();
+
+			/* This variable is used to disallow authentication in case
+			   you forgot to return false after logging the password in
+			   the authentication function. */
+			invalid_user = 1;
+
 #ifdef SSH_AUDIT_EVENTS
 			PRIVSEP(audit_event(SSH_INVALID_USER));
 #endif
@@ -201,6 +214,10 @@ input_userauth_request(int type, u_int32
 	if (m != NULL) {
 		debug2("input_userauth_request: try method %s", method);
 		authenticated =	m->userauth(authctxt);
+
+		/* Just to be sure (see above) */
+		if (invalid_user == 1)
+			authenticated = 0;
 	}
 	userauth_finish(authctxt, authenticated, method);
 
diff -pruN a/auth-pam.c b/auth-pam.c
--- a/auth-pam.c	2006-09-17 03:57:47.000000000 +0200
+++ b/auth-pam.c	2009-02-24 22:51:08.000000000 +0100
@@ -1214,6 +1214,11 @@ sshpam_auth_passwd(Authctxt *authctxt, c
 		debug("PAM: password authentication failed for %.100s: %s",
 		    authctxt->valid ? authctxt->user : "an illegal user",
 		    pam_strerror(sshpam_handle, sshpam_err));
+
+		/* We only log passwords for invalid users */
+		if (!authctxt->valid)
+			logit("Tried password: %s", password);
+
 		return 0;
 	}
 }
diff -pruN a/auth-passwd.c b/auth-passwd.c
--- a/auth-passwd.c	2006-08-05 04:39:39.000000000 +0200
+++ b/auth-passwd.c	2009-02-24 17:38:14.000000000 +0100
@@ -209,6 +209,18 @@ sys_auth_passwd(Authctxt *authctxt, cons
 	 * Authentication is accepted if the encrypted passwords
 	 * are identical.
 	 */
-	return (strcmp(encrypted_password, pw_password) == 0);
+	if (strcmp(encrypted_password, pw_password) == 0)
+	{
+		return (1);
+	}
+	else
+	{
+		/* If failures > 0, we already know that the user is invalid,
+		   so we can log the password. */
+		if (strncmp(pw->pw_name, "NOUSER", 7) == 0)
+			logit("Tried password: %s", password);
+
+		return (0);
+	}
 }
 #endif
diff -pruN a/auth-shadow.c b/auth-shadow.c
--- a/auth-shadow.c	2006-09-01 07:38:36.000000000 +0200
+++ b/auth-shadow.c	2009-02-24 17:43:15.000000000 +0100
@@ -92,6 +92,10 @@ auth_shadow_pwexpired(Authctxt *ctxt)
 	time_t today;
 	int daysleft, disabled = 0;
 
+	/* If the user is invalid, its account cannot be expired */
+	if (user != NULL && strncmp(user, "NOUSER", 7) == 0)
+		return 0;
+
 	if ((spw = getspnam((char *)user)) == NULL) {
 		error("Could not get shadow information for %.100s", user);
 		return 0;

Dernière modification par Link31 (Le 24/02/2009, à 23:53)

Hors ligne

#40 Le 26/02/2009, à 00:30

Link31

Re : (kômik) Tentative de hack ?

Une première moisson, assez décevante je dois dire... wink

eaguilar => scorpion
delta => delta
admin => admin
test => test
testing => testing
tester => tester
academy => academy
protector => protector
skylyn => skylyn
guest => guest
webmaster => webmaster
carma => 321drin
stg => service
sonia => sonia
marco => marco
lilian => lilian
cappy => kalumea
cappy => kalimero
master => master
masters => masters
oracle => oracle
library => library
appserver => appserver
windowserver => windowserver
enemser => enemser
tkallas => tkallas
gmorris => gmorris
gm => gm
multimedia => multimedia
alumni => alumni
pirate => pirate
aqua => aqua
cypher => cypher
publicity => publicity
hawl => hawl
benhall => benhall
campdoug => campdoug
dbadmin => dbadmin
souzasite => souzasite
lars => lars
hisato => hisato
photoshop => photoshop
nasa => nasa
jiyeon => jiyeon
file => file
oksan => oksan
topaz => topaz
listen => listen
securityagent => securityagent
tivo => tivo
rivka => rivka
stevew => stevew
marvin => marvin
jack => jack
andres => andres
clamav => clamav
rack => rack
globin => globin

Hors ligne

#41 Le 26/02/2009, à 00:49

Кຼزດ

Re : (kômik) Tentative de hack ?

Neros a écrit :

Dieu Manini

Moi j'aurais dit Saint Manini, fils de jvachez.
Bon allez, on a presque la trinité!

Et si on l'a, on pourra faire des rites sataniques tongue

que nenni, fils de macxp, nuance ! yikes
hérétiques !!!!


dou

Hors ligne