How to find MSSQL server using mssql_ping

บทนำ (Overview)

โดยปกติแล้วเมื่อติดตั้ง “MSSQL” แล้วนั้น ตัวโปรแกรมจะเปิด “Port” หมายเลข “1433” หรืออาจจะเป็นหมายเลขอื่นก็ได้ (ขึ้นอยู่กับผู้ดูแลระบบเปลี่ยนแปลงแก้ไข) ซึ่งเราสามารถค้นหาหมายเลข “Port” ดังกล่าวได้โดยใช้วิธีการ “Scan Port” ที่เรียกว่า “UDP foot-printing”  โดยติดต่อไปที่ (UDP Port 1343) ซึ่งนอกจากสะดวกในการค้นหา “SQLServer” จากจำนวนเครื่องในเครือข่ายจำนวนมากแล้วยังสามารถบอกถึง “Version” ของ “MSSQL” ด้วย

ขั้นตอน (Steps)

  1.  เริ่มต้นจากการเข้าใช้งานโปรแกรม “Metasploit”
  2. และใช้คำสั่งค้นหาของปลั๊กอิน “MSSQL ping” ใน “msfconsole”
    msf > search mssql
    [!] Database not connected or cache not built, using slow search
    Matching Modules
    ================
       Name                                                      Disclosure Date  Rank       Description
       ----                                                      ---------------  ----       -----------
       auxiliary/admin/mssql/mssql_enum                                           normal     Microsoft SQL Server Configuration Enumerator
       auxiliary/admin/mssql/mssql_enum_domain_accounts                           normal     Microsoft SQL Server SUSER_SNAME Windows Domain Account Enumeration
       auxiliary/admin/mssql/mssql_enum_domain_accounts_sqli                      normal     Microsoft SQL Server SQLi SUSER_SNAME Windows Domain Account Enumeration
       auxiliary/admin/mssql/mssql_enum_sql_logins                                normal     Microsoft SQL Server SUSER_SNAME SQL Logins Enumeration
       auxiliary/admin/mssql/mssql_escalate_dbowner                               normal     Microsoft SQL Server Escalate Db_Owner
       auxiliary/admin/mssql/mssql_escalate_dbowner_sqli                          normal     Microsoft SQL Server SQLi Escalate Db_Owner
       auxiliary/admin/mssql/mssql_escalate_execute_as                            normal     Microsoft SQL Server Escalate EXECUTE AS
       auxiliary/admin/mssql/mssql_escalate_execute_as_sqli                       normal     Microsoft SQL Server SQLi Escalate Execute AS
       auxiliary/admin/mssql/mssql_exec                                           normal     Microsoft SQL Server xp_cmdshell Command Execution
       auxiliary/admin/mssql/mssql_findandsampledata                              normal     Microsoft SQL Server Find and Sample Data
       auxiliary/admin/mssql/mssql_idf                                            normal     Microsoft SQL Server Interesting Data Finder
       auxiliary/admin/mssql/mssql_ntlm_stealer                                   normal     Microsoft SQL Server NTLM Stealer
       auxiliary/admin/mssql/mssql_ntlm_stealer_sqli                              normal     Microsoft SQL Server SQLi NTLM Stealer
       auxiliary/admin/mssql/mssql_sql                                            normal     Microsoft SQL Server Generic Query
       auxiliary/admin/mssql/mssql_sql_file                                       normal     Microsoft SQL Server Generic Query from File
       auxiliary/analyze/jtr_mssql_fast                                           normal     John the Ripper MS SQL Password Cracker (Fast Mode)
       auxiliary/scanner/mssql/mssql_hashdump                                     normal     MSSQL Password Hashdump
       auxiliary/scanner/mssql/mssql_login                                        normal     MSSQL Login Utility
       auxiliary/scanner/mssql/mssql_ping                                         normal     MSSQL Ping Utility
       auxiliary/scanner/mssql/mssql_schemadump                                   normal     MSSQL Schema Dump
       auxiliary/server/capture/mssql                                             normal     Authentication Capture: MSSQL
       exploit/windows/iis/msadc                                 1998-07-17       excellent  MS99-025 Microsoft IIS MDAC msadcs.dll RDS Arbitrary Remote Command Execution
       exploit/windows/mssql/lyris_listmanager_weak_pass         2005-12-08       excellent  Lyris ListManager MSDE Weak sa Password
       exploit/windows/mssql/ms02_039_slammer                    2002-07-24       good       MS02-039 Microsoft SQL Server Resolution Overflow
       exploit/windows/mssql/ms02_056_hello                      2002-08-05       good       MS02-056 Microsoft SQL Server Hello Overflow
       exploit/windows/mssql/ms09_004_sp_replwritetovarbin       2008-12-09       good       MS09-004 Microsoft SQL Server sp_replwritetovarbin Memory Corruption
       exploit/windows/mssql/ms09_004_sp_replwritetovarbin_sqli  2008-12-09       excellent  MS09-004 Microsoft SQL Server sp_replwritetovarbin Memory Corruption via SQL Injection
       exploit/windows/mssql/mssql_linkcrawler                   2000-01-01       great      Microsoft SQL Server Database Link Crawling Command Execution
       exploit/windows/mssql/mssql_payload                       2000-05-30       excellent  Microsoft SQL Server Payload Execution
       exploit/windows/mssql/mssql_payload_sqli                  2000-05-30       excellent  Microsoft SQL Server Payload Execution via SQL Injection
       post/windows/manage/mssql_local_auth_bypass                                normal     Windows Manage Local Microsoft SQL Server Authorization Bypass
    
  3. จากนั้นเรียกใช้คำสั่ง “use auxiliary/scanner/mssql/mssql_ping” เพื่อโหลด “Scanner Module” เข้ามาใช้งาน
    msf > use auxiliary/scanner/mssql/mssql_ping
    msf auxiliary(mssql_ping) > 
    
  4. ตรวจสอบ “Options” การทำงานของ “Module” จะเห็นว่าต้องการพาราเตอร์ของช่วง “IP” ปลายทางที่ต้องการ “Scan”
    msf auxiliary(mssql_ping) > show options
    Module options (auxiliary/scanner/mssql/mssql_ping):
    
       Name                 Current Setting  Required  Description
       ----                 ---------------  --------  -----------
       PASSWORD                              no        The password for the specified username
       RHOSTS               192.168.0.31     yes       The target address range or CIDR identifier
       THREADS              1                yes       The number of concurrent threads
       USERNAME                              no        The username to authenticate as
       USE_WINDOWS_AUTHENT  false            yes       Use windows authentification (requires DOMAIN option set)
    
  5. ทำการตั้งค่า RHOSTS โดยใช้คำสั่ง Set ดังนี้
    msf auxiliary(mssql_ping) > set RHOSTS 192.168.0.0/24
    RHOSTS => 192.168.0.0/24
    msf auxiliary(mssql_ping) > set USERNAME ""
    USERNAME => 
    msf auxiliary(mssql_ping) > show options
    Module options (auxiliary/scanner/mssql/mssql_ping):
       Name                 Current Setting  Required  Description
       ----                 ---------------  --------  -----------
       PASSWORD                              no        The password for the specified username
       RHOSTS               192.168.0.0/24   yes       The target address range or CIDR identifier
       THREADS              1                yes       The number of concurrent threads
       USERNAME                              no        The username to authenticate as
       USE_WINDOWS_AUTHENT  false            yes       Use windows authentification (requires DOMAIN option set)
    
  6. ใช้คำสั่ง “run” จะทำการ “Scan” ไปยังเครื่องต่างๆ ภายในเครือข่ายที่กำหนด จนพบเครื่องเป้าหมาย และมี port ที่กำหนดไว้ สำหรับ “MSSQL Server”

    mssqlping
    ผลการใช้ mssql_ping

สรุปผลการทดสอบ (Conclusion)

จากผลการทดสอบพบว่าเลข “Default” ของ “port” ที่ถูกใช้ในการค้นหา “Database server” จะมีส่วนช่วยให้การรวบรวมข้อมูลก่อนการโจมตี “SQLServer” ให้มีความสะดวกรวดเร็วมากขึ้น เพราะฉะนั้นประเด็นสำคัญเมื่อติดตั้ง “MSSQL” เสร็จสิ้นแล้วควรมีการเปลี่ยนเลขที่ “Port” เพื่อให้ยากต่อการค้นหาด้วย

opensqlbrowser
การเปิดปิดบริการ SQL SERVER BROWSER

นอกจากนี้ถ้าไม่ได้ใช้งานส่วนของ “UDP 1434” สามารถปิดได้จาก “server” ดังนี้ พิมพ์ services.msc > จากนั้นเลือก “Sql server browser” แล้วเลือก “Disable”

ใส่ความเห็น