Skip to content

All the piles of 💰 that Jimmy makes from running RubyConf MY. Yours to steal!

Notifications You must be signed in to change notification settings

nickmarden/jimmys-bank-account

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UPDATE: This contest is closed

This contest was created for RubyConf MY 2017, which took place on October 12-13, 2017 in Cyberjaya, Malaysia.

Jimmy's Bank Account

This is where Jimmy Ngu (@jimmynguyc) keeps all the tall stacks of coin that he makes from running RubyConf MY ;-)

Break into it and you can win some 💰💰💰 too!

How the bank works

Jimmy wants to keep his money super-secure so he's securing it with a five-digit combination. The combination is randomly generated by the bank.rb script in this repo.

Jimmy puts his money into the bank like this:

[nick@192 jimmys-bank-account] (master)$ ruby bank.rb
Hi, Jimmy. How much money do you want to put in the bank? 1000

The bank.rb script responds by generating a 5-digit combination and printing it to the screen:

Wow, RubyConf must be *huge* this year!
OK the combination is [8, 19, 24, 38, 32]. If you ever forget it, just send a USR1 to 60402!

After this the bank.rb script tells Jimmy how to "enter" the combination numbers to get his money back:

Write any data to /tmp/bank20171009-60402-x1yf10 to activate combination number 0
Write any data to /tmp/bank20171009-60402-106d5dl to activate combination number 1
Write any data to /tmp/bank20171009-60402-ggf0iv to activate combination number 2
...

Now Jimmy's money is secure in the bank! Jimmy writes down the sequence of filenames that he will need to retrieve all his moolah, and then puts the bank.rb script into the background with ctrl-Z and heads off to look at videos of cats.

Your challenge

As it turns out Jimmy is awesome at Ruby and great at getting people to fork over their hard-earned ringgit to listen to the stars of the Ruby community, but he forgot about Unix.

Your challenge is to get Jimmy's money! To do this, you need to get to the server where Jimmy is running his script, and enter the correct combination. You will use your knowledge Unix to empty Jimmy's bank account so you can buy drinks for all of your (amazed) new friends at the pub crawl on Friday.

If you just randomly guess, the bank.rb script will crash and swallow Jimmy's money. So your goal is to:

  • Get yourself logged into the-vault.rubyconfmy2017.rrsoft.co (Ubuntu 16.04)
  • Figure out the combination to the bank
  • Enter the combination to the bank
  • Find out how much money he put in, and send the answer to steal-jimmys-money@rrsoft.co

But wait, it's harder!

We like to keep things secure here at Rapid River, so the-vault.rubyconfmy2017.rrsoft.co isn't accessible via SSH to the outside world. Instead we use a bastion host named bastion.rubyconfmy2017.rrsoft.co (also Ubuntu 16.04) to control access to all of our sensitive data including Jimmy's fat stacks.

How to participate

To compete in this challenge, send your GitHub handle to steal-jimmys-money@rrsoft.co. Your GitHub handle must have at least one regsitered public SSH key listed at https://api.github.com/users/YOUR_HANDLE/keys; these are the keys that will be allowed to SSH into your account on bastion.rubyconfmy2017.rrsoft.co. Password login will be disabled.

After we receive your email, we will email you back to tell you when your Unix account (username == GitHub handle) is ready to use on bastion.rubyconfmy2017.rrsoft.co. That's all you will get!

Some guidelines (please read)

  • You don't need rootkits or kernel exploits to accomplish the hack.
  • Everything needed to accomplish the hack is already present on the servers. Don't install anything.
  • Brute force will almost certainly not work, but it will cause the bank to crash over and over. At the very best that would be harmless and at the very worst it will interfere with other people's attempts to hack the bank. So, please no brute-force attacks.
  • This is meant to be fun, so please don't attempt to mess up the servers or interfere with other people's attempts.

What's the prize?

The first person to be able to unlock Jimmy's bank account and tell us how much money was in it wins MYR 500! (Not 500 factorial; that would be a lot of money. Just "500 with enthusiasm".)

UPDATE: Lincoln Lee (@linc01n) has solved the puzzle. To keep things interesting, we will have prizes of RM200 and RM100 for second- and third-place solutions.

What if no one solves it?

If you can't solve it, send a written explanation of how you tried to solve it to steal-jimmys-money@rrsoft.co. If no one actually cracks the bank, we will pick a winner from among those submitted explanations.

Hints

Try figuring out how to crack the safe on your own local development box. It might make things easier to use a Linux box rather than an OS X box, but in theory it's solvable on either.

About

All the piles of 💰 that Jimmy makes from running RubyConf MY. Yours to steal!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages