SMB는 Server Message Block 프로토콜로서, 윈도우 액티브 디렉토리에서 파일과 프린터를 공유하는데 가장 많이 사용되는 프로토콜이다. 요새는 파일 공유 같은 경우는 웹 기반의 SaaS 로 많이 넘어갔지만, 아직도 많은 네트워크에서 쉐어를 이용한다.
공격자들은 SMB 쉐어에 관련된 정보와 쉐어 안의 파일을 정보 수집을 통해 얻어낼 수 있다.
도메인 유저 맥락
도메인 유저 계정을 하나라도 장악한 공격자는 도메인 내 도메인 유저에게 공개되어 있는 쉐어를 탐색할 수 있다. 쉐어의 읽기/쓰기 권한이 잘못 설정되어 있는 경우, 공격자는 쉐어에 접근해 추가 공격에 용이한 파일을 얻을 수 있다. 혹은 민감한 정보가 담긴 파일이 있는 쉐어가 네트워크 안 모든 유저에게 공개되어 있는 경우도 많다.
도메인 컨트롤러의 "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 으로 접근 가능한 쉐어들은 도메인 유저 맥락이 없어도, 아무런 계정 정보가 없어도 접근이 가능하다.
모의해킹을 진행하다보면 3만대 5만대의 호스트로부터 SMB 쉐어 파일을 가져와야할 때가 있다. 이렇듯 대량으로 SMB 파일을 다운받기 위해서는 ManSpider 라는 툴을 이용한다. Manspider 는 특정 파일 확장자, 파일 컨텐츠 등을 화이트리스트/블랙리스트 한 뒤, 파일을 다운 받는 툴이다. 몇천대, 몇만대 호스트를 상대로 실행해도 상당히 빠른 속도로 SMB 파일들을 수집한다.