yogeshojha / rengine

reNgine is an automated reconnaissance framework for web applications with a focus on highly configurable streamlined recon process via Engines, recon data correlation and organization, continuous monitoring, backed by a database, and simple yet intuitive User Interface. reNgine makes it easy for penetration testers to gather reconnaissance with minimal configuration and with the help of reNgine's correlation, it just makes recon effortless.
https://yogeshojha.github.io/rengine/
GNU General Public License v3.0
7.41k stars 1.13k forks source link

Can I use reNgine on raspberry or VPS? #293

Closed spazbg closed 3 years ago

spazbg commented 3 years ago

Can I use reNgine on Raspberry or VPS? Which are the minimum requirements for the tool (cpu/ram) and the recommended one?

FlaviuPopescu commented 3 years ago

I wouldn't see why it won't work on a good spec Pi, you can definitely use it on a VPS, I'd say the basic req you'd want to have minimum 1GB ram for example the $5 vps.

spazbg commented 3 years ago

I am having Raspberry 3, but maybe will buy 4 with more ram available

FlaviuPopescu commented 3 years ago

Sure.. Give it a try see how it works, It really depends on how big your target is, if you perform a scan on a big company that has hundreds of subdomains of course this will be lengthy.. you get the point.

yogeshojha commented 3 years ago

I guess on raspberry pi, somebody dmed me on Twitter that chromium doesn't work or chromium build is not available for ARM.

Except for screenshots, we dont use chromium eitherways. So everything else should work

VPS, I have used digitalocean and works flawlessly.

yogeshojha commented 3 years ago

Please keep us updated if somebody is able to run this on Raspi

ym500 commented 2 years ago

HI @yogeshojha , you are using eyewitnees for screenshots right ? , if its right its using geckodriver for firefox not chromium . it needs to be built manually i didnot try it yet . i will give it a try

ym500 commented 2 years ago

@yogeshojha @spazbg Hi all this docker file should make it work , i didnot install on rasberi but itested it on arm ubuntu 20.4 the problem was in geckodriver and go versions not being built for arm arch

FROM ubuntu:20.04

ENV GO111MODULE="on"
ENV GOPROXY="https://goproxy.io,direct"
# Labels and Credits
LABEL \
    name="reNgine" \
    author="Yogesh Ojha <yogesh.ojha11@gmail.com>" \
    description="reNgine is a automated pipeline of recon process, useful for information gathering during web application penetration testing."

# Environment Variables
ENV DEBIAN_FRONTEND="noninteractive" \
    DATABASE="postgres"

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Install essentials
RUN apt update -y && apt install -y  --no-install-recommends \
    build-essential \
    cmake \
    firefox \
    gcc \
    git \
    libpq-dev \
    libpq-dev \
    libpcap-dev \
    netcat \
    postgresql \
    python3 \
    python3-dev \
    python3-pip \
    python3-netaddr \
    wget \
    x11-utils \
    xvfb \
    python3-cffi \
    python3-brotli \
    libpango-1.0-0 \
    libpangoft2-1.0-0 \
    geoip-bin \
    geoip-database \
    firefox-geckodriver  #install Download geckodriver

# Download and install go 1.17
RUN wget https://golang.org/dl/go1.17.2.linux-arm64.tar.gz
RUN tar -xvf go1.17.2.linux-arm64.tar.gz
RUN rm go1.17.2.linux-arm64.tar.gz
RUN mv go /usr/local

# ENV for Go
ENV GOROOT="/usr/local/go"
ENV PATH="${PATH}:${GOROOT}/bin"
ENV PATH="${PATH}:${GOPATH}/bin"

ENV GOPATH=$HOME/go
ENV PATH="${PATH}:${GOROOT}/bin:${GOPATH}/bin"

# Make directory for app
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Download Go packages
RUN go install -v github.com/hakluke/hakrawler@latest

RUN GO111MODULE=on go install -v -v github.com/bp0lr/gauplus@latest

RUN GO111MODULE=on go install -v github.com/jaeles-project/gospider@latest

RUN go install -v github.com/OWASP/Amass/v3/...@latest

RUN go install -v github.com/ffuf/ffuf@latest

RUN go install -v github.com/tomnomnom/assetfinder@latest
RUN GO111MODULE=on go install -v github.com/tomnomnom/gf@latest
RUN GO111MODULE=on go install -v github.com/tomnomnom/unfurl@latest
RUN GO111MODULE=on go install -v github.com/tomnomnom/waybackurls@latest

RUN GO111MODULE=on go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
RUN GO111MODULE=on go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
RUN GO111MODULE=on go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
RUN GO111MODULE=on go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest

# Update Nuclei and Nuclei-Templates
RUN nuclei -update
RUN nuclei -update-templates

# Copy requirements
COPY ./requirements.txt /tmp/requirements.txt
RUN pip3 install --upgrade setuptools pip && \
    pip3 install -r /tmp/requirements.txt

# install eyewitness

RUN python3 -m pip install fuzzywuzzy \
    selenium \
    python-Levenshtein \
    pyvirtualdisplay \
    netaddr

# Copy source code
COPY . /usr/src/app/

# httpx seems to have issue, use alias instead!!!
RUN echo 'alias httpx="/go/bin/httpx"' >> ~/.bashrc