EECS 354 Network Security. Introduction



Similar documents
PTSv2 in pills: The Best First for Beginners who want to become Penetration Testers. Self-paced, online, flexible access

Certified Ethical Hacker (CEH)

Building the Next Generation of Computer Security Professionals. Chris Simpson

COURSE NAME: INFORMATION SECURITY INTERNSHIP PROGRAM

Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu>

Firewalls and Software Updates

CRYPTUS DIPLOMA IN IT SECURITY

When a student leaves this intensive 5 day class they will have hands on understanding and experience in Ethical Hacking.

Course Content Summary ITN 261 Network Attacks, Computer Crime and Hacking (4 Credits)

Computer Forensics Training - Digital Forensics and Electronic Discovery (Mile2)

Undergraduate Course Syllabus

Overview of Network Security The need for network security Desirable security properties Common vulnerabilities Security policy designs

If you know the enemy and know yourself, you need not fear the result of a hundred battles.

SECUREIT.CO.IL. Tutorial. NetCat. Security Through Hacking. NetCat Tutorial. Straight forward, no nonsense Security tool Tutorials

National Cyber League Certified Ethical Hacker (CEH) TM Syllabus

Penetration Testing with Kali Linux

Penetration Testing Report Client: Business Solutions June 15 th 2015

Port Scanning and Vulnerability Assessment. ECE4893 Internetwork Security Georgia Institute of Technology

National Cyber League Certified Ethical Hacker (CEH) TM Syllabus

CYBERTRON NETWORK SOLUTIONS

Vulnerability Assessment and Penetration Testing

Penetration Testing Ninjitsu 2: Crouching Netcat, Hidden Vulnerabilities. By Ed Skoudis

X05. An Overview of Source Code Scanning Tools. Loulwa Salem. Las Vegas, NV. IBM Corporation IBM System p, AIX 5L & Linux Technical University

CSE331: Introduction to Networks and Security. Lecture 17 Fall 2006

CSSIA CompTIA Security+ Domain. Network Security. Network Security. Network Security. Network Security. Network Security

Software security. Buffer overflow attacks SQL injections. Lecture 11 EIT060 Computer Security

Certified Ethical Hacker (CEH) Ethical Hacking & Counter Measures Course 9962; 5 Days, Instructor-Led

60467 Project 1. Net Vulnerabilities scans and attacks. Chun Li

Penetration Testing Workshop

1 Recommended Readings. 2 Resources Required. 3 Compiling and Running on Linux

Linux Operating System Security

Hands-on Hacking Unlimited

Certified Cyber Security Expert V Web Application Development

ANNEXURE-1 TO THE TENDER ENQUIRY NO.: DPS/AMPU/MIC/1896. Network Security Software Nessus- Technical Details

CIS 4204 Ethical Hacking Fall, 2014

Some Tools for Computer Security Incident Response Team (CSIRT)

SCP - Strategic Infrastructure Security

CSE331: Introduction to Networks and Security. Lecture 18 Fall 2006

Host Hardening. OS Vulnerability test. CERT Report on systems vulnerabilities. (March 21, 2011)

How To Set Up A Network Map In Linux On A Ubuntu 2.5 (Amd64) On A Raspberry Mobi) On An Ubuntu (Amd66) On Ubuntu 4.5 On A Windows Box

Practical Mac OS X Insecurity. Security Concepts, Problems and Exploits on your Mac

IDS and Penetration Testing Lab ISA656 (Attacker)

Network Security. Network Packet Analysis

Advanced Internet Security

Penetration Testing. NTS330 Unit 1 Penetration V1.0. February 20, Juan Ortega. Juan Ortega, juaorteg@uat.edu. 1 Juan Ortega, juaorteg@uat.

CIT 380: Securing Computer Systems

Cyber Hygiene for Physical Security

Web Application Threats and Vulnerabilities Web Server Hacking and Web Application Vulnerability

Ethical Hacking and Information Security. Foundation of Information Security. Detailed Module. Duration. Lecture with Hands On Session: 90 Hours

Lab 10: Security Testing Linux Server

Security Threat Kill Chain What log data would you need to identify an APT and perform forensic analysis?

Security Tools - Hands On

Vulnerability Assessment Lab

Client-server Sockets

Computer Security SEGC-00 - Overview

Information Security. Training

CSCI 454/554 Computer and Network Security. Instructor: Dr. Kun Sun

Introduction to Information Security

Network and Host-based Vulnerability Assessment

Penetration Testing Using The Kill Chain Methodology

INDUSTRIAL CONTROL SYSTEMS CYBER SECURITY DEMONSTRATION

Venue. Dates. Certified Ethical Hacker (CEH) boot camp. Inovatec College. Nairobi Kenya (exact hotel name to be confirmed

Advanced Systems Security

SONDRA SCHNEIDER JOHN NUNES

Project 2: Penetration Testing (Phase II)

CSE343/443 Lehigh University Fall Course Overview. Presenter: Yinzhi Cao Lehigh University

Principles of Information Assurance Syllabus

Penetration Testing LAB Setup Guide

Linux Security Ideas and Tips

Course Title: Course Description: Course Key Objective: Fee & Duration:

Summary of the SEED Labs For Authors and Publishers

Nessus Agents. October 2015

Installing and Configuring Nessus by Nitesh Dhanjani

Port Scanning. Objectives. Introduction: Port Scanning. 1. Introduce the techniques of port scanning. 2. Use port scanning audit tools such as Nmap.

Stop that Big Hack Attack Protecting Your Network from Hackers.

CSC 474 Information Systems Security

CMSC 421, Operating Systems. Fall Security. URL: Dr. Kalpakis

Loophole+ with Ethical Hacking and Penetration Testing

Build Your Own Security Lab

Ethical Hacking and Attack Tools

Network Penetration Testing and Ethical Hacking Scanning/Penetration Testing. SANS Security Sans Mentor: Daryl Fallin

HW/Lab 2: Network Mapping and Attacks. CS 336/536: Computer Network Security DUE at 10/19/2015 (11am)

Audience. Pre-Requisites

Andreas Dittrich, Philipp Reinecke Testing of Network and System Security. example.

Network Security. 1 Pass the course => Pass Written exam week 11 Pass Labs

Defense in Depth: Protecting Against Zero-Day Attacks

Information Security Attack Tree Modeling for Enhancing Student Learning

Software Vulnerabilities

FORBIDDEN - Ethical Hacking Workshop Duration

0days: How hacking really works. V 1.0 Jan 29, 2005 Dave Aitel dave@immunitysec.com

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Author: Sumedt Jitpukdebodin. Organization: ACIS i-secure. ID: My Blog:

Modern Binary Exploitation Course Syllabus

A43. Modern Hacking Techniques and IP Security. By Shawn Mullen. Las Vegas, NV IBM TRAINING. IBM Corporation 2006

Pen Test Tips 2. Shell vs. Terminal

Transcription:

EECS 354 Network Security Introduction

Why Learn To Hack Understanding how to break into computer systems allows you to better defend them Learn how to think like an attacker Defense then becomes second-nature Security is an increasingly important field There are many jobs for security specialists Developers are expected to be aware of security concerns

Why Internet Security >The past decade has seen an explosion in concern about information security Malicious code (viruses, worms, etc.) caused over $28 billion in economic losses in 2003 and $67 billion in 2006! The number of scans, probes, and attacks reported to the DHS has increased by more than 300 percent from 2006 to 2008 > Security specialist markets are expanding! Salary Premiums for Security Certifications Increasing (Computerworld 2007) Up to 15% more salary Demand is being driven not only by compliance and government regulation, but also by customers who are "demanding more security" from companies >US Struggles to recruit compute security experts (Washington Post Dec. 23 2009) 3

Overview Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

Course Overview Atypical structure This course is based on group learning and experience Originally developed in 2007 by grad students Material tweaked with each iteration This year, taught mostly by grad students (5/6) with oversight by a professor and guest lectures from a security professional The class will follow a theory and practice model We will introduce the basic theory for fundamental hacking techniques, then carry out these techniques in controlled environments

Course Objectives Build a team for the annual UCSB International CTF Competition in December Participation in the competition is mandatory (and fun!) Practical knowledge of computer security Theory Attack Defense

Prerequisites and Materials Required EECS 213 or ECE 205 and 231 Highly Recommended Networking (EECS 340) Operating Systems (EECS 343) Familiarity with the UNIX environment No textbooks All readings will come from handouts

Course Contents Shellcode Buffer Overflows Heap Overflows Web Attacks Security Policy Layer 2 Attacks Cryptography Firewalls and IDSs Password cracking and Reverse Engineering Wireless Attacks

Communication Slides will be made online prior to each class Web page: http://netsec.cs.northwestern.edu/ Newsgroup: nuctf@googlegroups.com IRC: #netsec on acm.eecs.northwestern.edu

Grading No exams for this class Participation in CTF and practice competitions is mandatory Participation 20% Homework 45% Competition 20% Group Project 15%

Overview Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

Linux Memory Layout FF 00 Stack Heap DLLs Heap Data Text Stack Runtime stack (8MB limit) Heap Dynamically allocated storage When call malloc, calloc, new DLLs Dynamically Linked Libraries Library routines (e.g., printf, malloc) Linked into object code when first executed Data Statically allocated data E.g., arrays & strings declared in code Text Executable machine instructions Read-only

Linux Memory Allocation Initially Linked Some Heap More Heap Stack Stack Stack Stack Heap Heap DLLs DLLs DLLs Heap Data Data Data Data Text Text Text Text

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

Exploits An exploit is any computer input that takes advantage of a vulnerability to cause unintended behavior, usually to gain control of a computer system (Wikipedia) We will craft custom exploits to remotely gain control of computer systems

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

Linux Learning to hack on MS Windows is like trying to learn how to dance in a body cast anonymous Linux offers low-level access to OS services as well as a powerful command-line By the end of this class everyone will be very comfortable working and hacking in a Linux environment

Must know Linux Basic Linux commands (see Lab 1) Command line text editor(s) Valuable Linux filesystem (/etc, /usr, etc.) Downloading source code, compiling, and installing./configure, make, make install Ubuntu aptitude package management Come to office hours or ask on IRC for Linux help

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

TCP/IP This course assumes some knowledge of how networks work It is not necessary to understand every detail TCP Discussion Socket Discussion

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

netcat The TCP/IP swiss-army knife Simplest usage: $ nc host port Shell shoveling using TCP (simple backdoor) You can use netcat to get a shell if there is no firewall protecting the target $ nc -l -p 5300 -e /bin/sh Then, just connect to the target $ nc target_ip port

Major features nmap Host Discovery Identifies computers on a network Port Scanning Enumerates the open ports on one or more computers Version Detection Determines the application name and version number of services on remote machines OS Detection Remotely determining the operating system from network devices You must be root (use sudo) to use some features Consistently voted as one of the most used security tools

Nessus Nessus is an open-source vulnerability scanner Its goal is to detect weaknesses on a target host In addition, Nessus probes the remote host for any useful information (type of OS, etc.)

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

netstat/ps Once you have access to a box, what do you do? Two useful tools are netstat and ps netstat print network connections, interface statistics, etc. ps report a snapshot of the current running processes

netstat Command line options --inet specifies the inet address family (only displays network sockets) -a/--all show all connections (both listening and non-listening sockets) -p/--program show the PID and the name of the program to which each socket belongs -n/--numeric show numerical addresses instead of trying to determine symbolic host To show all network sockets $ netstat --inet -apn

ps $ ps $ps ax To see all processes you are running To see all processes running on the machine $ps aux (to see user information) To see all processes root is running $ps aux grep root

Overview Exploit demo Course information VM logistics x86 stack structure What are exploits? Why we use Linux TCP/IP Network utilities Local utilities Source code availability

Source Code Availability In general, we will always have source code available for analysis This mirrors many real-world situations Even without source code, many applications have documented vulnerabilities that are easily exploited Things can get tricky when source code is not available Brute-forcing becomes extremely helpful Reverse engineering is another option

Source Code Most buffer overflows use the same functions No bounds check: gets, strcpy, scanf Programmer-based bounds check: memcpy, strncpy Use grep to find where these functions are used Not all are vulnerable, but it's a quick starting point

Source Code Flawfinder (Static source code analysis) test.c: void func() { char buffer[64]; } Examining test.c Desktop/test.c:2: [2] (buffer) char: Statically-sized arrays can be overflowed. Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length.

Scanning Localhost Try to get root through local hacks Find root programs ps aux grep root Find setuid or root programs find / -perm -4000 2> /dev/null

setuid Some programs that are run by normal users need to execute as root setuid programs are marked with an 's' Many setuid programs only execute as root for as little time as they need to setuid system call allows changing user id back Example: ping rwsr-xr-x 1 root root 30848 2007-03-04 22:25 ping