mirror of https://github.com/Cisco-Talos/clamav
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
#!/bin/sh
|
|
CLAMSCAN_WRAPPER=${CLAMSCAN_WRAPPER-}
|
|
die() {
|
|
rm -rf test-db
|
|
exit $1;
|
|
}
|
|
|
|
scan_failed() {
|
|
if test "X$unrar_disabled" = "X1" && test `grep -v '\.rar' $1 | grep OK | wc -l` -eq 0
|
|
then
|
|
echo "***" >&2;
|
|
echo "*** UNRAR is disabled, won't be able to detect unrar files!" >&2;
|
|
echo "***" >&2;
|
|
else
|
|
echo "clamscan did not detect all testfiles correctly!" >&2;
|
|
die 2;
|
|
fi
|
|
}
|
|
|
|
mkdir test-db
|
|
cat <<EOF >test-db/test.hdb
|
|
aa15bcf478d165efd2065190eb473bcb:544:ClamAV-Test-File
|
|
EOF
|
|
rm -f clamscan.log
|
|
../libtool --mode=execute $CLAMSCAN_WRAPPER ../clamscan/clamscan --quiet -dtest-db/test.hdb ../test/clam* --log=clamscan.log
|
|
if test $? != 1; then
|
|
echo "Error running clamscan: $?" >&2;
|
|
grep OK clamscan.log >&2;
|
|
die 1;
|
|
fi
|
|
NFILES=`ls -1 ../test/clam* | wc -l`
|
|
NINFECTED=`grep "Infected files" clamscan.log | cut -f2 -d: |sed -e 's/ //g'`
|
|
if test "$NFILES" -ne "0$NINFECTED"; then
|
|
grep OK clamscan.log >&2;
|
|
scan_failed clamscan.log
|
|
fi
|
|
|
|
cat <<EOF >test-db/test.pdb
|
|
H:example.com
|
|
EOF
|
|
rm -f clamscan2.log
|
|
../clamscan/clamscan -dtest-db $abs_srcdir/input/phish-test-* --log=clamscan2.log --quiet
|
|
val=$?
|
|
if test $val != 0; then
|
|
if test $val = 1; then
|
|
echo "clamscan detected a file it shouldn't" >&2
|
|
grep FOUND clamscan2.log
|
|
die 3;
|
|
fi
|
|
echo "Error running clamscan: $val" >&2;
|
|
die 3;
|
|
fi
|
|
|
|
rm -f clamscan2.log
|
|
../clamscan/clamscan --phishing-ssl --phishing-cloak -dtest-db $abs_srcdir/input/phish-test-* --log=clamscan2.log --quiet
|
|
val=$?
|
|
if test $val != 1; then
|
|
echo "Error running clamscan: $val" >&2;
|
|
die 3;
|
|
fi
|
|
grep "phish-test-ssl: Phishing.Heuristics.Email.SSL-Spoof FOUND" clamscan2.log >/dev/null && grep "phish-test-cloak: Phishing.Heuristics.Email.Cloaked.Null FOUND" clamscan2.log >/dev/null
|
|
if test $? -ne 0; then
|
|
echo "Error on ssl/cloak phishing test" >&2;
|
|
die 4;
|
|
fi
|
|
die 0;
|
|
|