Add update-geoipdb script
This commit is contained in:
@@ -131,10 +131,7 @@ beef:
|
|||||||
dns_hostname_lookup: false
|
dns_hostname_lookup: false
|
||||||
|
|
||||||
# IP Geolocation
|
# IP Geolocation
|
||||||
# NOTE: requires MaxMind database:
|
# NOTE: requires MaxMind database. Run ./updated-geoipdb to install.
|
||||||
# /usr/bin/curl -O https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
|
|
||||||
# /bin/gunzip GeoLite2-City.tar.gz && /bin/tar xvf GeoLite2-City.tar && /bin/rm GeoLite2-City.tar
|
|
||||||
# /bin/mkdir -p /opt/GeoIP && /bin/mv GeoLite2-City_*/* /opt/GeoIP && /bin/rmdir GeoLite2-City_*
|
|
||||||
geoip:
|
geoip:
|
||||||
enable: true
|
enable: true
|
||||||
database: '/opt/GeoIP/GeoLite2-City.mmdb'
|
database: '/opt/GeoIP/GeoLite2-City.mmdb'
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ module Core
|
|||||||
|
|
||||||
unless File.exists? geoip_file
|
unless File.exists? geoip_file
|
||||||
print_error "[GeoIP] Could not find MaxMind GeoIP database: '#{geoip_file}'"
|
print_error "[GeoIP] Could not find MaxMind GeoIP database: '#{geoip_file}'"
|
||||||
|
print_more "Run ./update-geoipdb to install"
|
||||||
@enabled = false
|
@enabled = false
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|||||||
82
update-geoipdb
Executable file
82
update-geoipdb
Executable file
@@ -0,0 +1,82 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2006-2019 Wade Alcorn - wade@bindshell.net
|
||||||
|
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||||
|
# See the file 'doc/COPYING' for copying permission
|
||||||
|
#
|
||||||
|
|
||||||
|
# Install the MaxMind GeoIP database
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
GEOIP_PATH="/opt/GeoIP"
|
||||||
|
|
||||||
|
info() { echo -e "\\033[1;36m[INFO]\\033[0m $*"; }
|
||||||
|
warn() { echo -e "\\033[1;33m[WARNING]\\033[0m $*"; }
|
||||||
|
fatal() { echo -e "\\033[1;31m[FATAL]\\033[0m $*"; exit 1 ; }
|
||||||
|
|
||||||
|
command_exists () {
|
||||||
|
command -v "${1}" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_permission () {
|
||||||
|
warn "This script will install the MaxMind GeoLite database in ${GEOIP_PATH}"
|
||||||
|
|
||||||
|
read -rp "Are you sure you wish to continue (Y/n)? "
|
||||||
|
if [ "$(echo "${REPLY}" | tr "[:upper:]" "[:lower:]")" = "n" ] ; then
|
||||||
|
fatal 'Installation aborted'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_deps() {
|
||||||
|
if ! command_exists /usr/bin/curl
|
||||||
|
then
|
||||||
|
fatal "/usr/bin/curl is not installed"
|
||||||
|
fi
|
||||||
|
if ! command_exists /bin/gunzip
|
||||||
|
then
|
||||||
|
fatal "/bin/gunzip is not installed"
|
||||||
|
fi
|
||||||
|
if ! command_exists /bin/tar
|
||||||
|
then
|
||||||
|
fatal "/bin/tar is not installed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_perms() {
|
||||||
|
/bin/mkdir -p "${GEOIP_PATH}"
|
||||||
|
|
||||||
|
if ! [ -w "${GEOIP_PATH}" ]
|
||||||
|
then
|
||||||
|
fatal "${GEOIP_PATH} is not writable"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
info 'Downloading MaxMind GeoLite2-City database ...'
|
||||||
|
/usr/bin/curl -O https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
|
||||||
|
|
||||||
|
info 'Extracting GeoLite2-City.tar.gz ...'
|
||||||
|
/bin/gunzip GeoLite2-City.tar.gz
|
||||||
|
/bin/tar xvf GeoLite2-City.tar
|
||||||
|
|
||||||
|
info "Installing to ${GEOIP_PATH} ..."
|
||||||
|
/bin/mv GeoLite2-City_*/* "${GEOIP_PATH}"
|
||||||
|
|
||||||
|
info 'Cleaning up ...'
|
||||||
|
/bin/rm GeoLite2-City.tar
|
||||||
|
/bin/rmdir GeoLite2-City_*
|
||||||
|
|
||||||
|
info 'Done!'
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
get_permission
|
||||||
|
check_deps
|
||||||
|
check_perms
|
||||||
|
install
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|
||||||
Reference in New Issue
Block a user