
SMBeagle - 파일 공유 감사 도구.
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
SMBeagle은 네트워크에서 볼 수 있는 모든 파일을 찾아내고 해당 파일을 읽거나 쓸 수 있는지 보고하는 크로스 플랫폼 (SMB) 파일 공유 감사 도구입니다. 모든 결과는 CSV 파일이나 Elasticsearch 호스트, 또는 둘 다로 스트리밍됩니다!? 🚀
Windows에서 실행 시, 자격 증명을 제공하지 않으면 최대 속도와 통합 인증을 위해 win32 API를 사용합니다.
Linux에서 실행 시, 또는 자격 증명을 제공하면 SMBLibrary를 통해 크로스 플랫폼 파일 스캔을 수행합니다.
SMBeagle v3까지는 디지털 서명되었지만, v4에는 공격적인 기능이 추가되었습니다. 즉, 이제 흥미로워 보이는 파일을 찾아 검색합니다. 침투 테스트에 유용하지만, 디지털 서명하고 싶은 기능은 아닙니다!
파일 가져오기 기능이 없는 원래 버전을 원한다면 디지털 서명된 v3을 사용하세요.
두 가지 멋진 사용 사례가 있습니다:
모든 규모의 비즈니스는 종종 형편없는 파일 권한이 있는 파일 공유를 가지고 있습니다.
대기업은 파일 서버에 방대한 공유 폴더를 가지고 있으며, 잘못 구성된 권한으로 민감한 데이터가 있는 경우가 드물지 않습니다.
소기업은 사무실 구석에 제한이 전혀 없는 작은 NAS를 가지고 있는 경우가 많습니다!
SMBeagle은 이러한 공유를 크롤링하여 읽고 쓸 수 있는 모든 파일을 나열합니다. 읽을 수 있다면 랜섬웨어도 읽을 수 있습니다.
SMBeagle은 침투 테스터에게 권한 상승 및 측면 이동을 위한 덜 명백한 경로를 제공할 수 있습니다.
결과를 Elasticsearch로 직접 출력함으로써 테스터는 읽을 수 있는 스크립트와 쓸 수 있는 실행 파일을 빠르게 찾을 수 있습니다.
워터링홀 공격과 보호되지 않은 비밀번호를 찾는 것이 이렇게 쉬운 적이 없었습니다! 🐱👤
더 쉽게 만들기 위해 -g 플래그를 추가했습니다. 이제 흥미로워 보이는 파일이 있으면 가져옵니다!
무엇이 흥미로워 보일까요? 기본적으로 스크립트와 password 같은 단어가 포함된 파일명을 찾습니다.
... --file-pattern 플래그로 자신만의 정규식을 제공할 수 있습니다.
Kibana 대시보드 설치 및 사용에 대한 자세한 지침은 Kibana readme를 참조하세요. 이 대시보드는 관리 시각화를 제공하고 데이터 피벗을 더 쉽게 만듭니다.
docker pull punksecurity/smbeagle유일한 필수 매개변수는 출력 설정으로, Elasticsearch 호스트 IP 주소 또는 CSV 파일이어야 합니다.
좋은 시작점은 빠른 모드를 활성화하고 CSV로 출력하는 것입니다. 하지만 이 CSV는 찾은 파일 수에 따라 방대해질 수 있습니다.
./SMBeagle.exe -c out.csv -f
발견된 공용 호스트 및 네트워크 스캔은 기본적으로 비활성화되어 있습니다. SMBeagle은 netstat에서 네트워크를 발견하며, 여기에는 웹 브라우저 세션 등의 모든 현재 연결이 포함됩니다.
공용 네트워크를 스캔하려면 -n 1.0.0.1/32 또는 -n 1.0.0.0/24와 같이 수동으로 선언하세요.
Punk security는 SMBeagle의 Linux Docker 이미지를 제공합니다.
결과를 내보내려면, 폴더를 컨테이너에 마운트하고 SMBeagle에게 해당 마운트 지점으로 출력을 저장하도록 지시해야 합니다 (또는 Elasticsearch 사용).
좋은 시작 예시는 다음과 같습니다:
docker run -v "$(pwd)/output:/tmp/output" punksecurity/smbeagle -c /tmp/output/results.csv -n 10.10.10.0/24
Docker에서 실행할 때 네트워크 검색이 비활성화되므로, -n 명령줄 스위치로 스캔할 범위를 전달하거나 -h 스위치로 호스트를 전달해야 합니다.
USAGE:
Output to a CSV file:
SMBeagle -c out.csv
Output to elasticsearch (Preferred):
SMBeagle -e 127.0.0.1
Output to elasticsearch and CSV:
SMBeagle -c out.csv -e 127.0.0.1
Disable network discovery and provide manual networks:
SMBeagle -D -e 127.0.0.1 -n 192.168.12.0./23 192.168.15.0/24
Do not enumerate ACLs (FASTER):
SMBeagle -A -e 127.0.0.1
-c, --csv-file (Group: output) Output results to a CSV
file by providing filepath
-e, --elasticsearch-host (Group: output) Output results to
elasticsearch by providing elasticsearch
hostname (default port is 9200 , but can be
overridden)
-a, --aggression (Default: 6) Vary scanning speed in a range
between 1 and 10. 10 being fastest [No
decimals]
--elasticsearch-port (Default: 9200) Define the elasticsearch
custom port if required
-f, --fast Enumerate only one files permissions per
directory
-l, --scan-local-shares Scan the local shares on this machine
-D, --disable-network-discovery Disable network discovery
-n, --network Manually add network to scan (multiple
accepted)
-N, --exclude-network Exclude a network from scanning (multiple
accepted)
-h, --host Manually add host to scan
-H, --exclude-host Exclude a host from scanning
-q, --quiet Disable unneccessary output
-S, --exclude-share Do not scan shares with this name (multiple
accepted)
-s, --share Only scan shares with this name (multiple
accepted)
--file-pattern Only fetch files matching these regexes
patterns
-g, --grab-files Grab files and store them locally
--loot (Default: loot) Path to store grabbed files
-E, --exclude-hidden-shares Exclude shares ending in $
-v, --verbose Give more output
-m, --max-network-cidr-size (Default: 20) Maximum network size to scan
for SMB Hosts
-A, --dont-enumerate-acls (Default: false) Skip enumeration of file
ACLs
-d, --domain (Default: ) Domain for connecting to SMB
-u, --username Username for connecting to SMB - mandatory
on linux
-p, --password Password for connecting to SMB - mandatory
on linux
--help Display this help screen.
--version Display version information.
SMBeagle은 많은 작업을 수행하며, 각각 느슨하게 결합된 모듈로 나뉘어 서로에게 작업을 넘깁니다. 이 설계는 간단함을 유지하고 각 모듈을 쉽게 확장할 수 있게 해줍니다.
요약하면 다음과 같습니다:
