'이런건 처음 본다'에 해당되는 글 1건

  1. 2009.03.05 최고의 악성스크립트
0x02 analysis2009. 3. 5. 18:27

이번에도 네x버 SecurityPlus 까페에서 구한 샘플입니다.
까페 주인장이신 mirrk님께서 올려두셔서 받았었습니다.(작년 12월 30일날)
그냥 놔두고 있다고 오늘 다시 보게 되었습니다.
이미 분석이 끝나신 분들도 계시지만 개인적인 성취감을 위해 한번 덤벼봤습니다.


덤비긴 덤볐는데 초반부터 제가 몰렸습니다. -_-;;
악성스크립트를 그리 많이 본건 아니지만 지금까지 본 악성스크립트 중 최고로 독한놈인 듯 합니다.
첨부된 파일은 index와 check.html 파일 두개였습니다.

mirrk님의 글을 보면




다소 재밌는 구석(?)이라고 하셨지만 전혀 재미있지 않았습니다!!....(라고 말하고 싶지만 사실 좀 재미있긴 했습니다. 헤헤)

일단 index 파일부터 보시겠습니다. 내용이 길어 일부만 보여드리겠습니다. 대충 감만 잡으시길...




스크롤바를 보시면 아시겠지만 이러 내용이 두번 더 나옵니다. -_-;;
처음엔 눈 빠지는줄 알았습니다. 그나마 눈이 남들보다 조금 좋은편이라 다행이었습니다.

패턴을 확인해보니

알파벳대문자='~~~~~';

이런 형태였습니다. 즉 대문자가 변수인거죠..
그러다가 어느 정도 진행하다가 A+=O+P+E+C+B+M 와 같은 형태로 스크립트 코드를 전부 A라는 변수에 집어 넣고 있습니다.

딱히 다른 방법이 생각나지 않아 메모장에 붙녀 넣은 다음 '; 가 나오고 그 다음에 알파벳 대문자가 나오면 알파벳 앞에서 엔터를 쳐서 보기 좋게 정렬해 나갔습니다. 그런데 아무리해도 줄어들 기미가 보이질 않았습니다. 막막하더군요...

그러다 갑자기 생각났던게 vi 에디터였습니다. 요즘 리눅스에 좀 소홀히했더니 무뎌지나 봅니다.




:1s/';/';^M/g   ---> ^M은 ctrl+v를 누르시고 ctrl+m을 누르시면 됩니다.




변경되었습니다. 중간중간 하얀색선 안의 내용처럼 되는 부분이 있는데 몇개 안되니 직접 수정해주시면 됩니다.

대충 형태를 보니 알파벳 대문자로 변수 지정을 하고 원본 스크립트를 무작위로 쪼개서 변수에 할당합니다. 물론 순서에 맞기 않게 마구잡이로 섞어놨습니다. 순서대로 해놨으면 참 보기 쉬웠을텐데 말이죠.. 똑똑한건지 지독한건지...

이렇게 변수를 계속 할당하고 A에 append시킨 후 가장 마지막엔 eval() 함수를 사용해서 스크립트를 실행하고 있었습니다. 그래서 eval() 대신 document.write를 사용해서 실행되는 스크립트를 출력해보았습니다.




출력해보니 이번엔 좀 더 알아보기 쉽게 나오긴 했지만 아직도 복잡하군요...-_-;;




직접 실행시켜보니 에러가 나더군요..
아무래도 뭔가 좀 부족한가 봅니다.
계속 하고 싶지만 오늘은 제가 있는 곳이 너무 더워 그만 나가볼렵니다.
비도 오니 쏘주나 한잔~ ㅎㅎ

원본 코드 첨부하겠습니다.









Posted by demantos