4. http browser 서버
이번엔 http browser 서버를 통해 현재 어떤 os를 사용하고 arch는 어떤 것을 사용하는지 알아보기 위한 실습이다. 전 실습과 차이점이 있다면 기본 옵션부분이 추가되었다는 점이다.
4-1) http browser 서버 실습
<그림 4-1 http_explits_server.rb 파일>
기존에 만들었던 http_server.rb 파일을 복사해서 http_exploits.server.rb라는 이름으로 파일 하나를 만들어준다.
<그림 4-2 http_explits_server.rb 코드 - 1>
vi에디터로 http_explits_server.rb를 실행시킨다. 이번에 사용할 라이브러리는 BrowserExploitServer이다. 저 부분만 바꿔주고 Name은 browser exploit server test로 Name을 바꿔준다.
<그림 4-3 http_explits_server.rb 코드 - 2>
웹 페이지에 어떤 메시지를 줄 것인지 코드를 만든 사진이다. request.uri를 이용해 요청을 받아 화면에 메시지를 출력해주는 코드이다.
<그림 4-4 msfconsole을 이용한 exploit>
msfconsole을 이용해 exploit을 하는 과정이다. 우리가 만든 파일 경로를 지정해주고 옵션들을 지정해준다. 옵션은 uripath와 lport를 지정해주어야 한다. uripath는 /로 지정해주고 lport를 3434로 지정해주었다. lport는 하나만 사용이 가능하기 때문에 다음에 재사용이 안된다. 다음번에 lport를 지정해 줄때는 다른 포트로 지정해야 한다. 옵션을 모두 지정하고 exploit을 실행시킨다.
<그림 4-5 Internet explolor 실행>
윈도우 7 가상환경으로 와서 Internet explolor을 실행하고 칼리리눅스의 IP주소를 입력해준다. 필자의 IP는 10.10.10.3이고 뒤에 8080도 입력해서 실행시켜주면 사진과 같은 화면이 나오면서 칼리리눅스로 정보를 전송한다.
<그림 4-6 msfconsole exploit 실행 결과>
윈도우 7에서 Internet explolor 실행시키면 서버쪽에서는 사진과 같은 결과가 나오게 된다. 윈도우 7에 있는 Browser 정보들을 모아 전송받게 된다.
<그림 4-7 http_explits_server.rb 코드 - 3>
윈도우 7에서 Internet explolor 실행시켜보면 웹페이지에는 아무것도 안나오고 Browser 정보들만 서버쪽으로 전송시키게 된다. 그렇기 때문에 on_request_exploit 클래스에다 send_exploit_html을 추가하면 우리가 출력받을 hello world를 브라우저에 띄울 수 있게 된다.
<그림 4-8 http_explits_server.rb 코드 - 4>
추가적으로 하나 더 설명하자면 os_name이라는 기본 옵션값 안에 입력해준 변수명이 있는데 필자는 윈도우 7 환경을 쓰기 때문에 window_7로 설정해 주었지만 이것은 본인의 가상환경에 맞는 os 이름을 설정해줘야 브라우저에서 서버로 전송시 서버에서 os가 매칭이 되지 않는다는 문구가 뜨지 않게 된다.
<그림 4-9 Internet explolor 실행 결과>
코드를 입력하고 msfconsole을 재실행시켜서 다시 exploit을 하고 Internet explolor를 실행시켜 IP주소를 입력해보면 사진과 같이 우리가 원했던 메시지가 브라우저 창에 출력된 것을 확인할 수 있다.
2) pry 실행
<그림 4-10 require pry 추가>
이번엔 Browser을 실행시키면 msfconsole에서는 pry가 실행되게 하려고 한다. 먼저 require 'pry'를 추가해준다.
<그림 4-11 binding.pry 추가>
on_request_exploit 부분에 binding.pry를 추가시켜 바인딩해준다.
<그림 4-11 Internet explolor 실행>
입력한 코드를 저장하고 msfconsole을 실행시켜 옵션들을 지정해주고 exploit을 실행시켜 놓은 상태에서 Internet explolor을 실행시켜 칼리리눅스 IP주소를 입력하고 실행시켜준다.
<그림 4-12 pry 실행 화면>
그렇게 되면 칼리리눅스에서는 사진과 같이 pry가 실행이 되게 된다. 우리가 입력해줬었던 코드들도 화면에 잘 나타나 있음을 볼 수 있다.
<그림 4-13 tartget_info>
pry 명령어로 tartget_info를 입력해주면 사진과 같이 os_name, flash 등의 여러가지 정보들을 Browser에서 가져왔음을 볼 수 있다. 사진과 같이 정보들이 표시된다면 우리가 최종적으로 하려고 했던 컴퓨터 정보들과 브라우저에 대한 정보들을 성공적으로 가져왔다는 것을 확인 할 수 있다.
'메타스플로잇' 카테고리의 다른 글
FTP 스캐너 모듈 개발 (2) (0) | 2018.04.24 |
---|---|
FTP 스캐너 모듈 개발 (1) (0) | 2018.04.23 |
http Server (0) | 2018.04.22 |
http 클라이언트 (0) | 2018.04.22 |
메타스플로잇 TCP 통신 (0) | 2018.04.19 |