ctf比赛linux文件监控和恢复shell

Posted Downtime

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctf比赛linux文件监控和恢复shell相关的知识,希望对你有一定的参考价值。

之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助。

脚本一:记录当前目录情况

#!/bin/bash
function getdir(){
    for element in `ls $1`
    do  
        dirfile=$1"/"$element
        if [ -d $dirfile ]
        then
            getdir $dirfile
        else
            #将目录结构和大小存为一个临时文件
            echo `du -ab $dirfile` >> ./t.txt
            #echo $dirfile >> ./dir.txt
        fi  
    done
}

# 监控的目录
DIR="/root/yxy"
getdir $DIR

function getdir1(){
    for element in `ls $1`
    do  
        dir_or_file=$1"/"$element
        if [ -d $dirfile ]
        then
            getdir1 $dirfile
        else
            #将目录结构和大小存为一个临时文件
            echo `du -ab $dirfile` > ./t1.txt
            #echo $dirfile >> ./dir.txt
        fi  
    done
}

DIR="/root/yxy"
getdir1 $DIR
echo `diff ./t.txt ./t1.txt` >> diff.txt
rm ./t1.txt

脚本二:对比脚本一的记录,恢复变化目录或文件
#!bin/bash
function backup(){
#发生变化的文件,在备份目录下的完整路径
backup_dir="/backup/"`tail -n1 ./diff.txt | awk ‘{print $4}‘ | cut -d / -f 3-`
    #想要恢复的目录,将文件恢复到该目录下
    backupfile=`cat ./diff.txt | awk ‘{print $4}‘ | cut -d / -f -3`
     for element in `ls $1`
     do  
         dirfile=$1"/"$element
         if [ -d $dirfile ]
         then
             backup $dirfile
         elif [[ -f $backup_dir && $backup_dir != $dirfile ]]
         then
             cp $backup_dir $backupfile
         else
             #要删除的文件
             dir=$DIR`tail -n1 diff.txt | awk -F"/" ‘{print "/"$NF}‘`
             #这里不能用-r,diff.txt没有不同时,加-r会删除整个目录
             rm  -f $dir
         fi
     done
}

#监控目录
DIR="/root/yxy"
backup $DIR








































































以上是关于ctf比赛linux文件监控和恢复shell的主要内容,如果未能解决你的问题,请参考以下文章

CTF中图片隐藏文件分离方法总结

supervisor进程监控

“百度杯”CTF比赛 九月场_123(文件备份,爆破,上传)

WEB漏洞攻防 - 文件上传漏洞 - CTF比赛类应用场景 - [GXYCTF2019]BabyUpload

CTF线下AWD比赛python脚本怎么使用?

“百度杯”CTF比赛 十月场_GetFlag(验证码爆破+注入+绝对路径文件下载)