Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.

Commit e92a0b7

Browse files
author
Aleksandar Straumann
committed
Remove explicit test for file creation in travis.yml. Fix typos. Fix badges. Add Gowitness.
1 parent 147fced commit e92a0b7

9 files changed

+77
-52
lines changed

.travis.yml

+21-29
Original file line numberDiff line numberDiff line change
@@ -18,73 +18,65 @@ jobs:
1818
- stage: start scans
1919
name: Sublist3r
2020
script:
21-
- drrobot gather -sub github.com
22-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/sublist3r)" ]; then exit 1; else echo "Success"; fi;
21+
- drrobot gather -sub localhost
2322
- script:
24-
- drrobot gather -knock github.com
25-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/knock)" ]; then exit 1; else echo "Success"; fi;
23+
- drrobot gather -knock localhost
2624
name: Knock
2725
- script:
28-
- drrobot gather -amass github.com
29-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/amass)" ]; then exit 1; else echo "Success"; fi;
26+
- drrobot gather -amass localhost
3027
name: Amass
3128
- script:
32-
- drrobot gather -turbo github.com
33-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/turbolist3r)" ]; then exit 1; else echo "Success"; fi;
29+
- drrobot gather -turbo localhost
3430
name: Turbolist3r
3531
- script:
36-
- drrobot gather -sfinder github.com
37-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/subfinder)" ]; then exit 1; else echo "Success"; fi;
32+
- drrobot gather -sfinder localhost
3833
name: Subfinder
3934
- script:
40-
- drrobot gather -recon github.com
41-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/reconng)" ]; then exit 1; else echo "Success"; fi;
35+
- drrobot gather -recon localhost
4236
name: ReconNG
4337
- script:
44-
- drrobot gather -altdns github.com
45-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/altdns)" ]; then exit 1; else echo "Success"; fi;
38+
- drrobot gather -altdns localhost
4639
name: AltDNS
4740
- script:
48-
- drrobot gather -anubis github.com
49-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/anubis)" ]; then exit 1; else echo "Success"; fi;
41+
- drrobot gather -anubis localhost
5042
name: Anubis
5143
- script:
52-
- drrobot gather -ctexpo github.com
53-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/ctexpose)" ]; then exit 1; else echo "Success"; fi;
44+
- drrobot gather -ctexpo localhost
5445
name: CTExpose
5546
- script:
56-
- drrobot gather -ctfr github.com
47+
- drrobot gather -ctfr localhost
5748
name: CTFR
5849
- script:
59-
- drrobot gather -pdlist github.com
60-
- if [ -z "$(ls -A $HOME/.drrobot/output/github.com/pdlist)" ]; then exit 1; else echo "Success"; fi;
50+
- drrobot gather -pdlist localhost
6151
name: PDList
6252
- stage: Test screenshots
6353
name: Webscreenshot
6454
script:
6555
- drrobot -h
6656
- mkdir -p $HOME/.drrobot/output/singlewebsitetest/aggregated
67-
- echo "https://github.com" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
57+
- echo "http://localhost" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
6858
- drrobot inspect --file $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt -webscreen singlewebsitetest
69-
- if [ -z "$(ls -A $HOME/.drrobot/output/singlewebsitetest/webscreenshot)" ]; then exit 1; else echo "Success"; fi;
7059
- script:
7160
- drrobot -h
7261
- mkdir -p $HOME/.drrobot/output/singlewebsitetest/aggregated
73-
- echo "https://github.com" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
62+
- echo "http://localhost" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
7463
- drrobot inspect --file $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt -nmapscreen singlewebsitetest
75-
- if [ -z "$(ls -A $HOME/.drrobot/output/singlewebsitetest/nmapscreen)" ]; then exit 1; else echo "Success"; fi;
7664
name: NMAP
7765
- script:
7866
- drrobot -h
7967
- mkdir -p $HOME/.drrobot/output/singlewebsitetest/aggregated
80-
- echo "https://github.com" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
68+
- echo "http://localhost" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
8169
- drrobot inspect --file $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt -eye singlewebsitetest
82-
- if [ -z "$(ls -A $HOME/.drrobot/output/singlewebsitetest/Eyewitness)" ]; then exit 1; else echo "Success"; fi;
8370
name: Eyewitness
8471
- script:
8572
- drrobot -h
8673
- mkdir -p $HOME/.drrobot/output/singlewebsitetest/aggregated
87-
- echo "https://github.com" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
74+
- echo "http://localhost" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
8875
- drrobot inspect --file $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt -http singlewebsitetest
89-
- if [ -z "$(ls -A $HOME/.drrobot/output/singlewebsitetest/httpscreenshot)" ]; then exit 1; else echo "Success"; fi;
9076
name: HTTPScreenshot
77+
- script:
78+
- drrobot -h
79+
- mkdir -p $HOME/.drrobot/output/singlewebsitetest/aggregated
80+
- echo "http://localhost" > $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt
81+
- drrobot inspect --file $HOME/.drrobot/output/singlewebsitetest/aggregated/aggregated_protocol_hostnames.txt -gowitness singlewebsitetest
82+
name: GOWitness

README.md

+5-12
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,8 @@
1010
: : :
1111
```
1212

13-
[![Dc27Badge](https://img.shields.io/badge/DEF%20CON-27-green)](https://defcon.org/html/defcon-27/dc-27-demolabs.html#Dr.%20ROBOT)
14-
[![License](http://img.shields.io/:license-mit-blue.svg)](https://github.com/sandialabs/dr_robot/blob/master/LICENSE)
15-
[![Build Status](https://travis-ci.org/sandialabs/dr_robot.svg?branch=master)](https://travis-ci.org/sandialabs/dr_robot)
16-
[Version](https://img.shields.io/github/v/release/SandiaLabs/dr_robot)
17-
[Last Commit](https://img.shields.io/github/last-commit/sandialabs/dr_robot)
18-
[Docker](https://img.shields.io/github/pipenv/locked/dependency-version/sandialabs/dr_robot/docker)
19-
[Mattermost](https://img.shields.io/github/pipenv/locked/dependency-version/sandialabs/dr_robot/mattermostdriver)
20-
[SlackClient](https://img.shields.io/github/pipenv/locked/dependency-version/sandialabs/dr_robot/slackclient)
21-
[Size](https://img.shields.io/github/repo-size/sandialabs/dr_robot)
13+
[![Dc27Badge](https://img.shields.io/badge/DEF%20CON-27-green)](https://defcon.org/html/defcon-27/dc-27-demolabs.html#Dr.%20ROBOT)[![License](http://img.shields.io/:license-mit-blue.svg)](https://github.com/sandialabs/dr_robot/blob/master/LICENSE)[![Build Status](https://travis-ci.org/sandialabs/dr_robot.svg?branch=master)](https://travis-ci.org/sandialabs/dr_robot)[![GitHub release (latest by date)](https://img.shields.io/github/v/release/sandialabs/dr_robot)](https://github.com/sandialabs/dr_robot/blob/master/CHANGELOG.md)[![GitHub Pipenv locked dependency version](https://img.shields.io/github/pipenv/locked/dependency-version/sandialabs/dr_robot/docker)]()[![GitHub Pipenv locked dependency version](https://img.shields.io/github/pipenv/locked/dependency-version/sandialabs/dr_robot/mattermostdriver)]() ![GitHub Pipenv locked dependency version](https://img.shields.io/github/pipenv/locked/dependency-version/sandialabs/dr_robot/slackclient)
14+
2215
Copyright 2019 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.
2316

2417
## Introduction
@@ -49,7 +42,7 @@ Dr.ROBOT is a tool for **Domain Reconnaissance and Enumeration**. By utilizing c
4942

5043
## Config Files
5144

52-
DrROBOT adds config files, templates, logs, output files, and db files to your $HOME directory under ```.drrobot```
45+
Dr.ROBOT adds config files, templates, logs, output files, and db files to your ```$HOME``` directory under ```.drrobot```
5346

5447
The directory structure will look like this:
5548
```
@@ -61,7 +54,7 @@ drwxr-xr-x 21 672 Sep 16 13:51 docker_buildfiles
6154
drwxr-xr-x 4 128 Sep 16 15:38 logs
6255
drwxr-xr-x 3 96 Sep 16 12:46 output
6356
```
64-
If you ever break your config beyond saving, you can delete the config.json file in your $HOME directory and rerun Dr.ROBOT, which will generate a new config file for you.
57+
If you ever break your config beyond saving, you can delete the config.json file in your ```$HOME``` directory and rerun Dr.ROBOT, which will generate a new config file for you.
6558

6659
## Installation (with pip)
6760

@@ -150,7 +143,7 @@ optional arguments:
150143

151144
## Certs
152145

153-
Running this behind a proxy was a pain. To make this less painful we create a certs directory under the **$HOME/.drrobot/*** where you can add your crt files. As part of the dockerfile build process we now generate tarfiles with the certificates so that applications, such as Amass, can run.
146+
Running this behind a proxy was a pain. To make this less painful we create a certs directory under the ```$HOME/.drrobot/*``` where you can add your crt files. As part of the dockerfile build process we now generate tarfiles with the certificates so that applications, such as Amass, can run.
154147

155148
## Minio
156149

readmes/config.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Take special note of the `ansible_arguments`. The two required items are `config
8585
Note:
8686

8787
* `$infile` comes from the outermost **infile**, so that it is consistent for both docker and ansible. You can use a full path to a file for input if you desire.
88-
* `$outdir` comes from Dr.ROBOT. It will generate a path that points to `$HOME/.drrobot/output/<domain>/`. Again, you can specify a custom path if you like.
88+
* `$outdir` comes from Dr.ROBOT. It will generate a path that points to ````$HOME/.drrobot/output/<domain>/`. ``` Again, you can specify a custom path if you like.
8989

9090
#### The Playbook
9191
This will simply be a standard playbook with a few changes so that Dr.ROBOT can use the parameters we fed it. To make sure a parameter that we specified in the "extra_flags" JSON blob is available, use Ansible syntax for variables: ```"{{ variable_name|quote }}"``` (Note the *quote* helps prevent issues with variable names)

readmes/usage.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ drrobot gather <tool> <domain>
2020

2121
## Inspection
2222

23-
Inspection is not a passive usage. It will run a tool that uses the aggregated information to grab screenshots for manual enumeration.
23+
The inspection process will generate noise due to the headless automated browsing which are easily detectable. If your list is large enough this could cause your IP to be blocked.
2424

2525
```
2626
drrobot inspect --help

src/robot_api/configs/default_config.json

+12
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,18 @@
304304
"infile" : "/tmp/output/aggregated/aggregated_hostnames.txt",
305305
"tool" : "chromium-browser"
306306
},
307+
"Gowitness" : {
308+
"name" : "Gowitness",
309+
"short_name" : "gowitness",
310+
"docker_name" : "gowitness",
311+
"mode" : "DOCKER",
312+
"network_mode": "host",
313+
"default_conf" : "docker_buildfiles/Dockerfile.Gowitness.Screenshot.tmp",
314+
"active_conf" : "docker_active/Dockerfile.Gowitness.Screenshot",
315+
"description" : "gowitness is a website screenshot utility written in Golang",
316+
"output" : "/tmp/output/",
317+
"infile" : "/tmp/output/aggregated/aggregated_protocol_hostnames.txt"
318+
},
307319
"Webscreenshot" : {
308320
"name" : "WebScreenshot",
309321
"short_name" : "webscreen",

src/robot_api/docker_buildfiles/Dockerfile.Eyewitness.tmp

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ RUN cd setup && \
4141
chown -R $$user:$$user /home/$$user/EyeWitness && \
4242
mkdir -p /tmp/EyeWitness
4343

44-
ENTRYPOINT mkdir -p $output/Eyewitness && python EyeWitness.py -d $output -f $infile --no-prompt --web --threads 40 --max-retries 1
44+
ENTRYPOINT mkdir -p $output/Eyewitness && python EyeWitness.py -d $output/EyeWitness -f $infile --no-prompt --web --threads 40 --max-retries 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
FROM golang:1.13.1-buster as build
2+
3+
RUN if [ -n $dns ]; \
4+
then echo "nameserver $dns" >> /etc/resolv.conf;\
5+
fi;\
6+
apt update && \
7+
apt install -y git ca-certificates chromium;
8+
9+
ADD certs/ /usr/local/share/ca-certificates/
10+
RUN update-ca-certificates
11+
12+
RUN if [ -n $dns ]; \
13+
then echo "nameserver $dns" >> /etc/resolv.conf;\
14+
fi;\
15+
go get -u github.com/sensepost/gowitness
16+
17+
ENV GO111MODULE on
18+
19+
WORKDIR /go/src/github.com/sensepost/gowitness
20+
21+
RUN if [ -n $dns ]; \
22+
then echo "nameserver $dns" >> /etc/resolv.conf;\
23+
fi;\
24+
go build && \
25+
cp gowitness /usr/bin/
26+
27+
ENV http_proxy $proxy
28+
ENV https_proxy $proxy
29+
ENV HOME /
30+
31+
32+
ENTRYPOINT mkdir $output/gowitness && cd $output/gowitness && gowitness file -s $infile --threads 20

src/robot_api/docker_buildfiles/Dockerfile.HTTPScreenshot.tmp

+2-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ RUN if [ -n $dns ]; \
2323
RUN if [ -n $dns ]; \
2424
then echo "nameserver $dns" >> /etc/resolv.conf;\
2525
fi;\
26-
git clone https://github.com/Sandarmann/httpscreenshot.git
26+
git clone https://github.com/CrimsonK1ng/httpscreenshot.git
2727

2828
RUN cd httpscreenshot \
2929
&& ./install-dependencies.sh \
@@ -33,7 +33,4 @@ RUN cd httpscreenshot \
3333
&& unzip -o chromedriver_linux64.zip \
3434
&& ln -s /httpscreenshot/chromedriver /usr/bin/chromedriver
3535

36-
RUN mkdir -p $output/httpscreenshot
37-
WORKDIR $output
38-
39-
ENTRYPOINT httpscreenshot -i $infile -b chrome -p -w 40 -a -vH
36+
ENTRYPOINT mkdir -p $output/httpscreenshot && cd $output/httpscreenshot && httpscreenshot -i $infile -b chrome -p -w 40 -a -vH

src/robot_api/docker_buildfiles/Dockerfile.Nmap.Screenshot.tmp

+2-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ RUN update-ca-certificates
1414

1515
RUN if [ -n $dns ]; \
1616
then echo "nameserver $dns" >> /etc/resolv.conf; fi;\
17-
git clone https://github.com/Sandarmann/nmap-screenshot.git \
17+
git clone https://github.com/CrimsonK1ng/nmap-screenshot.git \
1818
&& cp nmap-screenshot/http-screenshot.nse /usr/share/nmap/scripts/http-screenshot.nse \
1919
&& nmap --script-updatedb
2020

@@ -23,7 +23,6 @@ RUN if [ -n $dns ]; \
2323
wget -O wkhtml.deb https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb \
2424
&& dpkg -i wkhtml.deb
2525

26-
RUN mkdir $output/nmapscreen
2726
WORKDIR $output
2827

29-
ENTRYPOINT nmap --script http-screenshot --script-args tool=$tool -iL $infile -p "80,8080,443,8888"
28+
ENTRYPOINT mkdir $output/nmapscreen && cd $output/nmapscreen && nmap --script http-screenshot --script-args tool=$tool -iL $infile -p "80,8080,443,8888"

0 commit comments

Comments
 (0)