账号安全:1.用户信息文件/etc/passwd#格式:account:password:UID:GID:GECOS:directory:shell#Username:Password:UserID:GroupID:用户说明:家目录:登录后的shellroot:x:0:0:root:/root:/bin/bash#查看可以登录的用户:cat/etc/passwd|grep/bin/bash#查看UID=0用户awk-F:'$3==0{print$1}'/etc/passwd#查看有sudo权限的用户more/etc/sudoers|grep-v"^#\|^$"|grep"ALL=(ALL)"注意:只允许无密码本地登录,不允许远程登录anduser::167909:9Durationwho#查看当前登录系统的所有用户(ttylocalloginptsremotelogin)w#显示所有登录系统的用户,以及正在执行的命令查看最近登录成功的用户和信息#Displayloggedin表示用户还在登录中#pts表示从SSH远程登录#tty表示从控制台登录,即最后登录到服务器旁边查看最近登录失败的用户及信息:#ssh表示从SSH远程登录#tty表示从控制台登录sudolastb显示所有用户最新登录信息:lastlog查看服务器时,黑客不在线,你可以使用last命令查看黑客是什么时候登录的。有些黑客在登录的时候,会将/var/log/wtmp文件删除或者清空,这样我们就无法使用last命令获取有用的信息了。hacking前必须先用chattr+a锁定/var/log/wtmp文件,以免被黑客删除5.sudouserlist/etc/sudoers入侵排查:#查询privilegeduserprivilegeduser(uidis0):awk-F:'$3==0{print$1}'/etc/passwd#查询可以远程登录的账户信息:awk'/\$1|\$6/{print$1}'/etc/shadow#root除外account,查看其他账号是否有sudo权限。如果不是管理需要,普通账户要删除sudo权限:more/etc/sudoers|grep-v"^#\|^$"|grep"ALL=(ALL)"#禁用或删除多余可疑accountsusermod-Luser#禁用账户,账户不能登录,/etc/shadow第二栏是!一开始userdeluser#删除用户useruserdel-ruser#user用户会被删除,/home目录下的user目录也会被删除,通过.bash\_history文件查看该账户执行的系统命令:打开。/home中各账号目录下的bash_history查看普通账号执行过的历史命令。为历史命令添加登录IP地址、命令执行时间等信息:#1,保存10000条命令:sed-i's/^HISTSIZE=1000/HISTSIZE=10000/g'/etc/profile#2,在/etc中添加如下内容/profile文件末尾的配置信息:USER_IP=`who-uami2>/dev/null|awk'{print$NF}'|sed-e's/[()]//g'`if["$USER_IP"=""]thenUSER_IP=`hostname`fiexportHISTTIMEFORMAT="%F%T$USER_IP`whoami`"shopt-shistappendexportPROMPT_COMMAND="history-a"#3。让配置生效source/etc/profile注意:history操作命令清除:history-c这个操作不会清除文件中保存的记录,所以需要手动删除.bash\_profile文件中的记录查看端口连接:netstat-antlp|more使用ps命令分析进程,得到对应的pid号:psaux|grep6666查看pid对应的进程文件路径:#$PID为对应的pid号ls-l/proc/$PID/exeorfile/proc/$PID/exe分析进程:#根据pid号查看进程lsof-p6071#通过服务名查看进程打开的文件lsof-csshd#通过端口查看进程编号:lsof-i:22查看进程启动时间:ps-p6071-olstart根据pid:kill-96071强行停止进程注意:如果找不到可疑文件,可能会删除该文件。这个可疑进程已经保存在内存中,属于内存进程。这时候需要找到PID然后kill它查看启动项:系统运行级别示意图:运行级别含义0关机1单用户模式,可以想象成windows的一种安全模式,主要用于用于系统修复2不完全命令行模式,不包括NFS服务3完全命令行模式,即标准字符界面4系统保留5图形模式6重启查看运行级别命令:runlevel启动配置文件:/etc/rc.conflocal/etc/rc.d/rc[0~6].d启动Linux系统时,会运行一些脚本来配置环境——rc脚本。在内核初始化并加载所有模块后,内核将启动一个名为init或init.d的守护进程。这个守护进程开始运行/etc/init.d/rc中的一些脚本。这些脚本包括一些命令,用于启动运行Linux系统所需的服务。启动时执行脚本有两种方式:在/etc/rc.local中的exit0语句之间添加启动脚本。脚本必须有可执行权限使用update-rc.d命令添加开机执行脚本1、编辑修改/etc/rc.local2,update-rc.d:该命令用于安装或删除System-V样式初始化脚本连接。脚本存放在/etc/init.d/目录下,当然你可以在这个目录下创建一个连接文件来连接存放在其他地方的脚本文件。该命令可以指定脚本的执行序号。序号的取值范围为0-99。序号越大,越晚执行。当我们需要开机启动自己的脚本时,只需要将可执行脚本放到/etc/init.d目录下,然后在/etc/rc.d/rc_.d文件中创建一个软链接即可:update-rc.d脚本名称或服务#1。在/etc/init.d目录下创建后门脚本的链接文件:ln-s/home/b4yi/kali-6666.elf/etc/init.d/backdoor#2。使用update-rc.d命令将连接文件后门添加到启动脚本sudoupdate-rc.dbackdoordefaults99中,开机后立即执行。入侵检查:more/etc/rc.local/etc/rc.d/rc[0~6].dls-l/etc/rc.d/rc3.d/Plannedtaskcheck:使用中需要注意的几点cron路径:crontab-l#列出当前用户的定时器设置crontab-r#删除当前用户的cron任务上面的命令其实是列出了文件/var/spool/cron/crontabs/root:/etc的内容/crontab只允许root用户修改/var/spool/cron/存放每个用户的crontab任务,每个任务以创建者命名/etc/cron.d/将文件写入该目录,格式和/etc/crontab还将脚本放在/etc/cron.hourly/,/etc/cron.daily/,/etc/cron.weekly/,/etc/cron.monthly/目录下,使其每小时/每天/每周/执行一个月一次的小技巧:more/etc/cron.daily/*查看目录下所有文件入侵排查:关注以下目录是否存在恶意脚本;/var/spool/cron/*/etc/crontab/etc/cron.d/*/etc/cron.daily/*/etc/cron.hourly/*/etc/cron.monthly/*/etc/cron.weekly//etc/anacrontab/var/spool/anacron/*入侵排查:查询已安装服务:RPM包已安装服务:chkconfig--list查看服务自启动状态,可以看到所有RPM包已安装服务psaux|grepcrond查看当前3、5级服务系统启动项中文环境chkconfig--list|grep"3:enable\|5:enable"英文环境chkconfig--list|grep"3:on\|5:on"源码包安装服务:检查服务安装位置,一般在/user/local/servicehttpdstart搜索/etc/rc.d/init.d/看是否有异常文件检查:通过三种方式查找修改文件:按名称、文件大小搜索,时间,文件名find/-namea.Test#如果文件名不完整可以使用通配符*补全#如果不区分大小写,可以把-name换成-iname根据文件大小查找:find/-size+1000M#+1000M表示文件大于1000M,-10M表示文件小于10M根据时间查找:#-atime文件访问Time#-mtime文件内容修改时间#-ctime文件状态修改时间(文件权限、所有者/组、文件大小等,当然如果文件内容改变,ctime也会改变)#注意:系统进程/脚本访问文件,atime/mtime/ctime也会被修改,不一定人为的修改会被记录#查找最近一天内修改的文件:find/-mtime-1-ls|more#查找50天前修改的文件:find./-mtime+50-ls按所有者和组搜索:-user按所有者搜索-group按组搜索-nouser搜索没有属主的文件-nogroup搜索没有组的文件#查看属主是根文件find./-userroot-typef#-typef表示查找文件,-typed表示查找目录#注意:系统中没有所有者或组文件或目录,这容易造成安全隐患。建议按照CPU使用率删除按效率从高到低排序:ps-ef--sort-pcpu按内存使用率从高到低排序:ps-ef--sort-pmem补充:1.查看敏感目录,比如/tmp目录下的文件,同时注意隐藏文件夹,名为“..”的文件夹有隐藏属性。2、获取WEBSHELL和远程控制木马的创建时间,如何找出同一时间范围内创建的文件?可以使用find命令查找,比如find/opt-iname"*"-atime1-typef可以找出第二天之前/opt访问过的文件。3、对于可疑文件,可以使用stat创建和修改时间。系统日志查看:日志默认存放位置:/var/log/必看日志:secure、history查看日志配置:more/etc/rsyslog.conf日志文件说明/var/log/cron记录与系统定时任务相关的日志/var/log/cups是记录打印信息的log/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授权,甚至添加用户和修改用户密码都会记录在这个日志文件中/var/log/wtmp登录、退出、数据交换、关机和重启记录/var/log/lastlog文件记录最后一次登录用户信息,可用lastlog命令查看。/var/log/secure记录登录系统访问数据的文件,如pop3/ssh/telnet/ftp等都会被记录。/var/log/cron定时任务相关的日志信息/var/log/message信息和系统启动后的错误日志/var/log/apache2/access.logapacheaccesslog日志分析技巧:1.定位爆破hostsroot账号的IP有多少:grep"Failedpasswordforroot"/var/log/secure|awk'{print$11}'|sort|uniq-c|sort-nr|more定位爆破哪些IP:grep"Failedpassword"/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什么是爆破用户名字典?grep"Failedpassword"/var/log/secure|perl-e'while($_=<>){/for(.*?)from/;print"$1\n";}'uniq-c|sort-nr2.什么是成功登录IP:grep"Accepted"/var/log/secure|awk'{print$11}'|sort|uniq-c|sort-nr|more登录成功日期,用户名,IP:grep"Accepted"/var/log/secure|awk'{print$1,$2,$3,$9,$11}'3.添加一个用户kalilog:Jul1000:12:15localhostuseradd[2382]:newgroup:name=kali,GID=1001Jul1000:12:15localhostuseradd[2382]:newuser:name=kali,UID=1001,GID=1001,home=/home/kali,shell=/bin/bashJul1000:12:58localhostpasswd:pam_unix(passwd:chauthtok):passwordchangedforkali#grep"useradd"/var/log/secure4。删除用户kali日志:Jul1000:14:17localhostuserdel[2393]:deleteuser'kali'Jul1000:14:17localhostuserdel[2393]:removedgroup'kali'ownedby'kali'Jul1000:14:17localhostuserdel[2393]:removedshadowgroup'kali'ownedby'kali'#grep"userdel"/var/log/secure5,suswitchuser:Jul1000:38:13localhostsu:pam_unix(su-l:session):sessionopenedforusergoodbyroot(uid=0)sudo授权执行:sudo-lJul1000:43:09localhostsudo:good:TTY=pts/4;PWD=/home/good;USER=root;COMMAND=/sbin/shutdown-rnowwebshel??lkilling:HippoWebShellkilling:http://www.shellpub.comLinux安全检查脚本:https://github.com/grayddq/GScanhttps://github.com/ppabc/security_checkhttps://github。com/T0xst/linux