이번에는 "Drive-By-Download(DBD)공격"의 간단한 원리 등을 직접 해보겟습니다.


저번 이론편에서 페이지 이동 및 악성코드의 유포에 대한 모든 것이 "스크립트 코드"로 이루어진다고 말하였습니다.



순서대로 하나씩 구현을 해보겠습니다.

(난독화는 하지 않고 진행하겠습니다.)


1. 페이지 이동

:<iframe>, javascrpit 코드 등을 사용하여 페이지 이동이 가능해집니다.


총 5개의 웹 사이트가 있다고 가정합니다.


각각의 사이트들은 그냥 h2 태그에 의해 문자를 보이는 형식으로 이루어져 있습니다.

A1.html = A1 PAGE 출력 / A2.html = A2 PAGE 출력 ...

위의 노랑색으로 칠한 코드는 페이지를 불러오는 역할을 합니다.



*iframe 코드 설명

iframe코드는 다른 웹사이트를 자신의 웹의 프레임 안에 불러오는 역할을 합니다.

만일 위의 코드에서 display:none(화면에 안보이게하기)를 없애버리면...


즉! 웹사이트안에 웹사이트가 생기는 것입니다.




이러한 것을 사용하면 하나의 웹사이트가 다른 웹사이트를 불러오고, 그 웹사이트가 다른 웹사이트를 불러올 수 있습니다.

이말은 다른 웹사이트의 스크립트 코드에 의해 영향을 받을 수도 있다는 것을 말합니다.

 

예를 들어

A5.HTML에 alert("A5")라는 스크립트 코드를 넣으면, A1에 접속 시 A5경고 메시지를 보게 됩니다.


이것을 악성코드 유포에 사용한다면...

A1에 접속 시 A2,A3,A4,A5안에 멀웨어(바이러스)를 다운 받는 코드가 있다면, 바이러스를 다운받게 됩니다.




2. 악성 스크립트 코드 & 난독화

위에서 설명한 예제로 든 것은, 기존에 쉽게 알 수 있는 script 코드 입니다.


하지만 실제로는 이러한 스크립트 코드를 악의적인 목적으로 만들어 악성 스크립트 코드를 만듭니다. 그런 후에 지나치는 웹 


사이트 중 하나에 이러한 스크립트 코드를 넣게 되면, 직접적으로 그 사이트에 접속하지 않더라도, 연결되어 있는 웹에 접속하


게 되면 자동적으로 이 악성 코드에 감염되게 됩니다.


스크립트 코드를 분석하게 되면, 이러한 악성코드가 무엇인지, 무슨 기능을 하는지, 서버는 어디를 이용하는지, iframe태그를 어디다 연결하는지 등에 대해 알게됩니다. 그렇기에 이러한 분석을 최대한 지연시키기 위해 난독화를 이용합니다.


예를 들어

<iframe src="A2.HTML" style="display:none"></iframe>이 HTML페이지의 소스에 있으면 바로 보이기 때문에...


"%3Ciframe%20src%3D%22A2.HTML%22%20style%3D%22display%3Anone%22%3E%3C/iframe%3E" 등으로 난독화 하여 자바스크립트 코드인 Document.write랑 같이 사용합니다.

eval과 replace 등의 함수 조합을 통하여 <iframe>태그를 만들어서 호출합니다.


또는 


쉘코드를 이용하기도 하는데, 이러한 쉘코드도 그대로 사용하지 않습니다.

hex 값 변조, xor 변조 등을 통하여 쉘코드를 변조 시켜 사용합니다.


이외에도 많은 난독화 기법을 사용하여 악성 스크립트 코드등을 이용합니다.





<Created by 서쿤>




'WEB > Web Hacking' 카테고리의 다른 글

xss (Cross Site Scripting)  (0) 2017.12.04
error based sql injection  (0) 2017.09.18
Blind SQL Injection (이론편)  (0) 2017.05.14
파일 다운로드 취약점  (0) 2017.05.08
CSRF (Cross-site request forgery) 란  (0) 2017.04.28

+ Recent posts