- Makeraktiviteter
- Systemdesign
- Sikkerhed og Privatliv
- Programmering
- Projekt Dronecontroller
- Logbog (Markdown)
- Formidling af programmering
- Webtek
- Databaser
- Micro:Maqueen
- Security and hacking
- Killer Drone
- NGGYU
-
Vi fik til opgave at fremstille forskellige geometriske figurer, og printe dem på skolens 3D-printere. Herunder ses en guide de forskellige trin i processen, som er at 3D-printe. Læs hele dokumentationen her
-
-
I Fusion 360 kan man konstruere forskellige 3D-modeller og derefter eksportere dem til blandt andet ".stl"- filer som kan bruges i Cura til at printe ens figurer. Programmet viser også mål på alle figurerne, hvilket gør det let og overskuligt at lave sine figurer i de rigtige størrelser.
Funktionerne som kan bruges er mange, men her er nogle af dem:-
Oprette forskellige figurer (Box, cylinder, kugle, torus, rør, mm.)
-
Ekstruder og sammentræk ud fra markeringer på figur
-
Afrunde kanter
-
Udhule på forskellig vis
-
Sammensætte figurer
-
Standard formattering (Flyt, skalér, rotér, osv)
Som sagt er der mange flere funktioner i Fusion 360, men der var nogle af dem.
-
-
Screenshot fra Autodesk Fusion 360:
-
-
-
Ultimaker Cura kan tage 3D-modeller og omdanne dem til ".gcode"-filer, som er kommandoer som en 3D-printer kan forstå. Det fungerer ret enkelt, ved at give lange lister med specifikke kommandoer til printeren om, hvor den skal placere sig over tid, samt en lang række indstillinger. Hele processen som man skal foretage sig i Cura kan beskrives som:
- Vælg printer
- Indsæt fil (.stl, .3mf, .amf, .obj, mm.)
- Vælg indstillinger
- Slice
- Eksporter og print
-
Her ses et billede med indstillingerne som kan ændres i Cura:
-
-
- Man kan bruge følgende formel for at udregne afvigelsen på diverse størrelser på et 3D-print:
-
Vi fik til opgave at analyse Tello-dronen som et IT-system, ved at benytte nye tillærte analysemetoder. Analysen skulle senere bruges som base til selv at konstruere en dronecontroller. Disse metoder, og deres sammenhæng med tellodronen ses i følgende afsnit. Generelt fandt vi ud af at systemet bestod af to grundlæggende bestanddele. Selve dronen og telefonen der styrer den. Læs hele dokumentationen her
-
- Herunder ses et boksdiagram som inddeler systemet i de to hovedbestanddele (dronen og telefonen), og angiver hvilke dele der hører til de to.
-
- Dronen består primært af to forskellige dele, som den kan bruge til at vide hvor
dens flyvning skal justeres:
- IMU (inertial measurement unit):
- Dronens IMU består af fire forskellige sensorer. Et barometer, et termometer, et gyroskop og et accelerometer. Her er hvad de hver især kan registrere:
- Barometer - Højde (Lufttryk).
- Termometer - Bruges ved kalibrering, for at kende lufttemperatur.
- Gyroskop - Dronens rotation på alle akser.
- Accelerometer - Ændringer i hastighed.
- Dronens IMU består af fire forskellige sensorer. Et barometer, et termometer, et gyroskop og et accelerometer. Her er hvad de hver især kan registrere:
- Nedadseende kamera:
- Dronens nedadseende kamera bruges til at registrere både afstand (højde) og fart. Dette kan teknisk set også registreres ud fra barometeret, gyroskopet og accelerometeret, men kameraet fungerer som en slags dobbeltsikring, for at værdierne er korrekte. Derudover kan kameraet også være mere præcis end alternativerne. Kameraet har også en laser, som bruges til at måle højden.
- IMU (inertial measurement unit):
- Dronen består primært af to forskellige dele, som den kan bruge til at vide hvor
dens flyvning skal justeres:
-
- TELLO-dronen bruger wifi til at kommunikere med telefonen. Dette er tydeligt, da dronen selv opretter et hotspot, som man skal tilslutte sin telefon til. Protokollen der bliver brugt hedder UDP.
- Sådan virker wifi:
- Wifi virker ved at sende data gennem elektromagnestisk stråling, lidt ligesom radio, tv-signal og gps fungerer. Dog er den primære forskel på disse systemer, at wifi er lavet til at kunne sende meget mere data ad gangen, hvilket dog betyder at den data ikke kan udsendes særligt langt. Dette opnås ved at hæve frekvensen på signalet, hvilket gør at der er flere svingninger i lyset per sekund. (Derfor ses det for eksempel at 5 GHz internet er hurtigere end 2,4 GHz internet). Signalet sender den binære kode ude som systemet har sammensat, og denne binære kode kan ses enten ved små ændringer i frekvensen, som der bliver gjort ved fm-radio, eller ændringer i styrken af signalet, som ved am-radio. Dog er wifi-signaler er en blanding af disse, for at kunne sende op til 8 bits hver gang der kommer en ny lysbølge, i stedet for kun at sende 1 bit.
-
- Herunder ses en tabel som inddeler systemet i 3-lagsarkitekturen:
| Dronen | Telefonen | |
|---|---|---|
| Præsentationslaget | - Blinkende LED-indikator - Sluk-/tænd-knap |
- Live-kamera UI: 1. Højde og Horisontal hastighed 2. Settings 3. Forprogrammerede kommandoer vælges af bruger (Nævnes i ”1.”) 4. Styring af dronen (joysticks) 5. Flere funktioner (Optag video, Tag billede) |
| Logiklaget | - Behandling af input fra telefonen - Stabilitet fra sensorer - Send info til telefon - Information om interne systemer behandles, for at kunne sendes til telefon |
- Klargør data fra dronen som skal vises til brugeren - Layout af UI - Udsending og fortolkning af brugerinput |
| Datalaget | - Nedadseende kamera og laser - Input fra telefon IMU: 1. Accelerometer 2. Termometer 3. Barometer 4. Gyrometer - Information om interne systemer (Batteri, osv.) - Kollisions-detektion fra propellerne |
- Settings Data fra dronen: 1. Fejlkoder 2. Højde 3. Batteri 4. Horisontal hastighed 5. Kamera-feed |
-
IT-sikkerhed:
- Beskyttelse af information (Kreditkortinfo, kodeord, persondata generelt, osv)
- God IT-sikkerhed findes når det er svært at få uautoriseret adgang til.
- IT-sikkerhed er både vigtigt på personligt og på større plan (Firmaer, statssystemer, osv.)
-
Fortrolighed, integritet og tilgængelighed:
-
Fortrolighed:
- Fortrolighed dækker over at kun de personer og systemer som bør have adgang til systemet har adgang. Altså at ingen kan få uautoriseret agang.
-
Integritet:
- Integritet dækker over at brugerere og systemer får de rigtige data, når de anmoder om dem. (F.eks. at man får vist de rigtige beløber i sin bank)
-
Tilgængelighed:
- Alle den som er autoriserede til at benytte systemet bør have nem adgang til det. Ellers mister systemet relevans.
-
CIA-modellen:
-
-
Privacy:
- Stadig under debat
- Bør man være anonym på nettet?
- Hvor mange personoplysninger må sider lagre om dets brugere?
- Må staten få adgang til brugeres privatliv?
-
Brugere og hackere:
- Et IT-system er ofte ikke bedre end brugerne på det.
- Hvis brugere ikke beskytter sig selv ordentligt, er deres kontoer nemmere at få fat i. (Beskytter deres kodeord, vælger gode kodeord, osv.)
- Usikkerheder i IT-systemer:
- Menneskelige fejl kan frigive følsomme oplysninger.
- Password leaks. (Sker oftere end man skulle tro)
- Hvorfor bliver systemer hacket?
- Penge (Kreditkortoplysninger mm.)
- Politiske årsager (For at finde snavs om kandidater mm.)
- Berømmelse
- Forskning og udvikling af antivirus-software (Legitimt arbejde for at finde huller i IT-sikkerheden)
- Et IT-system er ofte ikke bedre end brugerne på det.
- Lastpass eller lignende:
- Der findes masser af services som sikkert kan opbevare ens kodeord, hvilket gør at man kan have uendeligt mange autogenerede kodeord, som er ekstremt svære at knække.
- Når man har forskellige kodeord, er det i værste fald kun én sides kodeord som bliver leaked, hvis at en side skulle komme til at leake brugernes kodeord. Det betyder at man ikke mister nært så meget ved et eventuelt leak.
- Tjek sikkerheden på dit kodeord:
- Man kan finde hjemmesider som beregner (i cirkatal) hvor længe det ville tage en normal computer at cracke dit kodeord. Benytter man de langetogenrede kodeord som benytter sig af en masse forskellige typer tegn, når man hurtigt op på enormt lange crackingstider. Dette betyder at det er sværere for hackere at skaffe ens kodeord.
- haveibeenpwned:
- På haveibeenpwned kan man se om ens mailadresse har fået kodeord leaked. Dette kan give en idé om man bør ændre sit kodeord.
- HTTP:
- HTTP står for Hypertext Transfer Protocol, og er en protokol til at sende informationer mellem bruger og hjemmeside. HTTP kræver intet certifikat for at kunne bruges.
- HTTPS:
- HTTPS står for Hypertext Transfer Protocol Secure, og fungerer lidt ligesom HTTP, bortset fra at det er sikkert. Det kræver et CAA-certifikat for en hjemmeside at benytte sig af https, et certifikat som gives ud af en CA. Dette betyder at ens forbindelse er sikret, og at man kan være mere tryg på HTTPS, end på HTTP.
- VPN:
- En VPN (Virtual Private Network) er en service, hvor en bruger kobler sig på en server et sted i verden, og browser igennem den server. Det gør at ens internetudbyder ikke længere kan se hvilke sider man besøger, udover generelt at være mere sikkert fra ondsindede personer på nettet.
- Vi så filmen "Snowden", som filmatiserer hvordan John Snowden afslørede hemmelig masseovervågning af befolkninger verden over, som blev foretaget af blandt andet NSA og CIA. Filmen sætter tanker i gang om privacy, og har også været med til at lave en del af den lovgivning som blandt andet EU er i gang med at indføre, for at sikre borgernes ret til privatliv.
-
Informatikbog - Personlige data:
- Hvor meget har det offentlige registreret om dig via dit CPR-nummer? Find oplysningerne via borger.dk.
- Adresse, flytninger og byggesager
- Informationer om indkomst og skat
- Personoplysninger generelt:
- Tilknyttet A-kasse
- Navn
- CPR-nummer
- Adresse
- Statsborgerskab
- Sunhedsdata:
- Se journal fra sygehus
- Se dit medicinkort
- Se laboratoriesvar
- Gå til organdonation
- Opret/ret livstestamente
- Giv fuldmagt til pårørende (e-journal, laboratoriesvar, min log og aftaler)
- Se konsultationer hos læge, tandlæge, fysioterapeut m.fl.
- Se oplysninger i Landspatientregistret
- Se dine vaccinationer
- Uddannelse (Forkerte oplysninger om ungdomskort)
- Offentlige ydelser, gæld, mm.
- Hvor meget har det offentlige registreret om dig via dit CPR-nummer? Find oplysningerne via borger.dk.
-
Hvor mange private virksomheder har registreret oplysninger om dig? Du kan ikke finde et samlet oversigt, så du må prøve at tælle dig frem. Du kan gå ud fra, at du er registreret alle steder, hvor du er fast kunde – forudsat du har opgivet navn og adresse. Mange steder bliver du også registreret, første gang du opgiver navn, adresse eller e-mail. Prøv at lave en optælling.
- MANGE! Jeg kan hurtigt finde frem til mindst 20, men jeg kan forestille mig at tallet er meget højere.
-
Eksempler på persondata kan være race, økonomi, navn, etnisk oprindelse, religion, adresse, fødselsdato, biometriske data, gæld, seksuelle forhold og arbejdsområde. Fordel ovenstående oplysninger i kategorierne almindelige personoplysninger og følsomme personoplysninger.
-
Datatype Mit bud Rigtigt Svar race Følsom Følsom økonomi Følsom Almindelig navn Almindelig Almindelig etnisk oprindelse Følsom Følsom religion Følsom Følsom adresse Almindelig Almindelig fødselsdato Almindelig Almindelig biometriske data Følsom Følsom gæld Følsom Almindelig seksuelle forhold Følsom Følsom arbejdsområde Følsom Almindelig
-
-
Python er et relativt simpelt programmeringssprog, som ikke er begrænset til én platform. Det er specielt på den måde, at det er lavet til at være "readable", hvilket betyder at der er ændringer på syntaksen i forhold til mange andre programmeringssprog. I python betyder indents noget for hvad bestemte dele af koden tilhører, i stedet for at man skal bruge "{}". Meget specielt er også at man ikke skal deklarere datatyper på sine variabler når man laver dem. En anden fordel ved python er også, at det kører meget hurtigt, og at man ikke skal konstruere sit program i python for at kunne køre det, ligesom i mange andre sprog.
I Informatik har vi brugt python til at kode vores dronecontroller, ved også at benytte tellopy-biblioteket.
- En arduino er en lille computer, som man kan bruge til alverdens ting. I Informatik har vi brugt arduinoer til at konstruere vores dronecontroller. Arduinoen kører maskinkode, som konstrueres ud fra c++ sammen med Arduino IDE. I c++ koder man arduinoen, til at frigive den data man gerne vil have. Arduinoen har forskellige porte som kan registrere input, og det er vigtigt at koden registrer de rigtige data. Til sidst i koden til arduinoen udskriver arduinoen data i serial, som derefter kan registreres i python.
-
Iteration 0 i Projekt Dronecontroller gik primært ud på at planlægge projektets gang. Læs dokumentationen til iteration 0 her.
-
- Vi lavede en mindmap over forskellige måder hvorpå man kan styre en drone, for at få en idé om hvilke muligheder vi havde til at lave en controller. Vores brainstorm kan ses herunder:
-
-
Efter brainstormen kom vi op med tre konkrete idéer til koncepter til vores dronecontroller. De tre idéer kan ses herunder: (Den udvalgte står i fed)
Konkrete idéer til controllers:
- Accelerometer + Gyroskop føres rundt for at bestemme dronens bevægelse
- Klassisk Arkade (joysticks og knapper)
- Lyde som bestemmer dronens bevægelse (Forskellige frekvenser = forskellige retninger)
-
-
- Vi har valgt at lave en arcade-stil controller til vores drone.
- Selve controlleren består af joysticks og knapper, som er tilknyttet en arduino.
- Computeren bliver benyttet både til at oversætte kommandoer fra arduino, og til at vise live video fra dronen.
- Hele pakken pakkes ind på en måde som skaber samme setup som i en klassisk arkade.
-
-
Vi lavede en simpel faseplan for projektet, som viste sig at være utroligt værdifuld for overblik i projektet. Vi havde pludselig en simpel måde at se hvilke dele af projektet vi var i gang med, hvilke vi var færdige med, og hvilke der stadig manglede. Det giver overblik over både processen og ens forløb ift. tiden man har tilbage til at blive færdige. Faseplanen kan ses herunder:
Tjekliste - Faser til vores controller-byggeri:
- Controller bygges på arduino
- Input til PC fra arduino
- Oversættelse fra c++ til python
- Output fra pc - kommandoer til drone
- Drone skal kunne sende video til computer, som skal fremvise det.
- Æstetik - Custom Arcade Joysticks, Classic Arcade
Extra stuff:
- Fejlfinding
- Ekstra funktionalitet
-
-
- Flowchartet herunder viser vores første idéer for et flowchart over hele systemet:
- Ved udgangen af iteration 1 var projektet ved at tage form. Læs hele dokumentationen til iteration 1 her. Følgende punkter i fase planen var påbegyndt eller færdiggjort ved afleveringen af iteration 1:
- 1. Controller bygges på arduino
- 2. Input til PC fra arduino
- 3. Oversættelse fra c++ til python
- 6. Custom Arcade Joysticks
- Gestaltlovene og Jakob Nielsens 10 heuristikker om UI-design er principper (love), som hjælper designeren af et user interface med at gøre det mere brugervenligt. Det gør de gennem psykologiske 'tricks', som gør en programmer mere overskuelige og mere tilegnede til den menneskelige hjerne. Her er hovedpointerne i de 10 heuristiskker og gestaltlovene:
- Gestaltlovene:
- #1: Nærhed (proximity). Figurer der er placeret tæt på hinanden ses som en gruppe.
- #2: Lighed (similarity invarians). Ens figurer opfattes som en gruppe.
- #3: Lukkethed (closure). Delelementer af et billede stykkes sammen til at skabe helheden.
- #4: Kontinuitet og symmetri. Optræder to figurer symmetriske omkring en linje, ses de som en gruppe.
- #5: Prægnans (Prägnanz) – figur/baggrund. Hjernen leder den efter mønstre, kontinuitet, ensartethed.
- #6: Erfaring (Past experience, “Common Fate”). Dækker bl.a. over brugen af ikoner
- #7: Forbundethed – Forbindes figurer med en streg, opfattes de umiddelbart som sammenhørende (forbundenhed er et design tips – ikke en gestaltlov).
- Jakob Nielsens 10 heuristikker
- #1: Visning af systemstatus
- #2: Match mellem system og den rigtige verden
- #3: Brugerkontrol og frihed
- #4: Overensstemmelse og standarder
- #5: Fejlprævention
- #6: Genkendelse hellere end hukommelse
- #7: Fleksibilitet og effektiv brug
- #8: Æstetisk og minimalistisk design
- #9: Hjælp brugere med at genkende, diagnosere og kommer videre fra fejl.
- #10: Hjælp og dokumentation
- For at kunne optimere vores endelige design, er det vigtigt at man finder svage punkter ved ens design, som skal forbedres. Det vælger vi at adressere ved at lave en brugerundersøgelse, hvor vi får nye brugeres første indtryk af vores dronecontroller. Læs dokumentationen til design af brugerundersøgelse her
- Vigtige ting som vi nåede før projektet blev sat på pause i evig tid:
- Utestet kode til kommunikation mellem drone og PC
- Video fra drone kan fremvises på PC
- Den fysiske controller-/arkadeprototype blev fremstillet
- Projekt afsluttet grundet Corona
- Projekt afsluttet grundet Corona
-
Til skrivning af logbogen benytter vi github's readme-dokument, som benytter sig af Markdown-formatet (.md). Markdown er en simplificeret version af HTML, som gør det nemmere at lave simple webbaserede dokumenter. Ud over den syntaks som er lavet specielt til Markdown, for at gøre det simpelt, kan man stadig benytte sig af normal HTML, hvilket gør at det ikke er begrænset, selvom det er simplificeret.
- Som en del af et spil vi lavede i programmering, lavede vi i Informatik en målgruppeanalyse. Her undersøgte vi demografi, geografi, psykografi, sociografi og problemrelaterede detaljer. Vi opstillede en fiktionel person (persona), og opsatte karaktertræk indenfor de kategorier. Personaen kan ses herunder:
- Projekt som beskriver hvordan der kan reklameres for raspberry pi i det fremstillede spil. Herunder blev der kigget på følgende ting:
- Eksplicitte og implicitte reklamer
- Produktet vi vil reklamere for (Raspberry Pi)
- AIDA-modellen
- Projekt hvor det beskrives hvordan man kan lave dataindsamling fra brugere, som kan bruges fordelagtigt ift. reklamer.
Linux-terminal på windows (SSH aka secure shell nøglegenerering (og installation af WSL på windows))
-
Begreber som du skal huske:
- WSL (Windows Subsystem for Linux) - Linux-terminalen vi har downloadet
- SSH (Sercure Shell) - Sikker terminal
- RSA (Rivest, Shamir, Adleman) - Kryptosystem baseret på co-prime primtal. Din RSA-key er baseret på dette. Det er bare en sikker måde man kan give adgang til brugere med rigtige nøgler.
-
Min public key er: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDFdv5ERQCZT/h8C9GAE/bLrmE0k8VnEgmwdYOcRdJnYGoE5sM1BKnDaagw/OcknfCtHy9owDV1T8Ecuv6COwUpgA7FvWJt3NiI3ssZF6NPy0Xcp08YugjlcQvr08/umKVBe8/1FxeS9tIW6ap2KU2Elf7uTUqpL/SVYh7Eff7dpF7iaGdF42kvA07uNFDBTY05cLdfndrNRcha+8RFhnJYgkrXi942wpNOwnEC7/V5WgqKhLMzh4dBgO9d6iiZcZ9en5FVsb2G2ts4MB5EShXX28n7iHS5TS68VLuYBxoaP0q0s/E62ksg9WFWUYlLzOYXE4ht1lBRws3hSi5DGSNdc5BtsvOCKJ6WRHgd3HqhU4b6C8z5YLsyBAogKPBNr3E6BUcYD1mn2rDxU+QS5HauMEy0uSfVuB90UKvju0vlSInuWDfa/xbkGsiCYHFrB1cGvWyxxi4vsc7dT6d7UizvzMrfrEfkH1cmpCfmsFrUkS24wX2N02IU0WojL641tX2HJayAcoNbr6CeLk2FuP2RZPsXSlQqx2iIUMV/XxDQBbr90r27SWLt4yGPcLDFXB8ngkMkNVxdAzXerstgMx34Eby+zR+4fAaIlLx3n5YlWZ+vee4nVo+fF35CsECae4V0fWmlSGYOrG77EhaT1IdVFLvGIVWYe/80NQ8mCN8ckQ== froemosen@LAPTOP-605L94J6"
- Curl kan indsamle data fra forskellige webadresser. Det gør ved følende format:
- curl (evt. ekstra kommandoer -v) www.domain.com/fil/fil.type
- Man kan bruge "-v"-kommandoen til at få ekstra super meget data fra ens request. Derfra kan man se formatet på hvordan man laver server request. Det kan bruges i for eksempel arduino ellers raspberry pi, til at få data fra hjemmeside.
- Bruges til at skrive kommando ind i fil. Følgende ting man bruges:
- command parameter > filnavn.filtype (Skriver ind i fil, erstatter½)
- command parameter >> filnavn.filtype (Skriver ind i fil, uden at overskrive)
-
Kommando Parametre Beskrivelse cd .ssh ingen parametre Går ind i .ssh-stien ls -a (viser alt) Viser filer i mappen pwd ingen parametre Viser fil-sti curl url -v (viser flere info) Henter data fra website echo ingen parametre Siger det man skriver tilbage som output. (Brug fx til test af bash) cat file.format ingen parametre Viser data fra fil i terminal. Man kan godt printe indhold fra flere filer ad gangen dig url ingen parametre Skaffer lidt data fra hjemmeside (IP-adresse fx.) chmod permissions filename Ingen parametre Binære tal viser permissions for skaber, gruppe og alle. Derfor giver 777 alle permissions til alle, mens 000 giver ingen permissions til alle. Tallene udregnes med tre bit, i rækkefølgen Read, Write, Execute. Derfor giver alle permissions til en bestemt bruger 7. Der er tre brugergrupper, så 777 er alle permissions til alle. Makes sense. nmap url ingen parametre Bruges til at se åbne porte på server certbot idk bed om certification
- OSI-modellen viser kommunikationsstruktur for computere. Man kan også tale om et 8. lag, som ville være brugeren/fejllaget. Her sker der ofte ID10T-fejl. :)
- nmap kan tjekke hvilke porte der er åbne på computere og servere. Man skriver "nmap serverID"
- Husk "sudo apt install nmap" (ubuntu)
- Eller "sudo yum install nmap (alma)
- Bruges til at installere http og https
- Bruges til at få godkendelse/certifikat til https. Certbot sender request til EFF.org
- Kommunikation mellem HTML-server og database. Henter data fra databasen, og viser det til brugeren.
- Plugin som bruges til at adminstrere sin database. Taler sammen med PHP.
- Til Java-servers bruges jre.
- Til Bedrock-servers bruges pocketmine.
- I forløbet lærte vi om basal computer-logik og logic gates. Dette endte ud med et projekt, hvor vi selv skulle fremstille en 4-bit eller 8-bit adder. Vi tog i høj grad udgangspunkt i Sebastian Lague's "Digital Logic Sim", hvor man selv kan fremstille og lege rundt med logic gates.
- Se afleveringen her
-
E/R-diagrammer bruges til at vise relationer med entiteter, relationer og attributer i en database/et I/T-system.
-
I forløbet har vi selv fremstillet et E/R-diagram over relationerne på skolen. Herunder ses mit E/R-diagram:

-
Kommando Parametre Beskrivelse scp source login:destination ingen parametre Kopier filer ind på server med Secure CoPy
- Opsætningen af hele vores server, kan betegnes som en LNMP-stack, hvilket er baseret på de plugins vi har brugt. De forskellige plugins består styresystemet vi kører serveren på, vores netværksopsætning som laver html, vores database og til sidst sammensætningen/oversætteren mellem database og html. Samlet set har vi importeret en .sql-fil i ind i vores servere, som derefter, gennem php, er blevet omdannet til data på et website.
- LNMP står for Linux, Nginx, MariaDB, Php.
-
SCP bruges til at overføre filer fra en lokal computer til ens linux-server. Vi har gennem programmet WINSCP fået en mere overskuelig måde at gøre det på, hvor serverens filer og ens lokale filer vises ved siden af hinanden, for at give overblik og simplificere overførslen af filer.
Herunder ses et screenshot af WINSCP:
- I emnet har vi fulgt en masse guides, for at kunne opsætte en database og vise informationen fra den database i html. Herunder er en liste med relevante links, som vi har brugt i undervisningen:
- Micro:Maqueen er en Micro:bit-baseret robot, som kan kodes i Micro-Python. I Informatik har vi arbejdet med at lære robotten at kende, og prøve at udnytte alle dens sensorer og funktioner, eller ihvertfald så mange af dem som muligt. Jeg har brugt programmet Mu til at skrive koden til robotten, da det kan opsættes specifikt til Micro:Maqueens funktioner.
-
Hvilke sensorer har platformen?
-
Sidder de på main boardet, eller på robotplatformen?
-
Hvad måler de?
-
Hvad kan de bruges til?
Micro:Bit:
Micro:Maqueen:
Hvordan kan den programmeres? - Micro:Maqueen programmeres gennem Micro:bitten, og det kan gøres på flere forskellige måder. Micro:bitten kører compilet maskinkode, så man kan også kode den i flere forskellige sprog. Herunder ses en lille liste over populære måder at kode Micro:bitten på: -
**Kontrolsystem**
***Plan for kontrolsystemet***
- Oversigt over systemet
- Trello
***Kommunikation og dataoverførsel med Bluetooth***
* https://docs.google.com/document/d/1tS5juLM1npcMeDmNPnSNTH3EHV2yRtU7JKbMlbJlkQM/edit?usp=sharing
* https://docs.google.com/document/d/1FBN1gm0OWgExDoLETiVRaFHidFhz0snd7uWguGwcdcU/edit?usp=sharing
Det begynder at kede mig at være på tryhackme, så jeg begynder på kvalifikation til cybermesterskaber.
- Hjemmesiden:

- Intet at finde med inspect element - Prøver at skaffe adgang gennem terminal
- Curl af hjemmeside:

- Port 80 - HTTP - Vi finder directories med dirb ud fra url

- Vi undersøger robots.txt

- Vi undersøger /backup:

- Indgang med ssh findes i .txt-fil:

- Username skal findes - Det er ikke root. Der gættes på jacob, som virker:

- Der findes en root-mappe, men vi har ikke adgang med bruger jacob. Dog har vi adgang til SUDO-actions efter at indtaste kodeord igen. Vi bruger "sudo ls root" og finder ud af at der er en fil som hedder flag.txt. Derefter bruges "sudo cat root/flag.txt". Derefter er flaget fundet:

- Nu er opgaven donezo

- Det vides at flaget skal starte med DDC - den krypterede kode starter med ØØÆ. Ud fra det findes mønster med alfabet, og kode findes:

- Den fundne kode er gyldig:

- Følgende kode til kryptering er brugt:

- Da vi har en original og en krypteret version af greeting, kan key findes. Den kan derefter bruges til at dekryptere flaget. Der er fejl et sted i filerne, så koden er faktisk "DDC{d0nt_r3use_y0ur_otps!}":

- Task all done and outta here:

- Man får et billede:

- Koden står i metadata, som kan læses ved at billede omdannes fra .png til .txt:

- Task complete:

- Efter gennemsøgning af data, er det tydeligt at fortrolig.pdf har den data vi skal bruge. Den hentes på følgende måde fra wireshark:

- Følgende står i pdf-filen:

- Task complete!

- Hvad står VM for?...

- What tool do we use to interact with the operating system in order to start our VPN connection?

- What service do we use to form our VPN connection?

- What is the abreviated name for a tunnel interface in the output of your VPN boot-up sequence output?

- What tool do we use to test our connection to the target?

- What is the name of the tool we use to scan the target's ports?

- What username ultimately works with the remote management login prompt for the target?
- "23/tcp open telnet"

- What username ultimately works with the remote management login prompt for the target?

- Submit root flag
- Der logges ind i systemet gennem netcat, og da der ikke er sikkerhed på root, findes flag.txt med ls -a:


- TASK COMPLETE! MEOW HAS BEEN PWNED

- What does the 3-letter acronym FTP stand for?
- File Transfer Protocol (FTP)

- What communication model does FTP use, architecturally speaking?
- client-server model

- What is the name of one popular GUI FTP program?

- Which port is the FTP service active on usually?
- 21 TCP



- What acronym is used for the secure version of FTP?
- SFTP

- From your scans, what version is FTP running on the target?
- vsftpd 3.0.3


- From your scans, what OS type is running on the target?
- Unix


- Submit root flag
- Først skal vi installere ftp:

- Nu bruger vi hul i FTP til at finde data som anonymous account, som ikke er pswd-protected:

- flag.txt hentes ned til egen linux
- 
- Flag.txt kan ses med ls -a og læses med cat:

- SOLUTION HAS BEEN FOUND!!!


- What does the 3-letter acronym SMB stand for?
- SMB (Server Message Block)

- What port does SMB use to operate at?
- port 445 TCP

- What network communication model does SMB use, architecturally speaking?
- Client-Server Model

- What is the service name for port 445 that came up in our nmap scan?
- microsoft-ds


- What is the tool we use to connect to SMB shares from our Linux distribution?
- smbclient

- What is the
flagorswitchwe can use with the SMB tool tolistthe contents of the share? 
- What is the name of the share we are able to access in the end?
- workshares

- What is the command we can use within the SMB shell to download the files we find?
- Vigtige Kommandoer:

- get

- Flag findes:

- ALL DONE

- What does the acronym SQL stand for?
- Structured Query Language

- What is one of the most common type of SQL vulnerabilities?
- SQL injection

- What does PII stand for?
- Personally Identifiable Information

- What does the OWASP Top 10 list name the classification for this vulnerability?
- A03:2021-Injection

- What service and version are running on port 80 of the target?
- Apache httpd 2.4.38 ((Debian))

- What is the standard port used for the HTTPS protocol?
- 443

- What is one luck-based method of exploiting login pages?
- brute-forcing

- What is a folder called in web-application terminology?
- directory

- What response code is given for "Not Found" errors?
- 404

- What switch do we use with Gobuster to specify we're looking to discover directories, and not subdomains?
- dir

- What symbol do we use to comment out parts of the code?

- Submit root flag
- Username = "admin'#"; Password = "'":

- Flag er fundet:

- Boom shakalaka pwned!

- I denne sektion vil nogle af de brugte metoder/begreber opsummeres. Der er allerede noter til en del begreber længere oppe, og de kan ofte søges frem i writeups, hvis man ikke vil gennemgå det hele. I denne sektion vil begreberne "Enumeration", "Foothold" og "Escalation" gennemgås.
- "Enumeration is defined as the process of extracting user names, machine names, network resources, shares and services from a system. In this phase, the attacker creates an active connection to the system and performs directed queries to gain more information about the target. The gathered information is used to identify the vulnerabilities or weak points in system security and tries to exploit in the System gaining phase." - From here
- **Eksempler på værktøjer vi har brugt til Enumeration
-
nmap
- Kan finde åbne porte på en server. Se brug i writeups.
-
massscan
- Kan scanne efter IP-adresser på hele internettet. Se dokumentation her
-
shodan
- Kraftfuldt værktøj, som kan alt det som nmap og massscan kan. Bruges gennem en internetbrowser her.
-
dirb (eller gobuster)
- Bruges til at finde directories på http(s) hjemmesider. Se brug i writeups.
-
wifite
- Bruges til at bryde ind i trådløse netværk.
-
-
At skabe foothold, betyder at man får adgang til et system, dog uden at logge ind på det. Det betyder at man har vedvaret adgang, ved enten at finde en back door, eller ved at installere en på systemet. Et eksempel på et foothold i vores tilfælde, kan for eksempel være når man har fundet password til ssh-adgang i Jacobs hus, men ikke har tilgået systemet endnu. Man har evnen til at udnytte systemet (et foothold), men gør ikke noget endnu.
-
"Establish Foothold: The attacker ensures he maintains continued control over a recently compromised system. This occurs immediately following the initial compromise. Typically, the attacker establishes a foothold by installing a persistent backdoor or downloading additional utilities or malware to the victim system." Herfra
-
Værktøjer og begreber:
- CVE (Common Vulnerabilities and Exposures)
- exploit-db (Værktøj til at finde CVEs)
- Remote Access Trojan (RAT) (Bagdør i system til remote access)
-
Når man skaffer sig adgang til et system, gennem det foothold man har skabt, eskalerer man sine privelegier. Et eksempel på en escalation i vores tilfælde, kan for eksempel være når man har logget ind via den fundne ssh-adgang i Jacobs hus. Herefter har man fuld adgang til systemet, med sudo-access, og kan gøre hvad man vil.
-
"Escalate Privileges: The attacker obtains greater access to systems and data. Attackers often escalate their privileges through password hash dumping (followed by password cracking or pass-the-hash attacks); keystroke/credential logging, obtaining PKI certificates, leveraging privileges held by an application, or by exploiting a vulnerable piece of software." Herfra
-
Det kan også være et udtryk for når man går fra at have en type adgang til et system, til at have root priveleges. For eksemepel når man har adgang gennem ssh med en bruger uden specielle privelegier, men man så finder en måde at få sudo-access. Det kan for eksempel gøres gennem GTFObins
- Koden til projektet kan ses herunder:
- GitHub Repo
- Vi har lavet en drone der gennem to Machine Learning-modeller, kan registrere ansigter i et billede, og derefter afgøre om billedet er et billede af Lac, Mark, Kristian eller et andet ansigt. Dronen vil derefter centrere det ansigt på skærmen, ved at styre op/ned og rundt (throttle og yaw).
- Dronen er styret reaktivt, sådan at den drejer mere når ansigt er længere væk fra centrum, og mindre når ansigtet er tættere på centrum. Det er den efter følgende udregninger, hvor droneX og droneY er midtpunkt for ansigtets boks, og hvor skærmen er 960x720 pixels

- Se video herunder, for at se dronen med to trænede modeller følge efter mit ansigt:

















