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

#136
Siempre se ha diferenciado perfectamente gusanos,viruses,troyanos y botnets. Pero hoy en día nos encontramos con híbridos entonces que está pasando con el malware esta mutando como las películas de ciencia ficción o es mejor seguir desarrollando lo de siempre gusanos,viruses,troyanos y botnets. Es decir, seguirán funcionando por separado o podría perfectamente darse el caso de que un gusano incluyera una pequeña backdoor por ejemplo para que funcionará al mismo tiempo como troyano como se da el caso de h-worm houdini que yo lo veo más como un troyano pero parece ser un gusano nosé. Pensaba que cada cosa era diferente y no iba mezclada una con la otra. Luego también preguntar por el tiempo de vida de los gusanos ya que los gusanos pueden cambiar su estructura y hacer copias diferentes de sí misma pero manteniendo su funcionalidad. Entonces con el tema de las proactivas los gusanos no tendrían mucho tiempo de vida o al final detectarían mediante proactivas osea que ya no son útiles como malware.
#137
Hola estoy intentando mandar mensajes masivos pero nunca llegan a todos los contactos.
Public Class Form1
   Public WithEvents refSkype As New SKYPE4COMLib.Skype
   Public Mag As String = "hola"
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim skype As Object
       skype = CreateObject("skype4COM.skype", "")
       skype.Client.Start()
       skype.Attach()
       For Each User In skype.Friends
           On Error Resume Next
           skype.SendMessage(User.Handle, Mag)
       Next
   End Sub
End Class


Namespace SKYPE4COMLib
   Public Class Skype
       Function ActiveCalls() As Object
           Throw New NotImplementedException
       End Function

       Function HardwiredGroups() As Object
           Throw New NotImplementedException
       End Function

       Sub PlaceCall(ByVal p1 As Object)
           Throw New NotImplementedException
       End Sub

       Sub SendMessage(ByVal p1 As Object, ByVal p2 As String)
           Throw New NotImplementedException
       End Sub

       Function User(ByVal p1 As Object) As Object
           Throw New NotImplementedException
       End Function

   End Class
End Namespace

Si es posible, se podría buscar un exploit en skype y mandaría los mensajes automaticamente sin pedir autorización como aplicacion de terceros. Simplemente con fines educativos por supuesto!
#138
Análisis y Diseño de Malware / proactivas
19 Diciembre 2016, 19:19 PM
Hola hay alguna manera de proteger mis aplicaciones de las proactivas cuando me refiero a proteger me refiero a proteger mi código para evitar que la incluyan en su base de datos ya que en principio no son aplicaciones dañinas simplemente aplicaciones que utilizan procedimientos para como puede ser createremotethread etc...
#139
Hola tengo una duda sobre iexpress ya que iexpress permite juntar dos archivos. Pero tengo una duda si iexpress genera un ejecutable que obviamente facilmente uno puede descomprimir con winrar. Pero si uno de esos ficheros hace funciones de copiado por ejemplo mi fichero se copia en otro directorio. Mi fichero se podrá copiar si esta comprimido con iexpress?
#140
Hola no sé si sería bueno implementar un método de sanciones a los usuarios que incumplan las condiciones incluyendome. Cuando digo sanciones me refiero a usuarios que incumplen las normas. También me gustaría pero probablemente no es posible aplicar el refrán Si quieres recibir ayuda, también tienes que darla. ... (Proverbio chino).
Y eso de que el grupo hace la fuerza es una realidad windows podrá apropiarse de sectores estratégicos en el mercado pero nunca será tan impresionante como linux en el cual hay mogollon de distribuciones con sus repositorios propios y todo hecho sin ánimo de lucro. Entonces hay dejo mi sugerencia que probablemente no seá ni ideal ni apropiada.
#141
Redes / acceder a router con ddns
12 Diciembre 2016, 19:51 PM
Hola si pongo en mi router que se conecte por ddns tengo dudas. Cuando accedo con ddns
puedo hacer muchas cosas en mi router como subir archivos via ftp o bajar etc... Pero mi pregunta es si alguien tuviera mis ddns podría acceder a mi router sin necesidad de identificarse y otra es que seguramente esta persona podría descargarme muchos datos de mi router como backups o configuración etc ¿es posible?
#142
Hola ultimamente estoy viendo que hay gusanos que crean accesos directos en partes estrátegicas muy usadas por el usuario y a lo mejor descargan ficheros para ser ejecutados. En principio un gusano lo que hace es multiplicarse pero puede hacer también acciones de descarga ejecucion etc. Entonces mi pregunta es podría catalogarse como una opción de evitar el uso del registro. Mi pregunta basicamente es un gusano puede arrancarse sin usar registro y como lo hace creando accesos directos en todo el sistema que se arrancan¿? no entiendo muy bien. esa era mi duda.
#143
Hola he cambiado el icono de mi programa con resource hacker pero esque a veces lo que me pasa es que se me corrompe e lfichero y se vuelve en un fichero corrupto de 16 bits alguien sabe el motivo o entiendo sobre este error?. Parece ser que cuando cambio el icono al .exe creado por el joiner me lo cambia a todos mis programas dentro del .exe entonces se joden algunos ya que cambian los resources. No sé como podría cambiar el icono sin afectar a los resources de los otros que estan juntos en uno solo. :laugh:

Edito: lo que hago es crear una trama de datos y añadirle los diferentes ficheros. Cuando ejecuto los expulso y los cargo desde la ubicación de los ficheros temporales. Problema que cuando cambio el icono del .exe en el que viene todos juntos me los cambia a todos y algunos ficheros o ejecutables se corrompen. Por eso tenía esa duda. También como explicastes es útil entender un poco el formato PE y los recursos. No sé si haga bien en mi caso. De todos modos si chequeastes el post y me sugirieras algo a lo mejor podría modificarlo.

Lo que si no entendi si pongo el exe joineado en los recursos. Es decir incluir estos recursos a mi exe nuevo completo(con todos los .exe..) o como? :-*
#144
Redes / cambiar mac para siempre
11 Diciembre 2016, 14:41 PM
Hola si cambio mi mac hay alguna forma de cambiarla para siempre. Es decir desde windows que cuando reinicie siga cambiada. Se que se puede cambiar desde el registro pero no sé si seguira cambiada una vez que reinicie mi pc. o algun modo para q siempre la tome como tal. :huh:
#145
Hola sigo sin resolverlo. Cambie el codigo sigo con errores.
#include "stdafx.h"
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{

HKEY key = 0;
LPCTSTR ruta = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\");
long status = RegOpenKey(HKEY_LOCAL_MACHINE, ruta, &key);
if (status != 0)
{
cout << "Win error: " << GetLastError() << endl;
}
else
{
string subclave;
subclave = "cualquiera";
string valor;
valor = "ruta";

LPCTSTR _subclave = TEXT("");
LPCTSTR _valor = TEXT("");
LPCTSTR _subclave = TEXT(subclave);
LPCTSTR _valor = TEXT(valor);

long crear = RegSetValueEx(key, _subclave, 0, REG_SZ, (LPBYTE)_valor, strlen(_valor) * sizeof(char));
if (crear != 0)
{
cout << "Win error: " << GetLastError() << endl;
}
else
{
cout << "Subclave creada correctamente" << endl;
}
}

RegCloseKey(key);

system("PAUSE");
return 0;
}


nueva captura de mis errores:


Se que seguro es una tontería. sabes porque o como puedo arreglar estos errores unos son de conversión y eso uno de argumento.

corregido lo de las lineas comentadas.
#146
Hola tengo una duda y es que pasa si alguien se conecta por wps y por ejemplo cambio la contraseña. Tendrá que recordarla la proxima vez que la cambie. Otra pregunta que tengo es si le quito el wps y se conecto con pin que pasará entonces podrá seguir conectandose a mi router  :rolleyes: :¬¬. Gracias
#147
Hola estoy intentando analizar más sobre temas de dll. Pero sigo teniendo las mismas dudas como una dll que esta en un proceso puede copiarse en el disco cuando el proceso se cierra. Es simplemente por estudiar más sobre el tema. Lo que supongo es que la dll  se copia cuando el proceso se cierra sino me equivoco usando opcion DETACH. Pero cómo o al menos mas o menos como sería?
#148
Hola si modifique una foto con paint puedo devolver a su estado original o recuperar la foto anterior una vez modificada? gracias?
#149
Hola si escribo es porque tengo un dispositivo de internet 3g  :xD. Bueno lo que quiero saber es si se va el internet es decir el router va bien pero el problema es que no da servicio de internet el problema que resetee porque iba sobrecargado un poco el router y bueno a lo mejor de la configuración se me fue. El router es TP-LINK TD-W8951ND. En principio no hace ping a nada que sea el exterior, a lo mejor el firewall? no sé pero dentro de la red funciona bien y recibe y manda paquetes. Alguna idea?
router TP-LINK TD-W8951ND

El problema reside en que debo asignarle una ip publica y una ip gateway a la misma. Lo tenía y hice una captura pero lo modifique y ahora no sé que ip asignarle en el routing. Cuando digo imagen me refiero a la mia a la que subí:


Ahora no se que ip publica asignarle a mi router donde pone poe4 que lo borre y tenia que apuntarlo y al resetearlo no sé cual asignarle.. Empezaba por 41....

CitarVale el problema es el routing tengo que añadirle la ip a internet para que salga internet pero como puedo ver la ip que tiene en internet sino puedo ver mi ip publica gracias?

¿Si una vez saco una Ip publica para ponerla en mi router en gateway que pongo ya que una ip publica que yo sepa no tiene puerta de enlace no?
#150
Hola estoy aprendiendo sobre nmap soy un un patata en esto de temas de penetración (no me refiero a lo otro) pero bueno lo que quería decir es si por ejemplo yo tengo los puertos abiertos podría desde mi otro ordenador acceder. Alguna otra persona podría acceder desde fuera de la red (internet). Y por último, saber si esa persona podría atacarme teniendo los puertos abiertos o sería necesario buscar un exploit o bug en mi sistema para poder acceder a él. Supongo que si uno tiene los puertos abiertos en principio uno no tendría problemas de acceder a otro ordenador con algún tipo de ataque ya que el firewall no bloquearía.

Y supongo también que si uno tiene acceso al router y no a los equipos, podría esta persona acceder a los ordenadores conectados a este router o tendría que buscar fallos en estos equipos?
#151
Esta preguntada dirán bueno esta muy contestada pero todavía no me queda muy claro haber uno puede ser invisible en la red pero el problema que cuando uno usa el mismo el ordenador la sesion se guarda, entonces mi pregunta es primero si usara diferentes proxys
en mi ordenador por ejemplo podría rastrearse en el sentido de ejemplo para aprender más sobre el tema. Es decir si uso 3 proxys en 3 navegadores diferentes se podría de alguna manera rastrearme o buscar las ip's o no tiene nada que ver son ip's diferentes. por otra parte tengo otra pregunta la sesion si se guarda y yo la vuelvo a usar con otro proxy con la sesión ya se podría rastrear a tal persona. Dicen que un vpn es muy seguro pero será un propio porque la mayoría son detectados. Tor no es seguro tampoco porque la red es detectada.

Entonces que es lo ideal tener varios host's en diferentes ubicaciones y conseguir esa invisibilidad que no creo que exista. En total podría haber alguna persona invisible en la red y basandome los métodos actuales de proxys y vpn  no son útiles ya que usar diferentes proxies en la misma sesion se puede rastrear y encontrar la ip real. Y un vpn es localizable. ¿Lo ideal sería usar un VPN propio con diferentes proxies ? que opinan
#152
Mi router tiene la siguiente ip 192.168.1.1 . Pero mi otra tarjeta usa la siguiente ip para compartir wifi es una tarjeta virtual de windows que permite crearla mi tarjeta la ip es 192.168.137.1 aunque le doy al servidor el que comparte wifi el puerto sigue sin estar abierto que puedo hacer  :huh: :huh: :huh: :huh: :huh:

Aqui una captura del routing
#153
Hola ultimamente estoy viendo que la mayoría de nuevo malware usa una dll reflexiva una dll que puede ser compilada desde 32 bits y funcionar en 32 bits y 64 bits. Para ello se utiliza un inyector reflexivo que permite a la dll cargarse en ambas versiones. ¿Entonces el inyector habitual será reemplazado por el inyector reflexivo , sobretodo en temas de malware ya que es muchisimo más flexible? Entonces mi pregunta es mejor usar un inyector reflexivo si se trabaja para por ejemplo programar un programa en malware o el inyector de toda la vida. También dicen que la inyeccion reflexiva es más detectable lo que no se si será cierto.

#154
Hola tengo una duda si el codigo de una dll es detectada digamos por un antivirus entonces no podrá hacer la inyección en un proceso legal o eso no implica que la dll se pueda inyectar al proceso legal era solamente por curiosidad :huh: :huh: :huh: :huh:


solucionado, en el sentido de que lo solucione modificando el codigo de mi dll pero supongo que si la dll no es detectada en tiempo de escaneo y la inyeccion no es detectada la .dll en principio no debería ser detectada en tiempo de ejecución

MOD: No hacer doble post. Usa el botón modificar.
#155
Hola estoy probando a hacer mis propios payloads pero muchas veces resulta que son detectados por la mayoría de antivirus bueno si  veilevasion es bueno para generar payloads indetectables. Pero en mi caso quería indetectabilizar uno diferente¿Existe alguna técnica posible que haga que un payload sea indetectable? O tengo que ir probando las técnicas más comunes método rit, método dafe, método dafe-gui, metodo papelera, metodo mmove, cifrado, evasión de motores heuristicos, mover al entry point , evasión de firmas condicionales. Algunos me diran pero lo que estas buscando es un crypter pero básicamente si hago las técnicas sería igual que las hiciera con un crypter o es mejor usar un crypter con un runpe para indetectabilizar un payload gracias :huh:, tambien si es uno con source podría modificarlo pero no sé como lo ven que es mas recomendable. Tambien lo digo porque estoy intentando indetectabilizar el payload del troyano pupy que esta en github.


solución programalo de nuevo.

MOD: No hacer doble post. Usa el botón modificar. Ya fuiste advertido anteriormente.
#156
Hola estaba viendo si era posible saltarse el mecanismo de detección de ip o es seguro y uno no se tiene que preocupar. He estado buscando y encontrado que uno facilmente se puede conectar a las aplicaciones web desde el mismo navegador y usando mi direccion ip (por medio de port forwarding o usando proxy socks). Vale la teoría la entiendo a medias pero como una persona puede llevar a cabo esto? como haria por ejemplo para que mi remoto pueda usar mi direccion y así conocer de verdad si este método es inseguro. Es decir de alguna manera esa persona tienes que usar una ip similar a la publica mia y la unica manera sería que estuviera conectado al wifi pero de lejos como lo haría.
#157
Hola estoy aprendiendo sobre esta técnica conocida como man in the middle pues ya que nunca probe y ir mejorando en temas de pentesting ya por mi seguridad y saber que riesgos existen. Se que hay dos técnicas utilizadas en mitm que son arp spoofing y arp poisoning mi pregunta que sirven y que es lo que hacen? Lo segundo es alguien podría suplantar mi identidad digamos intentando pasar el trafico mio a su red y hacerse pasar por mi como si se estuviera conectando desde mi ordenador con la misma ip. es simplemente por seguridad gracias.
#158
Es posible cambiar la localización de un proceso¿?¿?¿??¿? es decir cuando abro la localización del proceso me manda a la ruta del fichero es posible mandar a otra ruta diferente en mi pc?¿  :huh:
#159
Hola quiero hacer un inyector compatible con ambas version tanto para 32 y 64 como soy un patata y lo unico que se es copy/paste lo veo complicado  :xD alguna recomendación, ya que he visto muchos ejemplos a lo mejor no para .dll pero otro tipo de inyectores que son compatibles con ambas versiones. :silbar:

No es posible entonces lo que unico que se podría hacer es que el inyector de 64 bits pudiera inyectar para 64 y 32 que creo que es el unico modo posible

Pero entonces si la dll incopora el inyector dentro es de 32 bits no tiene nada que hacer con 64 bits ?¿ entonces una dll solo podra funcionar o para 32 o 64 bits ¿? dado que el inyector solo permite eso?¿ Entonces estaría mejor que el inyector fuese externo ? ya que una dll de 32 bits que es capaz de inyectar ella misma solo podrá inyectar en 32 bit pero de 64 bits no creo que funcione con 32 y el inyector puede pero la dll no .. entonces obligatoriamente tiene que ser o de una arquitectura o otra la dll?

Me da a mí que no nos queda otra que meter mano a ensamblador  :-*
#160
Hola una vez matado el proceso, la dll inyectada al proceso desaparece obviamente. Entonces una vez que se mata el proceso la inyección desaparece no es posible que se pueda reanudar una vez que ejecute un nuevo proceso ya que el PID sera diferente. ¿Alguien sabe si es verdad que existe alguna manera, una vez matado el proceso para que se pueda inyectar de nuevo al nuevo proceso con un nuevo PID? yo lo veo imposible. Perdonar si escribo mal pero tengo dislexia y miopia graves xD

Creo que la clave esta aqui, la dll es capaz de acoplarse y desacoplarse del proceso. Por lo que al final es muy dificil que termine con el proceso.

Respuesta:
case DLL_PROCESS_ATTACH:
tu funcion();
break;
case DLL_PROCESS_DETACH:
tu funcion();
break;
#161
Programación General / inyeccion dll c++ ayuda
26 Noviembre 2016, 19:28 PM
Hola estoy intentando hacer un programita básico para inyectar en dll pero me da algunos errores el código es el siguiente:
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <Tlhelp32.h>

void error(char *err);

HANDLE myProc = NULL;

int main(int argc, char *argv[])
{
HANDLE processList = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 pInfo;
BOOL st = TRUE;
pInfo.dwSize = sizeof(PROCESSENTRY32);
Process32First(processList, &pInfo);
int myPid = 0;
do
{
if (strcmp(pInfo.szExeFile, "test.exe") == 0)
{
myPid = pInfo.th32ProcessID;
break;
}
Process32Next(processList, &pInfo);
} while (st != FALSE);

// Abrir el proceso
printf("[+] Opening process %i\n", myPid);
myProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, myPid);
if (myProc == NULL) error("[-] Error abriendo proceso.\n");
else printf("[+] Proceso abierto.\n");

// Reservar memoria para el argumento (ruta de la DLL)
char thData[] = "dll.dll";
LPVOID dirToArg = VirtualAllocEx(myProc, NULL, strlen(thData), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if (dirToArg == NULL)
error("[-] Error reservando memoria para argumento.\n");
else
printf("[+] Memoria reservada para argumento (%i bytes).\n", strlen(thData));
// Escribir la ruta de la DLL en la memoria reservada
SIZE_T written = 0;
if (WriteProcessMemory(myProc, dirToArg, (LPVOID)&thData, strlen(thData), &written) == 0)
error("[-] Error escribiendo memoria.\n");
else
printf("[+] Memoria escrita (arg %i bytes).\n", written);

// Lanzar un hilo con LoadLibrary
HANDLE rThread = CreateRemoteThread(myProc, NULL, 0,
(LPTHREAD_START_ROUTINE)GetProcAddress(LoadLibrary("Kernel32.dll"), "LoadLibraryA"),
dirToArg, 0, NULL);
if (rThread == NULL)
error("[-] Error creando el hilo.\n");
else printf("[+] Hilo creado.\n");

CloseHandle(myProc);
}

void error(char *err)
{
if (myProc != NULL) CloseHandle(myProc);
printf("%s", err);
exit(0);
}


Lo que estoy intentando es hacer un inyector que inyecte una dll y aqui donde esta la chica que busque por el proceso dado su nombre. Si alguien tiene un ejemplo mejor. En este caso lo extraí de otro sitio y por lo que parece el que lo hizo no sabía ni lo que hacia. Entonces si tienen un ejemplo sencillito para entenderlo en python es facil pero en c++ no consigo hacer ninguno en condiciones.

Fuente: https://blog.ka0labs.net/post/8/
#162
Ocultación de malware a traves del Registro de windows

Últimamente se ha vuelto común ver ocultar el malware en el registro de Windows ¿Por qué el registro de Windows? El registro de Windows es bastante grande, lo que significa que hay muchos lugares en los que el malware puede insertarse para lograr la persistencia. Un buen ejemplo de este comportamiento es Poweliks.
Poweliks establece una entrada nula de uno de las API de Windows, ZwSetValueKey, lo que le permite crear una clave de registro con datos codificados. La API de Windows permite una entrada nula. Esta es una de las muchas maneras en que el malware puede utilizar el registro de Windows para esconderse, arranque automático, y mantener la persistencia en muchos sistemas.


Proceso de inyección

El Proceso de inyección es exactamente lo que suena. Se está inyectando algunos trozos de código en un proceso en ejecución. El malware aprovecha las técnicas de inyección de proceso para ocultar la ejecución de código y evitar ser detectados mediante la utilización de procedimientos conocidos como svchost.exe o explorer.exe. Al inyectar en los procesos buenos conocidos. Uno es el establecimiento de depuración. Cuando un proceso de depuración establece, gana acceso a muchas de las llamadas a la API de depuración, tales como la instalación en otros procesos e instruir a ese proceso para asignar memoria adicional.
Después del proceso se asigna más memoria, el proceso malicioso puede inyectar cualquier código que se desea en ese proceso.
Un ejemplo de malware que utiliza el Proceso de inyección es Poison Ivy. El proceso de inyección de Poison Ivy es muy conocido, pero también como se utiliza en muchas campañas, y lo hace de forma ligeramente diferente a la norma. Cuando el malware asigna un trozo de memoria, normalmente la cantidad de memoria es "contiguo", por lo que al final de un bloque de memoria, se asignará otro bloque de memoria e inyectar código allí. Poison Ivy hace lo que llamamos "sharding." Así que en lugar de tener un bloque de memoria gigante, que tiene un montón de pequeños bloques de memoria divide todo el proceso y, a veces en varios procesos. Esto hace que el análisis de Poison Ivy sea más dificl y revertir la ingeniería es mas complicado y más largo. Los creadores de malware prestan atención a las técnicas que utilizan los investigadores de seguridad y están tratando de reducir la velocidad.


Proceso Hollowing

Otra técnica relacionada con el proceso de inyección es Proceso Hollowing. "Vaciamiento" de un proceso es cuando se toma un buen proceso conocido y lo inicia en un estado suspendido. Cuando se carga el código e ir a ejecutar, de modo que hay un espacio disponible donde los malos pueden colocar cualquier código que les gusta su interior y tal vez cambiar algunas cabeceras de la parte superior e inferior para hacer que todo parezca bien y luego reiniciar el proceso. Así que, que este proceso se ve como un proceso normal del sistema iniciado por Windows. Por lo tanto, es más difícil para los ingenieros detectar y realizar el análisis forense de memoria.
Dridex es un muy buen ejemplo de una familia de malware que utiliza a menudo el proceso Hollowing.

Desvinculación lista de procesos

Desvinculación lista de procesos es otro concepto clave. Un proceso es algo que se está ejecutando en el equipo, ya sea en el espacio de usuario o el espacio del núcleo. Lista Desvinculación proceso consiste en una lista doblemente enlazada que contiene todos los procesos "activos". Es importante porque la desvinculación resultará en el proceso que se oculta a todas las herramientas de "activos". Esto se puede hacer usando ZwSystemDebugControl() o por mapeo \Device\PhysicalMemory. Dentro de la lista de procesos es una lista en que cada proceso que se está ejecutando dentro del objeto de proceso es un delantero y un revés en el proceso frente a ella o el proceso detrás de lo que una lista de doble enlace.

Desvinculación Lista DLL

El malware también puede ocultar en la lista de DLL. Una lista de DLL es una biblioteca cargada dinámicamente, y el malware a menudo se disfraza como un archivo DLL. Al igual que un proceso, un DLL tiene una lista de doble vinculado que apunta a la DLL delante y detrás, y al igual que la lista de procesos son las API que pueden ser llamados para volver a escribir la lista de DLL, eliminar esa DLL y acabar con ese poco de memoria para ayudar a ocultar el malware de medicina forense de memoria o desde las herramientas de copia de seguridad. Esto se utiliza mucho en la actividad de rootkit.

Desvinculación Kernel lista de módulos

Los módulos del kernel son el siguiente nivel inferior. Un módulo del núcleo es cualquiera de los módulos que se cargan en el núcleo. Al igual que la lista de DLL y el proceso, los módulos del núcleo tienen su propia lista que se puede consultar con las API y volver cada módulo del kernel que se carga. También hay APIs de depuración que pueden eliminar un módulo de DLL de la lista y vaciarla. Esto es especialmente importante porque a nivel del kernel cuando algo se pone a cero que hace que sea mucho más difícil de encontrar este acceso es como el acceso anillo de cero, sin duda asociado con la actividad de rootkit.
En general, una pieza de malware se ejecutará en el espacio de usuario y luego probar un nivel de kernel exploit kernel para obtener acceso administrativo y luego dejar caer el rootkit principal, que haría a continuación cero a sí misma dentro de la lista de procesos lista de módulos del kernel. En este punto, el malware está muy bien escondido y que será muy difícil de encontrar.

Fuente: http://www.clasesordenador.com/sistemas-ocultacion-malware/index.html

#163
Bueno de momento conozco estas técnicas:

1. cargar un driver con técnicas de rootkit para ocultar el proceso

usar hooks  Ejemplo:
hookear la API encargada de obtener la información del vizor de procesos

Pero no se si para estas cosas uno necesita permisos de administrador etc.

La ultima manera que no sé si sería posible sin ser administrador es:
inyectar en otro proceso, está es buena pero la mayoría de veces uno requiere de permisos de administrador para inyectar un proceso de sistema iniciado por el sistema y de esa manera siempre sea arrancado. Desventaja de la inyección que tienes que indicar si es de 64 o 32... no sé si habra algo para esto pero creo no sé.

Estas técnicas son antiguas y conocidas aunque yo nunca las he probado y no sé si habra otras. Mi pregunta es conocen algun tutorial para ponerlas en práctica¿? Y otra pregunta si conocen alguna técnica nueva gracias.
#164
Hola estuve probando con shellexecute pero no me sale la alerta. Alguien que sepa correctamente como se escribe con shellexecute para arrancar como administrador mi aplicacion? En otras palabras intente esto:
ShellExecute(hwnd, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);

Pero no me muestra el mensaje aún así
#165
Hola he estado documentandome para descubrir todas las maneras posibles de autoinicio y ya hay información al respecto en el foro:
http://foro.elhacker.net/analisis_y_diseno_de_malware/aporte_9_metodos_de_autoinicio_en_un_solo_script-t413898.0.html

Pero mi cuestión es todas estas formas son visibles en el administrador de tareas en inicio. Entonces siguen siendo visibles¿?
#166
Hola estoy intentando crear una regla con c++ en mi registro pero el problema es que que cuando lo hago me muestra el regedit ha dejado de funcionar. codigo:
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{

HKEY * key;
LPCTSTR ruta = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\");
long status = RegOpenKey(HKEY_LOCAL_MACHINE, ruta, key);
if (status != 0)
{
  cout << "No se puede abrir la clave" << endl;
}
else
{
  cout << "Nombre de la subclave: ";
  string subclave;
  getline(cin, subclave);
  cout << "Valor de la subclave: ";
  string valor;
  getline(cin, valor);
  LPCTSTR _subclave = TEXT(subclave.c_str());
  LPCTSTR _valor = TEXT(valor.c_str());
  long crear = RegSetValueEx(*key, _subclave, 0, REG_SZ, (LPBYTE)_valor, strlen(_valor)*sizeof(char));
  if (crear != 0)
  {
     cout << "Ha ocurrido un error al crear la subclave" << endl;
  }
  else
  {
    cout << "Subclave creada correctamente" << endl;
  }
}

RegCloseKey(*key);

system("PAUSE");
return 0;
}
#167
Hola ultimamente veo que en seguridad ya apenas se hacen ejemplos con .exe sino más bien con .dll ya que pasan mas desapercibidas. Aunque también existe maneras de inyectar un .exe a un proceso no necesariamente una .dll . Además que para arrancar un ejecutable existen muchas rutas y maneras mientras que dll todavía se está experimentando. Conclusión porque ultimamente es más invisible una .dll que un ejecutable ya que no necesariamente tiene que hacer ya que tanto ambos utilizan pueden pasar desapercibidos. Es más bien escuchar vuestra opinion o experiencia en este tema bastante importante en seguridad. gracias. :huh: :huh:
#168
Hola alguien conoce algun crypter que soporte .Net y funcione en runtime para ir poco a poco aprendiendo poco a poco hacer uno propio. Es simplemente alguno open-source o algún proyecto para .Net y que funcione en tiempo de ejecucion.
#169
Bueno como el contenido es muy largo y se me subía a medias. Os pongo el enlace y la guía. Es simplemente una aplicación que permite cargar una dll desde memoria o disco y en principio desde el programa principal que arranca la dll se llama a las funciones de la misma. En principio esta incompleto ya que podría incluirse mejoras al programa principal para pasar inadvertida en tiempo de ejecucion.
Fuente:
http://www.mpgh.net/forum/showthread.php?t=1101356
#170
Hola hay componentes de una dll que son detectados pero no se sí se podría cifrar una .dll ya que nunca lo he escuchado un salu2  :huh:
#171
Hola lo primero hice una mini clase para inyectar una dll a un proceso es la siguiente:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace DllInject
{
   public class HVInjector
   {
       [DllImport("kernel32.dll")]
       public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

       [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
       public static extern IntPtr GetModuleHandle(string lpModuleName);

       [DllImport("kernel32", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
       static extern IntPtr GetProcAddress(IntPtr hModule, string procName);

       [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
       static extern IntPtr VirtualAllocEx(IntPtr hProcess,
           IntPtr lpAddress,
           uint dwSize,
           uint flAllocationType,
           uint flProtect);

       [DllImport("kernel32.dll", SetLastError = true)]
       static extern bool WriteProcessMemory(IntPtr hProcess,
           IntPtr lpBaseAddress,
           byte[] lpBuffer,
           uint nSize,
           out UIntPtr lpNumberOfBytesWritten);

       [DllImport("kernel32.dll")]
       static extern IntPtr CreateRemoteThread(IntPtr hProcess,
           IntPtr lpThreadAttributes,
           uint dwStackSize,
           IntPtr lpStartAddress,
           IntPtr lpParameter,
           uint dwCreationFlags,
           IntPtr lpThreadId);

       // privileges
       const int PROCESS_CREATE_THREAD = 0x0002;
       const int PROCESS_QUERY_INFORMATION = 0x0400;
       const int PROCESS_VM_OPERATION = 0x0008;
       const int PROCESS_VM_WRITE = 0x0020;
       const int PROCESS_VM_READ = 0x0010;

       // used for memory allocation
       const uint MEM_COMMIT = 0x00001000;
       const uint MEM_RESERVE = 0x00002000;
       const uint PAGE_READWRITE = 4;

       public static int inject(string dllPath, Process tProcess)
       {
           Process targetProcess = tProcess;
           string dllName = dllPath;

           // the target process
           // geting the handle of the process - with required privileges
           IntPtr procHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, targetProcess.Id);
           // searching for the address of LoadLibraryA and storing it in a pointer
           IntPtr loadLibraryAddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
           // name of the dll we want to inject
           // alocating some memory on the target process - enough to store the name of the dll
           // and storing its address in a pointer
           IntPtr allocMemAddress = VirtualAllocEx(procHandle, IntPtr.Zero, (uint)((dllName.Length + 1) * Marshal.SizeOf(typeof(char))), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
           // writing the name of the dll there
           UIntPtr bytesWritten;
           WriteProcessMemory(procHandle, allocMemAddress, Encoding.Default.GetBytes(dllName), (uint)((dllName.Length + 1) * Marshal.SizeOf(typeof(char))), out bytesWritten);
           // creating a thread that will call LoadLibraryA with allocMemAddress as argument
           CreateRemoteThread(procHandle, IntPtr.Zero, 0, loadLibraryAddr, allocMemAddress, 0, IntPtr.Zero);
           return 0;
       }
   }
}

La inyección me la hace bien pero ahora quiero llamar de alguna manera la función de mi dll supongo que tendre que usar getprocessaddress. Y para sacarlas en modo ASM necesito usar dependency walker pero de momento no consigo cargar una librería de clases hecha en visual studio con dependency walker para ver las address. un salu2
#172
Hola estoy intentando usar mapvirtualkey traduciendo el texto a unicode para asi poder mostrar teclas en diferentes idiomas pero no consigo el lenguaje es c++ cualquier sugerencia o alguien que sepa al respecto me ayudaria bastante. :huh: :huh:
#173
Hola necesito buscar un mecanismo a parte para transferir archivos y que valdrá también para mi escritorio remoto y camara web. Por el momento solo se me ocurre usar FTP y http para el servidor porque de no ser a si el firewall alerta cosa no me gusta  :rolleyes:
#174
Hola estoy modificando un pequeño troyano funciona pero cuando se conecta a veces el firewall saca la alerta. Hay alguna forma de evitar que el firewall cuando el servidor se conecta por primera vez no muestre esta alerta?. :huh: :huh: :huh:
#175
Hola estoy buscando ejemplos de joiner en c++ quiero hacer uno. Es posible juntar un .exe con una foto? y que esa foto se muestre? y que sea un .jpg un saludo y gracias...
#176
Hola he probado varios open source Demonio adsocks creo que son los mas antiguos y al mismo tiempo los unicos que hay por el momento. Bueno de privados ya no entro Pero cual es el mejor hecho en c++ conocido? un salu2 :laugh:
#177
Hola estoy probando la aplicacion demonio hecho en qt y queria agregarle la libreria xmpp pero no se muy bien como si alguien lo ha hecho antes o sabe como me resultaria muy util. Thx people >:D Estoy usando el ide qtcreator con mingw solo es la libreria que no se como agregarla
#178
Hola estoy haciendo un troyano en python mejor dicho perfeccionandolo. Ahora quiero crear una NAT para que mi cliente desde internet se conecte. Necesito una breve y concisa explicacion de como hacerlo en mi router. Se que hay gente lista que ha hecho un backdoor en python para poder abrir los puertos y sin necesidad de hacerlo manual. Pero bueno eso es otro tema. Por favor si alguien me puede indicar como estaria muy agradecido gracias >:D
#179
Hola me podrian aconsejar cuales son los mejores adaptadores para navegar, buen alcance y coger una buena señal es decir una señal muy nitida para que no haya caidas o el internet no cargue. Si tienen alguna otra recomendación que no tenga nada que ver con adaptadores usb tambien me podría interesar. Bueno gracias con antelación. :huh: :huh: :huh: :huh:
#180
GNU/Linux / grub rescue
23 Octubre 2012, 15:29 PM
error: no such partition.
grub rescue>
(hd0)(hd0,msdos1)(hd1)(hd1,msdos1)(hd2)(hd2,msdos1)(fd0)(fd0,msdos1)(fd1)(fd1,msdos1)
--------------------------------------------------------

mi problema es el siguiente: Al borrar la particion de ubuntu y expandir mi window 7 me desaparecio el arranque de linux. He probado a arrancar desde el usb de windows y ubuntu pero no me ha dado resultado, sigue apareciendome el grub rescue. ?Hay alguna solucion para esto o se me jodio el ordenador para siempre?

Datos:
Tengo window 7
el modelo es un hp pavilion dv9500

$i me ayudan estare muy agradecido.$$$ :-(