forked from prey/prey-bash-client
-
Notifications
You must be signed in to change notification settings - Fork 2
/
prey.sh
executable file
·97 lines (79 loc) · 2.55 KB
/
prey.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
#!/bin/bash
####################################################################
# Prey - by Tomas Pollak (bootlog.org)
# URL: http://preyproject.com
# License: GPLv3
####################################################################
PATH=/bin:$PATH
version='0.3.3'
base_path=`dirname $0`
start_time=`date +"%F %T"`
os=`uname | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"`
if [ $os == "windowsnt" ]; then
os=windows
else
PATH=/usr/bin:/bin:/usr/sbin:/sbin
fi
####################################################################
# base files inclusion
####################################################################
. $base_path/config
if [ ! -e "lang/$lang" ]; then # fallback to english in case the lang is missing
lang='en'
fi
. $base_path/lang/$lang
. $base_path/platform/base
. $base_path/platform/$os
echo -e "\E[36m$STRING_START ### `date`\E[0m\n"
if [ "$1" == "-t" ]; then
echo -e "\033[1m -- TEST MODE ENABLED. WON'T CHECK URL OR SEND DATA!\033[0m\n"
. $base_path/config.test 2> /dev/null
test_mode=1
check_url=''
fi
####################################################################
# lets check if we're actually connected
# if we're not, lets try to connect to a wifi access point
####################################################################
check_net_status
if [ $connected == 0 ]; then
if [ "$auto_connect" == "y" ]; then
echo "$STRING_TRY_TO_CONNECT"
try_to_connect
fi
# ok, lets check again
check_net_status
if [ $connected == 0 ]; then
echo "$STRING_NO_CONNECT_TO_WIFI"
exit
fi
fi
####################################################################
# if there's a URL in the config, lets see if it actually exists
# if it doesn't, the program will shut down gracefully
####################################################################
if [ -n "$check_url" ]; then
echo "$STRING_CHECK_URL"
check_status
if [ "$status" == "$missing_status_code" ]; then
echo -e "$STRING_PROBLEM"
parse_headers
process_response
else
echo -e "$STRING_NO_PROBLEM"
exit
fi
fi
####################################################################
# ok what shall we do then?
# for now lets run every module with an executable run.sh script
####################################################################
echo -e " -- Running active modules..."
run_active_modules
####################################################################
# lets send whatever our modules have gathered
####################################################################
echo -e " -- Sending data..."
post_data
echo -e "$STRING_DONE"
exit 0