This repository has been archived by the owner on Aug 28, 2020. It is now read-only.
/
jackal.sh
executable file
·115 lines (99 loc) · 3.95 KB
/
jackal.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
#########################
# Jackal Network Monitoring Toolkit
# @ArtificialAmateur && @alefir
#########################
#-|-------------- Launcher --------------|-
function launcher(){
cat <<'END'
___ ________ ________ ___ __ ________ ___
|\ \ |\ __ \ |\ ____\ |\ \|\ \ |\ __ \ |\ \
\ \ \\ \ \|\ \\ \ \___| \ \ \/ /|_\ \ \|\ \\ \ \
__ \ \ \\ \ __ \\ \ \ \ \ ___ \\ \ __ \\ \ \
|\ \\_\ \\ \ \ \ \\ \ \____ \ \ \\ \ \\ \ \ \ \\ \ \____
\ \________\\ \__\ \__\\ \_______\\ \__\\ \__\\ \__\ \__\\ \_______\
\|________| \|__|\|__| \|_______| \|__| \|__| \|__|\|__| \|_______|
. .
.n . . n.
. .dP dP 9b 9b. .
4 qXb . dX Xb . dXp t
dX. 9Xb .dXb __ __ dXb. dXP .Xb
9XXb._ _.dXXXXb dXXXXbo. .odXXXXb dXXXXb._ _.dXXP
9XXXXXXXXXXXXXXXXXXXVXXXXXXXXOo. .oOXXXXXXXXVXXXXXXXXXXXXXXXXXXXP
`9XXXXXXXXXXXXXXXXXXXXX'~ ~`OOO8b d8OOO'~ ~`XXXXXXXXXXXXXXXXXXXXXP'
`9XXXXXXXXXXXP' `9XX' DIE `98v8P' HUMAN `XXP' `9XXXXXXXXXXXP'
~~~~~~~ 9X. .db|db. .XP ~~~~~~~
)b. .dbo.dP'`v'`9b.odb. .dX(
,dXXXXXXXXXXXb dXXXXXXXXXXXb.
dXXXXXXXXXXXP' . `9XXXXXXXXXXXb
dXXXXXXXXXXXXb d|b dXXXXXXXXXXXXb
9XXb' `XXXXXb.dX|Xb.dXXXXX' `dXXP
`' 9XXXXXX( )XXXXXXP `'
XXXX X.`v'.X XXXX
XP^X'`b d'`X^XX
X. 9 ` ' P )X
`b ` ' d'
` '
END
}
version='0.5.1'
# Function to display help info
function display_help() {
cat <<'END'
usage: jackal.sh [OPTION]
Jackal Network Monitoring Toolkit.
-m, --module [MODULE] runs module of name specified
-l, --list list installed modules
-v, --version output version information and exit
-h, --help display this help and exit
END
}
# Function to parse then run modules by name
function run_module() {
# Check if the input is a number or a string
if [[ $1 =~ ^[0-9]*$ ]]; then
# Check if the number passed represents a valid module
if [ $( list_modules | grep -c $1 ) = "1" ]; then
torun=$(ls -1 ./modules/ | sed -n -e "$1{p;q}");
launcher;
./modules/$torun
else
echo Module not recognized. Use jackal.sh --list to list installed modules. >&2
fi
else
# Check if the module name passed is valid
if [ -a ./modules/$1 ]; then
launcher;
./modules/$1
else echo module not recognized. use jackal.sh --list to list installed modules. >&2
fi
fi
}
#Function to list modules installed to ./modules/
function list_modules() {
echo "Currently installed modules:"
modules=$(ls -1 ./modules/)
i=1
for m in $modules; do
echo -en "["$i"] "$m"\t\t-- "
sed -n '2{p;q}' ./modules/$m | sed -e 's/#//g'
i=$((i+1))
done
}
OPTS='getopt -o vhm:lt --long version,help,module,list-modules,test -n 'parse-options' -- "$@"'
if [ $? != 0 ]; then echo "Failed parsing options." >&2; exit 1; fi
while true; do
case "$1" in
-v | --version) echo "jackal-toolkit version $version"; did_something=true; shift;;
-h | --help) display_help; did_something=true; shift;;
-m | --module) if [ -n $2 ]; then run_module $2;
else echo "Usage is jackal.sh -m [module name/number]"
fi
did_something=true; shift;;
-l | --list) list_modules; did_something=true; shift;;
-t | --test) run_module test; did_something=true; shift;;
--) shift; break;;
*) break;;
esac
done
if [ ! $did_something ]; then display_help; fi