Kali Linux in VirtualBox installieren

Kali Linux

[Plus Bonus am Ende]

Manchmal möchte man einfach auf Nummer sicher gehen, wenn man im Netz am Arbeiten ist. Ab und zu ist man darauf angewiesen auf ein anderes Betriebssystem zuzugreifen oder man möchte seine Hauptdaten auf dem Rechner schützen. Die Gründe, warum man nicht möchte, dass ein anderer auf die eigenen Daten zugreifen kann, sind vielseitig. Wer jetzt nicht unbedingt mit einem zweiten Computer arbeiten will, kann hier auf eine virtuelle Lösung zurückgreifen. Und wie das funktionieren kann, möchte ich hier gerne erklären.

Wie der Titel es schon verrät werden mindestens zwei Ressourcen benötigt. Zum einen VirtualBox und zum anderen ein Betriebssystem Deiner Wahl. In meinem Fall Kali Linux (weil ich es sehr gerne mag)

Virtualbox
Klick aufs Bild um dir VirtualBox zu holen
Die passende Kali Version bekommst du hier

Die Installationen

Der erste Schritt besteht darin, sich VirtualBox zu installieren. Viel gibt es zur Installation nicht zu sagen, außer das man sich einmal durch den Wizard klickt.

Auf der Kali Homepage gibt es verschiedene Versionen, die man herunterladen kann. Der Downloadlink aus dem oberen Bild führt aber direkt zu einer speziellen VirtualBox Version. Achtet also darauf, die richtige Version für eure Rechner Architektur auszuwählen.

Kali Linux VBox Version Download
VBox 64bit Version von Kali – Downloads dauern

Sobald der Download beendet ist kann man damit weitermachen, das Abbild in VirtualBox zu importieren.

Datei importieren in VirtualBox

Wählt in VirtualBox -> Importieren (1) und klickt dann auf das Ordnersymbol (2) um die Datei auszuwählen, die importiert werden soll. Anschließend bekommt Ihr eine Zusammenfassung, mit welchen Optionen Kali installiert wird. Hier könnt Ihr die Einstellungen importieren und müsst anschließend kurz warten, bis die Installation durchgeführt wurde.

Fast geschafft

Wenn alles glatt gelaufen ist, sollte Kali Linux 2018.4 (aktuelle Version) nun in der VirtualBox auswählbar sein.

Los gehts

Ihr könnt jetzt Kali starten.

Achtung Fehler!

Sollte die Installation nicht starten und folgender Fehler auftauchen. Müsst Ihr folgendes tun:

  • Ladet euch das VM VirtualBox Extension Pack hier herunter.
  • Oder deaktiviert den USB 2.0 Support unter
  • Ändern -> USB -> USB-Controller aktiveren

Ich empfehle die Installation des Extension Packs

Wenn Ihr Kali gestartet habt, Euch aber nicht einloggen könnt, solltet Ihr mal den Standardnutzernamen
„root“ und das Default Passwort „toor“  ausprobieren.

Herzlich Willkommen bei Kali

Bonus: Tor Browser installieren

Jetzt wo man die Kali Oberfläche vor sich hat, könnte man noch auf die Idee kommen, dass man einen Tor Browser braucht. Da Linux nicht Windows ist, geht die Installation hier etwas anders. Wenn man im Internet ein wenig recherchiert gibt es sehr viele Anleitungen, die zeigen wie man den root user check umgehen kann. Das ist allerdings nicht der richtige Weg um Tor auf Kali zu starten.

TOR Logo
The Onion Router – Oder auch einfach TOR

Warum sollte man den Tor Browser nicht als root starten?

  • Es funktioniert zwar, den root user check zu entfernen. Man öffnet so aber auch Sicherheitslücken, gerade wenn man auf Seiten surfen sollte die eventuell nicht so vertrauenswürdig sein sollten
  • Jedes mal wenn Du den Tor Browser updatest musst du diesen Schritt wiederholen
  • Einen nicht-root User anzulegen, der Anwendungen starten kann selbst wenn man als root angemeldet ist, ist nicht so schwierig.

Wie läuft das jetzt?

Einen Nicht-Root-User anlegen

Um einen neuen User anzulegen verwendet man folgenden Befehl:

adduser --home /home/kali kali

Nun wird man nach einem Passwort für den User gefragt, gefolgt von einigen weiteren Informationen, die man ausfüllen kann, aber nicht muss.

Gar nicht so schwer, eigentlich

Nun kann man sich auf diesem Account einloggen, um zu testen ob alles geklappt hat.

Den torbrowser-launcher installieren

Es gibt verschiedene Möglichkeiten den torbrowser-launcher zu installieren. Da ich persönlich aber auf einem Linux-System immer dem Terminal den Vorzug gebe, benutze ich den normalen apt prozess. Öffnet also ein Terminal und gebt folgendes ein:

apt install torbrowser-launcher

Grundsätzlich nicht so schwer zu realsieren oder?

Den torbrowser-launcher einstellen

Der folgende Schritt ist notwendig, weil der Torbrowser sich nicht einfach so als root starten lässt. Die Gründe waren oben bereits beschrieben. Als Erstes muss sichergestellt werden, dass der angelegte User in der xhosts eingetragen ist. Mit folgendem Befehl wird der User “Kali” eingetragen:

xhost si:localuser:kali

Wenn ihr jetzt immer noch als root-user angemeldet seid, könnt ihr den torbrowser-launcher mit dem Befehl:

sudo -u kali -H torbrowser-launcher

starten.

und damit ist dieser Exkurs auch schon beendet. Wenn Ihr bis hier hin durchgehalten habt. Solltet Ihr jetzt eine Virtuelle Maschine mit Kali Linux am laufen haben auf der ihr mit dem Tor Browser im Internet surfen könnt.

Keine Sorge, alles richtig gemacht

Thats all Folks

Diese Methode zum Starten eines Tor Browsers eignet sich durchaus besser, als den root-user-check zu umgehen. Allerdings sei dir gesagt, zu lange im Internet surfen ist auch nicht gesund. Also öfter mal abschalten.

Wikipedia fühlt sich gleich viel sicherer an

Progressive Web App Entwicklung [Teil 2]

PWA Node.js

In Teil 1 ging es ja vorrangig darum, wieso eine PWA Sinn macht. Im zweiten Teil wird jetzt auf die eigentliche PWA eingegangen. Welche Vorraussetzungen gegeben sein müssen, welche Software man braucht um loszulegen und dann eben auch die erste eigene PWA.

Erste Schritte – Node JS

Insofern noch nicht geschehen, benötigt man zum Entwickeln der PWA Node.Js. Grundsätzlich geht es darum, einen Server zu simulieren um die PWA ausgiebig testen zu können. Da die Entwicklung lokal stattfindet.

Durch einen Klick auf das Node.js Logo kannst du dir den latest build herunterladen.

Node.js

Workspace Setup

Um an dem Projekt arbeiten zu können muss der Package Manager installiert werden. Dazu nutzt man das Terminal oder die Powershell (im Administrationsmodus). In meinem Fall habe ich das Terminal im Atom Editor (bekommst du hier) integriert. Du navigierst in den passenden Ordner deines Projektes und führst den Befehl:

npm install

aus.

Mhm.. und mit welchen Daten arbeiten wir?

Das beigefügte ZIP File beinhaltet das Übungsprojekt aus dem Kurs. Ich habe vorher die Lizenz angeschaut und es handelt sich dabei um die ISC-Lizenz, von daher sollte einer Veröffentlichung auch nichts im Wege stehen.

Wenn du die Daten herunter geladen hast kannst du in dem Editor deiner Wahl den Ordner als Projektordner angeben und mit “npm install” weitermachen.

ZipFile Icon
Lade Dir die Übungsdaten herunter
npm install – wurde bereits erfolgreich ausgeführt (Atom Terminal Eweiterung)

Den Development Server starten

Wenn der Package Manager installiert wurde, besteht der nächste Schritt darin, den Entwicklungsserver zu starten. Der Befehl dazu ist relativ simpel:

npm start
Der Entwicklungsserver wurde gestartet

Die App aufrufen

Um die App aufzurufen öffnet man nun Google Chrome und gibt in der Adresszeile: 127.0.0.1:3000 (alternativ auch localhost:3000) ein. Als nächstes öffnet man die Chrome Developer Tools (F12) und schaltet zunächst auf die mobile Ansicht. Außerdem macht es Sinn den Cache für die Zeit der Entwicklung zu deaktivieren um weitere Funktionen testen zu können.

Google Chrome Developer Tools im Einsatz
Google Chrome Developer Tools

Turn it into a PWA

Alles was man jetzt zu sehen bekommt, ist eine völlig normale Webseite. Weit entfernt von einer PWA. Eine entscheidene Zeile Code fehlt noch in den Demodaten. Um das zu beheben fügt man in der Datei app.js (im js Ordner des Projektes) in Zeile 5 folgenden Code ein:

navigator.serviceWorker.register('/sw.js');

Diese Zeile sorgt dafür, dass die sw.js Datei als Service Worker registriert wird. Nachdem die Datei gespeichert wurde kann man die App erneut auf Funktionalität testen.

In den Developer Tools wird, nachdem ihr die Seite neu geladen habt folgendes angezeigt:

ServiceWorker Anzeige unter Applications
Der Service Worker ist aktiv und wurde geladen

Damit man die Funktionalität des Service Workers testen kann, schaltet man die Seite auf Offline und lädt sie neu.

Wenn jetzt die Inhalte dennoch laden zeigt es, dass die App auch Offline funktioniert. Wer das nicht glauben mag, kann den Service Worker einmal “unregistern” und die Seite neu laden.

Was man dann zu sehen bekommt ist der Offline Modus von Google.

Laufende Saurier im Google Offline Modus
Mein Google Offline Dinosaur Run Highscore liegt bei 4359

Fazit:

Die Integration von Node.js, das Herunterladen der Dateien und das Starten des Development Servers stellen keine größere Herausforderung dar. Dennoch zeigen die Demodaten eine erste Funktionalität der PWA.

Alles in allem freue ich mich schon darauf den nächsten Abschnitt zu beginnen.

Ptrogressive Web App
Zurück zu PWA Entwicklung Teil 1

Progressive Web App Entwicklung [Teil 1]

Ptrogressive Web App

Ich bin ja ein großer Freund von Weiterbildung. Und aus diesem Grund hab ich mich mal in die Welt von Udemy gewagt. Und einen Kurs belegt. Es geht, wie der Titel schon verrät um Progressive Web Apps. Damit alle was davon haben, werde ich meine Erkenntnisse aus den Videos und Lektionen hier gerne kundtun. Ob es was taugt, werden wir wohl erst am Ende der Kurse erfahren

PWA: Abschnitt 1, Lektion 1

Dann mal los – Über den Kurs an sich

Es beginnt damit, das ich erklärt bekomme warum das Entwickeln mit PWA Sinn macht. Das PWA der neueste Shice sind. Und was mich in dem Kurs erwartet. Ausserdem geht es um die Kernkompetenzen einer Progressive Web App

Das Interesse an PWA laut Google
  • Auf dem Homescreen installieren
  • Offline Erreichbarkeit
  • Push Notifications
  • User Standorte
  • Gerätekamera erreichen
  • Hintergrund Synchronisation

Zum Schluss wird noch erklärt was für eine PWA ich in diesem Kurs schreiben werde. Der Kursleiter stellt sich noch einmal vor und ich bin schon ganz heiß darauf los zu legen.

PWA: Abschnitt 1, Lektion 2

Dive into PWAs

In der zweiten Lektion wird die Frage geklärt, was Progressive Web Apps eigentlich sind. Und um dem Ganzen den Zauber etwas zu nehmen, sind PWAs eigentlich nur ein Sammelbegriff für Features die man seiner Webseite hinzufügen kann um sie zu verbessern.

You progressively enhance your existing web pages to feel and work more like native mobile apps.

Maximilian Schwarzmüller – Udemy

Es geht dabei nicht nur um Responsivität. Es geht viel mehr um die Funktionalitäten, die man aus bestimmten Apps bereits kennt. Wie z.B. Offline Modus, Icons auf dem Homescreen oder Datasynchronisierung im Hintergrund.

Die Vorteile der Progressive Web Apps können in drei Kernbereiche aufgeteilt werden.

  • Zuverlässig: Schnelle Ladezeiteun und offline Funktionalität
  • Schnell: User Interaktionen werden schnell “beantwortet”
  • Einnehmend: Der User soll sich öfter mit der PWA auseinandersetzen

PWA: Abschnitt 1, Lektion 3

Mobile Web vs Native Apps

Macht das Entwickeln einer PWA überhaupt Sinn? Lediglich 13% der User nutzen das mobile Web und die restlichen 87% verlassen sich auf die nativen Apps. Die Gründe, warum das so ist liegen aber in den Vorteilen der nativen Apps.

Und wie bereits weiter oben erwähnt greifen PWAs genau an dieser Stelle an und bieten die Funktionalitäten, die eine native App auch bietet.

Welche Nachteile haben native Apps?

Sollte man sich für das Entwickeln einer nativen App entscheiden, muss man berücksichtigen, dass man für zwei verschiedene Anbieter von Apps entwickeln muss: iOS und Android.

80% der User benutzen lediglich 3 Apps auf ihren Geräten und die Chance dass die eigene App dabei sein könnte ist eher schwindend gering. (Facebook, Whatsapp, Google)

PWA vs native Apps vs traditional web pages

Native Apps:
Bei den nativen Apps sind die Möglichkeiten das Gerät zu nutzen schier unendlich. Kamera, Standort, Gyrosensor und vieles mehr. Außerdem ist auch das Betriebssystem des Devices nutzbar. Dafür leidet die Reichweite aus dem Grund, dass im Durchschnitt nur die Top 3 Apps genutzt werden.

Web Apps:
Hier ist es genau gegenteilig. Die Nutzbarkeit von bestimmten Geräte Features ist bei einer traditionellen Web App sehr eingeschränkt. Dafür ist die Reichweite um ein vielfaches höher, denn man muss nur eine URL aufrufen und die Seite ist erreichbar. Installationen aus einem App Store hingegen fallen flach.

PWAs:
Die Progressive Web Apps vereinen jetzt genau diese Vorteile aus den beiden vorher gegangenen Typen. Man hat die Möglichkeit die Gerätefunktionen zu nutzen und man bekommt die hohe Reichweite der traditionellen App, weil man auch bei der PWA nur eine URL öffnen braucht um auf sie zuzugreifen

PWA: Abschnitt 1, Lektion 4

Demo PWA und Aussicht auf die eigene PWA

In der vierten Lektion wird eine Beispielseite genannt. An der man die Vorteile einer Progressive Web App testen kann. Unter https://app.ft.com befindet sich die PWA Version der Financial Times. Wer möchte, kann hier gerne etwas herum experimentieren. Gerade im Bereich “Was passiert wenn die Seite offline ist” kann man wunderbar sehen, dass die Inhalte immer noch lesbar sind.

Bildauschnitt der PWA Version, der Financial Times
PWA Version der Financial Times

Auf die Vorstellung der App die wir gemeinsam bauen, gehe ich erst einmal nicht weiter ein. Da ich nicht zu viel vorgreifen möchte. So viel nur dazu: Es handelt sich in dem Kurs um einen Instagram Clone. Ob ich diesen so nachbaue oder meine eigene Seite direkt zur PWA weiterentwickel weiß ich jetzt noch nicht.

Ein gut gemeinter Rat des Kursleiters:
Für das Entwickeln und testen der App, macht es Sinn Google Chrome zu verwenden, da der Browser besonders gute Developer Tools mit sich bringt. Und das Lighthose Plugin, das speziell zum testen der PWAs geeignet ist.

PWA Node.js
Weiter zu PWA Entwicklung Teil 2