Advertisement
Guest User

Untitled

a guest
Nov 5th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # parameters
  4. USERNAME="<may be empty>"
  5. PASSWORD="<fritzbox/user password>"
  6. CERTPATH="<location of privkey.pem and fullchain.pem>"
  7. CERTPASSWORD="<may be empty>"
  8. HOST=http://fritz.box
  9.  
  10. # make and secure a temporary file
  11. TMP="$(mktemp -t XXXXXX)"
  12. chmod 600 $TMP
  13.  
  14. # login to the box and get a valid SID
  15. CHALLENGE=`wget -q -O - $HOST/login_sid.lua | sed -e 's/^.*<Challenge>//' -e 's/<\/Challenge>.*$//'`
  16. HASH="`echo -n $CHALLENGE-$PASSWORD | iconv -f ASCII -t UTF16LE |md5sum|awk '{print $1}'`"
  17. SID=`wget -q -O - "$HOST/login_sid.lua?sid=0000000000000000&username=$USERNAME&response=$CHALLENGE-$HASH"| sed -e 's/^.*<SID>//' -e 's/<\/SID>.*$//'`
  18.  
  19. # generate our upload request
  20. BOUNDARY="---------------------------"`date +%Y%m%d%H%M%S`
  21. printf -- "--$BOUNDARY\r\n" >> $TMP
  22. printf "Content-Disposition: form-data; name=\"sid\"\r\n\r\n$SID\r\n" >> $TMP
  23. printf -- "--$BOUNDARY\r\n" >> $TMP
  24. printf "Content-Disposition: form-data; name=\"BoxCertPassword\"\r\n\r\n$CERTPASSWORD\r\n" >> $TMP
  25. printf -- "--$BOUNDARY\r\n" >> $TMP
  26. printf "Content-Disposition: form-data; name=\"BoxCertImportFile\"; filename=\"BoxCert.pem\"\r\n" >> $TMP
  27. printf "Content-Type: application/octet-stream\r\n\r\n" >> $TMP
  28. cat $CERTPATH/privkey.pem >> $TMP
  29. cat $CERTPATH/fullchain.pem >> $TMP
  30. printf "\r\n" >> $TMP
  31. printf -- "--$BOUNDARY--" >> $TMP
  32.  
  33. # upload the certificate to the box
  34. wget -q -O - $HOST/cgi-bin/firmwarecfg --header="Content-type: multipart/form-data boundary=$BOUNDARY" --post-file $TMP | grep SSL
  35.  
  36. # clean up
  37. rm -f $TMP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement