Think of CrazyWall as a digital evidence board. It accepts and treats different user inputs, namely IP address, username, full name, domain name. after detecting and processing your input based on your input, it returns different data.
The complete writeup is available here.
How to use it?
All you have to do is go to the main page, type your keyword, select your mode between databases and live and hit the enter button. Valid inputs are : a domain name, e.g.,
domain.com a phone number (international format), e.g.,
00123456789 a full name, e.g.,
john due a user name, e.g.,
sherlock an IP address, e.g.,
18.104.22.168 a keyword for live search, e.g.,
crypto. Please watch the demo for complete usage.
The primary motivation was to create a PoC toward incredible real-time threat intel; the original plan was to re-write this (cut out the external APIs and add their functionality to the back-end as an engine) embed it into our Suite. Then decided to release a chunk of research as a standalone suite in front of you called CrazyWall.
- Hand-picked sources: data sources are synergized
- Cross-data-search: getting all associations, like addresses, e-mails, phone numbers, etc., with a particular entity.
- Stand alone API: gathers all external resources under a unified, simple-to-use API to feed/pipe them to your existing toolkit or machine learning models without the need to use the front end.
in this section, you can learn how this tool is developed and deployed.
The front-end is developed using
Vue.js 2.x /
Nuxt.js; all you have to do is make sure you install
Node.js 14+ on your target machine.
Go to the front-end directory. It uses client-side rendering and static site generation as it requires no SEO and brings complete separation from the back-end.
npm run build npm run start
The back-end is developed in Golang, using
MySQl8. To work on the back-end, you have to install golang
1.16+ to get the same hot-reloading as the front-end while developing; you can do the following. To start back-end, you need to copy the
.env.example file to
.env and then obtain the required API. A majority of them offer a free API. check out data source section for more information.
Using fiber CLI
you can deploy it using managed or manual. Please note that this project is meant to be a PoC, so you are responsible for thoroughly reviewing and testing the code before use in any non-testing environment.
For managed services, which are more painless, you can use
Google App Engine,
AWS Elastic Beanstalk,
DigitalOcean App Platform. They all have app detection, and you can follow their guides on how to deploy
Here is an example of manual deployment on Ubuntu
Node 14+ and
Golang 13+ using
Here is an example of the Nginx configuration with let’s encrypt
(certbot) SSL, which handles both front-end and API.
Front-End persitance service
[Unit] After=network.service Description="Front End" [Service] # current working directory (where your app lives) WorkingDirectory=/root/app/crazymap-frontend # setting ENV variables Environment=NODE_ENV=production BASE_URL=https://api.crazywall.io # start your app with the command ExecStart=yarn start # always restart the app if it crashes Restart=always # if the crash happens, wait 3 seconds before restarting RestartSec=3 # Run this service automatically after boot: [Install] WantedBy=multi-user.target
Back-end persistent service
[Unit] Description=CrazyWall Api [Service] Type=simple Restart=always RestartSec=5s WorkingDirectory=/root/app/crazymap-backend ExecStart=/root/app/crazymap-backend/api Environment=DATABASE_HOST="127.0.0.1" Environment=DATABASE_PORT=3306 [Install] WantedBy=multi-user.target
finally enable them and reload
systemctl daemon-reload nginx -s reload systemctl enable api systemctl enable front