1.1对某linux服务器登录连接日志分析
1.1.1Linux记录用户登录信息文件
Linux操作系统登录连接连接日志文件有var/log/wtmp、/var/log/btmp和/var/run/utmp,这三个文件均为二进制文件,并且三个文件结构完全相同,是由/usr/include/bits/utmp.h文件定义了这三个文件的结构体,它们无法通过编辑器直接查看其详细内容,通过notepad等工具可以查看部分内容。
1./var/run/utmp
utmp记录当前正在登录系统的用户信息
2/var/log/wtmp
wtmp记录当前正在登录和历史登录系统的用户信息,数据交换、关机和重起也记录在wtmp文件中,使用命令last和lastb命令读取,最后一次登录文件可以用lastlog命令。
3./var/log/btmp
btmp记录失败的登录尝试信息,一般使用lastb命令读取,也可以使用last命令查看last -f /var/log/btmp。
1.1.2.last/lastb命令查看用户登录信息
1.主要功能
列出当前与过去登录系统的用户相关信息。单独执行last命令,它会读取默认日志/var/log/wtmp文件,并把该文件内容记录的登录系统的用户名单全部显示出来,可以指定账号名称或是终端编号,让last命令仅列出指定范围的清单,lastb跟last命令功能一样,不过单独执行lastb指令,它会读取位于/var/log/btmp的文件,并把该文件内容记录的登入系统失败的用户名单,全部显示出来。最常用的last命令,如图1所示。
在这里插入图片描述

图1 最常见的last命令
2.last语法
last -h会显示详细的帮助信息,其语法格式为:
last [-adRx][-f<记录文件>][-n<显示列数>][账号名称][终端编号]
3.选项
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d:将IP地址转换成主机名称。
-f <记录文件>:指定记录文件,默认last命令会去读取/var/log/wtmp文件,如果有其它记录文件可以指定读取该记录文件。
-F:显示全部的登录和登出日期和时间。
-i:ip,显示以数字和点格式IP地址信息。
-n <显示列数>或-<显示列数>:设置列出名单的显示列数。如只想查询最后登录系统的10位用户名称,可将显示行数设置为10。
-R:不显示登入系统的主机名称或IP地址;
-s:显示指定登录时间
-t:显示到指定时间
-p:指定时间谁在登录
-w:在输出中显示用户名和域名
-x:显示系统关机、重新开机,以及执行等级的改变等信息。
4.参数
用户名:显示用户登录列表;
终端:显示从指定终端的登录列表。pts意味着从SSH或TELNET的远程连接用户,tty意味着直接连接到计算机或者本地连接用户。
5.使用实例
(1)查询最后登录系统的20位用户信息
执行命令:last -n 20,显示效果如图2所示,截取一条记录进行详细说明:
root(用户名称)pts/7(终端编号)192.168.106.1(显示用户从何处登录系统) Mon Jul 30(登录日期) 04:12 - 04:38(登录系统起始时间) (00:25) (登录系统合计时间),在攻击溯源中这些信息非常重要,入侵者从哪里登录,登录日期、登录系统时间,总共操作时间。
在这里插入图片描述

图2查询最后登录系统的100位用户
(2)查询用户simeon登录系统情况,如图3所示,执行命令:last simeon,该命令主要用户查看指定用户登录系统情况,用于分析其时间行为轨迹。
在这里插入图片描述

图3查看指定用户登录情况
(3)从其它服务器上硬拷贝文件wtmp,将wtmp复制到需要执行命令的linux上,并将其命名为wtmp2,位置为/root/wtmp2,执行命令:last -f /root/wtmp2,如图4所示,获取wtmp记录文件中的所有用户登录情况,登录IP地址为183.60.200.22。
在这里插入图片描述


图4获取其他wtmp登录信息
(4)列出当前与过去登录系统的用户信息外,还列出系统关机、重新启动及改变执行等级等信息,执行命令last -x
(5)登录用户统计信息
last| awk ‘{S[$3]++}{for(a in S) print S[a],a}’ |sort|uniq|sort -h
1.1.3lastlog命令查看最后登录情况
lastlog命令可以列出所有用户最近登录的信息,或者指定用户的最近登录信息。lastlog引用的是/var/log/lastlog文件中的信息,并格式化输出上次登录日志/var/log/lastlog的内容,根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示Never logged。需要注意的是必须以root身份才能运行该命令。
1.查看帮助文件
lastlog -h命令可以查看该命令的详细帮助文件。
2.使用参数
(1)last 选项
-b<天数>:显示指定天数前的登录信息;
-C, --clear 清除用户的lastlog记录
-h:显示命令帮助信息并退出;
-S, --set 设置lastlog记录当前时间
-t<天数>:显示指定天数以来的登录信息;
-u<用户名>:显示指定用户的最近登录信息。
3.lastlog命令使用实例
(1)查看当前用户最后登录的用户情况
如图5所示,执行lastlog命令即可查看,其中除“Never logged in”标志外的用户为登录过系统的用户。
在这里插入图片描述

图5查看系统最后登录用户
(2)清除用户最后登录日志
执行命令“lastlog -C -u simeon”命令后,将清除lastlog前面显示的登录信息,如图6所示,再次查看时显示simeon用户状态为“Never logged in”。
在这里插入图片描述

图6清除用户最后登录日志信息
1.1.4 ac命令统计用户连接时间
输出所有用户总的连接时间,默认单位是小时。由于ac是基于wtmp统计的,所以修改或者删除wtmp文件都会使ac的结果受影响,注意Suse默认没有该命令。ac命令在linux中可以用来分析用户登录时间习惯,查看系统哪些用户登录系统比较勤快,哪些用户长期不登录。
1.1.5w、who及users命令查看
1.w查看登入系统的用户信息及进程
w命令可以查看当前登入系统的用户信息及用户当前的进程,w的信息来自两个文件:/var/run/utmp(用户登录信息)和/proc/(进程信息),其包名称为procps。w命令能查看的信息包括字系统当前时间,系统运行时间,登陆系统用户总数及系统1、5、10分钟内的平均负载信息。其后可以跟u/s/f/o/i参数,执行效果如图7所示,该命令用于查看当前登录系统是否存在其他用户,例如通过某些远程溢出命令新增用户并登录等。
在这里插入图片描述

图7w命令查看当前登录用户
(1)参数
-f 开启或者关闭显示用户从何处登录系统
-h 不显示各栏的标题行
-l 使用详细格式列表,此为默认值
-s 使用简洁格式列表,不显示用户登录的时间、终端阶段操作和程序所耗费的CPU时间。
-u 忽略执行程序的名称以及该程序耗费CPU时间的信息
-V 显示版本信息
2.w命令常用示例
(1)查询现在有哪些用户登录
执行命令:w
(2)查询现在有哪些用户登录,但不显示用户从何处登录系统的信息
执行命令:w -f
(3)查询simeon用户登录情况及信息
执行命令:w simeon
3.who命令
显示当前登录系统的用户信息,执行该命令可以得知当前哪些用户登录系统。
4.who命令示例
(1)列出当前登录系统的用户
执行命令:who
(2)列出当前登录系统的用户,并显示各栏的标题行
执行命令:who -H
(3)列出当前登录系统的用户,并显示标题列及闲置时间
执行命令:who -Hu
(4)显示系统最近一次启动时间
执行命令:who -b
(5)列出自己的登录信息
执行命令: who am i 相当于whoami命令。
5.users命令查看
显示当前正在登入统的用户名。语法是users [OPTION]… [FILE]。如果未指定FILE参数则默认读取的是/var/run/utmp及var/log/wtmp。
1.1.6utmpdump命令
utmpdump来自sysvinit-tools包,可以用于转储二进制日志文件到文本格式的文件以便检查,此工具默认在CentOS 6和7系列上可用。utmpdump收集到的信息比前面提到过的工具的输出要更全面。除此之外,utmpdump也可以修改二进制文件!!包括/var/run/utmp、/var/log/wtmp、/var/log/btmp。修改文件实际就可以抹除系统记录,所以一定要设置好权限,防止非法入侵。
1.utmpdump语法
utmpdump [options] [filename]。
2.实际示例
(1)读取/var/run/utmp文件
执行命令:utmpdump /var/run/utmp,效果如图8所示。
在这里插入图片描述

图8使用utmpdump读取utmp文件
(2)读取/var/log/wtm文件
执行命令:utmpdump /var/log/wtmp
(3)读取/var/log/btmp文件
执行命令:utmpdump /var/log/btmp
(4)检查某日到某日之间某个特定用户(如simeon)的登录次数
执行命令:utmpdump /var/log/wtmp | grep simeon
(5)统计来自IP地址192.168.0.101的登录次数
执行命令: utmpdump /var/log/wtmp | grep 192.168.0.101
(6)显示失败的登录尝试
执行命令:utmpdump /var/log/btmp
(7)显示每个用户会话的登入和登出信息
执行命令:utmpdump /var/log/wtmp

  1. utmpdump日志伪造,修改utmp或wtmp。
    可以将utmp或wtmp内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。命令如下:
    (1)导出utmp文件
    utmpdump /var/log/utmp > utmp\_output
    (2)使用文本编辑器修改utmp\_output内容。
    (3)导回数据到utmp
    utmpdump -r utmp\_output> /var/log/utmp
    其它文件可以使用相同命令进行,修改其文件为对应的文件即可。
    1.1.7取证思路
    1.硬拷贝文件
    使用PE盘、kali等启动盘启动系统,linux系统复制文件:
    (1)/var/log/btmp
    (2)/var/log/wtmp
    (3)/run/utmp
    (4)/var/log/lastlog
    (5)linux ssh登录日志文件/var/log/secure或者/var/log/auth.log。
    默认ssh未开启登录日志记录,需要修改/etc/ssh/sshd\_config文件,去掉 “#SyslogFacility AUTH和#LogLevel INFO” 其中的“#”注释符号,重启ssh服务即可;有些情况下需要查看rsyslog的配置文件中设置的auth,authpriv.*参数,例如查看/etc/rsyslog.d/50-default.conf,获取其日志文件设置为/var/log/auth.log。
    2.使用utmpdump或者前面介绍的命令对上述文件进行查看,获取登录用户及IP等情况。
    1.1.8记录linux用户所有操作脚本
    1.在/etc/profile文件的末尾加入以下代码
    history
    USER=whoami
    USER\_IP=who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'
    if [ “ U S E R I P " = " " ] ; t h e n U S E R I P = ‘ h o s t n a m e ‘ f i i f [ ! − d / v a r / l o g / h i s t o r y ] ; t h e n m k d i r / v a r / l o g / h i s t o r y c h m o d 777 / v a r / l o g / h i s t o r y f i i f [ ! − d / v a r / l o g / h i s t o r y / USER\_IP" = "" ]; then USER\_IP=hostname fi if [ ! -d /var/log/history ]; then mkdir /var/log/history chmod 777 /var/log/history fi if [ ! -d /var/log/history/ USERI​P"=""];thenUSERI​P=‘hostname‘fiif[!−d/var/log/history];thenmkdir/var/log/historychmod777/var/log/historyfiif[!−d/var/log/history/{LOGNAME} ]; then
    mkdir /var/log/history/ L O G N A M E c h m o d 300 / v a r / l o g / h i s t o r y / {LOGNAME} chmod 300 /var/log/history/ LOGNAMEchmod300/var/log/history/{LOGNAME}
    fi
    export HISTSIZE=4096
    DT=date +"%Y%m%d_%H:%M:%S"
    export HISTFILE=”/var/log/history/ L O G N A M E / {LOGNAME}/ LOGNAME/{USER}@KaTeX parse error: Expected group after '\_' at position 10: {USER\_IP}\_̲DT"
    chmod 600 /var/log/history/${LOGNAME}/history 2>/dev/null
    2.初始化/var/log/history目录
    mkdir /var/log/history
    3.先去/home查看有多少个用户,有多少用户就按照以下命令进行创建和授权。
    mkdir /var/log/history/simeon
    chown simeon:simeon simeon -R
    4.查看日志文件
    例如到root对应目录/var/log/history/root下查看生成的日志文件,如图9所示。
    在这里插入图片描述

图9记录用户的操作记录
参考文章
https://www.cnblogs.com/kevingrace/p/6245859.html
https://blog.csdn.net/jerry\_1126/article/details/54427119
https://linux.cn/article-4213-1.html
https://blog.csdn.net/tao19910610/article/details/53285010/
http://www.heminjie.com/system/linux/412.html

标签: 命令, 日志, 服务器, linux, 文件, 登录, log, 用户, var

相关文章推荐

添加新评论,含*的栏目为必填