Skip to content

Old Cybersec Workshop Notes

Posted on:May 7, 2024 at 12:00 AM

Caesar Creek Hardware Workshop

Taken 04/02/2024

What is Caesar Creek (cc-sw)

US offensive security contractor ~100 employees Areas they work in:

Cool benefits: snacks, gym membership, housing,

Resume

Good stuff for resume for Caesar creek:

Good resources:

Application/interview process

The technical talk

What is fault injection?

By messing with the voltage for a short time, you can cause undefined behavior Types:

Target: STM32

has different RDP(read out protection) levels

They have a voltage regulator, but it can be bypassed through Vcap1 and Vcap2 The basic idea:

How the specific attack works

rdp2 to rdp1

two variables: where to place glitch (relative to a trigger), how long to pull down voltage(but not too long)

There is no accurate trigger (reset line has 20microsecond var)

Steps to take

  1. power on
  2. wait for trigger/power peak
  3. wait x clock cycles
  4. pull down
  5. check if in rdp1

Issue with voltage glitching: it has a chance to brick Solution: use EMP using PicoEMP

Now instead of iterating over time (known from voltage glitch), you just need to iterate over placement(xyz) of EMP and shape of coil

rdp1 to rdp0

extracted firmware with openOCD steps to test 0) run 1st glitch 1) write payload for GO command (when using it)

  1. send read command (later changed to GO command)
  2. send emp to ‘set’ rdp to 0
  3. send place to read
  4. hopefully works

note that 1st glitch has to happen every time you want to run second


From CTFs to real world bugs

taken 11/07/2023

differences

approaching targets

manually(looking at code) finding bugs

self-contained: easy vuln from insecure thing (gets(), unprotected eval, unsanitized input)

invariant based: common patterns, eg thread modifying buffer or use after free

automated bug hunting

automated static analysis: using filters to find specific things that could be vuln (functions that take char* input), decompiler scripting, variant analysis(looking for a specific known bug pattern)

fuzzing: random input

other: using print statements or debugger in source code to figure out what’s going on, dbi framework to determine flow of data (eg wireshark packet tracing)

triaging crashes

usually not used with ctfs
sometimes can help with figuring out where a bug could happen, but is very tedious

chosing targets

examples

router

hardware uart didn’t lead to anything
ping webpage had command injection
you could access ping webpage with no session token

music player

used an open source fuzzer to communicate with kernel (by reading/writing from random files) until it crashed
triaged crash and found the source code on google found buffer overflow in source code


OSINT

taken 12/27/2023

short for open-source intelligence
used for information gathering

OSINT tools

Different search engines sometimes give different results
eg internet explorer or duckduckgo can have different results

Google dorking:

dorking in general

search engines in general (eg twitter search, other)

wayback machine

You can take snapshots yourself in case you don’t want something to get deleted

google caching

just put “cache:” in front of the url eg “cache:https://www.merriam-webster.com/dictionary/test
also in google search results click the three dots next to a result and then in the list there will be “cached” option
Alt text
google saves some websites as caches, bascially a snapshot like wayback machine

view source

both ctrl+u and ctrl+shift+i
-ctrl+u better for searching -ctrl+shift+i better for debugging, finding element

querying apis manually

eg onedrive api will give metadata of files
search up the api docs to figure out information

exiftool

it’s cool
metadata, geolocation, date

shodan.io

search engine for internet devices/iot stuff
gives a lot of info; ports open(nmap scan), cloud provider, domain info, subdomains, etc

other stuff

not all links are the same, you can tell if a link changes

Common links:

there’s a tool online to determine if an email address exists

you can unzip .docx for more data

you can find a lot of stuff online

From this stuff you can find names/potential passwords, and determine if a person has an insecure password

online dns tools

Kali tools

sherlock

takes a username and looks for it on plenty of social media websites (a lot of websites)
there’s similar tools online, sherlock is not the only one

harvester

osint on a company/domain gets webpages, company emails, etc

maltego ce (very powerful for osint)

takes in various information (email, name, url) and will try to find connected information (like a tree)
works by specifying transformations to find related images, websites, etc
a lot of the time it will give out garbage (especially for all transformations)
utilized other tools (wayback, 10 pages of google)

dns tools