hoofdstuk 2 stuff
							parent
							
								
									feb7ef7bd3
								
							
						
					
					
						commit
						d5287c4f1b
					
				|  | @ -0,0 +1 @@ | |||
| *.pdf | ||||
|  | @ -0,0 +1,70 @@ | |||
| # Introduction | ||||
| 
 | ||||
| ## Teams involved in security | ||||
| 
 | ||||
| * red: attack team | ||||
|     * test effectiveness of security by performing attacks | ||||
| * blue: defend team | ||||
|     * defend against attacks by constantly surveiling the network | ||||
| * yellow: build team | ||||
|     * builds applications that can be used by the other teams | ||||
| * sharing knowledge | ||||
|     * orange: builders learn from attackers | ||||
|     * green: builder learn from defenders | ||||
|     * purple: defenders learn from attackers | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| ## Penetration testing | ||||
| 
 | ||||
| ### Penetration testers <-> red teams | ||||
| 
 | ||||
| * penetration testing | ||||
|     * methodical approach | ||||
|     * limited by Rules of Engagement (restricted scope) | ||||
|     * 1-2 week engagement | ||||
|     * generally announced | ||||
|     * goal is to assess security of network and systems | ||||
| * red team | ||||
|     * flexible approach | ||||
|     * anything goes (as long as it's legal) | ||||
|     * 1 week to 6 months engagement | ||||
|     * no announcement | ||||
|     * goal is to test general security posture of company | ||||
| 
 | ||||
| ### Penetrating testing <-> vulnerability assessments | ||||
| 
 | ||||
| * penetration testing | ||||
|     * find vulnerabilities, both automated and manually | ||||
|     * exploit them | ||||
|     * attempt to gather confidential data | ||||
|     * intended to go deeper and focus on technical issues | ||||
| * vulnerability assessment | ||||
|     * find vulnerabilities through automated means | ||||
|     * don't exploit them or gather data | ||||
|     * broader and often includes explicit policy and procedure review | ||||
| 
 | ||||
| ### assumed breach exercise | ||||
| 
 | ||||
| * pentest where attackers are assumed to already be inside | ||||
| * malware is dropped inside company boundaries | ||||
| * getting caught not the end -> reset and try again | ||||
| * **Time To Detect** (TTD): how long it takes to notice breach | ||||
| * **Time To Mitigate** (TTM): how long it takes to perform corrective action | ||||
| 
 | ||||
| ### Useful resources | ||||
| 
 | ||||
| * [MITRE](https://attack.mitre.org/): knowledge base of attack tactics and | ||||
|   techniques | ||||
|   * explanation of **TTP**s (Tactics, Techniques and Procecures) | ||||
| * [APT Groups and Operations](https://apt.threattracking.com/): Google doc containing | ||||
|   list of dangerous groups | ||||
| * [Cyber Fundamentals](https://atwork.safeonweb.be/nl/tools-resources/cyberfundamentals-framework) | ||||
|     * concrete measures on how to protect data and ensure safety in company | ||||
|     * four assurance levels | ||||
|     * five core functions | ||||
|         1. identify | ||||
|         2. protect | ||||
|         3. detect | ||||
|         4. respond | ||||
|         5. recover | ||||
|  | @ -0,0 +1,234 @@ | |||
| # Planning, Scoping, Recon and OSINT | ||||
| 
 | ||||
| * **Threat**: agent or actor that can cause harm | ||||
| * **Vulnerability**: flaw that can be exploited to cause harm | ||||
| * **Risk**: overlap between threat and vulnerability | ||||
| * **Exploit**: code or technique that a threat uses to take advantage of a | ||||
|   vulnerability | ||||
| * **Hacking**: manipulate technology to make it do something it's not designed | ||||
|   to do | ||||
|   * **Ethnical hacking** (white hat): hacking with the permission of the target | ||||
|   * **Penetration testing**: ethical hacking with the goal of finding and | ||||
|     exploiting security vulnerabilities in target environment and reporting | ||||
|     them | ||||
|     * modelling techniques used by real-world attackers | ||||
|     * determine risk to company | ||||
| * **Security audit** | ||||
|     * testing against a rigorous set of standards | ||||
|     * detailed checklists | ||||
|     * more in-depth than pen test | ||||
| 
 | ||||
| ## Types of penetration tests | ||||
| 
 | ||||
| * Network services test | ||||
|     * find target systems on network | ||||
|     * look for openings in OS or running network services and exploit them | ||||
|     * over the internet or from within breached network | ||||
| * Client-side software test | ||||
|     * look for vulnerabilities in client-side software (e.g. browsers) | ||||
| * Web application test | ||||
|     * look for vulnerabilities in web-based applications deployed in the target | ||||
|       environment | ||||
| * Social engineering / phishing test | ||||
|     * attempt to trick user into revealing sensitive information | ||||
|     * using phishing mails to make users click malicious links | ||||
| * Wireless security test | ||||
|     * find unauthorized wireless access points or authorized ones with security | ||||
|       weaknesses | ||||
| * Physical security test | ||||
|     * look for flaws in physical security practices | ||||
|     * literally try to break in | ||||
|     * dumpster diving | ||||
| * Stolen equipment test | ||||
|     * "obtain" (steal) a piece of equipment (e.g. laptop) and analyse it for | ||||
|       sensitive info | ||||
| * Cryptanalysis attack | ||||
|     * break or bypass encryption on local or intercepted data | ||||
| * Product security test | ||||
|     * look for security flaws in software products that can be installed in | ||||
|       tester's lab | ||||
| * Remote war dial test (obsolete) | ||||
|     * attempt to log into discovered modems | ||||
| 
 | ||||
| ## Phases of an attack | ||||
| 
 | ||||
| 1. Reconnaissance: OSINT, social engineering, dumpster diving... | ||||
| 2. Scanning: finding openings in the systems, listening ports... | ||||
| 3. Exploitation / gaining access: attempt to access and take control of target | ||||
|    devices | ||||
| 
 | ||||
| * Malicious actors go further | ||||
|     * install backdoors and rootkits | ||||
|     * cover tracks with covert channels, log editing... | ||||
| 
 | ||||
| * public/free testing methodologies | ||||
|     * Open Source Security Testing Methodology Manual ([OSSTMM](https://www.isecom.org/research.html)) | ||||
|     * Pen Testing Execution Standard ([PTES](Pen Testing Execution Standard)) | ||||
|     * [NIST](https://csrc.nist.gov/publications/detail/sp/800-115/final) (US National Institute of Standards and Technology) | ||||
|     * ... | ||||
| 
 | ||||
| ## Lab | ||||
| 
 | ||||
| * **Testing machine**: system used by pentester to attack other machines | ||||
|     * don't use for anything personal | ||||
|     * should be hardened to avoid being attacked themselves | ||||
|     * scrub results between tests (avoid confusion, leave no trace) | ||||
| * **Target machine**: machine being attacked/evaluated | ||||
| 
 | ||||
| ## The pentesting process | ||||
| 
 | ||||
| * three phases | ||||
|     1. preparation | ||||
|         * perform necesary paperwork | ||||
|         * clearly define rules of engagement | ||||
|     2. testing: conduct the test | ||||
|     3. conclusion | ||||
|         * detailed analysis of results | ||||
|         * write report | ||||
| 
 | ||||
| ### rules of engagement | ||||
| 
 | ||||
| * must be defined in advance | ||||
| * clear outline of what's allowed and what's not | ||||
| * emergency contact information | ||||
| * safe means of communication | ||||
| * possible briefing calls | ||||
| * agreement on period of engagement | ||||
| * whether sysadmins are informed or not | ||||
| * how much info is shared | ||||
|     * **black box**: no info shared | ||||
|         * more closely mimicks a true attack | ||||
|         * takes longer | ||||
|     * **grey box**: some info, e.g. password for non-privileged user | ||||
|         * balance between efficiency and realism | ||||
|     * **white box**: testers get everything | ||||
| * what data can be viewed | ||||
|     * remove personal data from sniffed packets | ||||
|     * sometimes samples are allowed to prove they were there | ||||
| * should be signed off before anything is done | ||||
| 
 | ||||
| ### Scoping | ||||
| 
 | ||||
| * determine what should be focused on | ||||
|     * ask organisation what their biggest weaknesses are | ||||
|     * avoid scope creep | ||||
| * ensure all targetted systems are allowed within scope | ||||
|     * third-party systems should give *written* permission | ||||
|     * large cloud ventors usually have pen testing rules in place | ||||
| * ideally run test on staging environment (don't break prod) | ||||
| * checking inside vulnerabilities | ||||
|     * team travels onsite | ||||
|     * team gets vpn or ssh access | ||||
| * scope must specify level of testing allowed | ||||
|     * ping sweep | ||||
|     * port scanning | ||||
|     * full on `nmap -A` | ||||
|     * physical penetration attempts | ||||
|     * social engineering | ||||
|     * DoS checks | ||||
|     * use of dangerous exploits | ||||
| 
 | ||||
| ### Reporting and inventory management | ||||
| 
 | ||||
| * report is important | ||||
|     * only thing the client will read | ||||
|     * should clearly define what's the problem | ||||
|     * write it as you go | ||||
|     * convince client the problem is real and in the room with them | ||||
|     * rank vulnerabilities according to severity | ||||
| * executive summary | ||||
|     * statement of confidentiality: how to treat this document | ||||
|     * engagement contacts: who was involved | ||||
|     * summary for management to read | ||||
|         * most important conclusions | ||||
|         * what should be fixed | ||||
|         * what's been done | ||||
| * pentest assessment summary: overview of most important findings | ||||
| * detailed walktrhough: technical overview | ||||
| * technical | ||||
|     * deep technical findings | ||||
|     * big nerd talk for the nerds | ||||
| * remediation summary | ||||
|     * short, medium and long-term recommendations | ||||
|     * summarize project, scope and security state of target | ||||
| * appendices | ||||
|     * output of commands | ||||
|     * data dumps | ||||
|     * password reviews | ||||
| 
 | ||||
| ## Reconnaissance | ||||
| 
 | ||||
| * collect as much information as possible before launching any attack | ||||
| * **Passive**: gather info without direct interaction with target | ||||
|     * via social media | ||||
|     * corporate website | ||||
|     * search engines | ||||
|     * ... | ||||
| * **Active**: interact directly with target system | ||||
|     * scanning | ||||
|     * enumeration | ||||
|     * higher risk of detection | ||||
| * social engineering | ||||
|     * important role in information gathering | ||||
|     * life cycle | ||||
|         1. investigate | ||||
|             * gather information about targets | ||||
|             * find details about them (job, personal interests...) | ||||
|         2. hook | ||||
|             * create plausible scenario to engage with target | ||||
|             * establish trust | ||||
|         3. play | ||||
|             * manipulate target into providing desired information | ||||
|             * trick target into revealing sensitive information | ||||
|         4. exit | ||||
|             * cover tracks to avoid detection | ||||
| * document metadata analysis | ||||
|     * gather information from e.g. pdf metadata tags | ||||
|     * reveals what software they use, who works there | ||||
|     * lots of documents are (accidentally) publicly available | ||||
|     * use crawlers and search engines | ||||
| * domain info | ||||
|     * WHOIS ([Belgium](https://www.dnsbelgium.be/)) | ||||
|     * query registries about domains | ||||
|     * can contain contact information of sysadmins | ||||
|     * list domain servers | ||||
|     * not as useful now due to privacy laws | ||||
|     * Regional Internet Registries (RIRs) offer databases for IP -> domain lookup | ||||
| * subdomain discovery | ||||
|     * enumerate subdomains used by target | ||||
|     * usually stored on target dns servers | ||||
|     * useful tools | ||||
|         * [knock](https://github.com/guelfoweb/knock/): brute-forcing tool | ||||
|         * [sublist3r](https://github.com/aboul3la/Sublist3r): uses search engines for domain names | ||||
|         * [SubBrute](https://github.com/TheRook/subbrute): uses open resolvers as proxies for dns queries | ||||
| * search engines can provide useful info | ||||
|     * search for employees or company websites | ||||
|     * look at job offers | ||||
|     * ... | ||||
|     * use fancy lookup syntax | ||||
| * DNS | ||||
|     * translates domain names to IP addresses | ||||
|     * **NS**: nameserver | ||||
|     * **A**: address | ||||
|     * **MX**: mail server address for domain | ||||
|     * **TXT**: plain text strings for domain | ||||
|     * **CNAME**: aliases for domain names | ||||
|     * **SOA**: indicates that server is authoritative for DNS zone | ||||
|     * **PTR**: pointer for inverse lookup (IP -> domain) | ||||
|     * zone transfer: mechanism used to replicate DNS DB info to other server | ||||
|         * allow secondary servers to sync with primary one | ||||
|         * can be exploited to receive full information from DNS server | ||||
|         * should be disabled for properly configured server | ||||
| * useful tools | ||||
|     * recon-ng framework | ||||
|         * open reconaissance framework | ||||
|         * does a lot automatically | ||||
|         * the perfect automated stalker tool | ||||
|         * can detect antivirus by checking which dns entries are cached in domain servers | ||||
|     * spiderfoot framework | ||||
|         * OSINT automation tool | ||||
|     * OWASP AMASS framework | ||||
|     * GitHub | ||||
|         * filled with leaked secrets | ||||
|         * trufflehog and git-all-secrets automatically scan GitHub for leaks | ||||
|     * [have i been pwned](https://haveibeenpwned.com/) | ||||
|  | @ -0,0 +1 @@ | |||
| # Scanning | ||||
|  | @ -0,0 +1,2 @@ | |||
| samenvatting.pdf: *.md metadata.yml | ||||
| 	pandoc --toc -o $@ $^ | ||||
|  | @ -0,0 +1,5 @@ | |||
| --- | ||||
| geometry: | ||||
| - top=30mm | ||||
| - left=30mm | ||||
| --- | ||||
							
								
								
									
										130
									
								
								samenvatting.md
								
								
								
								
							
							
						
						
									
										130
									
								
								samenvatting.md
								
								
								
								
							|  | @ -1,130 +0,0 @@ | |||
| # Introduction | ||||
| 
 | ||||
| ## Teams involved in security | ||||
| 
 | ||||
| * red: attack team | ||||
|     * test effectiveness of security by performing attacks | ||||
| * blue: defend team | ||||
|     * defend against attacks by constantly surveiling the network | ||||
| * yellow: build team | ||||
|     * builds applications that can be used by the other teams | ||||
| * sharing knowledge | ||||
|     * orange: builders learn from attackers | ||||
|     * green: builder learn from defenders | ||||
|     * purple: defenders learn from attackers | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| ## Penetration testing | ||||
| 
 | ||||
| ### Penetration testers <-> red teams | ||||
| 
 | ||||
| * penetration testing | ||||
|     * methodical approach | ||||
|     * limited by Rules of Engagement (restricted scope) | ||||
|     * 1-2 week engagement | ||||
|     * generally announced | ||||
|     * goal is to assess security of network and systems | ||||
| * red team | ||||
|     * flexible approach | ||||
|     * anything goes (as long as it's legal) | ||||
|     * 1 week to 6 months engagement | ||||
|     * no announcement | ||||
|     * goal is to test general security posture of company | ||||
| 
 | ||||
| ### Penetrating testing <-> vulnerability assessments | ||||
| 
 | ||||
| * penetration testing | ||||
|     * find vulnerabilities, both automated and manually | ||||
|     * exploit them | ||||
|     * attempt to gather confidential data | ||||
|     * inteded to go deeper and focus on technical issues | ||||
| * vulnerability assessment | ||||
|     * find vulnerabilities through automated means | ||||
|     * don't exploit them or gather data | ||||
|     * broader and often includes explicit policy and procedure review | ||||
| 
 | ||||
| ### assumed breach exercise | ||||
| 
 | ||||
| * pentest where attackers are assumed to already be inside | ||||
| * malware is dropped inside company boundaries | ||||
| * getting caught not the end -> reset and try again | ||||
| * **Time To Detect** (TTD): how long it takes to notice breach | ||||
| * **Time To Mitigate** (TTM): how long it takes to perform corrective action | ||||
| 
 | ||||
| ### Useful resources | ||||
| 
 | ||||
| * [MITRE](https://attack.mitre.org/): knowledge base of attack tactics and | ||||
|   techniques | ||||
| * [APT Groups and Operations](https://attack.mitre.org/): Google doc containing | ||||
|   list of dangerous groups | ||||
| * [Cyber Fundamentals](https://atwork.safeonweb.be/nl/tools-resources/cyberfundamentals-framework) | ||||
|     * concrete measures on how to protect data and ensure safety in company | ||||
|     * four assurance levels | ||||
|     * five core functions | ||||
|         1. identify | ||||
|         2. protect | ||||
|         3. detect | ||||
|         4. respond | ||||
|         5. recover | ||||
| 
 | ||||
| # Planning, Scoping, Recon and OSINT | ||||
| 
 | ||||
| * **Threat**: agent or actor that can cause harm | ||||
| * **Vulnerability**: flaw that can be exploited to cause harm | ||||
| * **Risk**: overlap between threat and vulnerability | ||||
| * **Exploit**: code or technique that a threat uses to take advantage of a | ||||
|   vulnerability | ||||
| * **Hacking**: manipulate technology to make it do something it's not designed | ||||
|   to do | ||||
|   * **Ethnical hacking** (white hat): hacking with the permission of the target | ||||
|   * **Penetration testing**: ethical hacking with the goal of finding and | ||||
|     exploiting security vulnerabilities in target environment and reporting | ||||
|     them | ||||
| * **Security audit** | ||||
|     * testing against a rigorous set of standards | ||||
|     * detailed checklists | ||||
|     * more in-depth than pen test | ||||
| 
 | ||||
| ## Types of penetration tests | ||||
| 
 | ||||
| * Network services test | ||||
|     * find target systems on network | ||||
|     * look for openings in OS or running network services and exploit them | ||||
|     * over the internet or from within breached network | ||||
| * Client-side software test | ||||
|     * look for vulnerabilities in client-side software (e.g. browsers) | ||||
| * Web application test | ||||
|     * look for vulnerabilities in web-based applications deployed in the target | ||||
|       environment | ||||
| * Social engineering / phishing test | ||||
|     * attempt to trick user into revealing sensitive information | ||||
|     * using phishing mails to make users click malicious links | ||||
| * Wireless security test | ||||
|     * find unauthorized wireless access points or authorized ones with security | ||||
|       weaknesses | ||||
| * Physical security test | ||||
|     * look for flaws in physical security practices | ||||
|     * literally try to break in | ||||
|     * dumpster diving | ||||
| * Stolen equipment test | ||||
|     * "obtain" (steal) a piece of equipment (e.g. laptop) and analyse it for | ||||
|       sensitive info | ||||
| * Cryptanalysis attack | ||||
|     * break or bypass encryption on local or intercepted data | ||||
| * Product security test | ||||
|     * look for security flaws in software products that can be installed in | ||||
|       tester's lab | ||||
| * Remote war dial test (obsolete) | ||||
|     * attempt to log into discovered modems | ||||
| 
 | ||||
| ## Phases of an attack | ||||
| 
 | ||||
| 1. Reconnaissance: OSINT, social engineering, dumpster diving... | ||||
| 2. Scanning: finidngo penings in the systems, listening ports... | ||||
| 3. Exploitation / gaining access: attempt to access and take control of target | ||||
|    devices | ||||
| 
 | ||||
| * Malicious actors go further | ||||
|     * install backdoors and rootkits | ||||
|     * cover tracks with covert channels, log editing... | ||||
		Loading…
	
		Reference in New Issue