1、查询特权用户特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd2、查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"4、禁用或删除多余及可疑的帐号
# 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头 usermod -L user # 删除user用户 userdel user # 将删除user用户,并且将/home目录下的user目录一并删除 userdel -r user进入用户目录下
cat .bash_history >> history.txt使用netstat网络连接命令,分析可疑端口、IP、PID
netstat -antlp|more查看下pid所对应的进程文件路径,运行
ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID为对应的pid号)使用ps命令,分析进程
ps aux | grep pid检查启动项文件
more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d/重点关注以下目录中是否存在恶意脚本
/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包安装的服务
# 查看服务自启动状态,可以看到所有的RPM包安装的服务 chkconfig --list # 查看当前服务 ps aux | grep crond源码包安装的服务
查看服务安装位置 ,一般是在/user/local/ service httpd start 搜索/etc/rc.d/init.d/查看是否存在Linux下常用的shell命令如:find、grep、egrep、awk、sed
1、grep显示前后几行信息:
标准unix/linux下的grep通过下面參数控制上下文:
# 显示file文件里匹配foo字串那行以及上下5行 grep -C 5 foo file # 显示foo及前5行 grep -B 5 foo file # 显示foo及后5行 grep -A 5 foo file # 查看grep版本号的方法是 grep -V2、grep查找含有某字符串的所有文件
grep -rn "hello,world!" * : 表示当前目录所有文件,也可以是某个文件名 -r : 是递归查找 -n : 是显示行号 -R : 查找所有文件包含子目录 -i : 忽略大小写3、如何显示一个文件的某几行:
# 从第1000行开始,显示2000行。即显示1000~2999行 cat input_file | tail -n +1000 | head -n 20004、在目录/etc中查找文件init
find /etc -name init5、只是显示/etc/passwd的账户
# awk -F指定域分隔符为':',将记录按指定的域分隔符划分域 # 填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域 cat /etc/passwd |awk -F ':' '{print $1}'6、删除历史操作记录,只保留前153行
sed -i '153,$d' .bash_history定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more定位有哪些IP在爆破:
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爆破用户名字典是什么:
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr登录成功的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}'SUID shell是一种可用于以拥有者权限运行的shell
# 在Linux中查找SUID设置的文件 find . -perm /4000 # 在Linux中查找使用SGID设置的文件 find . -perm /2000 # 取消s权限 chmod u-s /tmp/shell查看 /root/.ssh/authorized_keys 是否被修改
进程、端口都可以发现异常
# 结束进程即可清除后门 kill -s 9 PID利用方法:
1、获取目标系统所使用的PAM版本,下载对应版本的pam版本 2、解压缩,修改pam_unix_auth.c文件,添加万能密码 3、编译安装PAM 4、编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即可使用万能密码登陆,并将用户名密码记录到文件中。
排查:
# 通过Strace跟踪ssh ps axu | grep sshd strace -o aa -ff -p PID grep open aa* | grep -v -e No -e null -e denied| grep WR # 检查pam_unix.so的修改时间 stat /lib/security/pam_unix.so #32位 stat /lib64/security/pam_unix.so #64位 随 亦 认证博客专家 安全博客专家 甲方安全部负责人,坐标杭州,欢迎猎挖。擅长安全架构、web渗透、移动安全、代码审计、隐私合规、安全开发、安全运营