반응형
SMALL

'메타스플로잇'에 해당되는 글 12건

반응형
LIST
반응형
SMALL

7. 메타프리터 활용


7-1) 메타프리터 stdapi 실습


<그림 7-1 msfvenom을 활용해 met.exe 파일 생성>


msfvenom을 활용해 악성코드 파일을 생성해준다. lhost는 칼리리눅스 ip주소를 쓰고 위에 사진대로 명령어를 입력해주면 metasploit_framework 파일 목록에 met.exe가 생성된다.


<그림 7-2 msfconsole 실행 파일>


사진과 같이 입력하고 met.rc로 저장한다. msfconsole에 접속하고 multi/handler를 사용할 것이고 payload를 set 시켜서 exploit을 해주는 명령어로 구성이 되어 있다.


<그림 7-3 msfconsole 실행 결과>


msfconsole -r met.rc 명령어를 실행시킨 결과이다. 아직 윈도우7 가상 환경에서 met.exe 악성파일을 실행시키지 않았기 때문에 세션이 잡히지 않은 상태이다.



<그림 7-4 met.exe 파일 실행>


윈도우 7 환경에 칼리리눅스에서 만들었었던 met.exe를 가져와서 실행시켜주면 사진과 같이 메타프리터 세션이 잡히게 된다.


<그림 7-5 세션 확인>


sessions -i 명령어를 입력해서 현재 어떤 세션이 잡혀있는지 확인할 수 있다. 사진과 같이 세션이 잡혀있으면 악성코드 파일이 정상적으로 실행된 것이다.


<그림 7-6 메타프리터 접속>


메타프리터에 접속된 화면이다. sessions -i 1 명령어를 사용하면 후속공격 모듈인 메타프리터에 접속이 가능하다.



<그림 7-7 meterpreter helloworld.rb>


helloworld.rb 파일을 메타프리터 폴더 안에 만들어서 사진과 같이 입력해준다. 현재 윈도우 7에 시스템 정보에 대해 보기 위한 코드이다.


<그림 7-8 helloworld.rb 파일 실행>


helloworld.rb 파일을 실행한 결과이다. run 명령어 하나로 파일만 만들면 사진과 같이 시스템 정보를 알 수 있다. 물론 client명령어로도 실행이 되지만 파일을 만들어서 실행시키는 방법도 있다.


<그림 7-9 client.sys.config 실행>


irb에 접속해서 사진과 같이 명령어를 입력해주면 여러가지 시스템 보안 정보들을 볼 수 있다. lib/rex/post/meterpreter/extensions/stdapi/sys 경로를 따라가보면 여러 파일들이 나오는데 파일들을 보고 여러가지 명령어를 실행시킬 수도 있다.


반응형
LIST

'메타스플로잇' 카테고리의 다른 글

FTP 스캐너 모듈 개발 (2)  (0) 2018.04.24
FTP 스캐너 모듈 개발 (1)  (0) 2018.04.23
http browser 서버  (0) 2018.04.23
http Server  (0) 2018.04.22
http 클라이언트  (0) 2018.04.22
블로그 이미지

만년필석사

,
반응형
SMALL

6. FTP 스캐너 모듈 개발(2)



6-1) FTP 스캐너 모듈 개발 실습(FreeFTP 로그인 정보)



<그림 6-1 파일 복사>


scanner/ftp폴더에서 ftp_login.rb파일을 해당 경로에 복사를 해준다. 우리는 dev폴더를 사용할 것이다.


<그림 6-2 ftp_login.rb 코드 - 1>


ftp_login.rb파일에서 전에 실습했던 것과 믹스인 쪽에서 변화가 있다. require부분에는 credential_collection이라는 라이브러리 폴더가 추가 되었는데 creds 명령어를 사용이 가능하게 만드는 라이브러리이다. 또한 믹스인 부분에 AuthBrute가 추가되었고 Scanner를 통해 로그인 정보들을 스캐너가 가능하게 해준다. 나머지 부분은 기존과 거의 동일하다.




<그림 6-3 ftp_login.rb 코드 - 2>


scanner 정보들을 나타내주는 코드이다. 어떤 정보들을 스캐너 할 것인지에 대해 정해준다. scanner이 정상적으로 실행되면 아래에 사진에 있는 코드들이 동작되게 된다. 현재 우리는 FTP에 아이디, 패스워드를 알아 볼 것이기 때문에 사진과 같이 코드를 만들었다.


<그림 6-4 msfconsole 실행>


msfconsole을 실행시키고 사진과 같이 ftp_login.rb 파일이 지정되어 있는 경로를 지정해준다.


<그림 6-5 FreeFTP 설정>


FreeFTP를 실행시켜 FTP, SFTP를 연결시켜주어야 한다. 이때 User에서 반드시 사용자를 지정해주고 연결시켜야 한다.

사용자를 지정해줄 때 아이디, 패스워드를 잘 기억해 놔야 한다. 


<그림 6-6 msfconsole exploit>


rhosts에서 IP주소를 지정하고 FreeFTP에서 username, password를 지정한 후 exploit을 실행시킨다. 실행이 완료되면 pry가 실행이 된다.



<그림 6-7 creds>


pry를 빠져나와 creds를 실행시켜보면 사진과 같이 FTP 정보들이 저장되어 있음을 확인 할 수 있다. 사진과 같이 정보가 나오면 FTP 스캐닝에 성공한 것이다.


<그림 6-8 services>


services를 실행해보면 ftp 상태와 정보들을 알 수 있다. 현재 ftp가 열려있다는 것과 port,host 등과 같은 정보들을 스캐닝 했다는 것을 알 수 있다. 이처럼 타 PC의 FTP 정보들을 모듈을 만들어서 탈취해 오는 것이 가능하다.








반응형
LIST

'메타스플로잇' 카테고리의 다른 글

메타프리터 stdapi 활용 실습  (0) 2018.04.27
FTP 스캐너 모듈 개발 (1)  (0) 2018.04.23
http browser 서버  (0) 2018.04.23
http Server  (0) 2018.04.22
http 클라이언트  (0) 2018.04.22
블로그 이미지

만년필석사

,
반응형
SMALL

5. FTP 스캐너 모듈 개발(1)


이번에는 FTP에 있는 정보들을 칼리리눅스로 가져와서 보기 위한 모듈을 개발해보려고 한다. exploits가 아닌 Auxiliary를 활용해서 한다는 것이 차이점이다. 추가로 FTP 정보들이 데이터베이스에도 저장이 가능하게 개발을 해봤다.


5-1) FTP 스캐너 모듈 개발 실습


<그림 5-1 ftp_check 코드 - 1>


auxiliary_template.rb파일을 복사해서 파일명을 바꿔서 저장한다. 경로는 modules/auxiliary/dev이며 dev는 필자가 따로 폴더를 만들어 주었다. 이 폴더 안에 ftp_check.rb로 바꿔서 저장한다. vi에디터를 사용해서 파일을 열고 믹스인을 추가해준다. Scanner 라이브러리를 추가하게 되면 rhost가 rhosts로 바뀌게 되고 Report 라이브러리를 사용하게 되면 데이터베이스를 사용이 가능해진다. 추가를 한 후 Name은 FTP Version check라고 바꿔주고 Description은 ftp version check module로 바꿔준다.


<그림 5-2 ftp_check 코드 - 2>

host를 연결시켜 banner정보들을 가져오는 코드이다. 클래스를 run_host(target_host)로 지정해줘야 exploit 실행시 모듈 에러가 발생하지 않게 된다.

<그림 5-3 msfconsole 실행>

msfconsole을 실행시키기 전에 service postgresql start 명령어를 실행해 줘서 msfconsole과 데이터베이스를 꼭 연결시켜준다. 연결시키고 실행이 되면 db_status로 데이터베이스 연결상태를 확인하고 services 명령어를 실행시켜보면 우리가 데이터베이스 안에 가져오고 싶은 정보들을 ftp_check 파일에서 구현을 한 것이다. msfconsole과 같이 보면 우리가 왜 그것을 구현했는지 좀 더 빨리 감이 올 것이다.


<그림 5-4 FreeFTP 실행>


윈도우XP 가상환경에서 FreeFTP를 실행시켜 FTP, SFTP를 실행시켜준다. FreeFTP가 작동되어야 exploit를 해서 정보들을 가져올 수 있다.


<그림 5-5 exploit 실행 결과>


msfconsole을 실행시켜 ftp_check 파일 경로를 지정해주고 rhosts를 지정해준다. IP 주소는 윈도우 XP IP주소를 입력해주고 exploit을 실행해준다. 정상적으로 실행이 되었으면 FTP 배너의 정보들이 탈취 되었음을 볼 수 있다. 우리가 코드로 입력해준 값들이 정상적으로 실행되었음을 볼 수 있다.

반응형
LIST

'메타스플로잇' 카테고리의 다른 글

메타프리터 stdapi 활용 실습  (0) 2018.04.27
FTP 스캐너 모듈 개발 (2)  (0) 2018.04.24
http browser 서버  (0) 2018.04.23
http Server  (0) 2018.04.22
http 클라이언트  (0) 2018.04.22
블로그 이미지

만년필석사

,
반응형
SMALL

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에서 가져왔음을 볼 수 있다. 사진과 같이 정보들이 표시된다면 우리가 최종적으로 하려고 했던 컴퓨터 정보들과 브라우저에 대한 정보들을 성공적으로 가져왔다는 것을 확인 할 수 있다.



반응형
LIST

'메타스플로잇' 카테고리의 다른 글

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
블로그 이미지

만년필석사

,

http Server

메타스플로잇 2018. 4. 22. 21:02
반응형
SMALL

3. http server


http server는 현재 우리가 작성한 코드를 윈도우 7 가상환경을 이용해서 송신해보는 실습이다. 자바스크립트, 루비언어로 이루어진 모듈을 활용해서 exploit하는 실습이기도 하다.


3-1) http Server 실습


<그림 3-1 http_server 코드 - 1>


기존에 사용했던 http_client를 복사해줘서 이름을 바꾸고 vi에디터로 실행시킨다. 믹스인을 바꿔줘야 하는데 HttpServer로 바꿔준다.


<그림 3-2 http_server 코드 - 2>


웹 페이지에 표시하는 메시지의 코드이다. 자바스크립트 alert를 이용해 경고창이 뜨게 하고, 자바스크립트 언어를 난독화 할 수 있게 JSObfu라는 라이브러리를 사용한다. 마지막으로 웹페이지에 메시지가 출력될 수 있게 html 코드로 마무리 해준다.


<그림 3-3 uri 코드 설정>


URI를 설정해주는 코드이다. 루비 문법 중 case, when으로 짜는 건데, 각각 다르게 URI를 지정해주고 어떤 메시지를 출력해서 보낼 것인지에 대해 만들어준다. 예를 들어 URI에 fake.html을 입력하면 one step more이라는 메시지가 출력되게 된다.


<그림 3-4 fake_page>


fake_page(cli)를 받는 코드이다. 위에서도 설명했듯이 URI에 fake.html을 입력하면 one step more이라는 메시지가 출력되게 된다.


<그림 3-5 msfconsole  경로 설정>


msfconsole을 실행시켜 경로를 지정해준다. 우리가 사용할 경로는 exploit/dev/http_server이다. 옵션을 살펴보면 우리가 필요한 옵션은 지정되지 않은 상태이다.


<그림 3-6 uripath, exploit>


uripath를 /로 지정해주고 exploit을 실행한다. 실행이 정상적으로 되면 Server started라는 문구가 출력되게 되고, IP주소가 보이게 된다.


<그림 3-7 world.html 실행 결과 - 1>


윈도우 7로 넘어와서 칼리리눅스 IP주소를 입력하고 뒤에 world.html을 입력해 실행하면 사진과 같이 우리가 모듈을 만들때 자바스크립트를 입력했던 경고창이 뜨게 된다.


<그림 3-8 world.html 실행 결과 - 2>


경고창이 뜨고 확인을 눌러주면 사진과 같은 메시지가 출력이 되게 된다.


<그림 3-9 fake.html 실행 결과>

fake.html 실행 결과 one step more이라는 메시지가 출력이 되게 된다. 이 역시 우리가 모듈을 만들때 입력했었던 메시지인데, 사진과 같이 메시지가 출력됨을 볼 수 있다.


<그림 3-10 코드 난독화>


world.html 소스코드를 확인해보면 사진과 같이 난독화가 되어 있음을 확인할 수 있다.  JSObfu 라이브러리를 사용하면 화면과 같이 코드 난독화가 가능하며, 구글 번역기를 활용해 다시 복호화도 가능하다.



반응형
LIST

'메타스플로잇' 카테고리의 다른 글

FTP 스캐너 모듈 개발 (1)  (0) 2018.04.23
http browser 서버  (0) 2018.04.23
http 클라이언트  (0) 2018.04.22
메타스플로잇 TCP 통신  (0) 2018.04.19
adobe flash player 취약점  (0) 2018.02.28
블로그 이미지

만년필석사

,
반응형
SMALL

2. Http Client 기능 구현


TCP 서버, 클라이언트 통신 실습에 이어 Http Client 모듈을 사용해 exploit하는 방법을 알아보려고 한다. 서버에 있는 웹 페이지 코드들을 exploit을 통해 msfconsole 창에 띄우려고 한다.


2-1) Http Client 통신


 <그림 2-1 tcp_client.rb 파일 복사>


지난 번에 실습했었던 tcp_client.rb 파일을 파일명만 바꿔서 그대로 복사해준다. 파일명은 http_client.rb로 한다. 


<그림 2-2 tcp_client 파일 코드 -1>


vi에디터로 tcp_client 파일을 열고 믹스인을 HttpClient로 바꿔준다. 앞서도 설명했듯이 core안에 있는 라이브러리들을 가져다가 쓰는 것이다. 


<그림 2-3 tcp_client 파일 코드 -2>


register options를 활용해서 우리가 필요한 옵션을 새로 추가해준다. 추가해줄 옵션은 targeturi이고, /를 지정해준다. 


<그림 2-4 tcp_client 파일 코드 - 3>


추가했던 옵션을 exploit에서 사용하기 위해 작성해주는 코드이다. target_uri로 사용할 옵션을 지정해주고 send_request_cgi를 통해 어떤 파일을 받을 것인지, 어떤 메시지를 받을 것인지에 대해 지정해준다. 만약 받는게 성공하면 200이라는 숫자값을 출력해주면서 access complete라는 메시지를 출력해 줄 것이고, 그렇지 않다면 not existed라는 명령어를 출력해 줄 것이다.


<그림 2-5 index.php 파일>


가상 윈도우 7을 실행시켜 Apm monitor을 설치해주고 Apm_setup/htdocs 경로에 index.php파일이 있는데 내용들을 모두 지우고 사진과 같이 코드를 작성해준다. username, password도 웹 페이지에 띄울 수 있다.


<그림 2-6 웹 페이지 실행 결과>


URL에 본인 IP를 입력하고 그 뒤에 /index.php?username = 1 & password = 2라고 입력하고 실행시켜 주면 웹 페이지에 1,2,wow라는 결과가 나오게 된다.


<그림 2-7 msfconsole 경로 지정>


msfconsole을 실행시켜 현재 우리가 만든 파일 경로를 지정해준다. 경로는exploit/dev/http_client이다.


<그림 2-8 http_client 옵션 지정>


http_client 파일의 옵션을 지정해준다. 윈도우 7의 IP주소를 입력해서 지정해주고 exploit을 감행한다.



<그림 2-8 exploit 결과>


exploit 결과 우리가 아까 윈도우 7에서 만들었던 index.php 코드들이 메타스플로잇으로 그대로 가져왔음을 볼 수 있다. 이처럼 http_client를 활용해서 웹페이지 코드들을 탈취하는 것이 가능하다.


2-2) Http_client pry


<그림 2-9 require 지정>


require을 먼저 선언해 주어야한다. require 'pry'라고 입력해준다.



<그림 2-10 binding.pry 지정>


pry를 사용하기 위해서는 pry를 바인딩 시켜주어야 한다. 위 사진과 같이 binding.pry를 입력해주고 저장한다.



<그림 2-11 http_client 경로 지정>



msfconsole 실행시켜 http_client경로를 지정해준다.


<그림 2-12 msfconsole 옵션 지정, exploit>


rhost 윈도우 7 IP주소를 지정해준다. 윈도우 7 있는 페이지 정보들을 가져오는 것이기 때문이다. 지정이 다되면 exploit 시도해주면 우리가 코드로 만들었던 http_client 파일의 코드가 실행되게 되고, pry 콘솔창이 실행되게 된다.


<그림 2-13 res.get_html_document 명령어 실행>


res.get_html_document 명령어를 실행한 결과이다. 트리구조로 나타내고 있으며, 우리가 지정해준 Text 또한 나타나고 있다.


<그림 2-14 html.at('div') 명령어 실행>


html.at('div') 명령어를 실행한 결과이다. div 필터링 걸어서 화면에 출력해주고 있는 거승ㄹ 있으며, client파일에서 지정해준 이름들 또한 나타나고 있다






반응형
LIST

'메타스플로잇' 카테고리의 다른 글

http browser 서버  (0) 2018.04.23
http Server  (0) 2018.04.22
메타스플로잇 TCP 통신  (0) 2018.04.19
adobe flash player 취약점  (0) 2018.02.28
metasploitables 해킹  (0) 2018.02.13
블로그 이미지

만년필석사

,
반응형
SMALL

1. 메타스플로잇 TCP Server, Client 통신 실습



메타스플로잇에서 모듈을 활용해서 TCP 통신에 대해 알아보고 구현했다. 서버가 실행되면 클라이언트쪽에서는 어떤식으로 받는지, 메시지를 출력했으면 어떤식으로 완료했다고 화면에 출력이 되는지에 대해 실습해보도록 하겠다.


1) TCP Server, Client 통신 주고 받기


<그림 1-1 TCP Server, Client 파일>


먼저 TCP Server, Client 파일을 만들어준다. server와 Client 코드도 전부 다르기 때문에 각각 만들어 줘야한다. 


<그림 1-2 TCP Server 파일 - 1>


vi에디터로 TCP Server 파일을 열어서 require을 입력해 어디서 라이브러리를 가져올 것인지 경로를 먼저 추가해준다. 그리고 include로 믹스인을 선언해준다. 우리는 TCPServer를 가져와서 쓸 것이기 때문에 TCPServer를 입력해준다. 처음에 클래스로 선언되어 있었던 Metasploit3 < Msf::Exploit::Remote 라는 부분을 그대로 가져와서 TCPServer라는 것만 추가해서 쓰는 것이다. 추가한 후에 Name, Author, Description, Targets부분을 수정해준다. Targets는 보통 1.0버전으로 공격을 감행하게 되는데 필자는 1.1버전까지 한번 추가해보았다. 이것은 본인의 자유이기 때문에 여러가지 방식으로 버전을 바꿔서 타겟팅을 정해 exploit을 시켜서 실험해보는 것도 많은 공부가 될 것이다.


<그림 1-3 TCP Server 파일 - 2>


이제 exploit부분을 작성해주어야 하는데, 먼저 우리는 서버쪽에서 Hello라는 값을 보낼 것이기 때문에 data에 hello라는 값을 입력해준다. 그리고 begin을 선언해 tcp_server를 연결시켜주겠다는 문구를 선언해준다. 만약 성공적으로 데이터가 전송이 되었다면 data send complete라는 메시지가 출력될 것이다. 만약에 데이터를 전송시키지 못하는 상황이 발생할 수도 있는데 전송시키지 못하게 되면 disconnect라고 해서 연결을 끊어준다는 코드를 작성해준다.


<그림 1-4 TCP Client 파일 - 1>


TCP Client파일도 마찬가지로 require부터 선언해서 어디서 라이브러리를 가져올 것인지부터 선언해주고 include를 이용해 믹스인을 선언한다. 이번에는 TCP라는 것을 가져와서 사용해보도록 하겠다. Server에서와 마찬가지로 Name, Description, Author, References, Tartgets를 사진과 같이 설정해준다.




<그림 1-6 TCP Client 파일 - 2>


client connect부분을 작성해주었는데, 서버에서 송신하는 것을 받는것이 클라리언트의 가장 큰 목적이다. world라는 메시지를 선언해 서버가 hello라는 메시지를 전송하면 Client에서는 world라는 메시지를 송신해주게 했다. 이제 사용자에게 메시지를 전달해주기 위한 작업은 끝이 났다.





<그림 1-6 msfconsole tcp_Server, Client exploit 과정>


msfconsole을 실행시켜 만든 파일 경로를 지정해준다. tcp_server파일부터 지정해주고 옵션에서 SRVPORT를 3000으로 지정해주고 rhost는 현재 칼리리눅스 IP를 지정해준다. 지정을 모두 완료 하고 exploit을 시킨다. 성공적으로 서버가 구동되면 Server started라는 메시지가 출력된다. 그리고 tcp_client로 경로를 바꿔서 이 역시도 옵션을 지정해준다.


< 그림 1-7 msfconsole tcp_client exploit 결과>


서버에서 port를 3000으로 지정해주었기 때문에 서버 정보를 받기 위해 client에서도 rport를 3000으로 지정해주고, lport는 client전용이기 때문에 4545라는 포트로 지정해준다. 서버 포트와만 다르게 하면 exploit하는데는 큰 문제는 없다. exploit을 실행하게 되면 사진과 같이 현재 칼리리눅스 ip주소와 hello, world라고 메시지가 정상적으로 잘 출력되었다는 것을 볼 수 있다. 세션은 따로 지정해주진 않았기 때문에 세션이 잡히지는 않았다. 


<그림 1-8 TCP Client Check>


이번엔 check 메소드를 사용해 취약점을 알아보는 방법을 설명해보려고 한다. 먼저 check부분을 코드로 작성했다. 서버와 통신하겠다는 코드를 입력해준다. if, else문은 world라는 단어가 나오게 되면 Vulnerable이라는 메시지를 출력해주겠다는 의미이다. 이 역시 CheckCode쪽 안에 있는 vulnerable이라는 라이브러리를 가져왔고, else문 역시 Safe라는 라이브러리를 가져와서 출력해주겠다는 의미로 만들었다. print문을 써서 출력을 해줘도 되지만 core안에 있는 라이브러리들을 가져와서 쓰는 방법도 있다.


<그림 1-9 tcp.rc 파일>


msfconsole을 실행시켜 옵션을 지정해주고 exploit을 수동으로 한다는 것은 여간 번거로운 일이 아니다. 사진과 같이 rc파일을 만들어 우리가 사용할 옵션들을 지정해주고 자동으로 실행되게 하려고 한다.


<그림 1-10 tcp.rc 파일 실행 결과>


msfconsole -r tcp.rc 명령어를 실행시키게 되면 자동으로 msfconsole이 실행되면서 옵션들이 지정되고 최종적으로 사진과 같이 check까지 실행되게 된다. world라는 메시지가 출력이 되었기 때문에 최종적으로 The target is vulnerable이라는 메시지가 출력되었다. 이처럼 check메소드는 다양한 방식으로도 활용이 될 수 있기 때문에 이 방식 말고도 다른 방법으로도 연구해보면 좋을 것 같다.








반응형
LIST

'메타스플로잇' 카테고리의 다른 글

http Server  (0) 2018.04.22
http 클라이언트  (0) 2018.04.22
adobe flash player 취약점  (0) 2018.02.28
metasploitables 해킹  (0) 2018.02.13
mysql 해킹 실습  (0) 2018.02.11
블로그 이미지

만년필석사

,
반응형
SMALL

우리가 많이 사용하는 adobe flash player에도 분명 취약점은 존재한다. 요즘 버전은 그래도 어느정도 완화가 되어서 전 버전보다는 취약점이 덜해졌다고는 하지만 여전히 adobe_flash player 취약점을 이용한 공격이 존재한다. adobe_flash취약점을 이용한 공격이 어떤 것인지 알아본다.


실습 1) adobe_flash player 취약점 공격



먼저 adobe flash player를 윈도우 7 가상화면에 설치해준다. 현재 버전은 2015년기준 버전이다.(전 버전이 현재 버전보다 훨씬 취약했다.) 우리는 adobe_flash player 취약점을 이용한 공격이 무엇인지 알아봐야 하기 때문에 최대한 많이 취약한 버전을 활용해서 공격해본다.



프로그램 추가 정보창에 들어가서 확인해보면 Adobe_flash player이 잘 설치된 것을 볼 수 있다.



그리고 칼리리눅스를 실행시켜서 msfconsole을 실행시켜 준다. postgresql이 실행되었다는 가정하에 실행해줘야 한다. 그리고 search domainmemory를 입력해서 우리가 사용할 모듈이 어떤것인지 검색해준다. 현재 Adobe_flash player의 domain_memory쪽 취약점을 보는 것이기 때문에 사진에서 아래 모듈을 사용해야 한다.



use 명령어를 사용해서 모듈경로를 입력해준다.




show options 정보를 확인해보면 기존에 썼던 옵션들하곤 살짝 다른 것을 볼 수 있다. 현재 메타스플로잇에서는 공격자는 피해자가 클라이언트 접속을 기다리는 상황이기 때문에 SrvHost를 현재 칼리리눅스 ip주소로 지정을 해줘야 한다. 그리고 SrvPort는 80포트로 지정해준다. UrlPath는 클라이언트에서 접속할시 항상 경로가 바뀔 수 있기 때문에 /로 지정해줘야 한다.



그리고 exploit을 시켜 공격을 감행한다. exploit을 실행시키면 공격자가 가지고 있는 서버가 열렸음을 확인할 수 있다.




현재 윈도우 7 상황이다. 인터넷 브라우저 창을 띄워 현재 칼리리눅스 ip주소를 입력해주면 브라우저 창에는 아무것도 안나옴을 확인할 수 있는데 이게 정상이다. 현재 클라이언트가 실행되고 있기 때문에 브라우저 정보는 공격자가 갖고 있는 서버로 계속 넘어가고 있음을 알 수 있다.



sessions라는 명령어를 입력해주면 현재 어떤 세션이 잡혔는지 확인할 수 있다. 우리는 윈도우 7에서 실행했기 때문에 윈도우 7의 ip주소가 잡혔음을 확인 할 수 있다.



그리고 sessions -i 2 옵션을 넣어서 실행해보면 meterpreter이 잡힌 것을 확인 할 수 있다. 그리고 shell을 입력하면 윈도우 7의 cmd창이 실행되었음을 알 수 있다. 이로써 피해자 PC는 공격자한테 완전히 장악당했음을 볼 수 있다. 사실상 cmd창이 점령당했다는 것은 시스템권한도 점령이 가능하기 때문에 완전히 정복당한 것이라고 볼 수 있다. 이렇게  Adobe_flash player의 취약점을 활용해서 피해자 PC를 점령하는 방법을 알아봤는데 항상 최신버전으로 패치하는 것이  사고예방의 지름길이다. 

반응형
LIST

'메타스플로잇' 카테고리의 다른 글

http 클라이언트  (0) 2018.04.22
메타스플로잇 TCP 통신  (0) 2018.04.19
metasploitables 해킹  (0) 2018.02.13
mysql 해킹 실습  (0) 2018.02.11
NMAP 실습  (0) 2018.02.10
블로그 이미지

만년필석사

,