The open port is not visible with my script


#1

how to query the value of a variable before passing it to the function? because something is not working in my code (not create the port).
(Cómo consulto el valor de una variable antes de pasarla a la función, porque, por alguna razon que no alcanzo a descrubrir, no crea el puerto abierto. Imagino que puedo estar parseando mal el valor, también existe la posibilidad que haya olvidado algo)
class hping3 (core.PluginBase):

def __init__(self):
    core.PluginBase.__init__(self)
    self.id = "hping3"
    self.name = "hping3"
    self.plugin_version = "0.0.1"
    self.version = "1.0.0"
    self._command_regex = re.compile(
        r'^(sudo hping3|hping3)\s+.*$')
    
def parseOutputString(self, output, debug=False):
    reg = re.search(r"(\b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b)", output)
    ip_address=reg.group(1)
    hostname=output.split(" ")[1]
    host_id=self.createAndAddHost(hostname)

    if self._isIPV4(ip_address):
        
            i_id=self.createAndAddInterface(host_id, ip_address, ipv4_address=ip_address, hostname_resolution=hostname)
    
    else:
            i_id=self.createAndAddInterface(
                host_id, ip_address, ipv6_addres=ip_address, hostname_resolution=hostname)
    
    lineas=output.split("\n")
    for linea in lineas:
        if (re.match("\d.+\.S\.",linea)):
            puerto=linea.split(" ")[0] 
            servicio=linea.split(" ")[1]
            s_id=self.createAndAddServiceToInterface(host_id, i_id,servicio,protocol="tcp",ports=int(puerto),status="open") 
               

def _isIPV4(self, ip):
    if len(ip.split(".")) == 4:
        return True
    else:
        return False


def processCommandString(self, username, current_path, command_string):
    """
    """
    return None

def createPlugin():
return hping3()


#2

Hola!
Siempre que tengas algun tipo de problema desarrollando plugins es buena idea levantar faraday con el parametro --debug, de esta manera:

./faraday.py --debug

De este modo, podras ver todos los traceback en caso de que alguna excepcion sea disparada.
Para poder ver el valor de tu variable simplemente hace un print de la misma, en la consola donde esta corriendo faraday cliente (faraday.py --debug) podras ver el valor.
Saludos!


#3

Hola.
Sí, mil gracias. Al parecer estoy usando mal match porque nunca entra al if.
Gracias otra vez.
Saludos.