악성코드를 분석하다 보면 악성코드 실행 시 일반 실행 파일과는 다르게 여러 주요 악성행위를 하는 것을 볼 수 있다. 주요 행위에는 파일 조작, 레지스트리 조작, 프로세스 메모리 변조 및 프로세스 감염, 서비스 추가, 새 프로세스 실행, 네트워크 연결, 추가적 다운로드 등으로 나눌 수 있다.


1. 파일 조작
    대부분의 실행 파일들도 파일 조작을 하지만 드로퍼나 다운로더와 같은 경우는 자기 자신이 아닌 최종 악성코드에 의해 악성 행위를 하게 되는 것이므로 최종 악성코드 파일을 생성해야한다. 또한 키로거가 사용자의 키보드 입력 정보를 공격자에게 전달하기 전에 임시로 파일에 기록해 둠으로서 악성코드에 대한 파일 조작은 불가피하다고 볼 수 있다.


2. 레지스트리 조작
    악성코드는 재부팅 시에도 실행이 보장 되어야한다. 이럴 때 사용하는 방법중 하나는 레지스트리의 시작 프로그램 부분에 해당 악성코드를 등록시켜 놓는 방법으로 재부팅 시엗 항상 해당 악성코드가 실행 되게 한다.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run 부분에 프로그램을 등록하면 매번 부팅할때마다 실항되게 한다. 또한 여러 레지스트리를 조작함으로서 악성행위를 극대화할 수 있다. (실행창에서 regedit을 실행시키면 편집기를 킬 수 있다)

3. 프로세스 메모리 변조 및 프로세스 감염
    악성코드의 가장 큰 적은 백신이다. 그래서 악성코드들은 백신의 탐지를 우회하기 위해 여러 가지 방법을 사용하고 있으며 그 중 한 가지 방법으로 다른  프로세스의 메모리를 변조하여 악성행위를 하도록 하는 방법이 사용된다. 악성 코드는 자신의 프로세스를 실행하지 않아 백신에 탐지되지 않았으며, 부팅시 부터 시스템 종료까지 항시 활동하는 프로세스를 변조하여 악성행위를 하게 만든다. 가장 많이 감염되는 프로세스는 explorer.exe와 svchost.exe이다.
explorer.exe는 실행되는 모든 애플리케이션의 부모 프로세스이므로 시스템 종료까지 해당 프로세스가 종료되는 일이 없으므로 공격자들에겐 안성맞춤이다.
svchost.exe는 윈도우에서 다양한 기능을 수행하는 데 사용하는 기타 개별 서비스를 호스팅하거나 포함하는 컴퓨터 프로세스이다. 악성코드가 svchost.exe를 추가하거나 변조하여 공격자의 컴퓨터로 전송하는 역할을 할 수도있다.



4. 서비스 추가
    앞에서 레지스트리 조작을 통한 악성코드 시작 프로그램 등록에 관해서 알아보았는데 레지스트리 조작 이외에 부팅 시 악성코드 실행 보장을 위한 방법은 서비스에 악성코드를 추가하는 것이다. 서비스에 해당 악성코드가 추가되면 아래와 같은 경로에 어떠한 파일이 실행되는지에 대해 알 수 있다.
내 컴퓨터 -> 우클릭 -> 관리에 들어가면 확인 할 수 있다.



5. 새 프로세스 생성
    어떠한 악성행위를 하더라도 악성코드가 실행되어야 가능하다. 또한 악성코드가 실행되고 추가적인 악성코드를 실행하기도 하기에 새로운 프로세스 생성은 매우 중요한 것이라고 볼 수 있다. 새로운 프로세스 모니터링에는 Sysinternals의 Process Explorer라는 툴을 쓰는데 새로운 프로세스가 생성되면 아래와 같이 표시 된다.
초록색은 생기는 것이도 빨간색은 없어지는 것이다.


6. 네트워크 연결
    악성코드 중 대다수가 사용자의 정보를 훔치는 것이므로 훔친 정보를 공격자에게 보내주기 위해서는 네트워크 연결은 필수라고 할 수 있다. 또한 다운로더와 같은 경우엔 실질적인 악성행위를 하는 악성코드를 내려받아 실행시켜야 하므로 악성코드 분석시에 네트워크 연결에 대한 모니터링은 매우 중요하다고 볼 수 있다. svchost.exe를 사용하여 통신 할 수도 있다. 통신 하는 것을 보기위해 TCPView를 사용하면 쉽게 감시 할 수 있다.



'Malware' 카테고리의 다른 글

악성코드가 하는 주요 행위  (0) 2016.01.15
악성코드 유형  (0) 2016.01.15

1. 악성코드 유형
    2000년도 초반만 하더라도 악성코드는 단순히 사용자의 시스템을 파괴하는 용도로만 쓰였는데, 인터넷의 발달로 인해 컴퓨터에 대한 의조도는 이전과는 비교할 수 없을 정도로 높아졌고 인터넷 뱅킹과 게임 등 실제 금전과 관련된 일이 기하급수적으로 늘어남에 따라 악성코드로 악의적 이득을 취할려고 하는 경향이 심해졌다.

1) Dropper
Dropper는 최종 악성코드를 일반 실행 파일 안에 숨겨 두었다가 사용자가 파일을 실행하면 악성코드를 사용자의 시스템에서 작동되어 감염시킨다.

2) Downloader
Downloader는 Dropper와 비슷하지만 악성코드를 실행 파일 안에 숨겨둔 것이 아닌 인터넷을 통해 최종 악성코드를 사용자의 시스템에 내려받고 실행 한다. 요즘 Dropper보다 Downloader의 비중이 커졌다

3)Exploit
Exploit은 특정 소프트웨어의 취약점을 이용해서 악성 행위를 하게 만드는 것이다. 특정 소프트웨어의 취약점을 찾아 악성 쉘 코드를 삽입하여 사용자가 이 특정 소프트웨어를 실행하게 되면 추가적으로 악성코드에 감염된다.

4)Password Stealer
Password Stealer는 사용자가 웹 페이지나 게임 등에 로그인 할 때 사용자의 계정을 빼내어 공격자의 서버에 보내 줌으로서 계정을 탈취한다.

5) Proxy
Proxy 공격자가 APT나 봇넷을 구성할 때 역 추적을 어렵게 하려고 쓰이는 악성코드 유형으로서 공격자와 최종 행위지 사이에서 네트워크 중간다리 역할을 해주는 것을 뜻한다. 

6)Clicker
Clicker는 주로 USB를 통해 전파되는데 실행파일의 아이콘을 일반 사용자가 클릭하게끔 유도하여 Clicker 라는 이름을 갖게 되었다.

7) Adware
광고나 마케팅을 목적으로 배포하는 악성코드로써 감염시 IE를 실행하면 특정 홈페이지의 팝업창이 뜨고 포털 사이트에서 검색할 때 무조건 최상위에 특정 링크가 뜨게 한다.

8) KeyLogger
사용자가 입력한 키보드 값들을 저장하여 공격자에게 보내주는 악성코드 유형으로서 정보를 탈취한다.

9)trojan horse(트로이 목마)
트로이 목마는 정상적인 기능을 하는 프로그램으로 가장하여 프로그램 내에 숨어서 의도치 않음 기능을 수행하는 프로그램의 코드 조각이다.

'Malware' 카테고리의 다른 글

악성코드가 하는 주요 행위  (0) 2016.01.15
악성코드 유형  (0) 2016.01.15

SFX Archive란?

SFX Archive는 Self-extracting file Archive의 약자로 자체 압축 풀림 또는 자동 압축 풀림을 의미한다. 대부분의 압축 파일은 알집 같은 별도의 소프트웨어를 이용해서 압축을 풀 수 있지만 위와 같은 방법으로는 별도의 소프트웨어가 필요 없이 압축을 풀 수 있게 해준다. 따라서 이러한 방법으로 파일을 하나 다운 받아서 실행만 시켜도 압축이 자동적으로 풀려 악성코드에 걸릴 가능성이 있다. 

SFX Archive를 사용하여 어떻게 공격 할 것인가 ?

원격 접속 프로그램을 사용하여 Reverse Connection의 형태로 피해자의 컴퓨터가 먼저 공격자의 컴퓨터에 접속하게 만든다.


이 실습에 필요한 파일

1.정상적인 스크린세이버 파일이라는 것을 보여주기 위한 아무거나 상관 없는 스크린세이버
2.
프로그램 아이콘
3.tight vnc(winVNC.exe, vncviewer.exe, VNCHOOKs.dll)
4.가상머신(winXP)


http://www.tightvnc.com/download.php <--- tight vnc다운경로
http://vnc-viewer.software.informer.com/5.1/ <--- vncviewer.exe 다운경로

winvnc.exe  <--- winvnc.exe 다운



Reverse Connection을 하기위한 VB Script 작성

위의 소스는 악성코드 설치를 위한 소스코드이다.(install.vbs)



위의 소스는 백도어를 실행시키고 있으며 install.vbs랑 소스가 같다. 


SFX Archive 압축하기

이제 구한 파일들을 드래그하여 우클릭해서 Add to archive해준다.
이때 필요한 파일은 WinRAR이다.

http://www.win-rar.com/ <- 다운 경로



이번에 만들려고 하는 것은 SFX archive이기때문에 해당되는 부분에 체크 표시를합니다.



옆에 있는 Advanced탭에가서 SFX options에 들어갑니다.



Path to extract에 %windir%\system32를 입력해준다. 이 경로는 윈도우 폴더 아래에 존재하는 시스템 폴더의 경로로 기본적으로 모든 OS에서 Path설정이 되어 있기때문에 해당 폴더에 있는 파일은 어디에서든지 실행시키기가 쉽기때문에 위와 같은경로를 지정한다. 



다음 Setup탭에서는 압축이 풀리기 전이나 풀리고 난 후의 실행할 것을 정하는 부분을 보여준다. 앞에 우리는 악성코드를 작성해놨고 이것을 압축이 풀린 후 압축파일들이 윈도우즈 시스템 폴더에 풀린 후 실행하도록 설정하면 되겠다. 아까 우리는 install.vbs라는 소스를 작성했다.



Modes탭에서 Hide all을 하면 이러한 과정들을 보이지 않게 숨겨준다. Display all하면 다 보여준다.



Update탭에서는 아래에 OverWrite mode에서 Overwrite all files를 선택하면 같은 파일이 있어도 사용자에게 물어보지 않고 바로 덮어쓴다. Ask before overwrite는 덮어쓰기전에 사용자에게 물어본다.


마지막으로 우리가 만든 파일이 덜 수상하게 보이기위해 아이콘을 넣는다. 

http://simplyicon.software.informer.com/1.1/ <- 사진파일들을 아이콘으로 바꿔주는 프로그램


다했다면 이제 확인을 누르면 된다.



러면 파일이 하나 만들어 져있을 것이고 응용프로그램이라고 되어 있을 것이다.



이제 공격자 컴퓨터에서 포트를 열어두고 기다려야한다.


지금 약간 가려져있는데 -viewonly -listen 8088라고 입력하면 된다. 
8088인 이유는 아까 소스를 짤때 8088포트로 연결할려고 하기때문에 8088을 한다.
-viewonly 는 단순히 모니터링을 목적이면 쓰는 명령어이다

위 명령어를 실행시켰다면 우측 하단에 트라이모드로 내려간 것을 볼 수 있다.


그럼이제 아까만든 악성파일의 이름을 그럴싸하게 바꿔주고 확장자를 .scr로 바꿔준다.
그럼 감쪽같이 스크린세이버 파일같이 보인다. 위에서 확장자를 바꿔줘도 실행이 되는데 exe파일과의 실행 구조가 같아 실행시키는데 아무런 문제가 없다.

그리고 각종 방법을 통해 피해자가 프로그램을 다운받고 실행 시켰다고 하자.
그럼 스크린세이버 화면이 한번뜬다. 스크린세이버가 적용된거처럼 말이다. 


하지만 그 사이에 시작프로그램에 파일이 자동으로 설치가 되고



WINDOWS\system32에 아까 우리가 포함하고 있던 파일들이 생성된 것을 알 수 있다.


이렇게 정상적인 파일인 것처럼 보이면서 뒤로 할거 다하는 프로그램이 만들어졌다. 요즘엔 이런방법이 안통하고 백신에서 걸러내겠지만 만약 백신이 안깔려져 있고 좀 수상한 프로그램을 다운받으면 바로 털릴 수 있을 것이다.
따라서 우리는 못미더워도 백신을 항상 켜두고 수상한 프로그램이 있으면 많은 고민끝에 다운받거나 다운받지 않도록 하자.


이글 처음에 Reverse Connection로 한다고 했는데, 원래라면 피해자가 파일을 다운받고 프로그램을 실행 시키면 스크린세이버가 뜨는데 그와 동시에 공격자의 컴퓨터에서도 피해자의 스크린세이버가 뜬다. 하지만 필자는

이 오류가 계속 떠서 끝내 하진 못했다.(위프로그램 말고 netcat으로도 해봤는데...)  이걸 읽는 여러분은 저보다 더 똑똑할 것이기 때문에 잘 실행 할 수 있을것이라 생각 되고 또는 이러한 방법도 있구나라는 것만 인지해도 좋을 것 같다. 
이글은 '해킹의 비밀을 푸는 KEY 15'라는 책을 기본으로하여 썼다. 궁금한 점이 있거나 더 자세하게 보고 싶으면 이 책을 사서 보면 되겠다. 

틀린 부분이나 이렇게 하면 될거 같다라고 생각되시면 댓글로 해주시면 다음에 한번 적용시켜 보겠습니다.



'Malware > Make Malware' 카테고리의 다른 글

SFX Archive를 이용한 악성코드 제작  (4) 2016.01.07
  1. 2016.04.01 11:12

    비밀댓글입니다

  2. 2017.06.25 10:28

    비밀댓글입니다

  3. asdasdad12412@naver.com 2017.06.25 10:29

    악성코드 제작법 기초부터 차근차근히 잘 알려주시면 감사드리겠습니다

  4. asdawd235@naver.com 2017.06.25 10:29

    이메일 아르켜주세요

+ Recent posts