Metasploit Readline Support
I already wanted to write about this two weeks ago, but better late than never.
I noticed back then that after updating Metasploit from SVN, the Readline support was broken. GNU Readline is something awesome. It is a library that allows command line editing and has Emacs and Vi keybindings. This means that whenever a command line program supports Readline, I can use my beloved this-stuff-is-hardwired-in-my-brain Vi keys. It even has normal and insert mode. If you want to try it yourself, you just have to define it in your
~/.inputrc. Mine, for example, reads:
set editing-mode vi set keymap vi set convert-meta on
So, Metasploit has Readline support, too. And it broke (for me) with revision 7089 due to a switch to a Readline library written in pure Ruby. Switching to a pure Ruby implementation is a good thing, as it further reduces platform dependencies, but this one crashed on me because it didn’t know about the Vi movement modes.
I sent a mail to the Metasploit mailinglist detailing the problem, which is why I originally planned to write this blog post: HD answered and fixed the problem ca. 70 minutes after my post (by disabling the feature, but at least Metasploit worked again). And when in a later post he mentioned that he might reenable the old code using GNU Readline and I raised my hand to support this, he promptly added a command line switch (try -L). This time it took about 6 hours. As someone else in the thread put it: “talk about customer service”! So, thanks again for the quick reaction HD.