* 서론
관리 솔루션으로 유명한 M사의 솔루션을 이용한 악성코드를 분석했다.
딱히 내용은 없고 서버가 살아있지 않아서 중단.
관리 솔루션으로 유명한 M사의 솔루션을 이용한 악성코드를 분석했다.
딱히 내용은 없고 서버가 살아있지 않아서 중단.
대신 추후 비슷한 공격이 있을 수 있으니 암호화 데이터 복호화 루틴 구현.
* 코드
* 코드
#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'NOFACELAB'
import sys
def main():
key = "\x78\x56\x34\x12"
key_size = len(key)
encode_data = "\xEF\xD3\xDF\xF2\xEB\xC1\x6B\xE1\x06\xB7\x83\xD6\x1F\x63\x14\x63"
encode_data += "\x8A\x03\x45\xE6\xD1\xF2\xA9\x5E\x6B\x44\x1F\x69\xBA\x9E\x84\x3A"
encode_data += "\x5C\x8F\x41\x8E\xCB\x79\x89\x62\x71\x0B\x1C\x96\x55\xC2\x62\x84"
encode_data += "\x79\x51\x3F\xDE\x4D\xFC\xB8\xD3\xF4\xB4\xF2\x3F\x66\x7C\x95\x2B"
encode_data_size = len(encode_data)
decode_data = ""
xorKeySize = 256
xorKeyData = [x for x in range(xorKeySize)]
xorKeyDataKey = [key[x % 4] for x in range(xorKeySize)]
idx = 0
for i in range(0, xorKeySize):
c = xorKeyData[i]
idx = divmod(c + ord(xorKeyDataKey[i]) + idx, xorKeySize)[1]
xorKeyData[i] = xorKeyData[idx]
xorKeyData[idx] = c
idx = 0
cnt = 0
for i in range(0, encode_data_size):
idx = (idx + 1) % xorKeySize
c = xorKeyData[idx]
cnt = divmod(c + cnt, xorKeySize)[1]
xorKeyData[idx] = xorKeyData[cnt]
xorKeyData[cnt] = c
decode_data += '%c' % (ord(encode_data[i]) ^ xorKeyData[divmod(c + int(xorKeyData[idx]), xorKeySize)[1]])
print decode_data
return
if __name__ == '__main__':
main()
댓글 없음
댓글 쓰기