diff --git a/README.md b/README.md index 9419178..ff1c47d 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@

- SubDomz + Subdomz

-All-in-One (Passive) Subdomain Enumeration Tool +An Automated Subdomain Enumeration Tool

- ![SubDomz](https://github.com/0xPugazh/SubDomz/blob/master/SubDomz.png) + ![SubDomz](https://github.com/0xPugal/SubDomz/blob/master/SubDomz.png) ----------------------------- ### What is SubDomz? @@ -15,10 +15,9 @@ All-in-One (Passive) Subdomain Enumeration Tool ### Installation ``` -git clone https://github.com/0xlittleboy/SubDomz.git +git clone https://github.com/0xPugal/Subdomz.git cd SubDomz -chmod +x install.sh SubDomz.sh -dos2unix install.sh SubDomz.sh config.txt +chmod +x install.sh subdomz.sh check.sh ./install.sh ``` @@ -33,7 +32,7 @@ dos2unix install.sh SubDomz.sh config.txt -s, --silent - Show only subdomains in output -hp, --http-probe - probe for working http/https servers -k, --keep - keep the temporary files ( output from each tool) - -p, --parallel - Run parallelly for faster results. Doesn't Work With -e/--exclude or -u/--use. + -p, --parallel - Run parallely for faster results. Doesn't Work With -e/--exclude or -u/--use. -h, --help - Display this help message and exit -v, --version - Display the version and exit -ls, --list-sources - Display all available sources/tools @@ -57,9 +56,12 @@ dos2unix install.sh SubDomz.sh config.txt - [Alienvault](https://otx.alienvault.com) - [Subdomain-center](https://api.subdomain.center) - [Certspotter](https://api.certspotter.com) +- [Puredns](https://github.com/d3mondev/puredns) +- [Trickest Resolvers](https://github.com/trickest/resolvers) +- [Best-DNS-wordlists](https://wordlists.assetnote.io/) ### API keys -+ Add your API keys in [config.txt](https://github.com/0xPugazh/SubDomz/blob/master/config.txt) ++ Add your API keys in [config.txt](https://github.com/0xPugal/subdomz/blob/master/config.txt) ### Credit This tool was inspired by [@bing0o](https://github.com/bing0o) [domains.sh](https://github.com/bing0o/bash_scripting/blob/master/domains.sh) script. diff --git a/SubDomz.sh b/SubDomz.sh index eeb18dc..2c8954e 100644 --- a/SubDomz.sh +++ b/SubDomz.sh @@ -8,7 +8,7 @@ GREEN="\e[32m" BLUE="\e[34" CYAN="\e[36m" NC="\e[0m" -VERSION="2.0" +VERSION="3.0" PRG=${0##*/} @@ -55,6 +55,7 @@ ListSources() { echo "Alienvault" echo "Subdomain-center" echo "Certspotter" + echo "Puredns" exit 1 } @@ -260,6 +261,17 @@ Certspotter() { } } +Puredns() { + [ "$silent" == True ] && puredns bruteforce $WORDLISTS $DOMAIN --resolvers $RESOLVERS -q | anew subdomz-$domain.txt || { + [[ ${PARALLEL} == True ]] || { spinner "${BOLD}Puredns${NC}" & + PID="$!" + } + puredns bruteforce $WORDLISTS $DOMAIN --resolvers $RESOLVERS -q > tmp-certspotter-$domain + [[ ${PARALLEL} == True ]] || kill ${PID} 2>/dev/null + echo -e "$BOLD[*] Puredns$NC: $( wc -l < tmp-puredns-$domain && echo)" + } +} + Use() { for i in $lu; do @@ -282,7 +294,7 @@ Exclude() { Out() { [ "$silent" == False ] && { - [ -n "$1" ] && output="$1" || output="$domain-$(date +'%Y-%m-%d').txt" + [ -n "$1" ] && output="$1" || output="$domain.txt" result=$(sort -u tmp-* | wc -l) sort -u tmp-* >> $output echo -e $GREEN"[+] The Final subdomains:$NC ${result}" @@ -307,9 +319,9 @@ List() { [[ ${PARALLEL} == True ]] && { spinner "Enumerating" & PID="$!" - export -f Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter spinner + export -f Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter Puredns spinner export domain silent BOLD NC - parallel -j18 ::: Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter + parallel -j18 ::: Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter Puredns kill ${PID} [[ $out != False ]] && Out $out || Out } || { @@ -330,6 +342,7 @@ List() { Alienvault Subdomain-center Certspotter + Puredns [[ $out != False ]] && Out $out || Out } } @@ -347,9 +360,9 @@ Main() { [[ ${PARALLEL} == True ]] && { spinner "Enumerating" & PID="$!" - export -f Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter spinner + export -f Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter Puredns spinner export domain silent BOLD NC - parallel -j18 ::: Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter + parallel -j18 ::: Subfinder Amass Assetfinder Chaos Findomain Haktrails Gau Github-subdomains Gitlab-subdomains Cero Shosubgo Censys Crtsh JLDC Alienvault Subdomain-center Certspotter Puredns kill ${PID} } || { Subfinder @@ -369,6 +382,7 @@ Main() { Alienvault Subdomain-center Certspotter + Puredns } [ $out == False ] && Out || Out $out } || { @@ -412,6 +426,7 @@ list=( Alienvault Subdomain-center Certspotter + Puredns ) while [ -n "$1" ]; do @@ -475,7 +490,7 @@ done ___/ / /_/ / /_/ / /_/ / /_/ / / / / / / / /_ /____/\__,_/_.___/_____/\____/_/ /_/ /_/ /___/ $VERSION - All in One Passive Subdomain Enumeration tool + An Subdomain Subdomain Enumeration Tool $GREEN by @0xPugal $NC """$NC diff --git a/check.sh b/check.sh new file mode 100644 index 0000000..4c23ddf --- /dev/null +++ b/check.sh @@ -0,0 +1,25 @@ +hash parallel 2>/dev/null && printf "[parallel]$g Installed$e\n" || printf "[parallel]$r Install Manually.$e\n" +hash jq 2>/dev/null && printf "[jq]$g Installed$e\n" || printf "[jq]$r Install Manually.$e\n" +hash python3 2>/dev/null && printf "[python3]$g Installed$e\n" || printf "[python3]$r Install Manually.$e\n" +hash pip 2>/dev/null && printf "[pip]$g Installed$e\n" || printf "[pip]$r Install Manually.$e\n" +hash shodan 2>/dev/null && printf "[shodan]$g Installed$e\n" || printf "[shodan]$r Install Manually.$e\n" +hash censys 2>/dev/null && printf "[censys]$g Installed$e\n" || printf "[censys]$r Install Manually.$e\n" +hash subfinder 2>/dev/null && printf "[subfinder]$g Installed$e\n" || printf "[subfinder]$r Install Manually.$e\n" +hash amass 2>/dev/null && printf "[amass]$g Installed$e\n" || printf "[amass]$r Install Manually.$e\n" +hash assetfinder 2>/dev/null && printf "[assetfinder]$g Installed$e\n" || printf "[assetfinder]$r Install Manually.$e\n" +hash chaos-client 2>/dev/null && printf "[chaos]$g Installed$e\n" || printf "[chaos]$r Install Manually.$e\n" +hash findomain 2>/dev/null && printf "[findomain]$g Installed$e\n" || printf "[findomain]$r Install Manually.$e\n" +hash haktrails 2>/dev/null && printf "[haktrails]$g Installed$e\n" || printf "[haktrails]$r Install Manually.$e\n" +hash gau 2>/dev/null && printf "[gau]$g Installed$e\n" || printf "[gau]$r Install Manually.$e\n" +hash github-subdomains 2>/dev/null && printf "[github-subdomains]$g Installed$e\n" || printf "[github-subdomains]$r Install Manually.$e\n" +hash gitlab-subdomains 2>/dev/null && printf "[gitlab-subdomains]$g Installed$e\n" || printf "[gitlab-subdomains]$r Install Manually.$e\n" +hash cero 2>/dev/null && printf "[cero]$g Installed$e\n" || printf "[cero]$r Install Manually.$e\n" +hash shosubgo 2>/dev/null && printf "[shosubgo]$g Installed$e\n" || printf "[shosubgo]$r Install Manually.$e\n" +hash anew 2>/dev/null && printf "[anew]$g Installed$e\n" || printf "[anew]$r Install Manually.$e\n" +hash unfurl 2>/dev/null && printf "[unfurl]$g Installed$e\n" || printf "[unfurl]$r Install Manually.$e\n" +hash httpx 2>/dev/null && printf "[httpx]$g Installed$e\n" || printf "[httpx]$r Install Manually.$e\n" +hash puredns 2>/dev/null && printf "[puredns]$g Installed$e\n" || printf "[puredns]$r Install Manually.$e\n" +hash dnsx 2>/dev/null && printf "[dnsx]$g Installed$e\n" || printf "[dnsx]$r Install Manually.$e\n" +hash massdns 2>/dev/null && printf "[massdns]$g Installed$e\n" || printf "[massdns]$r Install Manually.$e\n" +[ -f resolvers/resolvers.txt ] && printf "[resolvers.txt]\e[32m Found\e[0m\n" || printf "[resolvers.txt]\e[31m Not Found\e[0m\n" +[ -f best-dns-wordlist.txt ] && printf "[dns.txt]\e[32m Found\e[0m\n" || printf "[dns.txt]\e[31m Not Found\e[0m\n" \ No newline at end of file diff --git a/config.txt b/config.txt index 0123210..d17196a 100644 --- a/config.txt +++ b/config.txt @@ -7,4 +7,6 @@ export HAKTRAILS_CONFIG=~/.config/haktools/haktrails-config.yml export GITHUB_TOKEN="TOKEN_HERE" export GITLAB_TOKEN="TOKEN_HERE" export SHODAN_API_KEY="API_KEY_HERE" -export CHAOS_API_KEY="API_KEY_HERE" \ No newline at end of file +export CHAOS_API_KEY="API_KEY_HERE" +export RESOLVERS="resolvers/resolvers.txt" +export WORDLISTS="best-dbs-wordlist.txt" \ No newline at end of file diff --git a/install.sh b/install.sh index e3b3017..f646b31 100644 --- a/install.sh +++ b/install.sh @@ -1,159 +1,27 @@ #!/bin/bash -# -Parallel(){ - printf " \r" - sudo apt-get install parallel -y -} - -JQ() { - printf " \r" - sudo apt-get install jq -y -} - -Python() { - printf " \r" - sudo apt-get install python3 -y -} - -Pip() { - printf " \r" - sudo apt-get install python3-pip -y -} - -Shodan() { - printf " \r" - pip3 install shodan || pip3 install shodan --break-system-packages -} - -Censys() { - printf " \r" - pip3 install censys || pip3 install censys --break-system-packages -} - -Subfinder() { - printf " \r" - go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest -} - -Amass() { - printf " \r" - go install -v github.com/owasp-amass/amass/v3/...@master -} - -Assetfinder() { - printf " \r" - go install github.com/tomnomnom/assetfinder@latest -} - -Chaos() { - printf " \r" - go install -v github.com/projectdiscovery/chaos-client/cmd/chaos@latest -} - -Findomain() { - printf " \r" - wget https://github.com/Findomain/Findomain/releases/download/8.2.1/findomain-linux.zip - unzip findomain-linux.zip - rm findomain-linux.zip - chmod +x findomain - sudo mv findomain /usr/bin/ -} - -Haktrails() { - printf " \r" - go install -v github.com/hakluke/haktrails@latest -} - -Gau() { - printf " \r" - go install github.com/lc/gau/v2/cmd/gau@latest - wget ~/ https://raw.githubusercontent.com/lc/gau/master/.gau.toml -} - -Github-subdomains() { - printf " \r" - go install github.com/gwen001/github-subdomains@latest -} - -Gitlab-subdomains() { - printf " \r" - go install github.com/gwen001/gitlab-subdomains@latest -} - -Cero() { - printf " \r" - go install -v github.com/glebarez/cero@latest -} - -Shosubgo() { - printf " \r" - go install github.com/incogbyte/shosubgo@latest -} - -Httpx() { - printf " \r" - go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest -} - -Anew() { - printf " \r" - go install -v github.com/tomnomnom/anew@latest -} - -Unfurl() { - printf " \r" - go install github.com/tomnomnom/unfurl@latest -} - -Parallel -JQ -Python -Pip -Shodan -Censys -Subfinder -Amass -Assetfinder -Chaos -Findomain -Haktrails -Gau -Github-subdomains -Gitlab-subdomains -Cero -Shosubgo -Httpx -Anew -Unfurl - -list=( - parallel - jq - python3 - pip - shodan - censys - subfinder - amass - assetfinder - chaos - findomain - haktrails - gau - github-subdomains - gitlab-subdomains - cero - shosubgo - httpx - anew - unfurl - ) - -r="\e[31m" -g="\e[32m" -e="\e[0m" - -for prg in ${list[@]} -do - hash $prg 2>/dev/null && printf "[$prg]$g Installed$e\n" || printf "[$prg]$r Install Manually.$e\n" -done +# Installing tools +sudo apt-get install parallel -y +sudo apt-get install jq -y +sudo apt-get install python3 -y +sudo apt-get install python3-pip -y +pip3 install shodan --break-system-packages +pip3 install censys --break-system-packages +go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest +go install -v github.com/owasp-amass/amass/v3/...@master +go install github.com/tomnomnom/assetfinder@latest +go install -v github.com/projectdiscovery/chaos-client/cmd/chaos@latest +wget https://github.com/Findomain/Findomain/releases/download/8.2.1/findomain-linux.zip && unzip findomain-linux.zip && rm findomain-linux.zip && chmod +x findomain && sudo mv findomain /usr/bin/ +go install -v github.com/hakluke/haktrails@latest +go install github.com/lc/gau/v2/cmd/gau@latest && wget ~/ https://raw.githubusercontent.com/lc/gau/master/.gau.toml +go install github.com/gwen001/github-subdomains@latest +go install github.com/gwen001/gitlab-subdomains@latest +go install -v github.com/glebarez/cero@latest +go install github.com/incogbyte/shosubgo@latest +go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest +go install -v github.com/tomnomnom/anew@latest +go install github.com/tomnomnom/unfurl@latest +git clone https://github.com/blechschmidt/massdns.git && cd massdns && make && sudo make install +go install github.com/d3mondev/puredns/v2@latest +go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest +git clone https://github.com/trickest/resolvers +wget https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt \ No newline at end of file