"Харуул занги" тэмцээн нь цахим магадлан шинжилгээ, ёс зүйт довтолгоо болон хамгаалалт гэсэн үндсэн хэсгүүдтэй. Энэхүү тэмцээн нь хууль, ёс зүйд нийцүүлэн хакерийн үйл ажиллагааг хүлээн зөвшөөрөх, гүйцэтгүүлэх, олон нийтэд үзүүлэх боломжийг бий болгох, мөн онцгой чухал мэдээлэл, эд хөрөнгийг нууцлах, хамгаалах хэрэгцээ, шаардлагыг ойлгуулахыг эрмэлзэнэ.
Харуул занги 2017 2-р шатны даалгавар нь тусгайлан бэлдсэн "VirtualBox Image - Arch Linux 64bit" file өгөгдсөн ба үүнийг VirtualBox дээр ажилуулж flag олох байсан.
#FLAG 1 - Root bypass
Эхний даалгавар password reset буюу password-ийг нь мэдэхгүй үед сэргээж авах даалгавар байсан. VirtualBox дээрээ ажилуулах үед:
цонх гарж ирэх бөгөөд keyboard-нийхаа "E" үсэг дээр дарахад:
үүнийг доош нь гүйлгэхэд:
ийм хэсэг байх бөгөөд "quiet" ийн оронд "init=/bin/bash" болгож өөрчлөөд CTRL+X дарахад:
ийм цонх гарж ирээд үүн дээр "mount -n -o remount.rw /" гэж бичээд Enter дараад "passwd" гэж бичээд Enter дарна. Үүний дараа New Password: гэж асуух бөгөөд өөрөө password дахиж шинээр хийнэ гэсэн үг. Энгээд манай баг Root Bypass даалгаварыг амжилттай хийсэн бөгөөд VirtualBox -оо restart хийсний дараа root -ээрээ login хийхэд:
энгэж гарж ирэх бөгөөд
flag.txt -ийг нээж хараад Flag-ийг гаргаж авна.
Flag: hz{h@ppY_h@@@ck!ng}
#FLAG 2 - GUI GUI GUI
Энэхүү даалгавар нь GUI (Graphical User Interface)-ийг асаах байсан бөгөөд "startx" гэж GUI-ийг асаадаг бөгөөд асаахад:
Нүүр зураг буюу wallpaper дээр нь flag байсан.
Flag: hz{Gu!_Ye@h-gU!}
#FLAG 3 - Programming Challenge 1
Энэхүү даалгавар нь home folder дотор байсан бөгөөд Task гэдэг нэртэйгээр байсан ба 2 terminal нээж байгаад хийх дасгал байсан. Эхлээд нэг terminal дээр нь 3 удаа Test Case оруулах бөгөөд 3 удаа оруулсаны дараа бидний жишээн дээр хэрвээ 546600 гэдэг input оруулвал хариу нь юу гарах вэ гэж биднээс асуухад нөгөө terminal дээрээ Test Case Input дээр нь 546600 гэж бичихэд гарах хариу нь 45063 байсан. Үүнийгээ эхний terminal дээр оруулж өгөхөд бидэнд flag-ийг өгсөн.
Flag: HZ{024567789999acffffecccb998766110}
#FLAG 4 - Too many files
Энэхүү даалгавар нь маш олон folder-той бөгөөд folder дотроо дахиад маш их folder гэх мэтээр агуулаад хамгийн сүүлийн folder болгонд 1 file тай байсан бөгөөд дурын 1 file-ийг нь нээх гэхэд Permission denied гэж байсан.
Тиймээс Permission өгөөд нээж үзэхээр шийдсэн бөгөөд Terminal дээрээ "chmod -R 777 *" гэж өгөөд нээж үзэхэд
I'm not your flag LOOOOL гэж гарж ирсэн бөгөөд маш олон file дунд ганц л зөв flag байгаа гэж үзээд 3уулаа 3 нь талаас нь нэг бүрчлэн шалгаж үзсэн хаха. Тэгээд эцэст нь galf/dheblzmnl/xexcafj доторх zkotdbvnb file байсан.
Flag: hz{y0u-F0u|\|d-!T-^_*}
#FLAG 5 - Lifesteal (Writeup by YMCNBYB)
#FLAG 7 - Ring of Health (Writeup by YMCNBYB)
/home хавтасанд flag.b64 файл байсан. Уг файлд тус тусдаа encode-длогдсон base64 тэмдэгтүүд байсан тул дараах кодыг бичснээр тэмдэгтүүдийг тайлж авсан.
#FLAG 8
Энэхүү даалгаварыг манай баг тэмцээний цаг дууссаны дараа хийсэн бөгөөд home доторх flag -ийг unmount хийх даалгавар байсан юм байна лээ :P Жич: Буруу байж магадгүй шүү
Flag: hz{k33p_calm_and_k33p_h@cking}
За энгээд бидний хийж чадсан даалгаврууд эд нар байсан ба энэ удаагын Харуул Занги тэмцээний 2-р шатанд 9-р байранд орсон болов ч эхний долоон байрыг цааш финалын шатанд үлдээхээр болсон юм. Хүндэтгэсэн: "rebellion" баг.
Харуул занги 2017 2-р шатны даалгавар нь тусгайлан бэлдсэн "VirtualBox Image - Arch Linux 64bit" file өгөгдсөн ба үүнийг VirtualBox дээр ажилуулж flag олох байсан.
#FLAG 1 - Root bypass
Эхний даалгавар password reset буюу password-ийг нь мэдэхгүй үед сэргээж авах даалгавар байсан. VirtualBox дээрээ ажилуулах үед:
үүнийг доош нь гүйлгэхэд:
ийм хэсэг байх бөгөөд "quiet" ийн оронд "init=/bin/bash" болгож өөрчлөөд CTRL+X дарахад:
энгэж гарж ирэх бөгөөд
flag.txt -ийг нээж хараад Flag-ийг гаргаж авна.
Flag: hz{h@ppY_h@@@ck!ng}
#FLAG 2 - GUI GUI GUI
Энэхүү даалгавар нь GUI (Graphical User Interface)-ийг асаах байсан бөгөөд "startx" гэж GUI-ийг асаадаг бөгөөд асаахад:
Нүүр зураг буюу wallpaper дээр нь flag байсан.
Flag: hz{Gu!_Ye@h-gU!}
#FLAG 3 - Programming Challenge 1
Энэхүү даалгавар нь home folder дотор байсан бөгөөд Task гэдэг нэртэйгээр байсан ба 2 terminal нээж байгаад хийх дасгал байсан. Эхлээд нэг terminal дээр нь 3 удаа Test Case оруулах бөгөөд 3 удаа оруулсаны дараа бидний жишээн дээр хэрвээ 546600 гэдэг input оруулвал хариу нь юу гарах вэ гэж биднээс асуухад нөгөө terminal дээрээ Test Case Input дээр нь 546600 гэж бичихэд гарах хариу нь 45063 байсан. Үүнийгээ эхний terminal дээр оруулж өгөхөд бидэнд flag-ийг өгсөн.
Flag: HZ{024567789999acffffecccb998766110}
#FLAG 4 - Too many files
Энэхүү даалгавар нь маш олон folder-той бөгөөд folder дотроо дахиад маш их folder гэх мэтээр агуулаад хамгийн сүүлийн folder болгонд 1 file тай байсан бөгөөд дурын 1 file-ийг нь нээх гэхэд Permission denied гэж байсан.
Тиймээс Permission өгөөд нээж үзэхээр шийдсэн бөгөөд Terminal дээрээ "chmod -R 777 *" гэж өгөөд нээж үзэхэд
I'm not your flag LOOOOL гэж гарж ирсэн бөгөөд маш олон file дунд ганц л зөв flag байгаа гэж үзээд 3уулаа 3 нь талаас нь нэг бүрчлэн шалгаж үзсэн хаха. Тэгээд эцэст нь galf/dheblzmnl/xexcafj доторх zkotdbvnb file байсан.
Flag: hz{y0u-F0u|\|d-!T-^_*}
#FLAG 5 - Lifesteal (Writeup by YMCNBYB)
hint-ээр
--------------------------------
--------------------------------
uid = “*******”
os.getuid() == uid:
print flag
---------------------------------
Код өгөгдсөн учир бид rev2-г ажлуулж байгаа user ID-г өөрчлөх шаардлагатай болсон.
#FLAG 6 - Ransomeware (Writeup by YMCNBYB)
python дээр parent process-н uid-г өөрчлөх замаар child process-г тухайн user дээр ажииллуулж болж байсан тул дараах 2 кодыг ажлуулж, гаралтын файлууд дундаас бусдаасаа ялгаатай 1 файлыг нээж үзсэнээр флагыг олж авсан.
Нэг процесс дээр uid-г солихоор, дахиж өөр uid-руу сольж болохгүй байсан тул, дэд процесс үүсгэж, тэр дээрээ uid-г нь сольсон.
![]() |
main.py файл |
![]() |
slave.py файл |
![]() |
Хариу |
uid нь 1337 (P.S :L33T… Nice!) үед флаг маань гарч байна
Flag: hz{1337_fl@g\n}
Flag: hz{1337_fl@g\n}
#FLAG 6 - Ransomeware (Writeup by YMCNBYB)
-------
Жич : Уг даалгаврыг тэмцээний явцад гүйцэтгэж чадаагүй болно. :P
Зөв газраа үзсэн ч, нүдээр хайлт хийгээд алдчихсан. :))
Зөв газраа үзсэн ч, нүдээр хайлт хийгээд алдчихсан. :))
-------
Эхлээд сервер дээрх файлууд дунд RANSOMEWARE.php файл байгааг үзсэн бөгөөд, кодноос нь дараах анализыг хийсэн
1) sweetdreams хувьсагчид зөв key өгөх ёстой юм байна.
2) eurythmics хувьсагч байх ёстой.
2) eurythmics хувьсагч байх ёстой.
Ингээд.. /images хавтсан дотор байгаа QR кодуудтай зуралдаж, /var/log/http дотрох логуудыг харж… 1:30 ноцолдсон.. :))
Даанч тэгээд.. Хүн гэдэг ч найдваргүй амьтан юм дөө.
Чөтгөр. :P [log дотор байгааг HZ Team-с тэмцээний дараа асууж олсоон.. :3]
Ингээд “/RANSOMEWARE.php?sweetdreams=K4D0-hzR2&eurythmics=1” гэж дуудаад, флагаа олж авна.
Flag: hz{No0b_R4ns0m3W4r3}
#FLAG 7 - Ring of Health (Writeup by YMCNBYB)
/home хавтасанд flag.b64 файл байсан. Уг файлд тус тусдаа encode-длогдсон base64 тэмдэгтүүд байсан тул дараах кодыг бичснээр тэмдэгтүүдийг тайлж авсан.
Тус тусд нь тайлахад hex кодууд гарч байсан бөгөөд, харгалзах утгуудыг хэвлэж үзээд, терминалын өргөнийг өөрчилснөөр, флагаа олох боломжтой болно. :D
Жич: Screenshot авахад арай тод харагдаж байсан тул, ! болон : тэмдэгтүүдэд A, B үсгүүд хэвлэсэн болно. :)
Flag: hz{flagisart}
#FLAG 8
Энэхүү даалгаварыг манай баг тэмцээний цаг дууссаны дараа хийсэн бөгөөд home доторх flag -ийг unmount хийх даалгавар байсан юм байна лээ :P Жич: Буруу байж магадгүй шүү
Flag: hz{k33p_calm_and_k33p_h@cking}
За энгээд бидний хийж чадсан даалгаврууд эд нар байсан ба энэ удаагын Харуул Занги тэмцээний 2-р шатанд 9-р байранд орсон болов ч эхний долоон байрыг цааш финалын шатанд үлдээхээр болсон юм. Хүндэтгэсэн: "rebellion" баг.
Flag: hz{k33p_calm_and_k33p_h@cking}
ReplyDeleteЭнэ буруу шүү..
---
Хорчин-заавар : ltrace "./rev" гээд үз.. Оролтоо өгсний дараах процесс дунд чинь флаг чинь байгаа..
Arch_linux_is_fun ... хавьцаа нэг юм байна лээ.. :)
HZ{FuN_W1tH_ArchLinuX_(\\")>}
ReplyDelete