Scannen Sie mit ansible / Sudo Null IT News

Dieser Artikel ist eine kostenlose Diskussion darüber, wie Sie Tools aus verschiedenen Bereichen verwenden können, um Routineaufgaben zu automatisieren, einschließlich der Durchführung einzelner Aktionen während des Pentestings. Der Artikel beschreibt den Prozess zum Erstellen eines Ansible-Projekts, das zum Skalieren und Anpassen an andere Aufgaben verwendet werden kann.

Ansible

Eines der beliebtesten Tools zur Automatisierung der Systembereitstellung. Implementierung in der Programmiersprache Python. Gibt DevOPS-Ingenieuren die Möglichkeit, durch Skripterstellung mit der Infrastruktur zu arbeiten. Im Allgemeinen wird dies als IaC (Infrastructure as Code) bezeichnet. Die Skripte für das Tool werden in der Sprache yaml geschrieben. Um das Instrument so gut wie möglich kennenzulernen, gibt es eine große Anzahl von Handbüchern im Netzwerk, aber wie immer ist es besser, mit dem Kennenlernen zu beginnen Dokumentation.

Zum Zeitpunkt des Schreibens dieses Artikels wurde die kostenlose Community Edition verwendet, mit der Sie Ansible von der Konsole aus ausführen und ein bereits ausgeführtes Skript debuggen können. Kostenpflichtige Versionen haben ihre eigene Weboberfläche, mit der Sie die Entwicklung neuer Bereitstellungsszenarien beschleunigen können, aber für die Zwecke dieses Artikels ist sie überflüssig.

Ansible auf dem System installieren. Dazu müssen wir eine Linux-Distribution oder das WSL-Subsystem für Windows verwenden. Die wichtigste Abhängigkeit, die auf dem System installiert werden muss, ist das Python-Pip-Modul und Python selbst. Ansible unterstützt standardmäßig die Installation für alle Versionen, aber es ist besser, die neuesten stabilen Versionen zu verwenden. Öffnen Sie ein Terminal und geben Sie den Befehl ein:

python3 -m pip install –user ansible

Sie müssen dafür keine besonderen Rechte vergeben, alles wird automatisch in die notwendigen Verzeichnisse zerlegt. Das einzige, was korrigiert werden muss, ist der Pfad in der PATH-Variablen, aber pip wird dies sofort im Installationsfenster schreiben. Wenn alles erfolgreich abgeschlossen wurde, dann bei der Eingabe des folgenden Befehls:

ansible –Version

Befehlsergebnis:

Sie können virtuelle Maschinen verwenden, um Ressourcen zu skalieren. Es ist praktisch, dies über Vagrant zu tun, aber Sie müssen die Basisimages separat herunterladen oder selbst erstellen. Zum Zeitpunkt der Erstellung dieses Artikels blockierte das Produkt den Zugriff aus der Russischen Föderation.

Lassen Sie uns nun versuchen, mindestens eine Maschine zu verwalten, die zuvor in einer virtualisierten Umgebung bereitgestellt wurde. Generell können Sie auch Systeme verwalten, die sich auf separaten Rechnern befinden. Das Wichtigste ist, ansible Zugriff auf Ihren privaten Schlüssel zu gewähren.

Ansible verwendet ssh für Linux-Maschinen und WinRM für Windows. Wir werden die Interaktion mit Linux automatisieren. Bereiten Sie einen Schlüssel vor, um auf das System zuzugreifen:

ssh-keygen -t rsa -f id_rsa -C kali

Der Kali-Benutzer wurde nicht zufällig ausgewählt, wir werden Kali Linux automatisieren.

Schlüsselzugang zum System einrichten:

  1. Öffnen Sie die Datei /etc/ssh/sshd_config auf kali

  2. Zeilen auskommentieren:

  3. cat id_rsa.pub >> ~/.ssh/authorized_keys

Testen:

ssh -i ids_rsa kali@ka.li.ip.addr

Ansible-Projekt

Ansible arbeitet mit Systemen durch die Verwendung einer speziellen Datei – Inventory. Es kann im INI-Dateiformat oder im YAML-Format erstellt werden. Wir verwenden das ini-Format. Nennen wir die Testdatei hosts, der Inhalt sieht dann so aus:

kali ansible_host=kali.ip.ad.dr ansible_port=22 ansible_user=kali ansible_ssh_private_key_file=”id_rsa”

Nach Datei:

  • kali – Etikett mit dem Maschinennamen;

  • ansible_host – Hostadresse für die Verwaltung;

  • ansible_port – ssh-Port auf der zu steuernden Maschine;

  • ansible_user – Benutzername, der an die Maschine übergeben werden soll;

  • ansible_ssh_private_key_file – Pfad zu private_key.

Sie können die Verbindung zur Maschine mit dem Befehl testen:

ansible -i hostet alle -m ping

Erfolgreiche Teamarbeit:

Der nächste Schritt besteht darin, zu entscheiden, was mit Ansible Out-of-the-Box getan werden kann.

Die Abfolge von Befehlen in der yaml-Datei, die die Abfolge von Aktionen in Ansible beschreibt, wird als Playbook bezeichnet. Diese Datei heißt normalerweise main.yaml oder site.yaml.

Alle Entwürfe können in der offiziellen Dokumentation studiert werden. Wir werden verwenden Gemeinschaftsinventar und

Lassen Sie uns eine site.yml-Datei erstellen:

— – name: “manche Aktionen automatisieren” hosts: kali roles: – nmap

Die Regel eines guten Projekts ist die Struktur der darin beschriebenen Aufgaben. Um nicht erst Stunden später herauszufinden, was passiert, verwenden wir die Rollenstruktur. Dazu beschreiben wir alle Aktionen für jedes Tool separat. Damit Ansible sie abholen kann, müssen Sie Verzeichnisse und Dateien erstellen: roles->nmap->tasks->main.yaml

In einer solchen Struktur ist es einfacher, neue Befehle einzuführen und nicht benötigte zu deaktivieren.

Inhalt der Main.yaml-Datei:

– name: Drucktest ansible.builtin.debug: msg: “Hallo!”

Um nun die Syntax und Leistung von allem, was wir beschrieben haben, zu überprüfen, führen wir den Befehl aus:

ansible-playbook -i hostet site.yaml –syntax-check

Wenn keine Fehler angezeigt werden, können Sie mit der Testlaufphase fortfahren:

ansible-playbook -i hostet site.yaml -D

Beispielausgabe des Arbeitsentwurfs:

Lassen Sie uns nun eine zu scannende Aufgabe hinzufügen. Fügen Sie dazu die folgenden Zeilen zur Datei main.yaml hinzu:

— – name: Drucktest ansible.builtin.debug: msg: “Hallo!” – name: Einfachen Scan ausführen ansible.builtin.shell: nmap -n {{ip_addresses}} -oA scan tags: syn – name: Vollständigen Scan ausführen ansible.builtin.shell: nmap -n {{ip_addresses}} -oA scan tags :voll

Dieses Mal wurden Codeteile hinzugefügt, die mit der jinja2-Vorlagen-Engine funktionieren. Variablen können auf der Kommandozeile für das Playbook übergeben oder verzeichnisweise in eine Datei geschrieben werden:

group_vars/all.yaml:

IP-Adressen: “192.168.0.0/24”

Es lohnt sich auch, auf den zusätzlichen Tags-Parameter zu achten – er wird verwendet, um einzelne Aufgaben aus der Liste ausführen zu können. Ein einfacher Scan kann beispielsweise so ausgeführt werden:

ansible-playbook -i hostet site.yaml –tags syn -D

Das Ergebnis des Befehls ist im Arbeitsverzeichnis des Benutzers kali zu finden. Nachfolgend finden Sie eine Liste der Verzeichnisse und Dateien, die als Ergebnis des Scanners erstellt wurden. Auf Wunsch können Sie Befehle registrieren, mit deren Hilfe die empfangenen Berichte in einem zentralen Repository abgelegt werden.

Daher können wir über die Automatisierung heterogener Software sprechen, wenn 2-3 oder mehr Maschinen zum Scannen von Aufgaben und zum Sammeln von Daten über Systeme verwendet werden. Im nächsten Artikel werden wir versuchen, das Windows-Betriebssystem zu automatisieren, um Daten in einer Windows-AD-Umgebung zu sammeln. Das Projekt, das für diesen Artikel verwendet wurde, kann gefunden werden hier.

Anstatt zu schließen, möchte ich alle dazu einladen kostenloses Webinar zum Thema: “Relay-Attacken, Tools und Einsatzmöglichkeiten.” Lassen Sie uns darüber sprechen, wie Angriffe auf Authentifizierungsmechanismen in Windows Active Directory funktionieren.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *