포트스캔 결과 ssh, TCP 52 (의심) , AJP(서블릿 커넥터) 8080 포트가 열림을 확인.
해당문제는 톰캣 AJP 커넥터의 취약점인 ghostcat 을 이용한 문제임,
AJP 에 대한 설명과 Exploit Code 임.. 번역기 필수..ㅎㅎ
Ghostcat vulnerability | CVE-2020–1938 | AJP LFI | Apache Tomcat Server vulnerability
What is AJP13 (Apache Jserv Protocol) Protocol?
medium.com
https://www.exploit-db.com/exploits/48143
Apache Tomcat - AJP 'Ghostcat File Read/Inclusion
Apache Tomcat - AJP 'Ghostcat File Read/Inclusion EDB-ID: 48143 CVE: 2020-1938 Date: 2020-02-20
www.exploit-db.com
Exploit Code 를 따라하면 XML 파일에 Credential정보를 얻을 수 있음.
얻은 계정정보로 ssh 에 로그인. 홈디렉터리에 파일 두개가 있음.
원격지의 파일 두개를 로컬로 받아서 확인해보면 pgp 로 암호화된파일과, pgp 개인키임을 확인.
당연 gpp 로 pgp 의 개인키를 등록하면 Passphrase 입력인풋이 뜸. 이는 개인키를 보호하기위한 비밀번호라고 볼 수 있음.
pgp 의 passphrase 는 john 으로 크랙을해줄수있는데, 해당 개인키를 john 형식으로 바꾸어주어야함.
아래는 john 형식으로 바꾸는과정임.
대국민 worlist 인 rockyou.txt 로 개인키의 passphrase 를 크랙해주면 1초만에 alexandru 라는 passwd 가 나옴.
이제 gpg 에서 priv key 를임포트할 때 passphrase 를 입력하면 임포트가 가능해짐.
priv key 를 입포트한후 복호화해주면 passpharse 를 입력하는창이 뜨는데 다시한번 입력해주면 복호화가 가능해짐.
복호화한 파일에는 merlin 의 계정정보가 들어있음.
얻은 계정정보로 다시 ssh 에 로그인하면 홈디렉터리에 숨길파일로 sudo_as_admin_successful 파일이 있는데, 이것의 이미는 merlin 이라는 계정은 sudo 를 통해 일부 혹은 모든 명령어를 수행할수있다는 의미임.
따라서 sudo -l 로 sudo 로 사용가능한 커맨드를 보면 zip 이 나옴.
이렇게 sudo 나 suid 가 설정되있을때 아래 사이트에서 찾아보면 유틸에대한 악용방법이 굉장히 상셍히 나옴.
https://gtfobins.github.io/gtfobins/zip/
zip | GTFOBins
.. / zip Shell File read Sudo Limited SUID Shell It can be used to break out from restricted environments by spawning an interactive system shell. TF=$(mktemp -u) zip $TF /etc/hosts -T -TT 'sh #' rm $TF File read It reads data from files, it may be used to
gtfobins.github.io
GTOBIN 에 나온대로 그대로 수행해주면 Root 획득 가능.