[HACKING] Phase of Ethical Hacking Phase5 - Covering Tracks

윤리해킹(Ethical Hacking)의 5가지 단계 중 마지막인 Covering Tracks입니다.

Covering Track

Covering Track는 Clearing Track이라고도 부르며 해킹 성공 후 해킹하기 위해 사용되었던 파일, 로그 등등 흔적을 지우는 과정을 의미합니다. 아래 그림의 캐릭터를 혹시 아시나요? 바로 Assassins Creed 시리즈의 주인공입니다. 스토리부터 재미까지 완성도 높은 게임이죠. 이 주인공은 위험한 순간 대중들 사이로 숨어 자신을 은폐합니다. 우리가 하려는 Covering Track 도 이와 비슷한 느낌이지요. (숨고 흔적은 지운다?)

hxxp://xdesktopwallpapers.com/wp-content/uploads/2012/04/Assassins%20Creed%202%20-%20Hiding%20In%20Red%20People.jpg

Recon부터 Maintaining Access까지 공격자가 수행하는 많은 행위들에는 그에 따른 로그가 남게됩니다. 이것은 간단하게는 타겟 시스템의 로그에서부터 IDS, IPS에 남겨진 로그까지 흔적이 많이 남게 되지요. 조용한 움직임과 흔적을 남기지 않기 위해서는 이러한 기록들을 지워주는 작업이 필요합니다. 이 과정을 Covering Track이라고 부르고 많은 툴들을 이용하여 기록을 지우게 되지요.

또한 데이터, 파일을 숨기는 과정도 Covering Track에 포함됩니다. 음.. 쉽게 여러 흔적을 지우는 과정이라고 생각하시면 좋을 것 같네요.

Remove Log

Scanning 부터 공격가지 해킹은 많은 로그를 남기게 됩니다. (이게 다 삽질때문에..) BOF는 시스템로그, Kernel 로그 등에 메시지를 남길 것이고 웹 기반이라면 WAS에 정보가 남게됩니다. 그래서 일반적으로 각각 Application, System 등이 기본적으로 가지고 있는 로그의 위치를 확이하여 삭제하게 됩니다. 대표적인 로그를 몇개 소개합니다.

Linux - /var/log/syslog 일반적으로 syslog라고 부르는 로그입니다. 시스템 전반적인 로그가 들어있으며, 크리티컬한 이슈부터 자잘한 로그까지 생각보다 상세하게 기록되는 로그입니다.

Linux - /var/log/kern.log 다음은 리눅스의 커널로그입니다. 시스템 부팅부터 커널 동작이 시작되며 로그가 남고 Kernel base bof 및 각종 Exploit 로그가 남기도 합니다.

Linux - /var/log/apache2/error.log or ./access.log 이 부분은 많이 사용되는 Apache 서버 로그 위치입니다. 물론 버전마다 약간 다르겠지만, 대체로 위 경로이며 error.log , access.log 를 통해 접근, 에러 로깅 정보를 확인할 수 있습니다. web base attack이 실행되었다면 꼭 지워야겠지요.

Windows - %SystemRoot%\System32\winevt\Logs\security.evtx 윈도우즈 시스템에서의 보안로그입니다.

Windows - %SystemRoot%\System32\winevt\Logs\system.evtx 윈도우즈 시스템에서의 시스템 로그입니다.

윈도우, 리눅스 등 대부분 Application 로그를 제외한 나머지는 System에서 Log를 관리하는 디렉토리가 있고 특정 경로에 Log들이 모아져있습니다.

이외에도 많은 로그가 있을 것 입니다. 그리고 서버별로 분명 기발한 담당자들은 저 로그의 사본을 따로 백업하거나, 숨기거나 하고 또한 로그 관련된 솔루션등을 가지고 있을 수 있습니다.

이 부분은 공격을 수행하는 자가 고민해봐야할 문제이지요. (로그를 삭제하려고 하는 과정도 로깅될 수 있네용)

이 과정을 좀 더 쉽게 도와주는 툴도 많이 있습니다. 개인적으로는 Metasploit 의 Shell인 Meterpreter Shell의 기능 중 하나인 Clearev 기능이 좋다고 생각되네요. 이외에도 elsave나 WinZapper 등을 통해 삭제할 수 있지요.

Data Hiding

공격자는 로그를 지우고 자신의 흔적, 데이터를 숨기려고 할 것입니다. 악성파일이나 탈취한 데이터를 해당 PC에 그대로 보관한다면 탐지되기 쉽게 때문이죠. 그래서 여러가지 루트로 데이터를 숨기게 됩니다. 몇개 생각해봤는데, 3가지 정도를 예시로 들어보겠습니다.

  1. 멀티미디어 파일의 메타데이터에 숨기기 이미지, 오디오, 영상 파일에는 메타데이터를 넣을 수 있는 영역이 존재합니다. 바로 촬영 시간, 촬영 지역 등등 이러한 데이터인데요 이 공간에 공격자가 데이터를 숨길수도 있습니다. 그래서 기본적으로 존재하는 Sample 이미지 등에 악성코드 몸체를 넣어둘수도 있지요.

이러한 방법을 사용하는 악성코드도 가끔씩 발견되네요. (이미지에 악성코드를 삽입하고 해당 이미지를 실행하는..)

  1. 루트킷을 이용한 데이터 숨기기 Maintaining Access에서도 포스팅했지만 Rootkit은 공격자의 흔적을 숨기기에도 용이한 도구입니다. Rootkit을 이용해서 데이터부터 실행파일까지 많은 내용을 숨길 수 있지요.

  2. ADS 영역에 데이터 숨기기 마지막으로 ADS에 대한 이야기입니다. ADS는 Windows 에서 제공되는 스트림 영역이며 원래 MAC과 호환성을 위해서 만들어진 영역이라고 하네요. 이 영역에는 데이터를 쉼게 숨기고 꺼내올 수 있습니다. 별도의 분석툴이 없으면 찾기 좀 까다롭습니다.

관련 내용은 예전에 포스팅했던거 참고해주세요. https://www.hahwul.com/2015/03/22/ntfs-file-system-adsalternate-data/

Ethical Hacking

Phase of Ethical Hacking [HACKING] Phase of Ethical Hacking/Pentest(모의/윤리해킹의 단계) [HACKING] Phase of Ethical Hacking Phase1 - Reconnaissance/Footprinting [HACKING] Phase of Ethical Hacking Phase2 - Scanning/Enumeration [HACKING] Phase of Ethical Hacking Phase3 - Gaining Access [HACKING] Phase of Ethical Hacking Phase4 - Maintaining Access [HACKING] Phase of Ethical Hacking Phase5 - Covering Tracks

이렇게 Ethical Hacking 의 5단계에 대해서 하나하나 살펴봤습니다. 실무와는 좀 다를수도 있지만 알고계시면 도움이 될 수 있는 내용이니 숙지해주시면 좋습니다. 궁금하신점은 각각 글의 댓글로 달아주시거나 Mail을 통해 연락주시면 최대한 궁금증 풀어드리도록 노력하겠습니다. 길고 지루한 글들 읽어주셔서 감사합니다 :)