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

#21
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! Para hacerlo podés recurrir a la clase Thread del módulo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Una recomendación: hacé un ataque por contraseña en vez de hacerlo por usuario. Con eso evitás que bloqueen el ataque. Creá una lista de contraseñas comunes y obtené una lista de usuarios de la aplicación web a analizar (podrías hacer una app para eso tmb). Con las dos listas en mano, probá múltiples usuarios por contraseña. Sería algo así :

Código: python
passwords= [] 
users = []

for password in passwords:
    for user in users:
        try:
            # resto del código
        except Exception as e:
            # manejo de errores


Saludos!
WhiZ
#22
Hola @$francisco! El tema es que pyqtslot sirve para saber de antemano qué tipo de dato tiene que ser convertido de python a c++. La idea al utilizarlo es optimizar la velocidad de ejecución. Lo más probable es que, en caso de pasar un tipo de dato incorrecto, qt maneje apropiadamente ese error. Lo único que puede tener en contra es que podría afectar negativamente la velocidad de la conversión.

Saludos!
WhiZ
#23
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
PHP es un lenguaje de servidor, por tanto, no puedes ejecutarlo como lo estás ejecutando (de forma local)...

Exactamente. A eso me refería. Dije que no lo tenía instalado pero, en realidad, quise decir que no se estaba ejecutando como archivo php.

Seguro que eso resuelve todo.

Saludos!
WhiZ
#24
Off Topic / Re:Feliz Cumpleaños, Arthusu!!!
Octubre 14, 2015, 02:15:12 PM
Feliz cumple @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! espero que tengas un excelente día!

Saludos!
WhiZ
#25
Tenés php instalado? Me suena que viene por ese lado.

Saludos!
WhiZ
#26
Creo que No tienes permitido ver los links. Registrarse o Entrar a mi cuenta te va a servir  ;)

Saludos!
WhiZ

P.D.: fijate que, en tu código, estás utilizando input para recibir un valor alfanumérico. Cambialo por raw_input.
#27
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! Te recomiendo crear y editar el fichero desde python. No sólo es más fácil sino que, además, es multipltaforma. Aquí va un ejemplo:

Código: python
nombre_archivo = raw_input("Ingresa el nombre del fichero")
escribir = True
with open(nombre_archivo, "w") as f:
    print " Ingrese el contenido (presione CTRL + C para finalizar)."
    while escribir:    # True
        try:
            contenido = raw_input(">>> ") + "\n"
            f.write(contenido)
        except KeyboardInterrupt:
            escribir = False    # break


En este caso, lo que hacemos es crear un archivo con el nombre ingresado por el usuario y, a continuación, crear un bucle que solicite el contenido del mismo. El usuario podrá escribir todas las líneas que quiera. Para detener la edición del archivo, sólo hay que presionar CTRL + C.

Espero que te sirva!

Saludos!
WhiZ
#28
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! Simplemente podés bootear linux desde usb y reemplazar, luego de hacer una copia, claro está, el archivo utilman.exe por cmd.exe.

Una vez hecho esto, iniciás windows nuevamente y, en la pantalla de login, presionás el botón correspondiente a opciones de accesibilidad. Con esto conseguirás acceder al command prompt de windows como administrador. Por último, cambiás la contraseña del usuario que quieras con el comando "net user" y listo.

Saludos!
WhiZ
#29
Como siempre, excelente trabajo Roda! Ya da envidia ver tanto verde :P

Gracias por compartir!

Saludos!
WhiZ
#30
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Entonces como solyciono el error me bajo eso y lo añado a la carpeta de mitmf.

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta: ya te dimos todo lo que necesitás. Si mirás bien el issue que compartí, lo único que tenés que hacer es instalar la No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Es cierto que, en ocasiones, resolver un problema nos puede resultar difícil, por lo que me parece perfecto que vengas al foro a perdir ayuda. Sin embargo, ni siquiera fuiste capaz de molestarte en leer los 5 comentarios del link que te pasé. Más aún, osás faltar el respeto a @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta reprochándole por no encontrar "la solución o el post" que te pueda ayudar.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Y donde esta la solución o el post que me pueda ayudar.

Como dije, instalá la ultima versión de impacket y, por favor, considerá disculparte con zupa y mejorar tu comportamiento para la próxima.

Saludos!
WhiZ
#31
Dudas y pedidos generales / Re:Fallo con gpg4win
Septiembre 24, 2015, 11:54:16 PM
Así es @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. El procedimiento es el mismo tanto para GNU/Linux como para Windows. Lo único que gpg4win tiene una sencilla UI que nos permite hacer las cosas más "fácilmente".

Si te sirve, te dejo estos tutoriales que encontré por ahí:
    - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
    - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
    - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Por último, te dejo este No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. No lo leí pero parece estar bien.

Saludos!
WhiZ
#32
Dudas y pedidos generales / Re:Fallo con gpg4win
Septiembre 24, 2015, 10:51:50 PM
Justo hace un par de días que escribí algo acerca de esto. Lo hice por cuestiones personales pero aprovecho esta oportunidad para compartirlo.




GENERAR CLAVES



    Comando: gpg --gen-key

    Una vez ejecutado deberemos completar una serie de pasos:

        1. Seleccionar tipo de clave:
            a. RSA y RSA (predeterminado)
            b. DSA y Elgamal
            c. DSA (sólo firmar)
            d. RSA (sólo firmar)

        2. Indicar el tamaño de la clave.
           
            Las claves RSA pueden tener 1024 a 4096 bits de longitud. Por supuesto,mientas más bits de longitud,
            mayor seguridad y lentitud. Por el contrario, menos bits significa mayor velocidad pero menor seguridad.

            Por defecto, las claves que crea gpg son de 2048 bits de longitud.

        3. Indicar fecha de expiración.
            a. 0    -> la clave no expira
            b. <n>  -> la clave expira en n días
            c. <n>w -> la clave expira en n semanas
            d. <n>m -> la clave expira en n meses
            e. <n>y -> la clave expira en n años

        4. Proporcionar los siguientes datos:
            - Nombre real
            - Email
            - Comentario

            El ID del usuario se crea a partir de estos datos.

        5. Proporcionar una contraseña.

        6. Para último, para crear la clave es necesario generar muchos bytes aleatorios. Para esto, se nos pide
           realizar ciertas actividades que aumenten la entropía del sistema: mover el mouse, escribir con el teclado,
           (des)comprimir archivos, reproducir varios videos de forma simultánea y demás.


        Ejemplo: para mi clave, completé cada uno de los pasos de la siguiente manera:

            - Tipo de clave: RSA y RSA

            - Tamaño de la clave: 2048

            - Fecha de expiración: 0 (no expira nunca)

            - Nombre: underc0der

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

            - Comment: comentario

            - Contraseña: underc0de




CONSULTAR CLAVES



    Comando: gpg -k

    Ejemplo: el resultado, para el ejemplo anterior, es el siguiente:
       
        pub   2048R/EE1AF4A3 2015-09-23
        uid                  underc0der (comentario) <[email protected]>
        sub   2048R/18957910 2015-09-23




EXPORTAR CLAVE PÚBLICA



    Comando: gpg --output [archivo con clave pública] --export [pub ID]

    Nota: Para saber el ID de la clave pública (pub ID) tenemos que ejecutar el comando anterior (gpg -k),
    buscar la clave que queremos exportar e identificar la línea que comienza con pub. El código que sigue
    a la barra (/) corresponde al ID de la clave pública.

    Ejemplo: si queremos exportar la clave pública del ejemplo anterior, el comando sería:
       
        gpg --output pkey.gpg --export EE1AF4A3




SUBIR CLAVE PÚBLICA A UN SERVIDOR DE CLAVES



    Comando: gpg --send-keys --keyserver [servidor de claves] [Pub ID]

    Ejemplo:
   
        gpg --send-keys --keyserver No tienes permitido ver los links. Registrarse o Entrar a mi cuenta EE1AF4A3

    Con este comando estoy enviando (--send-keys) la clave pública que venimos utilizando como ejemplo (EE1AF4A3) al servidor
    de claves (--keyserver) No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




IMPORTAR CLAVE DESDE UN ARCHIVO



    Comando: gpg --import [archivo con clave pública]

    Ejemplo:
       
        gpg --import pkey.gpg




IMPORTAR CLAVE DESDE UN SERVIDOR DE CLAVES



    Comando: gpg --keyserver [servidor de claves] --recv-keys [Pub ID]

    Ejemplo:

        gpg --keyserver No tienes permitido ver los links. Registrarse o Entrar a mi cuenta --recv-keys EE1AF4A3

    Con este comando estoy recibiendo (--recv-keys) la clave pública que venimos utilizando como ejemplo (EE1AF4A3) del servidor
    de claves (--keyserver) No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




CIFRANDO (CON CLAVE PÚBLICA)



    Comando: gpg --encrypt --recipient [Pub ID] [archivo a cifrar]

    Ejemplo:
       
        gpg --encrypt --recipient EE1AF4A3 topsecret.txt

    El resultado es un archivo cifrado llamado, en este caso, topsecret.txt.gpg




DESCIFRANDO (CON CLAVE PRIVADA)



    Comando: gpg --decrypt [archivo a descifrar]

    Ejemplo:
   
        gpg --decrypt topsecret.txt.gpg




GUÍA PASO A PASO



    Explicación general: En este ejemplo, tenemos dos usuarios: A y B. El objetivo es que el usuario B le pueda enviar archivos seguros a A. Para eso, el usuario A crea un par de claves (pública y privada) y le envía la clave pública al usuario B. El usuario B cifra sus archivos con la clave pública y se los envía a A. El usuario A recibe el archivo cifrado y lo descifra con su clave privada.


    Paso a paso:

    @ Usuario A

        1. El usuario A crea su clave:    gpg --gen-key

                - Tipo de clave: RSA y RSA
                - Tamaño de clave: 2048 bits
                - Fecha de expiración: 0 (no expira nunca)
                - Nombre: UsuarioA
                - Email: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
                - Comment:
                - Contraseña: asdf1234
   
        2. Luego, el usuario A consulta el ID de su clave pública:    gpg -k
   
                Output:
       
                    pub   2048R/6DFD6D54 2015-09-23
                    uid                  UsuarioA <[email protected]>
                    sub   2048R/81E0AA5C 2015-09-23

                Pub ID --> 6DFD6D54

        3. A continuación, envía su clave pública a un servidor de claves:    gpg --send-keys --keyserver No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 6DFD6D54

   
    @ Usuario B

        4. El usuario B descarga la clave pública del usuario A:    gpg --keyserver No tienes permitido ver los links. Registrarse o Entrar a mi cuenta --recv-keys 6DFD6D54

        5. Luego, cifra el archivo que quiere enviar al usuario A:    gpg --encrypt --recipient 6DFD6D54 topsecret.txt

        6. A continuación, envía el archivo cifrado (topsecret.txt.gpg) al usuario A


    @ Usuario A

        7. El usuario A descarga el archivo cifrado (topsecret.txt.gpg)

        8. Descifra el archivo con gpg:    gpg --decrypt topsecret.txt.gpg

        9. Por último, una vez descifrado el archivo, ya puede leer el contenido del mismo:    less topsecret.txt

Lo mismo, pero a la inversa, debe realizarse para que el usuario A le pueda enviar un archivo cifrado al usuario B. De esta forma,
si dos usuarios desean intercambiar archivos de forma segura, primero deben enviarse las claves públicas para cifrar con
ellas los archivos que deseen proteger. Una vez cifrado un archivo, se envía para que el otro usuario la descifre con su
clave privada.





Bien, esto es todo. Queda para otra oportunidad (aunque es muy fácil también) el tema de las firmas.

Espero que les sirva.

Saludos!
WhiZ
#33
Espero que No tienes permitido ver los links. Registrarse o Entrar a mi cuenta te sirva. Como dicen, es problema de versiones.

Saludos!
WhiZ
#34
El error ocurre en el archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, más concretamente en la función getmacbyip. En ella, el problema está en que la función inet_aton está recibiendo una IP ilegal (línea 5 de nuestro código). Como veremos más adelante, esto se debe a que el parámetro ip que recibe getmacbyip no es instancia de la clase Net, sino de str, es decir, inet_aton estaría recibiendo un rango de IPs y no un valor único, hecho que considera ilegal. Veamos el código para hacernos una mejor idea:

#l2.py
Código: python
def getmacbyip(ip, chainCC=0):
    """Return MAC address corresponding to a given IP address"""
    if isinstance(ip,Net):
        ip = iter(ip).next()
    tmp = map(ord, inet_aton(ip))
    if (tmp[0] & 0xf0) == 0xe0: # mcast @
        return "01:00:5e:%.2x:%.2x:%.2x" % (tmp[1]&0x7f,tmp[2],tmp[3])
    iff,a,gw = conf.route.route(ip)
    if ( (iff == "lo") or (ip == conf.route.get_if_bcast(iff)) ):
        return "ff:ff:ff:ff:ff:ff"
    if gw != "0.0.0.0":
        ip = gw

    mac = conf.netcache.arp_cache.get(ip)
    if mac:
        return mac

    res = srp1(Ether(dst=ETHER_BROADCAST)/ARP(op="who-has", pdst=ip),
               type=ETH_P_ARP,
               iface = iff,
               timeout=2,
               verbose=0,
               chainCC=chainCC,
               nofilter=1)
    if res is not None:
        mac = res.payload.hwsrc
        conf.netcache.arp_cache[ip] = mac
        return mac
    return None


Teniendo un mejor conocimiento de esta función, la pregunta que nos tenemos que hacer ahora es: ¿quién es el responsable de pasar una IP ilegal? Según el traceback, la culpa la tiene el método build_arp_req de la clase Spoof:

#Spoof.py
Código: python
class Spoof(Plugin):
    def build_arp_rep(self):
        if self.target is None:
            pkt = Ether(src=self.mac, dst='ff:ff:ff:ff:ff:ff')/ARP(hwsrc=self.mac, psrc=self.gateway, op=2)
        elif self.target:
            target_mac = getmacbyip(self.target)
            if target_mac is None:
                sys.exit("[-] Error: Could not resolve targets MAC address")

            pkt = Ether(src=self.mac, dst=target_mac)/ARP(hwsrc=self.mac, psrc=self.gateway, hwdst=target_mac, pdst=self.target, op=2)

        return pkt


Aquí se ve claramente el problema: en la línea 6 de nuestro código, la función getmacbyip está recibiendo el valor del atributo target, el cual parece no estar preprocesado, es decir, el método build_arp_rep estaría pasando en crudo el valor del atributo target, sin importar de qué tipo de dato se trate. A este método le da lo mismo que target sea una instancia de la clase Net o una cadena alfanumérica con un rango de IPs.

Con esto, entendemos que no es su función constatar que el atributo target contenga un valor legal para pasarle al método getmacbyip. ¿A quién le toca, entonces, ocuparse de esta tarea? Vamos a ver... Según el traceback, quien llama al método build_arp_req es el método initialize de la misma clase (Spoof). Miremos su código:

Código: python
class Spoof(Plugin):
    def initialize(self, options):
        self.interface = options.interface
        self.arp = options.arp
        self.gateway = options.gateway
        self.target = options.target
        self.arpmode = options.arpmode

        if self.arp:
            if not self.gateway:
                sys.exit("[-] --arp argument requires --gateway")

            self.routermac = getmacbyip(self.gateway)
           
            print "[*] ARP Spoofing enabled"
            if self.arpmode == 'req':
                pkt = self.build_arp_req()
            elif self.arpmode == 'rep':
                pkt = self.build_arp_rep()
           
            thread_target = self.send_packets
            thread_args = (pkt, self.interface, self.debug,)


Evidentemente, el valor del atributo target es, al momento de ser empleado por el método build_arp_req, exactamente idéntico al de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.  Esto significa que en la versión que estás usando de mitmf, la clase Spoof no hace ningún tratamiento de la opción target, pasándole en crudo el valor de la misma a la función getmacbyip, lo que hace imposible indicar un rango de IPs: sólo podés indicar una o ninguna. Esas son las dos opciones que tenemos en esta versión.

De hecho, si comparamos la versión que vos usás con la versión más nueva, vemos que dentro del método add_options (heredado de la clase Plugin), ahora llamado options, la opción target pasó a llamarse targets.

#Spoof.py (versión anterior)
Código: python
class Spoof(Plugin):
    def add_options(self, options):
        group = options.add_mutually_exclusive_group(required=False)
        group.add_argument('--arp', dest='arp', action='store_true', default=False, help='Redirect traffic using ARP spoofing')
        group.add_argument('--icmp', dest='icmp', action='store_true', default=False, help='Redirect traffic using ICMP redirects')
        group.add_argument('--dhcp', dest='dhcp', action='store_true', default=False, help='Redirect traffic using DHCP offers')
        options.add_argument('--dns', dest='dns', action='store_true', default=False, help='Modify intercepted DNS queries')
        options.add_argument('--shellshock', type=str, metavar='PAYLOAD', dest='shellshock', default=None, help='Trigger the Shellshock vuln when spoofing DHCP, and execute specified command')
        options.add_argument('--gateway', dest='gateway', help='Specify the gateway IP')
        options.add_argument('--target', dest='target', help='Specify a host to poison [default: subnet]')
        options.add_argument('--arpmode', dest='arpmode', default='req', help=' ARP Spoofing mode: requests (req) or replies (rep) [default: req]')
        options.add_argument('--manual-iptables', dest='manualiptables', action='store_true', default=False, help='Do not setup iptables or flush them automatically')
        #options.add_argument('--summary', action='store_true', dest='summary', default=False, help='Show packet summary and ask for confirmation before poisoning')


#Spoof.py (versión actual)
Código: python
class Spoof(object):
    def options(self, options):
        group = options.add_mutually_exclusive_group(required=False)
        group.add_argument('--arp', dest='arp', action='store_true', help='Redirect traffic using ARP spoofing')
        group.add_argument('--icmp', dest='icmp', action='store_true', help='Redirect traffic using ICMP redirects')
        group.add_argument('--dhcp', dest='dhcp', action='store_true', help='Redirect traffic using DHCP offers')
        options.add_argument('--dns', dest='dns', action='store_true', help='Proxy/Modify DNS queries')
        options.add_argument('--netmask', dest='netmask', type=str, default='255.255.255.0', help='The netmask of the network')
        options.add_argument('--shellshock', type=str, metavar='PAYLOAD', dest='shellshock', help='Trigger the Shellshock vuln when spoofing DHCP, and execute specified command')
        options.add_argument('--gateway', dest='gateway', help='Specify the gateway IP')
        options.add_argument('--gatewaymac', dest='gatewaymac', help='Specify the gateway MAC [will auto resolve if ommited]')
        options.add_argument('--targets', dest='targets', help='Specify host/s to poison [if ommited will default to subnet]')
        options.add_argument('--ignore', dest='ignore', help='Specify host/s not to poison')
        options.add_argument('--arpmode',type=str, dest='arpmode', default='rep', choices=["rep", "req"], help=' ARP Spoofing mode: replies (rep) or requests (req) [default: rep]')


Por último, en la última versión, dentro de la clase ARPpoisener (ARP.py), podemos ver cómo el método poison realiza un correcto tratamiento del rango de IPs:

#ARP.py
Código: python
class ARPpoisener:
    def start(self):

        #create a L3 and L2 socket, to be used later to send ARP packets
        #this doubles performance since send() and sendp() open and close a socket on each packet
        self.s  = conf.L3socket(iface=self.interface)
        self.s2 = conf.L2socket(iface=self.interface)

        if self.arpmode == 'rep':
            t = threading.Thread(name='ARPpoisoner-rep', target=self.poison, args=('is-at',))

        elif self.arpmode == 'req':
            t = threading.Thread(name='ARPpoisoner-req', target=self.poison, args=('who-has',))

        t.setDaemon(True)
        t.start()

        if self.targets is None:
            log.debug('Starting ARPWatch')
            t = threading.Thread(name='ARPWatch', target=self.start_arp_watch)
            t.setDaemon(True)
            t.start()

    def poison(self, arpmode):
        sleep(2)
        while self.send:

            if self.targets is None:
                self.s2.send(Ether(src=self.mymac, dst='ff:ff:ff:ff:ff:ff')/ARP(hwsrc=self.mymac, psrc=self.gatewayip, op=arpmode))

            elif self.targets:
                for target in self.targets:
                    targetip  = str(target)

                    if (targetip != self.myip) and (target not in self.ignore):
                        targetmac = self.resolve_target_mac(targetip)

                        if targetmac is not None:
                            try:
                                #log.debug("Poisoning {} <-> {}".format(targetip, self.gatewayip))
                                self.s2.send(Ether(src=self.mymac, dst=targetmac)/ARP(pdst=targetip, psrc=self.gatewayip, hwdst=targetmac, op=arpmode))
                                self.s2.send(Ether(src=targetmac, dst=self.gatewaymac)/ARP(pdst=self.gatewayip, psrc=targetip, hwdst=self.gatewaymac, op=arpmode))
                            except Exception as e:
                                if "Interrupted system call" not in e:
                                   log.error("Exception occurred while poisoning {}: {}".format(targetip, e))

            sleep(self.interval)


Conclusión, si querés indicar un rango de IPs, no te queda otra más que actualizar a la última versión de mitmf.

Espero haberte ayudado. Cualquier cosa, no dudes en preguntar.

Saludos!
WhiZ
#35
El problema es claro: la función inet_aton del módulo socket está recibiendo una IP ilegal. Por lo visto, recibe de forma directa el valor del parámetro target. Para resolverlo, simplemente tenés que mirar los archivos No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, y ver porqué no se está obteniendo el rango de IPs como corresponde.

Por si no me expliqué bien, el problema está en que el método inet_atom (empleado en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de scapy) está recibiendo una IP ilegal (por lo visto, recibe directamente el rango de IPs). El siguiente código genera el mismo error:

Código: python
import socket

ip = raw_input(" [*] Target: ")

try:
    socket.inet_aton(ip)
except socket.error as e:
    print e


Si ponés una IP inválida (por ejemplo, 192.168.0.0/24 o 192.168.0.0-255), python arrojará un error. En tu caso, tal como vemos en el traceback, el error surge en el archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de scapy pero, en realidad, el problema está los archivos de mitmf (mitmf.py o No tienes permitido ver los links. Registrarse o Entrar a mi cuenta). Tenés que revisarlos y ver porqué scapy está recibiendo IPs ilegales.

Mirá bien eso y nos comentás.

Saludos!
WhiZ
#36
Me alegra oír eso. Estoy seguro que muchos aprenderán de tu experiencia.

Doy el tema por solucionado.

Saludos!
WhiZ
#37
Si el server conecta al dns y el cliente recibe la conexión, entonces listo. Está funcionando. Para que entiendas mejor porqué digo esto, te hago un resumen de todo.

El proceso, a grandes rasgos, es el siguiente:
    1. El server, independientemente de dónde se encuentre (dentro o fuera de tu red local), se conecta al dns.
    2. El dns redirecciona el tráfico a tu router.
    3. El router redirecciona el tráfico a la pc con el cliente.
    4. El cliente recibe la conexión.

Como ves, si el server esta configurado para conectar al dns, siempre se van a cumplir los 4 pasos antes descriptos. La conexión siempre sale de tu red local, a pesar de que ambos, el server y el cliente, estén dentro de la misma red local (o incluso de la misma pc).

En todo caso, si querés estar más tranquilo, siempre podés hacer pruebas con algún amigo.

Saludos!
WhiZ
#38
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Disculpame pero no estoy entendiendo tu situación. Respondeme las siguientes preguntas:
    - ¿el rat ya te infecta en los tres escenarios, tanto con ip como con dns?
    - si hay algo que no está funcionando, ¿qué es y en qué escenario?

Saludos!
WhiZ
#39
No te preocupes. Hacé lo siguiente (podés hacer todo en la misma pc) y decime qué sucede:
    1. configurá el server para que conecte al dns
    2. activá el duc (ya está hecho)
    3. poné el rat a escuchar en el puerto correspondiente
    4. Ejecutá el server

Si el duc está bien configurado, la conexión va a ser exitosa. De lo contrario, tendrás que reconfigurar el duc.

Saludos!
WhiZ
#40
Si es así como decís (que funcionan los tres escenarios), entonces el problema es el dns. Lo más probable es que no esté redireccionando a una ip incorrecta. Para verificarlo, en el caso de no-ip, instalá su app llamada duc (dynamic update client). Lo que hace esta aplicación es asociar tu ip pública actual al dns que estés usando.

Si el dns apunta a la ip correcta, en teoría no tendría porqué fallar. Pero probá con esto y vemos.

Saludos!
WhiZ