0x01. 文件分析
1.1 文件分析-敏感文件信息
在linux系统下一切都是文件,其中/tmp是一个特别的临时目录文件。每个用户都可以对它进行读写操作。因此一个普通用户可以对/tmp目录执行读写操作
tmp的权限中最后一位t是指如果A用户在/tmp下创建一个文件夹A, 那么B用户是无法访问的
比如说你拿下一台linux服务器, 但是不是root权限, 你想提权的话, 可以将exp放到/tmp目录下, 然后运行
1.2 文件分析-开机自启文件
查看开机启动项内容/etc/init.d/ , 恶意代码很有可能设置在开机自启动的位置
查看指定目录下文件时间顺序的排序 : ls -alh|head -n 10
查看文件时间属性: stat 文件名
新增文件分析
查找24小时内被修改的文件
find ./ -mtime 0 -name "*.php"
查找72小时内新增的文件
find ./ -ctime -2 -name "*.php"
权限查找: 在linux系统中, 如果具有777权限, 那么这个文件很可疑
find ./ -iname "*.php" -perm 777
-iname 忽略大小写, -perm用于设定筛选文件权限
0x02. 进程分析
2.1 进程分析-网络连接分析
在linux中可以使用netstat进行网络连接查看
netstat -Print network connections,routing tables,inteface statistics,masquerade connections,and multicast memberships
具体帮助信息查看 man netstat
常用命令 netstat -pantl 查看处于tcp网络套接字相关信息
关闭位置连接 kill -9 pid 即可关闭 -9代表的是强制关闭,关闭的是进程
2.2 进程分析-进程所对文件
在linux中可以使用ps查看进程相关信息
ps aux
查看所有进程信息
使用ps aux | grep PID 筛选出具体PID的进程信息, lsof -i : 端口号也可以实现类似的功能
lsof -i:22
ps aux | grep 22
0x03. 登录分析
3.1 登录分析-异常登录
在linux中所有操作都会记录到系统日志中, 对于登录也可以查看日志信息, 查看是否异常登录
last -i | grep -v 0.0.0.0
查看登录日志, 筛选非本地登录 -v 0.0.0.0 去除0.0.0.0
w
实时登录查看
可以看到192.168.31.238这台主机以root登录了我们的linux主机
3.2 登录分析-异常用户
在linux中root用户是一个无敌的存在, 可以在linux上做任何操作
添加一个新用户设置为root的权限
新建用户 useradd test设置用户密码 passwd test 输入密码设置用户uid和gid都为0 ( root用户uid为0,gid也为0 ) 修改passwd文件即可
cat /etc/passwd 查看所有用户信息
筛选uid和gid为0的用户命令, 即root权限用户
grep "0:0" /etc/passwdawk -F: '$3==0 {print $1}' /etc/passwd
筛选没有密码的用户
awk -F: '$2=="!" {print $1}' /etc/shadow
注意有root权限和空密码的用户, 重点留意
0x04. 命令分析
4.1 命令分析-历史命令
在linux系统中默认会记录之前执行的命令 /root/.bash_history文件中
用户可以使用 cat /root/.bash_history 进行查看 或者使用 history 命令进行查看
history 默认情况下保留当前1000行,够用了cat /root/.bash_history
注意 : wget ( 可远程下载木马 ) , ssh ( 连接内网主机 ) , tar zip类命令 ( 数据打包 ) , 系统配置等 ( 命令修改)
补充 : 默认history没有其他的信息 , 可以在添加以下代码 , 展示更多的历史命令相关信息,在centos测试可以
vim /etc/profile######jiagu history xianshi#########USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiexport HISTTIMEFORMAT="%F %T $USER_IP `whoami` "shopt -s histappendexport PROMPT_COMMAND="history -a"######### jiagu history xianshi ##########如果不能右键, 在xshell中shift+ins(f12)
配置生效
source /etc/profile
行号 年月日 时分秒 ip 用户 命令
0x05. 任务分析
5.1 任务分析-计划任务
在linux系统中可以使用命令 crontab 进行计划任务的设定
crontab -h
其中 -e 可以用来编辑设定计划任务, -l 可以列出当前用户的计划任务, -r删除当前用户所有的计划任务
默认第一次编辑计划任务会让你选择编辑器, 最好选3,vim编辑, 如果不慎选了1nano, 可以通过select-editor修改
编辑一个计划任务
crontab -e* * * * * echo $(date) >> /tmp/time.log
5.2 任务分析-开机启动
在linux(Debian)系统中 /etc/init.d/ 目录下保存着 开机自启动程序的目录
用户可以直接使用 /etc/init.d/程序名称 status 查看状态
/etc/init.d/ssh status 查看远程连接状态/etc/init.d/ssh start 开启远程连接/etc/init.d/ssh stop 停止远程连接
使用 update-rc.d 程序名称 disable 取消开机自启动 使用enable开机自启
update-rc.d ssh disable 开启开机自启动update-rc.d ssh enable 取消开机自启动
0x06. 环境变量
6.1 环境变量-$PATH异常
决定了 shell命令 将到哪些目录中寻找命令或程序, PATH的值是一系列目录, 当你运行一个程序时, linux在这些目录下进行搜寻编译链接, 比如你输入一个ls, 首先会在当前目录找寻ls这个文件, 如果没有再去PATH中找
echo $PATH
修改PATH export PATH=$PATH:/usr/local/new/bin 本次终端中有效, 重启后无效, 在/etc/profile或/home/.bashrc ( source ~/.bashrc ) 才能永久生效
export PATH=$PATH:/usr/local/new/bin
0x07. 后门分析
7.1 后门分析-rkhunter
Rkhunter具有以下功能:
- 系统命令检查, MD5校验
- Rookit检测
- 本机脱敏目录, 系统配置异常检测
安装: apt install rkhunter , 如果想要卸载 apt autoremove rkhunter
基本使用 : rkhunter --check --sk
重点关注 warning 不是绿色的
-c, --check Check the local system
--sK, --sKip-Keypress Don't wait for a keypress after each test
7.2 webshell查杀
推荐河马工具 linux版:
河马webshell查杀:http://www.shellpub.com
深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html
使用方法
1. 下载64位版本wget -O /opt/hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.8.2 指定保存路径 网址2. 解压缩cd /opt/tar xvf hm-linux.tgz
注意:
不要将本软件放置到web目录下
不要在web目录下运行软件
3. 查看帮助./hm -h4. 查看版本./hm version5. 扫描后门 ./hm scan 你的web目录