What’s a cron?
Alright, what we’re doing here is scheduling a mac to do something for us using cron. Cron is a program that checks to see if there is anything it needs to do every minute. Once something qualifies, it will execute the code it’s given. But what if the code we give it is…… shenaniganalous in nature? Mwah ha ha ha!!! The possibilities are limited only by your imagination =P
In this example, we’re going to make a job that will repeatedly say “nacho nacho nacho” every ten minutes until the end of time. Seem fair? Alright, the schedule when we’re done will look something like this:
*/10 * * * * ( /usr/bin/say "nacho nacho nacho" )
Ready. Set. Cron.
Here’s how it works on a mac:
- Open up a terminal on the victim’s computer. You can press the F4 key, type in “terminal” and press enter.
- Type in “crontab -e” (without quotes) to edit the current cron schedule for the user.
- To add the schedule above in Vim, press “i” – the bottom left corner should say
-- INSERT --
- Paste in the schedule from above. You can change the text to say something else, but whatever you do, do not use exclamation points. It’s syntax in bash and will not work!
- Once you have your schedule pasted in and it’s perfectly crafted, press escape, then type “:x” (which you’ll see in the bottom left) and press enter — this will save your new schedule and exit Vim
It will tell you if it fails, otherwise, consider your plan in progress! Quit the terminal and wait.
Cleanup
Alright, so the joke is done, and if anyone hears your victim’s computer say “pee pee” one more time, …no wait it’s still hilarious. Ok, let’s say you want to remove it anyway, right? If they don’t have any crons they need to save, there’s a simple way to do it.
Open up the terminal again and type the following (WARNING: it will clear ALL CRONS on the machine!):
crontab -r
Now, if you’ve come across the rare person who has something in their crontab, you can simply edit their crontab again and remove the magnificent job you added like this:
- Open up the terminal and type
crontab -e
- Using ‘j’ and ‘k’, you can navigate to the line that needs to be removed
- Once on the offending line, you can type ‘dd’ (yep, two of em) to delete the entire line
- Once the schedule is gone, type “:x” to save and quit vim and you’re set!
- Hit
cmd+q
and close the terminal as if nothing ever happened. - Flex.
What else, Ryan?
…yes! A quick reference for you!
Great question! I’m so glad you asked! There is SO MUCH MORE we can do.
- View current cron tasks
crontab -l
(that’s an “L” to “List”)- Remove all current scheduled tasks
crontab -r
- Schedule to open a google search for nachos every 10 minutes
*/10 * * * * ( /usr/bin/open "https://www.google.com/webhp?#q=nachos" )
- …hey I get it. Sometimes, you just need some nachos.
More fun with Say
Say comes with a lot of different options… have a look using man say
in your terminal to see the manual. Now when you look at this, if you have any questions on how to use some of these options, you can ask!
For instance, let’s say I’d like to use a different voice… but I don’t know which ones I can use. Ask yer mac like this: say -v ?
This will give us a massive list of voices to choose from. Now you can switch up your command to do things like:
14 * * * * ( /usr/bin/say -v Whisper "I can see you" )
The above schedule, on exactly the 14th minute of the hour, will creepily whisper “I can see you”.
Conclusion
Here we’ve explored three tools (crontab, say, and open) that in coordination can help you mess with unlocked computers. I give you this knowledge knowing full well it could be used against me……… but then again, I lock my computer =P