elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: 1 2 [3]
21  Seguridad Informática / Hacking / +NORMAS DEL FORO, LEER ANTES DE POSTEAR+ en: 8 Noviembre 2005, 12:55 pm
El objetivo principal del Foro de Papers es servir de soporte para los aficionados a la In/Seguridad Informática que ya cuentan con cierta experiencia y necesitan disponer de un canal de comunicación a través del cual puedan:
- publicar papers: tutoriales, manuales, talleres, cursos, explicaciones sobre técnicas avanzadas de hacking, etc.
- publicar nuevos proyectos.

A fin de mantener cierto nivel de calidad en este foro, los moderadores han decidido marcar una serie de normas:

[NORMAS]

1) En este Foro, sólo está permitido publicar papers sobre Hacking e In/Seguridad Informática.

   1.1) Serán movidos/eliminados del Foro aquellos papers relacionados con otras secciones de foro.elhacker.net. Para estos casos, ya existe el Foro de Documentación.

   1.2) Serán eliminados del Foro aquellos papers cuyos contenidos no cumplan con unos requisitos mínimamente científicos y educacionales.

   1.3) Serán eliminados del Foro aquellos temas que no correspondan a la publicación de papers. Para cualquier duda sobre Hacking e In/Seguridad Informática, acudir al Foro de Hacking.

   1.4) Se permite postear comentarios a los papers publicados, así como preguntar dudas relacionadas con el contenido de los mismos, siempre que se hagan en el mismo hilo.


2) Los moderadores se reservan el derecho a bloquear/mover/eliminar cualquier tema que ellos consideren conveniente y, además, se reservan el derecho a dejar un mensaje de movido/eliminado.
Si no encuentras tu post, busca por el foro por si ha sido movido. Si aún así no lo encuentras, es posible que haya sido eliminado por no ajustarse a las normas del Foro. En cualquier caso, puedes contactar con los Moderadores si tienes dudas.


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

Los Moderadores se reservan el derecho a modificar esta Normativa según acontecimientos del Foro.


Esta normativa se ajusta a la normativa general del Foro de elhacker.net.
- REGLAS DEL FORO elhacker.net -
http://foro.elhacker.net/index.php/topic,17721.0.html

22  Comunicaciones / Hacking Mobile / + NORMAS DEL FORO DE HACKING MOBILE + en: 27 Agosto 2005, 00:12 am
El foro de Hacking Mobile permite a todos los aficionados a la Seguridad en dispositivos móviles disponer de un canal de comunicación a través del cual pueden:
- expresar sus inquietudes.
- publicar nuevos proyectos.
- discutir sobre temas relacionados con la In/Seguridad en estos dispositivos.

Se consideran dispositivos móviles: teléfonos, PDAs, Smartphones, Pocket PC Phones, etc.

A fin de mantener cierto nivel de calidad en este foro, el moderador ha decidido marcar una serie de NORMAS:


1) En este Foro, sólo está permitido hablar sobre temas de Hacking e In/Seguridad en dispositivos móviles.

   1.1) Los temas que se incluyen en esta temática son:
         - Seguridad en Bluetooth
         - Seguridad en Symbian
         - Seguridad en Windows Mobile
         - ...

   1.2) Los temas que NO se incluyen en esta temática son:
         - Dudas generales sobre Bluetooth o dispositivos Bluetooth (manos libres, etc.)
         - Trucos y desbloqueo de móviles (Ya existe un foro específico para eso)
         - Dudas generales sobre Symbian y Windows Mobile y sus dispositivos
         - ...

   Si el post que has publicado no aparece en el foro, puede haber sido movido a otros foros (usa opción Buscar) o puede haber sido eliminado. Pregúntate si el contenido de lo que publicaste se ajusta a las normas de este Foro.

   1.3) Serán eliminados del Foro aquellos temas que:
         - no cumplan con unos requisitos mínimamente científicos y educacionales.
         - expongan actividades ilegales.
         - su objetivo último sea fastidiar a otras personas.

2) Serán bloqueados/eliminados del Foro aquellos temas que no se ajusten al formato de posteado adecuado o ya hayan sido contestados y repetidos con anterioridad.

El resto de la normativa se ajusta a la normativa general del Foro de elhacker.net.
- REGLAS DEL FORO elhacker.net -
http://foro.elhacker.net/index.php/topic,17721.0.html


23  Comunicaciones / Hacking Mobile / Introducing the Car Whisperer (ataque Bluetooth) en: 8 Agosto 2005, 20:19 pm
Ya lo había visto hace un par de días en el blog de trifinite, pero ahora q Brujo me ha dado un toq creo conveniente postear esto aquí. Es interesante...

Citar
This new toool is called The Car Whisperer and allows people equipped with a Linux Laptop and a directional antenna to inject audio to, and record audio from bypassing cars that have an unconnected Bluetooth handsfree unit running. Since many manufacturers use a standard passkey which often is the only authentication that is needed to connect.

This tool allows to interact with other drivers when traveling or maybe used in order to talk to that pushy Audi driver right behind you ;) . It also allows to eavesdrop conversations in the inside of the car by accessing the microphone.

Since the attacker's laptop is fully trusted once it has a valid link key, the laptop could be used in order to access all the services offered on the hands-free unit. Often, phonebooks are stored in these units. I am quite certain that there will be more issues with the security of these systems due to the use of standard passkeys.

Cómo veis, el impacto de este ataque es elevado, ya q permitiría escuchar conversaciones ajenas del manos libres Bluetooth de un conductor cercano a nosotros. Sin embargo, la forma de llevar este ataque resulta algo excepcional. Si nuestra intención es atacar el manos libres Bluetooth de un coche en movimiento, deberíamos ser capaces de seguirle con nuestro coche a una distancia suficiente como para q nuestro equipo reciba las ondas Bluetooth del manos libres, lo cual deja un margen de varios metros.

En fin, describe claramente el significado de "Prueba de Concepto". Es posible llevar a cabo el ataque pero bajo unas circunstancias bastante excepcionales...

24  Comunicaciones / Hacking Mobile / [Bluetooth] Comandos AT en: 20 Junio 2005, 16:37 pm
Los comandos AT

Los comandos AT son instrucciones codificadas que conforman un lenguaje de comunicación entre el hombre y un terminal modem.
En un principio, el juego de comandos AT fue desarrollado en 1977 por Dennis Hayes como un interfaz de comunicación con un modem para así poder configurarlo y proporcionarle instrucciones, tales como marcar un número de teléfono. Más adelante, con el avance del baudio, fueron las compañías Microcomm y US Robotics las que siguieron desarrollando y expandiendo el juego de comandos hasta universalizarlo.
Los comandos AT se denominan así por la abreviatura de attention.

Aunque la finalidad principal de los comandos AT es la comunicación con modems, la telefonía móvil GSM también ha adoptado como estandar este lenguaje para poder comunicarse con sus terminales. De esta forma, todos los teléfonos móviles GSM poseen un juego de comandos AT específico que sirve de interfaz para configurar y proporcionar instrucciones a los terminales. Este juego de instrucciones puede encontrarse en la documentación técnica de los terminales GSM y permite acciones tales como realizar llamadas de datos o de voz, leer y escribir en la agenda de contactos y enviar mensajes SMS, además de muchas otras opciones de configuración del terminal.

  3.4.1. Notación de los comandos AT

El envío de comandos AT requiere la siguiente estructura:

· Petición:

<CR> ... Carriage return

· Respuesta correcta:

<CR> ... Carriage return
<LF> ... Line feed


· Respuesta incorrecta:

<CR> ... Carriage return
<LF> ... Line feed



  3.4.2. El juego de comandos AT específico para telefonía móvil GSM

Código:
    GSM AT COMMAND SET

    Call Control

ATA       Answer Command
ATD       Dial Command
ATH       Hang Up Call
ATL       Monitor Speaker Loudness
ATM       Monitor Speaker Mode
ATO       Go On-Line
ATP       Set Pulse Dial as Default
ATT       Set Tone Dial as Default
AT+CSTA   Select Type of Address
AT+CRC    Cellular Result Codes



    Data Card Control Commands

ATI       Identification
ATS       Select an S-register
ATZ       Recall Stored Profile
AT&F      Restore Factory Settings
AT&V      View Active Configuration
AT&W      Store Parameters in Given Profile
AT&Y      Select Set as s Powerup Option
AT+CLCK   Facility Lock Command
AT+COLP   Connected Line Identification Presentation
AT+GCAP   Request Complete Capabilities List
AT+GMI    Request Manufacturer Identification
AT+GMM    Request Model Identification
AT+GMR    Request Revision Identification
AT+GSN    Request Product Serial Number Identification



    Phone Control Commands

AT+CBC    Battery Charge
AT+CGMI   Request Manufacturer Identification
AT+CGMM   Request Model Identification
AT+CGMR   Request Revision Identification
AT+CGSN   Request Product Serial Number Identification
AT+CMEE   Report Mobile Equipment Error
AT+CPAS   Phone Activity Status
AT+CPBF   Find Phone Book Entries
AT+CPBR   Read Phone Book Entry
AT+CPBS   Select Phone Book Memory Storage
AT+CPBW   Write Phone Book Entry
AT+CSCS   Select TE Character Set
AT+CSQ    Signal Quality



    Computer Data Card Interface Commands

ATE       Command Echo
ATQ       Result Code Suppression
ATV       Define Response Format
ATX       Response Range Selection
AT&C      Define DCD Usage
AT&D      Define DTR Usage
AT&K      Select Flow Control
AT&Q      Define Communications Mode Option
AT&S      Define DSR Option
AT+ICF    DTE-DCE Character Framing
AT+IFC    DTE-DCE Local Flow Control
AT+IPR    Fixed DTE Rate



    ServiceAT+CLIP   Calling Line Identification Presentation

AT+CR     Service Reporting Control
AT+DR     Data Compression Reporting
AT+ILRR   DTE-DCE Local Rate Reporting



    Network Communication Parameter Commands

ATB       Communications Standard Option
AT+CBST   Select Bearer Service Type
AT+CEER   Extended Error Report
AT+CRLP   Radio Link Protocol
AT+DS     Data Compression



    Miscellaneous Commands

A/        Re-Execute Command Line
AT?       Command Help
AT*C      Start SMS Interpreter
AT*T      Enter SMS Block Mode Protocol
AT*V      Activate V.25bis Mode
AT*NOKIATEST Test Command
AT+CESP   Enter SMS Block Mode Protocol



    SMS Commands SMS Text Mode

AT+CSMS   Select Message Service
AT+CPMS   Preferred Message Storage
AT+CMGF   Message Format
AT+CSCA   Service Centre Address
AT+CSMP   Set Text Mode Parameters
AT+CSDH   Show Text Mode Parameters
AT+CSCB   Select Cell Broadcast Message Types
AT+CSAS   Save Settings
AT+CRES   Restore Settings
AT+CNMI   New Message Indications to TE
AT+CMGL   List Messages
AT+CMGR   Read Message
AT+CMGS   Send Message
AT+CMSS   Send Message from Storage
AT+CMGW   Write Message to Memory
AT+CMGD   Delete Message



    SMS PDU Mode

AT+CMGL   List Messages
AT+CMGR   Read Message
AT+CMGS   Send Message
AT+CMGW   Write Message to Memory


  3.4.3. Documentación de los comandos AT más interesantes

Todos los comandos han sido testeados con éxito utilizando un Nokia 8310.

Notación empleada:
Comando AT: [Definición técnica]
- Funcionalidad del comando
- Sintaxis: Petición | Respuesta
- Respuesta obtenida al testear el comando con Nokia 8310

## Comandos de Llamada ##

ATD: [Dial Command]
- Inicia una llamada telefónica
- Sintaxis:  ATD64612345 para una llamada de Datos.
                 ATD64612345; para una llamada de Voz. (Importante la notación ';')
                 ATD>"Gospel"; para llamar al contacto almacenado en la agenda con el texto asociado Gospel.


## Comandos de Operador ##

AT+CCFC: [Call Forwarding Number]
- Gestiona el Desvío de Llamadas. Permite redireccionar llamadas entrantes a otro número de teléfono.
- Sintaxis: AT+CCFC=<razón>,<modo>,<número>,<tipo>,<clase>,[<subaddr>,<satype>,[<time>]]
  <razón> Razón por la cual entra en acción el desvío de llamada.
     0 - incondicional
     1 - si teléfono ocupado
     2 - si no obtiene respuesta
     3 - si inalcanzable
     4 - todos los desvíos de llamadas
     5 - todos los desvíos de llamadas condicionales
  <modo> Estado del desvío de llamada.
     0 - desahabilitado
     1 - habilitado
     2 - query status
     3 - registro
     4 - erasure (borrado)
  <número> Cadena de texto con el número de teléfono destino del desvío de llamada. Se especifica en el formato indicado en el campo <type>
  <tipo> Tipo de código de dirección de teléfono:
     145 - para código internacional +
     129 - en otro caso
  <clase> Código que representa la clase de información que contiene la llamada a desviar.
     1 - voz
     2 - datos
     4 - fax
     7 - cualquier clase (por defecto)
  <time> Tiempo en segundos a esperar antes de desviar la llamada.
     1..30 (por defecto, 20)
  <status> Estado de la opción desvío de llamadas. (Sólo en respuesta AT)
     0 - no activo
     1 - activo
- Ejemplo: Implementación del comando en Blooover: "AT+CCFC=0,3,\"+4913377001\",145,7\r"
  Vemos que utiliza los siguientes parámetros:
  <razón> = 0, incondicional
  <modo> = 3, registro
  <número> = +4913377001 (German Windows XP Activation Hotline)
  <tipo> = 145, formato de código internacional
  <clase> = 7, cualquier clase de información a desviar


## Comandos de Control del Teléfono ##

AT+CPAS: [Phone Activity Status]

1) AT+CPAS=?
- Muestra la implementación del comando.
- Sintaxis: AT+CPAS=? | +CPAS: (lista de estados soportados)
    0 - Ready (Encendido pero inactivo)
    1 - Unavailable (No disponible)
    2 - Unknown (Desconocido)
    3 - Ringing (Llamada entrante en proceso)
    4 - Call in progress (Llamada saliente en proceso)
    5 - Asleep (Dormido)
- Respuesta: +CMGD: (0,2,3,4)

2) AT+CPAS
- Informa del estado de actividad del teléfono.
- Sintaxis: AT+CPAS | +CPAS: <estado>
- Respuesta: +CPAS: 0, en estado normal de inactividad.
                     +CPAS: 3, si el teléfono atacado está sonando a causa de una llamada entrante.


AT+CBC: [Battery Charge]
- Devuelve el estado de carga de la batería.
- Sintaxis: AT+CBC | +CBC: <bcs>, <bcl>
   <bcs> = 0 indica que el teléfono está conectado a una batería.
   <bcl> = 0 indica que el teléfono tiene la batería agotada.
             = 1..100 indica el porcentaje de carga que aún queda por agotar.
- Respuesta: +CBC:0,56


AT+CGMI: [Request Manufacturer Identification]
- Petición de identificación del Fabricante (Marca del teléfono).
- Sintaxis: AT+CGMM | <fabricante>
- Respuesta: Nokia Mobile Phones


AT+CGMM: [Request Model Identification]
- Petición de identificación del modelo de teléfono.
- Sintaxis: AT+CGMM | <modelo>
- Respuesta: Nokia 8310


AT+CGSN: [Request Product Serial Number Identification]
- Petición de identicación del número de serie del producto.
- Sintaxis: AT+CGSN | <IMEI>
- Respuesta: 1234567890etc


AT+CSQ: [Signal Quality]
- Devuelve el estado de calidad de la señal de cobertura.
- Sintaxis: AT+CSQ | +CSQ: <rssi>,<ber>
   <rssi> = 0 indica -113 dBm o menos
              = 1 indica -111 dBm
              = 2..30 indica -109..-53 dBm
              = 31 indica -51dBm o más
              = 99 indica desconocido
   <ber> = 99 indica porcentaje desconocido
- Respuesta: +CSQ: 13,99


AT+CPBS: [Select Phone Book Memory Storage]

1) AT+CPBS?
- Informa de los dispositivos de memoria que soporta el teléfono para almacenar las distintas listas de contactos.
- Sintaxis: AT+CPBS? | +CPBS: "XX", donde "XX" se sustituye por el dispositivo de almacenamiento:
   "SM"  - SIM phonebook list [Lista de contactos de la agenda SIM]
   "TA"  - TA phonebook list [Lista de contactos del terminal]
   "LD"  - SIM last dialing list [Lista de números marcados]
   "DC"  - Dialled call list [Lista de llamadas realizadas]
   "RC"  - ME received calls list [Lista de llamadas recibidas]
   "MC"  - ME missed call list [Lista de llamadas perdidas]
   "EN"  - Emergency number list [Lista de números de emergencia]
   "FD"  - SIM fix dialing list
   "MT"  - ME + SIM conbined list
   "ON"  - SIM o ME own number list
- Respuesta: +CPBS: "SM"

2) AT+CPBS="XX"
- Selecciona por defecto uno de los dispositivos de memoria que soporta el teléfono para almacenar las distintas listas de contactos.
- Sintaxis: AT+CPBS="XX", donde "XX" se sustituye por el dispositivo de almacenamiento:
   "SM"  - SIM phonebook list [Lista de contactos de la agenda SIM]
   "TA"  - TA phonebook list [Lista de contactos del terminal]
   "LD"  - SIM last dialing list [Lista de números marcados]
   "DC"  - Dialled call list [Lista de llamadas realizadas]
   "RC"  - ME received calls list [Lista de llamadas recibidas]
   "MC"  - ME missed call list [Lista de llamadas perdidas]
   "EN"  - Emergency number list [Lista de números de emergencia]
   "FD"  - SIM fix dialing list
   "MT"  - ME + SIM conbined list
   "ON"  - SIM o ME own number list


AT+CPBR: [Read Phone Book Entry]

1) AT+CPBR=?
- Informa del tamaño de la agenda de contactos.
- Sintaxis: AT+CPBR=? | +CPBR: <(1-n)>,<nlen>,<tlen>
   <(1-n)> indica el rango de índices que la agenda puede contener.
   <nlen> indica la longitud máxima permitida para un número de teléfono.
   <tlen> indica la longitud máxima permitida para el texto asociado a ese número (nombre del contacto).
- Respuesta: +CPBR: (1-150),48,14

2) AT+CPBR=<indice>
- Leer una entrada de la agenda de contactos.
- Sintaxis: AT+CPBR=<indice inicial> [,<indice final>] | +CPBR: <índice>, <número>, <tipo>, <texto>
   <índice> indica el índice de la agenda de contactos.
   <número> indica el número de teléfono almacenado en el índice.
   <tipo> indica el tipo de tipo de número de teléfono. Por defecto, 129 o 145 si incluye el prefijo internacional +.
   <text> indica el texto asociado al número de teléfono, normalmente, el nombre del contacto.
- Respuesta a AT+CPBR=8: +CPBR: 8,"646123456",129,"Gospel"

Nota: Para leer todas las entradas de la agenda, basta con preguntar por el tamaño de la agenda, almacenarlo en una variable int PhoneBookSize y lanzar un bucle FOR preguntando por cada índice:
for (int n = 1; n <= PhoneBookSize; n++)
{
   Enviar("AT+CPBR=%d", n);
}


Combinación de AT+CPBS;+CPBR [Leer una entrada de una lista de contactos seleccionada]
- Primero elegimos la lista de contactos a la que queremos acceder, y luego leemos una entrada por su índice.
Sintaxis: AT+CPBS="XX";+CPBR=<índice>, donde "XX" se sustituye por el dispositivo de almacenamiento:
   "SM"  - SIM phonebook list [Lista de contactos de la agenda SIM]
   "TA"  - TA phonebook list [Lista de contactos del terminal]
   "LD"  - SIM last dialing list [Lista de números marcados]
   "DC"  - Dialled call list [Lista de llamadas realizadas]
   "RC"  - ME received calls list [Lista de llamadas recibidas]
   "MC"  - ME missed call list [Lista de llamadas perdidas]
   "EN"  - Emergency number list [Lista de números de emergencia]
   "FD"  - SIM fix dialing list
   "MT"  - ME + SIM conbined list
   "ON"  - SIM o ME own number list
- Ejemplo de Respuesta a AT+CPBS="DC";+CPBR=2: +CPBR: 1,"646123456",129,"Pepito" (Visualizamos el último contacto al que hemos llamado).
          AT+CPBS="MC";+CPBR=1: +CPBR: 1,"646987654",129,"Jaimito" (Visualizamos la última llamada perdida).


AT+CPBF: [Find Phone Book Entries]
- Devuelve la entrada de la agenda de contactos cuyo texto asociado a un número contiene la cadena alfanumérica proporcionada.
- Sintaxis: AT+CPBF="textoaencontrar" | +CPBR: <índice>, <número>, <tipo>, <texto>
   "textoaencontrar" es case-sensitive, así que cuidado con el uso de mays.
   <índice> indica el índice de la agenda de contactos.
   <número> indica el número de teléfono almacenado en el índice.
   <tipo> indica el tipo de tipo de número de teléfono. Por defecto, 129 o 145 si incluye el prefijo internacional +.
   <text> indica el texto asociado al número de teléfono, normalmente, el nombre del contacto.
- Respuesta a AT+CPBF="Pepito": +CPBF: 19, "646987654",129,"Pepito"


AT+CPBW: [Write Phone Book Entry]
- Escribe una entrada en la agenda de contactos.
- Sintaxis:    AT+CPBW = <índice>, <número>, <tipo>, <texto>
   <índice> indica el índice de la agenda de contactos donde se creará la entrada de contacto. Si no se proporciona índice, se añade la entrada en el primer hueco libre.
   <número> indica el número de teléfono almacenado en el índice.
   <tipo> indica el tipo de tipo de número de teléfono. Por defecto, 129 o 145 si incluye el prefijo internacional +.
   <text> indica el texto asociado al número de teléfono, normalmente, el nombre del contacto.
Nota: Si únicamente se proporciona el campo del índice (omitiendo el resto de campos), la entrada de la agenda asociada a ese índice se borrará.
- Ejemplo para crear un nuevo contacto: AT+CPBW=,"696224466",129,"Jaimito"


## Comandos de SMS ##

[Próximamente...]


  3.4.4. Documentación técnica

http://us.share.geocities.com/unrayodesoul/bluehack/AT_Command_Set_For_Nokia_GSM_And_WCDMA_Products_v1_1_en.pdf

http://us.share.geocities.com/unrayodesoul/bluehack/AT_Command_Set_For_Nokia_GSM_Products.pdf



3.5. Aplicaciones prácticas de los comandos AT

  3.5.1 Interacción de los comandos AT

Normalmente, es posible conectarse a un teléfono móvil GSM a través de un cable de serie o infrarrojos, y establecer una sesión de comandos AT.

Como se puede observar en la siguiente captura, establecemos comunicación con el teléfono móvil y enviamos por consola los comandos AT. Para cada comando AT, el teléfono móvil nos responde con el resultado de la ejecución del comando y con un OK.


  3.5.2 Aplicación práctica de intercambio de comandos AT por Infrarrojos con un teléfono móvil

Para ilustrar el siguiente ejemplo, vamos a presentar un proyecto de Daniel Strigl @ codeproject.com. Se trata de una herramienta que permite la comunicación por Infrarrojos entre un PC/Pocket PC y un teléfono móvil.

Infrared Communication with your Mobile Phone by Daniel Strigl
http://codeproject.com/ce/irdamobile.asp

El programa implementa mediante comandos AT las siguientes operaciones:
- Obtener el fabricante del móvil: AT+CGMI
- Obtener el modelo del móvil: AT+CGMM
- Obtener la lista de contactos de la agenda:
     Varios comandos AT:
     · AT+CPBS="SM"               //Selecciona el dispositivo de almacenamiento
     · AT+CPBR=?                    //Obtiene el tamaño de la agenda y lo guarda en int nPhoneBookSize
     · for (int n = 1; n <= nPhoneBookSize; n++)
       {
             AT+CPBR=n              //Obtiene el contacto de índice n
       }

En la página oficial del proyecto podéis encontrar tanto el desarrollo para PC (Windows) como para Pocket PC ARM(Windows Mobile). Para poder descargarse tanto los fuentes como los binarios es necesario estar registrado (gratuitamente) en www.codeproject.com

    3.5.1.1. El diseño de la aplicación.

La aplicación consta de los siguientes campos:


    3.5.1.2. La aplicación en acción.

Los pasos para ejecutar la aplicación son:

1) Activar la comunicación IrD en el teléfono móvil.
2) Alinear los puertos infrarrojos de la Pocket PC y del teléfono móvil.
3) Seleccionar el puerto de transmisión. En nuestro caso, deberíamos seleccionar el puerto COM3, que es el especificado para comunicaciones IrD en Pocket PC.
4) Pulsar Read... para que comience la comunicación.
5) Al momento, la aplicación irá recibiendo la marca y modelo del teléfono móvil, así como los contactos de la agenda uno por uno.


25  Seguridad Informática / Hacking / ¿Por donde empezar? MANUAL DE HACKING BÁSICO por taskkill# en: 30 Mayo 2005, 21:08 pm
taskkill# ha redactado un estupendo manual de obligada lectura para todos aquellos principiantes que estabais buscando el texto definitivo para adentraros en el mundo del Hacking.

El siguiente MANUAL DE HACKING BÁSICO incluye todas las definiciones básicas para entender los conceptos comunmente relacionados con la In/Seguridad Informática. Se explican los siguientes conceptos:

- Comandos básicos de MSDOS.
- Protocolo FTP.
- Protocolo TFTP.
- Proxies y anonimato en internet.
- Troyanos, Backdoors, Keyloggers y Worms.
- Defacement de páginas web.
- Ataques por fuerza bruta y por diccionario en autenticacion HTTP, FTP y POP3.
- Vulnerabilidades: Investigación de sistemas, Identificación de vulnerabilidades, Scanneres.
- Penetración en sistemas remotos.
- Ataques DoS, DDoS.
- Exploits y Buffer Overflows.
- Recopilatorio de herramientas de Hacking.

Descarga PDF. Formato PDF 7.0: 855 KB Comprimido con WinRAR.
26  Seguridad Informática / Hacking / Troyanizando VNC - Control Remoto Invisible en: 22 Septiembre 2004, 10:59 am
Ya está disponible el tutorial!

Gospel.feat.Zhyzura-Troyanizando.VNC.Control.Remoto.Invisible.pdf


http://www.geocities.com/unrayodesoul/gospel/Gospel.feat.Zhyzura-Troyanizando.VNC.Control.Remoto.Invisible.pdf
(Guardar destino como...)

Mirror: http://ns2.elhacker.net/timofonica/manus/Gospel.feat.Zhyzura-Troyanizando.VNC.Control.Remoto.Invisible.zip

Mirror2: http://ns2.elhacker.net/rojodos/descargas/pafiledb.php?action=download&id=65

_________________________________________________________________________________

Jejejeje.... Wolaaa  ;D

He decidido escribir este pequeño manual pq me empezó a picar la curiosidad después de leer el post de Shy @ http://foro.elhacker.net/index.php/topic,41216.msg198996.html#msg198996 (Así q en parte, el mérito tb es de él  :D )

Para todos aquellos q os preguntáis (yo hasta ahora me lo preguntaba): ¿Cómo puedo obtener el escritorio remoto de la víctima a partir de una shell remota obtenida tras una intrusión?

Vamos a utilizar para ello el programa de control remoto, q no troyano, de distribución libre y gratuita VNC. La página oficial del proyecto es http://www.realvnc.com.

Este simple programa se compone de dos aplicaciones Cliente y Servidor. El Servidor es lo queremos instalar en la víctima, el Cliente es lo q utilizará el atacante para visualizar el escritorio de la víctima.
Problema: Por defecto, el Servidor VNC muestra un Tray Icon durante su ejecución. Ohhh...  :( se acabó la Fiesta??? Nooooooo, ni hablar!  >:(

He encontrado bastantes manuales por la red de cómo llevar esto acabo, pero ante todo, he preferido no jugar con claves de registro así q me quedo con este procedimiento q os voy a enseñar:

1) Instalar el original VNC en el equipo atacante.
Para ello, no vamos a bajarnos la última version oficial de VNC, si no ésta (ya veréis luego pq esta versión en concreto...)

http://ftp://ftp.uk.research.att.com/pub/vnc/dist/
y buscamos
vnc-3.3.2r6_x86_win32.zip

Despúes de descargarnos el zip, lo descomprimimos y lo instalamos. Se creará una carpeta en Archivos de Programa llamada C:\Archivos de programa\ORL\VNC donde encontraremos, entre otros archivos, el Servidor (WinVNC.exe) y el cliente (vncviewer.exe).

2) Configurar el Servidor en el propio equipo del atacante.
Necesitamos configurar el Servidor antes de instalárselo a la víctima o de otro modo, no podremos conectarnos remotamente!!
Así pues, ejecutamos WinVNC.exe y nos saldra una ventana de propiedades. Comprobamos q en Display Number pone 0 y en Contraseña agregamos una q queramos...
Ya podemos cerrar el Servidor.

3) Sustituir el Servidor ejecutable original por uno modificado para q no muestre el Tray Icon.
Este ejecutable lo encontraremos en http://www.ssimicro.com/~markham/vnc/vnc-3_3_2r6_x86_win32_notray.zip

Lo descargamos, lo descomprimos y sustituímos el archivo WinVNC.exe por el original q se encuentra en la carpeta C:\Archivos de programa\ORL\VNC

4) Subir el Servidor VNC a la víctima.
Después de haber obtenido una shell remota de la víctima, vamos a subir vía TFTP los archivos necesarios para poder ejecutar el Servidor VNC en el sistema de la víctima.
Para ello, colocamos en la carpeta de nuestro Servidor TFTP (si no entiendes esto de Servidor TFTP, busca por el foro...) los siguientes archivos:
WinVNC.exe y VNCHooks.dll localizados en C:\Archivos de programa\ORL\VNC
omnithread_rt.dll localizado en C:\WINDOWS\system32

Subimos estos archivos a la víctima y procedemos a iniciar la ejecución del Servidor son el comando start WinVCN.exe
Por supuesto, no aparece ningún Tray Icon en la barra de la víctima   8)

Creo q la captura q os adjunto con el texto explica bien este último paso.

5)Conectarse desde el Cliente atacante al Servidor de la víctima.
Desde el equipo atacante, ejecutamos vncviewer y antes de nada, para evitar dar el cantazo, en Opciones marcamos la casilla de View Only (inputs ignored). De esta forma no podremos interactuar con el ratón de la víctima.
Introducimos la IP de la victima : Display Number (ej: 192.168.0.2:0), la contraseña y boom!!

Un apunte, aunq no aparezca el Tray Icon, sí q aparece WinVnc.exe en la ventana de procesos de la víctima. Yo he probado a renombrar el archivo WinVNC.exe por SYSTEM.exe y me funciona sin problemas.  ;)


Tengo decir q no me he molestado mucho en buscar por el foro y es posible q esto mismo ya lo haya explicado alguien en otro hilo. Si es así, bueno, yo he aprendido mucho currándomelo por mi cuenta y aquí os dejo mi experiencia.  :-[


Salu2
27  Programación / Java / Ejercicios Java [Teoría+Ejemplos] en: 1 Julio 2004, 11:15 am
Teoría de Programación en Java

1) Teoría de Programación Orientada a Objetos (POO)


1.1) Concepto de Objeto: Atributos y Métodos
Un objeto es cualquier cosa real o abstracta de la cual nos interesa su comportamiento y que tiene una identidad única que la distingue de las demás. Un objeto es una unidad atómica formada por la unión de estado+comportamiento.
Un Objeto se compone de:
   - Atributos (datos o variables): Información que posee cada objeto y que identifica su estado.
   - Métodos (operaciones o funciones): Conjunto de instrucciones que definen el comportamiento del objeto. Reciben unos argumentos y devuelven un resultado.
Sólo se puede acceder a los atributos de un objeto a través de sus métodos.

Imaginemos que nuestro objeto es un exploit y que su plantilla es la siguiente:

------------------------------------------
|                        Dame el lenguaje  |
|   Dame la vulnerabilidad                 |
|            ---------------               |
|           |   Autor       |              |
|           |               |Dame el autor |
|           |Vulnerabilidad |              |
|           |               |              |
|           |     Lenguaje  |              |
|           |               |              |
|            ---------------               |
|                                          |
|     Introduzco nuevo offset              |
|                                          |
 ------------------------------------------


Este diagrama representa la estructura de un objeto. La parte interna del objeto no es accesible y contiene los atributos. La parte externa o interfaz del objeto es accesible y contiene los métodos.


Citar
Para los que no conocen mucho sobre los exploits, les recomiendo que se den una vuelta por http://foro.elhacker.net/index.php/board,32.0

Para poder comprender este ejemplo, sólo es necesario saber que un exploit es un código (codificado por un autor) que explota una vulnerabilidad para lograr ejecutar código arbitrario en el sistema comprometido. La codificación puede haberse hecho en el lenguaje que prefiera el autor: C, C++, Perl...
Antes de lanzar un exploit contra un objetivo remoto, por ejemplo, debemos conocer su sistema operativo y a veces es necesario cambiar la dirección offset dentro del código del exploit, en función del sistema operativo y la versión de service pack que el objetivo tenga instalada, para ajustar el exploit a las características del sistema objetivo.



Bien, nuestro objeto-exploit tiene algunos atributos como el autor del exploit (= Lion), la vulnerabilidad que explota (= Serv-U FTPD 3.x/4.x "SITE CHMOD" Command Remote stack buffer overflow) y el lenguaje en que se ha codificado el exploit (= Lenguaje C). Si otro objeto quiere acceder a estos atributos, no lo puede hacer directamente, sino a través de los métodos del objeto-exploit. Es decir,
    · si quiere saber el autor que codificó el exploit, llamará al método "dame el autor" del objeto-exploit y recibirá como resultado el tipo string con el nombre del autor = "Lion".
    · si quiere introducir una nueva dirección offset, llamará al método "introduzco nuevo offset" y le pasará como argumento el tipo string con la dirección offset = "0x7ffa4a1b" a introducir para que el exploit nos funcione.
Generalmente, a estos métodos q "obtienen" o "introducen" se les llama métodos getters y setters. De esta forma, los métodos del objeto-exploit pasarán a codificarse bajo los nombres getAutor, getVulnerabilidad, getLenguaje, y setOffset.

Continuando con el ejemplo...
    · el prototipo del método getAutor será: String getAutor ()
String (antes del método), indica que la llamada al método devuelve un tipo String, como es una cadena de caracteres con el nombre del autor. Sin embargo, no hace falta pasarle ningún argumento al método, por lo que dejamos los paréntesis () vacíos.
    · el prototipo del método setOffset será: void setOffset (String offset)
void (antes del método), indica que la llamada al método no devuelve ningún tipo. Sin embargo, es necesario pasarle un argumento tipo String, como es la cadena de caracteres de la dirección offset para que, por ejemplo, el código del método implemente esa dirección offset y entonces lance el exploit ya ajustado a las características del sistema objetivo.

Si este ejemplo del objeto-exploit te ha resultado demasiado confuso por los tecnicismos empleados, quizás te resulte más fácil comprender un objeto-reloj. Tiene los atributos Hora (= 19:00), Fecha (= 31/12/2004) y Marca (=Casio) y sus métodos podrían ser getHora (para pedir la hora que marca el reloj), getFecha (para pedir la fecha que marca el reloj), getMarca (para pedir la marca del reloj), setHora (para introducir una nueva hora en el reloj) y setFecha (para introducir una nueva fecha en el reloj). Jejejeje, mejor así?? ;)


1.2) Concepto de Clase.
Justo antes del dibujo del objeto-exploit, he remarcado que ese diagrama representaba su "plantilla". Es decir, imagina que tenemos una plantilla para crear muchos objetos-exploit, todos ellos con los mismos tipos de atributos y los mismos métodos, pero cada uno con su identidad propia. Otro ejemplo de objeto-exploit diferente podría contener la siguiente información en sus atributos:
Autor = fiNis,
Vulnerabilidad = Jordan Telnet Server Buffer Overflow,
Lenguaje = C
y tener los mismos métodos para acceder a estos atributos, pero como ves, la identidad es distinta.

Las clases son una especie de plantilla para los objetos, es decir, si se piensa en una clase como un molde de galletas, los objetos que se crean a partir de esa clase son las galletas.
Definimos formalmente clase como la representación de la estructura (atributos) y comportamiento (métodos) de un objeto.
La creación de un objeto a partir de una clase se denomina "instanciación". Cualquier objeto que se instancie de una clase creará una copia de la definición de atributos de la clase y dispondrá de los métodos definidos en ella.
Para crear objetos, se invoca al constructor de la clase, que es un método que se llama igual que la clase.

Tipos de clases:
- Clase abstracta: ningún objeto pertenece directamente a dicha clase.
- Clase concreta: exiten objetos que pertenecen directamente a dicha clase.


1.3) Atributos y Métodos de Objeto/Clase
Antes hemos visto que un Objeto se compone de:
   - Atributos (datos o variables): Información que posee cada objeto y que identifica su estado.
   - Métodos (operaciones o funciones): Conjunto de instrucciones que definen el comportamiento del objeto. Reciben unos argumentos y devuelven un resultado.

Y hemos dicho que la única manera de acceder a los atributos de los objetos, es a través de los métodos.
Los métodos son un conjunto de instrucciones al cual se le pueden pasar unos argumentos y/o devolver unos resultados.
Existen dos tipos de métodos:
- Métodos de instancia: invocados en los objetos.
- Métodos de clase: invocados en las clases. Estos atributos y métodos serán compartidos por todos los objetos creados a partir de una misma clase.

Para comprender el concepto de atributo/método de instancia o de clase, volvamos al ejemplo del objeto-reloj:
Imaginemos una clase-reloj que crea objetos-reloj, todos de la misma marca = Casio. Estos objetos-reloj implementan los atributos Hora, Fecha y Marca; y los métodos getHora, getFecha, getMarca, setHora y setFecha. Sin embargo, algunos de estos atributos y métodos son de clase y otros son de instancia:

- Atributos de instancia:
    · Hora
    · Fecha
- Métodos de instancia:
    · getHora
    · getFecha

- Atributos de clase:
    · Marca
- Métodos de clase:
    · getMarca

Se puede distinguir las diferencias entre unos y otros de manera sencilla:

    · Si le preguntamos a dos objetos (relojA y relojB) con getHora o getFecha, nos pueden contestar un valor diferente para cada objeto. Estos atributos y métodos serán denominados atributos de instancia y métodos de instancia.
    · Si le preguntamos a dos objetos (relojA y relojB) con getMarca, ambos contestarán el mismo valor = Casio, ya que la clase-reloj se lo ha asignado forzósamente. Estos atributos y métodos serán denominados atributos de clase y métodos de clase.
En este caso, por ejemplo, si existiera el método setMarca y modificaramos el atributo Marca de cualquier objeto a través de él, este atributo se modificaría para todos los objetos, pues estamos tratando con métodos de clase.

CONSECUENCIAS
Cualquier objeto creado a partir de una clase contendrá la definición de los atributos de clase y dispondrá de los método de clase. Por tanto, cuando se modifica un atributo de clase a través de un objeto, se modifica ese atributo en todos los objetos creados a partir de esa clase.


Especificaciones sobre los métodos:
Un objeto de clase no puede acceder a un método de instancia, porque no sabemos si el objeto al que intenta acceder ha sido ya creado. Sin embargo, el resto de accesos son posibles:
    · método de clase - método de clase
    · método de instancia - método de instancia
    · método de instancia - método de clase
Asimismo, un método de instancia de un objeto A no puede acceder directamente a los atributos (variables) de un objeto B, pero puede hacer referencia a un método de instancia del objeto B, y que sea este el que acceda a los atributos del objeto B.


1.4) Modificadores de acceso.
Alcance de los modificadores de acceso prefijos a atributos y métodos:

- public: accesible desde cualquier lugar de la aplicación (por el resto de clases).
- private: sólo accesible desde la clase a la que pertenece.
- protected: disponible para la clase actual, clases del mismo paquete y subclases derivadas de esa clase.


1.5) Paradigmas de la POO

1.5.1) Abstracción
Consiste en abstraer conceptualmente los atributos y comportamiento (métodos) comunes a un determinado conjunto de objetos y almacenarlos en una clase.
 
1.5.2) Encapsulamiento
El encapsulamiento es el principio por el cual se ocultan los detalles de implementación al usuario.
Cada clase tiene dos partes:
    · El Interfaz es la parte pública con la que interactúa el usuario (métodos públicos)
    · La Implementación es el código que realiza todas las operaciones de la clase (métodos privados)
 
1.5.3) Herencia
La herencia permite crear una clase nueva (subclase o clase derivada) que tenga el mismo comportamiento que otra (superclase o clase base) y además extienda o adapte ese comportamiento a unas necesidades específicas.
La nueva subclase heredará los atributos y los métodos de la clase base, los cuales se añadirán a los definidos en la propia subclase.

Continuando con el ejemplo de la clase-exploit, observamos que por Internet circulan bastantes exploits que afectan a vulnerabilidades en servicios de Microsoft Windows. ¿Por qué no agrupar todo este conjunto de objetos-exploit bajo una nueva clase-winexploit?. Esta nueva clase-winexploit herederá los mismos atributos (Autor, Vulnerabilidad y Lenguaje) y los mismos métodos (getAutor, getVulnerabilidad, getLenguaje y setOffset) de la clase-exploit. A su vez, "extenderá su comportamiento" implementando otros atributos y otros métodos específicos como, por ejemplo, el atributo CodigoMS (referente al Codigo Microsoft Security Bulletin asignado a la vulnerabilidad) y el método getCodigoMS.
La clase-winexploit quedaría así:

------------------------------------------
|                        getLenguaje       |
|   getVulnerabilidad                      |
|            ---------------               |
|           |   Autor       |              |
|           |               | getAutor     |
|           |Vulnerabilidad |              |
|           |               |              |
|           |     Lenguaje  |              |
|           | CodigoMS      |              |
|            ---------------               |
|                                          |
| setOffset                                |
|                          getCodigoMS     |
 ------------------------------------------


Un ejemplo de objeto-winexploit podría ser el siguiente:
- Atributos:
    (atributos heredados de la clase-exploit)
    · Autor: Wirepair
    · Vulnerabilidad: Windows Workstation Service WKSSVC.DLL Buffer Overflow
    · Lenguaje: C
    
    (nuevos atributos implementados por la clase-winexploit)
    · CodigoMS: MS03-049

- Metodos:
    (métodos heredados de la clase-exploit)
    · getAutor
    · getVulnerabilidad
    · getLenguaje
    · setOffset

    (nuevos métodos implementados por la clase-winexploit)
    · getCodigoMS

    
La sintaxis en Java para indicar que una nueva clase hereda de otra superclase es:

Código:
class winexploit extends exploit


Especificaciones sobre la Herencia:
Además de "extender" el comportamiento implementando nuevos atributos y nuevos métodos, una clase heredada puede "adaptar" el comportamiento sobreescribiendo la funcionalidad de la clase base, esto es, sobreescribiendo la implementación del algún método heredado de la clase base para que al llamar a ese método desde la nueva clase heredada, en vez de ejecutar el código original del método heredado, se ejecute un nuevo código adaptado al comportamiento de la nueva clase. (Polimorfismo)

1.5.4) Polimorfismo
El Polimorfismo es la respuesta distinta frente a una llamada a un método dependiendo de la naturaleza del objeto.
Consiste en definir métodos distintos, que comparten el mismo nombre, pero que se aplican a clases diferentes.
Por ejemplo, un método llamado breathe puede responder de manera distinta dependiendo de quien lo invoque:

Código
  1. class animal
  2. {
  3.    public void breathe()
  4.    {
  5.        System.out.println("Respirar...");
  6.    }
  7. }
  8.  
  9. class pez extends animal
  10. {
  11.    public void breathe()
  12.    {
  13.        System.out.println("Burbujear...");
  14.    }
  15. }

Si se invoca el método breathe desde un objeto-perro, imprimirá en pantalla "Respirar...", pero si es invocado desde un objeto-trucha, imprimirá en pantalla "Burbujear...".


Otra forma de utilizar polimorfismo es mediante la sobrecarga de funciones:

Código:
char convertir_numero_cadena(int valor, char cadena, int base)
char convertir_numero_cadena(long valor, char cadena, int base)

En este caso, cuando se invoca la función, el compilador debe analizar los argumentos de la llamada y, en función de su tipo, deducir cual de las distintas versiones del método con ese nombre debe recibir el control.

Recopilación de Ejercicios Java POO(Programación Orientada a Objetos)

http://jleyer.wordpress.com/2010/07/27/recopilacion-de-ejercicios-programacion-orientada-a-objetos/
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines