======UNIX Knowledge Assessment====== =====0x0===== Given the following permission strings, what is the resulting octal permissions? * drwxr-x-w- * --w-rw---x * pr-xrw--wx * c-----x-w- * -r-x-wxrw- * drw-rw-r-- =====0x1===== Based on the following: val1=15 val2=1 What will the output be of each of the following, and why? * echo "${val1}+${val2}" * echo '$((${val1}+${val2}))' * val3=6; echo "${val1}${val3}" * yes | head -16 | wc -l =====0x2===== In **/var/public/unix/ka/** is a file called **ka1.mp3**; * copy this somewhere in your home directory (how did you do this?) * figure out how to access its contents (how did you do this?) =====0x3===== For all files: * What is the file's name? * What type of file is it? * Can you view its contents? If not, how do you remedy this? =====0x4===== For any C (.c) files: * How do you successfully compile it? * How do you appropriately run it? * What does the program appear to do? =====0x5===== For any shell script: * What is the script's name? * What does it appear to do? * Using # marks for comments, add comments at the end of each line of uncommented script code, explaining as best you can what is going on * Upon running the script, what is the correct way to run it so it does something? =====0x6===== NOTE: If you cannot finish this one, it turns into a project. In your speckled but hidden life of nefariousness and crime, you have managed to hack into the secure system of some organization. In this exploit, you obtained "hashfile", which has a list of user names and their encrypted passwords. As you do not have the actual plaintext passwords, you cannot immediately log in. Remembering your time (well spent) taking a UNIX course before turning to your current life of debauchery, you decide to set about brute forcing these passwords. Using the programs and scripts you otherwise obtained from **ka1.mp3**, rig up a brute force password cracker to determine what these users have for passwords. You may work with the following assumptions: * Passwords are no longer than 3 characters * Passwords can contain ONLY lower- or upper-case letters, or numbers Aside from determining the user passwords, please answer me the following: * Which user(s) have passwords that in some way mirror their user name? * Which user(s) have passwords that match that of a dictionary word? * What changes/modifications did you have to make to the various scripts to create a workable solution? * How many total password combinations can there be for 2 character upper/lower/number? * How many total password combinations can there be for 3 character upper/lower/number? * The **time** command can prepend a command on the command-line. How long does it take to generate all the possible 2 character passwords? * The **time** command can prepend a command on the command-line. How long does it take to generate all the possible 3 character passwords? Challenge: * Once you have a working solution, see how much you can optimize your overall runtime (compare times from before) by pre-allocating a rainbow table, and altering the logic of these scripts to use that as input.