溯源应急反制专题
日志分析、流量特征分析、内存马
https://mp.weixin.qq.com/s/2JC-xQBpSDOxHazhiSIjyw
多少IP在爆破主机ssh的root账号
grep -a "Failed password for root" /var/log/auth.log | awk '{
print $11}' | sort | uniq -c | sort -nr | more
ssh爆破成功登陆的IP是多少
grep -a "Accepted" /var/log/auth.log.2 | awk '{
print $11}' | sort | uniq -c | sort -nr | more
爆破用户名字典是什么
grep -a "Failed password" /var/log/auth.log.2|perl -e 'while($_=<>){
/for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
共爆破了多少次
grep -a "Failed password for root" /var/log/auth.log | awk '{
print $11}' | sort | uniq -c | sort -nr | more
黑客登陆主机后新建了一个后门用户,用户名是多少?
cat /var/log/auth.log.2 |grep -a "new user"
https://mp.weixin.qq.com/s/2JC-xQBpSDOxHazhiSIjyw
不死马
https://mp.weixin.qq.com/s/xk1T7PpjcTdZXmV785Eelw
攻击画像大概模型
姓名/ID:
攻击IP:
地理位置:
QQ:
IP地址所属公司:
IP地址关联域名:
邮箱:
手机号:
微信/微博/src/id证明:
人物照片:
跳板机(可选):
关联攻击事件:
在线社会工程学溯源应用
-
域名信息
信息溯源 —>
联系人
邮箱----> 反查 -
客服
忘记
被劫持
自身原因 找回 -
邀请码
商户QQ信息 -
搜索引擎 关键词 历史遗留
照片 图片 属性-----> 隐私泄露
设备 经纬度GPS -
百度地图API
位置查询 -
社会共程序+心理学+语言周转
获取信任
加聊天方式 —> 支付
朋友圈 -
社区 朋友圈
关注 -
支付宝
搜索邮箱---->qq号
真实姓名 -
改号软件
归属地 改变
一、攻击后溯源
https://mp.weixin.qq.com/s/HRgmEUppDzOrfUUSqq35HQ
D盾、木马文件、访问日志、防火墙日志、态势感知日志
命令执行历史与其他相关日志文件。
https://mp.weixin.qq.com/s/KdQOWGzZ60BI2nypWFCoGQ
受害机信息收集 确认入侵点
windows
https://mp.weixin.qq.com/s/YQeAk18ZLFj-CemRAiixTg
可执行文件内存取证溯源工具
webshell
https://zhuanlan.zhihu.com/p/625481043?utm_id=0
日志相关
linux 日志系统
日志默认存放位置:/var/log/
more /etc/rsyslog.conf
命令是在 Linux 系统下查看 rsyslog 配置文件的命令。
rsyslog 是一个高性能的系统日志服务,该服务可以收集、处理和转发系统日志消息。
/etc/rsyslog.conf
是 rsyslog 的主配置文件,它包含了 rsyslog 的设置和规则。
在通过 more /etc/rsyslog.conf
查看该文件时,可以查看并编辑 rsyslog 的配置选项,
例如设置日志要写入哪个目录、定义日志的格式等。
同时,也可以查看 rsyslog 的规则,根据这些规则定义不同的日志传输和存储方式,
比如将指定的日志消息发送到远程服务器、将日志写入数据库等。
/var/log/cron
记录了系统定时任务相关的日志
/var/log/cups
记录打印信息的日志
/var/log/dmesg
记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog
记录邮件信息
/var/log/message
记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp
记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog
记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp
永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp
记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure
记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
#集诊断、调试、统计一体的工具。`strace -f -p pid` 查看进行的行为
Strace
#Linux工具,如果系统命令被替换了可以使用此命令来查看系统相关信息。
busybox
web日志
快速找到 Apache 的位置,可以使用以下命令:
which apache2
在系统 PATH 变量指定的路径中查找 “apache2”/ “httpd” 可执行文件,并返回找到的路径。
find / -name "apache2"
该命令会在根目录下搜索名为 “apache2” 的文件或目录,并返回所有找到的路径。这条命令会搜索整个文件系统,时间可能会比较长,但能够确保找到 Apache 的位置。
apache access.log、error.log
xx.xx.xx.xx - - [14/Dec/2020:14:26:37 +0800] "POST /phpMyAdmin-4.8.1-all-languages/version_check.php HTTP/1.1" 200 28
xx.xx.xx.xx - - [14/Dec/2020:14:26:46 +0800] "POST /phpMyAdmin-4.8.1-all-languages/logout.php HTTP/1.1" 302 8637
xx.xx.xx.xx - - [14/Dec/2020:14:26:51 +0800] "GET /phpMyAdmin-4.8.1-all-languages/index.php HTTP/1.1" 200 3497
账号用户相关
linux
https://mp.weixin.qq.com/s/01aNmBVmMpRRmPOgkUIBKg
查询su切换用户记录
#sudo -l
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user tes
#查询特权用户特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{
print $1}' /etc/passwd
root
#查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{
print $1}' /etc/shadow
root:$1$VJkWOIro$gRi9wy.FrsUE/W5oc3vVS.:18644:0:99999:7:::
xxxxx:$1$VJkWOIro$gRi9wy.FrsUE/W5oc3vVS.:18644:0:99999:7:::
#查看当前登录用户及其登陆方式(tty 本地登录或 pts 远程登录) /var/log/utmp
w/
who
该命令会显示当前活动用户的用户名、终端和登录时间等信息。
在终端一栏中,如果是以 tty 的形式显示,则表示本地登录
如果是以 pts/X 的形式显示,则表示远程登录。
#成功登录和注销 关机、重启等的信息,可以使用以下命令查看:
last
/var/log/utmp 文件存储
该命令会显示最近登录用户的用户名、登录时间、终端和登录方式等信息。
在终端一栏中,如果是以 ttyX 的形式显示,则表示本地登录;
如果是以 :X 或 :X.Y 的形式显示,则表示远程登录。
需要注意的是,/var/log/utmp 文件只记录已经注销的用户信息,显示的结果可能不是实时的。
#查看登陆失败的用户日志 /var/log/btmp
lastb
#查看所有用户登陆日志 /var/log/lastlog
lastlog
检查在 /var/log/secure
文件中记录的 SSH 登录日志
定位攻击者的 IP 地址和尝试登录的用户名。
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
查找所有尝试使用 root 用户名登录但登录失败的 IP 地址,
按照每个 IP 地址的出现次数进行排序,
并使用 more 命令以分页方式显示结果。
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
#检查登录失败的 IP 地址,并使用 uniq 命令计算每个 IP 地址的出现次数进行排序。
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
#检查登录失败的用户名并计算出现次数,其中使用了正则表达式从日志消息中提取尝试登录的用户名。
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
#查询登录成功的IP
#登录成功的日期、用户名、IP:
#grep "Accepted " /var/log/secure | awk '{
print $1,$2,$3,$9,$11}'
#grep "useradd" /var/log/secure
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#查询增加用户日志
# grep "userdel" /var/log/secure
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[</