Portcullis Labs


Portcullis Labs is managed by the Portcullis Security Technical Team to provide easy access to our public tools and papers.

We built this website to share some of our knowledge. You’ll find several tools, papers and presentations mostly by security geeks, but all for security geeks.

For Portcullis Computer Security Services, please visit our corporate website to get more information.

Recent Content


  • This way to 10.10.10.1: Playing with labeled switching (17/4/2015)
    - As a pentester, there are days when you’ll get asked to look at the ordinary, and there are days that you’ll be asked to look at something more challenging. This week was full of days that met the latter criteria and not the former. Whilst I can’t share the scope, Portcullis was asked to examine a network implementation using the MPLS protocol and comment on the security or otherwise of it.
  • Testing against the kill chain on non-”red team” assessments (7/4/2015)
    - The following is a braindump of an idea I had as a result of the work I have been doing on Portcullis’ STAR offering.
  • Beware of empty paths (26/3/2015)
    - Consider the case of a setUID binary that runs as root and allows the caller to execute certain other scripts and binaries from a given restricted directory. The Portcullis Labs team recently spotted such a case and I was asked to take a look to determine exploitablity. What follows is a short analysis of what I found.
  • Fixing the links: Hardening the linker (20/2/2015)
    - As many of our regular readers will know, the Portcullis Labs team have a good deal of experience with reviewing the security of POSIX alike OS, and as a result, we’ve made some interesting discoveries in terms of how easy it can be to escalate ones privileges. As I discussed some time ago at CRESTCon, one particular avenue of attack that we like is the runtime linker itself. As part of our ongoing research, I’ve recently issued a request for comments for a patch that tackles a number of systemic weaknesses in the Linux (glibc) runtime linker that we often exploit. A few further points on the rationale…
  • Detecting windows horizontal password guessing attacks in near real-time (16/2/2015)
    - When attempting to gain a foothold into a Windows Domain, an attacker will often attempt one or two likely passwords against every user in the Active Directory, a so-called horizontal password guessing attack. A small number of failed logons per user will usually not trigger a user account lockout policy and can be very effective. This post will provide an example solution to detecting such attacks in near real time, using only native Windows tools.
  • MS SQL Server Audit: Extended Stored Procedures / Table Privileges (23/1/2015)
    - (If you excuse the pun), everyone has a different view on Extended Stored Procedures:

    • Some might say they are stored procedures with extra functionality
    • Some might say they can cause problems to a database if misused
    • Some simply say they are stored procedures with a prefix of xp_

    This post will hopefully give a better understanding of what Extended Stored Procedures are, how to identify them and how to restrict public access to them. Also this post will look at identifying permissions upon tables, views and functions to ensure it is not possible for users to directly modify data.

  • A year in the world of security advisories (18/12/2014)
    - Security researchers find vulnerabilities in products; it’s an important and almost inevitable part of the job. One of the side effects of these discoveries is that often new, unfixed zero day vulnerabilities are identified which the affected vendor may not be aware of. This can present a somewhat difficult situation: What should be done with a new vulnerability that nobody else knows about yet?
  • Building a sandpit (18/11/2014)
    - Today I was looking at how plugins could safely be incorporated into a J2EE application server. The plugins in this instance are executed server side, rather than on the client and are, in the main, provided by 3rd parties (digital advertising agencies etc). The aim was to limit the scope in which they operate. The implementation I looked at is pretty much the first instance where I’ve seen these techniques used, so I thought it was worth sharing.
  • How Many Bugs Can a Time Server Have? (7/11/2014)
    - Presentation on vulnerabilities in the Symmetricom (Micro Semi) S350i time server (as given at EMF Camp 2014).
  • RPDscan (6/11/2014)
    - RPDscan (Remmina Password Decrypt Scanner) is a tool to find and decrypt saved passwords in Remmina RDP configurations.
  • You can’t even trust your own reflection these days… (5/11/2014)
    - Recently, researchers at Trustwave’s SpiderLabs spoke at Black Hat Europe on the dangers of simply reflecting data back to the requesting user as part of an HTTP request/response exchange. When you think about it, this stands to reason, after all, it’s what Cross-site Scripting attacks are born from. What’s interesting is that the new research discussed another way in which it could be exploited.
  • Using Intel Pin tools for binary instrumentation (4/11/2014)
    - This article is continues the topic on dynamic instrumentation that it was presented before in a previous article.
  • POODLE: Padding Oracle On Downgraded Legacy Encryption (15/10/2014)
    - Last night, researchers from Google released details of a new attack that they have called the Padding Oracle On Downgrade Legacy Encryption (POODLE) attack which has been assigned CVE-2014-3566.

    The summary is, essentially, that SSLv3 uses a MAC-then-encrypt construction, which doesn’t authenticate the padding as it is applied on the plaintext message before padding or encryption are applied. This gives rise to a padding oracle bug, which is how BEAST worked too.

  • Vanilla good security practice vs. BadUSB (9/10/2014)
    - This post discusses the BadUSB research published by Karsten Nohl recently at Black Hat. You might want to check out the slides and/or video before reading on.
  • CVE-2014-6271 (Shellshock): The story of a permissive parser (29/9/2014)
    - Some bugs are so simple and so elegant that you wonder how it is possible that no one has found them until now. Those are my favorites. They are simple, they do not involve memory corruption and most of the time they do not even need an advanced exploit code to abuse it. Stéphane Chazelas’ Bash bug is one of these bugs.

Twitter Feed