TChopper
최근에 발견한 새로운 기법으로, 별명을 'Chop chop'이라고 지었습니다. 이 기법은 Windows 서비스 표시 이름(display name)과 WMI를 이용해 악성 바이너리를 base64 청크로 밀반입(smuggle)한 후, TChopper 도구를 사용하여 측면 이동(lateral movement)을 자동화합니다.

image
작동 방식
- 이 도구는 밀반입하려는 파일을 가져와 base64로 인코딩하여 메모리 스트림에 저장합니다.
- 각 줄의 길이를 150~250자로 나눕니다 (250자는 서비스 lpDisplayname 매개변수의 최대 허용 길이입니다. https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-createservicea).
- chop chop 공격에서는 분할된 각 청크에 대해 고유한 서비스를 생성 -> 서비스를 시작 -> 중복을 방지하기 위해 삭제하거나, 공격 모드 옵션(-m)을 선택하여 더 빠르고 안정적으로 기존 서비스를 수정하는 방식(attack mode)만 사용할 수도 있습니다.
- 이후 service lpbinarypath 매개변수를 수정하여 서비스 표시 이름을 가져오고 결과를 tmp_payload.txt로 파이프합니다.
- 마지막으로, 파일의 모든 청크를 base64로 전달한 후, 도구는 또 다른 서비스를 생성하여 내용을 유효한 실행 파일로 디코딩하고 실행합니다.
WMI 기법을 이용해 측면 이동을 수행할 때도 Chopper를 사용할 수 있습니다.
- Tchopper는 WMI를 통해 세션을 인증합니다.
- 여러 프로세스를 생성하고 고유한 powershell 명령어를 사용하여 각 세그먼트를 c:\users\public\chop.enc로 파이프합니다.
- 최종 프로세스를 생성하여 certutil을 사용해 내용을 바이너리로 디코딩하고 실행합니다.
image
사용법
#chop chop mode
chopper.exe -s -u USERNAME -p PASSWORD -d DOMAIN -f BINARYLOCAL PATH
# chop chop done
chopper.exe -m -u USERNAME -p PASSWORD -d DOMAIN -f BINARYLOCAL PATH
# use WMI to smuggle
chopper.exe -w -u DOMAIN\USERNAME -p PASSWORD -t MACHINE -f LOCALBINARYPATH
https://youtu.be/xbvhzHul7w0
상세 연구
http://0xsp.com/security%20research%20&%20development%20(SRD)/smuggling-via-windows-services-display-name-lateral-movement
후원하기
저는 오픈소스 커뮤니티를 위해 보안 도구를 제작합니다. 후원해 주세요: https://paypal.me/0xsp