Examinez le résultat de la last
commande et tout élément comportant une adresse IP ou un nom d’hôte au lieu d’un espace vide entré sur le réseau. Si sshd
est le seul moyen de faire cela sur ce système, alors voilà.
Sinon (si cela est Linux), vous pouvez vérifier /var/log/secure
(sur la base-RH distros) ou /var/log/auth.log
(sur distros basées sur Debian) où sshd
gardera habituellement trace des connexions effectuées même si elles ne donnent pas lieu à des connexions réussies (qui frappe utmp
/ wtmp
, qui est ce qui last
va se lire). Exemple:
Apr 3 16:21:01 xxxxxxvlp05 sshd[6266]: Connection closed by xxx.xxx.13.76
...
Apr 3 09:09:49 xxxxxxvlp05 sshd[26275]: Failed password for invalid user __super from xxx.xxx.13.76 port 45229 ssh2
L’IIRC Solaris sshd
(qui ne sera pas nécessairement OpenSSH sshd
) enregistrera ces informations dans/var/adm/messages
MODIFIER:
@derobert fait un excellent point. Il est important de se rappeler que sur n'importe quel système, si votre compte superutilisateur est compromis, tous les paris sont désactivés, car les fichiers journaux tels que /var/log/wtmp
ou /var/adm/messages
pouvant être modifiés par l'attaquant. Cela peut être atténué si vous déplacez les journaux hors serveur vers un emplacement sécurisé.
Par exemple, dans un magasin où je travaillais auparavant, nous avions un ordinateur "Audit Vault" sécurisé afin de recevoir uniquement les fichiers journaux d'audit des différents serveurs du centre de données. Je recommanderais d'avoir une configuration similaire à l'avenir (puisque "j'ai une machine de test" donne l'impression que vous travaillez dans une grande boutique)
Cela devrait vous donner une liste:
Ensuite, vous pouvez utiliser
geoiplookup
legeoip-bin
package pour passer du nom d’hôte ou de l’adresse IP au pays.la source
sed
compétences ne sont pas si géniales . Pour faire quelque chose de plus complexe, utilisez Python ou un analyseur de journal dédié. Mais vous pouvez essayer ceci:zgrep sshd /var/log/auth.log* -h |grep -F 'Failed password'
Eh bien, comme prévu, et comme l'a dit @Joel Davis, tous les journaux ont été effacés, mais il y a un fichier mentionné par @Ramesh qui tente à quelques reprises d'accéder à l'utilisateur root mais n'a pas pu entrer le mot de passe correct plusieurs fois, puis la déconnexion trop de tentatives
J'ai couru un traceroute sur trois des adresses et deux viennent de Chine et l'autre du Pakistan; ce sont les IPs:
Plus d'informations sur le botnet qui a été injecté sur le serveur après avoir été compromis:
Les pirates éditent crontab pour exécuter 7 exécutables qui, à chaque fois, utiliseront tout le processeur, la sortie réseau maximale des serveurs, puis mourront. En outre, ils ajoutent le fichier Lisez-
crontab -l
moi à la liste des tâches 100 fois afin de masquer les lignes ajoutées. Ainsi, le fichier Lisez-moi avec des lignes cachées le spammera. Pour contourner cela, j'ai utilisécrontab -l | grep -v '^#'
et voici le résultat de cette commande:Comme vous pouvez le constater, tous les fichiers journaux sont effacés, c’est pourquoi je n’ai pas pu récupérer beaucoup d’informations.
Cela a mis le serveur entier (tous les ordinateurs virtuels) hors service, provoquant des délais d'attente sur les sites et sur proxmox. Voici un graphique (les pointes dénotent le botnet activement DDoS et notent le réseau):
En conséquence, j'ajouterai toute la gamme d'adresses IP chinoises à un pare-feu pour bloquer toutes les connexions (je n'ai aucun utilisateur chinois, donc je m'en fiche), j'autorise également les connexions à la racine à distance et l'utilisation de longs complexes. mots de passe. Je vais probablement aussi changer le port SSH et utiliser des clés SSH privées.
la source
De cette réponse, je vois les informations ci-dessous.
En parlant de serveurs SSH, je vais vous donner des solutions en ligne de commande.
Suivre les connexions et déconnexions des utilisateurs . C'est facile, le fichier
/var/log/auth.log
devrait avoir cette information.Suivre l'activité de ces utilisateurs : s'ils sont quelque peu innocents, vous pouvez vérifier le fichier
.bash_history
dans leur répertoire personnel. Vous verrez une liste des commandes qu'ils ont exécutées. Le problème est bien sûr qu’ils peuvent supprimer ou éditer ce fichier.Empêcher les utilisateurs de supprimer les journaux : les utilisateurs ne devraient pas pouvoir toucher
auth.log
. Afin de les empêcher de jouer avecbash_history
vous devez faire quelques astuces.Que se passe-t-il si l'utilisateur parvient à obtenir un accès root? : T'es foutu. À moins qu'il ne commette une erreur, il pourra cacher tous ses pas.
De plus, à partir de cette réponse, nous pouvons voir l'adresse IP d'un client à l'aide de la
SSH_CLIENT
variable.Également à partir de cette réponse, je vois que l’historique SSH pourrait être stocké dans ces fichiers.
En plus
/var/log/lastlog
, il y a 3 fichiers dans/var/run
et/var/log
:utmp
,wtmp
etbtmp
qui détiennent les informations sur les connexions actuelles (et informations supplémentaires), les connexions historiques et ont échoué. Voir le wiki pour une description détaillée. Vous ne pouvez pas éditer les fichiers avec des éditeurs normaux, mais vous pouvez les effacer.la source
La commande la plus simple pour obtenir les 10 derniers utilisateurs connectés à la machine est
last|head
.Pour obtenir tous les utilisateurs, utilisez simplement la
last
commandela source
Cette machine a été compromise. Cela signifie que toutes les données, historiques ou actuelles, ne sont plus fiables.
Bref, la réponse est non. Vous ne pouvez pas être sûr d'avoir trouvé l'adresse d'origine à partir d'un fichier journal enregistré sur cette machine.
Essuyez et réinstallez. Et patch.
la source
Pour ne voir que les tentatives de connexion réussies avec mot de passe:
la source
pour debian, la recherche de test est libellée de manière légèrement différente
la source