IPE: Integrated Pentest Envinronment
Authors:
This is will be more flexibility tool than pwnOSINT
- Python (>=3.8)
- nodejs (last stable; >= 14) - not for released archive
- npm (last stable; >= 6) - not for released archive
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo service postgresql start
sudo passwd postgres
sudo -u postgres psql
create database ipe;
CREATE USER ipeuser WITH PASSWORD 'ipeuser';
\c ipe
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "ipeuser";
\q
$ git clone <this project>
or download archive from page Releases$ cd ipe
$ sudo apt install python3-venv python3-dev libcurl4-gnutls-dev librtmp-dev build-essential
In some cases you should dopython3.8-venv python3.8-dev
$ python3 -m venv ./venv
$ . venv/bin/activate
(venv)$ pip install --upgrade pip
(venv)$ pip install -r requirements.txt
- Install nodejs and npm (Don't if you downloaded release from page Releases)
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt-get install -y nodejs
https://github.com/nodesource/distributions/blob/master/README.md - Install requirements for frontend (Don't if you downloaded release from page Releases)
$ npm install --only=production
-
In file
config.py
type in your database settings in variableSQLALCHEMY_DATABASE_URI
-
$ python ipe.py generate-secret-key
Insert the result of command in variableSECRET_KEY
in fileconfig.py
-
In file
config.py
changeSERVER_HOST
andSERVER_PORT
to your values -
$ python ipe.py initdb
-
Create new user with command:
$ python ipe.py register-user
--name new user name --email new user email --role new user role: 0 - god, 1 - regular, 2 - viewer --password new user password Field email is unique for users. Example: $ python ipe.py register-user --name testuser --email [email protected] --role 1 --password qwerty11 Success Or using hiding password via prompt password: $ python ipe.py register-user --name testuser --email [email protected] --role 1 password:
If you don't want use HTTPS you can go to step 8.
-
Generate self-signet certificate for https
openssl req -x509 -newkey rsa:4096 -nodes -out ipe_cert.pem -keyout ipe_key.pem -days 365
Copy 2 resulted files
ipe_cert.pem
andipe_key.pem
in directory with fileipe.py
-
In file
config.py
change variables like below (only if you done previous step):... SESSION_COOKIE_SECURE = True REMEMBER_COOKIE_SECURE = True ... SERVER_PROTO = "https://" ... IPE_CERT = "ipe_cert.pem" IPE_KEY = "ipe_key.pem"
-
$ python ipe.py run
--host Host of server. For example: 192.168.1.125 --port Port of server. For example: 3333 Default: SERVER_HOST:SERVER_PORT from config.py You can run ipe with: $ python ipe.py run --host <192.168.1.125> --port <3333> Or just: $ python ipe.py run
$ python ipe.py database upgrade
- NodeJS (last stable)
- npm (last stable)
- Go to directory
/src/webui/static
npm install
- In first terminal:
python ipe.py run
- In second terminal:
npm run dev
- before pushing execute
npm run prod
- Create branch release
- rebase from master
npm install --only=production
- remove folder
/src/webui/static/src
- remove all frontend configs
- push to release branch