Skip to content

Commit b06d85c

Browse files
committed
img path update
1 parent be2ab53 commit b06d85c

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

_posts/2024-11-15-P3rf3ctr00t CTF 2024.md

+18-18
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ tags: [P3rf3ctr00t CTF, Perfectroot CTF, reverse engineering, jeopardy, Capture
77
---
88

99

10-
![image.png](/assets/img/posts/ctf/perfectrootctf/image.png)
10+
![image.png](/assets/img/posts/ctf/perfectrootctf24/image.png)
1111

1212
As part of our engagement in the [P3rf3ctr00t](https://perfectroot.wiki/) CTF, [Fr334aks-mini](https://www.linkedin.com/company/83010158/) showcased remarkable teamwork and determination, achieving 5th place overall, while our second team secured 26th position. This competition presented diverse challenges that tested our problem-solving skills across multiple domains, sharpening our technical expertise and teamwork.
1313

14-
![pfrootresults.png](/assets/img/posts/ctf/perfectrootctf/pfrootresults.png)
14+
![pfrootresults.png](/assets/img/posts/ctf/perfectrootctf24/pfrootresults.png)
1515

1616
Team B
1717

18-
![pfrootresultsb.png](/assets/img/posts/ctf/perfectrootctf/pfrootresultsb.png)
18+
![pfrootresultsb.png](/assets/img/posts/ctf/perfectrootctf24/pfrootresultsb.png)
1919

2020
In this write-up, I will delve into some of the challenges I tackled in OSINT, Reverse Engineering, Forensics, and Steganography. These categories not only highlight the breadth of the competition but also underline the strategic approaches and methodologies I employed to solve them. Each challenge provided unique insights and opportunities for growth, contributing to our overall success.
2121

@@ -24,7 +24,7 @@ Let’s explore the challenges and my journey through these fascinating categori
2424
## OSINT
2525
### Adversary Within - Part 1
2626

27-
![oaw1.png](/assets/img/posts/ctf/perfectrootctf/oaw1.png)
27+
![oaw1.png](/assets/img/posts/ctf/perfectrootctf24/oaw1.png)
2828

2929
From the description, this was definitely referring to Active Directory.
3030

@@ -37,22 +37,22 @@ At first I thought of ACLs but then looking around with a team mate([jnmunene](h
3737
## Steg
3838
### Mayday Mayday
3939

40-
![stegmay.png](/assets/img/posts/ctf/perfectrootctf/stegmay.png)
40+
![stegmay.png](/assets/img/posts/ctf/perfectrootctf24/stegmay.png)
4141

4242
We are given a .wav file. What came into my mind was morse code for some reason(may be it’s the description).
4343

4444
Using [this site](https://morsefm.com/) I got the flag quite easily.
4545

4646
(had to use this in Chromium browser - Firefox probably doesn’t like morse)
4747

48-
![mayday1.png](/assets/img/posts/ctf/perfectrootctf/mayday1.png)
48+
![mayday1.png](/assets/img/posts/ctf/perfectrootctf24/mayday1.png)
4949

5050
`r00t{J@M35_007_B0ND_2OO9}`
5151

5252
## Forensics
5353
### Code Mirage
5454

55-
![fcode.png](/assets/img/posts/ctf/perfectrootctf/fcode.png)
55+
![fcode.png](/assets/img/posts/ctf/perfectrootctf24/fcode.png)
5656

5757
Just a heads up, I **blooded** this challenge!
5858

@@ -107,29 +107,29 @@ The author explained it well here - [P3rf3ctr00tCTF](https://k4p3re.github.io/po
107107
## Rev
108108
### Pores
109109

110-
![rpores.png](/assets/img/posts/ctf/perfectrootctf/rpores.png)
110+
![rpores.png](/assets/img/posts/ctf/perfectrootctf24/rpores.png)
111111

112112
Just started learning reverse engineering so, I may not know what I am doing but I am good at it.
113113

114114
Looking at the file type revealed that it was an unstripped(has debug information) elf
115115

116-
![poreshot3.png](/assets/img/posts/ctf/perfectrootctf/poreshot3.png)
116+
![poreshot3.png](/assets/img/posts/ctf/perfectrootctf24/poreshot3.png)
117117

118118
I then checked out for any readable strings within the file with the strings command
119119

120-
![poreshot4.png](/assets/img/posts/ctf/perfectrootctf/poreshot4.png)
120+
![poreshot4.png](/assets/img/posts/ctf/perfectrootctf24/poreshot4.png)
121121

122122
Making the file executable with `chmod +x poresssss` then running it `./poresssss` gave no output.
123123

124124
What just happened! Ever downloaded a random game online and installed it locally. While playing you get to see random pop ups that disappear in a sec? that’s what it feels running a binary and there’s no nothing.
125125

126-
![surprise.webp](/assets/img/posts/ctf/perfectrootctf/surprise.webp)
126+
![surprise.webp](/assets/img/posts/ctf/perfectrootctf24/surprise.webp)
127127

128128
### Ghidra’s take:
129129

130130
The main functions is empty and does not seem to call any other function, especially the printFlag function which is why we are here in the first place!
131131

132-
![poreshot6.png](/assets/img/posts/ctf/perfectrootctf/poreshot6.png)
132+
![poreshot6.png](/assets/img/posts/ctf/perfectrootctf24/poreshot6.png)
133133

134134
The function `printFlag` takes two parameters:
135135

@@ -140,19 +140,19 @@ The function `printFlag` takes two parameters:
140140

141141
Together, these parameters allow the function to decode and print data stored in a memory block, treating each element as an encoded value to be broken down into individual characters.
142142

143-
![poreshot7.png](/assets/img/posts/ctf/perfectrootctf/poreshot7.png)
143+
![poreshot7.png](/assets/img/posts/ctf/perfectrootctf24/poreshot7.png)
144144

145145
Let’s check with GDB
146146

147-
![investigate.webp](/assets/img/posts/ctf/perfectrootctf/investigate.webp)
147+
![investigate.webp](/assets/img/posts/ctf/perfectrootctf24/investigate.webp)
148148

149149
### GDB’s take:
150150

151151
I opened the file in gdb and set a breakpoint at the main function.
152152

153153
Running the program and disassembling the main function:
154154

155-
![poreshot5.png](/assets/img/posts/ctf/perfectrootctf/poreshot5.png)
155+
![poreshot5.png](/assets/img/posts/ctf/perfectrootctf24/poreshot5.png)
156156

157157
Seems there is a flag stored at address `0x555555558040`.
158158

@@ -164,7 +164,7 @@ Thus, the program never proceeds to execute `printFlag`.
164164

165165
Using the `layout asm` I jumped around addresses looking at the contents of the addresses.
166166

167-
![poresshot.png](/assets/img/posts/ctf/perfectrootctf/poresshot.png)
167+
![poresshot.png](/assets/img/posts/ctf/perfectrootctf24/poresshot.png)
168168

169169
We will use gdb's `call` command to directly execute the `printFlag` function from its starting point.
170170

@@ -174,7 +174,7 @@ Additionally, remember to provide the required two arguments(as we saw with ghid
174174

175175
the address of the flag (`0x555555558040`) and `8`, which specifies the number of 8-byte blocks the data contains.
176176

177-
![poreshot2.png](/assets/img/posts/ctf/perfectrootctf/poreshot2.png)
177+
![poreshot2.png](/assets/img/posts/ctf/perfectrootctf24/poreshot2.png)
178178

179179
`r00t{p4tch_th3_bin_and_h4ve_fun}`
180180

@@ -184,4 +184,4 @@ Till next time, cheers!
184184

185185
And remember, there are many ways of killing a rat!
186186

187-
![jerry.webp](/assets/img/posts/ctf/perfectrootctf/jerry.webp)
187+
![jerry.webp](/assets/img/posts/ctf/perfectrootctf24/jerry.webp)

0 commit comments

Comments
 (0)