16 ms·
How we recovered $300k of Bitcoin
- remarkEon 7y agoWhat am amazingly fun read. Beyond the obvious technical skills, OP is a great writer.
- lwb 7y agoI've always wondered what the development process looks like for these type of algorithms. If you have to run the program for a year to know if it will work, how can you have any confidence that what you've written is going to do the trick?
- saagarjha 7y agoPerhaps you try it on smaller, "test" data to see if it works?
- metaweta 7y agoExactly. We created some zip files we knew the password to and then checked that our code found the right one. Each stage would generate a bunch of files with different candidate ranges, so when testing the next stage, we'd choose the one file we knew had the correct key in it.
- xakahnx 7y agoIt brings interesting trade-offs for program design. You can write the code one way which may be 10x faster but harder to reason about, or another way which is more straightforward but takes an extra 5 days go execute. How confident are you in your code or debugging ability? How many iterations will you need? I'm assuming this was written in CUDA based on the block/thread ID mix-up.
- milesvp 7y agoFunny this. Back when I had more time on my hands I liked to do project euler problems. I'd start with the dumbest brute force method to find the answer, and let that run. Then I'd see if I could figure out the math and implement it correctly before the brute force finished. I'd say I had about an 95% success rate at beating the dumb brute force (course it really depends on the problem search space). What was interesting, is that implementing the brute force solution and running it probably saved me time in the long run, because it managed to turn off a part of my brain that worries about wasted time. As long as I knew the brute force was potentially making progress, I didn't care if I ended up with false starts, or took a long time trying to understand the math, so it was easier to focus on the smarter solution.
- tomlagier 7y agoThis is part of the reason why the software industry's decision to use algorithm problems as time-bounded interview questions is so frustrating. Right away, you have to make a choice between doing it the reliable way (brute force) and taking a gamble on being able to out-smart the problem and doing it the math-y way. This adds a ton of pressure, no matter which path you choose. If you choose to start with brute-force, you're stressed that you look stupid because you don't know the trick. If you spend precious minutes looking for the trick, you're stressed because there's no guarantee you'll crack it in the given time. I've just gone through a gambit of software interviews and this is the biggest thing that determines whether I'll enjoy solving a problem or not. If they start with "find an efficient solution" or "the data set is in the millions" or something along those lines, I know I'm doomed if I don't recognize the form of the problem. If they encourage me to get to a working solution first, and _then_ figure out the trick, I'll typically do well regardless of whether the question is familiar or not.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- sireat 7y agoThe author is a very talented applied cryptographer with a very impressive resume (he is looking for new projects). The following CV line stands out however: Google: Software Engineer, Ads Review. June 2014– March 2016. Angular / Java developer on the internal tool used by contractors to review Google ads for policy violations. How did that saying about "brightest minds working on ads" go? I am not blaming the author as I would have done the same(and I imagine author was not told when hired that he'd be working on Java/Angular ad tool). Again it is not that Java or Angular are bad per se, but working on ad CRUD seems completely orthogonal to author's talents.
- metaweta 7y agoYeah, and it's why I left that job for something else.
- theblueprint 7y agoThank you for your work on PRTK. As a forensic practitioner during your time at AD, it was always an invaluable tool in my kit.
- aeontech 7y agoWhat's the best way to reach you? I know a few people who might be quite interested and interesting to work with.
- metaweta 7y ago
- aresant 7y ago"I’m currently looking for work in a staff or senior staff engineering or data scientist role. If you’ve got interesting technical analysis or optimization problems, please reach out to me and let’s talk." That is probably the best CV I've ever read by accident. You should broaden your job hunt criteria to technical content marketing - seriously! Very rare to possess the skill to tell a story in an entertaining, approachable and detailed technical fashion.
- metaweta 7y agoHahaha, thanks!
- hanniabu 7y ago> If you’ve got interesting technical analysis... FYI, not sure if english is your first language or not but this should be "If you have interesting technical analysis..."
- FroshKiller 7y agoNative American English speaker. "If you've got" like this is perfectly idiomatic.
- dantillberg 7y ago"If you've got" may not be formal "correct" English, but everyone understands it and it's used quite commonly in daily speech (and writing). I would wager that "if you've got" may actually be preferable to "if you have," in order to engage the reader at a more comfortable, personal level.
- TedDoesntTalk 7y agoexcellent story. can you share the number of bitcoins that were retrieved and how the customer lost the password in the first place?
- saagarjha 7y ago> Back in January of 2016, he had bought around $10K or $15K of Bitcoin and put the keys in an encrypted zip file. Based on the price of Bitcoin back then, it seems like this was about 30-40 Bitcoin?
- aazaa 7y ago> Recovering the key was usually instantaneous, but to help people feel like they’d gotten their money’s worth, we’d put on a little animated show like a Hollywood hacking scene with lots of random characters that gradually revealed the right password. and later ... > I’m currently looking for work in a staff or senior staff engineering or data scientist role. If you’ve got interesting technical analysis or optimization problems, please reach out to me and let’s talk. I can't help but wonder if this write-up (which is fascinating) may not be one of those little animated shows to help propspective employers feel like they'll get their money's worth.
- njsubedi 7y agoThat animation was 20 years ago. The author probably has different priorities now?
- deleted 7y ago[deleted]
- metaweta 7y agoThat little animation was put there by the guy who hired me. We got rid of it in the Password Recovery ToolKit that combined all the modules I'd written into a single tool. In that one, we had a big list of any encrypted files we found and their passwords. With enough modules, it was entertaining enough to watch the list grow. And it was very satisfying when the user reused a password on something trivial to crack that let us open a Word 97 file.
- hippich 7y agoSlightly offtopic, but I always laughed at these types of animations in hacker movies. Until one day I made a tool to extract strings (mostly passwords or hashes, purely for academic purposes!) through SQL injections in SQL Server when the error message did not return anything useful. I scanned each character bit by bit and depending on the value, I would either return control immediately or delay the response by a couple of hundred ms. That allowed me to reconstruct the string bit by bit, and as new information was acquired for each character - it would change on the screen. It looked exactly like some of these hacker movie scenes... =)
- sheikheddy 7y agoDoes anyone have links to stories that are as good as this? I want to binge blog posts that teach and entertain at the same time.
- hirundo 7y agoThis may be the plutonic ideal of a Hacker News story. It's also sort of a Travis McGee story but the salvage consultant is a cryptographer.
- SlowRobotAhead 7y agoIt got me with SoftIce. Although I never thought to print them out; I needed to watch all the registers change as I was doing similar work or reverse engineering encryption schemes.
- hippich 7y agoI did not have a printer at that time. Notepad with a lot of addresses and registers' values... Also, did not realize one can print from the SoftIce directly, as I assumed it run at the lowest level before all the printer drivers. Certainly, it would be super useful!
- saagarjha 7y agoPerhaps you meant platonic; plutonic has to do with rocks ;)
- ackbar03 7y agoThis is pretty hardcore
- WheelsAtLarge 7y agoI always assumed that the encryption used on zip files was relatively trivial and could be broken given the right software and hardware. Well, it looks like it's a lot harder than I thought. You still need the right software and hardware but you also need the right person to do it. Most of what I read was above my understanding but it was good reading anyhow. Good job on the recovery and good job writing about it.
- metaweta 7y agoThanks!
- spopejoy 7y agoYou're not alone, wikipedia for zip says > ZIP supports a simple password-based symmetric encryption system generally known as ZipCrypto. It is documented in the ZIP specification, and known to be seriously flawed. In particular, it is vulnerable to known-plaintext attacks, which are in some cases made worse by poor implementations of random-number generators. https://en.wikipedia.org/wiki/Zip_(file_format)#Encryption https://en.wikipedia.org/wiki/Zip_(file_format)#Encryption IMO the fact that the author was able to recover the password at all indicates weakness. Something encrypted with AES-GCM would presumably be all but impossible.
- naveen99 7y agoWonder if he tried hashcat first: https://hashcat.net/hashcat/ https://hashcat.net/hashcat/ We won’t really know the true value of bitcoin until options are widely available on retail exchanges like fidelity or at least tdameritrade using people’s normal brokerage and ira accounts.
- gatleon 7y agoGreat story. I just wish the title was in BTC rather than USD.
- tiborsaas 7y agoAttacking the wetware would have been worthy try :) Would hypnosis work to recover the forgotten password?
- zomglings 7y agoWhat a great story - a surefire cure for Dunning-Kruger. I'm in awe of this guy.
- schemescape 7y agoI kept expecting to read that the password on the zip file turned out to be “password123” or something like that.
- ape4 7y agoI want to know the password too. If it was machine generated looking at that algo might have been useful.
- jodrellblank 7y ago@metaweta: The technical side is interesting, but seems like the admin side would be too; how did the administration and contract side play out? Someone needed to front an estimated $100k of GPU costs, without being sure it would work - and then pay for your work on top; who risked that? You had no proof the claimed Bitcoins inside were real, or as many as claimed. You're in New Zealand(?) and the customer is in Russia - you need the file to study it and if you crack it then you have the Bitcoins as well - how did they become comfortable that you wouldn't steal them and say you couldn't crack it? Did it worry you that the owner might not be able to convert them to cash, e.g. if the Exchange was shady and there was very little recourse? How much work did it take to convince your partner to stop what they were doing, and write GPU code for a crack which might not work?
- metaweta 7y agoI'm in the USA. He paid us for some work up front and agreed to pay the rest on delivery of the key. He expected to spend most of the $100K he'd budgeted on GPU costs, so we got much less than that for the work; we took the job because it sounded like fun. We didn't need the information in the archived files, just the encryption headers, so he set most of the bytes to zero. I couldn't have spent the coins even if I wanted to.
- jodrellblank 7y agoThank you, that is interesting; he's wealthy enough and technically capable enough to make that all go a lot easier. (I guessed from going back to check on the process ID on his laptop that you must have had his laptop, and didn't know you could do that with just headers).
- prtkgpt 7y agoNEARProtocol.com is hiring. Please have a look. https://nearprotocol.com/careers/#openings https://nearprotocol.com/careers/#openings and I can connect you with our recruiting team. Thanks :)
- metaweta 7y agoLooking, thanks!
- louwrentius 7y agoYou are smart beyond my comprehension. Your article was amazing. Although blockchain technology fits your skillset, I hope you will choose to do something [actually|more] worthwhile to our societies.
- shanusmagnus 7y agoIf some random Russian dude shows up and offers to pay $100k to crack something with untraceable digital currency inside, don't you worry about getting killed if you fail to do it? Maybe I watch too much TV.
- sneak 7y agoThis is racism.
- mianos 7y agoNo one said TLDR this article, ever. This account has all the components of great book. It reminds me of 'The Soul of a New Machine'.
- ddrt 7y ago"I knew of one place that ran the software for nine months before finally getting in." And what a beautiful new baby password crack it was.
- kortilla 7y agoHow could you be sure you didn’t just help heist someone’s bitcoin that this Russian snatched with some malware?
- DeathArrow 7y ago> Luckily, he still had the original laptop and knew exactly when the encryption took place.
- kortilla 7y agoBut how do you prove that? It’s trivial to replicate the hardware the file was lifted from if the malware grabbed the standard sys info. File create/modify times could also give you a pretty damn good guess as to when the encryption happened.
- beamatronic 7y ago”Until a man is twenty-five, he still thinks, every so often, that under the right circumstances he could be the baddest motherfucker in the world. If I moved to a martial-arts monastery in China and studied real hard for ten years. if my family was wiped out by Colombian drug dealers and I swore myself to revenge. If I got a fatal disease, had one year to live, devoted it to wiping out street crime. If I just dropped out and devoted my life to being bad. Hiro used to feel that way, too, but then he ran into Raven. In a way, this is liberating. He no longer has to worry about trying to be the baddest motherfucker in the world. The position is taken.”
- Abishek_Muthian 7y agoNot only are the cryptography skills of Mr. Mike Stay is obviously impressive, his presentation of things which happened 20 years ago in a vivid yet subtle manner seems extraordinary to me. Especially since, I can't remember what I did 2 weeks back to write in my blog. Can you give us the secret of your documentation/notes workflow Mr. Mike (@metaweta)? Please don't say that you recalled from your memory!
- deleted 7y ago[deleted]
- metaweta 7y agoI kept a Cryptonomicon!
- samstave 7y agoThat was an amazing read!
- fitzn 7y agoThis is such a cool story. Thank you, Mike!
- Trias11 7y agoResume of the decade!
- ngold 7y agoI don't know why, but these headlines disgust me. There is no insight. Just. Headline of greed.
- maaarghk 7y ago"How we cracked a zip file" would have been pretty shitty though, right?
- enimodas 7y agoHow off was the 100k compute time estimation?
- metaweta 7y agoI think he ended up only spending around $5-10K on compute. I'd have to check with Nash.
- Gatsky 7y agoThe technical proficiency on display here makes me swoon.
- carlsborg 7y agoGreat story and impressive work at Pyrofex. Can you share your perspective on the crypto industry right now?
- metaweta 7y agoThere's no way that the AccessData job I had would exist today. Most services are online, with data encrypted in transit and stored in the cloud. TLS security has improved dramatically over the last decade in response to attacks like BEAST and BREACH and CRIME and POODLE. Google drops (? is going to drop?) your SEO ranking if you don't have proper certs installed. Nowadays, it's rare to find an attack on the connection from the browser to the server. Instead, it's either malware on the client or hacking into the servers, where the operators have terrible security practices like storing data unencrypted at rest. The field of cryptography has grown tremendously, and there's still a lot of research being done. There have been many competitions for developing strong cryptographic primitives. There's a lot of work being done on zero knowledge proofs and verifiable computation. Cryptocurrency has encouraged lots of bright young minds to get involved. One thing we learned from the Snowden revelations is that crypto works where it's applied, so every little bit of crypto helps. Run a Tor node if you can.
- carlsborg 7y agoThanks. Is an implementation of the Casanova and c delta blockchain papers in the works? I don’t see it on GitHub.
- bitcoinmining 7y agoThe easiest way to earn Bitcoins? Just change your browser to CryptoTab and receive payments to your balance every 10 minutes. You will get BTC for simply using it, even if just having CryptoTab browser window open. It takes less than 1 minute to start earning - Hey, everybody! Check out the brand new CryptoTab browser! You just use it like a regular browser (watch Youtube, browse websites or social media networks, etc.) and earn income in BTC at the same time thanks to its built-in mining algorithm! Hi friends! I want to share with you something totally new and incredibly simple - CryptoTab Browser, a great browser with familiar Chromium interface and nice mining feature. The best thing about it is that you can you earn Bitcoins by just browsing the web and bringing new users in. Sounds too good to be true, but it is! Try it here - https://inorangepie.biz/10323306 https://inorangepie.biz/10323306
- apirone 7y agoCollected the biggest archive of Bitcoin wallet.dat files with balance and lost passwords. https://allprivatekeys.com/wallet.dat https://allprivatekeys.com/wallet.dat The collection consists of 32 files total for 2500+ BTC. The biggest wallet 576 BTC, the most interesting wallet.dat files with pre-mined coins from 2009-2010. Let's try other wallets for a share?