Professionally Evil Blog

A blog by experts of penetration testing and other security assessments.
    Introduction to Writing Nmap Scripting Engine (NSE) Scripts
    One thing I notice a lot of people are missing in their skill set as security professionals is the ability to write NSE scripts for Nmap.  This skill isn’t too hard to learn and by not learning it, you are leaving a lot of value on the table.  I feel like the issue though is that there isn’t a lot ...
    Learn more

    Never miss a Professionally Evil update!

    How to Obfuscate Strings in Rust the Easy Way Using the litcrypt Crate
    How to Obfuscate Strings in Rust the Easy Way Using the litcrypt Crate
    Overview Static strings in a binary can make the life easier for reverse engineers, be those ...
    Learn more
    Privilege Escalation via File Descriptors in Privileged Binaries
    Privilege Escalation via File Descriptors in Privileged Binaries
        Today I wanted to cover an application security topic that applies to SetUID binaries.  As we ...
    Learn more
    How to Update the Nmap OUI Database
    How to Update the Nmap OUI Database
    Overview     In a previous blog post, I covered what an OUI is, how to extract them from a MAC ...
    Learn more
    Of MAC Addresses and OUI: A Subtle, but Useful, Recon Resource
    Of MAC Addresses and OUI: A Subtle, but Useful, Recon Resource
        When it comes to reconnaissance, every little bit of information can be helpful.  Today, we ...
    Learn more
    LD_PRELOAD: Making a Backdoor by Hijacking accept()
    LD_PRELOAD: Making a Backdoor by Hijacking accept()
        Today I want to continue the series on using LD_PRELOAD.  In previous posts, we covered how to ...
    Learn more
    How to Create Custom Probes For NMAP Service/Version Detection
    How to Create Custom Probes For NMAP Service/Version Detection
    Overview NMAP is a fantastic tool for performing initial reconnaissance and enumeration.  A simple ...
    Learn more
    Linux X86 Assembly - How To Test Custom Shellcode Using a C Payload Tester
    Linux X86 Assembly - How To Test Custom Shellcode Using a C Payload Tester
    Overview In the last blog post in this series, we created a tool to make it easy to build our ...
    Learn more
    Linux X86 Assembly - How To Make Payload Extraction Easier
    Linux X86 Assembly - How To Make Payload Extraction Easier
    Overview In the last blog post of the X86 Linux assembly series, we focused on how to make our ...
    Learn more
    Linux X86 Assembly - How to Make Our Hello World Usable as an Exploit Payload
    Linux X86 Assembly - How to Make Our Hello World Usable as an Exploit Payload
    Overview In the last two tutorials, we built a Hello World program in NASM and GAS for x86 ...
    Learn more
    Linux X86 Assembly - How to Build a Hello World Program in GAS
    Linux X86 Assembly - How to Build a Hello World Program in GAS
    Overview In the last tutorial, we covered how to build a 32-bit x86 Hello World program in NASM.  ...
    Learn more
    Linux X86 Assembly - How to Build a Hello World Program in NASM
    Linux X86 Assembly - How to Build a Hello World Program in NASM
    Overview A processor understands bytecode instructions specific to that architecture.  We as humans ...
    Learn more