■ HackTheBox - Bastard 환경 실습
Reconnaissance(정찰)
Step 1) HackTheBox 사용을 위해 Kali Linux에서 VPN 맺은 후, 정보 수집을 위해 nmap을 통해 확인해본 결과, 3개 포트(80/TCP, 135/TCP, 49154/TCP)가 Open되어 있음을 확인하였으며, Drupal 7을 사용하고 있음을 추측할 수 있음
Step 2) nmap에서 확인된 경로인 '/CHANGELOG.txt' 파일 접근 시, 현재 Drupal 버전이 7.54 버전을 사용하고 있을 것으로 추측할 수 있었으며, 이 정보를 활용하여 해당 버전의 취약점을 조회 시, Drupal 7.58 버전 이하의 경우, RCE 취약점이 존재하는 것으로 확인.
Drupal Unauthenticated RCE(CVE-2018-7600)
Drupal 7.58 이전, 8.3.9 이전의 8.x, 8.4.6 이전의 8.4.x, 8.5.1 이전의 8.5.x에서는 기본 또는 공통 모듈 구성을 사용하는 여러 하위 시스템에 영향을 미치는 문제로 인해 원격 공격자가 임의 코드를 실행할 수 있는 취약점
특히 Form API를 통해 입력된 값들을 제대로 검증하지 않아 PHP의 'eval()' 함수가 전달될 수 있는 취약점 존재
Execution(실행)
Step 3) github에서 Drupal7 Exploit 코드가 존재하는 것으로 확인하여, 다운로드 후 실행 시 시스템 명령이 정상적으로 동작함을 확인. 내부 시스템 환경 확인 시, Windows Server 2008임을 확인하여 윈도우용 리버스 쉘 생성
해커들이 윈도우에서 파일 다운로드 시 자주 사용하는 명령을 사용하여 쉘 코드 파일을 rc.exe 파일로 지정하여 쉘 코드 다운로드 후, 리버스 커넥션 시도 시 쉘 권한 획득 성공 확인.
- github 참고 사이트 : https://github.com/lorddemon/drupalgeddon2?source=post_page-----2e19c5f53529--------------------------------
GitHub - lorddemon/drupalgeddon2: Exploit for CVE-2018-7600.. called drupalgeddon2,
Exploit for CVE-2018-7600.. called drupalgeddon2, - GitHub - lorddemon/drupalgeddon2: Exploit for CVE-2018-7600.. called drupalgeddon2,
github.com
● certutil.exe : Windows에 기본적으로 포함된 유틸리티로, 인증서 서비스와 관련된 여러 작업을 수행할 수 있으며, 파일 암호화 및 복호화, 파일 다운로드에 사용될 수 있음
● -urlcache : certutil.exe에 특정 작업을 수행하도록 지시하는 옵션 중 하나로, URL에서 파일 다운로드하여 로컬 캐시에 저장하는 옵션
● -urlcache : 다운로드할 파일의 URL을 지정하는 옵션
● rc.exe : 다운로드한 파일을 저장할 로컬 파일 이름을 지정
Privilege Escalation(권한 상승)
Step 4) 현재 획득한 쉘 권한은 웹 권한으로 판단되며, admin 권한을 획득하기 위해선 권한 상승이 필요할 것으로 추측.
권한 상승을 위하여 윈도우 권한 상승 도구인 JuicyPotato를 다운로드 후, 이전에 확인한 현재 시스템에 맞는 CLSID 값을 입력 후 JuicyPotato 실행 시 Root 권한 획득 성공
● JuicyPotato란?
- JuicyPotato는 Windows 권한 상승 도구로서, SelmpersonatePrivilege, SeAssignPrimaryToken
Privilege 권한을 통해 로컬 권한 상승을 수행한다.
- JuicyPotato는 com 취약점을 악용하여 NT System Token을 얻고 이를 통해 프로세스를 생성하는 방식으로 동작
* COM 서버는 COM 객체 세트를 구현하는 실행파일(exe, dll)로, windows 구성 요소는 com 객체로 구현되며
표준 COM 규칙을 따라 서로 통신. COM 서버는 레지스트리에 등록되어 있으며 클래스 ID(CLSID)와 APPID를
가짐
- JuicyPotato를 사용 시, 탈취할 권한(SYSTEM)의 CLSID 식별 필요
● JuicyPotato를 통해 권한상승 가능한 Windows 버전
- Windows Server 2019 미만 버전
- Windows 10 build 1809 미만 비전
● JuicyPotato 옵션
-l : com 요청을 수신할 포트로, Listen하고 있지 않은 포트를 지정
-p : NT System 권한으로 실행할 프로그램 지정
-a : 실행할 프로그램에 줄 인자 값 설정
-t : process 생성에 사용할 api로, * 값으로 설정하면(CreateProcessWithTokenW, CreateProcessAsUser) 둘다 시도
-c : CLSID 지정
● Windows별 CLSID 확인하는 사이트
- https://ohpe.it/juicy-potato/CLSID/
'hackthebox' 카테고리의 다른 글
HackTheBox - granny (0) | 2024.07.26 |
---|---|
HackTheBox - Blue (0) | 2024.01.11 |
HackTheBox - Legacy (1) | 2024.01.04 |
HackTheBox - SolidState (2) | 2023.11.30 |
HackTheBox - Sense (0) | 2023.11.29 |