目录
前言
又花了一块rmb玩玄机。。。啥时候才能5金币拿下一个应急靶机,只能说功底还没到家,唯有继续加油了。。。
简介
账号root密码linuxrz
ssh root@IP
1.有多少IP在爆破主机ssh的root帐号,假如有多个使用","分割
2.ssh爆破成功登陆的IP是多少,假如有多个使用","分割
3.爆破用户名字典是什么?假如有多个使用","分割
4.登陆成功的IP共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少
应急开始
准备工作
下面我碰到比较多的且比较重要的都加深颜色了,实在都很重要,只是作者还没碰到过。
日志文件说明/var/log/cron记载了系统定时任务相关的日志/var/log/cups记载打印信息的日志/var/log/dmesg记载了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息/var/log/mailog记载邮件信息/var/log/message记载系统重要信息的日志。这个日志文件中会记载Linux系统的绝大多数重要信息,假如系统出现标题时,首先要检查的就应该是这个日志文件/var/log/btmp记载错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看/var/log/lastlog记载系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看/var/log/wtmp永久记载所有用户的登录、注销信息,同时记载系统的启动、重启、关机变乱。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看/var/log/utmp记载当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记载当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询/var/log/secure记载验证和授权方面的信息,只要涉及账号和密码的步伐都会记载,好比SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记载在这个日志文件中/var/log/auth.log注明:这个有的Linux系统有,有的Linux系统没有,一般都是/var/log/secure文件来记载居多查看auth.log文件
这里偏重了解一下auth.log,因为这个文件给我坑了。。。
- auth.log文件在本标题中存储了:
登录成功和失败的信息,即认证过程,还有登录成功后系统账户的运动动作,好比添加用户等等(总之这一个文件就包含了我们整个做题的过程)
- auth.log 文件重要存储与系统认证和授权相关的日志信息。具体内容包括但不限于以下几类信息:
- 1:登录和注销运动:
成功和失败的登录尝试
用户注销变乱
- 2:认证过程:
SSH 登录尝试(成功和失败)
当地控制台登录
Sudo 提权变乱(成功和失败)
- 3:安全变乱:
无效的登录尝试
错误的密码输入
锁定息争锁屏幕变乱
- 4:系统账户运动:
用户添加、删除和修改
组添加、删除和修改
- 5AM(Pluggable Authentication Modules)相关信息:
各种 PAM 模块的日志输出,包括认证和会话管理
grep -a
注意,这个也把我坑了!!!
选项通常是为了处理惩罚可能包含二进制数据的文件,将它们视为文本文件进行处理惩罚,那么也就是说假如你直接cat 该文件没标题,但是你需要对cat出来的文件内容进行处理惩罚的话就会报二进制错误,那么也就是说该文件中存在二进制数据的。
为什么会存在二进制数据??可能就是为了坑你,而且我也学到了使用-a这个参数可以或许制止二进制查看报错。
步骤 1
1.有多少IP在爆破主机ssh的root帐号,假如有多个使用","分割 小到大排序 例如flag{192.168.200.1,192.168.200.2}
刚刚已经讲过我被文件坑了,想必假如在不知道auth.log是日志文件的情况下,大家应该会去找 /var/log/secure 这个文件吧。。。
ok ,我们现在明确了ssh爆破的日志记载都在auth.log中 (他这里又一个auth.log.1,查看了一下估计就是备份文件了,那我们这里就是用备份文件)
命令: cat /var/log/auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort -n | uniq -c'
- 解释:
grep -a "Failed password for root"是过滤出来登录失败的记载
awk '{print $11}'是将失败每条记载中的ip提取出来(这里就是经验多了就知道,或者你自己逐步调试,看是第几列就打印第几列)
sort -n是将ip进行排序,-n实在你加不加无所谓,反正你调试对了就行,我这个就是加-n就能从小到大排序。
uniq -c就是去重且打印重复次数
- flag为:
flag{192.168.200.2,192.168.200.31,192.168.200.32}
步骤 2
2.ssh爆破成功登陆的IP是多少,假如有多个使用","分割
命令: grep -a "Accepted " /var/log/auth.log.1 | awk '{print $11}' | uniq -c
- 解释
grep -a "Accepted "就是过滤登录成功的记载
awk '{print $11}' 获取登录ip
uniq -c 去重
- flag为:
flag{192.168.200.2}
步骤 3
3.爆破用户名字典是什么?假如有多个使用","分割
- 错误树模:
这里本人仅仅打印了第九列,这里实在是不对的,因为无效用户名会导致他出现invalid user xxxx,实在xxxx才是我们要的用户名,以是我下面这种方式就没有不同的用户名都列出来。
- 正确方式:
这里用到了perl语言,我还没搞懂就不解释了,原理肯定是我想的那样,就是涉及到知识盲区了而已。
命令: cat /var/log/auth.log.1 | grep -a "Failed password" |perl -e 'while($_=){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
- flag为:
flag{root,user,hello,test3,test2,test1}
步骤 4
4.成功登录 root 用户的 ip 一共爆破了多少次
- 我们已知成功登录root的ip地点是:flag{192.168.200.2}
命令: grep -a "192.168.200.2" /var/log/auth.log.1 | grep -a 'Failed password root' | awk '{print $11}' | uniq -c
- flag为:
flag{4}
步骤 5
5.黑客登陆主机后新建了一个后门用户,用户名是多少
由于我们现在已经知道了auth.log文件可以或许记载系统账户运动,那我们直接grep该文件即可,添加用户的命令是net user
- 筛选 net user命令即可
命令: grep -a 'net user' /var/log/auth.log.1
- flag为:
flag{test2}
总结
结果:
flag{192.168.200.2,192.168.200.31,192.168.200.32}
flag{192.168.200.2}
flag{root,user,hello,test3,test2,test1}
flag{4}
flag{test2}
通过这日志分析题,了解到了日志文件实在还有一个auth.log的文件日志,不但仅可以或许记载认证过程,还能知道系统账户执行了哪些账户操作,还有其他记载范例。
需要注意的是,该文件可能包含一些二进制内容,以是我们grep的时候需要用-a参数进行过滤操作,否则会报错。
总体体验还是挺好的,第二次因为grep报错缘故原由浪费掉了好多时间,差几分钟就要重开第三次,玩的就是心跳啊。。。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |