Psalm

Basic Pentesting 2 본문

보안공부/모의 해킹

Basic Pentesting 2

hkhkhkh 2024. 9. 8. 23:47
반응형

 

netdiscover로 같은 네트워크 대역을 가진 시스템이 있는지 스캔한다. 

1, 100번은 사용이 정해진 ip고, 102번이 아마도 침투테스트할 시스템인 것 같다.

 

 

열린 서비스: ssh, http, samba, http, ajp13

 

 

사용자 열거 취약점이 발견됐다. 다른 서비스의 취약점을 먼저 진단한 후 취약점이 발견되지 않으면  나중에 최후의 수단으로 사용할 것이다.

 

 

httpd서비스에 대한 취약점 스캔이다. OpenBSD Httpd서비스를 대상으로 Dos 공격을 할 수 있는 취약점이 발견됐다. 우리가 공격하는 시스템은 ubuntu 운영체제이고, 사용자 권한 탈취가 목적이기 때문에 사용하지 않는다.

 

다음은 Samba에 대한 취약점이다. 임의 모듈 로드 취약점을 이용해 악성코드를 실행시킬 수 있는 취약점이다.(CVE-2017-7494) 이 취약점을 성사시키려면 사용자 계정과 비밀번호를 알아야한다. 지금은 사용자 계정에 대한 정보를 알아낸게 없으니 실행시킬 수 없다. 다른 취약점을 스캔해본다.

 

 

Apache Tomcat, Apache Jserv에 대한 취약점은 발견되지 않았다.

 

Apache서버가 돌아간다는걸 확인했으니 웹사이트에 접속을 해본다.

별 정보가 없다.

 

nikto로 해당 웹 페이지를 스캔해 /development 페이지에 Directory indexing이 발견됐다고 나온다.

 



두개의 텍스트 파일이 보이고, dev.txt파일의 내용을 보면 

 

2018년 4월 23일: Struts라는 걸 가지고 이것저것 해봤는데, 꽤 멋지더라! 이 서버에 그것도 호스팅하면 좋을 것 같아. 아직 제대로 된 웹 애플리케이션은 만들지 않았지만, Struts의 동작을 보여주는 예제를 사용해봤어 (REST 버전의 예제야!). 아, 그리고 지금은 2.5.12 버전을 사용 중인데, 다른 버전들은 문제가 있었거든. -K

2018년 4월 22일: SMB 설정 완료. -K

2018년 4월 21일: Apache 설정을 완료했어. 나중에 콘텐츠를 넣을 예정이야. -J

라고 쓰여있다.

 

 

해당 서버를 올린 날짜는 2018-7-10일이기때문에 4월 23일 이후에 Apache Struts를 적용했나 확인하기 위해 정보를 수집해본다.

 

먼저 Struts에 대한 취약점이 있나 스캔을 시도했다.

 

 

맨 위에 2.5.12버전에 대한 원격 코드 실행 취약점을 발견했다. 

 

이 공격을 하려면 해당 버전의 Apache Struts를 사용중이어야 된다. nmap 스캔만으로 확인되지 않아 사이트에서 

  • /struts2-showcase/
  • /struts2-rest-showcase/
  • /struts/

해당 경로가 있나 먼저 확인해봤다.

 

 

웹 페이지에 접근했지만 없는걸로 나왔고, gobuster로 디렉토리를 스캔했지만 struts와 관련된 경로도 나오지 않았다. 웹 페이지의 경로가 틀렸을 가능성도 있어 metasploit으로 공격을 시도해본다.

 

12번째에 Rest버전의 struts2가 있다.

 

RHOSTS를 타겟 ip로 설정해준다.

 

 

payload는 reverse_netcat으로 설정해줘 nc가 역으로 연결되게해서 쉘이 실행되기 한다.

 

 

option을 보면 TARGETURI가 자동으로 지정되어 있는데, 여기에 나와있는 경로로 웹 페이지에 다시 접속해본다.

 

 

TARGETURI를 바꿔줘야 할수도 있다는 생각에 버전을 넣어서 구글링으로 검색을 해보았고, 

struts2-rest-showcase-2.5.12라는 경로를 알게됐다.

 

path를 수정해 다시 접속해보니 웹 페이지가 나왔다.

 

metasploit으로 TARGETURI를 다시 수정해주었고, exploit 코드를 실행하니 쉘이 획득됐다.

 

 

이 챌린지의 최종 목표는 root권한을 획득해 flag.txt파일을 읽는것이다.

root 권한을 얻기 위해 정보 수집을 해본다.

 

먼저 home 디렉토리에 수집할만한 정보가 있나 살펴본다.

 

jan과 kay에 대한 home 디렉토리가 존재했고, 

 

kay 디렉토리에 pass.bak이 존재했다. 이 파일을 읽이 위해 kay 권한이 있어야한다.

 

 

root로 setuid가 설정된 파일이 있는지 찾아봤는데, vim에 setuid가 걸려있었다.

 

이 점을 이용해 kay디렉토리의 pass.bak파일을 읽는다. 

 

 

이 문자열을 kay의 password로 로그인할 때 입력하면 kay로 로그인이 된다.

 

 

vim의 setuid권한을 이용해서 파일 내용을 읽을 수 있다면 권한 상승도 가능하다.

 

vim을 실행시키고, sudo -i 를 입력하고 아까 pass.bak에 있던 패스워드를 입력하면 root로 권한상승이 된다.

 



반응형

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

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