[OSCP]SQL Injection Attacks - SQL Theory and Databases (mssql)

반응형

Windows에는 SQLCMD 라는 기본 제공 명령줄 도구가 있는데 , 이를 사용하여 Windows 명령 프롬프트를 통해 또는 다른 컴퓨터에서 원격으로 SQL 쿼리를 실행할 수 있습니다.

 

impacket-mssqlclient를 실행하여 사용자 이름, 비밀번호, 원격 IP와 -windows-auth 키워드를 함께 제공하여 MSSQL을 실행하는 원격 Windows 머신에 연결할 수 있습니다. 이렇게 하면 NTLM 인증(Kerberos와 대조적으로)이 강제됩니다.

 

kali@kali:~$ impacket-mssqlclient Administrator:Lab123@192.168.50.18 -windows-auth
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation

[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(SQL01\SQLEXPRESS): Line 1: Changed database context to 'master'.
[*] INFO(SQL01\SQLEXPRESS): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server (150 7208)
[!] Press help for extra shell commands
SQL (SQLPLAYGROUND\Administrator  dbo@master)>


               Impacket을 통해 원격 MSSQL 인스턴스에 연결

 

시작하려면 @@version을 선택하여 기본 운영 체제의 현재 버전을 검사해 보자.

SQL (SQLPLAYGROUND\Administrator  dbo@master)> SELECT @@version;
...

Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)
	Sep 24 2019 13:48:23
	Copyright (C) 2019 Microsoft Corporation
	Express Edition (64-bit) on Windows Server 2022 Standard 10.0 <X64> (Build 20348: ) (Hypervisor)
           
            
                                 Windows OS 버전 검색

 

사용 가능한 모든 데이터베이스를 나열하려면 시스템 카탈로그에서 모든 이름을 선택하면 된다.

SQL (SQLPLAYGROUND\Administrator  dbo@master)> SELECT name FROM sys.databases;
name
...
master

tempdb

model

msdb

offsec

SQL>

                             사용 가능한 데이터베이스 검사

 

master , tempdb , model , msdb 가 기본 데이터베이스 이므로 , 타겟에 속하는 데이터가 포함되어 있을 수 있으므로 사용자 지정 offsec 데이터베이스를 탐색해보자,  해당 information_schema에서 tables 테이블을 쿼리하여 이 데이터베이스를 검토할 수 있다.

SQL (SQLPLAYGROUND\Administrator  dbo@master)> SELECT * FROM offsec.information_schema.tables;
TABLE_CATALOG   TABLE_SCHEMA   TABLE_NAME   TABLE_TYPE   
-------------   ------------   ----------   ----------   
offsec          dbo            users        b'BASE TABLE'   

SQL (SQLPLAYGROUND\Administrator  dbo@master)> 

offsec 데이터베이스에서 사용 가능한 테이블 검사

 

리의 쿼리는 데이터베이스에서 유일하게 사용 가능한 users 테이블을 반환했으므로 모든 레코드를 선택하여 검사해 보자

우선 데이터베이스와 테이블 이름 사이에 dbo 테이블 스키마를 지정해야 합니다.

SQL>select * from offsec.dbo.users;
username     password     
----------   ----------   
admin        lab        

guest        guest 

                               Users 테이블 레코드 탐색
반응형

Designed by JB FACTORY