이전 실습 요약:
이전 실습에서는 침해사고 발생한 아티팩트, 메모리 덤프파일(memory.raw)을 수집했음.
여기서 프로세스 관련 정보들(ex 생성시간, 종료시간, PID, DLL 등)을 추출했음
→ 이번 실습에서는 추출내용을 분석하겠음
1. dlllist.txt 분석하기
: 메모리의 로드된 실행파일 자체와 dll 파일의 경로정보
파일 내용 중 command line 을 추출하면 실행파일 경로, 파라미터 정보를 추출할 수 있음
-i: 대소문자 구분 X
-v: 문자열 제외
대부분의 일반적 프로세스 경로는
C:\Windows
C:\Programs Files
C:\Programs Files (x86)
에서 실행되므로 이외의 경로를 찾으면 된다
E:~W) grep -i "command line" dlllist.txt | grep -v -i "c:\*windows" | grep -v -i "c:\*program files" | grep -v -i "systemroot"
=> 일반적이지 않은 경로 정보에 대해서만 출력
grep -i “command line” dlllist.txt → dlllist.txt 파일에서 해당 문자열 찾기
grep -v -i ‘’c:\\windows”~ → 일반적인 경로 3개를 제외한 이상 정보만 찾아내기
2. svchost.exe 파라미터 유무 분석하기
svchost.exe는 -k 옵션과 함께 파라미터가 꼭 있어야 하기 때문에
-k 옵션이 없다면 악성코드일 확률이 있는 이상징후이다
grep -i "command line" dlllist.txt
이 중에서 svchost.exe만 나오도록 더 추려보자
grep -i "command line" dlllist.txt | findstr svchost.exe
여기서는 svchost.exe 에서 이상징후가 발견되지 않는다
3. pstree.txt 분석하기
cat pstree.txt
여기서 . 개수는 부모자식 관계를 알 수 있는데 ...은 ..의 하위프로세스이다
.services.exe가 부모 프로세스 / .. svchost.exe는 자식 프로세스
좀 더 편하게 보기위해 pslist를 대신 사용하고 svchost.exe만 필터링해보자
cat pslist.txt | findstr svchost.exe
svchost.exe들의 PPID가 모두 504이다
이제 부모 프로세스인 services.exe의 PID를 확인해 보자
cat pslist.txt | findstr service.exe
services.exe의 PID 역시 504 이므로 여기도 이상징후 없음!
LOL Binary(Living off the Land Binaries)란?
악성코드 공격 실행을 위해서 os에 미리 설치된 파일, 도구들을 활용하는 ms 실행파일
cat pslist.txt | findstr dllhost.exe
→ dllhost.exe 역시 PPID가 504로 확인됨
→프로세스 부모자식 관계 측면에서는 이상징후 X
4. sigcheck.csv 분석하기
MS 실행파일 내부에는 헤더, 섹션들이 있는데 그 중 .rsrc 섹션에는
아이콘, 인증서, 리소스(version info)처럼 실행파일 우클릭해서
속성보기/자세히 탭을 보면 나오는 내용들임
→ 악성코드 제작자들이 제너레이터(생성기)를 사용할 때 누락하기 쉬운 내용
이전 실습에서 추출한 sigcheck.csv 파일을 분석해 보겠음
n/a가 있는 항목들은 의심해 볼 만하므로 n/a가 있는 PID넘버를 넣어서 추출해 보자
executable.PID숫자.exe 이런 형식임( executable.512.exe → PID가 512 )
4-1. awk 명령어 사용해서 추출
awk: 선택된 레코드에 포함된 값을 조작 및 데이터화
awk "if($3==1280|| $3==2668||$3==3292||$3==512||$3==520) print $2, $3" pslist.txt
- $2: name 프로세스 이름
- $3: 프로세스 PID
실행하면 결과가 이렇게 나온다
lsass.exe 512
lsm.exe 520
spoolsv.exe 1280
svcnet.exe 2668
SearchIndexer.2948
DumpIt.exe 3292
각 프로세스에 대해 알아보면
lsass.exe | Local Security Authority Service의 줄임말로, 사용자나 그룹에 대한 로그인(인증), 패스워드 변경, 보안 로그를 작성합니다. |
lsm.exe | Local Session Manager Service의 줄임말로, 시스템의 로그인 세션 연결을 관리합니다. |
spoolsv.exe | 프린터 스풀러 서비스 |
SearchIndexer | 파일 검색 및 인덱싱 서비스 |
DumpIt | 메모리 덤프 용도 |
모두 윈도우 빌트인 프로세스 들인데 서명값이 n/a인 이유는
메모리에 올라가면서 자료구조가 바뀌어서 그렇다
반면에 svcnet.exe의 경우 윈도우의 빌트인 프로세스가 아닌데
부모 프로세스가 explorer.exe이고 파일 버전 등의 정보도 없다
→ 악성프로세스일 가능성 있다!
'악성코드 분석' 카테고리의 다른 글
맬웨어 식별 훈련 :: 오피스 문서의 포맷 이론 (0) | 2025.02.15 |
---|---|
맬웨어 식별 훈련 :: 악성파일의 구성요소 (0) | 2025.02.14 |
맬웨어 식별 훈련 :: 프로세스 이상징후 분석 실습 (0) | 2025.02.13 |
맬웨어 식별 훈련 :: 프로세스 이상징후 분석을 위한 정보추출 실습 (0) | 2025.02.12 |
맬웨어 식별 훈련 :: 윈도우 단말의 악성코드 유입 경로와 이상징후 식별/분석 방법 (0) | 2025.02.11 |