A while ago, No Starch Press generously donated to PPP some of their awesome book releases in computer security!

We have selected some of the reviews for the books that PPP members have read and very much enjoyed!

Metasploit: The Penetration Tester’s Guide review

A most informative book!  I had a little prior experience with Metasploit using pattern_create and pattern_offset to find offsets to eip, but was quite ignorant of Metasploit’s core functionality.  Metasploit: The Penetration Tester’s Guide covers just what you’d expect — it opens with general penetration testing, then switches to describing the framework’s features for information gathering and vulnerability scanning.  These are followed by exploiting remote services, post-exploitation tasks through meterpreter, techniques for evading detection by antivirus software, and exploiting browsers.  Auxiliary modules are covered next, with chapters on the social engineering toolkit (I found the discussion of the Teensy USB system particularly interesting), fast-track, and karmetasploit.  The final section covers writing your own modules, using the framework to assist exploit discovery / development, porting exploits to the framework, and writing meterpreter scripts. The book closes with a chapter on running a simulated pen test to better learn the framework, with appendices on setting up vulnerable VMs to attack and an index of handy ‘commands to remember’.

One notable strength of this book is that nearly every feature of the framework which is covered comes with a transcript of a command line session using that feature.  While these transcripts took up a lot of space, they were very helpful for a reader unfamiliar with the framework.  I imagine these may be somewhat less useful to a more experienced user.  The only editing mistakes that I noted were in these transcripts, with a few things bolded for no apparent reason; other than this, the book is quite well edited and very readable.  As many of the concepts underlying particular framework features were unexplained, the book helped me, as a newbie, generate a list of “things I should read up on” while also familiarizing me with a new tool and increasing my awareness of the capabilities of attackers, all of which were immensely helpful.  I do not regard this lack of explanation of how some features work as a particular weakness; that’s not the book’s function, and would be beyond its scope.  Its function is to familiarize the reader with the capabilities of the framework and how to use them, and it performs this task admirably.  Would recommend.


Learn You A Haskell for Great Good

The only reason I wanted to learn Haskell was because one of our members uses it as a scripting language, and I wanted to be able to understand what he was doing.  I’d been recommended the Learn You a Haskell website tutorial before, but I’ve never done well with web tutorials; books seem to work much better for me.  So this was a natural choice, as it is the website in book form.  The book presents everything in a clear fashion, but the content is far from simple; very quickly one is able to write programs in Haskell.  Rather than presenting the various odd aspects of the language as such (especially its emphasis on purity, which for some is a blessing and others a curse), the book explains why first it is useful, and then how it works in practice.  In this way the Haskell programming style becomes somewhat instinctive, which I found to work well enough that I was trying to write Haskell-like code for a long time after going back to my language of choice (lisp).  I thoroughly enjoyed the author’s at-times humorous presentation of material, and applaud his effort in the creation of this work.  Highly recommended, though I still don’t know why one would use this language for scripting.


The Book of Ruby

An easy read, and a good reference for beginners with some programming experience to try and pick up Ruby. The “Digging Deeper” boxes do provide quite a bit of detail for those who wish to learn the language in a deeper sense, and help those with a background to relate Ruby concepts to what they might be more familiar with. Examples from the book are good to get “down and dirty” with the language.


Silence on the Wire: A Field Guide to Passive Reconnaissance and Indirect Attacks

This book provides an anecdotal approach to a variety of computer security issues. Zalewski gives a thorough explanation of the causes and reasons for these lapses in security; the issues are understandable by the novice while still being interesting for the more advanced computer user. However, the work is more of a tour than a guide: those looking for instructions or examples on how to hack are left with theory but not with actual implementation. From the weaknesses of prime numbers to the complications of networks, the book entertains and explains in harmony.


Land of Lisp

Land of Lisp does a fantastic job of not only telling the reader about ALL the important and unique aspects of lisp that make it renowned and respected, but it also demonstrates them clearly and concisely though examples that are well thought out and fun. The book does a good job of building a strong foundation in lisp, and then slowly but surely eases the reader into the more advanced and difficult parts of lisp.


Gray Hat Python

Gray Hat Python claims to be the first “real manual” on using python for a “variety of hacking tasks.” This isn’t really the case: the book exclusively covers Windows hacking and has explanations that are sparse at best and sometimes almost misleading enough to be incorrect.  However, the book does offer several interesting examples of hacking Windows programs using python with C imports. It provides a walkthrough, including code, for creating a debugger in python and writing python plugins for existing debuggers. This could be useful for a budding windows hacker who is starting to peak under the hood of his machine but doesn’t want to get his/her hands dirty with a more traditional systems language.


A Bug Hunter’s Diary

A Bug Hunter’s Diary is a rather short book (8 chapters, 194 pages) that describes the process of bug finding, exploiting, and coordinating with vendors for various software bugs that Klein discovered and explored. In each chapter, he talks about one bug as a case-study from the discovery of the bug to full development of exploits — though actual exploit is omitted in his book due to regulations in Germany. The bugs that he covers range widely including VLC media player, Solaris operating system, ffmpeg media library, WebEx Active X control, Avast! anti-virus driver, Mac OS X kernel, and iOS mediaserverd. As listed above, this book gives a good overview and some tips on how to start hunting bugs in many different platforms.  Each chapter is thoroughly explained with details (and resource citations) such that readers can follow the exact path that Klein has walked through in order to find and exploit these bugs. This book does not only give a good insight on but also provides many useful tips and tools to aid the bug hunting! Generally, the book is easily read and I enjoyed technical details that are usually missing in similar literatures.


The Linux Programming Interface

The Linux Programming Interface is a wonderfully comprehensive and detailed reference for the main concepts and common coding patterns for writing programs on Linux.  It describes these in far more detail than the manpages, and also manages to give a little of the history behind why some things are the way they are.  Even though this is fantastic as a reference, each chapter includes some exercises that readers can complete using the knowledge contained in the chapter (solutions to selected problems are available at the back of the book, with source code on the book’s website [link to http://man7.org/tlpi/]).  Looking through this book definitely beats aimlessly searching online for finding out how to do nontrivial things in a Linux program.


Practical Packet Analysis

This book serves as a relatively succint and very useful introduction to the use of Wireshark and other tools, as well as providing detailed and excellent descriptions of many of the low-level protocols involved in network communication. It later dives into a few of the more common high-level protocols: namely, DNS, HTTP, and DHCP, providing an excellent overview of all three. The book continues by providing thorough and detailed walkthroughs of several scenarios one could run into, including analyzing a packet capture from a slow network to decide on the source of the slowness, viewing a Twitter login and Facebook chat at the packet level, as well as an example of some more security-minded analysis, such as detecting someone OS-fingerprinting a machine. Ultimately, it ends by describing methods of capturing and analyzing wireless traffic, as well as a short discussion of how wireless works in general.

Overall, the book is a fantastic introduction, and I would recommend it to anyone interested in getting started in packet capture analysis.


Thanks again to No Starch Press for their awesomeness and encouragement to the community to learn more cool stuff. We hope you guys (readers!) to find some of these books interesting and take a look at them.