Avgöra vilken databas-typ på en remote-server

Trädvy Permalänk
Medlem
Registrerad
Jul 2005

Avgöra vilken databas-typ på en remote-server

Hej!

Jag undrar ifall det finns något sätt att avgöra vilken databas-typ som en remote-server använder?

Dvs, ta reda på om servern använder PostgreSQL, MySQL eller annan sorts databas.

Trädvy Permalänk
Medlem
Plats
Hedesunda
Registrerad
Dec 2005

Man frågar ägaren av databasen man har tillåtelse att ansluta till. All annan verksamhet kan nog anses vara intrångsförsök och är en straffbar handling, iaf i sverige. För rent hypotetiska frågor finns det andra bättre lämpade forum.

Trädvy Permalänk
Medlem
Registrerad
Jul 2005
Skrivet av hasenfrasen:

Man frågar ägaren av databasen man har tillåtelse att ansluta till. All annan verksamhet kan nog anses vara intrångsförsök och är en straffbar handling, iaf i sverige. För rent hypotetiska frågor finns det andra bättre lämpade forum.

ja du, nu gick du lite för långt i dina slutsatser
Det är jag som är ägaren av databasen och den ligger på min VM i virtualbox, så jag vet redan att den använder MySQL.
Och jag går en Linux-kurs i pen-test. Men ja, min fråga kvarstår.

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Okt 2001

Well, du kan ju alltid titta vilken port det är, är det en standardport kan man "anta" att det är den tjänsten som brukar använda porten.

Vill man vara lite mer nogrann kan du alltid köra telnet eller curl emot porten, mysql/mariadb ger dig ett bra svar vid anslutning:

Microsoft Telnet> open 10.2.5.100 3306
5.5.5-10.0.32-MariaDB-0+deb8u1║K$n"[&I|!?áX#CeV_[)XceTmysql_native_password

gonace@admin:~$ curl 10.2.5.100:3306
5.5.5-10.0.32-MariaDB-0+deb8u1▒\'K&xLTC▒▒!?▒/_tKWSy(Zm6bmysql_native_password!▒▒#08S01Got packets out of order

Och by the way, MariaDB alla dagar många linux-distar ersätter MySQL med MariaDB, Debian bytte denna när de släppte Debian 9 (Stretch). Skaparna av MySQL sålde MySQL och startade därefter MariaDB, bygger på samma grund. Och MySQL klienten klarar av att ansluta till en MariaDB.

Trädvy Permalänk
Medlem
Registrerad
Jul 2005
Skrivet av GonAce:

Well, du kan ju alltid titta vilken port det är, är det en standardport kan man "anta" att det är den tjänsten som brukar använda porten.

Vill man vara lite mer nogrann kan du alltid köra telnet eller curl emot porten, mysql/mariadb ger dig ett bra svar vid anslutning:

Microsoft Telnet> open 10.2.5.100 3306
5.5.5-10.0.32-MariaDB-0+deb8u1║K$n"[&I|!?áX#CeV_[)XceTmysql_native_password

gonace@admin:~$ curl 10.2.5.100:3306
5.5.5-10.0.32-MariaDB-0+deb8u1▒\'K&xLTC▒▒!?▒/_tKWSy(Zm6bmysql_native_password!▒▒#08S01Got packets out of order

Och by the way, MariaDB alla dagar många linux-distar ersätter MySQL med MariaDB, Debian bytte denna när de släppte Debian 9 (Stretch). Skaparna av MySQL sålde MySQL och startade därefter MariaDB, bygger på samma grund. Och MySQL klienten klarar av att ansluta till en MariaDB.

Kan jag sätta upp någon säkerhets-fix som skyddar mot detta ?

Jag ska ta en titt på MariaDB som du säger

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Okt 2001

@Lexdale: Jag vet mig inget sätt att undvika att det svaret skickas, men du kan alltid styra vilka ip-adresser som får ansluta till en t.ex. MySQL/MariaDB. Kan göras på mång sätt, genom en brandvägg längre ned i nätverksstacken eller så gör du via ett lättare alternativ och installerar iptables på maskinen.

iptables är en regel baserad brandvägg, så sätt upp en regel att ip-adress x.x.x.x får ansluta till maskinen ifråga och genom porten 3306 (MySQL/MariaDB)

Trädvy Permalänk
Medlem
Registrerad
Jul 2005
Skrivet av GonAce:

@Lexdale: Jag vet mig inget sätt att undvika att det svaret skickas, men du kan alltid styra vilka ip-adresser som får ansluta till en t.ex. MySQL/MariaDB. Kan göras på mång sätt, genom en brandvägg längre ned i nätverksstacken eller så gör du via ett lättare alternativ och installerar iptables på maskinen.

iptables är en regel baserad brandvägg, så sätt upp en regel att ip-adress x.x.x.x får ansluta till maskinen ifråga och genom porten 3306 (MySQL/MariaDB)

Smart tack!

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Okt 2001

@Lexdale: Lycka till!

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Mar 2008
Skrivet av Lexdale:

Kan jag sätta upp någon säkerhets-fix som skyddar mot detta ?

Det rimligaste är att inte tillåta anslutningsförsök ö.h.t från källor du inte kontrollerar. En databas har ju aldrig(?) någon rimlig orsak till att vara helt publik.

Du kan också tunnla det via SSH, så bara de som redan har access via SSH också når databasen.

*edit*
Jag trodde jag tryckt F5. Jag trodde fel.

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Okt 2001

@Kamouflage: Absolut, det bästa är att inte låta det vara möjligt att ens nå databasen/servern utifrån utan att man antingen måste ha en VPN (t.ex. Site-to-Site) eller att man måste gå via en gateway eller ssh tunnel.

I mitt yrke ser jag många som går bot på detta, ha publika ip-adresser direkt på en vital databas-serer och sedan bli förvånade varför databaserna droppats under natten Hej ip-adresser ifrån Ryssland, Kina osv

Trädvy Permalänk
Medlem
Registrerad
Jul 2005
Skrivet av Kamouflage:

Det rimligaste är att inte tillåta anslutningsförsök ö.h.t från källor du inte kontrollerar. En databas har ju aldrig(?) någon rimlig orsak till att vara helt publik.

Du kan också tunnla det via SSH, så bara de som redan har access via SSH också når databasen.

*edit*
Jag trodde jag tryckt F5. Jag trodde fel.

Smart, också ansluta via SSH med public-private key då

EDIT: provade köra curl 192.168.1.194:3306 nu samt telnet > open 192.168.1.194 3306

men jag får bara connection refused, och jag har ingen brandvägg på överhuvudtaget på någon av mina VM's.

Varför fungerar det inte för?

det fungerar dock om jag utför detta på min VM där jag har själva databasen på, så
curl localhost:3306

Men det fungerar inte att utföra detta från en annan VM.

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

@Lexdale: Antagligen är även servern konfigurerad för att endast lyssna på localhost. Kolla om någon av dina konfigurationsfiler säger något om bind-address (grep -r bind-address /etc/mysql, /etc/mysql/mysql.conf.d/mysqld.cnf i Debian). Du kan även se värdet i din lokala klient via SHOW VARIABLES LIKE "bind_address";.

https://dev.mysql.com/doc/refman/5.7/en/server-options.html#o...

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2001

@Lexdale: Per default lyssnar MySQL enbart på requests mot localhost, går att ändra i configen.

#1: Xeon E5450 @ 3,6GHz | GTX 460 | ASUS P5B Deluxe WIFI | 8GB DDR2 | Samsung 850 EVO | Antec Sonata III | CM 620M
Jobb: R7 1700 @ 3,85GHz | GTX 1060 | ASUS Prime B350-plus | Corsair 16GB Hynix @ 2933 | Carbide 270R | EVGA GQ 650
Filserver: Synology DS1812+ | 4 + 1 x 3TB Seagate Barracuda :( RAID 1+0 | 4GB DDR3 SODIMM
Vardagsrum: Onkyo TX-NR646 | ASUS EB1021 + OpenElec | Sony PS3 Slim | Epson TW3200 | minhembio.com