diff --git a/Dockerfile b/Dockerfile index 098737e8..cedc0792 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,20 @@ -FROM golang:1.22 as go-wayback-builder +FROM --platform=$BUILDPLATFORM golang:1.22 as go-wayback-builder +ARG TARGETOS TARGETARCH RUN git clone https://github.com/Abhinandan-Khurana/go-wayback.git WORKDIR go-wayback -RUN GOOS=linux GOARCH=amd64 go build -o go-wayback v2/main.go +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o go-wayback v2/main.go RUN chmod +x go-wayback RUN cp go-wayback /usr/bin/ -FROM --platform=linux/amd64 python:3.9-slim +FROM --platform=$BUILDPLATFORM golang:1.22 as go-virustotal-builder +ARG TARGETOS TARGETARCH +RUN git clone https://github.com/Abhinandan-Khurana/go_virustotal.git +WORKDIR go_virustotal +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o go_virustotal . +RUN chmod +x go_virustotal +RUN cp go_virustotal /usr/bin/ + +FROM python:3.9-slim # Install wget RUN apt-get update && apt-get install -y wget unzip tar gcc libpcap-dev dnsutils git dnstwist @@ -16,77 +25,76 @@ RUN apt-get update --fix-missing && apt install git -y # Setup work directory WORKDIR /home/mantis -# Install subfinder -RUN echo "Installing subfinder" -RUN wget https://github.com/projectdiscovery/subfinder/releases/download/v2.6.6/subfinder_2.6.6_linux_amd64.zip -RUN unzip subfinder_2.6.6_linux_amd64.zip -RUN mv subfinder /usr/bin -RUN rm -rf * - # Install Go_Virustotal -RUN echo "Installing Go_Virustotal" -RUN wget https://github.com/Abhinandan-Khurana/go_virustotal/releases/download/v1.0.1/go_virustotal-linux-v1.0.1 -RUN mv go_virustotal-linux-v1.0.1 go_virustotal -RUN chmod +x go_virustotal -RUN mv go_virustotal /usr/bin/ +COPY --from=go-virustotal-builder /usr/bin/go_virustotal /usr/bin # Install Go_Wayback COPY --from=go-wayback-builder /usr/bin/go-wayback /usr/bin +ARG TARGETARCH +# Map Docker arch names to tool-specific naming conventions +# Saving it in the different formats to use for different tools as needed +RUN echo "TARGETARCH=$TARGETARCH" && \ + case "$TARGETARCH" in \ + amd64|x86_64) \ + echo "amd64" > /tmp/arch && echo "x64" > /tmp/arch_alt && echo "x86_64" > /tmp/arch_uname ;; \ + arm64|aarch64) \ + echo "arm64" > /tmp/arch && echo "aarch64" > /tmp/arch_alt ;; \ + esac + +# Install amass +RUN echo "Installing amass" && \ + ARCH=$(cat /tmp/arch) && \ + wget -O amass.zip https://github.com/owasp-amass/amass/releases/download/v4.1.0/amass_Linux_${ARCH}.zip && \ + unzip amass.zip && \ + mv amass_Linux_${ARCH}/amass /usr/bin && \ + rm -rf * + +# Install subfinder +RUN ARCH=$(cat /tmp/arch) && \ + wget -O subfinder.zip https://github.com/projectdiscovery/subfinder/releases/download/v2.6.6/subfinder_2.6.6_linux_${ARCH}.zip && \ + unzip subfinder.zip && mv subfinder /usr/bin && rm -rf * + # Install HTTPX -RUN echo "Installing HTTPX" -RUN wget https://github.com/projectdiscovery/httpx/releases/download/v1.6.8/httpx_1.6.8_linux_amd64.zip -RUN unzip httpx_1.6.8_linux_amd64.zip -RUN mv httpx /usr/bin -RUN rm -rf * +RUN ARCH=$(cat /tmp/arch) && \ + wget -O httpx.zip https://github.com/projectdiscovery/httpx/releases/download/v1.6.8/httpx_1.6.8_linux_${ARCH}.zip && \ + unzip httpx.zip && mv httpx /usr/bin && rm -rf * # Install Findcdn RUN echo "Installing Findcdn" RUN pip install git+https://github.com/cisagov/findcdn.git -# Install Ipinfo -RUN echo "Installing Ipinfo" -RUN wget https://github.com/ipinfo/cli/releases/download/ipinfo-3.3.1/ipinfo_3.3.1_linux_amd64.tar.gz -RUN tar -xvf ipinfo_3.3.1_linux_amd64.tar.gz -RUN mv ipinfo_3.3.1_linux_amd64 ipinfo -RUN mv ipinfo /usr/bin -RUN rm -rf * +# Install ipinfo +RUN ARCH=$(cat /tmp/arch) && \ + wget -O ipinfo.tar.gz https://github.com/ipinfo/cli/releases/download/ipinfo-3.3.1/ipinfo_3.3.1_linux_${ARCH}.tar.gz && \ + tar -xvf ipinfo.tar.gz && mv ipinfo_3.3.1_linux_${ARCH} ipinfo && mv ipinfo /usr/bin && rm -rf * # Install naabu -RUN echo "Installing naabu" -RUN wget https://github.com/projectdiscovery/naabu/releases/download/v2.1.9/naabu_2.1.9_linux_amd64.zip -RUN unzip naabu_2.1.9_linux_amd64.zip -RUN mv naabu /usr/bin -RUN rm -rf * +RUN ARCH=$(cat /tmp/arch) && \ + wget -O naabu.zip https://github.com/projectdiscovery/naabu/releases/download/v2.5.0/naabu_2.5.0_linux_${ARCH}.zip && \ + unzip naabu.zip && mv naabu /usr/bin && rm -rf * # Install nuclei -RUN echo "Installing nuclei" -RUN wget https://github.com/projectdiscovery/nuclei/releases/download/v3.3.4/nuclei_3.3.4_linux_amd64.zip -RUN unzip nuclei_3.3.4_linux_amd64.zip -RUN mv nuclei /usr/bin -RUN rm -rf * +RUN ARCH=$(cat /tmp/arch) && \ + wget -O nuclei.zip https://github.com/projectdiscovery/nuclei/releases/download/v3.3.4/nuclei_3.3.4_linux_${ARCH}.zip && \ + unzip nuclei.zip && mv nuclei /usr/bin && rm -rf * -# Install gitleaks -RUN echo "Installing gitleaks" -RUN wget https://github.com/gitleaks/gitleaks/releases/download/v8.18.1/gitleaks_8.18.1_linux_x64.tar.gz -RUN tar -xvf gitleaks_8.18.1_linux_x64.tar.gz -RUN mv gitleaks /usr/bin -RUN rm -rf * +RUN ARCH=$(cat /tmp/arch) && \ + wget -O gitleaks.tar.gz https://github.com/gitleaks/gitleaks/releases/download/v8.18.1/gitleaks_8.18.1_linux_${ARCH}.tar.gz && \ + tar -xvf gitleaks.tar.gz && mv gitleaks /usr/bin && rm -rf * # Install wafw00f RUN pip install wafw00f -#Install gau -RUN echo "Installing GAU" -RUN wget https://github.com/lc/gau/releases/download/v2.2.1/gau_2.2.1_linux_amd64.tar.gz -RUN tar -xvf gau_2.2.1_linux_amd64.tar.gz -RUN mv gau /usr/bin -RUN rm -rf * +# Install gau +RUN ARCH=$(cat /tmp/arch) && \ + wget -O gau.tar.gz https://github.com/lc/gau/releases/download/v2.2.1/gau_2.2.1_linux_${ARCH}.tar.gz && \ + tar -xvf gau.tar.gz && mv gau /usr/bin && rm -rf * # Installing Corsy RUN echo "Installing Corsy" -RUN wget https://github.com/s0md3v/Corsy/archive/refs/tags/1.0-rc.zip -RUN unzip 1.0-rc.zip +RUN wget -O corsy.zip https://github.com/s0md3v/Corsy/archive/refs/tags/1.0-rc.zip +RUN unzip corsy.zip RUN mv Corsy-1.0-rc Corsy RUN mv Corsy /usr/bin RUN rm -rf * diff --git a/setup/docker/docker-compose.dev.yml b/setup/docker/docker-compose.dev.yml new file mode 100644 index 00000000..a89c034b --- /dev/null +++ b/setup/docker/docker-compose.dev.yml @@ -0,0 +1,64 @@ +services: + mantis: + build: + dockerfile: Dockerfile + context: ../../ + container_name: mantis + restart: on-failure + command: sleep infinity + networks: + network: + ipv4_address: 10.10.0.2 + extra_hosts: + - "mantis.db:10.10.0.3" + environment: + - "PS1='Mantis > '" + mongodb: + container_name: mongodb + image: mongo:latest + restart: always + ports: + - "127.0.0.1:27000:27017" + networks: + network: + ipv4_address: 10.10.0.3 + command: mongod --bind_ip 10.10.0.3 + environment: + MONGO_INITDB_ROOT_DATABASE: mantis + volumes: + - ./configs/mongo-config.js:/docker-entrypoint-initdb.d/mongo-init.sh:ro + appsmith: + image: index.docker.io/appsmith/appsmith-ce + container_name: appsmith + ports: + - "1337:80" + - "1338:443" + networks: + network: + ipv4_address: 10.10.0.4 + extra_hosts: + - "mantis.db:10.10.0.3" + volumes: + - ./stacks:/appsmith-stacks + restart: unless-stopped + dashboard: + image: ghcr.io/phonepe/mantis-dashboard:latest + container_name: mantis-dashboard + ports: + - "8000:8000" + restart: on-failure + networks: + network: + ipv4_address: 10.10.0.5 + extra_hosts: + - "mantis.db:10.10.0.3" +networks: + network: + name: mantis-network + external: false + driver: bridge + ipam: + driver: default + config: + - subnet: 10.10.0.0/16 + gateway: 10.10.0.1 diff --git a/setup/native-setup.sh b/setup/native-setup.sh index 682c40f7..88647ec4 100644 --- a/setup/native-setup.sh +++ b/setup/native-setup.sh @@ -55,39 +55,89 @@ sudo apt-get install -y wget unzip -qq tar gcc libpcap-dev dnsutils git python3. echo "export PATH='$HOME/.local/bin:$PATH'" | tee -a ~/.bashrc source ~/.bashrc +# Get system info +echo -e "[*] ${BCyan}Getting system information${NC}" +os="$(uname -o)" +arch="$(uname -m)" + +# Map OS for Go downloads +kernel="$(uname -s)" +case "$kernel" in + Linux*) go_os="linux" ;; + Darwin*) go_os="darwin" ;; + *) go_os="linux" ;; +esac + +# Map arch for Go downloads +case "$arch" in + x86_64) go_arch="amd64" ;; + aarch64) go_arch="arm64" ;; + arm64) go_arch="arm64" ;; + i386) go_arch="386" ;; + *) go_arch="amd64" ;; +esac + +# Install Go +echo -e "[+]${Green} Installing Go${NC}" +wget -q -O go.tar.gz "https://go.dev/dl/go1.22.0.${go_os}-${go_arch}.tar.gz" +sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go.tar.gz +rm go.tar.gz +export PATH=$PATH:/usr/local/go/bin +echo "export PATH=\$PATH:/usr/local/go/bin" | tee -a ~/.bashrc + +# Install go-wayback +echo -e "[+]${Green} Installing go-wayback${NC}" +git clone https://github.com/Abhinandan-Khurana/go-wayback.git +cd go-wayback +go build -o go-wayback v2/main.go +chmod +x go-wayback +sudo mv go-wayback /usr/bin/ +cd .. +rm -rf go-wayback + +# Install go_virustotal +echo -e "[+]${Green} Installing go_virustotal${NC}" +git clone https://github.com/Abhinandan-Khurana/go_virustotal.git +cd go_virustotal +go build -o go_virustotal . +chmod +x go_virustotal +sudo mv go_virustotal /usr/bin/ +cd .. +rm -rf go_virustotal + # Install amass echo -e "[+]${Green} Installing AMass${NC}" -wget -q -O amass.zip https://github.com/owasp-amass/amass/releases/download/v4.1.0/amass_Linux_amd64.zip +wget -q -O amass.zip "https://github.com/owasp-amass/amass/releases/download/v4.1.0/amass_${os}_${arch}.zip" unzip -qq -d amass -j amass.zip sudo mv amass/amass /usr/bin ## Install subfinder echo -e "[+]${Green} Installing Subfinder${NC}" -wget -q -O subfinder.zip https://github.com/projectdiscovery/subfinder/releases/download/v2.6.3/subfinder_2.6.3_linux_amd64.zip +wget -q -O subfinder.zip "https://github.com/projectdiscovery/subfinder/releases/download/v2.6.3/subfinder_2.6.3_${os}_${arch}.zip" unzip -qq -d subfinder -j subfinder.zip sudo mv subfinder/subfinder /usr/bin/ ## Install httpx echo -e "[+]${Green} Installing httpx${NC}" -wget -q -O httpx.zip https://github.com/projectdiscovery/httpx/releases/download/v1.3.7/httpx_1.3.7_linux_amd64.zip +wget -q -O httpx.zip "https://github.com/projectdiscovery/httpx/releases/download/v1.3.7/httpx_1.3.7_${os}_${arch}.zip" unzip -qq -d httpx -j httpx.zip sudo mv httpx/httpx /usr/bin/ ## Install naabu echo -e "[+]${Green} Installing naabu${NC}" -wget -q -O naabu.zip https://github.com/projectdiscovery/naabu/releases/download/v2.1.9/naabu_2.1.9_linux_amd64.zip +wget -q -O naabu.zip "https://github.com/projectdiscovery/naabu/releases/download/v2.1.9/naabu_2.1.9_${os}_${arch}.zip" unzip -qq -d naabu -j naabu.zip sudo mv naabu/naabu /usr/bin/ # Install nuclei echo -e "[+]${Green} Installing Nuclei${NC}" -wget -q -O nuclei.zip https://github.com/projectdiscovery/nuclei/releases/download/v3.0.4/nuclei_3.0.4_linux_amd64.zip +wget -q -O nuclei.zip "https://github.com/projectdiscovery/nuclei/releases/download/v3.0.4/nuclei_3.0.4_${os}_${arch}.zip" unzip -qq -d nuclei -j nuclei.zip sudo mv nuclei/nuclei /usr/bin/ # Install gitleaks echo -e "[+]${Green} Installing gitleaks${NC}" -wget -q -O gitleaks.tar.gz https://github.com/gitleaks/gitleaks/releases/download/v8.18.1/gitleaks_8.18.1_linux_x64.tar.gz +wget -q -O gitleaks.tar.gz "https://github.com/gitleaks/gitleaks/releases/download/v8.18.1/gitleaks_8.18.1_${os}_${arch}.tar.gz" tar -xf gitleaks.tar.gz sudo mv gitleaks /usr/bin/ @@ -102,17 +152,18 @@ python3.9 -m pip install dnstwist[full] # Install IPinfo echo -e "[+]${Green} Installing IPinfo ${NC}" -curl -sLO https://github.com/ipinfo/cli/releases/download/ipinfo-3.2.0/ipinfo_3.2.0.deb -sudo dpkg -i ipinfo_3.2.0.deb +wget -q -O ipinfo.tar.gz "https://github.com/ipinfo/cli/releases/download/ipinfo-3.2.0/ipinfo_3.2.0_${os}_${arch}.tar.gz" +tar -xf ipinfo.tar.gz +rm ipinfo.tar.gz +sudo mv "ipinfo*" /usr/bin/ipinfo # Install wafw00f - echo -e "[+]${Green} Installing wafw00f ${NC}" python3.9 -m pip install wafw00f --quiet #Install gau echo -e "[+]${Green} Installing gau${NC}" -wget -O gau.tar.gz https://github.com/lc/gau/releases/download/v2.2.1/gau_2.2.1_linux_amd64.tar.gz +wget -O gau.tar.gz "https://github.com/lc/gau/releases/download/v2.2.1/gau_2.2.1_${os}_${arch}.tar.gz" tar -xvf gau.tar.gz sudo mv gau /usr/bin