-
大小: 1.12MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-11-18
- 語言: Python
- 標(biāo)簽:
資源簡介
Scantron是一個分布式nmap掃描儀,由兩個組件組成。 第一個是主節(jié)點,由用于調(diào)度掃描和存儲nmap掃描目標(biāo)和結(jié)果的Web前端組成。 第二個組件是從主服務(wù)器提取掃描作業(yè)并執(zhí)行實際nmap掃描的代理程序。

代碼片段和文件信息
#!/usr/bin/env?python
#?Standard?Python?libraries.
import?argparse
import?json
import?multiprocessing
import?os
import?queue
import?sys
import?threading
import?time
#?Third?party?Python?libraries.
#?Custom?Python?libraries.
import?modules.api
import?modules.logger
import?modules.nmap_scanner
class?Worker(threading.Thread):
????“““Worker?thread“““
????def?__init__(self):
????????“““Initialize?Worker?thread.“““
????????threading.Thread.__init__(self)
????def?run(self):
????????“““Start?Worker?thread.“““
????????while?True:
????????????#?Grab?scan_job_dict?off?the?queue.
????????????scan_job_dict?=?agent.queue.get()
????????????try:
????????????????#?Kick?off?scan.
????????????????nmap_process?=?multiprocessing.Process(target=modules.nmap_scanner.scan_site?args=(scan_job_dict))
????????????????nmap_process.start()
????????????except?Exception?as?e:
????????????????modules.logger.ROOT_LOGGER.error(“Failed?to?start?scan.?Exception:?{}“.format(e))
????????????agent.queue.task_done()
class?Agent:
????“““Main?Agent?class“““
????def?__init__(self?config_file):
????????“““Initialize?Agent?class“““
????????self.config_file?=?config_file
????????#?Load?configuration?file.
????????self.config_data?=?self.load_config(self.config_file)
????????#?Create?queue.
????????self.queue?=?queue.Queue()
????def?load_config(self?config_file):
????????“““Load?the?agent_config.json?file?and?return?a?JSON?object.“““
????????if?os.path.isfile(config_file):
????????????with?open(config_file)?as?fh:
????????????????json_data?=?json.loads(fh.read())
????????????????return?json_data
????????else:
????????????modules.logger.ROOT_LOGGER.error(“{}?does?not?exist?or?contains?no?data.“.format(config_file))
????????????sys.exit(0)
????def?go(self):
????????“““Start?the?scan?agent.“““
????????#?Assign?log?level.??See?README.md?for?more?information.
????????modules.logger.ROOT_LOGGER.setLevel((6?-?self.config_data[“l(fā)og_verbosity“])?*?10)
????????#?Kickoff?the?threadpool.
????????for?i?in?range(self.config_data[“number_of_threads“]):
????????????thread?=?Worker()
????????????thread.daemon?=?True
????????????thread.start()
????????modules.logger.ROOT_LOGGER.info(
????????????“Starting?scan?agent:?{}“.format(self.config_data[“scan_agent“])?exc_info=False
????????)
????????while?True:
????????????try:
????????????????#?Retrieve?any?new?scan?jobs?from?master?through?API.
????????????????scan_jobs?=?modules.api.check_for_scan_jobs(self.config_data)
????????????????if?scan_jobs:
????????????????????for?scan_job?in?scan_jobs:
????????????????????????modules.logger.ROOT_LOGGER.info(“Executing?scan?job?ID:?{}“.format(scan_job[“id“]))
????????????????????????#?Create?new?dictionary?that?will?contain?scan_job?and?config_data?information.
????????????????????????scan_job_dict?=?{}
????????????????????????scan_job_dict[“scan_job“]?=?scan_job
????????????????????????scan_job_dict[“config_data“]?=?self.config_data
????????????????????????#?Verify?files?exist?by?trying?t
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-20?11:42??scantron-master\
?????文件????????1348??2019-07-20?11:42??scantron-master\.gitignore
?????文件?????????561??2019-07-20?11:42??scantron-master\LICENSE
?????文件???????20750??2019-07-20?11:42??scantron-master\README.md
?????目錄???????????0??2019-07-20?11:42??scantron-master\agent\
?????文件????????5708??2019-07-20?11:42??scantron-master\agent\agent.py
?????文件?????????332??2019-07-20?11:42??scantron-master\agent\agent_config.json
?????目錄???????????0??2019-07-20?11:42??scantron-master\agent\logs\
?????文件??????????24??2019-07-20?11:42??scantron-master\agent\logs\README
?????目錄???????????0??2019-07-20?11:42??scantron-master\agent\modules\
?????文件???????????0??2019-07-20?11:42??scantron-master\agent\modules\__init__.py
?????文件????????3101??2019-07-20?11:42??scantron-master\agent\modules\api.py
?????文件?????????390??2019-07-20?11:42??scantron-master\agent\modules\logger.py
?????文件????????6175??2019-07-20?11:42??scantron-master\agent\modules\nmap_scanner.py
?????文件?????????206??2019-07-20?11:42??scantron-master\agent\modules\utils.py
?????文件?????????600??2019-07-20?11:42??scantron-master\agent\nfs_watcher.sh
?????目錄???????????0??2019-07-20?11:42??scantron-master\agent\nmap_results\
?????文件??????????48??2019-07-20?11:42??scantron-master\agent\nmap_results\README
?????文件?????????111??2019-07-20?11:42??scantron-master\agent\requirements.txt
?????文件?????????260??2019-07-20?11:42??scantron-master\agent\scantron-agent.service
?????目錄???????????0??2019-07-20?11:42??scantron-master\agent\target_files\
?????文件??????????48??2019-07-20?11:42??scantron-master\agent\target_files\README
?????目錄???????????0??2019-07-20?11:42??scantron-master\ansible-playbooks\
?????文件??????????53??2019-07-20?11:42??scantron-master\ansible-playbooks\agent.yml
?????文件?????????110??2019-07-20?11:42??scantron-master\ansible-playbooks\ansible.cfg
?????目錄???????????0??2019-07-20?11:42??scantron-master\ansible-playbooks\group_vars\
?????文件?????????990??2019-07-20?11:42??scantron-master\ansible-playbooks\group_vars\all
?????文件??????????49??2019-07-20?11:42??scantron-master\ansible-playbooks\hosts
?????文件??????????71??2019-07-20?11:42??scantron-master\ansible-playbooks\master.yml
?????目錄???????????0??2019-07-20?11:42??scantron-master\ansible-playbooks\roles\
?????目錄???????????0??2019-07-20?11:42??scantron-master\ansible-playbooks\roles\add_users\
............此處省略229個文件信息
評論
共有 條評論