__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
#!/bin/sh

print_usage() {
	echo "Usage:"
	echo "      import cert: -a USER_HOME_DIR ESET_CERT_NAME PATH_TO_ESET_CERT"
	echo "      remove cert: -d USER_HOME_DIR ESET_CERT_NAME"
}

if [ $# -lt 3 ]; then
	echo "Missing parameter" 1>&2
	print_usage 1>&2
	exit 2
fi

CERTUTIL="$(PATH="$PATH" which certutil)"
if [ ! -x "$CERTUTIL" ]; then
    echo "certutil is missing" 1>&2
    exit 1
fi

SCRIPT_MODE="$1"
USER_HOME="$2"
ESET_CERT_NAME="$3"
ESET_CERT_PATH="$4"

AFFECTED_BINARIES=""

FIREFOX_DIR="${USER_HOME}/.mozilla/firefox/"
FIREFOX_BINS="/usr/lib/firefox/firefox /usr/lib64/firefox/firefox /usr/lib/firefox/firefox-bin /usr/lib/firefox-esr/firefox-esr"

FIREFOX_SNAP_DIR="${USER_HOME}/snap/firefox/common/.mozilla/firefox/"
FIREFOX_SNAP_BIN="/snap/firefox/current/usr/lib/firefox/firefox"

# Chrome, Chromium, Edge use the same directory for certs
NSSDB_DIR="${USER_HOME}/.pki/nssdb/"
NSSDB_BINS="/opt/google/chrome/chrome /usr/lib/chromium/chromium /usr/bin/chromium-browser /usr/lib/chromium-browser/chromium-browser /usr/lib64/chromium-browser/chromium-browser /opt/microsoft/msedge/msedge"

CHROMIUM_SNAP_DIR="${USER_HOME}/snap/chromium/current/.pki/nssdb/"
CHROMIUM_SNAP_BIN="/snap/chromium/current/usr/lib/chromium-browser/chrome"

check_paths() {
	[ ! -d "$FIREFOX_DIR" ] && FIREFOX_DIR=""
	[ ! -d "$FIREFOX_SNAP_DIR" ] && FIREFOX_SNAP_DIR=""
	[ ! -d "$NSSDB_DIR" ] && NSSDB_DIR=""
	[ ! -d "$CHROMIUM_SNAP_DIR" ] && CHROMIUM_SNAP_DIR=""
}

append_affected_binary_if_exists() {
	local AFFECTED_BINARY="$1"
	if [ ! -x "$AFFECTED_BINARY" ]; then
		return
	fi

	if [ -z "$AFFECTED_BINARIES" ]; then
		AFFECTED_BINARIES="$AFFECTED_BINARY"
	else
		AFFECTED_BINARIES="$(printf "%s\n%s" "${AFFECTED_BINARIES}" "${AFFECTED_BINARY}")"
	fi
}

import_cert() {
	local DB_DIR="$1"
	local IMPORTED=0

	if certutil -A -d "dbm:${DB_DIR}" -i "$ESET_CERT_PATH" -n "$ESET_CERT_NAME" -t "TCu,TCu,Tu" >/dev/null ; then
		IMPORTED=1
	fi

	if certutil -A -d "sql:${DB_DIR}" -i "$ESET_CERT_PATH" -n "$ESET_CERT_NAME" -t "TCu,TCu,Tu" >/dev/null ; then
		IMPORTED=1
	fi

	return "$IMPORTED"
}

import_into_all_firefox_profiles() {
	local FIREFOX_DIR="$1"
	local FIREFOX_ALL_PROFILES
	local FIREFOX_BINS="$2"
	local BINARY
	local IMPORTED
	FIREFOX_ALL_PROFILES="$(grep 'Path=' "$FIREFOX_DIR"profiles.ini | cut -f2 -d '=' )"

	IMPORTED="$(echo "$FIREFOX_ALL_PROFILES" | while read -r a; do
					import_cert "${FIREFOX_DIR}/${a}";
					local RETVAL=$?
					if [ "$RETVAL" -eq 1 ]; then
						echo x;
					fi
				done )"
	
	if [ -n "$IMPORTED" ]; then
		for BINARY in $FIREFOX_BINS ; do
			append_affected_binary_if_exists "$BINARY"
		done
	fi
}

remove_from_all_firefox_profiles() {
	local FIREFOX_DIR="$1"
	local FIREFOX_ALL_PROFILES
	FIREFOX_ALL_PROFILES="$(grep 'Path=' "$FIREFOX_DIR"profiles.ini | cut -f2 -d '=' )"
	echo "$FIREFOX_ALL_PROFILES" | while read -r a; do
		remove_cert "${FIREFOX_DIR}/${a}"
	done
}

import_all() {
	local BINARY
	local RETVAL
	if [ -n "$FIREFOX_DIR" ]; then
		import_into_all_firefox_profiles "$FIREFOX_DIR" "$FIREFOX_BINS"
	fi

	if [ -n "$FIREFOX_SNAP_DIR" ]; then
		import_into_all_firefox_profiles "$FIREFOX_SNAP_DIR" "$FIREFOX_SNAP_BIN"
	fi

	if [ -n "$NSSDB_DIR" ]; then
		# Chrome, Chromium, Chromium epel, Edge use the same directory for certs
		import_cert "${NSSDB_DIR}"
		RETVAL=$?
		if [ "$RETVAL" -eq 1 ]; then
			for BINARY in $NSSDB_BINS ; do
				append_affected_binary_if_exists "$BINARY"
			done
		fi

	fi

	if [ -n "$CHROMIUM_SNAP_DIR" ]; then
		import_cert "$CHROMIUM_SNAP_DIR"
		RETVAL=$?
		if [ "$RETVAL" -eq 1 ]; then
			append_affected_binary_if_exists "$CHROMIUM_SNAP_BIN"
		fi
	fi

	AFFECTED_BINARIES="$(printf "%s\n" "${AFFECTED_BINARIES}" | sort -u | sed 's,/current/,/*/,g')"
}

remove_cert() {
	local DB_DIR="$1"

	certutil -D -d "dbm:${DB_DIR}" -n "$ESET_CERT_NAME" >/dev/null 2>&1
	certutil -D -d "sql:${DB_DIR}" -n "$ESET_CERT_NAME" >/dev/null 2>&1
}

remove_all() {
	if [ -n "$FIREFOX_DIR" ]; then
		remove_from_all_firefox_profiles "$FIREFOX_DIR"
	fi

	if [ -n "$FIREFOX_SNAP_DIR" ]; then
		remove_from_all_firefox_profiles "$FIREFOX_SNAP_DIR"
	fi

	if [ -n "$NSSDB_DIR" ]; then
		remove_cert "$NSSDB_DIR"
	fi

	if [ -n "$CHROMIUM_SNAP_DIR" ]; then
		remove_cert "$CHROMIUM_SNAP_DIR"
	fi
}


# main
check_paths

if [ "$SCRIPT_MODE" = "-a" ] && [ $# -eq 4 ]; then
	remove_all
	import_all
	echo "$AFFECTED_BINARIES"
elif [ "$SCRIPT_MODE" = "-d" ] && [ $# -eq 3 ]; then
	remove_all
else
	echo "Wrong argument" 1>&2
	print_usage 1>&2
	exit 2
fi

Filemanager

Name Type Size Permission Actions
cert_ctl.sh File 4.38 KB 0755
system_remove_certs.sh File 40 B 0700
Filemanager