mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-08-17 21:25:49 +02:00
73 lines
2.4 KiB
Python
73 lines
2.4 KiB
Python
from modules import skeleton
|
|
from lib.core import utils
|
|
from lib.mode import speed
|
|
from lib.sender import execute
|
|
from lib.sender import polling
|
|
from lib.sender import report
|
|
from lib.sender import summary
|
|
|
|
|
|
class Formatting(skeleton.Skeleton):
|
|
"""docstring for Formatting"""
|
|
|
|
def banner(self):
|
|
utils.print_banner("Start Formatting")
|
|
utils.make_directory(self.options['WORKSPACE'] + '/formatted')
|
|
|
|
# just disable slack for this module
|
|
def additional_routine(self):
|
|
pass
|
|
|
|
# clean up for massdns result
|
|
def clean_massdns(self, command):
|
|
utils.print_good('Cleaning for {0}:{1}'.format(
|
|
command.get('banner'), command.get('post_run')))
|
|
|
|
output = utils.just_read(command.get('output_path'), get_list=True)
|
|
if output:
|
|
only_A_record, resolved, ips = [], [], []
|
|
for line in output:
|
|
if '. A ' in line:
|
|
ip = line.split('. A ')[1].strip()
|
|
domain = line.split('. A ')[0]
|
|
only_A_record.append(domain)
|
|
ips.append(ip)
|
|
resolved.append(line.split('. A ')[0])
|
|
|
|
cleaned_output = utils.just_write(command.get(
|
|
'cleaned_output'), "\n".join(ips))
|
|
|
|
if cleaned_output:
|
|
utils.check_output(command.get('cleaned_output'))
|
|
|
|
self.join_ip(command)
|
|
|
|
def join_ip(self, command):
|
|
cleaned_output = utils.just_read(command.get('cleaned_output'), get_list=True)
|
|
raw_input = utils.just_read(
|
|
command.get('requirement'), get_list=True)
|
|
|
|
result = []
|
|
for line in raw_input:
|
|
if utils.valid_ip(line.strip()):
|
|
result.append(line)
|
|
if cleaned_output:
|
|
result = list(set(result + cleaned_output))
|
|
else:
|
|
result = list(set(result))
|
|
|
|
if result:
|
|
utils.just_write(command.get('cleaned_output'), "\n".join(result))
|
|
summaries = []
|
|
for item in result:
|
|
summary = f"domain|{item};;ip_address|{item}"
|
|
summaries.append(summary)
|
|
self.update_summaries(summaries)
|
|
|
|
def update_summaries(self, summaries):
|
|
content = "\n".join(summaries)
|
|
formatted = utils.replace_argument(
|
|
self.options, '$WORKSPACE/formatted/formatted-$OUTPUT.txt')
|
|
utils.just_write(formatted, content)
|
|
summary.push_with_file(self.options, formatted)
|