바야흐로 jar도 이젠 RAT시대다.

분석 시간 지연을 위해 적용된 ALLATORIxDEMO 난독화를 풀어보자.

앞서 해당 샘플은 바이러스토탈에 2014-10-07에 최초 업로드 되었다.

jar파일은 pkzip로 압축되어 있어 생성 시간(수정 시간)은 MS-DOS date format으로 기록하며, 0x453D를 계산해보면 

0x453D -> 10001010 0111101
1.100010 = 34 + 1980 = 2014
2.1001 = 9
3.11101 = 29

2014-09-29에 생성한 것으로 추정할 수 있다.


<Fig1. pkZip >


Docs.jar 상세 행위 정보 : http://kjcc2.tistory.com/2249

분석 대상 파일 정보



<Fig2. Client.class >


h.ALLATORIxDEMO로 문자열이 들어가서 복호화된 결과를 받아 출력한다.


그럼 h.ALLATORIxDEMO만 분석하면 문자열 복호화가 가능하다!


<Fig3. ALLATORIxDEMO >

엄청나게 간단한 연산이다. 각 클래스마다 총 2개의 키가 있어 (클래스 별로 다름) 받은 문자열의 홀짝으로 xor연산을 한다.


  그럼 파이썬으로 포팅하자.

a = "\034\005-\037-M?\f;M)M8\037'\017$\b%M:\b/\004;\031-\037!\003/M<\005-M&\f<\004>\bh\005'\002#C"
j = 4 << 4 ^ 4 << 1
m =  ((0x3 ^ 0x5) << 4 ^ 3 << 2 ^ 0x1)

deobf=""
for i in range(len(a)):
    deobf += chr(int(a[i].encode('hex'), 16) ^ ((j, m), (m, j))[len(a) % 2][i % 2])
            
print deobf

짜잔


<Fig4. deobfuscation >




Posted by kkoha :