CasperSecurity

Current Path : /usr/lib/update-notifier/
Upload File :
Current File : //usr/lib/update-notifier/apt-cdrom-check

#!/bin/sh
#
# helper to check if we actually have an ubuntu CD
#
# Returncode:
# 0 - no ubuntu CD
# 1 - CD with packages 
# 2 - dist-upgrader CD
# 3 - aptoncd media
# (if the returncodes change, make sure to update src/cdroms.c)
# 

mount_point="$1"
aptoncd_file="$mount_point/aptoncd.info"

# sanity checks
if [ -z "$mount_point" ]; then
    exit 0
fi

if [ -f "$aptoncd_file" ]; then
    exit 3
fi

if [ ! -d "$mount_point/ubuntu" ] && [ ! -f "$mount_point/cdromupgrade" ]; then
    exit 0
fi

# check if there are "Packages" files on the cd (and ignore the 
# debian-installer dir)
find "$mount_point/dists/"  -name "Packages.gz" | grep -q -v debian-installer

# 1 means "no lines were selected" in grep (no Packages file but the 
# debian-installer ones)
if [ $? -eq 1 ]; then
    exit 0
fi

# get some apt-config vars
label_start=0
cdrom_id=""

apt_dir="/"
apt_state_dir="var/lib/apt/"
apt_cdrom_list="cdrom.list"
eval $(apt-config shell apt_dir Dir \
                        apt_state_dir Dir::State \
                        apt_cdrom_list Dir::State::cdroms)



# identifying ... [afkdsjaf] line
line=$(apt-cdrom -d="$1" -m ident|grep "\[.*\]")

# remove the stuff before "Identifying... [dasjflkd]" -> "dasjflkd"
line=${line%]*}
cdrom_id=${line#*\[}

if [ -z "$cdrom_id" ]; then
    # something bad happened here, we return "not yet scanned" as 
    # fallback (because we are cheap)
    return 1
fi

# [cdrom-id] -> cdrom-id  
if grep -s -q "$cdrom_id"  $apt_dir$apt_state_dir$apt_cdrom_list; then
    # already in sources.list, ignore
    exit 0
fi

# so this is a CD we don't know yet and it has packages. good!
THIS_VERSION=$(lsb_release -sr)
VERSION_ON_MEDIA=$(awk {'print $2'} "$mount_point/.disk/info")

# now check if it contains a signed dist-upgrader
for d in "$mount_point"/dists/*/main/dist-upgrader/binary-all/; do
    if [ -d "$d" ]; then
        # ok, we have one, now check the authentication 
        GPG="gpgv --ignore-time-conflict --keyring /etc/apt/trusted.gpg"
        if $GPG "$d/"*.tar.gz.gpg "$d"/*.tar.gz; then
	# verified ok, we have a valid upgrader, if it was not ok, the
	# fallback to the end is ok because we still have packages on it
            if dpkg --compare-versions "$THIS_VERSION" lt "$VERSION_ON_MEDIA"; then
                exit 2
            fi
        fi
    fi
done

# we got an ubuntu CD with packages
if dpkg --compare-versions "$THIS_VERSION" lt "$VERSION_ON_MEDIA"; then
    exit 1
fi
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY