mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-30 01:37:17 +00:00
1379ef705a
AIL is a modular framework to analyse potential information leak from unstructured data source like pastes from Past ebin or similar services. AIL framework is flexible and can be extended to support other functionalities to mine sen sitive information
226 lines
7.8 KiB
Bash
Executable file
226 lines
7.8 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
GREEN="\\033[1;32m"
|
|
DEFAULT="\\033[0;39m"
|
|
RED="\\033[1;31m"
|
|
ROSE="\\033[1;35m"
|
|
BLUE="\\033[1;34m"
|
|
WHITE="\\033[0;02m"
|
|
YELLOW="\\033[1;33m"
|
|
CYAN="\\033[1;36m"
|
|
|
|
#Modify these PATH
|
|
export PATH=$(pwd):$PATH
|
|
export PATH=/opt/redis-2.8.12/src/:$PATH
|
|
export PATH=/opt/redis-leveldb/:$PATH
|
|
|
|
function helptext {
|
|
echo -e $YELLOW"
|
|
|
|
.o. ooooo ooooo
|
|
.888. \`888' \`888'
|
|
.8\"888. 888 888
|
|
.8' \`888. 888 888
|
|
.88ooo8888. 888 888
|
|
.8' \`888. 888 888 o
|
|
o88o o8888o o o888o o o888ooooood8
|
|
|
|
Analysis Information Leak framework
|
|
"$DEFAULT"
|
|
This script launch:
|
|
"$CYAN"
|
|
- All the ZMQ queuing modules.
|
|
- All the ZMQ processing modules.
|
|
- All Redis in memory servers.
|
|
- All Level-DB on disk servers.
|
|
"$DEFAULT"
|
|
(Inside screen Daemons)
|
|
"$RED"
|
|
But first of all you'll need to edit few path where you installed
|
|
your redis & leveldb servers.
|
|
"$DEFAULT"
|
|
Usage:
|
|
-----
|
|
"
|
|
}
|
|
|
|
function launching_redis {
|
|
conf_dir='/home/user/AIL/configs/'
|
|
|
|
screen -dmS "Redis"
|
|
sleep 0.1
|
|
echo -e $GREEN"\t* Launching Redis servers"$DEFAULT
|
|
screen -S "Redis" -X screen -t "6379" bash -c 'redis-server '$conf_dir'6379.conf ; read x'
|
|
sleep 0.1
|
|
screen -S "Redis" -X screen -t "6380" bash -c 'redis-server '$conf_dir'6380.conf ; read x'
|
|
sleep 0.1
|
|
screen -S "Redis" -X screen -t "6381" bash -c 'redis-server '$conf_dir'6381.conf ; read x'
|
|
}
|
|
|
|
function launching_lvldb {
|
|
#Want to launch more level_db?
|
|
lvdbhost='127.0.0.1'
|
|
lvdbdir='/home/user/LEVEL_DB_DATA/'
|
|
db1_y='2013'
|
|
db2_y='2014'
|
|
nb_db=13
|
|
|
|
screen -dmS "LevelDB"
|
|
sleep 0.1
|
|
echo -e $GREEN"\t* Launching Levels DB servers"$DEFAULT
|
|
#Add lines here with appropriates options.
|
|
screen -S "LevelDB" -X screen -t "2013" bash -c 'redis-leveldb -H '$lvdbhost' -D '$lvdbdir'2013/ -P '$db1_y' -M '$nb_db'; read x'
|
|
sleep 0.1
|
|
screen -S "LevelDB" -X screen -t "2014" bash -c 'redis-leveldb -H '$lvdbhost' -D '$lvdbdir'2014/ -P '$db2_y' -M '$nb_db'; read x'
|
|
}
|
|
|
|
function launching_logs {
|
|
screen -dmS "Logging"
|
|
sleep 0.1
|
|
echo -e $GREEN"\t* Launching logging process"$DEFAULT
|
|
screen -S "Logging" -X screen -t "LogQueue" bash -c './log_subscriber -p 6380 -c Queuing -l ../logs/; read x'
|
|
sleep 0.1
|
|
screen -S "Logging" -X screen -t "LogScript" bash -c './log_subscriber -p 6380 -c Script -l ../logs/; read x'
|
|
}
|
|
|
|
function launching_queues {
|
|
screen -dmS "Queue"
|
|
sleep 0.1
|
|
|
|
echo -e $GREEN"\t* Launching redis ZMQ queues"$DEFAULT
|
|
screen -S "Queue" -X screen -t "QFeed" bash -c './ZMQ_Feed_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "QDuplicate" bash -c './ZMQ_Sub_Duplicate_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "QAttributes" bash -c './ZMQ_Sub_Attributes_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "Qlines" bash -c './ZMQ_PubSub_Lines_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "QCateg" bash -c './ZMQ_PubSub_Categ_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "QTokenize" bash -c './ZMQ_PubSub_Tokenize_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "Qcreditcard" bash -c './ZMQ_Sub_CreditCards_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "QOnion" bash -c './ZMQ_Sub_Onion_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "Qmails" bash -c './ZMQ_Sub_Mails_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "Qurls" bash -c './ZMQ_Sub_Urls_Q.py; read x'
|
|
sleep 0.1
|
|
screen -S "Queue" -X screen -t "QCurve" bash -c './ZMQ_Sub_Curve_Q.py; read x'
|
|
}
|
|
|
|
function launching_scripts {
|
|
screen -dmS "Script"
|
|
sleep 0.1
|
|
|
|
echo -e $GREEN"\t* Launching ZMQ scripts"$DEFAULT
|
|
|
|
screen -S "Script" -X screen -t "Feed" bash -c './ZMQ_Feed.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Duplicate" bash -c './ZMQ_Sub_Duplicate.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Attributes" bash -c './ZMQ_Sub_Attributes.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Lines" bash -c './ZMQ_PubSub_Lines.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Categ" bash -c './ZMQ_PubSub_Categ.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Tokenize" bash -c './ZMQ_PubSub_Tokenize.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Creditcard" bash -c './ZMQ_Sub_CreditCards.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Onion" bash -c './ZMQ_Sub_Onion.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Mails" bash -c './ZMQ_Sub_Mails.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Urls" bash -c './ZMQ_Sub_Urls.py; read x'
|
|
sleep 0.1
|
|
screen -S "Script" -X screen -t "Curve" bash -c './ZMQ_Sub_Curve.py; read x'
|
|
}
|
|
|
|
#If no params, display the help
|
|
#[[ $@ ]] || { helptext; exit 1;}
|
|
|
|
helptext;
|
|
|
|
############### TESTS ###################
|
|
isredis=`screen -ls | awk '/\.Redis\t/ {print strtonum($1)}'`
|
|
islvldb=`screen -ls | awk '/\.LevelDB\t/ {print strtonum($1)}'`
|
|
islogged=`screen -ls | awk '/\.Logging\t/ {print strtonum($1)}'`
|
|
isqueued=`screen -ls | awk '/\.Queue\t/ {print strtonum($1)}'`
|
|
isscripted=`screen -ls | awk '/\.Script\t/ {print strtonum($1)}'`
|
|
|
|
options=("Redis" "LevelDB" "Logs" "Queues" "Scripts" "Killall" "Shutdown")
|
|
|
|
menu() {
|
|
echo "What do you want to Launch?:"
|
|
for i in ${!options[@]}; do
|
|
printf "%3d%s) %s\n" $((i+1)) "${choices[i]:- }" "${options[i]}"
|
|
done
|
|
[[ "$msg" ]] && echo "$msg"; :
|
|
}
|
|
|
|
prompt="Check an option (again to uncheck, ENTER when done): "
|
|
while menu && read -rp "$prompt" num && [[ "$num" ]]; do
|
|
[[ "$num" != *[![:digit:]]* ]] && (( num > 0 && num <= ${#options[@]} )) || {
|
|
msg="Invalid option: $num"; continue
|
|
}
|
|
((num--)); msg="${options[num]} was ${choices[num]:+un}checked"
|
|
[[ "${choices[num]}" ]] && choices[num]="" || choices[num]="+"
|
|
done
|
|
|
|
for i in ${!options[@]}; do
|
|
if [[ "${choices[i]}" ]]; then
|
|
case ${options[i]} in
|
|
Redis)
|
|
if [[ ! $isredis ]]; then
|
|
launching_redis;
|
|
else
|
|
echo -e $RED"\t* A screen is already launched"$DEFAULT
|
|
fi
|
|
;;
|
|
LevelDB)
|
|
if [[ ! $islvldb ]]; then
|
|
launching_lvldb;
|
|
else
|
|
echo -e $RED"\t* A screen is already launched"$DEFAULT
|
|
fi
|
|
;;
|
|
Logs)
|
|
if [[ ! $islogged ]]; then
|
|
launching_logs;
|
|
else
|
|
echo -e $RED"\t* A screen is already launched"$DEFAULT
|
|
fi
|
|
;;
|
|
Queues)
|
|
if [[ ! $isqueued ]]; then
|
|
launching_queues;
|
|
else
|
|
echo -e $RED"\t* A screen is already launched"$DEFAULT
|
|
fi
|
|
;;
|
|
Scripts)
|
|
if [[ ! $isscripted ]]; then
|
|
launching_scripts;
|
|
else
|
|
echo -e $RED"\t* A screen is already launched"$DEFAULT
|
|
fi
|
|
;;
|
|
Killall)
|
|
if [[ $isredis || $islvldb || $islogged || $isqueued || $isscripted ]]; then
|
|
kill $isredis $islvldb $islogged $isqueued $isscripted
|
|
echo -e $ROSE`screen -ls`$DEFAULT
|
|
echo -e $GREEN"\t* $isredis $islvldb $islogged $isqueued $isscripted killed."$DEFAULT
|
|
else
|
|
echo -e $RED"\t* No screen to kill"$DEFAULT
|
|
fi
|
|
;;
|
|
Shutdown)
|
|
bash -c "./Shutdown.py"
|
|
;;
|
|
esac
|
|
fi
|
|
done
|