Logowanie do zmodyfikowanego serwera PostgreSQL- mMedica

0

Próbuję zalogować się do serwera bazy danych programu mMedica wykorzystując zewnętrzne narzędzia (pgAdmin, psql).
Asseco zmodyfikowało biblioteki Postgre zarówno po stronie klienta jak i po stronie serwera.
Efekt jest taki, że próba zalogowania się dobrym hasłem kończy się błędem autoryzacji.
Zacząłem grzebać.

  1. Podmieniłem bibliotekę klienta psql (libpq.dll) na tą od Asseco- nic nie dało
  2. Odpaliłem debuggera na mMedice i wyłuskałem taki connection string
    "host=localhost port=5432 dbname=template1 user=xx password=801090002038000036079191139155132174163164208130153153220185193091058913"
    spróbowałem użyć tego hasła i niestety też nic to nie dało

Pytania:

  1. Czy komuś udało się połączyć do serwera PostgreSQL mMedici za pomocą zewnętrznego narzędzia?
  2. Czym może być szyfrowane hasło w connection stringu?
  3. Co jeszcze mogę sprawdzić?
0

Ja też próbuję połączyć się z bazą tego programu i niestety jak na razie się to nie udało.

0

Masz dostęp do servera? Czy tylko do klienta?

0

No raczej nie wróżę sukcesu, skoro zmienili protokół to nie połączysz się.

0
yarel napisał(a):

Masz dostęp do servera? Czy tylko do klienta?

Dostęp i do serwera i do klienta.

0

no to co za problem zalogować się bez hasła https://stackoverflow.com/questions/10845998/i-forgot-the-password-i-entered-during-postgres-installation utworzyć własnego usera i nadać mu uprawnienia do bazy?

0

Możesz spróbować sposobu zasugerowanego w linku na stackoverflow i rozwiąze to Twój problem :)

Możliwe, jednak że:
a) cała baza jest zaszyfrowana
b) ruch między klientem a serwerem jest szyfrowany ---> Wireshark prawdę powie, albo będą leciały selecty albo krzaki
c) na kliencie wprowadzone hasło jest zamieniane na hasha, który leci do serwera, biblioteka po stronie serwera łączy się do postgresa za pomocą jakiegoś dedykowanego odwija go do oryginalnego hasha z hasłem zapisanym na serwerze (biblioteka custom na serwerze może łączyć się z wykorzystaniem jakiegoś dedykowanego konta i porównywać te hashe otrzymane z hashami zapisanymi gdzieś w bazie, w ten sposób hasło znane jest tylko klientowi)

Jeśli interesują Cię analiza szyfrowania hasła, to proponuję zobaczyć jak zamieniane są hasła na te password=0102... w connection stringu. Używając jakiegoś fake usera, na wypadek gdyby N nieudanych logowań skutkowało blokowaniem konta.

a) User1: haslo=A -> co leci w connction stringu
b) User1: haslo=A -> co leci w connction stringu (czy to samo haslo za drugim razem daje ten sam connection string, czy może jest coś innego pod uwagę brane )
c) User1: haslo=a -> co leci w connction stringu (czy to samo co dla haslo=A -> case (in)sensitive)
d) User2: haslo=A -> czy leci to samo o u usera1 (w ten sposób będzie wiadomo, czy to hasło jest mapowane w jakis głupi sposób przez prostą funkcję, czy jednak nie)
e) Jeśli a) i d) dają to samo, to budujemy sobie do dalszej analizy mapkę: A..Z -> pass1..passN, a..z -> passX..passY, 0..9 znaki specjalne etc.

Alternatywne pomysły:

  • skopiować pliki data postgres (przy zatrzymanym postgresie) do innej lokalizacji (maszyny, virtualki, tak żeby nie zepsuć bieżącej bazy) i uruchomić "czystego" postgresa w analogicznej wersji co ten użyty w programie, wskazać temu postgresowi katalog data i może podniesie i dalej tak jak abrakadaber sugerował
0

Hej i co udało się coś takiego wykonać ? Myślicie że jeśli baza jest na windows, też uda się taka operacja ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1