查看爆破ssh攻击者的ip:
last -i #查看近期登录用户,-i可显示登录者IP 单独执行last指令时,它会读取位于/var/log/wtmp的文件,并把该给文件的内容记录的登录系统的用户名单全部显示出来。
查看使用的用户名:
lastb -i #查看近期登录失败的用户,-i可显示登录者IP单独执行lastb指令,它会读取位于/var/log/btmp的文件,并把该文件内容记录的登入系统失败的用户名单,全部显示出来。
查看后门:ps -aux
查看历史操作记录:history
/var/log/utmp(命令执行日志)
可以查看使用命令执行了什么
web日志文件记录web访问信息
/var/adm/sulogZ(记录用户最近成功登录事件和最后一次不成功登录事件)
根据题意,隐藏了某个批处理文件,在进程或许可以找到
1.1 /tmp 目录
此目录下,任可用户均可读写,因此应关注此目录内容
1.2.1 /etc/init.d 系统服务目录
/etc/init.d/apache2 status #查看服务状态
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://httpd.apache.org/docs/2.4/
/etc/init.d/apache2 start #启动服务
update-rc.d apache2 stop #修改为启动默认关闭服务
1.2.2 /etc/profile.d/ 用户自定义启动目录
将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。
1.3 linux目录-基于时间和权限查找
find / -mtime -2 #查找2天内被修改的文件
find / -perm 777 #查找具有777权限的文件
find / -perm -4000 #查找具有Suid权限的文件 或find / -perm -u=s
#suid表示特殊权限位
SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限
当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID。那么这个特殊权限的特殊性的作用是什么呢?
1、SUID权限仅对二进制程序(binary program)有效;
2、执行者对于该程序需要具有x的可执行权限;
3、本权限仅在执行该程序的过程中有效(run-time);
4、执行者将具有该程序拥有者(owner)的权限。
1.4 可疑网络连接分析 netstat -pant
kill 9 pid 可杀死某个进程
1.5 可疑进程所对文件分析 ps aux
kill杀死进程后需删除可疑文件
1.6 登录分析-筛选异常登录
单独执行last指令时,它会读取位于/var/log/wtmp的文件,并把该给文件的内容记录的登录系统的用户名单全部显示出来。
单独执行lastb指令,它会读取位于/var/log/btmp的文件,并把该文件内容记录的登入系统失败的用户名单,全部显示出来。
last -i #查看近期登录用户,-i可显示登录者IP
who
users
w #查看当前登录用户
1.7 异常用户分析-cat /etc/passwd
1.8 历史执行命令查看history cat /root/.bash_history
wget可能下载一个木马
ssh连接一个内网系统
tarzip打包敏感信息
系统配置修改等
31.9 计划任务排查 crontab
crontab -e
crontab -l
crontab -r
crontab [ -u user ] [ -i ] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
如果修改了/etc/crontab文件后不生效,则要查看是否添加了用户,或者执行crontab /etc/crontab命令即可
1.10 异常环境变量path排查
1.10.1 $path
echo $path #查看当前path环境变量所包含的目录
export PATH=$PATH:路径/var/test/ #临时将/var/test/目录加入环境变量,重启后丢失
#需永久生效则修改/etc/profile或~/.bash_profile
1.10.2当前Shell环境变量配置~/.bash_profile
当前用户专属的启动文件,可根据不同用户定制不同的环境变量。
触发时机:每当创建新的shell终端或ssh登入调用(即 no login shell)
1.10.3 全局Shell环境变量配置 /etc/profile
所有用户的环境变量,统一配置。
触发时机:每次开机并成功登录Linux系统将调用(即 login shell)
环境变量加载顺序:
/etc/profile
$HOME/.bash_profile
$HOME/.bashrc 每次启用shell会将 /etc/profile 中自定义的部分同步更新
/etc/profile.d/*.sh
$HOME/.bash_login 默认无此文件,支持自定义用户登入事件
$HOME/.bash_logout 默认文件为空,支持自定义用户登出事件
Linux常见系统后门排查命令
1、检查异常账号——cat /etc/passwd
通过检查/etc/passwd,查看有没有可疑的系统用户,这个文件是以冒号:进行分割字段,一般我们只要注意第三个字段即可,第三个字段是用户ID,也就是UID,数字0代表超级用户的UID,即这个账号是管理员账号。一般Linux只会配置一个root账号为系统管理员,当出现其他账号是系统管理员的时候,就要注意了,很可能是黑客建立的账号。
2、检查异常登陆
who 查看当前登录用户(tty本地登陆 pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
last 列出所有用户登陆信息
lastb 列出所有用户登陆失败的信息
lastlog 列出所有用户最近一次登录信息
3、网络连接——netstat -pantl
通过查看网络连接,检查是否存在对外的恶意连接,这些恶意连接是哪个进程产生的,就可以判断出服务器是否被黑客入侵。
4、查看进程——ps -ef | more
查看进程信息,进程运行参数太长或存在不可见字符时,需加 more命令 或把ps命令的结果输出到文件查看。
查看系统进程可以有效的发现是否存在黑客运行的恶意程序。这里要注意一点,PID是进程运行的ID号,PPID是父进程号,也就是启动这个进程的程序是谁,不过我们一般只要注意PID就可以了。很多时候服务器运行的进程较多,而且当进程的参数出现不可见字符的时候,我们只用ps -ef很可能会忽略掉一些进程的启动信息,所以建议大家使用ps -ef查看进程时加一个more命令,这样就能有效的避免我刚才说到的情况
很多时候黑客运行的程序会做很多伪装,比如我们通过ps命令查看到一个进程名是abc,但是如果黑客经过伪装的话,启动这个程序的文件名就可能不是abc了,是其他的命令,所以我们就要通过在/proc这个内存目录来查看具体是哪个程序启动的这个进程,同样的,使用lsof -p命令我们一样能达到同样的效果。
ls -la /proc//exe 或
lsof -p
5、计划任务
crontab -l 列出计划任务列表
crontab -e 编辑计划任务,当计划任务出现不可见字符时,需要此命令才能看到具体信息
ls -la /var/spool/cron/ 查看计划任务文件
more /etc/crontab 查看计划任务
计划任务也是黑客经常会使用到的一个功能,通过查看计划任务,可以发现黑客是否在系统中添加了定期执行的恶意脚本或程序。如果发现某个计划任务是定期运行一个python脚本,但我们不知道这个python脚本是不是恶意的,这时就需要我们去查看python脚本的内容来确定它是不是一个恶意脚本了。
6、系统启动项
more /etc/rc.local
ls -l /etc/rc.d/rc<0~6>.d 优先查看/etc/rc.d/rc3.d的内容
more /etc/ld.so.preload ld.so.preload是linux动态链接库,linux正常程序运行过程中,动态链接器会读取LD_PRELOAD环境变量的值和默认配置文件/etc/ld.so.preload的文件内容,并将读取到的动态链接库进行预加载,即使程序不依赖这些动态链接库。
查看系统启动项也是一个有效发现黑客攻击的方法,一般来说我们只需要查看上述的这几个文件就行。
7、系统日志
/var/log/secure SSH登陆日志、su切换用户日志,只要涉及账号和密码的程序都会记录
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,但因为记录的信息太杂,一般不查看。
/var/log/cron 计划任务日志
/var/log/wtmp 记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。这个文件是二进制文件,需要使用last命令来查看
通过查看系统日志,能发现黑客究竟做了一些什么事情,不过一般我们只查看secure日志即可,这个日志能有效的发现黑客有没有通过暴力破解的方法攻破过服务器,查看日志的方式也很简单,使用cat、more、grep等命令查看即可。
8、Rootkit查杀
chkrootkit
rkhunter
如果遇到更顽强的系统木马,比如Rootkit这类型的后门,我们就要使用一些专门的Rootkit查杀工具了,直接运行就可以开始查杀。
查看登录系统所使用的ip:在C:\Windows\System32\winevt\Logs\查看web日志文件即可
在web服务器根目录中查找是否有异常文件
如果找到进行分析并删除
查看mysql用户和密码
select user,password mysql.user;
删除administrators组中除administrator的所有用户
查看用户:net user
在开始菜单所有程序中找到启动文件夹,删除不必要的启动项目
Windows应急响应
2.1. 入侵排查
2.1.1. 一、账号
1、弱口令
检查方法:查看服务器是否存在弱口令,远程连接端口是否对公网开放;直接询问管理员
2、新建账号和可疑账号
检查方法一:Win+R,输入lusrmgr.msc
检查方法二:cmd中net localgroup administrators
处理方法:禁用或删除对应的账户
3、隐藏账号和克隆账号
检查方法:查看注册表对应的键值
处理方法:删除注册表 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\ 下对应帐户的键值即可(两处)
4、登陆日志
检查方法:
a
win+R输入
eventvwr.msc
打开事件管理器
b、Windows日志 -> 安全 -> 另存为
c、利用Log Parser进行分析
安装后常规情况安装到 C:\Program Files (x86)\Log Parser 2.2
常用的命令 https://blog.csdn.net/qq_29647709/article/details/85124105
# 查看日志中的登陆记录
LogParser.exe -i:EVT "select TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username FROM c:\日志路径\日志.evtx where EventID=4624"
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM C:\Users\d4m1ts\Desktop\安全.evtx where EventID=4624"
2.1.2. 二、端口和进程
可能存在一些还在运行中的后门程序,方便快速定位
1、检查端口连接,是否有远程连接、可疑连接
检查方法:
a、netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED的连接,和可疑的监听LISTENING端口。
b、根据查询到的 pid 定位到进程,tasklist /svc | findstr $PID
c、根据查询到的建立连接的IP,可以去微步上查一下是否为C2
2、检查异常进程
检查方法一:Win+R,输入 msinfo32,点击 “软件环境” -> “正在运行任务”
检查方法二:使用 Process Explorer
检查方法三:“任务管理器” -> “进程”
3、进程命令行启动参数
在windows下查看所有运行程序(或进程)的命令行参数
wmic process get caption,commandline /value
如果想查询某一个进程的命令行参数,使用下列方式:
wmic process where caption="svchost.exe" get caption,commandline /value
4、技巧
技巧一:如何快速定位恶意进程
(1). 没有签名验证信息的进程
(2). 没有描述信息的进程
(3). 进程的属主
(4). 进程的路径是否合法
(5). CPU或内存资源占用长时间过高的进程
技巧二:如何快速定位进程目录
(2). msinfo32可以直接看
(3). cmd中输入wmic,然后输入process
(1). 任务管理器的进程栏,直接右键,点击“打开文件位置”
2.1.3. 三、开机启动项、计划任务、服务
1、开机启动项
检查方法:a、Win+R输入shell:startup,快速查看开机启动目录
b、Win+R输入msconfig,查看启动项
c、Win+R输入regedit
查看HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce右侧是否有启动异常的项目;
查看HKEY_CURRENT_USER\Environment\是否存在UserInitMprLogonScript参数(Logon Scripts 后门);
查看HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon的Userinit的参数值是否有除userinit.exe外的其他程序(userinit后门);
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce"
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。
d、Win+R,输入gpedit.msc 查看组策略
e、利用安全软件查看
2、计划任务
检查方法一:“控制面板” -> “管理工具” -> “计算机管理”->“系统工具”->“任务计划程序”->“任务计划程序库”
检查方法二:cmd输入schtasks 或者 at
3、服务
检查方法一:Win+R 输入 services.msc,注意服务状态和启动类型,检查是否有异常服务。
检查方法二:cmd输入 sc query,不太直观
4、工具
Autoruns
Autoruns for Windows 是 Mark Russinovich 和 Bryce Cogswell 开发的一款软件,它能用于显示在 Windows启动或登录时自动运行的程序,并且允许用户有选择地禁用或删除它们,例如那些在“启动”文件夹和注册表相关键中的程序。此外,Autoruns还可以修改包括:Windows 资源管理器的 Shell 扩展(如右键弹出菜单)、IE浏览器插件(如工具栏扩展)、系统服务和设备驱动程序、计划任务等多种不同的自启动程序。
2.1.4. 四、系统信息
1、系统补丁
检查方法:CMD 中输入 systeminfo,将结果复制到提权辅助页,查看是否有相应可用的漏洞
2、可疑目录和文件
检查方法:
a、Win+R输入 %UserProfile%\Recent,打开最近操作过的文件(可以看到attrib +s +a +h +r隐藏的文件)
b、在各个目录_,按修改日期排序,寻找最近更新过的文件
c、回收站、浏览器下载目录、浏览器历史记录
d、修改时间在创建时间之前的为可疑文件
e、ADS隐藏后门
当看到运行进程中调用的文件名包含:,或者dir /r看到的文件列表中包含:,类似test.txt:1.vbs时,可考虑此后门,直接删除test.txt即可