From 64e346ac66a0f650677a3fb93c1254e998f781fc Mon Sep 17 00:00:00 2001 From: Maik de Kruif Date: Fri, 24 Sep 2021 21:22:48 +0200 Subject: [PATCH] Add challenge 5 of the google-ctf beginners quest --- .../google-ctf/2021/beginners-quest/5.md | 808 ++++++++++++++++++ .../2021/beginners-quest/5/attachment.zip | Bin 0 -> 10062 bytes .../2021/beginners-quest/5/cover.png | Bin 0 -> 66636 bytes 3 files changed, 808 insertions(+) create mode 100644 content/writeups/google-ctf/2021/beginners-quest/5.md create mode 100644 static/files/writeups/google-ctf/2021/beginners-quest/5/attachment.zip create mode 100644 static/img/writeups/google-ctf/2021/beginners-quest/5/cover.png diff --git a/content/writeups/google-ctf/2021/beginners-quest/5.md b/content/writeups/google-ctf/2021/beginners-quest/5.md new file mode 100644 index 0000000..7db695e --- /dev/null +++ b/content/writeups/google-ctf/2021/beginners-quest/5.md @@ -0,0 +1,808 @@ ++++ +author = "Maik de Kruif" +title = "Istanbul - Bazaar" +subtitle = "Beginners Quest 5 - Google CTF" +date = 2021-09-24T19:40:00+01:00 +description = "A writeup for challenge 5 of the beginners quests of the Google CTF." +cover = "img/writeups/google-ctf/2021/beginners-quest/5/cover.png" +tags = [ + "Google CTF", + "Beginners Quest", + "ctf", + "hacking", + "writeup", +] +categories = [ + "ctf", + "writeups", + "hacking", +] ++++ + +## Story line + +Gökhan is pointing at a parked vehicle. He tells you that you will have to try and reach it and that if you stay where you are, that you will get captured sooner or later. The guards know the neighborhood like their own backpocket. At first you doubt the plan, it seems like a very risky option. Gökhan then finally tells you he's not going to stay there, and his last offer is for you to go with him. + +### Stay + +Gökhan exits the crate, and makes a quick sprint for the car. The tough guys spot him, and they approach. As he enters the car he tries to start it, and the car makes an ominous sound, as the bad guys are closing in. He looks back through the rear window, and sees that the bad guys are about to jump on the back of the car, and they are pulling out guns. He tries to start the car furiously one more time and... IT WORKS! Gökhan disappears off in the distance. You overhear the tough guys when they are talking about a person, “Mesut”, that got classified information. You quickly send a message to the boss to look up the person. After a short wait you receive a response that he is currently on his private yacht in Croatia. Looks like it is time for some travel again. + +### Come with Gökhan + +As you and Gökhan are leaving the crates to enter a car, you spot the tough guys coming after you, and they are pulling out weapons. Gökhan starts the car and the two of you take off. After a decent distance outside of the city, he gives you an invitation to a private conference that will take place in Buenos Aires. + +### Attachment + +[attachment.zip](/files/writeups/google-ctf/2021/beginners-quest/5/attachment.zip) + +{{< code language="py" title="RoboCaller1337.py" isCollapsed="true" >}} + +```py +import random + +# Gots to get that formatting right when send it to our call center +def formatNumber(n): + n = str(n) + return f'{n[:3]}-{n[3:6]}-{n[6:]}' + +# This generates random phone numbers because it's easy to find a lot of people! +# Our number generator is not great so we had to hack it a bit to make sure we can +# reach folks in Philly (area code 215) +def generateRandomNumbers(): + arr = [] + for i in range(624): + arr.append(formatNumber(random.getrandbits(32) + (1<<31))) + return arr + +def encodeSecret(s): + key = [random.getrandbits(8) for i in range(len(s))] + return bytes([a^b for a,b in zip(key,list(s.encode()))]) + + +def menu(): + print("""\n\nWelcome to the RoboCaller!! What would you like to do? +1: generate a new list of numbers +2: encrypt a super secret (in beta) +3: decrypt a super secret (coming soon!!) +4: exit""") + choice = '' + while choice not in ['1','2','3']: + choice = input('>') + if choice == '1': + open('robo_numbers_list.txt','w').write('\n'.join(generateRandomNumbers())) + print("...done! list saved under 'robo_numbers_list.txt'") + elif choice == '2': + secret = input('give me your secret and I\'ll save it as "secret.enc"') + open('secret.enc','wb').write(encodeSecret(secret)) + elif choice == '3': + print("stay tuned for this awesome feature\n\n") + elif choice == '4': + print("Thank you for using RoboCaller1337!") + return + +def main(): + while True: + menu() + +if __name__ == "__main__": + main() +``` + +{{< /code >}} + +{{< code language="txt" title="robo_numbers_list.txt" isCollapsed="true" >}} + +```txt +263-170-6234 +467-553-7030 +220-146-1293 +630-328-6023 +413-553-0465 +528-403-6609 +454-641-6157 +396-906-1900 +445-477-6643 +578-095-2052 +216-516-7520 +314-161-3710 +628-223-8174 +512-530-6992 +464-456-5861 +631-453-4232 +377-004-3494 +328-898-2557 +231-249-9423 +420-346-3494 +605-091-2725 +595-329-3910 +576-809-4557 +425-030-9549 +389-181-5710 +621-627-6043 +423-199-4297 +579-089-8585 +589-493-0846 +375-597-0939 +541-648-2941 +453-069-7058 +543-829-0828 +417-111-8475 +348-244-2759 +290-882-6713 +522-462-5631 +296-565-4379 +586-916-6837 +603-365-6384 +476-088-1715 +526-794-4364 +570-480-9107 +427-082-3513 +418-582-5172 +294-148-5624 +591-766-9391 +581-588-1423 +554-956-1539 +339-448-0163 +633-317-6710 +529-345-6802 +510-151-9942 +589-325-3637 +291-288-6435 +536-342-5711 +431-379-8656 +306-181-2272 +287-750-2264 +435-289-4194 +609-844-8168 +254-346-9938 +477-230-3596 +224-779-5283 +351-591-9900 +472-433-7441 +259-370-4161 +390-390-2128 +271-570-0282 +532-522-3403 +231-987-9206 +273-558-2616 +232-775-4473 +286-546-5820 +567-085-6134 +303-874-3098 +517-707-7333 +439-636-1845 +641-978-4477 +221-606-7704 +356-456-0141 +621-732-2415 +569-522-9393 +404-995-4514 +573-986-7745 +407-677-1104 +225-688-0071 +219-031-4274 +355-266-3258 +624-119-4589 +313-157-7824 +518-033-0420 +462-462-1679 +435-580-6776 +232-015-6685 +585-746-5975 +359-937-2568 +426-271-0216 +618-678-9397 +318-533-9973 +560-054-9472 +251-899-2041 +295-475-7765 +590-304-8246 +535-896-4676 +538-266-6918 +282-578-1932 +621-085-1982 +471-750-3026 +605-061-1357 +491-478-9362 +531-518-2579 +542-766-2906 +391-955-0814 +271-424-2279 +429-855-1832 +598-055-6110 +429-626-4468 +559-114-4811 +582-184-7627 +499-756-4897 +412-170-2198 +551-289-1076 +397-901-9532 +367-175-9646 +418-401-3012 +223-706-1395 +556-314-7884 +427-512-9355 +441-717-0237 +586-758-7240 +639-239-7961 +563-296-1195 +532-034-4947 +493-797-3707 +240-611-7275 +286-614-0798 +421-788-3182 +292-386-6585 +216-386-1373 +594-193-2268 +337-029-6841 +444-662-2067 +375-664-3202 +293-053-1463 +284-235-3914 +453-792-3489 +266-783-6052 +336-422-4671 +460-035-3225 +470-633-3867 +234-048-5223 +479-812-5684 +606-457-0299 +604-025-5219 +584-232-4973 +534-831-8849 +488-941-7239 +569-682-8387 +250-288-5751 +548-842-8852 +537-471-2881 +473-732-5683 +600-901-1360 +244-545-5850 +611-587-7286 +493-004-5626 +541-097-0083 +318-276-8582 +245-121-2701 +253-657-5692 +587-739-7213 +346-259-4605 +358-583-6937 +636-360-3508 +335-700-9223 +443-401-2276 +580-846-2364 +414-725-9375 +528-421-5892 +606-581-0093 +549-745-9361 +286-689-9360 +218-754-0615 +321-168-4565 +392-771-7530 +292-211-8722 +338-038-3332 +583-603-7610 +472-413-9015 +510-699-6253 +327-105-5061 +347-747-7710 +532-690-4353 +307-141-9393 +614-124-9061 +431-024-6717 +574-101-4075 +632-578-6542 +277-867-6340 +324-715-7328 +374-913-2900 +221-589-8179 +229-100-8677 +306-006-3850 +572-818-6626 +477-129-5073 +568-463-6658 +536-661-1868 +307-094-0858 +248-972-7972 +507-465-6313 +592-140-8643 +635-756-2115 +231-603-0653 +310-669-1732 +577-741-6941 +327-413-3011 +484-314-6788 +398-283-4866 +333-140-1452 +372-012-4273 +265-303-9517 +389-626-2935 +227-237-4448 +302-214-1402 +257-043-3569 +339-178-6072 +467-085-9034 +370-830-3049 +527-417-1646 +360-260-6692 +418-021-9682 +224-191-9935 +475-252-8920 +258-028-1912 +485-558-4912 +475-641-7490 +312-575-1076 +221-080-0996 +565-758-4057 +606-410-6813 +380-364-3878 +454-647-2580 +558-276-5241 +454-930-4133 +425-279-0788 +634-055-1448 +387-308-6704 +297-447-2024 +325-867-9896 +366-669-5395 +370-728-9888 +515-812-6899 +290-897-7319 +608-784-7731 +306-673-3231 +248-002-8127 +556-900-1349 +558-045-6325 +330-120-0416 +503-768-1631 +315-471-5872 +287-925-3595 +597-434-5185 +500-420-1998 +276-255-9286 +260-165-4499 +634-488-7067 +550-656-9222 +364-996-1908 +393-231-0222 +314-836-5961 +278-146-7285 +258-469-2984 +458-789-6127 +376-740-8946 +244-618-6086 +587-168-0361 +275-523-6075 +605-784-9728 +377-514-5609 +263-776-1318 +609-187-9670 +243-602-9787 +253-775-4101 +408-681-2234 +406-675-5201 +496-579-4417 +566-496-2682 +503-553-5948 +439-293-2040 +383-486-6162 +323-283-9234 +305-479-8863 +478-975-6735 +354-724-0291 +330-167-6218 +237-014-6927 +332-972-5118 +336-818-8016 +232-442-6385 +381-560-9510 +491-498-2317 +491-354-6757 +492-988-1457 +504-965-5273 +623-178-2982 +634-591-5132 +331-525-1342 +404-793-5431 +319-217-4107 +426-481-1776 +586-057-4203 +545-939-6860 +222-490-9288 +265-820-2560 +214-953-0167 +643-906-2918 +240-098-8109 +234-229-5525 +520-069-2571 +333-323-9940 +574-581-5631 +620-982-0443 +376-752-7970 +491-787-0757 +613-684-5525 +440-860-3533 +256-223-7638 +637-243-1657 +216-758-4109 +603-205-8094 +641-246-9999 +444-144-1846 +355-714-3959 +638-675-0199 +377-418-0369 +586-516-3786 +466-160-7684 +585-714-3750 +249-234-7101 +515-494-7889 +595-840-9246 +566-590-0137 +358-175-7059 +597-287-7017 +287-942-8287 +442-059-3333 +575-505-6136 +582-311-6644 +619-262-5832 +641-788-3280 +500-425-4419 +218-860-8515 +584-013-1982 +635-304-8233 +413-023-9360 +479-795-4224 +617-013-8823 +417-989-2352 +599-480-4023 +240-440-2193 +299-079-3077 +486-349-6987 +520-519-6531 +606-723-6888 +604-485-3290 +397-591-6728 +222-732-4786 +579-723-9610 +536-385-6396 +328-207-1008 +312-228-8345 +644-212-3015 +470-159-3454 +224-910-8039 +390-956-1685 +335-913-5456 +347-509-5657 +627-631-4607 +299-531-9650 +460-460-4197 +295-431-0008 +318-347-7116 +361-830-5578 +296-014-3473 +592-647-0418 +255-674-6356 +274-042-5312 +325-171-2177 +477-736-2939 +431-571-1160 +305-047-9411 +630-334-9642 +381-695-7832 +298-958-0065 +625-500-4706 +529-536-9523 +383-823-4781 +414-338-6319 +264-259-0104 +478-344-9117 +377-027-4085 +511-706-8104 +613-897-8628 +473-831-4406 +356-775-0560 +332-288-4564 +352-970-1774 +292-376-4341 +319-525-3358 +312-514-8535 +320-070-0911 +290-445-6791 +498-406-2432 +571-079-8429 +276-991-8864 +481-943-3126 +300-932-1931 +546-824-1119 +246-372-8126 +457-455-4498 +288-703-2121 +564-818-7304 +385-921-6819 +629-576-4994 +445-109-7495 +234-199-7440 +632-582-4939 +502-998-8220 +447-225-4830 +498-776-9758 +512-819-2534 +593-249-1838 +346-730-7389 +387-061-3438 +612-634-6490 +304-590-7107 +336-236-8058 +280-109-9842 +532-456-4518 +494-312-1472 +576-075-3393 +502-770-3549 +314-251-4866 +395-081-9884 +362-320-4067 +550-221-6228 +578-292-6373 +560-076-7938 +376-384-4159 +408-610-4527 +407-474-3128 +504-027-5065 +401-434-6766 +511-795-6354 +244-790-9831 +370-882-6561 +464-032-5501 +335-056-6491 +535-523-9560 +563-151-5751 +310-650-9154 +293-427-5198 +227-854-7364 +298-835-7781 +273-952-9012 +372-909-4330 +598-402-8660 +243-015-8194 +383-775-3972 +580-873-1801 +603-389-4616 +435-894-4631 +221-659-0436 +421-068-3372 +576-550-9159 +600-740-4753 +304-667-9863 +398-463-0613 +228-119-7649 +632-929-1125 +418-318-7960 +481-314-3005 +220-193-6628 +376-247-2252 +230-189-8583 +443-754-1310 +307-629-5088 +443-234-5273 +604-417-4882 +371-452-6491 +244-192-9948 +436-547-5170 +255-052-6193 +589-472-9545 +422-443-9210 +471-193-0096 +326-900-8982 +534-113-4669 +370-370-7079 +236-477-6842 +582-225-8431 +330-375-2592 +258-253-0724 +352-635-3974 +277-093-0733 +276-827-6629 +399-408-4024 +299-332-2510 +369-955-9431 +270-411-8250 +505-556-4268 +509-193-1267 +390-556-9212 +545-455-8494 +621-160-7841 +400-314-8126 +301-366-4666 +566-601-5258 +497-181-3783 +475-458-5134 +231-329-9853 +643-929-0930 +467-709-3820 +476-757-4475 +220-068-1085 +306-235-7886 +600-225-3007 +463-008-1308 +542-224-9895 +490-906-7623 +439-771-8632 +528-612-0493 +527-246-8898 +358-761-7567 +555-591-5964 +340-723-1623 +616-706-2286 +479-042-1523 +567-628-3190 +237-335-5616 +342-661-9978 +511-003-2993 +365-015-3536 +579-912-9244 +277-699-2447 +572-716-1892 +432-103-7130 +500-710-9000 +244-105-1867 +395-361-9492 +531-841-0316 +576-664-6128 +363-937-1524 +570-451-8880 +407-256-2659 +550-243-2375 +629-676-6662 +238-241-4419 +595-426-7736 +605-009-1897 +268-368-8879 +276-606-9527 +351-839-4116 +479-653-9492 +549-268-4096 +223-918-1181 +311-654-3871 +464-091-8325 +507-686-1330 +326-205-4956 +438-871-2036 +611-564-1201 +324-442-1210 +547-150-7680 +237-378-9286 +365-038-6522 +262-981-4774 +414-149-0176 +220-121-1826 +423-447-3437 +487-112-2749 +224-428-8478 +251-934-9033 +274-700-5893 +469-421-0585 +344-241-4166 +401-960-8975 +261-506-6354 +589-256-3123 +305-932-3116 +418-063-9114 +600-969-4231 +363-050-1450 +627-535-7555 +487-543-9495 +461-161-1043 +512-384-1050 +234-199-2812 +541-513-3632 +630-049-9049 +585-881-3200 +460-978-5106 +635-887-0620 +298-611-3587 +272-932-0243 +554-772-3962 +618-711-7118 +426-926-4284 +596-851-6696 +306-766-1867 +445-639-1594 +467-786-0153 +515-688-5843 +291-664-2547 +295-859-0241 +605-833-5133 +476-067-3223 +356-715-8717 +625-145-6351 +439-027-8936 +446-996-9104 +``` + +{{< /code >}} + +## Recon + +The attachment contains tree files: `RoboCaller1337.py`, `secret.enc` and `robo_numbers_list.txt`. + +Looking at the python script, we can assume the other two files are generated with it. It contains a function `generateRandomNumbers()`, which generates 624 random phone numbers. It also has a function `encodeSecret()`, which encodes a key with a random number. + +`robo_numbers_list.txt` looks like a big list with 624 phone numbers. + +`secret.enc` appears to contain just raw bytes. + +## Solving + +When starting on this challenge I was actually clueless how to solve this. I though the key was random. But then I remembered why you don't use the default random methods. They're not actually random, but rather pseudorandom. + +Pseudorandom numbers are generated using an algorithm that generates a sequence of numbers whose properties approximate the properties of sequences of random numbers. This sequence is determined by an initial value, called a seed. Although this seed could be actually random, once you know it, you can calculate all the values it would output. + +From reading [the python documentation of `random.py`](https://github.com/python/cpython/blob/main/Lib/random.py), we can see it uses the Mersenne Twister algorithm with a period of 2^19937-1. Also known as MT19937. + +When searching for an algorithm to predict its results, I came across [this library](https://github.com/kmyk/mersenne-twister-predictor). It seems that if you know the preceding 624 numbers, you can predict the next numbers. + +So, let's install the package first: + +```sh +pip install mersenne-twister-predictor +``` + +Then, we need a script to read the numbers and enter them in the predictor. Let's start out by creating an instance of the predictor: + +```py +from mt19937predictor import MT19937Predictor + +predictor = MT19937Predictor() +``` + +Then we need the numbers to enter. To get them, I reversed the algorithm in the `RoboCaller1337.py` file: + +```py +with open("robo_numbers_list.txt", "r") as file: + for line in file: + number = int(line.replace("-", "")) - (1<<31) + predictor.setrandbits(number, 32) +``` + +Now that the numbers are added, we can read the `secret.enc` file, and try to decode it. Again, I reversed the algorithm in the original file. + +```py +with open("secret.enc", "rb") as file: + secret = list(file.read()) + +flag= "" +key = [predictor.getrandbits(8) for _ in range(len(secret))] +for a,b in zip(key, secret): + flag += chr(a^b) + +print(flag) +``` + +{{< code language="py" title="Full code" isCollapsed="true" >}} + +```py +from mt19937predictor import MT19937Predictor + +predictor = MT19937Predictor() + +with open("robo_numbers_list.txt", "r") as file: + for line in file: + number = int(line.replace("-", "")) - (1<<31) + predictor.setrandbits(number, 32) + +with open("secret.enc", "rb") as file: + secret = list(file.read()) + +flag= "" +key = [predictor.getrandbits(8) for _ in range(len(secret))] +for a,b in zip(key, secret): + flag += chr(a^b) + +print(flag) +``` + +{{< /code >}} + +## Solution + +After executing this code, we get the flag! It's `CTF{n3v3r_3ver_ev3r_use_r4nd0m}`. diff --git a/static/files/writeups/google-ctf/2021/beginners-quest/5/attachment.zip b/static/files/writeups/google-ctf/2021/beginners-quest/5/attachment.zip new file mode 100644 index 0000000000000000000000000000000000000000..0f3aea60f2f722aa0878781bb0aff41a5138452e GIT binary patch literal 10062 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 ZI`;8LzhcQ-x8C*NKl}gRxO?l?{{!;iBHaK0 literal 0 HcmV?d00001 diff --git a/static/img/writeups/google-ctf/2021/beginners-quest/5/cover.png b/static/img/writeups/google-ctf/2021/beginners-quest/5/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..2a66942b0d3627c7ae950cf319dc66bf770eceb0 GIT binary patch literal 66636 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 z