wargames-bandit-summary

wargames的bandit是以通关游戏的方式来认识和使用linux的靶场。
文章记录在通关过程中新学习和关注的知识盲点。

简单介绍

目前一共33关。通过SSH登录服务器。在level0中有域名和端口
用户名为banditN,N从0到34。
每一关的目标是通过关卡说明找至下一关的密码。
会提示用到哪些命令。

PS:
WeChall有记分面板,通过这个指引,可以登录后被统计进去。

Level 0 - 9 基础命令

  • L0 : cat的直接使用
  • L1 : 特殊的文件名称
  • L2 : 含空格的文件名称
  • L3 : 隐藏文件
  • L4 : 通过file来判断文件类型。注意file可以按通配符批量判断的
  • L5 : find的使用,按类型(-type)、大小(-size)、权限(-perm)来查找
  • L6 : find的使用,按大小、所有者(-user)、所属组(-group)来查找
  • L7 : grep的使用
  • L8 : sortuniq的使用。-u 选出重复的那个。
  • L9 : strings的使用。这个题目描述是密码前面有=号,不是以=号开头

Level 10-20 编码与转化、网络交互

  • L10 : base64解码
  • L11 : 凯撒密码,偏移13,简易的替换式密码。alias rot13="tr 'A-Za-z' 'N-ZA-Mn-za-m'"
  • L12 : xxd的使用(类似hexdump),涉及gzip,bzip2压缩方法,tar归档、解归档。xxd -r data.txt | zcat | bzcat | zcat | tar -xO | tar -xO | bzcat | tar -xO | zcat
  • L13 : ssh指定私钥登录
  • L14 : nc或者telnet,网络交互。cat /etc/bandit_pass/bandit14 | nc localhost 30000
  • L15 : 通过openssl s_client建立SSL/TLS网络交互cat /etc/bandit_pass/bandit15 | openssl s_client -connect localhost:30001 -ign_eof,其中-ign_eof指到了文件结尾也不关闭连接。
  • L16 : nmap扫描的使用。 nmap -p 31000-32000 localhost -sV,其它同上一关。
  • L17 : diff 的使用
  • L18 : ssh连上后直接断开。则在连接的时候就指定命令。
  • L19 : 具有suid权限的执行文件的越权。
  • L20 : 网终交互。开两个tmux窗口,socat tcp-listen:8888 -./suconnect 8888来进行交互。

Level 21-32 cron定时任务、git用法等

  • L21 : 到/etc/cron.d看相关定时任务
  • L22 : 看定时任务,分析脚本,去/tmp目录看结果
  • L23 : 分析定时任务,创将脚本写到bandit24目录中去,就会自动执行
  • L24 : PIN爆破(未完成)
  • L25 : 用到了不同的shell,more的扩展用法,vim 的扩展用法。:e命令
  • L26 : vim设置shell的的用法。:set shell=/bin/bash,:sh
  • L27 : git的用法,查看敏感信息。
  • L28 : git的用法,通过历史记录查看敏感信息。
  • L29 : git的用法,通过分支记录查看敏感信息。
  • L30 : git show-ref的用法,通过分支记录查看敏感信息。
  • L31 : git add,git commit,git push的用法
  • L32 : 会把输入的命令输转化成大写后执行。这里用$0,代替上次执行的执令,使进入shell。

体会

之前自己试验环境都是root权限一把梭。
这套靶场环境体现linux上的多用户,多任务 环境。
对于各方面权限的设置,极其严格,起码是最小化权限的设置。

比如:

  • 普通测试用户home目录,权限为drwxr-xr-x 2 root root,无法向自己的目录写东西呢,这应该是考虑会有同一个用户(账号)同时会被多个人登录的情况。
  • w命令,连自己的登录信息都看不到,应该是控制的文件权限。
  • /tmp的权限是drwxrwx-wt 941 root root ,就是说其它人,不可读,可写。自己往里面写了东西,都无法读到。
  • 网络相关的权限都禁了,但localhost环境的还能
  • 一些查看系统信息的命令,因权限问题,也只能看到自己的。(当然一个用户被多个人登录的情况,用ps aux也可以看到别的执行的什么命令的。看到一位在按指南看man ls的)
  • history记录也看不到前人输入的过的信息
  • linux的内核是可以由多种shell接入的,这里面就用了好几种的。
  • L19中对常见的一个因设置suidsgid的越权做了深入的举例。

参考


wargames-bandit-summary
https://blog.fengcl.com/2022/08/27/wargames-bandit-summary/
作者
frank
发布于
2022年8月27日
许可协议