rest of ch03
							parent
							
								
									a8e8bfa879
								
							
						
					
					
						commit
						a6b2734b12
					
				| 
						 | 
				
			
			@ -1 +1,8 @@
 | 
			
		|||
*.pdf
 | 
			
		||||
*
 | 
			
		||||
 | 
			
		||||
!*.md
 | 
			
		||||
!img/
 | 
			
		||||
!img/**
 | 
			
		||||
!Makefile
 | 
			
		||||
!.gitignore
 | 
			
		||||
!*.yml
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										161
									
								
								03_scanning.md
								
								
								
								
							
							
						
						
									
										161
									
								
								03_scanning.md
								
								
								
								
							| 
						 | 
				
			
			@ -10,6 +10,14 @@
 | 
			
		|||
 | 
			
		||||
## Network tracing
 | 
			
		||||
 | 
			
		||||
* discover routes that packets take between systems
 | 
			
		||||
    * allows constructing network diagrams
 | 
			
		||||
* sends ICMP/UDP/TCP packets with varying TTL
 | 
			
		||||
* requires routers to properly report dropped packets
 | 
			
		||||
    * often disabled for performance/security reasons
 | 
			
		||||
* `traceroute` useful tool
 | 
			
		||||
* web-based [tools](https://tools.keycdn.com/traceroute) also available
 | 
			
		||||
 | 
			
		||||
### IPv4 and IPv6
 | 
			
		||||
 | 
			
		||||
* important IPv4 headers
 | 
			
		||||
| 
						 | 
				
			
			@ -21,23 +29,11 @@
 | 
			
		|||
    * simpler than IPv4
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
### tracing
 | 
			
		||||
 | 
			
		||||
* discover routes that packets take between systems
 | 
			
		||||
    * allows constructing network diagrams
 | 
			
		||||
* sends ICMP/UDP/TCP packets with varying TTL
 | 
			
		||||
* requires routers to properly report dropped packets
 | 
			
		||||
    * often disabled for performance/security reasons
 | 
			
		||||
* `traceroute` useful tool
 | 
			
		||||
* web-based [tools](https://tools.keycdn.com/traceroute) also available
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
## Scanning
 | 
			
		||||
 | 
			
		||||
* Nmap does it all
 | 
			
		||||
 | 
			
		||||
### TCP
 | 
			
		||||
 | 
			
		||||
* 16-bit ports
 | 
			
		||||
| 
						 | 
				
			
			@ -97,3 +93,140 @@
 | 
			
		|||
* traceroute
 | 
			
		||||
* redirect messages expose network topology
 | 
			
		||||
* ICMP address mask requests: determine subnet used by target host
 | 
			
		||||
 | 
			
		||||
### Nmap
 | 
			
		||||
 | 
			
		||||
* port scanner and all-in toolkit
 | 
			
		||||
* important tool when performing scanning
 | 
			
		||||
* TCP port scanning
 | 
			
		||||
    * connect scan
 | 
			
		||||
        * complete 3-way handshake
 | 
			
		||||
        * can run without root
 | 
			
		||||
        * not stealthy (connections can be logged)
 | 
			
		||||
        * doesn't use nmap to craft packets
 | 
			
		||||
    * syn scan/half-open scan
 | 
			
		||||
        * runs as root
 | 
			
		||||
        * only send initial SYN and listen for response
 | 
			
		||||
        * detectable by firewall/NIDS
 | 
			
		||||
    * ACK scan
 | 
			
		||||
    * playing with control bits
 | 
			
		||||
        * FIN scan: FIN bit of all packets set
 | 
			
		||||
        * NULL scan: all bits set to 0
 | 
			
		||||
        * Xmas tree scan: FIN, PSH, URG set
 | 
			
		||||
        * Maimon scan: FIN and ACK set
 | 
			
		||||
* UDP scanning
 | 
			
		||||
    * scans specific UDP ports
 | 
			
		||||
    * sends protocol-specific messages to well-known ports
 | 
			
		||||
* firewall spotting
 | 
			
		||||
    * generate packets with invalid TCP or UDP checksum
 | 
			
		||||
    * targets will drop these
 | 
			
		||||
    * firewalls don't always check checksum and will send a RESET/ICMP port
 | 
			
		||||
      unreachable instead
 | 
			
		||||
    * allows detecting firewalls
 | 
			
		||||
    * can also look for varying TTL values
 | 
			
		||||
        * TTL on firewall RESET message will be higher as the firewall is
 | 
			
		||||
          closer
 | 
			
		||||
* full support for IPv6
 | 
			
		||||
* OS fingerprinting
 | 
			
		||||
    * detect quirks of protocol behaviors for OS versions
 | 
			
		||||
    * **active**: send special packets to detect behavior
 | 
			
		||||
    * **passive**: observe patterns of network traffic (stealthy but less
 | 
			
		||||
      accurate)
 | 
			
		||||
* version scanning
 | 
			
		||||
    * detect versions of services running on host
 | 
			
		||||
    * send packets to specific service types that reveal version information
 | 
			
		||||
    * useful for crafting exploits
 | 
			
		||||
 | 
			
		||||
### Other stuff
 | 
			
		||||
 | 
			
		||||
* automated monitoring
 | 
			
		||||
    * running nmap using cron can reveal changes in network
 | 
			
		||||
    * tools like [masscan](https://github.com/robertdavidgraham/masscan) well
 | 
			
		||||
      suited for this
 | 
			
		||||
    * monitoring web applications also important
 | 
			
		||||
        * [HTTPScreenshot](https://github.com/breenmachine/httpscreenshot):
 | 
			
		||||
          take screenshots of websites
 | 
			
		||||
        * [EyeWitness](https://github.com/RedSiege/EyeWitness): screenshots of
 | 
			
		||||
          webpages, RDP and VNC servers, tries to login with default
 | 
			
		||||
          credentials
 | 
			
		||||
* scanning cloud infrastructure
 | 
			
		||||
    * lots of cloud usage
 | 
			
		||||
    * companies often don't configure cloud service correctly
 | 
			
		||||
    * very large IP addresses to search through
 | 
			
		||||
    * use tools like [Shodan](https://www.shodan.io/) or
 | 
			
		||||
      [Censys](https://search.censys.io/)
 | 
			
		||||
        * automatically perform scans that can be accessed online
 | 
			
		||||
        * allow monitoring target without direct contact
 | 
			
		||||
* badly configured S3
 | 
			
		||||
    * buckets that allow writing without authorisation
 | 
			
		||||
    * subdomain takeover allows attacker to take over bucket URL
 | 
			
		||||
* packet crafting
 | 
			
		||||
    * sometimes very specific/controlled packets are required
 | 
			
		||||
    * tools like [Scapy](https://scapy.net/) allow crafting packets for various
 | 
			
		||||
      protocols
 | 
			
		||||
        * Python tool
 | 
			
		||||
        * provides REPL to forge, send and receive packets
 | 
			
		||||
 | 
			
		||||
## Vulnerability scanning
 | 
			
		||||
 | 
			
		||||
* process used to identify security weaknesses and vulnerabilities in a system,
 | 
			
		||||
  network or application
 | 
			
		||||
  * involves using automated tools to scan systems for known vulnerabilities
 | 
			
		||||
    and weaknesses
 | 
			
		||||
  * critical component of a robust cybersecurity strategy
 | 
			
		||||
  * automated scanning allows detecting problems before they're possibly
 | 
			
		||||
    exploited
 | 
			
		||||
* key aspects
 | 
			
		||||
    * **goal**: identify and address security flaws before they're exploited
 | 
			
		||||
    * **scan types**
 | 
			
		||||
        * network scanning
 | 
			
		||||
        * web app scanning
 | 
			
		||||
        * host scanning
 | 
			
		||||
    * **process**
 | 
			
		||||
        1. discovery: identify all relevant devices, systems and applications
 | 
			
		||||
        2. scanning: use automated tools to scan targets for known
 | 
			
		||||
            vulnerabilities
 | 
			
		||||
        3. analysis: analyse results for vulnerabilities and prioritize them
 | 
			
		||||
        4. reporting: generate report detailing results
 | 
			
		||||
    * **frequency**: how often to perform scans
 | 
			
		||||
    * **compliance**: many regulatory standards require regular vulnerability scanning
 | 
			
		||||
 | 
			
		||||
### Methods
 | 
			
		||||
 | 
			
		||||
* Nmap Scripting Engine (NSE)
 | 
			
		||||
    * allows extending nmap with Lua scripts
 | 
			
		||||
    * greatly broadens scope of nmap
 | 
			
		||||
    * nmap comes with a ton of ready-to-use scripts
 | 
			
		||||
    * perfect for vulnerability scanning
 | 
			
		||||
* [Tenable](https://www.tenable.com/) Nessus
 | 
			
		||||
    * modern vulnerability scanner
 | 
			
		||||
    * can detect tens of thousands of vulnerabilities
 | 
			
		||||
    * free for personal use
 | 
			
		||||
* [OpenVAS](https://github.com/greenbone/)
 | 
			
		||||
    * open-source vulnerability scanner
 | 
			
		||||
    * less expansive than Nessus
 | 
			
		||||
 | 
			
		||||
### Enumerating users
 | 
			
		||||
 | 
			
		||||
* process of retrieving list of usernames for system
 | 
			
		||||
* numerous methods
 | 
			
		||||
    * public sources of information (websites, emails...)
 | 
			
		||||
    * pentest: ask for list of users (grey box)
 | 
			
		||||
* Linux
 | 
			
		||||
    * local: `/etc/passwd`
 | 
			
		||||
    * remotely
 | 
			
		||||
        * `finger @IP`
 | 
			
		||||
        * query NIS or LDAP server if present
 | 
			
		||||
        * `enum4linux` tool
 | 
			
		||||
* Windows
 | 
			
		||||
    * list users using SMB session
 | 
			
		||||
        * possible anonymously on older versions of Windows
 | 
			
		||||
        * if single user is known, listing all users is possible
 | 
			
		||||
 | 
			
		||||
### Netcat
 | 
			
		||||
 | 
			
		||||
* netcat is useful
 | 
			
		||||
* general purpose TCP and UDP network tool
 | 
			
		||||
* installed basically everywhere
 | 
			
		||||
* used for setting up reverse shells among other things
 | 
			
		||||
* it's just a useful network tunnel
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							| 
						 | 
				
			
			@ -1,2 +1,2 @@
 | 
			
		|||
samenvatting.pdf: *.md metadata.yml
 | 
			
		||||
	pandoc --toc -o $@ $^
 | 
			
		||||
	pandoc --standalone --toc -o $@ $^
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
---
 | 
			
		||||
title: Network Security Summary
 | 
			
		||||
geometry:
 | 
			
		||||
- top=30mm
 | 
			
		||||
- left=30mm
 | 
			
		||||
- right=30mm
 | 
			
		||||
---
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue