Kippo simule un serveur SSH (SSHd) pour piéger les attaquants. Les traces laissées par les intrus peuvent être consultées en temps réel et permettent de surveiller leurs activités, d'observer leurs méthodes, leurs outils,... et de déduire la nature et parfois les objectifs de l'attaque.
Kippo simule un SSHd avec :
- Un faux système de fichiers avec possibilité de créer/supprimer
- Un faux environnement avec de fausses informations /etc/passwd
- De fausses commandes primaires (ls, cd, cd)
- Les téléchargements de fichiers (wget)
Installer Kippo
Installer les divers paquets Python
Code : Tout sélectionner
aptitude install python-twisted python-pycryptopp
Code : Tout sélectionner
adduser kippo
Créer un dossier /usr/share/kippo
Code : Tout sélectionner
mkdir /usr/share/kippo
cd !$
Ou plus simplement via SVN :
Code : Tout sélectionner
svn checkout http://kippo.googlecode.com/svn/trunk/ ./kippo
Donner tous les droits à l'utilisateur kippo
Code : Tout sélectionner
chown -R kippo.kippo /usr/share/kippo
Déplacer le fichier de configuration :
Code : Tout sélectionner
mv kippo.cfg.dist kippo.cfg
Par défaut, Kippo écoute sur le port 22/TCP. Il faut être super utilisateur (root) pour pouvoir écouter sur les ports bas c'est à dire ceux inférieurs à 1024. Il existe deux manières de faire écouter kippo sur le port 22/TCP soit avec iptables soit avec authbin.
Si vous avez déjà un serveur SSH sur le port 22/TCP,
Éditer le fichier /etc/ssh/sshd_config
Changer le port pour éviter le conflit
Relancer le serveur SSH
Code : Tout sélectionner
service sshd restart
iptables
Pour effectuer une redirection de port 22/TCP vers 2222/TCP
Code : Tout sélectionner
# accept traffic to the normal ssh port
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
# accept traffic on the port kippo is listening on
iptables -A INPUT -i eth0 -p tcp --dport 2222 -j ACCEPT
# direct traffic inbound on port 22 to port 2222
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 22 -j REDIRECT --to-port 2222
nb: vous pouvez ajouter ce script à la fin de /etc/rc.local
authbin
Installer authbin
Code : Tout sélectionner
aptitude install authbind
Puis effectuer ces commandes
Code : Tout sélectionner
touch /etc/authbind/byport/22
chown kippo /etc/authbind/byport/22
chmod 777 /etc/authbind/byport/22
Code : Tout sélectionner
# Port to listen for incoming SSH connections.
#
# (default: 2222)
ssh_port = 2222
Code : Tout sélectionner
# Port to listen for incoming SSH connections.
#
# (default: 2222)
ssh_port = 22
Code : Tout sélectionner
twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid
Code : Tout sélectionner
authbind --deep twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid
Démarrer kippo
Lancer le script "start.sh"
Se connecter au serveur SSH de kippo (par défaut root/123456).
Les journaux sont dans : /usr/share/kippo/log/kippo.log
Les éléments téléchargés dans : /usr/share/kippo/dl/
Les utilisateurs SSH sont dans : /usr/share/kippo/data/userdb.txt
Par défaut, vous avez root avec le mot de passe 123456
Ci-dessous un fichier "userdb.txt" un peu plus complet :
Code : Tout sélectionner
adm:0:adm123
adm:0:adm1234
adm:0:admin
admin:0:123
admin:0:1234
admin:0:12345
admin:0:123456
admin:0:1234qwer
admin:0:1234qwerty
admin:0:1q2w3e
admin:0:abc123
admin:0:abcd1234
admin:0:admin
admin:0:admin123
admin:0:admin1234
admin:0:qwer1234
administration:1000:admin
administrator:0:adm
administrator:0:administrator
administrator:0:administrator123
administrator:0:sysadm
administrator:0:sysadmin
arianne:2000:arianne
astrid:2000:astrid
bacula:1000:bacula
barbara:2000:barbara
beci:1000:beci
birgit:1000:birgit
boris:1000:boris
brigitte:1000:brigitte
britta:1000:britta
build:1000:buid123
build:1000:build
canna:1000:canna
canna:1000:canna123
carla:1000:carla
carola:1000:carola
carolin:1000:carolin
catharina:1000:catharina
celine:1000:celine
charlotte:1000:charlotte
christa:1000:christa
christel:1000:christel
christiane:1000:christiane
christine:1000:christine
connie:1000:connie
corinna:1000:corinna
cornelia:1000:cornelia
dagmar:1000:dagmar
dani:1000:dani
daniela:1000:daniela
diana:1000:diana
dorika:1000:dorika
doris:1000:doris
dorjan:1000:dorjan
dorothee:1000:dorothee
dorottya:1000:dorottya
duci:1000:duci
edith:1000:edith
edvard:1000:edvard
effi:1000:effi
eike:1000:eike
elek:1000:elek
elemer:1000:elemer
elena:1000:elena
elfi:1000:elfi
eli:1000:eli
eliane:1000:eliane
elisabeth:1000:elisabeth
elke:1000:elke
ellen:1000:ellen
elli:1000:elli
elsa:1000:elsa
emilie:1000:emilie
emma:1000:emma
endre:1000:endre
erika:1000:erika
erneszt:1000:erneszt
ernesztina:1000:ernesztina
errsike:1000:errsike
erssike:1000:erssike
erszok:1000:erszok
ervin:1000:ervin
erzebet:1000:erzebet
erzsebet:1000:erzsebet
erzsi:1000:erzsi
erzsok:1000:erzsok
eszter:1000:eszter
eszti:1000:eszti
etel:1000:etel
etilka:1000:etilka
eva:1000:eva
evacska:1000:evacska
evike:1000:evike
ferang:1000:ferang
ferenc:1000:ferenc
fereng:1000:fereng
ferike:1000:ferike
ferke:1000:ferke
ferko:1000:ferko
filip:1000:filip
firenze:1000:firenze
flora:1000:flora
florka:1000:florka
franci:1000:franci
franciska:1000:franciska
francziska:1000:francziska
franziska:1000:franziska
frauke:1000:frauke
fredek:1000:fredek
frici:1000:frici
fridrik:1000:fridrik
frigyes:1000:frigyes
fulop:1000:fulop
gabi:1000:123
gabi:1000:1234
gabi:1000:gabi
gabor:1000:123
gabor:1000:1234
gabor:1000:gabor
gabriele:1000:gabriele
gazsi:1000:gazsi
geller:1000:geller
gellert:1000:gellert
gerda:1000:gerda
gergeli:1000:gergeli
gergely:1000:gergely
gerlinda:1000:gerlinda
gertrud:1000:gertrud
gisela:1000:gisela
gottfrid:1000:gottfrid
gretchen:1000:gretchen
grethe:1000:grethe
guest:1000:123
guest:1000:1234
guest:1000:12345
guest:1000:123456
guest:1000:1q2w3e
guest:1000:abc123
guest:1000:abcd1234
guest:1000:asdfgh
guest:1000:guest
guest:1000:guest1234
guest:1000:guestaccount
guest:1000:qwerty
gwendolin:1000:gwendolin
gyala:1000:gyala
gyoergy:1000:gyoergy
gyorgy:1000:gyorgy
gyorgyi:1000:gyorgyi
gyula:1000:gyula
gyuri:1000:gyuri
gyurka:1000:gyurka
gyuszi:1000:gyuszi
hadoop:1000:hadoop
hadoop:2000:123qwe
hadoop:2000:hadoop
hajna:1000:hajna
hajnal:1000:hajnal
hanna:1000:hanna
hannelore:1000:hannelore
hedwig:1000:hedwig
heidi:1000:heidi
heidrun:1000:heidrun
heike:1000:heike
helene:1000:helene
helga:1000:helga
hilde:1000:hilde
hlse:1000:hlse
ibolya:1000:ibolya
ignac:1000:ignac
ildiko:1000:ildiko
ilka:1000:ilka
illes:1000:illes
ilona:1000:ilona
ilonka:1000:ilonka
iluska:1000:iluska
imre:1000:imre
imri:1000:imri
ina:1000:ina
ines:1000:ines
inge:1000:inge
ingeborg:1000:ingeborg
ingrid:1000:ingrid
iosif:1000:iosif
iosif:1000:iosif123
irene:1000:irene
iris:1000:iris
isa:1000:isa
isabella:1000:isabella
jasmine:1000:jasmine
jenifer:1000:jenifer
jessica:1000:jessica
jill:1000:jill
johanna:1000:johanna
john:1000:john
josephine:1000:josephine
judith:1000:judith
judith:2000:judith
julia:1000:julia
julianne:1000:julianne
julie:1000:julie
jutta:1000:jutta
kaethe:1000:kaethe
karin:2000:karin
kozos:1000:kozos
levelek:1000:levelek
natalia:1000:natalia
natalia:1000:natalia123
nobody:1000:nobody
oracle:2000:123456
oracle:2000:oracle
perger:1000:perger
postgres:2000:postgres
postgres:2000:postgres123
prime:1000:prime
pulse:1000:pulse
root:0:1234
root:0:123456
root:0:123456@ABC
root:0:12345@ABC
root:0:1234765a
root:0:12348765a
root:0:1234@ABc
root:0:1234@ABC
root:0:1234QWERasdf
root:0:123654a
root:0:123abc$%^
root:0:123@ABc
root:0:123@ABC
root:0:123qwe
root:0:123QWEasd
root:0:123qweasdzxcvbn
root:0:123QWERasdf
root:0:123QWERASDF
root:0:a123654
root:0:admin
root:0:admin@123
root:0:ariane
root:0:hadoop
root:0:kikoo
root:0:wubao
root:0:oqcnwl
root:0:1234QWERasdf
root:0:123QWEasd
root:0:123QWERasdf
root:0:123QWERASDF
root:0:Password01!
root:0:P@ssw0rd!@
root:0:P@ssw0rd!@#
root:0:P@ssw0rd!@#$
root:0:P@ssw0rd1
root:0:P@ssw0rd!11111
root:0:P@ssw0rd12
root:0:P@ssw0rd123
root:0:QWE123asd
root:0:QWER1234asd
root:0:QWER1234ASD
rpcuser:1000:rpcuser
sarah:2000:sarah
software:1000:software
students:1000:students
sulixra:1000:sulixra
syslog:1000:syslog
teachers:1000:teachers
test:2000:123
test:2000:test
vadim:1000:vadim
zenoss:1000:zenoss
zope:2000:zope
Deux exemples de logs avec connexions SSH réussies sur kippo.
L'attaquant a tenté d'installer des backdoors (porte dérobées) sur Linux.
Attaques observées et rapportées dans l'actualité : Operation Distributed Dragon
La trace conduira à un espace chinois qui contient des trojans Linux pour Doser.
Détections :
SHA256: 7877e2c3463478c9d5349ec203d80df390c27eefbd0499e7d4211ac5facb2331
Nom du fichier : 2480032
Ratio de détection : 15 / 55
Date d'analyse : 2015-07-16 06:16:38 UTC (il y a 12 minutes)
Antivirus Résultat Mise à jour
AVG Linux/Generic_c.PF 20150715
AhnLab-V3 Linux/Flooder.646674 20150715
Avast ELF:Sotdas-A [Trj] 20150715
CAT-QuickHeal Linux.Ropys.P6b0 20150715
ClamAV Linux.Trojan.IptabLex 20150715
DrWeb Linux.Myk.5 20150715
ESET-NOD32 Linux/Agent.BM 20150715
Fortinet PossibleThreat.P0 20150715
GData Linux.Trojan.Agent.ERATTG 20150715
Ikarus Trojan.DDoS 20150715
Jiangmin TrojanDDoS.Linux.ax 20150714
Kaspersky HEUR:Trojan-DDoS.Linux.Sotdas.a 20150715
NANO-Antivirus Trojan.Unix.Sotdas.dsqiao 20150715
Qihoo-360 Trojan.Generic 20150716
Sophos Linux/Flood-JC 20150715
SHA256: 9dce643aec7352b303be3adbca9a986855d6d5f45e7bcd391d88195dd1330c5f
Nom du fichier : S24100
Ratio de détection : 20 / 55
Date d'analyse : 2015-07-16 06:13:21 UTC (il y a 16 minutes)
Antivirus Résultat Mise à jour
AVG Linux/BackDoor_c.CL 20150715
AhnLab-V3 Linux/Backdoor.1223123.B 20150715
Antiy-AVL Trojan/Generic.ASELF.728 20150715
Avast ELF:Elknot-AS [Trj] 20150715
CAT-QuickHeal Linux.DnsAmp.a586 20150715
ClamAV Linux.Trojan.Agent 20150715
DrWeb Linux.BackDoor.Gates.9 20150715
ESET-NOD32 Linux/Setag.B.Gen 20150715
Fortinet ELF/Ganiw.A!tr 20150715
GData Linux.Trojan.Siggen.D 20150715
Ikarus Trojan.Linux.Agent 20150715
Jiangmin Backdoor/Linux.km 20150714
Kaspersky HEUR:Backdoor.Linux.Ganiw.a 20150715
Microsoft Backdoor:Linux/Setag.C 20150715
NANO-Antivirus Trojan.Unix.Ganiw.ditcrf 20150715
Qihoo-360 Trojan.Generic 20150716
Rising NORMAL:Backdoor.Linux.Flood.a!1616113 20150713
Sophos Linux/DDoS-BD 20150715
Symantec Linux.Chikdos.B!gen2 20150715
Zillya Trojan.Agent.Linux.12 20150715