#26 Le 24/02/2009, à 16:30
- philarmonie
Re : (kômik) Tentative de hack ?
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
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 ?
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...
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 ?
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 ).
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
Hors ligne
#31 Le 24/02/2009, à 16:47
- philarmonie
Re : (kômik) Tentative de hack ?
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.
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 ?
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.
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
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
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
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...
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 ?
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
que nenni, fils de macxp, nuance !
hérétiques !!!!
dou
Hors ligne