Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] Attaque dictionnaire distribuée sur serveur ssh.

27 réponses
Avatar
Charles Plessy
Bonjour tout le monde,

ça fait quelques jours qu'on est en train de tester un dictionnaire sur mon
serveur ssh, mais avec une adresse IP différente par mot. C'est très énervant
car j'utilise logcheck, qui m'envoie des tonnes de notifications du genre
suivant :

Nov 29 12:12:14 kunpuu sshd[13789]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=75.24.138.85
Nov 29 12:12:17 kunpuu sshd[13787]: error: PAM: User not known to the underlying authentication module for illegal user earl from 75.24.138.85
Nov 29 12:14:26 kunpuu sshd[13792]: pam_unix(sshd:auth): check pass; user unknown
Nov 29 12:14:26 kunpuu sshd[13792]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.108.238.140
Nov 29 12:14:28 kunpuu sshd[13790]: error: PAM: User not known to the underlying authentication module for illegal user earlene from 218.108.238.140

Quelqu'un connaît-t-il une bonne méthode pour se débarasser de ces tentatives
de connextion (hormis le déplacement du port 22 à une autre adresse ?) Par
exemple, existe-t-il des listes noires ?

Amicalement,

--
Charles Plessy
Tsurumi, Kanagawa, Japan

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

7 réponses

1 2 3
Avatar
Régis Grison
François Boisson a écrit :
Voilà, à chacun des 128 domaines moins les 15 gérés par des abrutis qui
utilisent des listes noires à la c.. me considèrant comme un spammeur,
j'ai envoyé un mail avec les machines concernées (souvent guère plus de 3-4
d'ailleurs) en ne conservant que celles dont j'avais encore les heures et
dates des tentatives. Mon serveur de courrier bosse dessus. Ce message
arrivera après donc.





J'ignore si cela sera utile mais ça a été amusant à faire...




Bon, *c'est* utile. J'ai reçu deux mails de remerciements dès ce matin, un
pour dire que le pbm avait déjà été perçu, un autre pour dire qu'ils allaient
s'occuper du problème. Beaucoup de réponses automatiques sinon et qques
messages type «go f..k!» montrant que les gars s'en moquent.



Les «go f..k!» c'est sur abuse ? Si c'est le provider qui répond ça, il
serait peut-être bon de blacklister leurs plages d'IP (donc de les faire
suivre), sinon faut faire suivre au abuse de leur provider.

Régis.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
François Boisson
Le Tue, 02 Dec 2008 15:16:19 +0100
Daniel Caillibaud a écrit:

François Boisson a écrit :
> Voilà, à chacun des 128 domaines moins les 15 gérés par des abrutis qui
> utilisent des listes noires à la c.. me considèrant comme un spammeur,
> j'ai envoyé un mail avec les machines concernées (souvent guère plus de 3-4
> d'ailleurs) en ne conservant que celles dont j'avais encore les heures et
> dates des tentatives.

Tu as un script partageable pour faire ça (récup des ips, du fai concerné et
mail avec les lignes de logs) ?



Moi c'est assez primaire:

Script général

#!/bin/sh
ls -tr /var/log/auth.log*gz | grep "error: PAM: User not know" > /tmp/SSH_douteux
grep "error: PAM: User not know" /var/log/auth.log.0 >> /tmp/SSH_douteux
grep "error: PAM: User not know" /var/log/auth.log >> /tmp/SSH_douteux
sed -e '1,$s/^.*[ |.]([^.]*.[^.]*)$/1/g' /tmp/SSH_douteux | sort -u | grep "[a-z]" > /tmp/domainesFAI
cat /tmp/SSH_douteux | awk '{print $1" "$2" "$3" "$21}' > /tmp/SSH_date
cat /tmp/domainesFAI | xargs -n 1 ~/message.sh

où ~/message.sh est le script

#!/bin/sh
MONEMAIL=
echo "Hey" > /tmp/mailFAI
echo "" >> /tmp/mailFAI
echo "Excuse me for this message, it's an automatic one, in bad English." >> /tmp/mailFAI
echo "Computers with IP on your domain try to intruse on my server using" >> /tmp/mailFAI
echo "brut force on server SSH. It's quite sure that these computers are " >> /tmp/mailFAI
echo "themselves compromised perhaps by intrusion by ssh." >> /tmp/mailFAI
echo "" >> /tmp/mailFAI
echo "Following the name of these computers and the date of the attack (UTC+1)." >> /tmp/mailFAI
echo "Is it possible to send a message to the admins of these computers." >> /tmp/mailFAI
echo "" >> /tmp/mailFAI
echo "Thanks a lot" >> /tmp/mailFAI
echo "Regards" >> /tmp/mailFAI
echo "F. Boisson" >> /tmp/mailFAI
echo "Paris" >> /tmp/mailFAI
echo "France" >> /tmp/mailFAI
echo $MONEMAIL >> /tmp/mailFAI
MAIL=""
echo "Computers and date (UTC+1):" >> /tmp/mailFAI
for i in `grep $1 /tmp/pasbeaux.0` ; do
if grep -q $i /tmp/SSH_date ; then
echo "machine $i" >> /tmp/mailFAI
echo >> /tmp/mailFAI
grep $i /tmp/SSH_date >> /tmp/mailFAI
echo >> /tmp/mailFAI
MAIL=X$MAIL
fi
done
if [ -z $MAIL ] ; then
echo Pas de mail a abuse@$1
else
echo Mail a abuse@$1
cat /tmp/mailFAI | mail -s "Attaque SSH from your domain" abuse@$1
fi


Voilà tout y est Anglais approximatif compris. J'ai fait ça hier en 1/4 d'heure donc
ça n'est guère sophistiqué mais ça a marché. Pour les IP sans reverse DNS, on
peut s'en sortir avec un whois mais je n'ai pas automatisé la chose.

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Daniel Caillibaud
François Boisson a écrit :
sed -e '1,$s/^.*[ |.]([^.]*.[^.]*)$/1/g' /tmp/SSH_douteux | sort -u | grep "[a-z]" > /tmp/domainesFAI



je comprends que tu prends les deux dernières sous-chaînes du fqdn (j'ai pas le même format de log, et seulement les ip, pas encore adapté ton script
pour voir), mais du coup ça marche pas pour les domain.co.uk et tous les autres domain.sstld.tld (j'ai par exemple du .com.gh, m'enfin, si ça fait
tous les autres, c'est déjà pas mal).

for i in `grep $1 /tmp/pasbeaux.0` ; do


--------------------^^^^^^^^^^^^^^^ (je suppose la liste des hosts).

Voilà tout y est Anglais approximatif compris. J'ai fait ça hier en 1/4 d'heure donc
ça n'est guère sophistiqué mais ça a marché.



C'est le principal ;-) (tu peux juste remplacer les cat par des <, mais c'est histoire de pinailler ;-) )

Merci, ça va servir.

--
Daniel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Daniel Caillibaud
François Boisson a écrit :
Moi c'est assez primaire:

Script général



J'ai adapté à mes logs, du genre
Dec 1 03:56:47 h5 sshd[1154]: Failed password for root from 93.62.0.122 port 10058 ssh2
Dec 2 14:22:01 h5 sshd[14234]: Failed password for invalid user nicoara from 80.87.64.115 port 60029 ssh2

grep 'Failed password for ' /var/log/auth.log.0 >/tmp/SSH_douteux
grep 'Failed password for ' /var/log/auth.log>>/tmp/SSH_douteux
# on récupère la liste d'ip
awk '/Failed password for invalid user/ {print $13} /Failed password for root/ {print $11}' < /tmp/SSH_douteux |sort -u > /tmp/SSH_ips
# et on veut les fqdn
while read ip; do echo "$ip $(host $ip)"; done </tmp/SSH_ips >/tmp/SSH_ips_fqdn
# ceux qui en ont un
awk '/domain name pointer/ {print $1" "$6}' < /tmp/SSH_ips_fqdn > /tmp/SSH_ips_fqdn_trouves
# Ensuite, on veut le FAI
awk -F . '{
ip=$1"."$2"."$3"."$4;
if ($NF=="arpa") {next}
if ($NF=="") {itld=NF-1}
else {itld=NF}
if ($(itld - 1)=="com" || $(itld - 1) == "net" || $(itld - 1)"."$itld=="co.uk") {print ip" "$(itld-2)"."$(itld-1)"."$itld}
else {print ip" "$(itld-1)"."$(itld)}
}' < /tmp/SSH_ips_fqdn_trouves |sort -k 2 > /tmp/SSH_ip_FAI

Il reste un bug car j'ai
$ head /tmp/SSH_ip_FAI
117.18.224.147 ns2 mycitycell.com
121.243.0.153 121 vsnl.net.in
123.220.252.2 p58002-ipbffx02marunouchi ne.jp
125.64.96.186 186 163data.com.cn
140.128.127.224 pc224 edu.tw
143.239.159.63 student ucc.ie
63.159.239.143 in-addr.arpa
150.185.222.163 vibora luz.ve
163.222.185.150 in-addr.arpa
152.104.125.13 static-ip-13-125-104-152 dyxnet.com

Plus trop le temps ce soir... on verra p't' demain (plutôt semaine prochaine).

--
Daniel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
François Boisson
Le Tue, 02 Dec 2008 18:43:52 +0100
Daniel Caillibaud a écrit:

François Boisson a écrit :
> sed -e '1,$s/^.*[ |.]([^.]*.[^.]*)$/1/g' /tmp/SSH_douteux | sort -u
> | grep "[a-z]" > /tmp/domainesFAI

je comprends que tu prends les deux dernières sous-chaînes du fqdn (j'ai pas
le même format de log, et seulement les ip, pas encore adapté ton script
pour voir), mais du coup ça marche pas pour les domain.co.uk et tous les
autres domain.sstld.tld (j'ai par exemple du .com.gh, m'enfin, si ça fait
tous les autres, c'est déjà pas mal).



Tu peux faire un
whois > /tmp/IP
if grep -q abuse /tmp/IP ; then
ABUSE=`grep abuse /tmp/IP | grep abuse@ | awk '{print $3}' | head -n 1`
else
ABUSE=`grep @ /tmp/IP | head -n 1 | awk '{print $3}' `
fi

Mais les formats des whois varient...

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry Chatelet
On Saturday 29 November 2008 05:22:55 Charles Plessy wrote:

Pour partager:
Tong dans la mail list en anglais a le même problème. Quelqu' un qui co nnait
le problème et la langue anglaise pourrait-il l' aider. Nom do post: How can
I stop an active network connection, de Tong, en date du 2-12 à 23h et de s
bricolles.
Merci

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Daniel Caillibaud
Thierry Chatelet a écrit :
Tong dans la mail list en anglais a le même problème. Quelqu' un qui connait
le problème et la langue anglaise pourrait-il l' aider. Nom do post: How can
I stop an active network connection, de Tong, en date du 2-12 à 23h et des
bricolles.



Étonnant que personne n'ai répondu, ça doit être plus compliqué.

Les connexions se visualisent avec netstat (avec les args -taupe en gal), un sed|grep&cut|awk sur la sortie donne l'ip ou le processus, et ensuite
reste à àjouter une règle iptable sur l'ip ou un kill sur le process (suivant ce que l'on veut et de quel process il s'agit).

--
Daniel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2 3