## Table Of Contents
- [[#Introduktion|Introduktion]]
- [[#Downloads|Downloads]]
- [[#Setup|Setup]]
- [[#Rules of Engagement (ROE)|Rules of Engagement (ROE)]]
- [[#How to guide|How to guide]]
___
## Introduktion
Vi skal afprøve og test sikkerhed på trådløse netværk. Som altid er det af afgørende betydning at vi kun anvender og afprøver på eget udstyr. Så Rules of Engagement (ROE) er vigtig at have fokus på, denne vil nævne de netværk med præcise angivelser som der må testes på.
>[!info]
> Vi vil anvende den definition af Rules of Engagement som findes i NIST NIST SP 800-115 "Technical guide to information security testing and assessment." læs mere her:
>
> https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-115.pdf
> https://csrc.nist.gov/glossary/term/rules_of_engagement
>
> - Scarfone, K A, M P Souppaya, A Cody, and A D Orebaugh. ‘Technical Guide to Information Security Testing and Assessment.’ 0 ed. Gaithersburg, MD: National Institute of Standards and Technology, 2008. [https://doi.org/10.6028/NIST.SP.800-115](https://doi.org/10.6028/NIST.SP.800-115)
Vi vil i første omgang arbejde med værktøjet aircrack-ng som blandt andet findes i Kali Linux distributionen.
https://www.aircrack-ng.org/
Aircrack-ng er en suite af værktøjer og vi vil bruge en række af dem i denne øvelse.
Når vi skal forsøge at skaffe os adgang til et trådløs netværk som anvender WPA / WPA2 sikkerhed via aircrack-ng vil vi anvende brute-force angreb, det vil sige at vi vil anvende en liste (dictionary) med forslag til passwords som så vil blive testet op imod det 4-way handshake som vi ønsker at optage.
## Downloads
Til denne øvelse vi vi benytte en modificeret password liste som ikke er native i Kali, så den skal i downloade.
WiFi passwords list: "probable-v2-wpa-top4800"
download
https://its-eaaa.eu-central-1.linodeobjects.com/NKS/probable-v2-wpa-top4800.txt
![[2023-10-20 23_55_49-127.0.0.1_5001 - Remote Desktop Connection-lenovo.png]]
Vi vil også benytte en pcap fil til at lave analyse på i wireshark, denne kan hentes via følgende link:
Test pcap file:
https://its-eaaa.eu-central-1.linodeobjects.com/NKS/handshake_A620.pcap-01.cap
![[2023-10-20 00_21_51-127.0.0.1_5001 - Remote Desktop Connection-lenovo.png]]
## Setup
Vi benytter selvfølgelig Kali som vores angrebsmaskine og til dette lab skal i inddeles i grupper af 4-5 studerende. I får adgang til en prækonfigureret kali maskine som afvikles på en Raspberry Pi 4.
Raspberry Pi 4eren er tilsluttet et netværk via Ethernet kabel og denne til en trådløs router således at i kan få trådløs adgang til den maskine i skal bruge i gruppen. Der vil ligeledes var isat en wi-fi dongle [[Alfa US036acs]]. Dette selvom Raspberry Pi's Wi-Fi interface er i stand til at gå i [[Monitor mode]].
I finder grupper på Canvas og herunder ligeledes login oplysninger.
Øvelsen er en gruppe øvelse og I skal forsøge kun at tilgå jeres angrebsmaskine (hackbox) fra én laptop i gruppen. I kan tilgå via SSH, men i kan også anvende VNC forbindelsen. Har I selv en Wi-Fi dongle med, kan I efterfølgende gentage dette lab på jeres egen maskine.
Screenshots i denne gennemgang er taget fra en kali prompt som afvikles under VirtualBox på en windows 11 laptop og ikke en Raspberry Pi.
## Rules of Engagement (ROE)
Hvis ikke i fik kigget på definitionen i starten af teksten under intro er det en god idé lige at tage en pause og hoppe tilbage til dette punkt. Følgende trådløse netværk og Access Point har i hermed tilladelse til at udføre angreb imod.
| SSID | BSSID |
| -------: | :------: |
| TP-Link_A620 | AC:15:A2:DC:A6:20 |
| Item 4 | Item 5 |
## How to guide
Start med at logge in på jeres gruppe raspberry pi. Find log-in oplysninger i Canvas. **Husk** gerne kun en i gruppen som logger ind, enten via SSH eller en VNC client.
Når gruppen er logget ind vil jeres prompt give information om hostname for den maskine i er logget ind som f.eks.:
```bash
(hans@kali-01)-[~]
$
```
Dette giver, som I nok husker for det meste oplysninger om brugernavn (hans) og hostname på maskinen (kali-01)
Dobbelt check at I er på den rigtige maskine, hostname og gruppenummer skulle gerne stemme overens, hvis ikke så må I meget gerne sige til så hurtigt som muligt.
I kan med fordel bruge følgende kommando til at se hvor mange og hvem som ellers er logget ind på maskinen.
![[2023-10-21 00_58_34-127.0.0.1_5001 - Remote Desktop Connection-lenovo.png]]
Vi kan kontrollere om den trådløse dongle er isat maskinen ved at bruge kommandoen `lsusb`
![[2023-10-21 01_00_56-127.0.0.1_5001 - Remote Desktop Connection-lenovo.png]]
Vi kan bruge `iw` kommandoen til at få nogle flere oplysninger om det trådløse interface.
læs mere om `iw` her: https://wireless.wiki.kernel.org/en/users/Documentation/iw
`iw help` kan give et overblik, prøv med:
```bash
iw help | less
```
>[!faq]- Spørgsmål til diskussion i gruppen
> - Hvad betyder `|`?
> - Hvilket andet Linux program / kommando minder `less` om?
> - Skal `less` indlæse hele tekst filen inden den påbegynder output?
```bash
iw list | less
```
Giver en indsigt i hvilke specifikationer og muligheder den trådløse adapter har. Det skulle gerne fremgå under `supported interface modes:` af denne oversigt at interfacet kan gå i **monitor mode**.
>[!faq]- Spørgsmål til diskussion i gruppen
> - Hvilke andre mulige interface modes findes der?
> - Hvilket mode forventer I jeres laptops er I lige nu?
Vores første step er nu at anbringe vores Alfa Wi-Fi dongle i monitor mode. Her gør vi brug af `aircrack-ng` mere bestemt `airmon-ng`
```bash
$ airmon-ng
Run it as root
```
Det kræver eleveret rettigheder, så
```bash
sudo airmon-ng
```
Dette giver et navn på interfacet, i mit tilfælde `wlan0`
Vi starter med at undersøge om der er processer som kan havde indflydelse på brugen af monitor mode. dette gøres med `sudo airmon-ng check`
![[2023-10-21 23_34_59-127.0.0.1_5001 - Remote Desktop Connection-lenovo.png]]
vi kan kigge nærmere på processerne med `ps`
```bash
ps 549
```
Vi kunne bruge `kill` option som fx.
```bash
sudo kill -15 549
```
men vi kan også lade `airmon-ng` gøre arbejder med:
```bash
sudo airmon-ng check kill
```
Nu kan vi sætter interfacet i monitor mode med:
```bash
sudo airmon-ng start [interface]
```
husk `[interface]` kan være forskelligt fra maskine til maskine.
![[Pasted image 20250409000148.png]]
Det skulle gerne give os **monitor mode enabled**.
![[Pasted image 20250409000248.png]]
Nu kan vi starte en trådløs optagelse af den trådløse trafik som er tilstede omkring optagepunktet
```bash
sudo airodump-ng [interface]
```
Det skulle gerne give noget som ser sådan her ud:
![[Pasted image 20250409000610.png]]
>[!faq]- Spørgsmål til gruppen - Interaction
> - Hvilken "hotkey" skal bruges for at:
> - Select active areas by cycling through these display options: AP+STA; AP+STA+ACK; AP only; STA only
> - Mark the selected AP or cycle through different colors if the selected AP is already marked
> - Pause display redrawing/ Resume redrawing
> HINT: https://www.aircrack-ng.org/doku.php?id=airodump-ng
>
Vi kan se ved en live optagelse at optagelsen skifter rundt mellem de forskellige kanaler, så vi vil unægtelig gå glip af noget trafik. Derfor kan vi i første omgang forsøge at afgøre på hvilken kanal vores target sender og modtager data på. I dette tilfælde er det CH: 6 afslut igangværende optagelse med `q`
Vi kan nu starte en ny optagelse, men denne gang kun ved at lytte på kanal 6
```bash
sudo airodump-ng -c 6 wlan1
```
Vi kan også udvælge endnu mere direkte ved at anvende `--bssid`
```bash
sudo airodump-ng --bssid ac:15:a2:dc:a6:20 -c 6 wlan1
```
Så afventer vi at en client (sta) vil tilkoble sig access point og hermed igangsætte en autentifikation. Vi vil se det som WPA handshake
![[Pasted image 20250409002350.png]]
For at vi kan lave brute force skal vi gemme data og det gør vi ved `-w`
Så når jeg har en optagelse kan jeg foretage en analyse og brute force ved at anvende aircrack-ng:
```bash
sudo aircrack-ng -w probable-v2-wpa-top4800.txt -b ac:15:a2:dc:a6:20 handshake_test_A620-01.cap
```
`-w` password liste som skal afprøves
`-b` bssid på ap
Er password på listen skulle den give følgende output
![[Pasted image 20250409003147.png]]