> For the complete documentation index, see [llms.txt](https://docs.cooku222.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cooku222.kr/security/digital-forensics/dreamhack/dreamhack-dream-zoo.md).

# \[DreamHack] Dream Zoo

#### 문제 링크

{% embed url="<https://dreamhack.io/wargame/challenges/1205>" %}

#### 문제

<figure><img src="https://blog.kakaocdn.net/dna/bhNCoA/btsNgggDY6X/AAAAAAAAAAAAAAAAAAAAAB1MlgCKPkMVldsbfr4CwUC9-Dio_fd6mWWH2p1xZI14/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=kLD5NmOvyyBLub7jSDfMIdBlJ%2B0%3D" alt="" height="365" width="726"><figcaption></figcaption></figure>

#### Writeup

<figure><img src="https://blog.kakaocdn.net/dna/puMwX/btsNgAsr93p/AAAAAAAAAAAAAAAAAAAAAM15pF4DjWEjciZhtAVc4znDiNUOy14Qkt90BwACjrpF/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=fiAlVGw7FTaIJ1z8j%2FU1qw7qSRs%3D" alt="" height="861" width="1918"><figcaption></figcaption></figure>

pcap 형식 -> 패킷 스니핑 API -> 패킷 캡쳐가 가능한 와이어샤크로 문제에서 제공해준 파일을 압축 해제 후 열어준다.\
우측 하단에 헥사 값이 보이는데, 블록 친 부분 = zip 시그니처가 확인이 된다.\
위의 사진은 첫번째 패킷에 대한 로그이므로 다음 패킷을 통해 다른 정보를 취득한다.

<figure><img src="https://blog.kakaocdn.net/dna/WmBG9/btsNhoE5yiL/AAAAAAAAAAAAAAAAAAAAAJHlrVNAXzip7QMcTZPCbCDxvGqz4SS4Fvbjp8cl9hgK/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=sHS1RRm4jh7AjPHNrVr5z%2BqB%2BFA%3D" alt="" height="221" width="730"><figcaption></figcaption></figure>

이건 두번째 패킷인데,\
GET /syvaidya/openstego/releases/download/openstego-0.8.6/Setup-OpenStego-0.8.6.exe HTTP/1.1\
라는 정보를 얻을 수 있다. OpenStego 툴을 이용해 이미지 감추기를 했다는 정보를 취득\
이제 리눅스를 켜서 tshark를 실행한다.\
(Window 11 노트북을 사용하고 있어서 powershell을 쓰려했는데 더 꼬이는 거 같아서 리눅스로 접속함)\
\*로컬 파일을 리눅스에서 실행하고 싶으면 드래그 앤 드롭도 있고, 나는 VM > Settings > Options > Shared Folder에 파일을 추가한 후 우분투 툴즈를 설치하고 리부트 하였다. 수동 마운트까지 해서 확인을 해주었다.

<figure><img src="https://blog.kakaocdn.net/dna/TYO2Y/btsNfdehiNs/AAAAAAAAAAAAAAAAAAAAANuhG9PEVBzhViKfFzJK6LH2OhGrDgD2Kt22lHkziH2c/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=2v5lJ%2BGQSUkxf110Na3K0Bvc5Bg%3D" alt="" height="301" width="946"><figcaption></figcaption></figure>

<figure><img src="https://blog.kakaocdn.net/dna/n2s4w/btsNfdFlDeW/AAAAAAAAAAAAAAAAAAAAAAdIXzTwsrDpSiB6jN_Z-K2Z0T2JkQXTQv90Ff6YwEX9/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=iuH6VRXB%2Bp03NWb95a46W3CyzYw%3D" alt="" height="130" width="992"><figcaption><p>괄호를 인식 못해주는 거 같아서 + 다운로드 명이 너무 기니까 파일 이름을 바꿔주고 tshark를 리눅스에 깔아준다.</p></figcaption></figure>

```
tshark -r zoo.pcap -T fields -e dns.qry.name | awk '!a[$0]++' > extracted.txt
```

이 명령어로 DNS 쿼리의 도메인 명(dns.qry.name)을 필드 추출한 결과를 extracted.txt라는 파일로 저장한다.

```
nano parse.py
```

이 명령어로 parse.py라는 파일 하나를 만들어준다(<https://h4ck.kr/?p=2437> 이 분의 블로그를 참고했다)\
\*참고로 extracted.txt -> extracted.zip로 처리를 해주는 이유 : DNS Tunneling 기법 중 하나로 공격자가 .pcap 파일 안에 DNS 쿼리들을 이용해 zip 파일을 잘게 쪼개 은닉하는데, DNS 질의 이름 중에 숨겨놓은 zip 파일을 찾기 위해서&#x20;

{% embed url="<https://www.akamai.com/glossary/what-is-dns-tunneling>" %}

이건 dns tunneling에 대한 설명이 나와있는 참고글.\
암튼 문제로 다시 돌아와서

<figure><img src="https://blog.kakaocdn.net/dna/ekZPA4/btsNfEXAW3i/AAAAAAAAAAAAAAAAAAAAACnGkU6RxJtlTkqCqhl8i5KXGnRPJrjx6lBoBMsQmITA/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=g%2BH5t8CyJZLwA111933SGDTl2hM%3D" alt="" height="452" width="697"><figcaption><p>parse.py</p></figcaption></figure>

저장 후 나옴(ctrl + o -> Enter -> ctrl + X)\
-> 실행(실행을 해야 extracted.zip 파일이 형성이 되고 그 뒤에 이 zip을 압축 해제해서 단서를 찾을 수 있다!)

```
python3 parse.py
```

zip 파일이 생성 되었는지 확인&#x20;

```
ls -l
```

<figure><img src="https://blog.kakaocdn.net/dna/bUfG9t/btsNhPQlqKN/AAAAAAAAAAAAAAAAAAAAAHFyLHNftVLr1bs55lU6T9JE2vSWrZBYKkFp2yZ3MpHC/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=Im3CuvTpUAvWJst%2FY035m53RztM%3D" alt="" height="143" width="565"><figcaption></figcaption></figure>

extracted.zip 파일이 생성되어있으니까 zip을 압축 해제

```
unzip extracted.zip
```

(파일 구조가 꼬이는 경우도 있으니 파일 위치를 잘 확인해준다)

<figure><img src="https://blog.kakaocdn.net/dna/bB5p2H/btsNhbGDYq1/AAAAAAAAAAAAAAAAAAAAABKtLiD6Hl1RPndV1vNvji0syRBmQzBFjzPPENkr4qmD/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=YjF3TG4nZgnZlpyK82HyP%2F9uYp0%3D" alt="" height="233" width="718"><figcaption></figcaption></figure>

숨겨진 파일이 여럿 나오는데 누가봐도 힌트처럼 보이는 hint.txt 파일이 하나 보임. hint.txt를 열어준다.

```
cat hint.txt
```

<figure><img src="https://blog.kakaocdn.net/dna/bbOdwH/btsNf7LOnV4/AAAAAAAAAAAAAAAAAAAAAKFoyBTM_cIJbVnuIelldpMSOhx71ghAwctvSzf1aq9B/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=7yE2nj%2Fix6PnCz1IjeX3vwY2bgA%3D" alt="" height="42" width="903"><figcaption></figcaption></figure>

-> hiding sth \~ = 이 문제 스테가노에용\~

<figure><img src="https://blog.kakaocdn.net/dna/bRAamF/btsNfrDnuwM/AAAAAAAAAAAAAAAAAAAAAIq0vaZMiM9zSsM9dp69EOX0cW3yp-gmFYtjQyeR23NU/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=qgYOLcaY8oiQwPC5Qq7QFafNG0o%3D" alt="" height="256" width="587"><figcaption></figcaption></figure>

openstego로 이미지를 숨겨놓았다고 서두에 언급했었다. 따라서 openstego를 리눅스에 설치해준다.(리눅스로 파이어폭스 -> 검색창에 openstego -> download -> openstego\_0.8.6-1\_all.deb 설치)

{% embed url="<https://www.youtube.com/watch?v=viT-yq0r64k>" %}

이 영상을 참고했다.

```
sudo dpkg -i openstego_0.8.6-1_all.deb
```

<figure><img src="https://blog.kakaocdn.net/dna/cxdMir/btsNgCR3h0S/AAAAAAAAAAAAAAAAAAAAACQ4P_csogOFwDbw9vTkOjPneCtkqE0rjutYuV2p7sU6/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=5vs%2B%2BStIlb%2FlkkBt3P6G8C8PX8I%3D" alt="" height="392" width="685"><figcaption></figcaption></figure>

&#x20;

<figure><img src="https://blog.kakaocdn.net/dna/sLZLc/btsNgDwCiFY/AAAAAAAAAAAAAAAAAAAAACsnzFrHPkOM2H1ZeO6JlbVtpPSXMF6-kC3p8XdFw4EW/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=CPGyqH2K3WfKe2XI%2F8H0HsBK6TE%3D" alt="" height="852" width="1647"><figcaption></figcaption></figure>

오픈스테고로 png 파일을 하나씩 열면 이렇다.

<figure><img src="https://blog.kakaocdn.net/dna/MZhOa/btsNha10Xj6/AAAAAAAAAAAAAAAAAAAAAMogyg4F-um5ZSNKJDN1VregqXjMg6qFyjLAmKdGMXxO/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=VqqYZwyjmLsZVCBrmyf7Znd8nzA%3D" alt="" height="610" width="1340"><figcaption></figcaption></figure>

\---\
여기서부턴 파일 추출이 안 됨 \
openstego 설치를 잘못했나? 암튼 위에 첨부된 블로그 참조해서 풀기로 했음 (후에 다시 접근해볼 예정)

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cooku222.kr/security/digital-forensics/dreamhack/dreamhack-dream-zoo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
