PRCCDC 2019 Retrospective

I’ve documented my PRCCDC experience.

The Competition

The National Collegiate Cyber Defense Competition (CCDC) is a competition in which multiple college teams act as blue teams and are dropped into an unfamiliar network in the midst of a cyberattack. This year’s PRCCDC regional event was my first time competing.

TLDR: Team gets along well. I was impressed by everyone’s teamwork and morale. Some basic problems ended up being significant time sinks for us. We could’ve written more scripts and located configuration templates ahead of time to speed up system hardening.

Skip to the bottom of the post if you just want to see my list of lessons learned. You’ll miss all the fun red team stories though.

Competition Recap

Day One

Azcatraz: a prison for wizards?

During day one, I and some of my teammates got our very first taste of CCDC. For the first hour, we were plagued with non-red team related network issues. Our first two business injects were delivered via word of mouth from the white team (our team’s judges and answerers of general questions). Not until later did I realize that the red team had achieved some level of access to our network’s only domain controller by 29 minutes into the game. At least, that’s the timestamp I saw along with the first evidence of their execution of some code that caused an unexpected crash and memory dump. By 2 hours or so into the competition, it became clear that we had been soundly owned by the red team and we decided to cut our losses and restore the domain controller to its initial state.

Passwords

I think our password strategy was pretty solid, though we discovered a frustrating flaw in it. One of my teammates generated several hundred strong passwords, numbered them, and provided space to write descriptions. We were each assigned a block of passwords. When someone asked for an account password, we told them the corresponding number. This was a sensible system and was not painful to use.

As it turns out, MySQL, like many other technologies, has special characters that must be escaped if they are to be used in strings. You might be able to see where I’m going with this. Our teammate working with the MySQL database experienced significant issues using one of the pre-generated passwords as a database user password. We had a few different issues over the course of the competition stemming from passwords/password management; however, it was really just a couple of edge cases causing problems.

Not your mom’s CCDC!

Thinking back, we may have focused too much on service uptime and completing business injects and too little time on hardening during the first few hours of competition. We communicated well as a team but we didn’t go into day one expecting the red team to come in hot. We were a bit taken aback when we realized they were going for the throat from the beginning!

Cat pics

We moved through day one trying to restore services and harden servers opportunistically. We got our domain owned again and this time the red team defaced our company web site by dumping usernames and password hashes of every account on our domain on it along with an assortment of cat pictures. We scrambled to pick up the pieces and try to stop any further damage from occurring.

A plan

By the end of the day, we were exhausted but morale remained high. That night we discussed some strategy for day two and decided that we should attempt to lock down the network perimeter as much as we could as early as we could (even at the cost of some service uptime) and harden servers methodically before allowing more traffic in/out of the network.

Plans have a funny way of not working out.

Day Two

Business is hard

Both days I noticed myself getting sidetracked from the hardening tasks I wanted to accomplish due to business injects, random issue troubleshooting, etc. Early in day two, our team captain was repeatedly rushed into meetings with executives and yelled at by the CISO. We had a few unhappy customers on the phone complaining about the website being down or other services not working…we also had some random person trying to sell us firewalls!

A different type of open door policy

Speaking of firewalls…I ended up spending some time on day two working with my teammate who had been focused primarily on the Palo Alto firewall. While we worked on hardening the newly-restored firewall management server, we went over the firewall policies. Very quickly, I noticed a policy named “Alohomora,” which means “open the door” in Harry Potter wizarding speak. I didn’t know that but I did call attention to this rule because it was allowing any/any traffic in to a specific host on the network and I wanted to know more. Firewall person had a “d’oh!” moment and then we both had a laugh as we removed that rule.

Everything was going great (besides the chaos of the competition, business injects, and hilariously frustrating help desk phone service). During hardening of the firewall management server, we went through the motions of creating an additional backup user in addition to the changing the password of the primary admin user and removing administrative users that weren’t documented. We cleaned up the firewall policies and prepared to lock down the perimeter and attempt to kick the attackers out of our network. We kicked off one last restart of the management server to allow updates to complete. At this point, I was shifting focus to the domain controller as my teammate was going to take over firewall stuff.

Presto chango

Then it happened. After the restart, none of the credentials worked! I am honestly still not sure what happened there as our red team person told us after the fact that they hadn’t really been messing with the firewall…?

Negotiating with dementors

We submitted incident reports left and right as the red team became more and more brazen. Servers were crashing, services were going down, we were progressively losing access to our jump boxes, our antagonists were leaving us messages on screen, and at one point I had a full-on battle for control of my mouse. It was pretty silly. At one point, our adversaries sent a very young red team member into the room who had been told to plug something in to a computer in the room. They didn’t get far.

One thing we wrongly assumed is that our workspaces, the jump boxes we RDP-ed into to get into the network, weren’t in scope of the red team’s assault. During our initial debrief, we discovered that they totally were in scope and were totally owned by the red team.

We got to a certain point where we decided that we’d do our best and just have fun with it–there was no point in being negative or upset. At one point we recited a poem to our red team antagonist over the phone in exchange for a password we needed! The competition ended, rather appropriately, with a wizard prison riot.

Red meets blue

At the end of day two, we met with the white team and red team for a quick debrief. A few interesting notes from that discussion:

Lessons Learned

Strategy

Password Management

System Administration

Monitoring

All in all, it was super fun and I am so glad I took the time to compete! I really wish I could participate next year but I’m graduating so I won’t be eligible.

If you are in college and have an opportunity to participate, I highly recommend it. I learned a lot and most importantly it was fun!