52 |
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | ####################################
3 | #
4 | # Subdomain takeover tool installer
5 | #
6 | ####################################
7 |
8 | function install () {
9 |
10 | mkdir -p app
11 | cd app
12 |
13 | # Install some requirements
14 | sudo apt-get update && \
15 | sudo apt-get install -y python3-pip && \
16 | sudo apt-get install -y python3-dev && \
17 | sudo apt-get install -y git && \
18 | sudo apt-get install -y jq && \
19 | sudo apt-get install -y wget && \
20 | sudo apt-get install -y curl && \
21 | sudo apt-get install -y unzip && \
22 | sudo apt-get install -y git gcc make libpcap-dev && \
23 | sudo apt-get install -y mariadb-server
24 |
25 |
26 | # Install all the tools
27 | git clone https://github.com/robertdavidgraham/masscan
28 | cd masscan; make -j ; cd ..
29 | git clone https://github.com/blechschmidt/massdns.git
30 | cd massdns ; make all ; cd ..
31 |
32 | wget https://github.com/tomnomnom/assetfinder/releases/download/v0.1.1/assetfinder-linux-amd64-0.1.1.tgz
33 | tar -xvf assetfinder-linux-amd64-0.1.1.tgz
34 | mv assetfinder /bin ; chmod +x /bin/assetfinder
35 |
36 | curl -LO https://github.com/findomain/findomain/releases/latest/download/findomain-linux-i386.zip
37 | unzip findomain-linux-i386.zip
38 | chmod +x findomain
39 | sudo mv findomain /usr/bin/findomain
40 |
41 | go install -v github.com/tomnomnom/anew@latest
42 | go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
43 | go install -v github.com/cgboal/sonarsearch/crobat@latest
44 | git clone https://github.com/jakejarvis/subtake.git
45 | go install -v github.com/jakejarvis/subtake@latest
46 | go install -v github.com/OWASP/Amass/v3/...@master
47 | go install -v github.com/j3ssie/metabigor@maste
48 |
49 |
50 | # Install the requirments
51 | pip3 install -r $(pwd)/requirements.txt
52 | }
53 |
54 | install
55 |
--------------------------------------------------------------------------------
/subauto.sh:
--------------------------------------------------------------------------------
1 |
2 | #!/bin/bash
3 | #########################
4 | #
5 | # Subdomain takeover tool
6 | #
7 | #########################
8 |
9 | # Clean up
10 | rm hosts.txt;
11 | rm domains.txt;
12 | rm tests.txt
13 | rm done.txt
14 | rm takeovers
15 | rm links
16 | rm asn_list
17 | rm ranges.txt
18 | rm masscan.txt
19 | rm orgs.txt
20 |
21 | # Get all chaos domains
22 | curl https://raw.githubusercontent.com/projectdiscovery/public-bugbounty-programs/master/chaos-bugbounty-list.json |jq -r '.programs[] | .domains' |sort -u |cut -d '"' -f2 |while read chaos ; do echo $chaos | tee -a hosts.txt ; done
23 |
24 | # Get all chaos domains
25 | curl https://raw.githubusercontent.com/projectdiscovery/public-bugbounty-programs/master/chaos-bugbounty-list.json |jq -r '.programs[] | .domains' |sort -u |cut -d '"' -f2 |while read chaos; do subfinder -d $chaos -silent | tee -a domains.txt ; done
26 |
27 | # Get all chaos files
28 | org=$(cat hosts.txt | rev | cut -d '.' -f 2 | rev | tee -a orgs.txt)
29 | cat orgs.txt | wget https://chaos-data.projectdiscovery.io/$org.zip -O chaos_domains/$org.zip
30 | find "chaos_domains" -name "*.zip" | xargs -I@ bash -c '{ cat @ | tee -a domains.txt ; }'
31 |
32 | # Get the subdomains from the Rapid7 DNS DB
33 | cat hosts.txt | xargs -I @ -P 10 bash -c '{ crobat -s "@" | tee -a domains.txt ; }'
34 |
35 | # Use amass to find subdomains
36 | amass enum -passive -df hosts.txt | anew domains.txt
37 |
38 | # Use amass to do an active subdomain enumeration
39 | amass enum -active -df hosts.tx | anew domains.txt
40 |
41 | # DNS GEN Scan
42 | cat domains.txt | dnsgen - | tee -a domains.txt
43 |
44 | # Get ASN's
45 | cat hosts.txt | rev | cut -d '.' -f 2 | rev | tee -a orgs.txt
46 | for org in `cat orgs.txt`; do amass intel -org $org | awk '{print $1}' | sed 's/\,$//' | tee -a asn_list ; done
47 | cat asn_list | metabigor net --asn -o ranges.txt
48 |
49 | # Use masscan to get IP's
50 | masscan -iL ranges.txt --max-rate 100000 -p80,443 -oL masscan.txt
51 | cat masscan.txt | awk '{print $4}' | tee -a domains.txt
52 |
53 |
54 | # Run the subdomain takeovers all across the subdomains
55 | cat domains.txt | sort -u | tee -a tests.txt
56 | subtake -c subtake/fingerprints.json -f tests.txt -ssl -o takeovers
57 | cat takeovers | awk '{print $3}' | tee -a links
58 |
59 | touch done.txt
60 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:18.04
2 |
3 | # Install some requirements
4 | RUN apt-get update && \
5 | apt-get install -y python3-pip && \
6 | apt-get install -y python3-dev && \
7 | apt-get install -y git && \
8 | apt-get install -y jq && \
9 | apt-get install -y wget && \
10 | apt-get install -y snapd && \
11 | apt-get install -y curl && \
12 | apt-get install -y unzip && \
13 | apt-get install -y git gcc make libpcap-dev sudo
14 |
15 | # The working directory where the app will live.
16 | WORKDIR /app
17 |
18 | # Copy contents into the app working directory
19 | COPY . /app
20 |
21 | # Install all the tools
22 | RUN wget https://dl.google.com/go/go1.19.6.linux-amd64.tar.gz
23 | RUN tar -xvf go1.19.6.linux-amd64.tar.gz
24 | RUN sudo mv go /usr/local
25 | ENV GOROOT=/usr/local/go
26 | ENV GOPATH=$HOME/go
27 | ENV PATH=$GOPATH/bin:$GOROOT/bin:$PATH
28 |
29 | # Install all the tools
30 | RUN git clone https://github.com/robertdavidgraham/masscan
31 | RUN cd masscan; make -j ; cd ..
32 | RUN git clone https://github.com/blechschmidt/massdns.git
33 | RUN cd massdns ; make all ; cd ..
34 |
35 | RUN wget https://github.com/tomnomnom/assetfinder/releases/download/v0.1.1/assetfinder-linux-amd64-0.1.1.tgz
36 | RUN tar -xvf assetfinder-linux-amd64-0.1.1.tgz
37 | RUN mv assetfinder /bin ; chmod +x /bin/assetfinder
38 |
39 | RUN curl -LO https://github.com/findomain/findomain/releases/latest/download/findomain-linux-i386.zip
40 | RUN unzip findomain-linux-i386.zip
41 | RUN chmod +x findomain
42 | RUN sudo mv findomain /usr/bin/findomain
43 |
44 | RUN go install -v github.com/tomnomnom/anew@latest
45 | RUN go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
46 | RUN git clone https://github.com/jakejarvis/subtake.git
47 | RUN go install -v github.com/jakejarvis/subtake@latest
48 | RUN go install -v github.com/OWASP/Amass/v3/...@master
49 | RUN go install -v github.com/j3ssie/metabigor@maste
50 |
51 |
52 | # Install the requirments
53 | RUN pip3 install -r $(pwd)/requirements.txt
54 |
55 | # Declare environment variables
56 | ENV FLASK_APP="app.py"
57 | ENV FLASK_ENV=production
58 |
59 | # Run Web app
60 | CMD ["python3", "app.py"]
61 |
62 | # Expose the port that Flask is running on
63 | EXPOSE 5444/tcp
--------------------------------------------------------------------------------
/single.sh:
--------------------------------------------------------------------------------
1 |
2 | #!/bin/bash
3 | #########################
4 | #
5 | # Subdomain takeover tool
6 | #
7 | #########################
8 |
9 | # Clean up
10 | rm hosts.txt;
11 | rm domains.txt;
12 | rm tests.txt
13 | rm takeovers
14 | rm done.txt
15 | rm links
16 | rm asn_list
17 | rm ranges.txt
18 | rm masscan.txt
19 |
20 | mkdir -p chaos_domains
21 |
22 | # The single domain
23 | DOMAIN=$1
24 | if [[ -z "$DOMAIN" ]] ; then
25 | echo "Usage: $0