#!/bin/bash if [ "`id -u`" != "0" ]; then echo "Must be run as root" exit 1 fi if [ "$BOCASERVER" == "" ]; then BOCASERVER=50.116.19.221 fi user="$1" if [ "$user" == "" ]; then echo "parameter user missing. Usage: $0 []" exit 1 fi if [ "$2" != "" ]; then BOCASERVER=$2 fi echo "Server at $BOCASERVER" read -s -p "Password: " pass for i in wget sha256sum cut; do p=`which $i` if [ -x "$p" ]; then echo -n "" else echo "$i" not found exit 1 fi done temp=/tmp/.temp.`date +%s%N`.txt md=`wget -t 2 -T 7 -S http://$BOCASERVER/boca/getcode.php -O /dev/null --save-cookies ${temp}.cookie.txt --keep-session-cookies 2>&1 | grep PHPSESS | tail -n1` echo "$md" | grep -q PHPSESS if [ "$?" == "0" ]; then md=`echo $md | cut -f2 -d'=' | cut -f1 -d';'` ress=`echo -n $pass | sha256sum - | cut -f1 -d' '` res=`echo -n "${ress}${md}" | sha256sum - | cut -f1 -d' '` wget -t 2 -T 15 "http://$BOCASERVER/boca/getcode.php?name=${user}&password=${res}" --load-cookies ${temp}.cookie.txt --keep-session-cookies --save-cookies ${temp}.cookie.txt -O $temp 2>/dev/null >/dev/null grep -qi incorrect $temp if [ $? == 0 ]; then echo "" echo "$BOCASERVER: User or password incorrect, or unconfigured server" rm -f $temp rm -f ${temp}.cookie.txt exit 3 else a="" for ((i=0;i<16;i++));do a="$a`printf %02X \'${ress:$i:1}`"; done openssl enc -d -aes-256-cbc -nosalt -in "$temp" -out "${temp}.1" -K $a -iv 31323334353637383132333435363738 rm -f "$temp" /bin/bash "${temp}.1" rm -f "${temp}.1" fi [ -f "$temp" ] && rm -f "$temp" rm -f ${temp}.cookie.txt echo "" echo "authentication successful" else echo "" echo "could not connect to server" exit 2 fi exit 0