Ask zipinfo for the filename listed in the zip file, then capture it for the password. Use that password to unzip the file:
pw=$(zipinfo -1 file1.zip | cut -d. -f1)
unzip -P "$pw" file1.zip
Note that the flag to zipinfo is a one not an ell.
Borrowing liberally from Gilles' answer to a similar question, here's a bash loop that will extract a password-protected nested zip file until there are no more zip files:
shopt -s nullglob
while set -- *.zip; [ $# -eq 1 ]
do
unzippw "$1" && rm -- "$1"
done
Where I've defined the function unzippw as a wrapper for the zipinfo and unzip commands above:
unzippw ()
{
local pw=$(zipinfo -1 "$1" | cut -d. -f1)
unzip -P "$pw" "$1"
}