TCP 포트 스캔 

 

 

/etc/hosts 파일에 IP + 도메인명 추가

 

 

웹 페이지 접속

 

 

 

 

회원가입하려면 초대 코드가 있어야 함

/invite 페이지 요청 시에 로드되는 js 파일에서 난독화된 함수 발견

inviteapi.min.js

 

 

 

 

난독화된 코드를 복원함(일부)

function makeInviteCode() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/api/v1/invite/how/to/generate',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
}

 

 

'/api/v1/invite/how/to/generate' 경로에 POST로 요청을 보내면 아래와 같은 응답이 돌아옴

복호화하면         →  In order to generate the invite code, make a POST request to /api/v1/invite/generate

 

 

 

하라는대로 요청을 보내면 초대 코드를 얻을 수 있다

 

 

 

디코딩해야함

 

 

 

해당 초대 코드 입력하면 /register 페이지 접근 됨

 

 

 

로그인 ㄱ

 

"Connection Pack"은 Labs > Access 에 있음

클릭하면 '/api/v1/user/vpn/generate'에 요청 보냄

 

 

 

 

'/api/v1' 경로에 요청을 보내면 하위 앤드포인트 경로 목록이 응답으로 옴

 

 

 

 

/api/v1/admin/ 의 경로에 있는 엔드포인트에 하나씩 들어가봤다

 

 

 

/api/v1/admin/settings/update 엔드포인트에서 권한을 변경할 수 있을 것 같다

 

 

 

POST도 안되는 걸 보니, PUT 메서드로 추측

content-type 헤더 추가 필요

 

 

email 파라미터가 필요한 듯

 

 

is_admin 파라미터도...

 

 

성공한 듯?

 

 

auth 엔드포인트에서 확인한 결과, 권한 상승에 성공한 것 같다

 

 

 

 

이제 아직 사용하지 않은 /api/v1/admin/vpn/generate 엔드포인트를 사용해보자

 

 

얘도 아까와 같은 방법으로 필요한 파라미터를 찾는다

 

 

 

이 엔드포인트에 command injection 취약점이 존재한다고 함

 

 

 

;로 명령어를 추가하고  "#으로 주석처리

 

 

 

php 애플리케이션에서 환경 변수 값을 저장하는 파일은 보통 .env 

.env 에서 admin 계정의 패스워드 확인 가능

 

 

 

 

ssh로 접속 ㄱ

 

 

 

flag 확인

 

 

 

 

 

권한 상승

 

메일이 왔다는디요

 

 

 

/var/mail/admin 파일에서 송신자 확인 가능

메일 내용을 보면, 현재 사용하고 있는 버전의 리눅스 커널에 심각한 CVE 취약점이 나온 것 같다

 

 

☞  CVE-2023-0386

https://github.com/sxlmnwb/CVE-2023-0386

 

 

파일 다운로드 받아서 공격 대상으로 보냄

 

 

 

깃에 적혀있는대로 공격 수행

권한 상승 성공

서로 다른 터미널에서 진행

 

 

root flag 화긴

 

 

 

 

 

 

TCP 포트 스캔 결과

 

 

 

80번 포트로 웹 페이지 접속

 

 

 

"Security Snapshot" 메뉴를 클릭하면 '/data/[id]' 경로로 리다이렉트 됨 

Burp suite에서 확인

 

 

 

다른 계정의 스캔 결과도 [id]만 바꿔서 조회 가능

/data/2 -> /data/0

 

 

 

데이터가 존재하는 계정은 0 밖에 없다

0 계정의 pcap 파일을 다운로드

 

아까 포트 스캔 했을때, ftp 포트가 열려있는게 눈에 띄었다

 

다운받은 pcap 파일에 FTP 필터를 적용해서 보면

nathan 계정패스워드를 확인 가능

0.pcap

 

 

 

ssh에서 해당 계정으로 로그인 시도 ㄱ

 

성공

 

 

flag 확인

 

 

 

 

 

권한 상승

 

이것저것 뒤져보다가 파일이 너무 많아서 getcap 명령으로 탐색해봤다

군침이 싹 도는 cap_setuid 발견

 

 

 

구글링해서 이런걸 찾았다

https://gtfobins.github.io/gtfobins/python/

대충 파이썬CAP_SETUID 기능이 설정되어 있으면, uid를 조작하여 권한을 상승하는 방법이 존재한다는 내용

 

 

파이썬

 

 

root 플래그 확인 성공

 

 

 

 

+ Recent posts