해킹 팀용 SkypeACLKeyGen.exe 분석
그래서...
오늘은 무엇을 분석할까요? 오늘은 Hacking Team의 소프트웨어 하나를 분석합니다. Skype에 관한 건가요? 왜 이걸 하나고요? 모르겠어요, 그냥 흥미롭거든요.
어쨌든 런타임 동작부터 살펴보겠습니다. 보시다시피 사용자 이름과 플러그인 경로가 필요하고 ACL을 출력합니다. 그렇다면 이게 도대체 뭘까요? 이 https://airbus-seclab.github.io/skype/vskype-part2.pdf 문서를 살펴보면 이렇게 나와 있습니다. - "Skype는 실행 중인 인스턴스에 플러그인이 자신을 attach 할 수 있게 하거나 거부하는 ACL과 유사한 시스템을 구현한다. 플러그인 "서명"은 경고 대화상자에 대한 사용자 응답에 따라 구성 파일에 추가된다" - 그렇다면 그 소프트웨어 폴더에는 뭐가 있을까요?
음, 그래요... 아직 아무것도 알려주지 않네요. 그렇죠, 폴더에 office로 끝나는 stage 1 셸코드가 보이는데, 아마 office 익스플로잇을 암시하는 것 같습니다(아직 확정되진 않았지만). C# 앱인 fakeport, tracer.exe 그리고 다른 것들도 있네요. 좋아요. 제 직감으로는 실제로 등록될 플러그인은 tracer.exe일 것 같아요. 왜냐고요? 같은 PDF에서 - "Skype 음성 엔진은 Logging과 Logging2가 설정되면 암호화된 추적 파일을 생성할 수 있다. 암호화는 훨씬 간단한데, 31바이트 키를 사용하는 기본적인 XOR이다" - 라고 하거든요. 그럼 ACL의 실제 생성기를 분석해 보도록 하죠. 그다음엔 tracer를 살펴보고, 아마 다른 게시물에서는 셸코드를 다룰 겁니다 ;)
우선 이것부터 시작합니다
그리고 이것으로 넘어갑니다
마지막으로 이 흐름들로 이어집니다
거기서부터 이것으로 흘러갑니다




좋아요. 또 하나의 동적 이스터에그 동작이 있습니다. 실행할 사용자와 플러그인을 입력하면 다음과 같은 결과가 나옵니다 .png)
어쨌든 더 나아가 분석해 보겠습니다



전체적으로 보면 파일 내용의 sha2를 계산하고 그 내용을 메모리에 매핑합니다. 불행히도 동적 분석에서는 실패해서 아무것도 하지 않았습니다 :/\ 어쩔 수 없죠. 계속 진행합니다. probably_do_hash_based_function_function_recovery로 들어갑니다.


아쉽게도 이전과 같은 경우입니다. 메모리에 매핑하지 못하고 함수에서 종료됩니다. 그럼에도 불구하고 md5만 계산하고 아마 md5 비교를 기반으로 함수 복구를 수행하는 것 같습니다.
그런 다음 malloc과 memset을 수행합니다
.png)
그런 다음 파일 이름을 대문자로 변환합니다

사용자 이름도 동일하게 처리합니다

좋아요. 다음은 이 작업을 수행합니다:
기본적으로 우리 플러그인을 실행할 수 있도록 자체 ACL을 생성합니다. 이 경우 이제 Tracer.exe가 될 것이라고 가정합니다. 이론적으로는 Skype 음성 엔진이 생성한 추적 파일을 기록할 것이라고 추측합니다.



위 이미지 함수들의 출력 결과

위 이미지 함수들의 출력 결과
일단 여기까지입니다. 오늘 나중에 다시 와서 이 글을 업데이트하겠습니다. 지금으로서는 이 함수의 절반만 분석하는 일만 남았습니다.
그리고 나중에 다시 돌아오면 재미 삼아 some_decode 함수도 파헤쳐 보고, 거기서 tracer.exe 바이너리로 넘어갈 것입니다. 즐겁게 해킹하세요. 곧 다시 만나요.