SMB 쉐어 수집

SMB는 Server Message Block 프로토콜로서, 윈도우 액티브 디렉토리에서 파일과 프린터를 공유하는데 가장 많이 사용되는 프로토콜이다. 요새는 파일 공유 같은 경우는 웹 기반의 SaaS 로 많이 넘어갔지만, 아직도 많은 네트워크에서 쉐어를 이용한다.

공격자들은 SMB 쉐어에 관련된 정보와 쉐어 안의 파일을 정보 수집을 통해 얻어낼 수 있다.

도메인 유저 맥락

도메인 유저 계정을 하나라도 장악한 공격자는 도메인 내 도메인 유저에게 공개되어 있는 쉐어를 탐색할 수 있다. 쉐어의 읽기/쓰기 권한이 잘못 설정되어 있는 경우, 공격자는 쉐어에 접근해 추가 공격에 용이한 파일을 얻을 수 있다. 혹은 민감한 정보가 담긴 파일이 있는 쉐어가 네트워크 안 모든 유저에게 공개되어 있는 경우도 많다.

CrackMapExec을 이용해 찾아낼 수 있다.

cme smb <target(s)> -u <user> -p <passwd> -d <domain> --shares 

예를 들어 다음과 같은 도메인 쉐어를 찾았다고 가정해보자.

└─# cme smb 192.168.40.150 -u low -p 'Password123!' -d choi.local --shares
               
SMB         192.168.40.150  445    DC01             [*] Windows 10.0 Build 17763 x64 (name:DC01) (domain:choi.local) (signing:True) (SMBv1:False)
SMB         192.168.40.150  445    DC01             [+] choi.local\low:Password123! 
SMB         192.168.40.150  445    DC01             [+] Enumerated shares
SMB         192.168.40.150  445    DC01             Share           Permissions     Remark
SMB         192.168.40.150  445    DC01             -----           -----------     ------
< ... >  
SMB         192.168.40.150  445    DC01             share           READ,WRITE      Share for deploying files from the DC       Logon server share 

도메인 컨트롤러의 "share" 라는 쉐어가 존재하는데, 일반적인 "low" 도메인 유저가 이에 읽기/쓰기 권한을 갖고 있다. smbclient 를 이용해 파일을 가져올 수 있다.

└─# smbclient -U CHOI/low%'Password123!' \\\\192.168.40.150\\share

Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Mon Jul  4 22:24:07 2022
  ..                                  D        0  Mon Jul  4 22:24:07 2022
  secret.txt                          A       18  Mon Jul  4 22:24:07 2022

                15644159 blocks of size 4096. 10228069 blocks available
smb: \> get secret.txt
getting file \secret.txt of size 18 as secret.txt (17.6 KiloBytes/sec) (average 17.6 KiloBytes/sec)

Anonymous/Null Session Share

SMB 쉐어의 권한이 잘못 설정되어 Anonymous 나 Null Session 으로 접근 가능한 쉐어들은 도메인 유저 맥락이 없어도, 아무런 계정 정보가 없어도 접근이 가능하다.

cme smb <target(s)> -u '' -p ''  --shares
cme smb <target(s)> -u 'a' -p '' --shares 
enum4linux -a <target>

대량 SMB 정보 수집

모의해킹을 진행하다보면 3만대 5만대의 호스트로부터 SMB 쉐어 파일을 가져와야할 때가 있다. 이렇듯 대량으로 SMB 파일을 다운받기 위해서는 ManSpider 라는 툴을 이용한다. Manspider 는 특정 파일 확장자, 파일 컨텐츠 등을 화이트리스트/블랙리스트 한 뒤, 파일을 다운 받는 툴이다. 몇천대, 몇만대 호스트를 상대로 실행해도 상당히 빠른 속도로 SMB 파일들을 수집한다.

manspider.py --threads 128 <ip-ranges> -u <user> -p <pass> -c password passwd confidential

레퍼런스

Last updated