Top Related Projects
Fast passive subdomain enumeration tool.
Find domains and subdomains related to a given domain
In-depth attack surface mapping and asset discovery
Fast subdomains enumeration tool for penetration testers
Generates permutations, alterations and mutations of subdomains and then resolves them
E-mails, subdomains and names Harvester - OSINT
Quick Overview
OneForAll is a powerful subdomain discovery tool designed for information gathering and penetration testing. It leverages various collection methods and numerous API interfaces to perform comprehensive subdomain enumeration, providing a versatile solution for security professionals and researchers.
Pros
- Comprehensive collection: Utilizes multiple sources and methods for thorough subdomain discovery
- Modular design: Allows for easy extension and customization of functionality
- Efficient performance: Implements concurrent processing for faster results
- Detailed output: Provides rich information about discovered subdomains
Cons
- Complex setup: Requires installation of multiple dependencies and API configurations
- Potential for false positives: May return some inaccurate results due to the wide range of sources used
- Resource-intensive: Can consume significant system resources during large-scale scans
- Limited to subdomain discovery: Focuses primarily on subdomain enumeration rather than broader vulnerability assessment
Code Examples
# Basic usage example
python3 oneforall.py --target example.com run
# Using specific modules for enumeration
python3 oneforall.py --target example.com --include-subdomains --alive --port 80,443 run
# Exporting results to a CSV file
python3 oneforall.py --target example.com --fmt csv --path /path/to/output.csv run
Getting Started
-
Clone the repository:
git clone https://github.com/shmilylty/OneForAll.git
-
Install dependencies:
cd OneForAll pip3 install -r requirements.txt
-
Configure API keys in the
config.py
file -
Run OneForAll:
python3 oneforall.py --target example.com run
For more detailed usage and configuration options, refer to the project's documentation on GitHub.
Competitor Comparisons
Fast passive subdomain enumeration tool.
Pros of Subfinder
- Faster execution due to Go implementation
- Better integration with other ProjectDiscovery tools
- More active development and frequent updates
Cons of Subfinder
- Limited to subdomain enumeration, while OneForAll offers more comprehensive functionality
- Fewer built-in data sources compared to OneForAll
- Less detailed output and reporting options
Code Comparison
OneForAll (Python):
def main():
banner()
parser = argparse.ArgumentParser(description='OneForAll is a powerful subdomain integration tool')
subparsers = parser.add_subparsers(dest='command', help='Commands')
# ... (additional code)
Subfinder (Go):
func main() {
options := &runner.Options{}
flagSet := goflags.NewFlagSet()
flagSet.SetDescription(`Subfinder is a subdomain discovery tool that discovers valid subdomains for websites`)
// ... (additional code)
Both tools use command-line argument parsing, but Subfinder's implementation in Go may offer performance advantages. OneForAll's Python code suggests a more extensive feature set, while Subfinder focuses on efficient subdomain discovery.
Find domains and subdomains related to a given domain
Pros of assetfinder
- Lightweight and fast, focusing solely on subdomain enumeration
- Easy to use with a simple command-line interface
- Can be easily integrated into other tools and scripts
Cons of assetfinder
- Limited functionality compared to OneForAll's comprehensive feature set
- Lacks advanced filtering and validation options
- Does not provide as many data sources for subdomain discovery
Code Comparison
assetfinder:
func main() {
domain := flag.String("domain", "", "The domain to find assets for")
flag.Parse()
for result := range assetfinder.Run(*domain) {
fmt.Println(result)
}
}
OneForAll:
def main():
parser = argparse.ArgumentParser(description='OneForAll is a powerful subdomain integration tool')
parser.add_argument('domain', help='Domain name')
args = parser.parse_args()
OneForAll(args.domain).run()
Database().export()
OneForAll offers a more comprehensive approach with built-in database export functionality, while assetfinder provides a simpler, focused implementation for quick subdomain enumeration. assetfinder is better suited for integration into larger toolchains, whereas OneForAll is more feature-rich for standalone use in subdomain discovery and enumeration tasks.
In-depth attack surface mapping and asset discovery
Pros of Amass
- More mature and actively maintained project with frequent updates
- Extensive feature set including DNS enumeration, web crawling, and data mining
- Strong community support and integration with other security tools
Cons of Amass
- Steeper learning curve due to complex configuration options
- Higher resource consumption, especially for large-scale scans
- Primarily focused on DNS enumeration, while OneForAll offers a broader range of subdomain discovery methods
Code Comparison
Amass (Go):
func (e *Enumeration) submitKnownNames() {
for _, name := range e.Config.ProvidedNames {
e.Bus.Publish(requests.NewNameTopic, &requests.DNSRequest{
Name: name,
Domain: e.Config.Domain,
Tag: requests.EXTERNAL,
Source: "User Input",
})
}
}
OneForAll (Python):
def run_modules(domain):
module_map = settings.module_dict
for module in module_map.keys():
module_func = settings.module_dict.get(module)
module_func.run(domain)
Both projects aim to discover subdomains, but Amass focuses more on DNS enumeration and uses Go, while OneForAll employs various techniques and is written in Python. Amass offers more advanced features and integrations, while OneForAll provides a simpler interface and broader discovery methods.
Fast subdomains enumeration tool for penetration testers
Pros of Sublist3r
- Lightweight and easy to use, with a simple command-line interface
- Fast execution, suitable for quick subdomain enumeration tasks
- Well-established project with a large user base and community support
Cons of Sublist3r
- Limited data sources compared to OneForAll's extensive collection
- Lacks advanced features like DNS zone transfer and certificate transparency checks
- Less frequent updates and maintenance compared to OneForAll
Code Comparison
Sublist3r:
def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce, engines):
bruteforce_list = []
subdomains = []
search_list = set()
OneForAll:
def main(target, port, silent, path, format, brute, dns, req, api, alive, cdn, times, proxy, output):
"""
OneForAll entry function
"""
print(banner)
dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f'[*] Starting OneForAll @ {dt}\n')
OneForAll offers a more comprehensive set of features and data sources, making it suitable for in-depth subdomain enumeration. However, Sublist3r's simplicity and speed make it a good choice for quick scans or users who prefer a more straightforward tool. OneForAll's code structure suggests a more modular and extensible approach, while Sublist3r focuses on a streamlined execution process.
Generates permutations, alterations and mutations of subdomains and then resolves them
Pros of altdns
- Focused specifically on subdomain permutation and alteration
- Lightweight and easy to use for targeted subdomain discovery
- Can be easily integrated into existing workflows and scripts
Cons of altdns
- Limited functionality compared to OneForAll's comprehensive approach
- Lacks built-in DNS resolution and validation features
- Does not support as many data sources for subdomain discovery
Code Comparison
altdns:
def insert_all_indexes(domain):
return [domain[:i] + '.' + domain[i:] for i in range(len(domain))]
OneForAll:
def gen_fuzz_domains(domain):
domains = list()
with open(data_storage_dir.resolve('fuzz.txt')) as f:
for line in f:
word = line.strip()
if word:
domains.append(f'{word}.{domain}')
return domains
Both projects use Python for subdomain generation, but OneForAll's approach is more flexible, allowing for custom wordlists and patterns. altdns focuses on permutations of the existing domain, while OneForAll generates subdomains based on predefined patterns and wordlists.
E-mails, subdomains and names Harvester - OSINT
Pros of theHarvester
- Longer development history and more established in the OSINT community
- Supports a wider range of search engines and data sources
- Includes built-in DNS enumeration capabilities
Cons of theHarvester
- Less frequent updates compared to OneForAll
- Limited subdomain enumeration features
- Slower performance when scanning large domains
Code Comparison
TheHarvester:
from theHarvester.discovery import *
from theHarvester.discovery.constants import *
search = googlesearch.search_google(word, limit, start)
search.process()
emails = search.get_emails()
OneForAll:
from oneforall.common import utils
from oneforall.modules.search import google
result = google.Google(domain).search()
subdomains = utils.get_subdomains(result)
TheHarvester focuses on general OSINT gathering, including email addresses and hostnames, while OneForAll specializes in subdomain enumeration. TheHarvester's code structure is more modular, with separate classes for each search engine. OneForAll uses a more streamlined approach, with utility functions for processing results.
Both tools are valuable for information gathering, but OneForAll excels in subdomain discovery, while theHarvester offers a broader range of OSINT capabilities. The choice between them depends on the specific requirements of your reconnaissance tasks.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
OneForAll
ðOneForAllæ¯ä¸æ¬¾åè½å¼ºå¤§çååæ¶éå·¥å · ðEnglish Document
ðä¸ææå
ð¢ 请å¡å¿ è±ä¸ç¹æ¶é´é 读æ¤ææ¡£ï¼æå©äºä½ å¿«éçæOneForAllï¼
ðå®è£ è¦æ±
OneForAllåºäºPython 3.6.0å¼ååæµè¯ï¼OneForAlléè¦é«äºPython 3.6.0ççæ¬æè½è¿è¡ã å®è£ Pythonç¯å¢å¯ä»¥åèPython 3 å®è£ æåãè¿è¡ä»¥ä¸å½ä»¤æ£æ¥Pythonåpip3çæ¬ï¼
python -V
pip3 -V
å¦æä½ çå°ç±»ä¼¼ä»¥ä¸çè¾åºä¾¿è¯´æPythonç¯å¢æ²¡æé®é¢ï¼
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
âå®è£ æ¥éª¤ï¼git çï¼
- ä¸è½½
ç±äºè¯¥é¡¹ç®å¤äºå¼åä¸ï¼ä¼ä¸æè¿è¡æ´æ°è¿ä»£ï¼ä¸è½½æ¶è¯·ä½¿ç¨git clone
å
éææ°ä»£ç ä»åºï¼ä¹æ¹ä¾¿åç»çæ´æ°ï¼ä¸æ¨èä»Releasesä¸è½½ï¼å 为Releaseséçæ¬æ´æ°ç¼æ
¢ï¼ä¹ä¸æ¹ä¾¿æ´æ°ï¼
æ¬é¡¹ç®å·²ç»å¨ç äº(Gitee)éåäºä¸ä»½ï¼å½å
æ¨è使ç¨ç äºè¿è¡å
éæ¯è¾å¿«ï¼
git clone https://gitee.com/shmilylty/OneForAll.git
æè ï¼
git clone https://github.com/shmilylty/OneForAll.git
- å®è£
ä½ å¯ä»¥éè¿pip3å®è£
OneForAllçä¾èµï¼ä»¥ä¸ä¸ºWindowsç³»ç»ä¸ä½¿ç¨pip3å®è£
ä¾èµç示ä¾ï¼æ³¨æï¼å¦æä½ çPython3å®è£
å¨ç³»ç»Program Filesç®å½ä¸ï¼å¦ï¼C:\Program Files\Python36
ï¼é£ä¹è¯·ä»¥ç®¡çå身份è¿è¡å½ä»¤æ示符cmdæ§è¡ä»¥ä¸å½ä»¤ï¼
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help
å ¶ä»ç³»ç»å¹³å°ç请åèä¾èµå®è£ ï¼å¦æå¨å®è£ ä¾èµè¿ç¨ä¸åç°ç¼è¯æ个ä¾èµåºå¤±è´¥æ¶å¯ä»¥åè常è§é®é¢ä¸åç.mdææ¡£ä¸è§£å³æ¹æ³ï¼å¦æä¾ç¶ä¸è½è§£å³æ¬¢è¿å 群åé¦é®é¢ã
- æ´æ°
æ§è¡ä»¥ä¸å½ä»¤**æ´æ°**项ç®ï¼å¯ä¿å对/config/setting.py
å/config/api.py
çä¿®æ¹ï¼ï¼
git stash # æåæ¬å°çä¿®æ¹
git fetch --all # æå项ç®æ´æ°
git pull # ä¸è½½è¦ç
git stash pop # éæ¾æ¬å°ä¿®æ¹
âå®è£ æ¥éª¤ï¼docker çï¼
é¦å
ä¸è½½å¹¶ç¼è¾é
ç½®æ件ï¼æ·»å èªå·±çapi
å个æ§å设置ï¼å¹¶ä¿çåå§æ件ç»æ
config
âââ api.py
âââ default.py
âââ __init__.py
âââ log.py
âââ setting.py
æåéå并æ§è¡ï¼å
¶ä¸~/.config
æ¿æ¢ä¸ºä½ èªå·±é
ç½®æ件æå¨æ件夹çè·¯å¾
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run
åæ°ç´æ¥å å¨æ令æ«å°¾ï¼ç»æä¼è¾åºå¨æ¬å°ç®å½~/results
ï¼å¦éä¿åå°å
¶ä»ä½ç½®ï¼å¯ä»¥èªè¡ä¿®æ¹
â¨ä½¿ç¨æ¼ç¤º
å¦æä½ æ¯éè¿pip3å®è£ çä¾èµå使ç¨ä»¥ä¸å½ä»¤è¿è¡ç¤ºä¾ï¼
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
ð§ç»æ说æ
æ们以python3 oneforall.py --target example.com run
å½ä»¤ä¸ºä¾ï¼OneForAllå¨é»è®¤åæ°æ£å¸¸æ§è¡å®æ¯ä¼å¨resultsç®å½çæç¸åºç»æï¼
example.com.csv
æ¯æ¯ä¸ªä¸»åä¸çååæ¶éç»æã
all_subdomain_result_1583034493.csv
æ¯æ¯æ¬¡è¿è¡OneForAllæ¶éå°ååçæ±æ»ç»æï¼å
å«example.com.csv
ï¼æ¹ä¾¿å¨æ¹éæ¶éåºæ¯ä¸è·åå
¨é¨ç»æã
result.sqlite3
æ¯åæ¾æ¯æ¬¡è¿è¡OneForAllæ¶éå°ååçSQLite3ç»ææ°æ®åºï¼å
¶æ°æ®åºç»æå¦ä¸å¾ï¼
å
¶ä¸ç±»ä¼¼example_com_origin_result
表åæ¾æ¯ä¸ªæ¨¡åæåååæ¶éç»æã
å
¶ä¸ç±»ä¼¼example_com_resolve_result
表åæ¾å¯¹ååè¿è¡è§£æåçç»æã
å
¶ä¸ç±»ä¼¼example_com_last_result
表åæ¾ä¸ä¸æ¬¡ååæ¶éç»æï¼éè¦æ¶é两次以ä¸æä¼çæï¼ã
å
¶ä¸ç±»ä¼¼example_com_now_result
表åæ¾ç°å¨ååæ¶éç»æï¼ä¸è¬æ
åµå
³æ³¨è¿å¼ 表就å¯ä»¥äºã
æ´å¤ä¿¡æ¯è¯·åé å段解é说æã
ð¤ä½¿ç¨å¸®å©
å½ä»¤è¡åæ°åªæä¾äºä¸äºå¸¸ç¨åæ°ï¼æ´å¤è¯¦ç»çåæ°é 置请è§setting.pyï¼å¦æä½ è®¤ä¸ºæäºåæ°æ¯å½ä»¤çé¢ç»å¸¸ä½¿ç¨å°çæ缺å°äºä»ä¹åæ°çé®é¢é常欢è¿åé¦ãç±äºä¼æå¨ç¥çåå ï¼å¦æè¦ä½¿ç¨ä¸äºè¢«å¢çæ¶éæ¥å£è¯·å å°setting.pyé 置代çï¼æäºæ¶é模åéè¦æä¾APIï¼å¤§å¤é½æ¯å¯ä»¥æ³¨åè´¦å·å è´¹è·åï¼ï¼å¦æéè¦ä½¿ç¨è¯·å°api.pyé ç½®APIä¿¡æ¯ï¼å¦æä¸ä½¿ç¨è¯·å¿½ç¥æå ³æ¥éæ示ãï¼è¯¦ç»æ¨¡å请é 读æ¶é模å说æï¼
OneForAllå½ä»¤è¡çé¢åºäºFireå®ç°ï¼æå ³Fireæ´é«çº§ä½¿ç¨æ¹æ³è¯·åé 使ç¨Fire CLIã
oneforall.pyæ¯ä¸»ç¨åºå ¥å£ï¼oneforall.pyå¯ä»¥è°ç¨brute.pyï¼takerover.pyådbexport.pyç模åï¼ä¸ºäºæ¹ä¾¿è¿è¡ååçç ´ç¬ç«åºäºbrute.pyï¼ä¸ºäºæ¹ä¾¿è¿è¡ååæ¥ç®¡é£é©æ£æ¥ç¬ç«åºäºtakerover.pyï¼ä¸ºäºæ¹ä¾¿æ°æ®åºå¯¼åºç¬ç«åºäºdbexport.pyï¼è¿äºæ¨¡åé½å¯ä»¥åç¬è¿è¡ï¼å¹¶ä¸ææ¥ååæ°è¦æ´ä¸°å¯ä¸ç¹ï¼å¦æè¦åç¬ä½¿ç¨è¿äºæ¨¡å请åè使ç¨å¸®å©
â注æï¼å½ä½ å¨ä½¿ç¨è¿ç¨ä¸éå°ä¸äºé®é¢æè çææ¶ï¼è¯·å å°Issuesé使ç¨æç´¢æ¾æ¾çæ¡ï¼è¿å¯ä»¥åé 常è§é®é¢ä¸åçã
oneforall.py使ç¨å¸®å©
以ä¸å¸®å©ä¿¡æ¯å¯è½ä¸æ¯ææ°çï¼ä½ å¯ä»¥ä½¿ç¨python oneforall.py --help
è·åææ°ç帮å©ä¿¡æ¯ã
python oneforall.py --help
NAME
oneforall.py - OneForAll帮å©ä¿¡æ¯
SYNOPSIS
oneforall.py COMMAND | --target=TARGET <flags>
DESCRIPTION
OneForAllæ¯ä¸æ¬¾åè½å¼ºå¤§çååæ¶éå·¥å
·
Example:
python3 oneforall.py version
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./domains.txt run
python3 oneforall.py --target example.com --valid None run
python3 oneforall.py --target example.com --brute True run
python3 oneforall.py --target example.com --port small run
python3 oneforall.py --target example.com --fmt csv run
python3 oneforall.py --target example.com --dns False run
python3 oneforall.py --target example.com --req False run
python3 oneforall.py --target example.com --takeover False run
python3 oneforall.py --target example.com --show True run
Note:
åæ°aliveå¯éå¼Trueï¼Falseåå«è¡¨ç¤ºå¯¼åºåæ´»ï¼å
¨é¨ååç»æ
åæ°portå¯éå¼æ'default', 'small', 'large', 详è§config.pyé
ç½®
åæ°fmtå¯éæ ¼å¼æ 'csv','json'
åæ°pathé»è®¤None使ç¨OneForAllç»æç®å½çæè·¯å¾
ARGUMENTS
TARGET
å个åå(äºéä¸å¿
éåæ°)
TARGETS
æ¯è¡ä¸ä¸ªååçæ件路å¾(äºéä¸å¿
éåæ°)
FLAGS
--brute=BRUTE
s
--dns=DNS
DNS解æåå(é»è®¤True)
--req=REQ
HTTP请æ±åå(é»è®¤True)
--port=PORT
请æ±éªè¯ååç端å£èå´(é»è®¤åªæ¢æµ80端å£)
--valid=VALID
åªå¯¼åºåæ´»çååç»æ(é»è®¤False)
--fmt=FMT
ç»æä¿åæ ¼å¼(é»è®¤csv)
--path=PATH
ç»æä¿åè·¯å¾(é»è®¤None)
--takeover=TAKEOVER
æ£æ¥ååæ¥ç®¡(é»è®¤False)
ð项ç®ç®ä»
项ç®å°åï¼https://github.com/shmilylty/OneForAll
å¨æ¸éæµè¯ä¸ä¿¡æ¯æ¶éçéè¦æ§ä¸è¨èå»ï¼ååæ¶éæ¯ä¿¡æ¯æ¶éä¸å¿ ä¸å¯å°ä¸é常éè¦çä¸ç¯ï¼ç®åç½ä¸ä¹å¼æºäºè®¸å¤ååæ¶éçå·¥å ·ï¼ä½æ¯æ»æ¯åå¨ä»¥ä¸é¨åé®é¢ï¼
- **ä¸å¤å¼ºå¤§**ï¼ååæ¶éçæ¥å£ä¸å¤å¤ï¼ä¸è½åå°å¯¹æ¹éååèªå¨æ¶éï¼æ²¡æèªå¨åå解æï¼éªè¯ï¼FUZZ以åä¿¡æ¯æå±çåè½ã
- ä¸å¤å好ï¼åºç¶å½ä»¤è¡æ¨¡åæ¯è¾æ¹ä¾¿ï¼ä½æ¯å½å¯éçåæ°å¾å¤ï¼è¦å®ç°çæä½å¤æï¼ç¨å½ä»¤è¡æ¨¡å¼å°±æç¹ä¸å¤å好ï¼å¦ææ交äºè¯å¥½ï¼é«å¯æä½çå端é£ä¹ä½¿ç¨ä½éªå°±ä¼å¥½å¾å¤ã
- **缺å°ç»´æ¤**ï¼å¾å¤å·¥å ·å 年没ææ´æ°è¿ä¸æ¬¡ï¼issuesåPRæ¯å¥ï¼ä¸åå¨çã
- æçé®é¢ï¼æ²¡æå©ç¨å¤è¿ç¨ï¼å¤çº¿ç¨ä»¥åå¼æ¥åç¨ææ¯ï¼é度è¾æ ¢ã
为äºè§£å³ä»¥ä¸çç¹ï¼æ¤é¡¹ç®åºç¨èçï¼æ£å¦å ¶åï¼æå¸æOneForAllæ¯ä¸æ¬¾éç¾å®¶ä¹é¿ï¼åè½å¼ºå¤§çå ¨é¢å¿«éååæ¶éç»æç¥å¨ð¨ã
ç®åOneForAllè¿å¨å¼åä¸ï¼è¯å®æä¸å°é®é¢åéè¦æ¹è¿çå°æ¹ï¼æ¬¢è¿å¤§ä½¬ä»¬æ交IssuesåPRï¼ç¨çè¿è¡ç»ä¸ªå°ææâ¨å§ï¼ç®åæä¸ä¸ªä¸é¨ç¨äºOneForAll交æµååé¦QQ群ð¨âð¨âð¦âð¦ï¼:824414244ï¼å 群éªè¯ï¼ä¿¡æ¯æ¶éï¼ã
ðåè½ç¹æ§
- **æ¶éè½å强大**ï¼è¯¦ç»æ¨¡å请é
读æ¶é模å说æã
- å©ç¨è¯ä¹¦éæ度æ¶éååï¼ç®åæ6个模åï¼
censys_api
ï¼certspotter
ï¼crtsh
ï¼entrust
ï¼google
ï¼spyse_api
ï¼ - 常è§æ£æ¥æ¶éååï¼ç®åæ4个模åï¼åä¼ éæ¼æ´å©ç¨
axfr
ï¼æ£æ¥è·¨åçç¥æ件cdx
ï¼æ£æ¥HTTPSè¯ä¹¦cert
ï¼æ£æ¥å 容å®å ¨çç¥csp
ï¼æ£æ¥robotsæ件robots
ï¼æ£æ¥sitemapæ件sitemap
ï¼å©ç¨NSECè®°å½éåDNSådnssec
ï¼åç»ä¼æ·»å NSEC3è®°å½ç模åï¼ - å©ç¨ç½ä¸ç¬è«æ¡£æ¡æ¶éååï¼ç®åæ2个模åï¼
archivecrawl
ï¼commoncrawl
ï¼æ¤æ¨¡åè¿å¨è°è¯ï¼è¯¥æ¨¡åè¿æå¾ æ·»å åå®åï¼ - å©ç¨DNSæ°æ®éæ¶éååï¼ç®åæ24个模åï¼
bevigil_api
,binaryedge_api
,bufferover
,cebaidu
,chinaz
,chinaz_api
,circl_api
,cloudflare
,dnsdb_api
,dnsdumpster
,hackertarget
,ip138
,ipv4info_api
,netcraft
,passivedns_api
,ptrarchive
,qianxun
,rapiddns
,riddler
,robtex
,securitytrails_api
,sitedossier
,threatcrowd
,wzpc
,ximcx
ï¼ - å©ç¨DNSæ¥è¯¢æ¶éååï¼ç®åæ5个模åï¼éè¿æ举常è§çSRVè®°å½å¹¶åæ¥è¯¢æ¥æ¶éåå
srv
ï¼ä»¥åéè¿æ¥è¯¢ååçDNSè®°å½ä¸çMX,NS,SOA,TXTè®°å½æ¥æ¶éååï¼ - å©ç¨å¨èæ
æ¥å¹³å°æ°æ®æ¶éååï¼ç®åæ6个模åï¼
alienvault
,riskiq_api
ï¼threatbook_api
ï¼threatminer
ï¼virustotal
ï¼virustotal_api
该模åè¿æå¾ æ·»å åå®åï¼ - å©ç¨æç´¢å¼æåç°ååï¼ç®åæ18个模åï¼
ask
,baidu
,bing
,bing_api
,duckduckgo
,exalead
,fofa_api
,gitee
,github
,github_api
,google
,google_api
,shodan_api
,so
,sogou
,yahoo
,yandex
,zoomeye_api
ï¼ï¼å¨æ索模åä¸é¤ç¹æ®æç´¢å¼æï¼éç¨çæç´¢å¼æé½æ¯æèªå¨æé¤æç´¢ï¼å ¨éæç´¢ï¼éå½æç´¢ã
- å©ç¨è¯ä¹¦éæ度æ¶éååï¼ç®åæ6个模åï¼
- **æ¯æååçç ´**ï¼è¯¥æ¨¡åæ常è§çåå ¸çç ´ï¼ä¹æèªå®ä¹çfuzz模å¼ï¼æ¯ææ¹éçç ´åéå½çç ´ï¼èªå¨å¤ææ³è§£æ并å¤çã
- æ¯æååéªè¯ï¼é»è®¤å¼å¯ååéªè¯ï¼èªå¨è§£æååDNSï¼èªå¨è¯·æ±ååè·åtitleåbannerï¼å¹¶ç»¼åå¤æåååæ´»æ åµã
- æ¯æååç¬åï¼æ ¹æ®å·²æçååï¼è¯·æ±ååååºä½ä»¥åååºä½éçJSï¼ä»ä¸å次åç°æ°çååã
- **æ¯æååç½®æ¢**ï¼æ ¹æ®å·²æçååï¼ä½¿ç¨ååæ¿æ¢ææ¯å次åç°æ°çååã
- **æ¯æååæ¥ç®¡**ï¼é»è®¤å¼å¯ååæ¥ç®¡é£é©æ£æ¥ï¼æ¯æååèªå¨æ¥ç®¡ï¼ç®ååªæGithubï¼æå¾ å®åï¼ï¼æ¯ææ¹éæ£æ¥ã
- **å¤çåè½å¼ºå¤§**ï¼åç°çååç»ææ¯æèªå¨å»é¤ï¼èªå¨DNS解æï¼HTTP请æ±æ¢æµï¼èªå¨çéåºææååï¼æå±ååçBannerä¿¡æ¯ï¼æç»æ¯æç导åºæ ¼å¼æ
txt
,csv
,json
ã - **é度æå¿«**ï¼æ¶é模å使ç¨å¤çº¿ç¨è°ç¨ï¼çç ´æ¨¡å使ç¨massdnsï¼DNS解æé度æ¯ç§å¯è§£æ350000以ä¸ä¸ªååï¼ååéªè¯ä¸DNS解æåHTTP请æ±ä½¿ç¨å¼æ¥å¤åç¨ï¼å¤çº¿ç¨æ£æ¥ååæ¥ç®¡é£é©ã
- ä½éªè¯å¥½ï¼å模åé½æè¿åº¦æ¡ï¼å¼æ¥ä¿åå模åç»æã
å¦æä½ æå ¶ä»å¾æ£çæ³æ³è¯·å¡å¿ åè¯æï¼ð
ð²ç®å½ç»æ
æ´å¤ä¿¡æ¯è¯·åé ç®å½ç»æ说æã
æ¬é¡¹ç®docsç®å½ä¸è¿æä¾äºä¸äºå¸®å©ä¸è¯´æï¼å¦åååå ¸æ¥æºè¯´æãæ³è§£æå¤ææµç¨ã
ðç¨å°æ¡æ¶
- aiohttp - å¼æ¥http客æ·ç«¯/æå¡å¨æ¡æ¶
- beautifulsoup4 - å¯ä»¥è½»æ¾ä»HTMLæXMLæ件ä¸æåæ°æ®çPythonåº
- fire - Python Fireæ¯ä¸ä¸ªçº¯ç²¹æ ¹æ®ä»»ä½Python对象èªå¨çæå½ä»¤è¡çé¢ï¼CLIï¼çåº
- loguru - æ¨å¨å¸¦æ¥æå¿«çæ¥å¿è®°å½Pythonåº
- massdns - é«æ§è½çDNS解æå¨
- records - Recordsæ¯ä¸ä¸ªé常ç®åä½åè½å¼ºå¤§çåºï¼ç¨äºå¯¹å¤§å¤æ°å ³ç³»æ°æ®åºè¿è¡æåå§SQLæ¥è¯¢ã
- requests - Requests å¯ä¸çä¸ä¸ªé转åºå ç Python HTTP åºï¼äººç±»å¯ä»¥å®å ¨äº«ç¨ã
- tqdm - éç¨äºPythonåCLIçå¿«éï¼å¯æ©å±çè¿åº¦æ¡åº
æè°¢è¿äºä¼å¤§ä¼ç§çPythonåºï¼
ðçæ¬æ§å¶
该项ç®ä½¿ç¨SemVerè¯è¨åçæ¬æ ¼å¼è¿è¡çæ¬ç®¡çï¼ä½ å¯ä»¥åé åæ´è®°å½è¯´æäºè§£åå²åæ´æ åµã
âåç»è®¡å
- å模åæç»ä¼ååå®å
- æä½å¼ºå¤§äº¤äºäººæ§çå端çé¢å®ç°
æ´å¤ä¿¡æ¯è¯·åé åç»å¼å计åã
ðè´¡ç®
é常çç欢è¿åä½å¤§ä½¬ä¸èµ·å®åæ¬é¡¹ç®ï¼
ð¨âð»è´¡ç®è
- Jing Ling
- æ ¸å¿å¼å
ä½ å¯ä»¥å¨è´¡ç®è ææ¡£ä¸æ¥çææè´¡ç®è 以åä»ä»¬æååºçè´¡ç®ï¼æè°¢ä»ä»¬è®©OneForAllåå¾æ´å¼ºå¤§å¥½ç¨ã
âèµèµ
å¦æä½ è§å¾è¿ä¸ªé¡¹ç®å¸®å©å°äºä½ ï¼ä½ å¯ä»¥æèµä¸æ¯åå¡ä»¥èµé¼å±:)
ðçæ
该项ç®ç¾ç½²äºGPL-3.0ææ许å¯ï¼è¯¦æ 请åé LICENSEã
ð鸣谢
æè°¢ç½ä¸å¼æºçå个ååæ¶é项ç®ï¼
æè°¢A-Team大å¥ä»¬çæ æ ç§çé®é¢è§£çï¼
ðå 责声æ
æ¬å·¥å ·ä» è½å¨åå¾è¶³å¤åæ³ææçä¼ä¸å®å ¨å»ºè®¾ä¸ä½¿ç¨ï¼å¨ä½¿ç¨æ¬å·¥å ·è¿ç¨ä¸ï¼æ¨åºç¡®ä¿èªå·±ææè¡ä¸ºç¬¦åå½å°çæ³å¾æ³è§ã å¦æ¨å¨ä½¿ç¨æ¬å·¥å ·çè¿ç¨ä¸åå¨ä»»ä½éæ³è¡ä¸ºï¼æ¨å°èªè¡æ¿æ ææåæï¼æ¬å·¥å ·ææå¼åè åææè´¡ç®è ä¸æ¿æ ä»»ä½æ³å¾åè¿å¸¦è´£ä»»ã é¤éæ¨å·²å åé 读ãå®å ¨ç解并æ¥åæ¬åè®®æææ¡æ¬¾ï¼å¦åï¼è¯·æ¨ä¸è¦å®è£ 并使ç¨æ¬å·¥å ·ã æ¨ç使ç¨è¡ä¸ºæè æ¨ä»¥å ¶ä»ä»»ä½æ示æè é»ç¤ºæ¹å¼è¡¨ç¤ºæ¥åæ¬åè®®çï¼å³è§ä¸ºæ¨å·²é 读并åææ¬åè®®ç约æã
ðStarè¶å¿
Top Related Projects
Fast passive subdomain enumeration tool.
Find domains and subdomains related to a given domain
In-depth attack surface mapping and asset discovery
Fast subdomains enumeration tool for penetration testers
Generates permutations, alterations and mutations of subdomains and then resolves them
E-mails, subdomains and names Harvester - OSINT
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot