不输的办法只有一个,就是不上场
常用命令
top#命令可以直接看到进程实时情况。psaux--sort=pcpu
head-10#查看cpu占用率前十的进程,有时候可以发现top发现不了的东西netstat-anpl#检查当前存在的连接与监听端口ps-ef#查看当前系统上运行的所有进程与其使用的命令w#查看活动用户who#查看当前登录用户(tty本地登陆pts远程登录)/var/log/utmplast#查看用户登录日志,查看我们系统的成功登录、关机、重启等情况/var/log/wtmplastb#查看登陆失败的用户日志/var/log/btmplastlog#查看所有用户登陆日志/var/log/lastloglsof-i:#查看谁在使用某个端口lsof-nPi查看内部对外的网络连接Strace集诊断、调试、统计一体的工具。`strace-f-ppid`查看进行的行为busybox是应急常用的工具。如果系统命令被替换了可以使用此命令来查看系统相关信息
查看History详细
设置history显示时间和用户名,更方便排查谁在什么时间执行了什么
exportHISTTIMEFORMAT=%F%T`whoami`#设置history显示时间和用户名
查看文件改动
检查最近创建的php、jsp文件和上传目录例如要查找24小时内被修改的JSP文件:
find./-mtime0-name*.php
stat/etc/passwd#查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。cat/etc/passwd
grep-vnologin#查看除了不可登录以外的用户都有哪些,有没有新增的cat/etc/passwd
grepx:0#查看哪些用户为root权限,有没有新增的cat/etc/passwd
grep/bin/bash#查看哪些用户使用shell
与测试环境目录做对比
diff-r{生产dir}{测试dir}
账号
1、查询特权用户特权用户(uid为0)root
drunk:~#awk-F:$3==0{print$1}/etc/passwdroot2、查询可以远程登录的帐号信息rootdrunk:~#awk/\$1\$6/{print$1}/etc/shadowroot:$6$xJe1PRKN$U33UxLJ6zr3Iar4TQuaLdLSu9cmEo3DfKwE6mBmzq2Du5QeW5UOawPADMpWbPrCSALA6cU6FSU8IcE9XwL1::0::7:::root
drunk:~#域名hosts
有一些挖矿程序会修改
/etc/hosts
文件,请看一下其中内容是否被更改过前两天在另外的项目组上发现的某个挖矿病毒就会修改hosts文件这是从那台服务器上提取的一些恶意的配置内容
0.0.0.0aliyun.one0.0.0.0evle.org
日志
secure是应急中最常用的文件,主要记录系统存取数据的文件。日志默认存放位置:/var/log/,日志总是能发现一些蛛丝马迹。
注:
secure
在一些较新的linux已经被
rsyslog
替换,下面命令中的
/var/log/secure
可以尝试换成
/var/log/auth.log
1、定位有多少IP在爆破主机的root帐号:grepFailedpasswordforroot/var/log/secure
awk{print$11}
sort
uniq-c
sort-nr
more定位有哪些IP在爆破:grepFailedpassword/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爆破用户名字典是什么?grepFailedpassword/var/log/secure
perl-ewhile($_=){/for(.*?)from/;print$1\n;}
uniq-c
sort-nr2、登录成功的IP有哪些:grepAccepted/var/log/secure
awk{print$11}
sort
uniq-c
sort-nr
more或者last命令,它会读取位于/var/log/wtmp的文件,并把该文件记录的登录系统的用户名单,全部显示出来。登录成功的日期、用户名、IP:grepAccepted/var/log/secure
awk{print$1,$2,$3,$9,$11}3、增加一个用户kali日志:Jul:12:15localhostuseradd[]:newgroup:name=kali,GID=Jul:12:15localhostuseradd[]:newuser:name=kali,UID=,GID=,home=/home/kali,shell=/bin/bashJul:12:58localhostpasswd:pam_unix(passwd:chauthtok):passwordchangedforkali#grepuseradd/var/log/secure4、删除用户kali日志:Jul:14:17localhostuserdel[]:deleteuserkaliJul:14:17localhostuserdel[]:removedgroupkaliownedbykaliJul:14:17localhostuserdel[]:removedshadowgroupkaliownedbykali#grepuserdel/var/log/secure5、su切换用户:Jul:38:13localhostsu:pam_unix(su-l:session):sessionopenedforusergoodbyroot(uid=0)sudo授权执行:sudo-lJul:43:09localhostsudo:good:TTY=pts/4;PWD=/home/good;USER=root;COMMAND=/sbin/shutdown-rnow
常用的shell命令
find、grep、egrep、awk、sed
1、grep显示前后几行信息:
标准unix/linux下的grep通过下面參数控制上下文:grep-C5foofile显示file文件里匹配foo字串那行以及上下5行grep-B5foofile显示foo及前5行grep-A5foofile显示foo及后5行查看grep版本号的方法是grep-V
2、grep查找含有某字符串的所有文件
grep-rnhello,world!*:表示当前目录所有文件,也可以是某个文件名-r是递归查找-n是显示行号-R查找所有文件包含子目录-i忽略大小写
3、如何显示一个文件的某几行:
catinput_file
tail-n+
head-n#从第行开始,显示行。即显示~行
命令替换后门
黑客会替换替换top、ps等命令
检测stat命令查看文件状态并且使用md5sum命令查看文件hash并将其与正常文件hash进行比较。如果确定被替换,使用正常文件替代坏文件即可
工具
1.利用自动化检测程序rookithunter进行检测rookithunter可以自动化检查主机上可能存在的rookit木马文件,与被篡改的命令等,找到被篡改的命令后可以选择删除命令,然后重新安装命令。
#centosyuminstall-yrkhunter#ubuntuapt-getinstallrkhunterrkhunter--update#更新rkhunter版本rkhunter--propupd#更新rkhunter的特征数据库#常见命令rkhunter--check--sk#自动检测每个部分中间不需要暂停rkhunter--check#自动检测每个部分,每监测完一个部分中断一次,输入enter之后会继续检测下个部分rkhunter-c--sk--rwo#自动检测并只显示告警信息
webshell查杀
使用Webshell查杀工具Windows下D盾等,Linux下河马等
河马webshell查杀: