Вы находитесь на странице: 1из 4

Pagina 1 de 4

Artculos - MKE
Soluciones a medidas realizadas por expertos

03/30/09 - Bloqueando el Conficker Virus

Resmen:
La siguiente script fue creada con la finalidad de ayudar a identificar en la red privada (LAN) los host que estn infectados con el virus Conficker. Obvio que hay muchas formas de prevenir la infeccin en redes administradas y centralizadas pero el script fue creado para identificar las computadoras no-administradas en un entorno de trnsito. Los script estn en formato que pueda ser pegado directamente en la ventaja de Winbox ya que se ha encontrado un problema en el formato cuando se copia y pega desde el wiki. El scheduler puede ser copiado y pegado en la ventana terminal. Notar que debido a la limitacin de 4096 caracteres en una variable string el sistema nicamente bloquear la variante A y B en este momento. La variante C genera una lista de 50.000 dominios cada da de los cuales usa solo 500. Sin embargo, aunque se pueda identificar esos 500, la limitacin de 14 caracteres por nombre de dominio, har exceder los 4096 caracteres limites. Se esta trabajando en este momento en esto. El nalisis de la variante Conficker.C esta disponible en mtc.sri.com.

Usando la lista de domonios:


Se ha separado la lista de dominios (originalmente desde Technet en una lista que Mikrotik no puede importar por la cantidad superior de 4096 caracteres. Si quiere bajar la copa de la lista completa, puede ser accedida directamente desde epicwinrar.com o las copias diarias desde este enlace.

El Script:
El script realiza lo siguiente:

Chequea la fecha de hoy

Copyright 2008-2009 - Por Maximiliano Dobladez - http://maxid.com.ar - http://mikrotikexpert.com.

Pagina 2 de 4

Artculos - MKE
Soluciones a medidas realizadas por expertos

Baja la lista de dominios ($month-$day-$year.txt) Confirma cuando el archivo bajado contiene datos Resuelve y agrega la lista de hoy en el address list ?daily-conficker' Borra el archivo de texto bajado.

La lista puede ser cambiada fcilmente para apuntar una copia de la lista de dominios en uno o mas servidores locales. script name: daily-conficker-list

:local date [/system clock get date]Array:local month [:pick $date 0 3]Array:local day [:pick $date 4 6]Array:local year [:pick $date 7 11]ArrayArray#set month to numerical valueArray:if ([$month] = "jan") do={ :set month "01" }Array:if ([$month] = "feb") do={ :set month "02" }Array:if ([$month] = "mar") do={ :set month "03" }Array:if ([$month] = "apr") do={ :set month "04" }Array:if ([$month] = "may") do={ :set month "05" }Array:if ([$month] = "jun") do={ :set month "06" }Array:if ([$month] = "jul") do={ :set month "07" }Array:if ([$month] = "aug") do={ :set month "08" }Array:if ([$month] = "sep") do={ :set month "09" }Array:if ([$month] = "oct") do={ :set month "10" }Array:if ([$month] = "nov") do={ :set month "11" }Array:if ([$month] = "dec") do={ :set month "12" }ArrayArray#download current days domain listArray/tool fetch address=www.epicwinrar.com host=www.epicwinrar.com mode=http src-path="conficker/$month-$day-$year.tx t"Array:log info "Download Complete"Array:delay 2ArrayArray#check

Copyright 2008-2009 - Por Maximiliano Dobladez - http://maxid.com.ar - http://mikrotikexpert.com.

Pagina 3 de 4

Artculos - MKE
Soluciones a medidas realizadas por expertos

to ensure todays file exists before deleting yesterdays listArray:log info "Begining Address List Modification"Array:if ( [/file get [/file find name="$month-$day-$year.txt"] size] > 0 ) do={ArrayArray /ip firewall address-list remove [/ip firewall address-list find list=daily-conficker]ArrayArray :local content [/file get [/file find name="$month-$day-$year.txt"] contents] ;Array :local contentLen [ :len $content ] ;ArrayArray :local lineEnd 0;Array :local line "";Array :local lastEnd 0;ArrayArray :do {Array :set lineEnd [:find $content "\n" $lastEnd ] ;Array :set line [:pick $content $lastEnd $lineEnd] ;Array :set lastEnd ( $lineEnd + 1 ) ;ArrayArray#resolve each new line and add to the address list daily-conficker. updated to list domain as commentArray :if ( [:pick $line 0 1] != "\n" ) do={Array :local entry [:pick $line 0 ($lineEnd ) ]Array :if ( [:len $entry ] > 0 ) do={Array :local listip [:resolve "$entry"]Array :if ($listip != "failure" ) do={Array /ip firewall address-list add list=daily-conficker address=$listip comment=$entryArray :log info "$listip"Array }Array }Array }Array } while ($lineEnd < $contentLen)Array}Array:log info "Address List Modification Complete"Array#cleaning upArray/file remove "$month-$day-$year.txt"

Copyright 2008-2009 - Por Maximiliano Dobladez - http://maxid.com.ar - http://mikrotikexpert.com.

Pagina 4 de 4

Artculos - MKE
Soluciones a medidas realizadas por expertos

El scheduler (puede ser pegado en el terminal) /system scheduler add comment="" disabled=no interval=1d name=Conficker-daily on-event="/system script run daily-conficker-list" start-date=jan/01/1970 start-time=00:00:01

El resultado:
Esto le da la lista de los ips que el conficket intentar conectar cada da. El uso se lo dar cada uno, pero se puede crear una simple regla que busque las peticiones de esos server y loguea ese IP. /ip firewall filter add action=add-src-to-address-list address-list=conficker-infected address-list-timeout=1d chain=forward comment="label conficker-infected" disabled=no dst-address-list=\ daily-conficker dst-port=80 protocol=tcp Traduccin: Maximiliano Dobladez Fuente: Mikrotik ArrayBajo Licencia CC 2.5 Attribution-Noncommercial-No Derivative

Copyright 2008-2009 - Por Maximiliano Dobladez - http://maxid.com.ar - http://mikrotikexpert.com.

Вам также может понравиться