tmp目录是一个放置临时文件的目录,普通用户对其目录内的文件都具有读写的权限,因此tmp目录通常用于提权
查看自启动文件:ls -alh /etc/init.d/
(-h显示文件大小)
以下是常用到的find命令:
查询一些敏感的文件后缀名, 例如php
, aspx
, jsp
等webshell常用后缀
find ./ mtime 0 name "*.php" //查找24小时内修改过的指定文件 mtime(修改时间) 0表示24小时
find ./ ctime -2 name "*.php" //查找72小时内生成的指定文件 ctime(创建时间)
find ./ iname "*.php*" -perm 777 //查找权限为777的指定文件 iname表示不区分大小写 perm表示权限
常用命令:
netstat -pantl
,列出TCP相关的服务连接。
netstat -pantl | grep "ESTABLISHED"
,查看已建立的TCP服务连接。
以下是netstat的使用参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
以下是常用到的linux命令:
ps -aux
:列出所有的进程
ps -aux | grep pid
:列出指定pid的进程
lsof -i:端口号
:列出指定端口的进程
kill -9 pid
: 关闭指定pid进程
在linux的操作都会被记录在系统日志中,可以通过查询日志信息判断是否有异常登录
last -i | grep -v 0.0.0.0
: 查询非本地登录的日志信息,-i表示IP
w
命令 : 实时查看登录日志
新建用户,随后修改用户uid为0, 以此获取root权限
useradd test
passwd test {输入密码}
vim /etc/passwd //修改用户uid为0
grep "0:0" /etc/passwd
: 查找root权限用户
ls -l /etc/passwd
: 查看用户文件最近修改时间
awk -F: '$3==0 {print $1}' /etc/passwd
: 查看root权限用户
awk -F: '$2=="!" {print $1}' /etc/shadow
: 查看空密码用户
禁用以及删除可疑账号
usermod -L user //禁用帐号,帐号无法登录
userdel user //删除
userdel -r user //将删除user用户,并且将/home目录下的user目录一同删去
linux系统之前执行的命令会保存在/root/.bash_history文件中,以下是查看history的命令。
cat /root/.bash_history
history
常见的可疑历史命令: wegt(远程下载)、ssh(连接内网)、tar zip(压缩打包)
特别要注意, 有些黑客还会修改你的系统命令,例如把netstat命令给改成别的了,从而导致无法使用此命令
crontab -l //列出计划任务
crontab -r //删除计划任务
crontab -e //编辑计划任务
vi /etc/anacrontab
@daily 10 example.daily /bin/bash /home/shell.sh //每天机器开机十分钟之后运行shell.h。
使用more命令查询以下目录,重点查询/etc/cron.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/*
ls /etc/init.d/
查看开机自启动文件
update-rc.d apache2 enable
设置apache2服务开机自启动
通过创建软连接设置自启动,将脚本文件放在/etc/init.d目录下,然后在/etc/rc.d/rc*.d
中建立软连接即可。
S100ssh是sshd脚本的软连接,S表示运行级别加载时自启动,K则表示加载时需关闭
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/K100ssh
update-rc.d apache2 disable
取消apache2服务开机自启动
more /etc/rc.local
more /etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
1、使用chkconfig命令(红帽linux)
命令参数:chkconfig [--level 运行级别][独立服务名][on|off]
chkconfig –level 2345 httpd on //自动启动http服务
chkconfig httpd on //若没填写level参数,默认值为2345
2、修改/etc/rc.local文件,加入 /etc/init.d/httpd start
3、使用ntsysv
命令管理自启动,该命令适用于红帽linux
chkconfig --list //查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond //查看当前服务
查看3与5级别下的启动项
chkconfig --list | grep "3:启用|5:启用" //中文环境下
chkconfig --list | grep "3:on|5:on" //英文环境下
$PATH就是环境变量,分析是否有异常环境变量
echo $PATH
: 输出环境变量目录
export PATH=$PATH:/usr/lol/theshy
添加环境变量,临时有效,重启无效
vim /etc/profile
,随后添加export PATH=$PATH:/usr/lol/faker
,再source /etc/profile
。这个是永久修改$PATH变量的方法
日志默认存放位置:/var/log/
查看日志配置:more /etc/rsyslog.conf
日志文件 | 说明 |
---|---|
/var/log/cron | 记录定时任务日志 |
/var/log/cups | 记录打印信息日志 |
/var/log/mailog | 记录邮件信息日志 |
/var/log/message | 记录系统重要信息日志,若出问题,首先检查该日志 |
/var/log/btmp | 记录错误信息日志,二进制文件,要用lastb命令查看 |
/var/log/lastlog | 记录所有用户最后一次登录时间日志,二进制文件 |
/var/log/wtmp | 记录所有用户的登录、注销信息,同时记录系统的启动、重启等事件,是个二进制文件 |
/var/log/utmp | 记录当前登录用户信息,会随着用户注销而不断变化,只能通过w,who,users命令查看 |
注意:Centos系统登录日志记录在/var/log/secure,Ubuntu系统登录日志记录在/var/log/auth.log。
查看爆破root用户的IP数量
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}'
grep "useradd" /var/log/secure //查看“useradd”命令的操作日志
grep "userdel" /var/log/secure //查看“userdel”命令的操作日志
rkhunter工具会自动为我们排查linux系统的加固安全隐患
安装工具:apt-get install rkhunter
常用命令:rkhunter --check --sk
//–sk表示自动补全
touch /etc/nologin
chmod命令的使用可以看我linux专栏的文章,这里不过多解释
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
umask=027
chattr +a /var/log/messages //设置此文件只能追加数据
chattr +i /var/log/messages.* //设置文件不能被修改且删除
chattr +i /etc/shadow
chattr +i /etc/passwd
chattr +i /etc/group
vi /etc/ssh/sshd_config 将banner设置成NONE
authconfig --passalgo=sha512 --update //启用 SHA512 替代 MD5加密
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=120
//登录三次后锁定账户,普通用户5秒后解锁,root用户120秒后解锁
vim /etc/profile
,修改HISTSIZE为20(默认是1000)