本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!
本文只用作学习研究,请勿非法使用!!!
微信公众号:一个努力的学渣!!!
朔源:不是绝对的,别人留给你朔源的机会(留下痕迹),你才能朔源到
朔源如果挂代理,最终找到的地址都是IP地址,网警可以帮忙调取运营商相关日志,但有限(走程序)
朔源的本质是社工
一个完整的攻击是有一个攻击链条的,需要自己去找
目前大部分都在研究钓鱼、社工,防守方一般重点关注关注跟外部有交互的部门的网络环境,如HR
Linux 应急响应-溯源-系统日志排查:
查看当前已经登录到系统的用户:
w 是一个命令行工具,它可以展示当前登录用户信息,并且每个用户正在做什么。它同时展示以下信息:系统已经运行多长时间,当前时间,和系统负载
- 第一行展示的信息和 uptime 命令运行结果一样。它包含了下列信息:
- 15:44:08 -->系统当前时间
- up 4:06 -->系统上线时间
- 1 user -->登录用户数目
- load average: 0.07, 0.03, 0.05 -->过去 1 分钟,5 分钟和 15 分钟内,系统负载平均值。这个值是对正在运行或者等待磁盘 I/O 操作的任务数目的一个考量。它基本上是告诉你过去的一段时间,系统有多忙?
- 第二行包括以下信息:
- USER:登录用户名
- TTY:登录用户使用的终端名称
- FROM:来自登录用户的主机名或者 IP,如果设置白名单,不显示,一般只有堡垒机设置
- LOGIN@:用户登录时间
- IDLE:从用户上次和终端交互到现在的时间,即空闲时间
- JCPU:依附于 tty 的所有进程的使用时间
- PCPU:用户当前进程的使用时间。当前进程名称显示在 WHAT
- WHAT:用户当前进程和选项、参数
查看所有用户最近一次登录:
lastlog 命令 用于显示系统中所有用户最近一次登录信息。
lastlog 文件在每次有用户登录时被查询。可以使用 lastlog 命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog 的内容。它根据 UID 排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog 显示Never logged。注意需要以 root 身份运行该命令
但是记录中会有很多未登录的用户,可以通过 grep -v 命令进行过滤,不显示没有登录过的用户
lastlog | grep -v “从未登录过” -->过滤的内容视情况而定
查看历史登录用户以及登录失败的用户:
last 可以查看所有成功登录到系统的用户记录,lastb 查看登录成功和失败的用户记录。
单独执行 last 指令时,它会读取位于/var/log/wtmp 的文件,并把该给文件的内容记录的登录系统的用户名单全部显示出来。
单独执行 lastb 指令,它会读取位于/var/log/btmp 的文件,并把该文件内容记录的登入系统失败的用户名单,全部显示出来
-n:显示最近5个登录的用户
-a:把IP列放在最后一行
last -a -n 5
-d:ip 地址转换为主机名。该参数可以获取登录到系统的用户所使用的的主机名,如果目标使用的vps 服务器绑定了域名,该参数有可能获取到目标域名
last -a -d |awk -F’ ’ ‘{print $1 “\t” $NF}’
注:awk 命令可以帮我们取出我们想要的列:
- -F:指定分隔符,每列之间使用空格分隔,
- print:打印
- $1:第一列
- $NF:打印最后一列
- “\t”:添加 tab 符分隔,一般是 4 个空格
对登录系统的用户和 ip 进行排序计数。
这里去掉-d 参数,因为找不到主机名的地址会显示 error.arpa
last -a |awk -F’ ’ ‘{ print $1 “\t” $NF}’ |sort |uniq -c |sort -nr
- sort:将文本进行排序,默认排序会把一样的行都排到一起
- uniq -c:计数
- sort -nr:排序;-nr 倒序;-n 正序
lastb 查看所有登录记录包含失败:lastb -a |awk -F’ ’ ‘{ print $1 “\t” $NF}’ |sort |uniq -c |sort -nr
登录失败的请求更重要的是 ip 地址信息,所以我们只取 ip 地址进行统计:lastb -a |awk ‘{print $NF}’ |sort |uniq -c |sort -nr
SSH登录日志分析:
系统用户登录都会在/var/log/secure 日志文件中记录。但是这个日志文件会被系统自动分割
ll -ld /var/log/secure*
通过通配符查看所有 secure 文件中登录失败的记录:grep Failed /var/log/secure*
取出第九列和第十一列:grep Failed /var/log/secure* |awk -F’ ’ ‘{print $9 “\t” $11}’
但是这里有一些意料之外的记录,这是攻击者错误配置登录导致的。可以通过 grep -v 去掉这些记录。但是这种乱搞的人的 ip 地址我们要单独关注一下
grep Failed /var/log/secure* |grep invalid |awk -F’ ’ ‘{print $13}’
过滤用户名+登录失败的 IP:grep Failed /var/log/secure* |grep -v “invalid”|grep -v “release” |awk -F’ ’ ‘{print $9 “\t” $11}’ |sort |uniq -c | sort -nr
查看登录成功的 ip:grep "Accepted " /var/log/secure* | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more
查看系统历史命令:
系统历史命令一般保存在用户家目录下.bash_history 文件中:find / -name .bash_history
查看当前用户的历史命令:history
历史命令很多的时候,可以配合其他命令一起使用,比如 more 或 grep。如果某个用户被黑客登