@@ -0,0 +1,88 @@
#! /bin/bash
# ###################################
# Config
# #################
HTTPROBE_CONCURRENCY=100
HTTPROBE_TIMEOUT=3000
DIRSEARCH_THREADS=50
DIRSEARCH_EXTENSIONS=\*
ATTENTION_PATTERN=' (api|dev|stag|stg|test|tst|corp|int|inter|infra|priv|demo|promo|config|docker|s3|vip|jira|jenkins|splunk|archive|backup|secure|dash|vip|vpn|auth)'
# #################
# End Config
# ###################################
cd ` pwd`
TARGET=$1
OUTPATH=recon-$( date +%F)
mkdir -p $OUTPATH
cd $OUTPATH
echo
echo " /==========================================="
echo " |"
echo " | Recon started on $TARGET "
echo " | Saving results in ./$OUTPATH "
echo " |"
echo " \==========================================="
echo
echo " Starting asset discovery"
echo " Running assetfinder"
assetfinder --subs-only $TARGET >> assetfinder.tmp
echo " - Found: $( cat assetfinder.tmp | wc -l) "
echo " Running knockpy"
knockpy $TARGET --json 1> /dev/null 2> knockpy.tmp
KNOCKPY_REPORT=$( cat knockpy.tmp | grep : | awk -F' : ' ' {print $2}' )
cat $KNOCKPY_REPORT | jq ' .found.subdomain[]' | sed ' s/"//g' >> knockpy.tmp
echo " - Found: $( cat knockpy.tmp | wc -l) "
mkdir -p reports/knockpy
mv $KNOCKPY_REPORT reports/knockpy
echo " Checking certspotter"
certspotter $TARGET >> certspotter.tmp
echo " - Found: $( cat certspotter.tmp | wc -l) "
echo " Sorting and removing duplicate assets"
cat assetfinder.tmp knockpy.tmp certspotter.tmp | sort -u | grep " $TARGET $" > all.txt
echo " - Discovered $( cat all.txt | wc -l) unique assets"
echo " Running massdns"
massdns -q -r ~ /tools/massdns/lists/resolvers.txt -t A -o S -w reports/massdns.out all.txt
echo " Running httprobe"
cat all.txt | httprobe -c $HTTPROBE_CONCURRENCY -t $HTTPROBE_TIMEOUT >> alive.txt
echo " - $( cat alive.txt | wc -l) assets are responding"
echo " Looking for interesting assets"
cat all.txt | sed " s/.$TARGET $//" | grep -E $ATTENTION_PATTERN | sed " s/$/.$TARGET /" > attention-all.txt
cat alive.txt | sed " s/.$TARGET $//" | grep -E $ATTENTION_PATTERN | sed " s/$/.$TARGET /" > attention-alive.txt
echo " - Found $( cat attention-all.txt | wc -l) interesting assets, of which $( cat attention-alive.txt | wc -l) are responding"
echo " Asset discovery complete"
echo
echo " Starting content gathering"
echo " Running dirsearch"
mkdir -p reports/dirsearch
for host in ` cat alive.txt` ; do
DIRSEARCH_FILE=$( echo $host | sed -E ' s/[\.|\/|:]+/_/g' ) .txt
dirsearch -e $DIRSEARCH_EXTENSIONS -r -b -u -t $DIRSEARCH_THREADS --plain-text reports/dirsearch/$DIRSEARCH_FILE -u $host
done
echo " Running webscreenshot"
webscreenshot -i alive.txt -r chromium -o reports/screenshots
echo " - Total $( ls -l reports/screenshots/* .txt | wc -l) screenshots stored in $OUTPATH /reports/screenshots"
echo " Cleaning up temporary files"
rm -f * .tmp
echo
echo " All done. Happy hunting!"