티스토리 뷰

Analysis/Forensic

Powershell v5에 history 및 log

쏘얌무 2018. 12. 20. 10:50

안녕하세요~!

 

오늘은 Windows 10의 PowerShell v5에 기존의 사용자가 정의한 로그 형식이 아닌 기본적으로 명령어 실행 기록, 로그가 생되는 것에 대해서 포렌식적으로 의미가 있지 않을까 생각하여 현재까지 조사된 내용을 포스팅 하게 되었네요

 

 

현재 파일리스 형태의 PowerShell을 이용한 악성 행위, 공격을 자주 접하게 되는데 이는 PowerShell을 이용해 기존 악성코드 탐지에서 우회할 수 있고 흔적을 최소화하는 효가가 있습니다.

 

따라서 포렌식적으로 PowerShell 흔적을 찾을 수 있다면 이는 흔적조사, 악성 행위 탐지에 지대한 영향을 줄 것으로 보입니다.

 

 

 

테스트 환경

 

우선 저는 Windows 10으로 확인했습니다.

powershell v5 이상 (테스트는 5.1.16299.666) 으로 진행하였습니다.
 

 

 

선행 과정

우선 powershell을 실행하여 간단한 명령어 몇가지를 사용해봅니다.

테스트에서는 기본적으로 생성되는 로그에 대해서 확인 하는 것으로 사용자 정의와는 다릅니다.

 

 

아래 항목들은 기존의 창이 켜진 상태에서의 기록 상황과

v5이상에서는 창이 닫힌 상태, 재부팅된 상황에서도 기록이 추적 가능한 것,

마지막으로 로그로 추출하여 분석 가능한 방법


 

Case

 

1. 창이 켜진 상태 --> (Get-History | Format-List -Property *) 으로 기록 확인 가능 

아래 캡쳐 사진을 보시면 버전을 확인한 명령어가 자세한 정보로 보입니다.

(명령어 ID, 명령어, 실행 결과, 실행 시작 날짜와 시간값, 실행 완료된 날짜와 시간 값)

 

 

 

 

 



2. 창이 닫힌 거나 재부팅 후 --> (Get-History | Format-List -Property *) 으로 기록 확인 불가능

 

창이 닫히거나 재부팅된 상황에서 같은 명령어 사용해보았지만 역시 나타나지 않습니다. 

 

 

 

아래 그림으로 나타나서 이해되시기 어렵겠지만, 해당 명령어는 바로 재부팅 되기 전에 사용된 명령어 중에 하나인 "host | findstr ^Version"입니다. 이는 재부팅 후에도 화살표 ( 위, 아래) 를 통해 이전 실행된 명령어 확인이 된 것입니다.(host | findstr ^Version은 1번 항목에서 사용)

 

 


화살표로 이전 목록을 찾아가는 것보다 더 좋은 방법으로 검색기능도 존재하는데요 


Ctrl + R(역방향 검색), Ctrl + S(순방향 검색) 를 이용하는 것입니다.

 

해당 캡쳐는 Ctrl + R을  이용해 Ver을 검색하여 나타난 결과입니다.

 


 

 

 


3. 아티팩트 수집의 관점 

 

저는 아티팩트로 가치가 존재하는지에 대해서 확인해보기 위해서 로그를 간편하게 수집가능한지 여부와

저장경로의 변경이나 저장경로 추적에 대한 부분도 확인해보았습니다.

 

 

아래 캡쳐는 default 경로에 저장된 로그 파일이며 수정된 시간, 저장된 명령어들이 확인 되네요.


** default 경로 (% userprofile % \ AppData \ Roaming \ Microsoft \ Windows \ PowerShell \ PSReadline \ ConsoleHost_history.txt)
** 아래 로그에 시간 값은 없음, 마지막 명령 실행 시간은 로그 수정 시간

 

 



** powershell 명령어 (Get-PSReadlineOption | select HistoryNoDuplicates, MaximumHistoryCount, HistorySavePath) 로 저장 경로 , 중복 명령어 저장 여부, 저장되는 명령어 수 확인 가능

 

 

 

 

많은 시간을 들여 실험을 하지는 못했지만, 결과적으로 영향력이 전혀 없다고는 생각하지 않습니다.

파워쉘 이용이 의심되거나 다른 흔적을 찾지 못한 경우 확인해볼 가치가 있다고 생각들면서

아래는 테스트 결과와 개인 의견을 정리해보았습니다.

 

-------------------------------테스트 결과------------------------------------------------------------------------
1. 창이 닫히거나 재부팅 되어도 powershell 명령어 통해 기록 저장에 대한 옵션

 (저장경로, 저장타입, 명령어개수 등) 확인 가능

 

2. 지정된 경로에 로그 파일 추출 가능(단순 경로 복사, forecopy 등)

 

 

3. 시간에 대한 정보값 확인 불가능 (이벤트 로그와 결합 조사 가능 여부 미지수)
------------------------------------------------------------------------------------------------------------------------

 


 

************************** 테스트에 따른 개인 결론**************************************************
PowerShell 로그를 통해 명령어의 악의적인 행위 자체가 있었는지 파악 가능

 

하지만, 실행 시간은 확인 불가능, 로그 자체를 삭제 가능. --> 이벤트 로그와의 연동 여부 미확인

 

시간과 관계없이 파일리스 형태의 악성행위가 있었는지만 찾는 것이라면 유의미
********************************************************************************************** 

'Analysis > Forensic' 카테고리의 다른 글

Frye Standard와 Daubert Standard의 차이점  (0) 2018.11.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함