Skip to content

Was bedeutet: WARNING apt does not have a stable CLI interface. Use with caution in scripts?

Beim Ausführen von Skripten auf einer Linux Konsole, die apt install beinhalten, taucht folgende Meldung auf: 

WARNING : apt does not have a stable CLI interface. Use with caution in scripts.

Doch warum wird eine Warnung angezeigt? Die Lösung ist relativ simpel.

Vor Jahren hatte ich mal eine Übersicht von apt vs. apt-get veröffentlicht. Ich habe sie euch unten noch einmal eingebunden.
Im Artikel ist zu lesen, dass apt unter anderem einen grafischen Fortschrittsbalken ausgibt.

Genau das ist einer der Gründe, warum das Kommandozeilentool bei der Verwendung in Scripten ein WARNING meldet. Denn diese Fortschritts-Ausgabe kann von Scripten fehlerhaft interpretiert werden und ist im Prinzip nur für Endnutzer gemacht, aber nicht wirklich für Skripte. Darum sollte hier eher auf apt-get zurückgegriffen werden.

Gleiches gilt übrigens auch für apt show programm-name. Hier sollte besser apt-cache show programm-name verwendet werden.

apt vs. apt-get
apt Kommando apt-get Kommando Funktion
apt install apt-get install Pakete installieren
apt remove apt-get remove Pakete deinstallieren
apt list --upgradable -- Anstehende Updates anzeigen
apt list dpkg list Pakete auflisten
apt purge apt-get purge Pakete und Konfiguration entfernen
apt update apt-get update Repository aktualisieren
apt upgrade apt-get upgrade Anstehende Pakete aktualisieren
apt full-upgrade apt-get dist-upgrade Anstehende Pakete aktualisieren und deinstallieren
apt autoremove apt-get autoremove Nicht benötigte Pakete deinstallieren
apt search apt-cache search Pakete suchen
apt show apt-cache show Paketdetails anzeigen
apt edit-sources -- sources.list editieren

Kali Linux mit Desktop unter Windows über WSL2 installieren

WSL2, besser bekannt als Windows Subsystem Linux erlaubt es verschiedene Linux Distributionen unter Windows zu installieren. Normalerweise werden diese Installationen über die Kommandozeile bedient. Seit einiger Zeit unterstützt Kali Linux Win-KeX, was es erlaubt auf dem System wie auf einem Desktop zu arbeiten.
Win-Kex tut dies, indem es einen VNCServer mit der Xfce-Desktop-Umgebung innerhalb der Kali Linux WSL-Instanz startet. Danach startet ein TigerVNC-Windows-Client und übergibt automatisch die Befehle zur Verbindung mit dem VNC-Server.
Soweit so schön, bei der Installation gibt es dennoch einige Fallstricke.

Installation WSL2

Zunächst wird eine WSL2 Installation unter Windows benötigt.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
wsl --set-default-version 2

Installation und Update von Kali Linux via WSL

wsl –-install -d kali-linux

Nach der Vergabe des Benutzernamens und eines Passworts sollte das System stehen.

Nun tauchen allerdings die ersten Probleme auf. Denn eine apt update zeigt zunächst einen Keyring Fehler an, dieser kann einfach nachinstalliert werden.

wget --no-check-certificate -O kali-archive-keyring_2022.1_all.deb https://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_2022.1_all.deb

dpkg -i  kali-archive-keyring_2022.1_all.deb

sudo apt update

Beim kommenden Upgrade Vorgang (sudo apt upgrade) treten die nächsten Probleme auf.

Setting up libc6:amd64  ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
sleep: cannot read realtime clock: Invalid argument
dpkg: error processing package libc6:amd64 (--configure):
 installed libc6:amd64 package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 libc6:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Dieses Problem führt dazu, dass der Upgrade-Vorgang abbricht und ein sudo mit dem zuvor eingerichteten User ab sofort scheitert.

Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts

Die Lösung für dieses Problem ist ein manuelles Installieren von libcrypt1.

apt -y download libcrypt1
dpkg-deb -x libcrypt1_1%3a4.4.28-2_amd64.deb .
cp -av lib/x86_64-linux-gnu/* /lib/x86_64-linux-gnu/
apt -y --fix-broken install
apt upgrade

Nun sollte das System aktuell sein und stabil laufen. Im letzten Schritt wird jetzt Win-Kex installiert.

kali

Win-Kex installieren

Dieser Schritt ist denkbar einfach.

sudo apt install -y kali-win-kex

Jetzt kann Win-Kex gestartet werden, achtet darauf, dass es mit sudo Rechten gestartet wird.

sudo kex --win

#Session wiederaufnehmen

sudo kex --win --start-client

Die wichtigste Taste dürfte F8 sein. Damit kann das Kontextmenü nach dem Start geladen werden, um zum Beispiel zwischen Vollbild und Fenstermodus zu wechseln.
Sollte es zu Verbindungsproblemen beim Start und Verbinden des VNC Servers kommen, kontrolliert eure Firewall Einstellungen.

Seit Kali 2022.2 wird Kin-Kex unterstützt, welches das Ausführen von Anwendungen mit sudo Rechten erlaubt.

vnc

Fazit


Es ist möglich, Kali unter Windows mit WSL2 zu installieren. Der Weg dahin ist aber weiterhin etwas steinig und wird Windows Nutzern sicher nicht leicht von der Hand gehen. Da bietet sich wohl weiterhin ein VirtualBox Image an, denn damit ist die Installation um einiges flüssiger.

 

Wie lösche ich Festplatten sicher und vollständig?

Festplatten richtig löschen ist wichtig, das ist nicht erst seit gestern bekannt. In den Medien tauchen immer wieder Fälle auf, bei denen Daten auf alten Festplatten gefunden werden.

Früher hatte ich für so einen "finalen" Löschvorgang oft DBAN verwendet. Das Wipe-Tool ist aber in die Jahre gekommen und hat hin und wieder Probleme beim Booten und erkennen von Festplatten.

Glücklicherweise gibt es inzwischen weitere Lösungen, um Daten auf SATA Festplatten vollständig zu löschen bzw. random zu überschreiben.

ABAN

Auf DBAN Darik's Boot and Nuke folgte ABAN. Anthony DeRobertis Boot & Nuke basiert allerdings auf dem neueren Debian 11 (Bullseye), funktioniert aber genauso wie das altbekannte DBAN.

ABAN-boot

Installation

ISO herunterladen, auf einen USB-Stick schreiben, booten und löschen.

Um Daten auf einen USB-Stick zu schreiben, bietet sich Ventoy an, welches bei Bedarf viele Extra-Funktionen besitzt.

Alternativ bietet sich Unetbootin oder Rufus an. Balea Etcher gehört hier nicht mehr zu meiner ersten Wahl.

Die einfachste Variante ist sicher dd über die Kommandozeile:

sudo dd if=aban.iso of=/dev/sdx status=progress 

bzw.

sudo dd if=shredos.img of=/dev/sdx  status=progress


Download


ShredOS

Ebenfalls Open-Source und ein Tool, um Festplatten sicher vor der Entsorgung zu löschen, ist ShredOS. Der Disk-Wiper basiert auf nwipe, was wiederum ein Fork von dwipe ist, welches in DBAN zum Einsatz kam. ShredOS unterstützt sowohl 32bit als auch 64bit Prozessoren. Der Eraser lässt sich via PXE booten und unterstützt einen Headless Mode, welcher sich via telnet ansprechen lässt.

nwipe

Beim Start bootet ShredOS automatisch nwipe im ersten virtuellen Terminal (Alt+F1). Weitere Tools wie hdparm, smartmontools oder hexeditor befinden sich auf dem zweiten virtuellen Terminal (Alt+F2)

Die Installation erfolgt über den gleichen Weg wie bereits oben erwähnt.

Solltet ihr das Projekt und die Entwickler dahinter unterstützen wollen, könnt ihr das gerne tun.

Download


Wie lösche ich SSDs?

SSDs basieren auf einer anderen Technologie als herkömmliche ATA Festplatten. Hier empfiehlt es sich, das Laufwerk zu verschlüsseln oder mit den Hersteller Tools zu wipen. Ein Überschreiben mit Zufallsdaten ist keine sichere Variante!

SSDs mit Hersteller-Tools sicher löschen

Nahezu jeder Hersteller bietet eigenen Software zum Verwalten von SSDs an, meist ist dort eine Funktion zum sicheren Löschen der Daten enthalten.

Für Samsung ist das die Magician Software und für Intel das Solidigm Storage Tool. Da Intels NAND-SSD-Geschäft  von SK hynix übernommen wurde, steht die Intel® SSD Toolbox nicht mehr zur Verfügung.

SanDisk hat ebenfalls ein SDD Dashboard Tool, welches wipen unterstützt. Gleiches gilt für Corsair mit seiner SSD Toolbox.

Weitere Tools wären Crucial Storage Executive oder Kingston SSD Manager.

 

Fazit

Letztendlich ist die physische Zerstörung natürlich die beste Variante, das sollte jedem bewusst sein. Dennoch bieten Tools wie ShredOS oder ABAN eine gute Möglichkeit Daten sicher zu löschen, ohne den Akkuschrauber verwenden zu müssen.

Viel Spaß auf dem Wertstoffhof

Bequem Screenshots mit Flameshot erstellen

Vermutlich werden auch im Jahr 2022 Screenshots via Word Dokument versendet. Bis so ein bebildertes Word Dokument versendet werden kann, müssen diese allerdings erst einmal erstellt werden. Jahrelang war hier Greenshot  (im Windows Bereich) die erste Wahl. Leider lässt die neue Version 1.3 des beliebten Tools weiter auf sich warten. Das letzte Release stammt aus dem Jahr 2017 und genau in dieser Zeit wurde eine neue Screenshot-Tool-Flamme entzündet.

flameshot

Flameshot

Flameshot nennt sich die Open-Source-Software, beheimatet in der Linux Welt und für Mac und Windows verfügbar.

Die aufgeräumte und anpassbare Oberfläche bietet alle notwendigen Optionen für einen perfekten Screenshot, eingebettet in einer interaktiven Steuerelementleiste am Bildrand.

So lässt sich der ausgewählte Bildausschnitt beliebig anpassen oder verschieben. Die integrierten Zeichenwerkzeuge wie Bleistift, Linie, Rechteck, Kreis, Markierer, Text, Weichzeichner oder Aufzählung lassen sich dank Rückgängig/Wiederholen Button praktisch einsetzen. Ein Sofortupload zu Imgur ist möglich, seit der neuen Version auch mit eigener Client ID oder das Abspeichern auf der Festplatte, wobei für die meisten die Zwischenablage ausreichen dürfte.

in-app-screenshot-editing

Flameshot ist vor kurzem in Version 12.1 erschienen und hat als neues Feature eine einfache Layerfunktion erhalten. Das heißt, es ist ab sofort möglich einzelne Elemente im Screenshot nach vorne/hinten zu legen. Zusätzlich wurde eine Lupenfunktion (wie sie aus Greenshot bekannt ist) eingebaut. So können Ecken auf Pixelebene optimiert angefahren werden.

Die Lupenfunktion muss in den Einstellungen aktiviert werden. Hier kann neben den Farbanpassungen für die Oberfläche auch die Namensgebung der angefertigten Schnappschüsse im Detail angepasst werden.

Viele der Funktionen lassen sich natürlich via Tastaturkürzel aufrufen. Alternativ kann auch das CLI genutzt werden, selbstverständlich.

 

Fazit

Flameshot scheint momentan nicht nur eine der besten Bildschirmaufnahme-Software zu sein, sondern auch die schönste. Unter Linux setze ich sie schon eine Weile ein, inzwischen hat sie auch ihren Weg auf Windows Systeme gefunden. Hier hakt allerdings noch manchmal die Autostartfunktion, aber das ist verkraftbar.

Download

Nuclei - schneller Schwachstellen Scanner mit praktischen Vorlagen

In der Vergangenheit wurde auf ITrig öfters Security Scanner erwähnt, z.B. OpenVAS oder Trivy. Diese Security Scanner sind natürlich nicht die einzigen im Internet. Ein weiterer Kandidat auf Go Basis ist Nuclei. Der vorlagenbasierte Schwachstellen-Scanner ist inzwischen Teil des Kali-Universums (2022.1) und bekommt daher heute einen gesonderten Artikel spendiert.

Nuclei

Das Open-Source-Tool scannt verschiedene Protokolle (TCP, SSH, DNS, HTTP/S, SSL, Websocket, Whois usw.) auf Schwachstellen und mehr. Dazu werden YAML-Vorlagen verwendet. Diese Templates werden zum größten Teil von der Community beigesteuert, können aber auch selbst für die eigenen Bedürfnisse geschrieben werden. So kann für die vor wenigen Tagen veröffentlichte Confluence Lücke CVE-2022-26134 bereits ein Scan Template gefunden werden.

 

nuclei-flow

Neben Nuclei bietet das ProjectDiscovery noch weitere gute Programme für das Security-Umfeld. Beispielsweise subfinder, ein Subdomain Discovery Tool.

Bevor tiefer in Nuclei eingetaucht werden kann, muss der Scanner installiert werden.

Installation Nuclei unter Debian/Ubuntu

Da das Tool auf der Programmiersprache Go basiert, muss diese zunächst installiert werden.

curl -OL https://go.dev/dl/go1.18.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xvf go1.18.3.linux-amd64.tar.gz
sudo nano ~/.profile
    export PATH=$PATH:/usr/local/go/bin
source ~/.profile

Alternativ

sudo apt install golang-1.16

Nun kann die neueste Nuclei Version gebaut werden.

git clone https://github.com/projectdiscovery/nuclei.git
cd nuclei/v2/cmd/nuclei
go build
sudo mv nuclei /usr/local/bin/
nuclei -version

Nach der Installation sollte die Datenbank aktualisiert werden, damit Templates zur Verfügung stehen.

nuclei -ut
?  nuclei git:(master) nuclei -ut

                     __     _
   ____  __  _______/ /__  (_)
  / __ \/ / / / ___/ / _ \/ /
 / / / / /_/ / /__/ /  __/ /
/_/ /_/\__,_/\___/_/\___/_/   2.7.2

        projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[INF] nuclei-templates are not installed, installing...
[INF] Successfully downloaded nuclei-templates (v9.0.6) to /home/user/nuclei-templates. GoodLuck!

ls -l ~/nuclei-templates/

Nachdem die Template-Datenbank aktualisiert wurde, können einzelne Vorlagen direkt in den Scanbefehl eingebunden werden.

Im Folgenden möchte ich einen kleinen Teil der möglichen Befehle mithilfe von Templates aufzeigen:

Einfacher API Scan

nuclei -u $URL -t ~/nuclei-templates/exposures/apis/

Wordpress Scan

nuclei -u $URL -t ~/nuclei-templates/vulnerabilities/wordpress/

CVE Scan

nuclei -u $URL ~/nuclei-templates/cves/2022/CVE-2022-XXXX.yaml

Token Spray

nuclei -u $URL ~/nuclei-templates/token-spray/ -var token=XXX_TOKEN_XXX

Listen

Der Scanner kann mit Listen umgehen, was beim Scannen mehrerer URLs durchaus helfen kann.

nuclei -u $URL -list http_urls.txt

Filter

Nuclei unterstützt Filter, wie tags, severity, author

nuclei -u $URL -tags cve

Workflows

Nuclei kann Workflows abbilden, d.h. es könnten z.B. Templates in einem Workflow gebündelt werden. Hier ein Beispiel:

id: workflow-example
info:
  name: Test Workflow Template
  author: pdteam

workflows:
  - template: technologies/tech-detect.yaml
    matchers:
      - name: wordpress
        subtemplates:
          - template: cves/CVE-2019-6715.yaml
          - template: cves/CVE-2019-9978.yaml

Auf solche Workflows können wiederum auch Filter angesetzt werden

nuclei -u $URL -w workflows/workflow-example.yaml -severity critical,high -list http_urls.txt

Rate Limits

Um die Anzahl der gleichzeitigen Zugriffe zu regulieren, können Rate Limits gesetzt werden.

  • rate-limit     Control the total number of request to send per seconds
  • bulk-size     Control the number of hosts to process in parallel for each template
  • c     Control the number of templates to process in parallel

Custom Header

Es kann notwendig sein, einen eigenen Header zu setzen. Gerade bei BugBounty Programmen oder um euch als Pentester erkennen zu geben. Dazu kann die "/home/user/.config/nuclei/config.yaml" angepasst werden:

    # Headers to include with each request.
header:
  - 'X-BugBounty-Hacker: h1/geekboy'
  - 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) / nuclei'

Wer dies ad hoc via CLI erledigen möchte, der muss nur "Header" in der Befehlskette verwenden.

nuclei -header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) / nuclei' -list urls.txt -tags cves

Hier endet auch schon der Schnelleinstieg in Nuclei. Ich hoffe, ihr habt einen schnellen Einblick bekommen, was mit dem Scanner möglich ist und warum die vorhandenen Vorlagen und Einstellmöglichkeiten Nuclei momentan zu einem sehr beliebten Tool machen.

Weitere Tipps findet ihr direkt auf Github oder beim Template Guide

Viel Erfolg beim Testen der eigenen Webseite, Apps, Sockets.