Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - grep

#1

Este dispositivo de US$5 puede hackear una computadora bloqueada en un minuto

Citar"It's entirely automated. You plug it in, you leave it there for a minute, then you pull it out and you walk away," Kamkar told Motherboard in a phone call. "You don't even need to know how to do anything."

PoisonTap es el nombre de un dispositivo y de un programa creado por Samy Kamkar (@SamyKamkar // No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) que puede explotar, por USB, computadoras bloqueadas o protegidas con contraseña, dejar un backdoor basado en WebSockets, obtener cookies, exponer el router interno al atacante y realizar MiTM de todo el tráfico a Internet.

La herramienta emula ser un dispositivo Ethernet (como Ethernet over USB) y brinda un Web Server con Node.js. Ha sido desarrollada para un Raspberry Pi Zero, el cual cuesta US$5, sin ningún componente adicional más que un cable micro-USB y una microSD, pero puede funcionar con otros dispositivos que emulen gadgets USB como USB Armony y LAN Turtle.

Como lo señala en la página y en su repositorio de github, PoisonTrap evade los siguientes mecanismos de seguridad:

Password Protected Lock Screens
Routing Table priority and network interface Service Order
Same-Origin Policy
X-Frame-Options
HttpOnly Cookies
SameSite cookie attribute
Two-Factor/Multi-Factor Authentication (2FA/MFA)
DNS Pinning
Cross-Origin Resource Sharing (CORS)
HTTPS cookie protection when Secure cookie flag & HSTS not enabled

Live demonstration:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código fuente, detalles y descargas en los siguientes enlaces:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Fuente: motherboard.vice

Más sobre Samy Kamkar:
@SamyKamkar
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#2
Cómo dominar el desarrollo


Es probable que los siguientes enunciados te parezcan obvios pero créeme, aún cuando ya sabemos programar en otros lenguajes, no nos damos cuenta de lo que tenemos que hacer.


Comprende la estructura de archivos de los proyectos

En diferentes ocasiones puede darse el caso de que no sabemos cómo empezar a analizar o a programar un proyecto de software desarrollado en el lenguaje que estamos aprendiendo o ya conocemos. Al ver muchos archivos, posiblemente de diferentes formatos, y directorios inmediatamente nos viene a la cabeza la idea de que dicho proyecto es muy complejo o de que no estamos lo suficientemente capacitados como para adentrarnos en el mismo.

Hoy en día es normal que existan proyectos con muchos archivos y directorios. Incluso los IDEs de desarrollo crean toda una estructura de archivos para tu primer 'hola mundo'. Muchos archivos de configuración, scripts, templates, dependencias, referencias, patrones, frameworks, uso de build systems, continuous integration, versionado. Esto es porque las comunidades de desarrollo siempre buscan una mayor facilidad y una mejor comodidad. Realmente lleva el costo de una curva de aprendizaje muy larga para el principiante, pero créeme, una vez que entiendes estos conceptos el mundo del desarrollo se vuelve sencillo.


La estructura de los proyectos complejos como aquellos basados en las autotools pueden ser muy difíciles de seguir. Pero una vez que entiendes los motivos detrás de ellos resulta sencillo encontrar lo que buscas.

Si eres un principiante entonces a empieza curiosear tus propios proyectos. Es muy probable que tengas un IDE o un framework de herramientas que te ayude en el desarrollo como Netbeans para Java, Visual Studio para .NET, el framework Ruby On Rails para Ruby, etc. Cuando creas un proyecto desde cero ya tienes toda una estructura de archivos pero vamos que es lo más básico que puedes tener. Analiza cada uno de estos archivos, busca y encuentra su significado y utilidad, averigua si son necesarios y porque están allí.


La organización utilizada para programar aplicaciones nativas de Android es útil tanto para el desarrollador como para el build system.

Quizás sólo creas scripts o archivos compilables. Intenta ir más lejos, aprende como modularizar tu código en diferentes archivos, librerías o paquetes. Aprende a utilizar un build system.

Si eres conocedor, entonces debes empezar por el entry point. Observa el ante-último consejo.


Conviértete en un compilador humano

Esto suena vago, pero a la vez muy abarcativo. No te pido que sepas como crear instrucciones en código máquina (física o virtual) a partir de un código fuente. Tampoco sugiero que conozcas a la perfección cada estructura o librería que te brinda tu lenguaje.

Lee código. Si no entiendes una estructura entonces no terminas de entender el lenguaje. Si no entiendes los conceptos, vocablo y palabras clave que suele utilizar la comunidad, no terminas de entender el lenguaje.

Si eres un principiante entonces utiliza un debugger para ver paso a paso lo que hace tu compilador o intérprete y así comprender mejor. Esto puede parecer complejo en un principio, pero créeme, el debugger puede enseñarte muchas cosas. Pero no abuses de esta herramienta (puedes volverte un adicto), sólo debes utilizarlo una vez que te hayas golpeado mil veces la cabeza contra la pantalla.


El debugger de Visual Studio es una herramienta interactiva que, además, puede realizar acciones bajo demanda (lazy loading).

Lee los manuales y referencias oficiales. Documentaciones como manpages, info files, MSDN Library, perldocs, The Python Standard Library, etc, no existen solamente para ocupar un espacio en internet.


Utiliza los conceptos y términos propios del lenguaje y de las herramientas

Siempre trato de resaltar lo importante que es esto. Suelo encontrarme con personas, ya sean principiantes o programadores sin organización, con las cuales es difícil entablar una conversación ya que no saben utilizar correctamente palabras propias del lenguaje o del entorno de programación. Existen veces que utilizamos incorrectamente los conceptos, o que ni siquiera los utilizamos, y alargamos diálogos sin sentido.


Cuando te encuentras en entornos como el que brinda el framework Angular debes tener muy en claro los conceptos que se utilizan.

Nunca dejamos de aprender, pero aprendemos muy bien a ignorar. El mundo de las computadoras y de la programación se basa en conceptos bien definidos. Cuando leas documentación, toma las palabras claves y aprende el significado y no supongas nada ya que un lenguaje y su entorno pueden guardar funcionalidades y características que no conoces.


Empieza el análisis por el entry point del codebase

Todo sistema tiene un entry point y por lo tanto todo proyecto de software tiene su entry point. Tanto para el analista de proyectos de terceros como para el principiante aprendiz de un lenguaje es muy útil saber cuál es ese punto de entrada en el que su programa es un ente en ejecución.

Entry Point, lifecycle y Codebase son conceptos muy utilizados en internet. Cuando quieras saber acerca del entry point, estructura del codebase de un lenguaje o tipo de proyecto, o lifecycle de una aplicación que comúnmente cumple el rol de servidor, entonces utiliza esas palabras en el buscador o en foros, por ejemplo stackoverflow.

Es sabido que el entry point de lenguajes como Java, C# o C/C++ es una función con ciertas características. Pero en lenguajes de scripting y proyectos implementados con un framework, no es tan fácil saber por dónde comienza la ejecución. En ocasiones, las prácticas comunes y recomendaciones de la comunidad, especifican una cierta organización y codificación para poder identificar el entry point. Por ejemplo, Python por defecto puede ejecutar el código de cualquier archivo con código fuente, sin embargo los desarrolladores suelen limitar esto a través de cláusulas en el código (por ejemplo, if __name__ == "__main__":) y con nombres de archivo identificables como (por ejemplo, __main__.py).


Tener conocimiento del entry point y de los diferentes módulos utilizados por una aplicación es esencial para poder analizar e innovar. El HTTP Message lifecycle de un proyecto No tienes permitido ver los links. Registrarse o Entrar a mi cuenta WEB API nos brinda pautas para poder hacer un seguimiento de la funcionalidad del web service.


Sigue las convenciones utilizadas

Cuando veas código, ya sea cuando estas siguiendo alguna documentación o analizando proyectos de terceros, presta atención a las formas de codificación, a la organización y a los patrones utilizados.

Todo lenguaje, en cuanto a la codificación y organización, tiene sus lineamientos estándar de codificación, sus buenas prácticas, sus prácticas comunes y sus patrones comunes de desarrollo. Los proyectos suelen utilizar algunas de estas prácticas y patrones, pero además crean sus propias convenciones.


La comunidad de desarrolladores C# suele seguir los lineamientos y convenciones utilizados por ReSharper y los diferentes MSDN guidelines and conventions.

También existen convenciones para la organización de los archivos de un proyecto. Analiza y averigua la razón de tal organización.



Visita #UNDERtips en el blog

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#3

Email Harvesting

El siguiente es un procedimiento de Information Gathering (uno de los pasos programados en el pentesting) que se denomina Email Harvesting y puede ser utilizado por el atacante para realizar una campaña de pishing contra una organización apuntando a emails de los miembros de la misma. Por suspuesto, no debemos suponer que esta técnica es efectiva ya que solamente basa en la utilización de los buscadores.

Uno de los tantos módulos que el Framework Metasploit ofrece es search_email_collector el cual realiza búsquedas de email asociados a un dominio utilizando google, bin y yahoo. La localización de este módulo es: auxiliary/gather/search_email_collector

Accedemos a Metasploit a través de la interface msfconsole, pero si prefieres puedes usar otra de las existentes.

Código: php

[ metasploit]$ msfconsole
                                                 
_                                                    _
/ \    /\         __                         _   __  /_/ __
| |\  / | _____   \ \           ___   _____ | | /  \ _   \ \
| | \/| | | ___\ |- -|   /\    / __\ | -__/ | || | || | |- -|
|_|   | | | _|__  | |_  / -\ __\ \   | |    | | \__/| |  | |_
      |/  |____/  \___\/ /\ \\___/   \/     \__|    |_\  \___\


       =[ metasploit v4.12.13-dev                         ]
+ -- --=[ 1562 exploits - 904 auxiliary - 269 post        ]
+ -- --=[ 455 payloads - 39 encoders - 8 nops             ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf >



Podemos encontrar este módulo de la siguiente forma:

Código: php
sf > search type:auxiliary name:email
[!] Module database cache not built yet, using slow search

Matching Modules
================

   Name                                     Disclosure Date  Rank    Description
   ----                                     ---------------  ----    -----------
   auxiliary/client/smtp/emailer                             normal  Generic Emailer (SMTP)
   auxiliary/gather/search_email_collector                   normal  Search Engine Domain Email Address Collector
   auxiliary/vsploit/pii/email_pii                           normal  VSploit Email PII


msf >



Seleccionamos el módulo:

Código: php
msf > use auxiliary/gather/search_email_collector
msf auxiliary(search_email_collector) >



Ejecutamos el comando 'info' o 'show options':

Código: php
msf auxiliary(search_email_collector) > info

       Name: Search Engine Domain Email Address Collector
     Module: auxiliary/gather/search_email_collector
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  Carlos Perez <[email protected]>

Basic options:
  Name           Current Setting  Required  Description
  ----           ---------------  --------  -----------
  DOMAIN                          yes       The domain name to locate email addresses for
  OUTFILE                         no        A filename to store the generated email list
  SEARCH_BING    true             yes       Enable Bing as a backend search engine
  SEARCH_GOOGLE  true             yes       Enable Google as a backend search engine
  SEARCH_YAHOO   true             yes       Enable Yahoo! as a backend search engine

Description:
  This module uses Google, Bing and Yahoo to create a list of valid
  email addresses for the target domain.

msf auxiliary(search_email_collector) > show options

Module options (auxiliary/gather/search_email_collector):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   DOMAIN                          yes       The domain name to locate email addresses for
   OUTFILE                         no        A filename to store the generated email list
   SEARCH_BING    true             yes       Enable Bing as a backend search engine
   SEARCH_GOOGLE  true             yes       Enable Google as a backend search engine
   SEARCH_YAHOO   true             yes       Enable Yahoo! as a backend search engine

msf auxiliary(search_email_collector) >



Vemos que mínimamente necesitamos configurar la opción DOMAIN para poder ejecutar este módulo. Procedemos (utilizando un dominio de ejemplo como blanco):

Código: php
msf auxiliary(search_email_collector) > set DOMAIN uni.edu.com
DOMAIN => uni.edu.com
msf auxiliary(search_email_collector) >



Ejecutamos el módulo y esperamos para ver si obtenemos algún resultado:

Código: php
msf auxiliary(search_email_collector) > run

[*] Harvesting emails .....
[*] Searching Google for email addresses from uni.edu.com
[*] Extracting emails from Google search results...
[*] Searching Bing email addresses from uni.edu.com
[*] Extracting emails from Bing search results...
[*] Searching Yahoo for email addresses from uni.edu.com
[*] Extracting emails from Yahoo search results...
[*] Located 23 email addresses for uni.edu.com
[*] [email protected]
[*] [email protected]
[*] [email protected]
[*] [email protected]
[*] [email protected]
.
.
.
[*] [email protected]
[*] Auxiliary module execution completed
msf auxiliary(search_email_collector) >



Como agregado final, también podemos configurar la opción OUTFILE para especificar un archivo en donde almacenar esta lista de emails.

Saludos
#4
Presentaciones y cumpleaños / first commit
Junio 15, 2016, 12:51:47 PM
Hola,

Soy desarrollador y un curioso de la computación.

Voy a estar colaborando en este foro en los temas que me competan y próximamente voy a publicar unos tutoriales de C# para no aburrirme.

Saludos undercodeanos.