Search

S2 #204

During the initial Cerber infection a VB script is run. The entire script from this execution, pre-pended by the name of the launching .exe, can be found in a field in Splunk. What is the length of the value of this field?
Answer guidance: Enter the number of characters (i.e.the "length") of the field.
초기 Cerber 감염 중에 VB 스크립트가 실행됩니다. 시작하는 .exe의 이름이 앞에 추가된 이 실행의 전체 스크립트는 Splunk의 필드에서 찾을 수 있습니다. 이 필드 값의 길이는 얼마입니까?
답변 안내: 필드의 문자 수(예: "길이")를 입력합니다.
감염지 출발지에서 .exe를 포함한 이벤트들 중 필드 값에 exe가 없는 건 모두 null로 처리했다.
src_ip="192.168.250.100" ".exe" | foreach * [| eval <<FIELD>>=if(like(<<FIELD>>,"%.exe%"),<<FIELD>>,null())]
SQL
복사
그 결과 7개의 필드에서만 .exe가 나타나는걸 볼 수 있고 각 필드값을 상세히 살펴본다.
[⇶모든 필드]에서 “적용 범위: 1% 이상”을 “모든 필드”로 바꿔줘야한다. 해당 기능을 적용하지 않으면 CommandLine 등의 중요한 Sysmon 로그 필드를 확인할 수 없다.
이렇게 보다보면 실행 명령어들이 포함돼있는 CommandLine을 찾을 수 있다.

Sysmon 중요 필드

CommandLine 프로세스를 시작하는 데 사용되는 실행 파일 및 인수를 포함한 전체 명령줄이 포함된다. 프로세스가 수행하는 작업을 이해하거나 의심스러운 스크립트를 실행하거나 비정상적인 명령줄 인수를 사용하여 프로세스를 시작하는 등 잠재적으로 악의적인 활동을 식별하는 데 유용하다.
ParentCommandLine 현재 프로세스를 생성한 상위 프로세스의 전체 명령줄이 포함된다. 프로세스 계층 구조를 이해하는 데 도움이 되며 다른 프로세스를 시작하는 예기치 않은 프로세스 또는 알려진 악성 응용 프로그램에 의해 생성되는 프로세스와 같은 잠재적으로 악의적인 활동을 식별하기 위한 컨텍스트를 제공할 수 있다.
중복제거를 한 결과를 보면 다음과 같다.
host="we8105desk" "*.exe*" | foreach * [| eval <<FIELD>>=if(like(<<FIELD>>,"%.exe%"),<<FIELD>>,null())] | dedup CommandLine, ParentCommandLine | table CommandLine, ParentCommandLine
SQL
복사
문제에서 언급한 vbs와 연관되며 누가봐도 악성코드인 명령어가 있다.
필드 길이를 알아내자
host="we8105desk" "*.exe*" | foreach * [| eval <<FIELD>>=if(like(<<FIELD>>,"%.exe%"),<<FIELD>>,null())] | dedup CommandLine, ParentCommandLine | eval L_cmd=len(CommandLine), L_Pcmd = len(ParentCommandLine) | table CommandLine, ParentCommandLine, L_cmd, L_Pcmd
SQL
복사
정답은 93 또는 4490이다.
아무래도 길이를 내라는 문제 특성상 4490이지 싶고 이게 맞았다.