Never Ending Security

It starts all here

Daily Archives: 20 April 2015

Lockpicking Video Course


Papers From NEU SecLab


Cutting the Gordian Knot: A Look Under the Hood of Ransomware Attacks
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Milan, IT, Jul 2015
BiBTeX

Sentinel: Securing Legacy Firefox Extensions
In Computers & Security, 49(0), 2015
Elsevier
PDF BiBTeX

BabelCrypt: The Universal Encryption Layer for Mobile Messaging Applications
In Financial Cryptography and Data Security (FC)
Isla Verde, PR, Jan 2015
PDF BiBTeX

TrueClick: Automatically Distinguishing Trick Banners from Genuine Download Links
In Annual Computer Security Applications Conference (ACSAC)
New Orleans, LA US, Dec 2014
PDF BiBTeX

Toward Robust Hidden Volumes using Write-Only Oblivious RAM
In ACM Conference on Computer and Communications Security (CCS)
Scottsdale, AZ US, Nov 2014
PDF BiBTeX

Why is CSP Failing? Trends and Challenges in CSP Adoption
In International Symposium on Research in Attacks, Intrusions, and Defenses (RAID)
Gothenburg, SE, Sep 2014
PDF BiBTeX

A Look at Targeted Attacks through the Lense of an NGO
S. Le Blonde, A. Uritesc, C. Gilbert, Z. Leong Chua, P. Saxena, E. Kirda
In USENIX Security Symposium
San Diego, CA US, Aug 2014
PDF BiBTeX

Optical Delusions: A Study of Malicious QR Codes in the Wild
In IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)
Atlanta, GA US, Jun 2014
PDF BiBTeX

EXPOSURE: A Passive DNS Analysis Service to Detect and Report Malicious Domains
In ACM Transactions on Information and System Security (TISSEC), 16(4), 2014

VirtualSwindle: An Automated Attack Against In-App Billing on Android
In ACM Symposium on Information, Computer and Communications Security (ASIACCS)
Kyoto, JP, Jun 2014
PDF BiBTeX

Hidden GEMs: Automated Discovery of Access Control Vulnerabilities in Graphical User Interfaces
In IEEE Symposium on Security and Privacy (S&P)
San Jose, CA US, May 2014
PDF BiBTeX

Beehive: Large-Scale Log Analysis for Detecting Suspicious Activity in Enterprise Networks
In Annual Computer Security Applications Conference (ACSAC)
New Orleans, LA US, Dec 2013
PDF BiBTeX

PatchDroid: Scalable Third-Party Patches for Android Devices
In Annual Computer Security Applications Conference (ACSAC)
New Orleans, LA US, Dec 2013
PDF BiBTeX

Holiday Pictures or Blockbuster Movies? Insights into Copyright Infringement in User Uploads to One-Click File Hosters
T. Lauinger, K. Onarlioglu, A. Chaabane, E. Kirda, W. Robertson, M. A. Kaafar
In International Symposium on Research in Attacks, Intrusions and Defenses (RAID)
St. Lucia, LC, Oct 2013
PDF BiBTeX

Securing Legacy Firefox Extensions with Sentinel
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Berlin, DE, Jul 2013
PDF BiBTeX

PrivExec: Private Execution as an Operating System Service
In IEEE Symposium on Security and Privacy (S&P)
San Francisco, CA US, May 2013
PDF BiBTeX

A Practical, Targeted, and Stealthy Attack Against WPA Enterprise Authentication
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2013
PDF BiBTeX

Clickonomics: Determining the Effect of Anti-Piracy Measures for One-Click Hosting
T. Lauinger, M. Szydlowski, K. Onarlioglu, G. Wondracek, E. Kirda, C. Kruegel
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2013
PDF BiBTeX

DISCLOSURE: Detecting Botnet Command and Control Servers Through Large-Scale NetFlow Analysis
In Annual Computer Security Applications Conference (ACSAC)
Orlando, FL US, Dec 2012
PDF BiBTeX

TRESOR-HUNT: Attacking CPU-Bound Encryption
In Annual Computer Security Applications Conference (ACSAC)
Orlando, FL US, Dec 2012
PDF BiBTeX

Paying for Piracy? An Analysis of One-Click Hosters’ Controversial Reward Schemes
T. Lauinger, E. Kirda, P. Michiardi
In International Symposium on Research in Attacks, Intrusions, and Defenses (RAID)
Amsterdam, NL, Sep 2012
PDF BiBTeX

A Quantitative Study of Accuracy in System Call-Based Malware Detection
D. Canali, A. Lanzi, D. Balzarotti, M. Christodorescu, C. Kruegel, E. Kirda
In International Symposium on Software Testing and Analysis (ISSTA)
Minneapolis, MN US, Aug 2012
PDF BiBTeX

PoX: Protecting Users from Malicious Facebook Applications
M. Egele, A. Moser, C. Kruegel, E. Kirda
In Computer Communications Journal, 0(0), 2012
Elsevier
PDF BiBTeX

Protecting Users and Businesses from CRAWLers
In USENIX Security Symposium
Bellevue, WA US, Aug 2012
PDF BiBTeX

Preventing Input Validation Vulnerabilities in Web Applications through Automated Type Analysis
In IEEE Computer Software and Applications Conference
Izmir, TR, Jul 2012
PDF BiBTeX

A Security Analysis of Amazon’s Elastic Compute Cloud Service
M. Balduzzi, J. Zaddach, D. Balzarotti, E. Kirda, S. Loureiro
In ACM Symposium on Applied Computing (SAC)
Trento, IT, Mar 2012
PDF BiBTeX

An Empirical Analysis of Input Validation Mechanisms in Web Applications and Languages
In ACM Symposium on Applied Computing (SAC)
Trento, IT, Mar 2012
PDF BiBTeX

Insights into User Behavior in Dealing with Internet Attacks
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2012
PDF BiBTeX

A Survey on Automated Dynamic Malware Analysis Techniques and Tools
In ACM Computing Surveys, 44(2), 2012

Have Things Changed Now? An Empirical Study on Input Validation Vulnerabilities in Web Applications
In Computers & Security, 31(3), 2012
Elsevier
PDF BiBTeX

The Power of Procrastination: Detection and Mitigation of Execution-Stalling Malicious Code
C. Kolbitsch, E. Kirda, C. Kruegel
In ACM Conference on Computer and Communications Security (CCS)
Chicago, IL US, Oct 2011
PDF BiBTeX

BTLab: A System-Centric, Data-Driven Analysis and Measurement Platform for BitTorrent Clients
M. Szydlowski, B. Zhao, E. Kirda, C. Kruegel
In International Conference on Computer Communication Networks (ICCCN)
Maui, HI US, Aug 2011
PDF BiBTeX

Reverse Social Engineering Attacks in Online Social Networks
D. Irani, M. Balduzzi, D. Balzarotti, E. Kirda
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Amsterdam, NL, Jul 2011
PDF BiBTeX

PoX: Protecting Users from Malicious Facebook Applications
M. Egele, A. Moser, C. Kruegel, E. Kirda
In IEEE International Workshop on Security and Social Networking (SESOC)
Seattle, WA US, Mar 2011
PDF BiBTeX

Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications
M. Balduzzi, C. T. Gimenez, D. Balzarotti, E. Kirda
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2011
PDF BiBTeX

PiOS: Detecting Privacy Leaks in iOS Applications
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2011
PDF BiBTeX

EXPOSURE: Finding Malicious Domains Using Passive DNS Analysis
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2011
PDF BiBTeX

Quo Vadis? A Study of the Evolution of Input Validation Vulnerabilities in Web Applications
In International Conference on Financial Cryptography and Data Security
St. Lucia, LC, Feb 2011
PDF BiBTeX

G-Free: Defeating Return-Oriented Programming through Gadget-less Binaries
In Annual Computer Security Applications Conference (ACSAC)
Austin, TX US, Dec 2010
PDF BiBTeX

Static Analysis for Detecting Taint-Style Vulnerabilities in Web Applications
N. Jovanovic, C. Kruegel, E. Kirda
In Journal of Computer Security, 18(0), 2010
IOS Press
PDF BiBTeX

AccessMiner: Using System-Centric Models for Malware Protection
A. Lanzi, D. Balzarotti, C. Kruegel, M. Christodorescu
In ACM Conference on Computer and Communications Security (CCS)
Chicago, IL US, Oct 2010
PDF BiBTeX

Abusing Social Networks for Automated User Profiling
M. Balduzzi, C. Platzer, T. Holz, E. Kirda, D. Balzarotti
In International Symposium on Recent Advances in Intrusion Detection (RAID)
Ottawa, ON CA, Sep 2010
PDF BiBTeX

An Experience in Testing the Security of a Real-World Electronic Voting System
D. Balzarotti, M. Cova, V. Felmetsger, R. Kemmerer, W. Robertson, F. Valeur, G. Vigna
In IEEE Transactions on Software Engineering, 36(4), 2010
IEEE Computer Society
PDF BiBTeX

Exploiting Diverse Observation Perspectives to Get Insights on the Malware Landscape
C. Leita, U. Bayer, E. Kirda
In International Conference on Dependable Systems and Networks (DSN)
Chicago, IL US, Jun 2010
PDF BiBTeX

Is the Internet for Porn? An Insight into the Online Adult Industry
G. Wondracek, T. Holz, C. Platzer, E. Kirda, C. Kruegel
In Workshop on the Economics of Information Security (WEIS)
Boston, MA US, Jun 2010
PDF BiBTeX

Identifying Dormant Functionality in Malware Programs
P. M. Comparetti, G. Salvaneschi, C. Kolbitsch, C. Kruegel, E. Kirda, S. Zanero
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2010
PDF BiBTeX

Inspector Gadget: Automated Extraction of Proprietary Gadgets from Malware Binaries
C. Kolbitsch, T. Holz, C. Kruegel, E. Kirda
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2010
PDF BiBTeX

A Practical Attack to De-Anonymize Social Network Users
G. Wondracek, T. Holz, E. Kirda, C. Kruegel
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2010
PDF BiBTeX

A Solution for the Automated Detection of Clickjacking Attacks
M. Balduzzi, M. Egele, D. Balzarotti, E. Kirda, C. Kruegel
In ACM Symposium on Information, Computer, and Communications Security (ASIACCS)
Beijing, CN, Apr 2010
PDF BiBTeX

Honeybot: Your Man in the Middle for Automated Social Engineering
In USENIX Workshp on Large-Scale Exploits and Emergent Threats
San Jose, CA US, Apr 2010
PDF BiBTeX

Extending Mondrian Memory Protection
C. Kolbitsch, C. Kruegel, E. Kirda
In NATO RTO IST-091 Symposium
Antalya, TR, Apr 2010
PDF BiBTeX

Improving the Efficiency of Dynamic Malware Analysis
U. Bayer, E. Kirda, C. Kruegel
In ACM Symposium on Applied Computing (SAC)
Lausanne, CH, Mar 2010
PDF BiBTeX

CAPTCHA Smuggling: Hijacking Web Browsing Sessions to Create CAPTCHA Farms
In ACM Symposium on Applied Computing (SAC)
Lausanne, CH, Mar 2010
PDF BiBTeX

Efficient Detection of Split Personalities in Malware
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2010
PDF BiBTeX

Effective Anomaly Detection with Scarce Training Data
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2010
PDF BiBTeX

FIRE: FInding Rogue nEtworks
B. Stone-Gross, A. Moser, C. Kruegel, K. Almeroth, E. Kirda
In Annual Computer Security Applications Conference (ACSAC)
Honolulu, HI US, Dec 2009
PDF BiBTeX

Automated Spyware Collection and Analysis
A. Stamminger, C. Kruegel, G. Vigna, E. Kirda
In Information Security Conference (ISC)
Pisa, IT, Sep 2009
PDF BiBTeX

Automatically Generating Models for Botnet Detection
P. Wurzinger, L. Bilge, T. Holz, J. Goebel, C. Kruegel, E. Kirda
In European Symposium on Research in Computer Security (ESORICS)
Saint-Malo, FR, Sep 2009
PDF BiBTeX

Protecting a Moving Target: Addressing Web Application Concept Drift
In International Symposium on Recent Advances in Intrusion Detection (RAID)
Saint-Malo, FR, Sep 2009
PDF BiBTeX

Client-Side Cross-Site Scripting Protection
E. Kirda, N. Jovanovic, C. Kruegel, G. Vigna
In Computers & Security, 28(7), 2009
Elsevier
PDF BiBTeX

Effective and Efficient Malware Detection at the End Host
C. Kolbitsch, P. M. Comparetti, C. Kruegel, E. Kirda, X. Zhou, X. Wang
In USENIX Security Symposium
Montreal, QC CA, Aug 2009
PDF BiBTeX

Static Enforcement of Web Application Integrity Through Strong Typing
In USENIX Security Symposium
Montreal, QC CA, Aug 2009
PDF BiBTeX

Defending Browsers Against Drive-by Downloads: Mitigating Heap-spraying Code Injection Attacks
M. Egele, P. Wurzinger, C. Kruegel, E. Kirda
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Milan, IT, Jun 2009
PDF BiBTeX

All Your Contacts Are Belong to Us: Automated Identity Theft Attacks on Social Networks
In International World Wide Web Conference (WWW)
Madrid, ES, May 2009
PDF BiBTeX

Server-side Bot Detection in Massively Multiplayer Online Games
S. Mitterhofer, C. Platzer, E. Kirda, C. Kruegel
In IEEE Security & Privacy Magazine, 0(0), 2009
IEEE Computer Society
PDF BiBTeX

Prospex: Protocol Specification Extraction
P. M. Comparetti, G. Wondracek, C. Kruegel, E. Kirda
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2009
PDF BiBTeX

SWAP: Mitigating XSS Attacks Using a Reverse Proxy
P. Wurzinger, C. Platzer, C. Ludl, E. Kirda, C. Kruegel
In Internation Workshop on Software Engineering for Secure Systems
Vancouver, BC CA, May 2009
PDF BiBTeX

Removing Web Spam Links from Search Engine Results
M. Egele, C. Kruegel, E. Kirda
In European Institute for Computer Antivirus Research Conference (EICAR)
Berlin, DE, May 2009
PDF BiBTeX

Reducing Errors in the Anomaly-based Detection of Web-based Attacks Through the Combined Analysis of Web Requests and SQL Queries
In Journal of Computer Security, 17(3), 2009
IOS Press
PDF BiBTeX

Insights into Current Malware Behavior
U. Bayer, I. Habibi, D. Balzarotti, E. Kirda, C. Kruegel
In USENIX Workshop on Large-Scale Exploits and Emergent Threats
Boston, MA US, Apr 2009
PDF BiBTeX

Mitigating Drive-by Download Attacks: Challenges and Open Problems
M. Egele, E. Kirda, C. Kruegel
In Open Research Problems in Network Security Workshop (iNetSec)
Zurich, CH, Apr 2009
PDF BiBTeX

Scalable, Behavior-Based Malware Clustering
U. Bayer, P. M. Comparetti, C. Hlauschek, C. Kruegel, E. Kirda
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2009
PDF BiBTeX

Large-Scale Malware Collection: Lessons Learned
J. Canto, M. Dacier, E. Kirda, C. Leita
In IEEE SRDS Workshop on Sharing Field Data and Experiment Measurements on Resilience of Distributed Computing Systems
Naples, IT, Oct 2008
PDF BiBTeX

Visual-Similarity-Based Phishing Detection
E. Medvet, E. Kirda, C. Kruegel
In International Conference on Security and Privacy in Communication Networks (SECURECOMM)
Istanbul, TR, Sep 2008
PDF BiBTeX

Expanding Human Interactions for In-Depth Testing of Web Applications
S. McAllister, E. Kirda, C. Kruegel
In International Symposium on Recent Advances in Intrusion Detection (RAID)
Boston, MA US, Sep 2008
PDF BiBTeX

Overbot – A Botnet Protocol Based on Kademlia
G. Starnberger, C. Kruegel, E. Kirda
In International Conference on Security and Privacy in Communication Networks (SECURECOMM)
Istanbul, TR, Sep 2008
PDF BiBTeX

Are Your Votes Really Counted? Testing the Security of Real-world Voting Systems
D. Balzarotti, G. Banks, M. Cova, V. Felmetsger, W. Robertson, F. Valeur, G. Vigna, R. Kemmerer
In International Symposium on Software Testing and Analysis (ISSTA)
Seattle, WA US, Jul 2008
PDF BiBTeX

Saner: Composing Static and Dynamic Analysis to Validate Sanitization in Web Applications
M. Cova, V. Felmetsger, D. Balzarotti, N. Jovanovic, C. Kruegel, E. Kirda
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2008
PDF BiBTeX

The Leurre.com Project: Collecting Internet Threats Information using a Worldwide Distributed Honeynet
C. Leita, O. Thonnard, E. Ramirez-Silva, F. Pouget, E. Kirda, M. Dacier
In WOMBAT Workshop
Amsterdam, NL, Apr 2008
PDF BiBTeX

Automatic Network Protocol Analysis
G. Wondracek, P. M. Comparetti, C. Kruegel, E. Kirda
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2008
PDF BiBTeX

Secure Input for Web Applications
M. Szydlowski, C. Kruegel, E. Kirda
In Annual Computer Security Applications Conference (ACSAC)
Miami Beach, FL US, Dec 2007
PDF BiBTeX

Limits of Static Analysis for Malware Detection
A. Moser, C. Kruegel, E. Kirda
In Annual Computer Security Applications Conference (ACSAC)
Miami Beach, FL US, Dec 2007
PDF BiBTeX

Improving Signature Testing Through Dynamic Data Flow Analysis
In Annual Computer Security Applications Conference (ACSAC)
Miami Beach, FL US, Dec 2007
PDF BiBTeX

Panorama: Capturing System-wide Information Flow for Malware Detection and Analysis
H. Yin, D. Song, M. Egele, C. Kruegel, E. Kirda
In ACM Conference on Computer and Communications Security (CCS)
Alexandria, VA US, Nov 2007
PDF BiBTeX

Detecting System Emulators
T. Raffetseder, C. Kruegel, E. Kirda
In Information Security Conference (ISC)
Valparaiso, CL, Oct 2007
PDF BiBTeX

A Layout-Similarity-Based Approach for Detecting Phishing Pages
A. Rosiello, E. Kirda, C. Kruegel, F. Ferrandi
In International Conference on Security and Privacy in Communication Networks (SECURECOMM)
Nice, FR, Sep 2007
PDF BiBTeX

Exploiting Execution Context for the Detection of Anomalous System Calls
In International Symposium on Recent Advances in Intrusion Detection (RAID)
Gold Coast, QLD AU, Sep 2007
PDF BiBTeX

Exploiting Redundancy in Natural Language to Penetrate Bayesian Spam Filters
C. Karlberger, G. Bayler, C. Kruegel, E. Kirda
In USENIX Workshop on Offensive Technologies (WOOT)
Boston, MA US, Aug 2007
PDF BiBTeX

On the Effectiveness of Techniques to Detect Phishing Sites
C. Ludl, S. McAllister, E. Kirda, C. Kruegel
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Lucerne, CH, Jul 2007
PDF BiBTeX

Dynamic Spyware Analysis
M. Egele, C. Kruegel, E. Kirda, H. Yin, D. Song
In USENIX Annual Technical Conference
Santa Clara, CA US, Jun 2007
PDF BiBTeX

Building Anti-Phishing Browser Plug-Ins: An Experience Report
T. Raffetseder, E. Kirda, C. Kruegel
In Internation Workshop on Software Engineering for Secure Systems
Minneapolis, MN US, May 2007
PDF BiBTeX

Exploring Multiple Execution Paths for Malware Analysis
A. Moser, C. Kruegel, E. Kirda
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2007
PDF BiBTeX

Cross-Site Scripting Prevention with Dynamic Data Tainting and Static Analysis
P. Vogt, F. Nentwich, N. Jovanovic, C. Kruegel, E. Kirda, G. Vigna
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2007
PDF BiBTeX

Extending .NET Security to Unmanaged Code
In Information Security Conference (ISC)
Samos, GR, Sep 2006
PDF BiBTeX

Dynamic Analysis of Malicious Code
U. Bayer, A. Moser, C. Kruegel, E. Kirda
In Journal of Computer Virology, 0(0), 2006
Springer
PDF BiBTeX

Behavior-Based Spyware Detection
In USENIX Security Symposium
Vancouver, BC CA, Aug 2006
PDF BiBTeX

Preventing Cross-Site Request Forgery Attacks
N. Jovanovic, E. Kirda, C. Kruegel
In International Conference on Security and Privacy in Communication Networks (SECURECOMM)
Baltimore, MD US, Aug 2006
PDF BiBTeX

Using Static Program Analysis to Aid Intrusion Detection
M. Egele, M. Szydlowski, E. Kirda, C. Kruegel
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Berlin, DE, Jul 2006
PDF BiBTeX

Precise Alias Analysis for Syntactic Detection of Web Application Vulnerabilities
N. Jovanovic, C. Kruegel, E. Kirda
In ACM SIGPLAN Workshop on Programming Languages and Analysis for Security
Ottawa, ON CA, Jun 2006
PDF BiBTeX

Pixy: A Static Analysis Tool for Detecting Web Application Vulnerabilities (Short Paper)
N. Jovanovic, C. Kruegel, E. Kirda
In IEEE Symposium on Security and Privacy
Oakland, CA US, May 2006
PDF BiBTeX

SecuBat: A Web Vulnerability Scanner
In International World Wide Web Conference (WWW)
Edingurgh, GB, May 2006
PDF BiBTeX

Noxes: A Client-Side Solution for Mitigating Cross-Site Scripting Attacks
E. Kirda, C. Kruegel, G. Vigna, N. Jovanovic
In ACM Symposium on Applied Computing (SAC)
Dijon, FR, Apr 2006
PDF BiBTeX

An Anomaly-Driven Reverse Proxy for Web Applications
In ACM Symposium on Applied Computing (SAC)
Dijon, FR, Apr 2006
PDF BiBTeX

Protecting Users Against Phishing Attacks
In The Computer Journal, 0(0), 2006
Oxford University Press
PDF BiBTeX

TTAnalyze: A Tool for Analyzing Malware
U. Bayer, C. Kruegel, E. Kirda
In European Institute for Computer Antivirus Research Conference (EICAR)
Hamburg, DE, Apr 2006
PDF BiBTeX

Using Generalization and Characterization Techniques in the Anomaly-based Detection of Web Attacks
In Network and Distributed Systems Security Symposium (NDSS)
San Diego, CA US, Feb 2006
PDF BiBTeX

Polymorphic Worm Detection Using Structural Information of Executables
In International Symposium on Recent Advances in Intrusion Detection (RAID)
Seattle, WA US, Sep 2005
PDF BiBTeX

Protecting Users Against Phishing Attacks with AntiPhish
In International Computer Software and Applications Conference
Edinburgh, GB, Jul 2005
PDF BiBTeX

A Multi-Model Approach to the Detection of Web-based Attacks
In Journal of Computer Networks, 48(5), 2005
Elsevier
PDF BiBTeX

Automating Mimicry Attacks Using Static Binary Analysis
In USENIX Security Symposium
Baltimore, MD US, Jul 2005
PDF BiBTeX

Reverse Engineering of Network Signatures
In Annual Asia Pacific Information Technology Security Conference (AusCERT)
Gold Coast, QLD AU, May 2005
PDF BiBTeX

Detecting Kernel-Level Rootkits Through Binary Analysis
In Annual Computer Security Applications Conference (ACSAC)
Tuscon, AZ US, Dec 2004
PDF BiBTeX

Testing Network-based Intrusion Detection Signatures Using Mutant Exploits
In ACM Conference on Computer and Communications Security (CCS)
Washington DC US, Oct 2004
PDF BiBTeX

Using Alert Verification to Identify Successful Intrusion Attempts
In Journal of Practice in Information Processing and Communication (PIK), 27(4), 2004
K.G. Saur Verlag
PDF BiBTeX

Static Disassembly of Obfuscated Binaries
In USENIX Security Symposium
San Diego, CA US, Aug 2004
PDF BiBTeX

Alert Verification: Determining the Success of Intrusion Attempts
In Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA)
Dortmund, DE, Jul 2004
PDF BiBTeX

Bayesian Event Classification for Intrusion Detection
C. Kruegel, D. Mutz, W. Robertson, F. Valeur
In Annual Computer Security Applications Conference (ACSAC)
Las Vegas, NV US, Dec 2003
PDF BiBTeX

A Stateful Intrusion Detection System for World-Wide Web Servers
In Annual Computer Security Applications Conference (ACSAC)
Las Vegas, NV US, Dec 2003
PDF BiBTeX

Run-time Detection of Heap-based Overflows
W. Robertson, C. Kruegel, D. Mutz, F. Valeur
In USENIX Large Installations Systems Administration Conference (LISA)
San Diego, CA US, Oct 2003
PDF BiBTeX

Topology-based Detection of Anomalous BGP Messages
C. Kruegel, D. Mutz, W. Robertson, F. Valeur
In International Symposium on Recent Advances in Intrusion Detection (RAID)
Pittsburgh, PA US, Sep 2003
PDFBiBTeX

CyLab Faculty Seminars


CyLab Faculty Seminars

Youtube playlist: https://www.youtube.com/playlist?list=PL8FD44D6D4A92CD32

CTF Field Guide


CTF Field Guide

“Knowing is not enough; we must apply. Willing is not enough; we must do.” – Johann Wolfgang von Goethe

Welcome!

We’re glad you’re here. We need more people like you.

If you’re going to make a living in defense, you have to think like the offense.

So, learn to win at Capture The Flag (CTF). These competitions distill major disciplines of professional computer security work into short, objectively measurable exercises. The focus areas that CTF competitions tend to measure are vulnerability discovery, exploit creation, toolkit creation, and operational tradecraft.

Whether you want to succeed at CTF, or as a computer security professional, you’ll need to become an expert in at least one of these disciplines. Ideally in all of them.

That’s why we wrote this book.

In these chapters, you’ll find everything you need to win your next CTF competition:

  • Walkthroughs and details on past CTF challenges
  • Guidance to help you design and create your own toolkits
  • Case studies of attacker behavior, both in the real world and in past CTF competitions

To make your lives easier, we’ve supplemented each lesson with the Internet’s best supporting reference materials. These come from some of the best minds in the computer security field. Looking ahead, we hope you’ll collaborate to keep this book evolving with the industry.

We’ve tried to structure this so you can learn as quickly as you want, but if you have questions along the way, contact us. We’ll direct your question to the most relevant expert. If there’s enough demand, we may even schedule an online lecture.

Now, to work.

-The Trail of Bits Team

Why CTF?

Computer security represents a challenge to education due to its interdisciplinary nature. Topics in computer security are drawn from areas ranging from theoretical aspects of computer science to applied aspects of information technology management. This makes it difficult to encapsulate the spirit of what constitutes a computer security professional.

One approximation for this measure has emerged: the ‘capture the flag’ competition. Attack-oriented CTF competitions try to distill the essence of many aspects of professional computer security work into a single short exercise that is objectively measurable. The focus areas that CTF competitions tend to measure are vulnerability discovery, exploit creation, toolkit creation, and operational tradecraft.

A modern computer security professional should be an expert in at least one of these areas and ideally in all of them. Success in CTF competitions demands that participants be an expert in at least one and ideally all of these areas. Therefore, preparing for and competing in CTF represents a way to efficiently merge discrete disciplines in computer science into a focus on computer security.

Find a CTF

If you ever wanted to start running, you were probably encouraged to sign up to a 5k to keep focused on a goal. The same principle applies here: pick a CTF in the near future that you want to compete in and come up with a practice schedule. Here are some CTFs that we can recommend:

Visit CTF Time and the CapCTF calendar for a more complete list of CTFs occuring every week of the year.

How is a Wargame different?

Wargames are similar to a CTF but are always ongoing. Typically, they are organized into levels that get progressively harder as you solve more of them. Wargames are an excellent way to practice for CTF! Here are some of our favorites:

What about CCDC?

There are some defense-only competitions that disguise themselves as CTF competitions, mainly the Collegiate Cyber Defense Challenge (CCDC) and its regional variations, and our opinion is that you should avoid them. They are unrealistic exercises in frustration and will teach you little about security or anything else. They are incredibly fun to play as a Red Team though!

Career Cheatsheet

[Editor’s note: this is an older article written for pentest.cryptocity.net and that we are in the process of updating.]

These are my views on information security careers based on the experience I’ve had and your mileage may vary. The information below will be most appropriate if you live in New York City, you’re interested in application security, pentesting, or reversing, and you are early on in your career in information security.

  1. Employers
  2. Roles
  3. Learn from a Book
  4. Learn from a Course
  5. University
  6. University
  7. Communication
  8. Meet People
  9. Conferences
  10. Certifications
  11. Links
  12. Friends of the Guide

Employers

As far as I can tell, there are five major employers in the infosec industry (not counting academia).

  • The Government
  • Non-Tech Fortune 500s (mostly finance)
  • Big Tech Vendors (mostly West coast)
  • Big Consulting (mostly non-technical)
  • Small Consulting (mostly awesome)

The industry you work in will determine the major problems you have to solve. For example, the emphasis in finance is to reduce risk at the lowest cost to the business (opportunities for large-scale automation). On the other hand, consulting often means selling people on the idea that X is actually a vulnerability and researching to find new ones.

Roles

I primarily split up infosec jobs into internal network security, product security, and consulting. I further break down these classes of jobs into the following roles:

  • Application Security (code audits/app assessments)
  • Attacker (offensive)
  • Compliance
  • Forensics
  • Incident Handler
  • Manager
  • Network Security Engineer
  • Penetration Tester
  • Policy
  • Researcher
  • Reverse Engineer
  • Security Architect

The roles above each require a different, highly specialized body of knowledge. This website is a great resource for application security and penetration testing, but you should find other resources if you are interested in a different role.

Learn from a Book

Fortunately, there are dozens of good books written about each topic inside information security. Dino Dai Zovi and Tom Ptacek both have excellent reading lists. We recommend looking at:

If you’re not sure what you’re looking for, then you should browse the selection offered byO’Reilly. They are probably the most consistent and high-quality book publisher in this industry.

Don’t forget that reading the book alone won’t give you any additional skills beyond the conversational. You need to practice or create something based on what you read to really gain value and understanding from it.

Learn from a Course

If you’re looking for something more hands-on and directed, there are lots of university courses about information security available online. I listed some of the best ones that have course materials available below (ordered by institution name). The RPI course is the most similar to this one and Hovav gets points for the best academic reading list, but every course on this list is fantastic.

[Ed. note: Table to be added/updated later.]

University

The easiest shortcut to finding a university with a dedicated security program is to look through the NSA Centers of Academic Excellence (NSA-COE) institution list. This certification has become watered down as more universities have obtained it and it might help to focus your search on those that have obtained the newer COE-CO certification. Remember, certifications are only a guideline. You should look into the actual programs at each university instead of basing your decision on a certification alone.

Once in university, take classes that force you to write code in large volumes to solve hard problems. IMHO the courses that focus on mainly theoretical or simulated problems provide limited value. Ask upper level students for recommendations if you can’t identify the CS courses with programming from the CS courses done entirely on paper. The other way to frame this is to go to school for software development rather than computer science.

Capture the Flag

If you want to acquire and maintain technical skills and you want to do it fast, then you should play in a CTF or jump into a wargame. The one thing to note is that many of these challenges attach themselves to conferences (of all sizes), and by playing in them you will likely miss the entire rest of the conference. Try not to over do it, since conferences are useful in their own way (see the rest of the career guide).

There are some defense-only competitions that disguise themselves as normal CTF competitions, mainly the Collegiate Cyber Defense Challenge (CCDC) and its regional variations, and my opinion is that you should avoid them. They are exercises in system administration and frustration and will teach you little about security or anything else. They are incredibly fun to play as a Red Team though.

Communication

In any role, the majority of your time will be spent communicating with others, primarily through email and meetings and less by phone and IM. The role/employer you have will determine whether you speak more with internal infosec teams, non-security technologists, or business users. For example, expect to communicate more with external technologists if you do network security for a financial firm.

Tips for communicating well in a large organization:

  • Learn to write clear, concise, and professional email.
  • Learn to get things done and stay organized. Do not drop the ball.
  • Learn the business that your company or client is in. If you can speak in terms of the business, your arguments a) to not do things b) to fix things and c) to do things that involve time and money will be much more persuasive.
  • Learn how your company or client works, ie. key individuals, processes, or other motivators that factor into what gets things done.

If you are still attending a university, as with CS courses, take humanities courses that force you to write.

Meet People

Find and go to your local CitySec, an informal meetup without presentations that occurs once monthly in most cities. At Trail of Bits, we attend our local NYSEC.

ISSA and ISC2 focus on policy, compliance and other issues that will be of uncertain use for a new student in this field. Similarly, InfraGard mainly focuses on non-technical law enforcement-related issues. OWASP is one of the industry’s worst examples of vendor capture and is less about technology and more about sales.

Conferences

If you’ve never been to an infosec conference before, use the google calendar below to find a low-cost local one and go. There have been students of mine who think that attending a conference will be some kind of test and put off going to one for as long as possible. I promise I won’t pop out of the bushes with a final exam and publish your scores afterward.

If you go to a conference, don’t obsess over attending a talk during every time slot. The talks are just bait to lure all the smart hackers to one location for a weekend: you should meet the other attendees! If a particular talk was interesting and useful then you can and should talk to the speaker. This post by Shawn Moyer at the Defcon Speaker’s Corner has more on this subject.

If you’re working somewhere and are having trouble justifying conference attendance to your company, the Infosec Leaders blog has some helpful advice.

Certifications

This industry requires specialized knowledge and skills and studying for a certification exam will not help you gain them. In fact, in many cases, it can be harmful because the time you spend studying for a test will distract you from doing anything else in this guide.

That said, there are inexpensive and vendor-neutral certifications that you can reasonably obtain with your current level of experience to help set apart your resume, like the Network+and Security+ or even a NOP, but I would worry about certifications the least in your job search or professional development.

In general, the two best reasons to get certifications are:

  • If you are being paid to get certified, through paid training and exams or sometimes through an automatic pay raise after you get the certification (common in the government).
  • If your company or your client is forcing you to get certified. This is usually to help with a sales pitch, ie. “You should hire us because all of our staff are XYZ certified!”

In general, it is far more productive to spend time playing in a CTF, then using your final standing as proof that you’re capable.

Vulnerability Discovery

Auditing Source Code

This module is about getting familiar with vulnerabilities that manifest in applications that compile to native code. An accurate and complete understanding of an application written in a compiled language cannot be achieved without learning about how the compiler transforms source to machine code and how processors execute that code. An easy way to gain experience with these transforms is by reverse engineering compiled variants of your own code or of projects with source code available. At the end of this module you will be able to identify vulnerabilities in compiled languages like C and C++.

Vulnerabilities are commonly identified in large software packages due to their use of third-party software libraries. Common examples include libraries like libxml, libpng, libpoppler, and libfreetype that parse complicated file formats and protocols. Each of these libraries have historically been prone to software flaws that make the applications using them vulnerable to attack. It doesn’t help that most software packages fail to update these libraries when new versions come out, making it significant easier to find known vulnerabilities to apply in these cases.

Lecture

Workshop

In order to practice your skills, we recommend going through the process of identifying as many vulnerabilities as you can in an intentionally vulnerable toy application and then moving on to a real application and doing the same.

The Newspaper application is a small server written in C that allows authenticated users to read and write articles to a remote file system. Newspaper is written in such a way that it is vulnerable to many different attacks. You should be capable of identifying at least 10 bugs or potential vulnerabilities in this code.

Wireshark, however, is an industry standard network protocol analyzer that has been under continuous development since 1998. Vulnerabilities in this code base are much fewer and far between than in the Newspaper app however many still exist. Take a look at the wireshark security page, find the name of a protocol dissector and see if you can independently discover the vulnerability without looking at the details. Dissectors are located in /epan/dissectors/ folder.

Tools

When auditing, it is helpful to use a tool design to profile and navigate the codebase. Below are two tools, Source Navigator and Understand, designed to help analysts get familiar with code quickly by collecting and displaying information about data relationships, API usage, design patterns and control flow. An example of a useful diffing tool is also listed below. One example of a free, open source code auditing tool is the Clang Static Analyzer, which can help you track down programming errors in common APIs and vulnerable programming patterns.

Resources

Make sure you’re intimately familiar with the internals of the languages you target for analysis. Vulnerabilities are found by auditors who are more familiar with the language and the codebase than the programmers that originally developed it. In some cases, this level of understanding can be achieved simply by paying attaching to optional compiler warnings or through the use of third-party analysis tools that help track down common programming errors. Computer security is tantamount to computer mastery. Without a rigorous understanding of your targets you can never hope to defeat them.

Auditing Binaries

You’ve made it all the way down to the native layer, this is what software is after you pull off all the covers. The flavor of native code we’re going to focus on today is 32-bit Intel x86. Intel processors have been a powerful force in personal computing since the 80’s and currently predominate desktop and server market. Understanding this instruction set will give you some insight into how the programs you use every day operate as well as provide a reference point for when you encounter other instruction sets like ARM, MIPS, PowerPC and SPARC.

This module is about becoming familiar with the native layer and developing strategies for understanding, analyzing and interpreting native code. By the end of this module you should be capable of performing a “reverse compilation” — going from assembly fragments to statements in higher level languages — and, in the process, deriving meaning and programmer intent.

Lecture

Learning x86 can appear daunting at first and requires some dedicated study to master. We recommend reading Chapter 3 of “Computer Systems: A Programmer’s Perspective” to learn how C programs get compiled into machine code. Once you you have some basic, working knowledge of this process then keep a handy reference guide around like the x86 Assembly Guide from the University of Virginia. We’ve found this video series from Quinn Liu to be a quick and painless introduction too.

Workshop

The following programs are both “binary bombs.” Reverse engineer the following linux programs to identify the series of inputs that will “defuse” the bomb. Each successive level of the bomb focuses on a different aspect of native code. For example, in the lab from CMU you will encounter different data structures (linked lists, trees) as well as how control flow structures (switches, loops) manifest in native code. While reversing these programs you may find it useful to keep track of your progress by transforming what you see into C or another high level language.

You should aim to solve at least eight stages between the two labs. The CMU bomb lab has a secret phase and the RPI bomb lab has a phase that involves memory corruption, can you find and solve them?

Tools

The two essential tools for working with native code are the debugger and the disassembler. We recommend you become familiar with the industry standard disassembler: IDA Pro. IDA will divide code into discrete chunks corresponding to the functions defined in the program’s source code. Each function is then further subdivided into “basic blocks” defined by instructions that alter control flow. This makes it easy to identify loops, conditionals, and other control flow constructs at a glance.

Debuggers allow you to interact with and examine the state of running code by setting breakpoints and examining memory and register contents. You may find this useful as a sanity check if you are not seeing the results you expect your input to produce but be alert, some programs employ anti-debugger techniques and can modify program behavior in the presence of a debugger. The GNU Debugger (gdb) is the standard debugger for most linux systems. gdb can be acquired through the package manager in your chosen linux distribution.

Resources

Many good resources exist for learning x86 assembly and the various tricks employed in capture the flag exercises. In addition to the resources above, the x86 Wikibook and the AMD instruction set manual are more complete reference guides you may want to refer to (we find the AMD manual can be less daunting than the corresponding manual from Intel).

Some of the tools used for reverse engineering can be as complicated as assembly language itself. Cheatsheets that list out common commands and use cases can be helpful.

Finally, many capture the flag challenges will make use of anti-debugging and anti-disassembly techniques to hide or obfuscate the goal. Several of these techniques are employed by the bomb labs but you may want a more complete reference.

Auditing Web Applications

Welcome to the web hacking module. This module is about getting familiar with vulnerabilities commonly found in web applications. At the end of this module you will be able to identify common vulnerabilities in web based applications using a variety of testing methodologies and source level auditing. The lecture material will give you all the tools you need to successfully audit the workshop material.

Lecture

Workshop

In order to practice your skills, we recommend going through the process of finding and exploiting vulnerabilities in the Damn Vulnerable Web App (DVWA) and the Siberia Exploit Kit. DVWA is a collection of vulnerable test cases implemented in PHP and serves as an easy introduction to the many things that can go wrong in web applications. The Siberia Exploit Kit is a “crimeware pack” used by criminals to perform massive compromises. It includes a package of browser exploits and a command and control panel intended to manage compromised hosts. Siberia contains several pre- and post-authentication vulnerabilities that allow an attacker to gain administrative access to the panel, then take over the server on which it is hosted.

Download and run the OWASP Broken Web Apps virtual machine in VMware to start this workshop. BWA includes many web applications many for security testing, including DVWA. Once you have mastered DVWA, feel free to move on to other vulnerable web applications! Try auditing Siberia’s source code to find the vulnerabilities, paying attention to sources of input in PHP.

Tools

Burp Suite is a local HTTP proxy intended for security testing. Burp Suite is made for web penetration testers and simplifies many common tasks in a point-and-click GUI. The features available in the free version are more than enough to complete this and many other web security challenges.

Resources

Many simple testing methods and common web application flaws are available in the walkthrough. Ensure that you understand the fundementals of HTTP, HTML, and PHP to do well on this section.

Exploit Creation

Exploiting Binaries 1

Binary exploitation is the process of subverting a compiled application such that it violates some trust boundary in a way that is advantageous to you, the attacker. In this module we are going to focus on memory corruption. By abusing vulnerabilities that corrupt memory in software we can often rewrite critical application state information in a way that allows us to elevate privileges inside the context of a particular application (like a remote desktop server) or perform arbitrary computation by hijacking control flow and running code of our choosing.

If you’re trying to find bugs in compiled C programs, it’s important to know what you’re looking for. Start with identifying where the data you send to the program is used. If your data is stored in a buffer, take note of the sizes of them. Programming in C without errors is very difficult and the CERT C Coding Standard catalogues many of the ways that errors can come about. Paying attention to commonly misused APIs can be a quick path to success.

Once a vulnerability is identified it should be used to compromise the integrity of the program, however, there are a variety of ways to achieve this goal. For programs such as web servers, obtaining the information from another user may be the end goal. In others, changing your permissions may be helpful, for example changing the permissions of a local user to the administrator.

Lecture

The first lecture, Memory Corruption 101, provides background and step-by-step explanation of exploiting an overflow on Windows. The second lecture, Memory Corruption 102, covers more advanced topics, including web browser exploitation. Both of these lectures use Windows-specific examples but the techniques and process are applicable across operating systems that use the x86 instruction set. Remember that the names of functions and sometimes the calling conventions will be different when you are working with UNIX/Linux binaries.

Tools

We recommend using GDB to debug the challenges in this module since all of them are compiled for 32-bit Linux, however, GDB is intended for debugging source code, not stripped binaries without symbols and debugging information. Projects such as gdbinit, peda, andvoltron are attempts at making gdb more useful for debugging when source code is not available. We recommend making a .gdbinit file in your home directory with at least the following commands:

    set disassembly-flavor intel
    set follow-fork-mode child

Workshop

In order to run these challenges, you’ll need to setup an Ubuntu 14.04 (32-bit) virtual machine. We recommend using VMware Player, since it’s free and well supported. When you have it running, open a terminal and install socat with command sudo apt-get install socat.

There are three challenges in this workshop, each contained within this folder when you clone this repository in git. The ultimate goal of each challenge is to manipulate the executable into reading the flag to you. For each challenge, try to translate the disassembly into C code. After making an attempt, you can verify your guess by checking the actual C source provided. Then, try to exploit it to read you the flag.

Challenge: Easy

Make sure the flag is in the same directory as the easy program. Once you execute easy it will listen for instructions on port 12346.

Challenge: Social

Similar to easy, make sure the flag and host.sh are in the same directory as social program. Once you execute social it will listen for instructions on port 12347.

Resources

Exploiting Binaries 2

In this module, we continue to examine the ways that native applications can be exploited and focus on using return-oriented programming (ROP) to achieve that goal. ROP is the process of stitching together existing executable fragments of code ending in a return instruction. By creating chains of addresses of these ‘gadgets’ one can write new programs without introducing any new code.

Keep in mind that you will need to be flexible in identifying methods to exploit programs. Sometimes it’s necessary to abuse a vulnerability multiple times in the course of an exploit. At times, you may only want to use a ROP bridge to make your shellcode executable and, at others, you may want to use a payload written entirely in ROP. Occasionally, the layout of memory makes unorthodox methods of exploitation favorable. For example, have you considered manufacturing an uncontrolled format string vulnerability using ROP?

Lecture

The lectures this week will discuss return oriented programming (ROP) and code reuse to bypass protections that disallow the execution of attacker-provided data. These lectures go into much greater detail on exploitation and build upon some of what was discussed last week.

Workshop

Similar to the previous lesson, there are two executable files located in this folder when you clone the repository. Exploits for each of these programs will require the use of return-oriented programming to read the flags. This week, there is no access to source code provided. You will need to reverse engineer the binaries to discovery the vulnerabilities and the techniques required to exploit them. Use the same Ubuntu 14.04 (32-bit) virtual machine as the previous lesson.

Run the bc program. It will listen on port 12345.

Challenge: space

Run host.sh in the same directory as the space program. It will listen on port 12348.

Challenge: rop_mixer

Run host.sh in the same directory as the rop_mixer program. It will listen on port 12349.

Tools

Refer to the tools from last week. If you haven’t already, you should become familiar with thebinutils suite for *NIX. Tools like readelf, strings, objdump, objcopy, and nm are frequently helpful. Use your package manager and the manpages to install and read about their use.

Several tools exist to aid specifically in the creation of exploits that reuse code. They are more specialized than a standard disassembler because they look for executable snippets of code suitable as ROP gadgets (between instructions, in .rodata, etc).

Resources

Web Exploitation

This module follows up on the previous auditing web applications module. In this module we will focus on exploiting those vulnerabilities. By the end of this module you should be comfortable identifying and exploiting the OWASP Top 10.

Lecture

We covered the basics in the previous section on web security, so now we can dive into some more capable tools to achieve greater effects in this module. Learn to master Burp Suite and the Chrome Developer tools to gain a greater understanding of the applications you interact with. BeEF is an example of an XSS proxy and it will pay off to look through its source code and learn how it works.

Workshop

You have been tasked with auditing Gruyere, a small, cheesy web application. Gruyere is available through and hosted by Google. It includes exercises for exploiting many classes of web-specific vulnerabilities including XSS, SQL injection, CSRF, directory traversal and more. For each challenge you can find hints, exploits and methods to patch the vulnerable code.

References

Tools

SQL Map and BeEF are powerful tools and very fun to play around with but ultimately not needed for the exercise. If you insist on playing with BeEF on, then please try not to hook other users auditing the application.

Forensics

Toolkit Creation

Toolkit Prep

Welcome to the module on toolkit creation. A toolkit is a set of utilities that enable you and your team to achieve operational goals in the most efficient manner possible. Your toolkit is a force multiplier that will enable you to minimize the time you spend developing exploits during the game and maximize the return on your development time.

A good toolkit is well rounded and easy to use. You should incorporate software that allows members of your team to communicate effectively, work collaboratively, automate common tasks and provide situational awareness of the game as it plays out.

Lecture

Workshop

Create three lists. Populate the first list with the functionality your ideal toolkit would provide. Populate the second list with software that can provide that functionality. Use the third list to rank in order of importance functionality that is inadequately supported by the software from list two. Begin developing software that fills in the gaps of your ideal toolkit.

Some functionality you should not neglect:

  • Management of exploitation, key aggregation and submission.
  • Stealthy and secure payloads or persistence methods.
  • Secure communication and collaboration.
  • Network/Host situational awareness.

Resources

Operational Tradecraft

Studies in Tradecraft

Operational tradecraft is generally cultivated with a specific goal in mind. While playing competitive wargames you will most likely be focused on evading detection and not putting elements of your toolkit (infrastructure, exploits) at risk of inadvertent exposure.

Lecture

Workshop

Evaluate the operational tradecraft displayed during the following campaigns. Each design decision employed in these tools and campaigns has an operational philosophy behind it.

Some things to think about while evaluating tradecraft:

  • Why did the actor chose to perform/implement X action/capability?
  • Were any mistakes made? Was a decision flawed or shortsighted in some way?
  • Was an action/capability anomalus? Does it fit with the rest of the operational philosophy?
  • What was the actor most interested in protecting? (ex: Tools, Identities, Employers etc.)
  • What can be learned from each campaign from an attackers standpoint? Defenders standpoint?

Campaigns

Resources

These are few public examples, groups, or organizations that discuss their own tradecraft. The AMA’s below provide a rare glimpse into how extraordinarily talented groups operate.

Contributors

This book was built on a lot of hard work, most of which happened elsewhere. Without permission to republish from these folks, this book would still be in development. They have our gratitude and admiration.

So, reader, when you’ve completed a few CTFs, and you’re ready for more, reach out to this list. They like to support ambition, and they just might know someone who needs some talent.

If you’re interested in taking a course like this one for credit, check out NYU Poly. They offer concentrations in cybersecurity and we collaborate with them frequently through their Hacker in Residence program.

Contributing

If you want to make a contribution, simply commit your new markdown to the master branch and we’ll take it from there. Gitbook has a fantastic editor available to help preview your changes. We’re always looking for new or refined content, so please send us your suggestions!

Gitbook Usage

The CTF Field Guide is built with Gitbook, a command line tool for building books with Git and Markdown. You can use Gitbook to output the CTF Field Guide as a PDF, an eBook or a single, printable HTML page. Make sure you have NodeJS and npm on your operating system, then install Gitbook and a few of its plugins:

npm install gitbook gitbook-plugin-ga gitbook-pdf ebook-convert -g

With Gitbook installed, you can run any of these commands from within the book directory:

  • Generate an interactive, static website: gitbook build ./myrepo
  • Generate a single page website: gitbook build ./myrepo -f page.
  • Generate a PDF: gitbook pdf ./myrepo. Requires gitbook-pdf.
  • Generate an eBook: gitbook ebook ./myrepo. Requires ebook-convert.

More information and the complete book can be found at:

https://trailofbits.github.io/ctf/

Florida State University’s Offensive Computer Security Spring 2013 – CIS4930 & CIS5930


Instructors

Prof. Xiuwen Liu (homepage: http://www.cs.fsu.edu/~liux/)
W. Owen Redwood (homepage: http://ww2.cs.fsu.edu/~redwood/)

Rationale:

The primary incentive for an attacker to exploit a vulnerability, or series of vulnerabilities is to achieve a return on an investment (his/her time usually). This return need not be strictly monetary—an attacker may be interested in obtaining access to data, identities, or some other commodity that is valuable to them. The field of penetration testing involves authorized auditing and exploitation of systems to assess actual system security in order to protect against attackers. This requires thorough knowledge of vulnerabilities and how to exploit them. Thus, this course provides an introductory but comprehensive coverage of the fundamental methodologies, skills, legal issues, and tools used in white hat

Spring 2013 Lectures & Videos

This page contains all the lecture Lecture Slides and youtube videos for the Spring 2013 semester of this course.


HD Video Download:

You can download and watch each lecture for this class at the following URL.
Simply streaming them from dropbox will not work. Dropbox will cut the stream off about 1/4 of the way through the video.

Video download URL
Lecture Video Torrent

The videos are much higher quality than their youtube versions.


Course Lecture Videos / Slides / Reading:

Below you can find and watch all the course videos, required reading, and lecture slides for each lecture (where applicable). The videos hosted on youtube are lower quality than the ones avaiable for direct download (see above). On the left you can find a navigation sidebar which will help you find the lectures relevant to each meta-topic.

Week 1 (Intro / Overview):

Lecture 1: Intro, Ethics, & Overview:

[No video was recorded for this lecture due to technical difficulties]

This lecture covers the course Intro, syllabus review, distinction between hacking vs. penetration testing, ethics discussion, course motivation, threat models and some of the basics.

Resources:

Lecture 2: Linux Overview:

This lecture covers the basics to an OS, Kernel vs user space, system calls, unix permissions, ruid vs euid etc…, ext file system (for the limited focus of forensics), persistence mechanisms used by malware, and /var/log, and more.

Resources:


Week 2 (Overview / Code Auditing):

Lecture 3: Windows Overview

This lecture provides an overview of the registry and registry hives, persistence mechanisms used by malware, Portable Executable (PE) file format overview, window systems calls commonly used by malware, and the windows API.

Resources:

Lecture 4: Rootkits; Code Auditing

The first half of this lecture covers rootkits and rootkit techniques for windows and linux. The second half covers code auditing concepts like design flaws, software analysis, vulnerability identification, signed bugs (int over/under flows), incorrect use of length params (strncpy, strncat, snprintf), format strings, …

Resources:

  • [Lecture Slides]
  • Required reading:
    Chapter 0x200 up to 0x250 in HAOE.

Week 3 (Reverse Engineering Workshop Week):

Lecture 5: x86 Reverse engineering

This lecture is day one of our weeklong x86 reverse engineering workshop lead by guest lecturer Mitch Adair.

Resources:

Lecture 6:

This lecture is day two of our weeklong x86 reverse engineering workshop lead by guest lecturer Mitch Adair.

Resources:


Week 4 (Exploit Development)

Lecture 7: Fuzzing and Exploit Development 101

This lecture covers a fuzzing overview, the basics of exploit development, environment variables, stack attacks, buffer overflow, nop-sleds, etc…

Resources:

Lecture 8: Shellcode and Exploit Development 102

Lectore topics: more on writing Shellcode (linux vs windows), win32 process memory map …

Resources:


Week 5 (Exploit Dev / Networking)

Lecture 9: Exploit Development 103: SEH Exploitation, Heap Sprays, and Executable Security Mechanisms

This lecture covers SEH exploitation, heap sprays, and executable security mechanisms like ASLR, DEP/NX, Stack Cookies…

Resources:

Lecture 10: Networking 101: Data Layer, Link Layer, and IP layer

[No video was recorded for this lecture due to technical difficulties]

This lecture covers an overview of networking concepts and network security concepts. Topics covered: Wireshark, Nmap, nc, Hubs vs switches vs routers, manufacturer default logins / backdoors… ARP & dns (dnssec), proxies, weak IP vs strong IP model (RFC 1122)

Resources:


Week 6 (Networking / Web Application Hacking)

Lecture 11: Networking 102: TCP layer, Important Protocols, Services, Portscanning, ARP

[No video was recorded for this lecture due to technical difficulties]

This lecture finishes up the networking overview from last time.

Resources:

Lecture 12: Web application Hacking 101

Its a bit shorter than other videos as the class time was taken up going over homework beforehand. This lecture addresses some of the big picture with the topics covered so far, and moves into web application security topics.

Resources:


Week 7 (Web Application Hacking)

Lecture 13: Web Application Hacking 102: Big picture of topics so far, SQLi, XSS

This lecture’s topices cover HTTP proxies, SQLi and XSS
Resources:

Lecture 14: Web Application Hacking 103: SSL attacks, advanced techniques

This lecture’s topics cover SSL/TLS, Certificate Authorities, and the serious problems with the Certificate Authority infrastructure, and a history of CA hacks / breaches, and SSL hacking tools like sslstrip …

Resources:


Week 8 (Web Application Hacking / Exploit dev)

Lecture 15: Web Application Hacking 104 & Exploit Development 104

This class was two lectures in one. In the web application 104 lecture we cover topics like WAF, and IDS and how to evade them – which leads into the exploit development 104 lecture. In the exploit dev 104 section we cover topics like networking shellcode, polymorphic shellcode / encoders, and the methodology for defeating IDS/WAF

Resources:

Lecture 16: Midterm review & Exploit Development 105 (ROP)

This lecture’s first half is a review of topics for the midterm. The second half introduces Return Oriented Programming.

Resources:


Week 9: (Special Topics)

Lecture 17: The Modern History of Cyber Warfare

This lecture covers just a small sample of the major events one might consider part of the history of cyber warfare. The lecture discusses some of the potential tactical and strategic differences between traditional warfare and cyber warfare – as well as the policy and perspective hurdles we face today. This lecture happened shortly after the ground-breaking APT1 report from Mandiant.

Resources:

Lecture 18: Social Engineering

The first portion of this video is a continuation of the previous lecture on cyber warfare. Afterwards, this lecture offers a new spin on social engineering – by staring with fundamental psychological flaws in the human brain, and discussing how they can be exploited…

Resources:


Week 10 (Metaspl0it):

Lecture 19: Metasploit

This lecture covers the metasploit framework, its interfaces, basic usage, and some of its utilities, along with a brief discussion of the social-engineering toolkit (SET)…

Resources:

MIDTERM

No video for this class…

The midterm was at this point, covering lectures 1-16.


Week 11 (Post Exploitation and Forensics):

Lecture 20: Meterpreter and Post Exploitation

This lecture starts by finishing the SET discussion from last time, covers Windows access-tokens, then delves into meterpreter and post exploitation…

Resources:

Lecture 21: Volatility and Incident Response:

This lecture covers an overview of Incident Response and delves into Volatility and memory analysis..

Resources:


Week 12 (Physical Security):

Midterm / Homework recap (no lecture)

No video for this class…

The lecture was sacrified for administrative things like reviewing the midterm, homeworks, and term project expectations.

Resources:

Lecture 22: Physical Security Workshop: Lockpicking, USB mischief, and BacNET/SCADA system security

This class was an open workshop, thus there is no video for it…

This lecture covers physical security, with a hands-on workshop on lockpicking, along with a simultaneous discussion of USB-related-mischief, building hacking (BacNET / SCADA) ….

Resources:


Week 13 (Malware / Student Presentations):

Lecture 23: Advanced Malware Techniques

No video for this class…

The lecture slides have been emailed out to the students, and will not be posted online.

Student Presentations Begin

No video for this class, nor the rest of the semester…

At this point, the course lectures have concluded. The remainder of the semester is taken up by student presentations on their term projects


Week 14-15 (Student Presentations):

(No lectures)


More Information about this course can be found on:

Florida State University’s Offensive Computer Security Spring 2014 – CIS4930 & CIS5930


Instructors

Prof. Xiuwen Liu (homepage: http://www.cs.fsu.edu/~liux/)
W. Owen Redwood (homepage: http://ww2.cs.fsu.edu/~redwood/)

Rationale:

The primary incentive for an attacker to exploit a vulnerability, or series of vulnerabilities is to achieve a return on an investment (his/her time usually). This return need not be strictly monetary—an attacker may be interested in obtaining access to data, identities, or some other commodity that is valuable to them. The field of penetration testing involves authorized auditing and exploitation of systems to assess actual system security in order to protect against attackers. This requires thorough knowledge of vulnerabilities and how to exploit them. Thus, this course provides an introductory but comprehensive coverage of the fundamental methodologies, skills, legal issues, and tools used in white hat penetration testing, secure system administration, and incident response.

Course Lecture Videos / Slides / Reading:

Below you can find and watch all the course videos, required reading, and lecture slides for each lecture (where applicable). The videos hosted on youtube are lower quality than the ones avaiable for direct download. On the left you can find a navigation sidebar which will help you find the lectures relevant to each meta-topic.


Week 1 (Intro / Overview):

Lecture 1: Intro, Ethics, & Overview:

This lecture covers the course Intro, syllabus review, distinction between hacking vs. penetration testing, ethics discussion, course motivation, threat models and some of the basics.

Resources:

Lecture 2: Secure C Coding 101:

What you absolutely need to know about secure coding in C. C is everywhere.

Resources:


Week 2 (Secure C / Code Auditing):

Lecture 3: Secure C Coding 102:

What you absolutely need to know about secure coding in C. C is everywhere.

Resources:

Lecture 4: Code Auditing:

Auditing C Code, basic tips / strategies / and exercises

Resources:


Week 3 (Permissions Spectrum):

Holiday (No Class, Jan 20)

MLK Day Holiday

Lecture 5: The Permissions Spectrum:

Intro to Vulnerability Research topics and the Permissions spectrum.

Resources:


Week 4 (Reverse Engineering Week):

Lecture 6: Reverse Engineering Workshop 1

Guest lecturer Mitch Adair will lead a two day RE workshop, exposing students to x86 reverse engineering with IDA and CFF Explorer. Meet in the lecture room prepared (See email).
Resources:

Lecture 7: Reverse Enginerring Workshop 2:

Guest lecturer Mitch Adair will lead a two day RE workshop, exposing students to x86 reverse engineering with IDA and CFF Explorer. Meet in the lecture room prepared (See email).


Week 5 (Fuzzing Week):

Lecture 8: Fuzzing Lecture 1

Coverage of Fuzzing techniques for SDL, VR, and other applications.
[Slides]

Lecture 9: MIDTERM REVIEW:

[No class video, see slides!]

Week 6 (MIDTERM 1 and Exploit Development Week 1):

MIDTERM 1

[no video for this class]

Lecture 10: Fuzzing Lecture #2 and Exploitation Lecture 101:

PART 1:

PART 2:

There are two videos for this lecture. The first half is a wrap up of fuzzing topics. The second half the beginning of the exploit development lectures.

Resources:


Week 6 (MIDTERM 1 and Exploit Development Week 1):

Lecture 11: Exploit Development 102

Second lecture in the exploit development lecture series. Covering the very very basics of exploitation. Concept of ret2libc is covered, examples with basic exit() shellcode, and some position-independent basic shellcode.

Resources:

  • [Slides]
  • Reading:
    Read 0x500 up to 0x540 in HAOE (Writing shellcode)
    Read 0x6A0 up to 0x700 in HAOE

This class was cancelled (postponed to next week)


Week 7 (Exploit Development / Networking):

Lecture 12: Exploit Development 103

Third lecture in the exploit development lecture series. Coverage of heap and format string exploition (with demos), as well as exploit mitigations (ASLR, NX/DEP, stack cookies, EMET, etc…)

Resources:

  • [Slides]
  • Reading:
    Read 0x680 up to 0x6A0 in HAOE

Lecture 13: Networking Lecture 101:

This lecture covers an overview of networking concepts and network security concepts. Topics covered: Wireshark, Nmap, nc, Hubs vs switches vs routers, manufacturer default logins / backdoors… ARP & dns (dnssec), proxies, weak IP vs strong IP model (RFC 1122)

Resources:


Week 8 (Exploit Dev / Web Application Hacking/Security)

Lecture 14: Exploit Development 102

Resources:

  • [Slides]
  • Reading:
    Read 0x450 up to 0x500 in HAOE(27 pages)
    Read 0x540 up through 0x550 in HAOE(11 pages)
    Read Chapter 1 in WAHH (15 pages)

Lecture 15: Wireshark and Web Application Hacking/Security 101

[Video on Wireshark coming soon]

Its a bit shorter than other videos as the class time is split between this lecture and a wireshark/tcpflow demo. This lecture addresses some of the big picture with the topics covered so far, and moves into web application security topics, as well as a very basic demo using BurpSuite as a HTTP Proxy.
Resources:

Required Reading:

Related Reading:


Week 10 (Web Applications):

Lecture 16: Web Application Hacking/Security 102

Coverage of SQLi, XSS, Metacharacter Injection, OWASP top 10, and demos.
Resources:

Lecture 17: Web Application Hacking/Security 103


Week 11 (Web Applications and Exploitation):

Lecture 18: Web Application Hacking/Security 104 and Exploitation 104

This class was two lectures in one. In the web application 104 lecture we cover topics like WAF, and IDS and how to evade them – which leads into the exploit development 104 lecture. In the exploit dev 104 section we cover topics like networking shellcode, polymorphic shellcode / encoders, and the methodology for defeating IDS/WAF.
Resources:

Lecture 19: Midterm review #2 and Exploitation 105

ROP Lecture:

This lecture covers ret2libc, return chaining, ROP, how calling conventions affect ROP, how ROP is used to defeat DEP, how ASLR affects ROP, how to defeat ASLR to enable ROP, stack pivoting, and etc… This lecture is just the concepts, next time is the demos.

Resources:

Reading:


Week 12 (ROP and Metasploit):

Lecture 21: Guest Lecturer Devin Cook on ROP and a brief history of exploitation

Devin Cook presented a recap of all the exploitation techniques covered thusfar and lectured on ROP and presented demos on ROP exploitation. Lastly defenses against ROP were discussed.
Resources:

Lecture 22: Metasploit

This lecture covers the Metasploit framework. Resources:


Week 13 (MIDTERM #2 and Post Exploitation):

MIDTERM #2

[No video / lecture]

Lecture 23: Meterpreter and Post Exploitation

Post exploitation, Windows authentication / tokens, and pivoting techniques are covered. Demos of SET, Meterpreter, and etc are shared. Resources:


Week 14 (Forensics and Incident Response):

Lecture 24: Volatility and Forensics

Old video covering Volatility and performing forensic analysis on hacked machines.
Resources:

Lecture 25: Revisiting Old Topics

Wrapping up the course, revisiting old topics: stack cookies and going in depth on how they are bypassed, covering the SSL bugs, digitally signed malware, and then the big picture. Resources:


Week 15 (Last Week: Physical Security and Social Engineering):

Lecture 26: Social Engineering


More information about this course can be found on:

Liquid Matrix – Security Podcast


The Liquid Matrix podcasts episodes can be found on:

http://www.liquidmatrix.org/blog/category/podcasts

SWEET & SEED – Online Learning Resources


SWEET (Secure WEb dEvelopment Teaching): http://www.csis.pace.edu/~lchen/sweet/

WHAT IS SWEET?

SWEET (Secure WEb dEvelopment Teaching) is a set of portable teaching modules for secure web development. SWEET features eight teaching modules, six project modules and a virtualized web development platform that allows instructors to conduct hands-on laboratory exercises. The purpose of this project is to enhance the learning experience of computing students through standardized teaching modules and environment in secure web development. We have adopted this teaching tool to introduce web security concepts in both undergraduate and graduate courses. Each SWEET teaching module will be enough for a three-hour class containing lecture materials and hands-on laboratory exercises that are relevant to the contents in the lectures.

WHAT IS VIRTUALIZATION?

SWEET utilizes virtualization technology for laboratory exercises. The virtualization of a computer means to run emulator software, like VMware Player or Microsoft Virtual PC, on a computer (host computer or physical computer) to emulate another desired computer (virtual computer). A virtual computer is implemented by a folder of 2-8 GB files, and the emulator runs these files to emulate the virtual computer as a computer window or the complete computer desktop. To the users a virtual computer is just the same as the physical one. The virtual and host computers can have different operating systems, and share data and Internet access. The users can work on multiple virtual computers and the host computer at the same time. The users can install new applications on the virtual computer as on a physical one. A virtual computer can run most operating systems including all versions of Windows and Linux.

OBJECTIVES & GOALS

The objectives of this project are to generate a new teaching tool in secure web development for undergraduate students in computing field, to create a portable teaching laboratory in both Pace and CUNY, to evaluate the effectiveness of the teaching tool in improving students’ learning experiences, and to foster collaboration relationship among Pace, CUNY and industry partners. The goals of this project are to train a new generation of computing professionals who would understand and be able to solve security problems occurred in web development. We are expecting to attract more undergraduate students studying in computing by providing a new, interesting and innovative teaching tool in secure web development.


SEED: Vulnerability and Attack Labs: http://www.cis.syr.edu/~wedu/seed/all_labs.html/

Vulnerability and Attack Labs

People learn from mistakes. In security education, we study mistakes that lead to software vulnerabilities. Studying mistakes from the past not only help students understand why systems are vulnerable, why a “seemly-benign” mistake can turn into a disaster, and why many security mechanisms are needed. More importantly, it also helps students learn the common patterns of vulnerabilities, so they can avoid making similar mistakes in the future. Moreover, using vulnerabilities as case studies, students can learn the principles of secure design, secure programming, and security testing.

Design/Implementation Labs

The objective of the design/implementation labs is to provide students with opportunities to apply security principles in designing and implementing systems. They help students achieve learning by system development.

Exploration Labs

The objective of the exploration labs is two-fold: the first is to enhance students’ learning via observation, playing and exploration, so they can see what security principles “feel” like in a real system; the second objective is to provide students with opportunities to apply security principles in analyzing and evaluatingsystems. The exploration labs provide a feasible means by which the students have “a direct encounter with the phenomena being studied rather than merely thinking about the encounter, or only considering the possibility of doing something about it”.

WATOBO – the unofficial manual


WATOBO is intended to enable security professionals to perform highly efficient (semi-automated) web application security audits. I am convinced that the semi-automated approach is the best way to perform an accurate audit and to identify most of the vulnerabilities.

WATOBO has no attack capabilities and is provided for legal vulnerability audit purposes only. It works like a local proxy, similar to Webscarab, Paros or BurpSuite

Additionally, WATOBO supports passive and active checks. Passive checks are more like filter functions. They are used to collect useful information, e.g. email or IP addresses. Passive checks will be performed during normal browsing activities. No additional requests are sent to the (web) application.

Active checks instead will produce a high number of requests (depending on the check module) because they do the automatic part of vulnerability identification, e.g. during a scan.

The functions of WATOBO:

  • Supports session management.
  • Detects logout and automatically takes a re-login.
  • Supports filter functions
  • Inline-Encoder/Decoder
  • Includes vulnerability scanner
  • Quick-scan for targeted scanning a URL
  • Full-scan to scan a whole session
  • Manual request editor with special functions
  • Session information is updated
  • Login can be done automatically
  • Transcoder
  • URL, Base64, MD5, SHA-1
  • Interceptor
  • Fuzzer
  • Free, Stable and Open source!
  • Script code easy to understand
  • Easy to extend / adapt
  • In real-world scenarios tested and developed
  • Speed / usability
  • Active and Passive checks
  • Runs under Windows, Linux, BackTrack, MacOS

All these great features and functions make WATOBO one of the top free web assessment tools.

The program can be downloaded from: http://sourceforge.net/projects/watobo/