Banner 1

Mostrando entradas con la etiqueta honey. Mostrar todas las entradas
Mostrando entradas con la etiqueta honey. Mostrar todas las entradas

Honeypot, Firewall, IPS HomeMade con Powershell.

0 comentarios
En el artículo de hoy vamos a trabajar con algunos conceptos básicos de Powershell.

El Script que os presento se basa en el registro del firewall de un equipo Windows 7 o superior.
Como vimos en esta entrada, es necesario configurar el detalle del log del servicio de firewall.

La idea del script es trabajar un poco con Powershell, y ya de paso, proporcionar un servicio a nuestra infraestructura.
Pido perdón de antemano a los expertos en Powershell o programación en general ya que soy de sistemas, y la programación para mi es un mundo desconocido.

El script nos pregunta por pantalla por un número de puerto. Con el número introducido levantamos un socket a la escucha para ese puerto. Esto actuaria como Honeypot, ya que es un puerto para un servicio que realmente no estamos ofreciendo. La idea es que en un ambiente de red local, dejar ese puerto a la escucha, por ejemplo un servidor SSH en el puerto 22, siempre y claro que no lo usemos legítimamente. Mediante el log del firewall de Windows voy a detectar intentos de conexión, que voy a permitir. Cada cierto tiempo incluiré una regla en el firewall denegando todas las conexiones entrantes para la ip que se ha intentado conectar al puerto emulado. Si publicamos ese honeypot hacia internet tendríamos protección ( ip baneada) solo para ese servidor. En el caso de tener varios servidores Windows ofreciendo servicios públicos, deberíamos añadir la capacidad de replicar esta regla al resto de servidores. También se me ocurre que mediante orquestación y automatización mediante SYSTEM CENTER 2012 Orchestrator podríamos lanzar un comando ssh hacia nuestro Firewall perimetral no-windows ( o cualquier sistema de comunicación que nos ofrezca el firewall) para banear la ip en todos los servicios expuestos, sean Windows o cualquier otro.

Este es el script primera versión, que aunque operativo, tiene mucho que mejorar.


[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "Baneador IP.kinomakino"
$objForm.Size = New-Object System.Drawing.Size(300,200) 
$objForm.StartPosition = "CenterScreen"

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Banear") 
    {$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Cancelar") 
    {$objForm.Close()}})

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,120)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)

$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancela"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)

$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20) 
$objLabel.Size = New-Object System.Drawing.Size(280,20) 
$objLabel.Text = "Introduce el puerto que quieres monitorizar:"
$objForm.Controls.Add($objLabel) 

$objTextBox = New-Object System.Windows.Forms.TextBox 
$objTextBox.Location = New-Object System.Drawing.Size(10,40) 
$objTextBox.Size = New-Object System.Drawing.Size(260,20) 
$objForm.Controls.Add($objTextBox) 

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

$x = $objTextBox.Text
#Toda la parte de arriba es para mostrar el textbox y almacenarlo en $x

$Honeypot = [System.Net.Sockets.TcpListener][int]$x;
$Honeypot.Start();
#Abre el socket con el puerto indicado en el Textbox
while($true)
{
sleep -s 300
#comprueba cada 5minutos si ha habido intento de conexión mediante el log del Firewall.

$logPath="C:\Windows\System32\LogFiles\Firewall\pfirewall.log"
$blackListPath= "C:\Windows\System32\LogFiles\Firewall\blacklist.txt"
$blacklist = Get-Content $blackListPath

$header=(Select-String -Path $logPath -Pattern "^#Fields").Line.Split(" ") | select -Skip 1
$ips=Get-Content $logPath | select -Skip 4 | 
ConvertFrom-Csv -Delimiter " " -Header $header |
where {$_."dst-port" -eq $x -and $_.path -eq "RECEIVE" -and $blacklist -notcontains $_."src-ip"} |
select -ExpandProperty "src-ip" 
$ips
$ips | Add-Content $blacklistPath
foreach ($ip in $ips){
  New-NetFirewallRule -DisplayName "Ip Bloqueada $ip" -Direction Inbound -Action Block -RemoteAddress $ip
   #si encuentra algún registro contra el puerto indicado, envia un correo.
                 $smtpserver = “smtp.gmail.com”
                 $msg = new-object Net.Mail.MailMessage
                 $smtp = new-object Net.Mail.SmtpClient($smtpServer )
                 $smtp.EnableSsl = $True
                 $smtp.Credentials = New-Object System.Net.NetworkCredential(“nick gmail sin @gmail, “clavegmail”); 
                 $msg.From = “correo origen
                 $msg.To.Add(”correo destino”)
                 $msg.Subject = “Ip baneada”
                 $msg.Body = “La ip $ip ha sido baneada por intento de conexión al honeypot”
                 $smtp.Send($msg)
                      }
                  
                        }
            
Para poder utilizarlo debes activar el detalle en el firewall de Windows así. En el mismo directorio debes crear un fichero vacio llamado blacklist.txt. Cambia los datos del correo y listo.

Una vez ejecutado comprobamos que el puerto introducido está a la escucha: netstat -ano


Ahora desde un equipo realizo un intento de conexión al puerto indicado, en este caso un scan completo.
Si todo ha ido bien, y esperando 5 minutos al menos, volvemos a realizar el scan y vemos que estamos baneados por el firewall.


En las reglas del Firewall de Windows compruebo que se ha creado la regla.


En unos segundos el sonido del correo en el móvil me indica que esto también ha ido bien.

En el fichero Blacklist almacenaremos las IP baneadas, que podemos usar como fuente de información en el supuesto de tener un firewall perimetral, por ejemplo pasándolo por ssh en un array de IP Baneadas.

Parsear el log para detectar el scan de puertos hubiera sido factible, pero si solo tengo publicado un servicio ( puerto) de este server no tendría ninguna manera, por eso lo del honeypot.

El lenguaje es bastante sencillo, y es muy fácil empezar a programar en Powershell. Este script lo he hecho mirando por la world wide web y con la ayuda de Dirk74 (technet forum).

Espero poder trabajar mas en esta idea, y añadir alguna mejora y capacidades nuevas, en próximas entregas de Inseguros lo intentaré.

Como siempre, espero que os guste, y gracias por leerme !!!

Fuente: http://kinomakino.blogspot.com/2013/12/honeypot-firewall-idp-homemade-con.html

Ghost: un honeypot para malware que se propaga mediante dispositivos USB

0 comentarios

Ghost es un proyecto de código abierto que implementa un honeypot para el malware que se propaga mediante dispositivos USB. Se trata de un proyecto desarrollado por Sebastian Poeplau para una tesis de licenciatura en la Universidad de Bonn en Alemania y ahora su desarrollo continua en Honeynet Project.

Básicamente el honeypot simula ser un dispositivo de almacenamiento USB esperando que el equipo sea infectado por el malware que utiliza este vector de propagación.

Por el momento, Ghost sólo es compatible con Windows XP de 32 bits. Se encuentra en una etapa temprana de desarrollo y se puede descargar una distribución binaria o compilar el código. Si optas por esta última opción necesitarás el kit de controladores de Windows y encontrarás instrucciones detalladas para hacerlo en su wiki.


Fuente:http://www.hackplayers.com/2012/06/ghost-un-honeypot-para-malware-que-se.html

Vídeo Tutorial Honeypot

2 comentarios

Este es otro video tutorial hecho por dino, donde nos muestra como instalar, configurar y poner en marcha un Honeypot.

Vídeo Tutorial Honeypot

Honeypot (en español tarro de miel) es una herramienta de seguridad utilizada para recoger información sobre los atacantes y sus técnicas. Los Honeypots pueden distraer a los atacantes de las máquinas más importantes del sistema, y advertir rápidamente al administrador de un ataque, además de permitir un examen en profundidad del atacante, durante y después del ataque al honeypot.

Honeypot

Descargar Vídeo Tutorial de Honeypot

Mas Información sobre Honeypot:
Pagina Oficial del Proyecto
Honeypot en México
Referencia en la Wikipedia

Fuente:dragonnews

Sebek. Honeynets de tercera generación

0 comentarios

La investigación sobre las nuevas tendencias del malware y sobre los nuevos vectores de ataque diseñados por los usuarios maliciosos (normalmente, gente que gana mucho dinero a costa de los problemas de seguridad) es un campo que requiere mucha interacción con el entorno real de operaciones.

Sin ese estrecho contacto no sería posible ver qué hacen esos usuarios maliciosos, cómo y cuando lo hacen, y con qué propósito. Para investigar estas nuevas tendencias, es totalmente imprescindible acudir a la más profunda mimetización con el medio: las mejores evidencias y datos se recopilan cuando los recibimos sin levantar sospecha, empleando las herramientas adecuadas.

En este ámbito, perteneciente a la ciencia forense, surgen los Honeynets. La Wikipedia los define bastante bien:

Los Honeynet son un tipo especial de Honeypots de alta interacción que actuan sobre una red entera, diseñada para ser atacada y recobrar así mucha más información sobre posibles atacantes. Se usan equipos reales con sistemas operativos reales y corriendo aplicaciones reales.

Este tipo de honeypots se usan principalmente para la investigación de nuevas técnicas de ataque y para comprobar el modus-operandi de los intrusos.

Un Honeynet es un Honeypot específico para lograr captación de datos muy real, puesto que la interacción con el medio es total. Los Honeypots o tarros de miel son trampas colocadas a conciencia que permiten, simulando un estado de vulnerabilidad, la recolección de todo tipo de muestras, bien sean malware, bien sea spam. He hablado en este weblog anteriormente de Honeypots, así que no me reiteraré.

Los Honeynets de tercera generación (GenIII) permiten la recolección de información hasta el nivel más profundo. Sin duda, el Honeynet GenIII más popular, por su impresionante rendimiento y resultados, es Sebek, un desarrollo de Honeynet Project de altísima calidad.

Totalmente multiplataforma, con clientes para Solaris, W32, Linux, *BSD y con una capacidad muy elevada, Sebek es espectacular capturando tráfico malicioso. En este documento hay una descripción muy elaborada de Sebek a modo de white paper. Para los que conozcáis MWCollect, es algo parecido, pero a un nivel mucho más profundo, con mucha más interacción.

sebek

En Infocus han publicado un artículo interesante al hilo de este proyecto, titulado Sebek 3: tracking the attackers, part one. Una lectura obligatoria, puesto que además de una correcta introducción, incluye las nuevas funcionalidades de Sebek así como retos futuros de este software.

Resumen de enlaces

Proyecto Sebek

White paper sobre Sebek

fuente: www.sahw.com/

Powered by Bad Robot
Helped by Blackubay