[Starting Point] TIER 0 - Mongod
- -
Question
How many TCP ports are open on the machine?
번역: 가상머신에서 열린 TCP 포트는 몇 개인가요?
상세 풀이
정답: 2
Which service is running on port 27017 of the remote host?
번역: 원격 호스트의 포트 27017에서 실행 중인 서비스는 무엇입니까?
상세 풀이
정답: MongoDB 3.6.8
What type of database is MongoDB? (Choose: SQL or NoSQL)
번역: MongoDB는 어떤 유형의 데이터베이스인가요? (선택: SQL 또는 NoSQL)
상세 풀이
MongoDB는 NoSQL(Not only SQL) 데이터베이스 중 하나로, 관계형 데이터베이스가 아닌 비관계형 데이터베이스입니다. 기존의 관계형 데이터베이스는 테이블 구조로 데이터를 저장하는데 반해, MongoDB는 도큐먼트 지향적 구조를 가집니다.
이러한 도큐먼트 구조는 JSON 형식과 유사한 BSON(Binary JSON) 형태로 데이터를 저장하고, 각 도큐먼트는 유연한 스키마를 가질 수 있습니다. 이는 데이터 구조 변경이 쉽고 확장성이 높다는 장점을 가지고 있습니다.
MongoDB는 빅 데이터 처리, 실시간 분석, 컨텐츠 관리 및 배포 등 다양한 분야에서 활용되며, 수평적 확장이 용이하여 대규모 데이터를 처리할 때 효율적입니다.
정답: NoSQL
What is the command name for the Mongo shell that is installed with the mongodb-clients package?
번역: mongodb-clients 패키지로 설치된 Mongo 쉘의 명령 이름은 무엇입니까?
상세 풀이
mongodb-clients 패키지를 통해 설치되는 몽고 쉘(Mongo shell)의 명령어 이름은 mongo입니다. 몽고 쉘은 MongoDB 서버와 상호작용할 수 있는 인터랙티브한 JavaScript 인터페이스를 제공합니다. 사용자는 이를 통해 데이터베이스에 질의를 수행하거나, 데이터를 삽입, 수정, 삭제할 수 있습니다.
mongo 명령어를 사용하여 MongoDB 서버에 연결하려면, 콘솔에서 다음과 같이 입력합니다:
mongo
특정 데이터베이스에 연결하려면 다음과 같이 입력합니다:
mongo <데이터베이스_이름>
또한, 원격 서버에 있는 MongoDB 인스턴스에 연결하려면 다음과 같이 입력합니다:
mongo --host <주소> --port <포트>
이렇게 하면, 사용자는 몽고 쉘을 통해 MongoDB 서버에 연결하고, 데이터베이스 관리 작업을 수행할 수 있습니다.
최신 버전의 mongoDB는 mongosh이라는 도구를 사용함.
정답: mongo
What is the command used for listing all the databases present on the MongoDB server? (No need to include a trailing ;)
번역: 몽고디비 서버에 있는 모든 데이터베이스를 나열하는 데 사용되는 명령은 무엇입니까? (마지막에 ;를 포함할 필요 없음)
상세 풀이
정답: show dbs
What is the command used for listing out the collections in a database? (No need to include a trailing ;)
번역: 데이터베이스에서 컬렉션을 나열하는 데 사용되는 명령어는 무엇인가요? (마지막에 ;을 포함할 필요가 없습니다)
상세 풀이
정답: show collections
What is the command used for dumping the content of all the documents within the collection named flag in a format that is easy to read?
번역: 컬렉션 이름이 flag인 모든 문서의 내용을 읽기 쉬운 형식으로 덤프하는 데 사용되는 명령은 무엇인가요?
상세 풀이
컬렉션(collection)의 이름이 'flag'인 모든 문서(document)의 내용을 읽기 쉬운 형식으로 덤프(dump)하려면, 몽고 쉘(Mongo shell)에서 다음 명령어를 사용할 수 있습니다:
db.flag.find().pretty()
이 명령어는 'flag'라는 이름의 컬렉션에서 모든 문서를 검색한 후, .pretty() 메소드를 사용하여 결과를 보기 쉬운 형태로 출력합니다. 이렇게 하면 JSON 형식과 유사한 구조로 데이터를 확인할 수 있으며, 이를 통해 각 문서의 내용을 쉽게 읽을 수 있습니다.
정답: db.flag.find().pretty()
Submit root flag
상세 풀이
nmap을 통해 공격 대상의 열려있는 Port를 스캔하였다.
확인해보니, SSH와 mongoDB가 열려있는 것을 확인할 수 있다.
mongosh를 이용하여 공격 대상의 MongoDB에 접근 시도하였다.
계정 인증 설정이 되어 있지 않아, 별도의 인증 없이 접근할 수 있었다.
기본 DB 외 sensitive_information과 users이라는 이름을 가진 DB가 존재하는 것을 확인하였다.
그 중 sensitive_infomation에서 flag이라는 컬렉션이 존재하는 것을 확인하였다.
컬렉션의 내용을 확인할 수 있는 find()를 이용하여 확인하니, flag 값을 얻을 수 있었다.
정답: nmap > mongsh > show dbs > show tables > find()
'워게임 > Hack The Box' 카테고리의 다른 글
[Starting Point] TIER 1 - Appointment (0) | 2023.05.27 |
---|---|
[Starting Point] TIER 0 - Synced (0) | 2023.04.30 |
[Starting Point] TIER 0 - Preignition (0) | 2023.03.28 |
[Starting Point] TIER 0 - Explosion (0) | 2023.03.28 |
[Starting Point] TIER 0 - Redeemer (0) | 2023.03.28 |