示例#1
0
    def whois(self):
        utils.print_good('Starting Whois')
        cmd = 'whois $TARGET | tee $WORKSPACE/info/$TARGET-whois.txt'

        cmd = utils.replace_argument(self.options, cmd)
        output_path = utils.replace_argument(
            self.options, '$WORKSPACE/info/$OUTPUT-whois.txt')
        std_path = utils.replace_argument(
            self.options, '$WORKSPACE/info/std-$OUTPUT-whois.std')

        #log the command
        slack.slack_log(self.options,
                        mess={
                            'title':
                            "{0} | Whois | {1} | Execute".format(
                                self.options['TARGET'], self.module_name),
                            'content':
                            '```{0}```'.format(cmd),
                        })
        execute.send_cmd(cmd, output_path, std_path, self.module_name)

        # upload the output
        utils.just_waiting(self.module_name, seconds=2)
        slack.slack_file(self.options,
                         mess={
                             'title':
                             "{0} | Whois | {1} | Output".format(
                                 self.options['TARGET'], self.module_name),
                             'filename':
                             '{0}'.format(output_path),
                         })
示例#2
0
    def unique_result(self):
        utils.print_good('Unique result')

        # gobuster clean up
        go_raw = utils.replace_argument(
            self.options, '$WORKSPACE/subdomain/raw-$OUTPUT-gobuster.txt')
        if utils.not_empty_file(go_raw):
            go_clean = [x.split(' ')[1] for x in utils.just_read(go_raw).splitlines()]
            go_output = utils.replace_argument(
                self.options, '$WORKSPACE/subdomain/$OUTPUT-gobuster.txt')
            utils.just_write(go_output, "\n".join(go_clean))

        # massdns clean up
        massdns_raw = utils.replace_argument(
            self.options, '$WORKSPACE/subdomain/raw-massdns.txt')
        if utils.not_empty_file(massdns_raw):
            massdns_output = utils.replace_argument(
                self.options, '$WORKSPACE/subdomain/$OUTPUT-massdns.txt')
            if not os.path.exists(massdns_raw):
                with open(massdns_raw, 'r+') as d:
                    ds = d.read().splitlines()
                for line in ds:
                    newline = line.split(' ')[0][:-1]
                    with open(massdns_output, 'a+') as m:
                        m.write(newline + "\n")

                utils.check_output(utils.replace_argument(
                    self.options, '$WORKSPACE/subdomain/$OUTPUT-massdns.txt'))

        # joining the output
        all_output = glob.glob(utils.replace_argument(self.options,
            '$WORKSPACE/subdomain/$OUTPUT-*.txt'))
        domains = []
        for file in all_output:
            domains += utils.just_read(file).splitlines()

        output_path = utils.replace_argument(self.options, '$WORKSPACE/subdomain/full-$OUTPUT.txt')
        utils.just_write(output_path, "\n".join(set([x.strip() for x in domains])))

        # finding more subdomain
        permutation_domains = self.permutation()
        if permutation_domains:
            domains.extend(permutation_domains)
            output_path = utils.replace_argument(
                self.options, '$WORKSPACE/subdomain/full-$OUTPUT.txt')
            utils.just_write(output_path, "\n".join(
                set([x.strip() for x in domains])))
        else:
            output_path = utils.replace_argument(
                self.options, '$WORKSPACE/subdomain/final-$OUTPUT.txt')
            utils.just_write(output_path, "\n".join(
                set([x.strip() for x in domains])))

        time.sleep(1)
        slack.slack_file('report', self.options, mess={
            'title':  "{0} | {1} | Output".format(self.options['TARGET'], self.module_name),
            'filename': '{0}'.format(output_path),
        })
示例#3
0
    def unique_result(self):
        #just clean up some output

        #gobuster clean up
        cmd = 'cat $WORKSPACE/subdomain/raw-$OUTPUT-gobuster.txt | cut -d ' ' -f 2 > $WORKSPACE/subdomain/$OUTPUT-gobuster.txt'
        cmd = utils.replace_argument(self.options, cmd)
        output_path = utils.replace_argument(
            self.options, '$WORKSPACE/subdomain/$OUTPUT-gobuster.txt')
        execute.send_cmd(cmd, output_path, '', self.module_name)

        #massdns clean up
        massdns_raw = utils.replace_argument(
            self.options, '$WORKSPACE/subdomain/raw-massdns.txt')
        massdns_output = utils.replace_argument(
            self.options, '$WORKSPACE/subdomain/$OUTPUT-massdns.txt')
        if not os.path.exists(massdns_raw):
            with open(massdns_raw, 'r+') as d:
                ds = d.read().splitlines()
            for line in ds:
                newline = line.split(' ')[0][:-1]
                with open(massdns_output, 'a+') as m:
                    m.write(newline + "\n")

            utils.check_output(
                utils.replace_argument(
                    self.options, '$WORKSPACE/subdomain/$OUTPUT-massdns.txt'))

        utils.print_good('Unique result')
        cmd = "cat $WORKSPACE/subdomain/$OUTPUT-*.txt | sort | awk '{print tolower($0)}' | uniq >> $WORKSPACE/subdomain/final-$OUTPUT.txt"

        cmd = utils.replace_argument(self.options, cmd)
        output_path = utils.replace_argument(
            self.options, '$WORKSPACE/subdomain/final-$OUTPUT.txt')
        execute.send_cmd(cmd, output_path, '', self.module_name)

        slack.slack_file(self.options,
                         mess={
                             'title':
                             "{0} | {1} | Output".format(
                                 self.options['TARGET'], self.module_name),
                             'filename':
                             '{0}'.format(output_path),
                         })