Looking inside the (Drop) box. Security Analysis of Dropbox. Updated WOOT '13 paper and other goodies.
C TeX Python C++ Other
Latest commit 0d37d16 Mar 9, 2016 @kholia Minor updates ;)
Permalink
Failed to load latest commit information.
paper Minor updates ;) Mar 9, 2016
presentation add speaker notes + link to video Aug 28, 2013
src Works for Dropbox 3.12.4 (December, 2015) Dec 6, 2015
.gitignore dedrop v0.01 Aug 13, 2013
README.rst Minor updates ;) Mar 9, 2016

README.rst

Looking inside the (Drop) box

Security Analysis of Dropbox.

Web-based Presentation

"Upstream" Resources

Reversing Dropbox

  1. Download Dropbox and "install" it.

    $ cd ~
    
    $ export DROPBOX_VERSION="dropbox-lnx.x86_64-3.14.7"
    
    $ wget -c https://dl-web.dropbox.com/u/17/$DROPBOX_VERSION.tar.gz
    
    $ tar -xzf $DROPBOX_VERSION.tar.gz
    
  2. Build "dedrop". Switch to this repository and do,

    $ cd src/dedrop
    
    $ make
    
    $ cp libdedrop.so ~
    
  3. Use LD_PRELOAD and inject libdedrop.so into Dropbox.

    $ cd ~
    
    $ export BLOB_PATH=.dropbox-dist/$DROPBOX_VERSION/dropbox
    
    $ LD_PRELOAD=`pwd`/libdedrop.so .dropbox-dist/dropboxd
    
  4. De-compile the "fixed" bytecode files.

    $ uncompyle2 pyc_decrypted/client_api/hashing.pyc
    ...
    
  5. Study the soure-code, find bugs and make Dropbox better!

  6. You might need to do xhost local:root to start Dropbox.

Dependencies (for paper)

  • texlive

  • texlive-minted

  • texlive-texments

  • python-pygments

    yum install texlive texlive-minted python-pygments texlive-texments \
        texlive-ifplatform texlive-endnotes
    

Credits

Resources

TODO

  • Find alternatives to "tray_login" method since it is going to be patched soon. This is now redundant since Dropbox client now uses 2FA properly.
  • "While your submission was interesting, there has been other research on similar topics. There is nothing wrong with talking about the same topic more than once, especially one that has a large impact but if you are expanding on a topic, make sure to highlight how you are taking the research to a new level. Be clear with the review board about how what you are doing is extending the research." <= (apply this feedback to the paper and presentation).
  • Looking deeper into the (Drop) box.
    • dump bytecode from memory (revive pyREtic).