Psalm

kioptrix Level 1.3 본문

보안공부/모의 해킹

kioptrix Level 1.3

hkhkhkh 2024. 9. 2. 02:23
반응형

 

ssh, http, Samba 서버가 돌아가고 있다.

 

 

웹에서는 사용자이름과 패스워드를 입력해 로그인하는 어떤 서비스가 돌아가고 있다.

 

nikto에서도 쉘을 획득할만한 정보가 없었다.

 

gobuster에서 특이한 john과 robert 폴더가 있다.

 

 

john, robert폴더에서 john.php, robert.php를 클릭하면 main페이지가 실행된다.

아마도 john과 robert가 해당 웹 서버의 사용자라고 추측하고 로그인을 시도한다.

 

Username만 알고, password는 모르는 상태니 sqli를 시도한다.

sqlmap으로 password만 sqli를 시도해본다.

 

 

sqlmap으로 password에 sqli를 시도했지만 어떤 결과도 나도지 않았고, 직접 대입해서 해보기로 했다.

 

john’or’1을 입력했더니 로그인이 됐고, password는 MyNameIsJohn이다.

이 패스워드로 ssh 로그인을 해본다.

 

 

명령을 실행해도 먹질않고, 몇번의 시도끝에 결국 쫓겨났다. Restricted shell때문인 것 같다.

 

python, ruby, perl 등으로 restricted shell 우회를 시도해봤지만 명령이 없어 실행되지 않았고, echo만 실행되어서 우회를 시도했다.

 

 

쉘을 실행하고, /etc/passwd파일을 보면 john으로 접속하면 기본적으로 kshell이 실행되는걸 알 수 있다.

 

이제 LPE를 시도해보자

root 권한으로 실행되는 프로그램이 있는지 먼저 살펴본다.

 

mysql이 root권한으로 실행되고 있다.

 

 

아까 sqli를 시도할 때 password에 sqli를 확인하기위해  ‘1을 입력했더니니 유효하지 않은 값이라고 나오면서 /var/ww/checklogin.php 리소스에서 발생했다고 알려줬다.

 

mysql에 대한 정보가 있는지 이 경로에 있는 php파일을 살펴본다.

 

 

아까 로그인페이지는 index.php로 동작하고, 입력받은 데이터를 checklogin.php로 전달한다.

 

 

myusername과 mypassword를 mysql query문을 보내 확인한다. 이 결과값을 login_success.php에 보내 성공하면 member.php로 데이터를 보내고 아니면 Try again 버튼으로 다시 로그인 페이지에서 인증할 수 있게 한다.

 

이 checklogin.php에서 mysql root계정을 알려준다. 이 정보로 로그인을 시도한다.

 

 

mysql에서 UDF(User Defined Function)를 실행할 수 있다. 아까 root권한으로 mysql이 실행되는걸 확인했으니 이제 UDF를 시도할 수 있는지 확인해야한다.

 

 

/usr/lib 디렉터리를 보면 lib_mysqludf_sys.so 동적 라이브러리가 있다. 파일도 root 권한으로 되어있으니 UDF도 동작할 것이다.

 

udf에서 명령을 실행하기위한 두 함수 sys_eval과 sys_exec이 존재한다.

하지만 해당 라이브러리에는 sys_eval함수가 없어 sys_exec으로 진행했다.

 

 

 

/bin/sh를 home경로로 가져오고, setuid로 권한을 변경해주면 실행했을 때 root권한도 얻을 수 있을 것이다.

 



반응형

'보안공부 > 모의 해킹' 카테고리의 다른 글

Basic Pentesting 1  (0) 2024.09.06
kioptrix 2014  (4) 2024.09.03
kioptrix Level 1.2  (2) 2024.08.31
kioptrix Level 1.1  (2) 2024.08.28
Kioptrix Level 1  (0) 2024.08.26
Comments