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ú

Mensajes - WHK

#21
GNU/Linux / Re: Postea tu escritorio Linux
Octubre 31, 2021, 03:08:29 PM
#22
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola, muy buenas noches a todos, les traigo un proyecto que acabo de finalizar, se trata de un módulo escrito puramente en c para Apache Server que permite interpretar plantillas para Jinja2.

Los que no sepan que es Jinja2, es un sistema de templates ampliamente utilizado en proyectos sobre Python como por ejemplo, Django y Flask. La gran ventaja es que ya no necesitas utilizar ningún framework o hacer deploy de ningún servicio de python para publicar tus plantillas, gracias a este módulo las plantillas se cargan y se interpretan en memoria a bajo nivel sin utilizar ningún proyecto en python.

El proyecto se encuentra en este lugar: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

El proyecto es una mezcla de módulo para apache junto a la utilización de la API para C de Python, por lo cual el performance podría llegar a ser mucho mejor que la de php. Una ves instalado puedes crear plantillas utilizando archivos con extensión .j2 y olvidarte de utilizar Wordpress u otros sistemas CMS de alto coste en hardware, por ejemplo, un sitio meramente informativo con un puñado de módulos de slides y editores pesados te puede costar mas de 2GB de memoria RAM y la alta disponibilidad disminuye considerablemente, por otro lado, crear un sitio WEB únicamente utilizando archivos HTML te dará problemas como por ejemplo la redundancia de código ya que tendrás que escribir la cabecera, el footer, los menús, en cada archivo y se pierde escalabilidad ya que hacer una pequeña modificación en el diseño podría significar tener que modificar muchos archivos, pero con el módulo de Jinja2 es el intermedio entre versatilidad y eficiencia ya que creas archivos estáticos y a la ves con comportamiento dinámico ya que puedes hacer includes o realizar una única plantilla para todos tus demás archivos escritos puramente en HTML.

Acá les dejo un repositorio de ejemplo de un sitio WEB que utiliza este módulo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Su uso es totalmente libre, se aceptan sugerencias, la documentación aun no está 100% finalizada, aun debo documentar los módulos de python disponibles desde Jinja2, formato de extensiones, rutas de layouts, etc, pero si tienen alguna duda me la pueden ir haciendo en este mismo post. El módulo es 100% estable, probado, testeado y puesto en producción en alguno de mis servidores, comenzaré a migrar algunos sitios que tengo a puro html dinámico con este módulo.

Saludos.
#23
Hola, reemplaza "$form.submit();" por "e.currentTarget.submit();" y nos cuentas.

Saludos.
#24
Hola, que tal esto? No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos.
#25
Python / Re:Herramienta UrlScanner
Agosto 25, 2020, 03:28:32 AM
Hola, veo que utilizas muchisimas peticiones, deberías utilizar multithreading para acortar los tiempos de ejecución.

Saludos.
#26
Python / Re:Geolocalizacion por IP
Agosto 25, 2020, 03:20:58 AM
Hola, estuve dandole un vistazo a tu módulo, deja darte algunos consejos:

Vi que tu proyecto requiere bs4, si quieres que tu proyecto lo instale de manera automática desde pip, debes crear un archivo llamado requirements.txt con el nombre del módulo y la versión, por ejemplo:

Código: php
beautifulsoup4==4.9.1 


Por otro lado, ten bastante cuidado, esa librería no es muy facil de instalar, a demás de contar con la instalación desde pip también debes contar con las librerías de headers para su compilación, en algunos sistemas da bastantes dolores de cabeza.

También me pude fijar que haces uso de la función "raw_input" pro esta no existe, a demás, intentaste utilizar el coloreado para bash, pero eso no funcionará en terminales de windows, recuerda que python funciona en múltiples sistemas operativos y el usuairo sólo verá caracteres extraños. Si un usuario cancela el script, no hay razón para decirle que lo ha cancelado.

Mejor te recomiendo utilizar expresión regular:

Código: python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests
import re


class Controller():

    def __init__(self):

        # Header
        print('-> Programado Por Parker')

        ip = input('IP o enter para saber su localización: ').strip()
       
        print('Realizando la solicitud ...')

        response = requests.get('https://es.geoipview.com/?q=%s&x=0&y=0' % format(ip))
        if(response.status_code == 200):

            items = {
                'host'      : r'del\s+Host:.+?class="host">(.*?)<',
                'ip'        : r'de\s+IP:.+?class="show2">(.*?)<',
                'country'   : r'País:.+?<td>(.*?)<',
                'region'    : r'Región:.+?<td>(.*?)<',
                'city'      : r'Ciudad:.+?class="show2">(.*?)<',
                'postal'    : r'Postal:.+?<td>(.*?)<',
                'latitude'  : r'Latitud:.+?<td>(.*?)<',
                'longitude' : r'Longitud:.+?<td>(.*?)<'
            }

            print('-' * 27)
            for item in items:
                matches = re.search(items[item], response.text, re.I | re.M)
                print(
                    '%s : %s' % (
                        item.title().ljust(9), # Key name
                        matches.group(1).replace('&nbsp;', ' ').strip() if matches else '-'
                    )
                )

        else:
            print('Error de respuesta (%s).' % str(response.status_code))


if __name__ == "__main__":
    try:
        Controller()

    except KeyboardInterrupt:
        pass

    except Exception as e:
        raise e


Código: php
$ python3 test.py
-> Programado Por Parker
IP o enter para saber su localización: 64.233.186.138
Realizando la solicitud ...
---------------------------
Host      :
Ip        : 64.233.186.138
Country   : USA / US
Region    : CA
City      :
Postal    :
Latitude  : 34.054401397705
Longitude : -118.2440032959


Saludos.
#27
Mira, lo reduje un poco y eliminé el bs4 porque realmente no lo necesita ya que la api utiliza texto plano y no html:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código: python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import banner, requests


class HackerTargetIntegration():

    def __init__(self):

        banner.banner()

        methods = [
            'mtr',
            'nping',
            'dnslookup',
            'reversedns',
            'hostsearch',
            'findshareddns',
            'zonetransfer',
            'whois',
            'geoip',
            'reverseiplookup',
            'nmap',
            'subnetcalc',
            'httpheaders',
            'pagelinks'
        ]

        while(True):

            id = 0
            for method in methods:
                print('%d -> %s' % (id, method))
                id += 1

            method = input('>> ').strip()
            if(method and (int(method) <= len(methods))):
                self.req(methods[int(method)])
            else:
                print('El método no existe. Intente nuevamente.')


    def req(self, method):

        target = input('IP/Dominio objetivo: ')
        response = requests.get('https://api.hackertarget.com/%s/?q=%s' % (method, target))
        print(('-' * 20) + '\n' + response.text + '\n' + ('-' * 20) + '\n')



if __name__ == '__main__':

    try:
        HackerTargetIntegration()
   
    except KeyboardInterrupt as e:
        pass

    except Exception as e:
        raise e


A demás te voy a comentar algo para que lo apliques en tus futuros proyectos. Si te fijas, tu hiciste una separación distinta a la mia, tu hiciste una clase donde cada función se encarga de una tarea distinta (repetitiva pero distinta), esto te permitía ser utilizado por otras clases, pero yo en mi caso eliminé esa arquitectura por un código mas simple tomando en cuenta de que solo el usuario interactua con esa clase y no otros módulos o scripts. Tu concepto y el mio son dos conceptos totalmente diferentes y eso se debe a la separación por capas.

En tu caso, si querías hacer una clase modular tenías que haber separado la lógica de la clase con el script que lo ejecuta, en otras palabras, tu clase que hace todo el trabajo se llama capa de servicio y tu script principal tu controlador. Como vi que tu script completo era un controlador entonces lo resumí como controlador y no como módulo.

Si quieres puedes volver a crear las funciones y que estas funciones llamen a una única función encargada de hacer las solicitudes y luego la guardas como módulo y desde tu script principal que es el controlador haces la solicitud del input y llamas a la función de la clase por cada método disponible, y este listado de métodos debes obtenerlo desde el mismo array de la clase de servicio. Esto quiere decir: Que tendrás que crear una función por cada método a demás de tener una lista de métodos permitidos, de esta manera el controlador sabrá cuales métodos existen y evitarás tener que usar refracción para obtener el listado de funciones (algo inseguro y de no muy buena práctica) o mantener la función req con el método de manera dinámca más el listado de métodos permitidos. En este caso tendrás que hacer una validación antes de llamar al sitio web para preveer que el método no sea algo que el servcio web no soporte, crear excepciones tipo MethodNotFoundException, etc.

Saludos.
#28
Hola, podrías reemplazar todas tus funciones de la clase con una sola más genérica, por ejemplo:

Código: php
def req(self, service):
        target = input("Target IP/Domain: ")
        r = requests.get("https://api.hackertarget.com/%s/?q=%s" % (service, target))
        soup = BeautifulSoup(r.text, 'lxml')
        funcion = soup.find_all('body')
        print(funcion[0].text)


Saludos.
#29
Talves te interese leer este post:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos.
#30
Hola, claro, para eso necesitas encontrar tu propio 0Day porque actualmente todas las vulnerabilidades de facebook están corregidas.

Saludos.
#31
Genial, he estado viendo el archivo de configuraciones, porque no intentas crear el directorio manualmente? probablemente no sea un problema de permisos sino mas bien que no puede crear el directorio pulse porque .config no existe, ya que recuerda que cambiaste el uid a 0 (root), por lo tanto ese usuario debe contar con configuraciones básicas de un usuario normal.

Intenta crearlo desde root o con sudo:

Código: php
# mkdir -p /root/.config/pulse/


Y prueba nuevamente.

Saludos.
#32
Dudas y pedidos generales / Re:ID de hardware
Agosto 07, 2020, 03:46:37 PM
Una pregunta, el juego que juegas a traves del pc es una aplicación de escritorio? es un emulador de android? es una pagina web? es un juego de facebook game room?, que es exactamemnte?, si es web entonces no tiene nada que ver el id de hardware.
#33
Dudas y pedidos generales / Re:ID DE HARDWARE
Agosto 02, 2020, 09:14:19 PM
Hola, no existe ningún método estándar para conocer el id de hardware de alguna pieza física del equipo de un usuario a traves de un servicio WEB  o la MAC Address (por lo menos no a traves de un navegador WEB), asi que nadie te puede banera por el id de hardware excepto cuando el cliente envía estos ids, pero un navegador web jamás lo hace por temas de confidencialidad y seguridad, por ejemplo, si pasa en aplicaciones móviles, juegos de escritorio, consolas, etc, pero jamás desde un navegador WEB.

Si te han baneado es porque probablemente te han bloqueado la ip o tu rango de ip o han puesto alguna cookie o almacenamiento temporal en el navegador para poder identificarte. Algunos servicios WEBs también bloquean el acceso desde servicios VPN o Proxies, asi que te tocará intentar acceder con otra dirección ip y en modo incógnito del mismo navegador.

Saludos.
#34
Ya, el problema no está en la aplicación sino en la configuración, recuerda que si vas a cambiar el uid a 0 debes ejecutarlo como root y las lineas que descomentaste talves tengan algún error de sintaxis. Puedes subir tu archivo de configuración a algún lugar y compartirlo para ver que anda mal?
#35
Kali está basado en ubuntu asi que realmente no utiliza shadow, usa shadow2. Dale un vistazo a este artículo, explica muy bien sobre como detectar el tipo de hashing: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Citar$1$ is MD5
    $2a$ is Blowfish
    $2y$ is Blowfish
    $5$ is SHA-256
    $6$ is SHA-512

En el caso de Kali debiera utilizar SHA-512. Lo puedes sacar con:

Código: php
$ sudo cat /etc/shadow- | grep usuario


Saludos.
#36
Como lo estás ejecutando? usaste sudo?, desde donde lo instalaste?, para intentar replicar el problema y ver exactamente que está sucediendo.
#37
Desde hace mucho tiempo que he visto gente utilizando kali y anteriormente la gente tendía a usar backtrack.

Creo que Kali es una distribucion corporativa destinada a vender los productos de offensivesecurity, por ejemplo, en sus certificaciones te exijen utilizar kali, pero ¿realmente es tan necesario o tan bueno como dicen?

Quiero contar mi breve experiencia personal al respecto. Yo probé Backtrack desde sus inicios, era una distribución de GNU/Linux basada en Ubuntu bastante novedosa ya que incluía muchas herramientas de seguridad de todo tipo, debemos recordar que distribuciones de seguridad existen muchas, como por ejemplo gnu radio, wifislacks, etc (muchas de ellas recomendadas desde el sitio web de fydor, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), pero esta distribución en particular ya tenía muchas de las herramientas más conocidas en el mundo del hacking. Con el tiempo apareció su reemplazo llamado Kali que al final es un backtrack con otro nombre y otro fondo de escritorio destinado más que nada a hacer crecer la imagen de offensivesecurity y hacerlo tan rentable económicamente como fuese posible.

Yo personalmente si he utilizado kali, pero no de manera constante, hay personas que incluso prefieren instalarlo en sus notebooks, pero kali no fue diseñado para ser instalado, de hecho la recomendación oficial es utilizarlo desde un medio extraible como sistema booteable para hacer hacking cuando lo necesites, kali no es un sistema estable con el que puedas trabajar o hacer tareas cotidianas, kali fue diseñado para situaciones muy específicas.

Ahora, Kali viene con cientos de herramientas de hacking, desde algunas para redes, otros para intercepción de tráfico, monitoreo, frameworks de explotación, reconocimiento, etc, pero ¿realmente usas o necesitas todas las herramientas?, la respuesta es clara y es un rotundo "no" y esto no quiere decir que kali sea una mala distribución, Kali fue diseñado para que cuando necesites hackear algo no te haga falta nada y tengas todo en un pendrive, pero esto también causa que Kali no sea un sistema escalable donde puedas tener tus herramientas personalizadas ya que al no ser un sistema diseñado para ser utilizado de manera instalado no podrás mantener en persistencia tus herramientas o archivos, necesitarás otros discos donde si puedas escribir.

¿Eres siempre root?, Kali, al no ser diseñado para uso cotidiano no hace uso de usuarios sin privilegios que puedan asegurar el sistema, la instalación por defecto te fuerza a utilizar siempre el usuario root, una pésima práctica para cualquier sistema basado en Linux, de hecho kali se deshace de casi todos los sistemas de seguridad gestionados por el kernel para que ninguna herramienta tenga problemas de privilegios, pero al mismo tiempo kali se transforma en una bomba de tiempo siendo un sistema muy vulnerable, ya que tenemos que entender que Kali debe ser utilizado unicamente para situaciones muy específicas.

Entonces, ¿conviene usar kali?, en mi experiencia personal "no". Hay dos opciones, o usas tu sistema preferido en tu notebook o equipo de escritorio y enchufas kali por el usb y lo arrancas solo para hacer hacking o usas otra distribución de GNU/Linux que te permita tener exactamente las mismas herramientas pero a traves de un sistema totalmente estable y diseñado para el trabajo diario y uso cotidiano. En mi opinion personal creo que es mas conveniente contar con un sistema fijo el cual ya contenga únicamente las herramientas que necesitas, ya que no existe ninguna distribución de Gnu/Linux que no puedas tener las mismas herramientas que kali.

Vamos, el que usa Kali no es un usuario básico, por lo general son personas que por lo menos saben utilizar apt-get o yum. En mi situación personal uso Ubuntu (pero no es lo que recomiendo), tanto en mi desktop como en mi notebook, siempre utilizo una versión estable LTS con soporte de largo plazo y a demás, cuento con mis herramientas de desarrollo de software y pentesting, asi que si, tengo instalado wireshark, docker, msf, nmap, mitmdump, etc. Llevo muchos años dedicandome al pentesting y jamás he necesitado backtrack o kali, por ejemplo, cuando te llevan a una empresa a hacer una revisión o llegas a una red corporativa que has hackeado necesitarás una buena cantidad de configuraciones de red para protocolos de autenticación corporativos, generalmente estos conectores no los trae Kali a pesar de que venga con gnome y esté basado en ubuntu, en kali tendrás que configurar todo manualmente, en cambio en ubuntu puedo dejar que el sistema se encargue de toda la configuración y si necesito hacer uso de una vpn la instalo para gonme3 y ya.

Ahora, ¿que recomiendo?. Lo que yo recomiendo para pentesting son Arch, Manjaro, Fedora o Ubuntu (a demás de todas las distribuciones estables como suse o freebsd). A mi me gusta la comodidad, un buen diseño y todo el poder de Linux, asi que prefiero Ubuntu, Fedora también es una muy buena opción, un poco más incómodo que ubuntu pero más estable y con mejores paquetes de conectividad, recordemos que un pentetsing no solo requiere de nmap o herramientas de hacking, también requerirá herramientas de clientes como conectores oracle, ibm websphere, clientes para Switches con puertos seriales, etc, sino como te vas a conectar a esos sistemas y Fedora es el rey en ese tipo de aplicaciones. Pero para usuarios mas avanzados pueden optar por Arch, es mucho mas complicado de usar que ubuntu o fedora pero es mucho más flexible al momento de hacer hacking y la documentación es mucho mejor, pero tocará hacer muchas cosas de manera manual, pero de todas maneras sigue siendo un sistema muy estable de uso cotidiano que te apoyará para todo, no solo para hacer pentesting. Manjaro es un Arch pero más bonito y fácil de usar xD.

En resumen, no necesitas un tanque para cruzar la calle y menos aun si es uno que arroja humo negro y está hecho de lata, mejor usa una buena bicicleta con una buena suspensión y llantas profesionales y te va a servir igual o más eficiente que el tanque.

¿Que opinan al respecto?, yo he usado Kali porque en algunos lugares me pedían utilizarlo pero realmente no creo que su uso sea necesario o bueno, por lo contrario, para mi, esa distribución hace que el usuario aprenda malas prácticas.

Ya haré otro post dedicado a burpsuite ya que tampoco lo uso (pero lo he usado y se como funciona) y lo encuentro una herramienta totalmente innecesaria que muchos lo tienen como herramienta primordial siendo engañados por una compañía que solo se dedica a vender sus softwares, cuando en la práctica hay muchas alternativas. Muchas veces he enseñado a otros a hacer pentesting full web y movil sin burpsuite utilizando mitmproxy o scripts en javascript o python directamente y los resultados son mucho mejores. Algo similar a utilizar sqlmap o hacer las inyecciones SQL a mano, pero ya haré otro post con eso.

Saludos.
#38
Pero tu dices que lo abres y se cierra, quiere decir que ya lo tienes instalado, ¿puedes ejecutarlo desde el terminal para saber cual es el error?

No se porque a la gente le gusta tanto usar kali siendo una distribución tan mala en todo sentido.
#39
Yo lo he probado desde ubuntu con apt install ettercap-graphical y funciona sin ningún problema.

Has tratado de iniciarlo desde la consola para ver que error arroja?
#40
Revisa la consola de errores del navegador, probablemente tu server no tiene habilitada las cabeceras CORS y ha denegado la carga desde el sitio inyectado.