wargme-bandit#
ssh addr: bandit.labs.overthewire.org
bandit0#
flag: bandit0
bandit1#
flag: boJ9jbbUNNfktd78OOpsqOltutMc3MY1
bandit2#
flag: CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
bandit3#
flag: UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
bandit4#
flag: pIwrPrtPN36QITSp3EQaw936yaFoFgAB
bandit5#
flag: koReBOKuIDDepwhWk7jZC0RTdopnAYKh
bandit6#
flag: DXjZPULLxYr17uwoI01bNLQbtFemEgo7
find -size 1033c | xargs ls -l
bandit7#
flag: HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
find / -user bandit7 -group bandit6 -size 33c
bandit8#
flag: cvX2JJa4CFALtqS87jk27qwqGhBM9plV
bandit9#
flag: UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
cat data.txt | tr [a-z] [A-Z] | sort | uniq -u
grep -i USVVYFSFZZWBI6WGC7DAFYFUR6JQQUHR data.txt
bandit10#
flag: trukldjsbj5g7yyj2x2r0o3a5hqjfulk
grep -a data.txt
bandit11#
flag: IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
base64 -d data.txt
bandit12#
flag: 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
tr 'N-ZA-Mn-za-m' 'A-Za-z' < data.txt
bandit13#
flag: 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL
经历了多少次的解压缩...
bandit14#
flag: 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e
scp bandit13@bandit.labs.overthewire.org:/home/bandit13/sshkey.private ~
chmod 0600 sshkey.private
ssh -i ~/sshkey.private bandit14@bandit.labs.overthewire.org
bandit15#
flag: BfMYroe26WYalil77FoDi9qh59eK5xNr
nc localhost 30000
输入 bandit14 的密码即可
bandit16#
flag: cluFn7wTiGryunymYOu4RcffSxQluehd
$ openssl s_client -connect localhost:30001 -ssl3 -quiet
输入 bandit15 的密码即可
bandit17#
flag: xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn
注意登入远程主机时的说明,这次我们对 /var/tmp/
没有写权限, 用
mktemp -d
建立临时目录,对该目录我们就有写权限。
$ mktemp -d
$ nc -v -w 2 localhost 31000-32000 2>a
# 为什么连接成功的提示也会在 `stderr` 里面?
$ grep succeeded
# 只有五个端口,一个一个试:
$ openssl s_client -connect localhost:31xxx -ssl3 -quiet
# 最后 `31790` 返回了一个 rsa 私钥,
$ openssl s_client -connect localhost:31790 -ssl3 -quiet > key
$ chmod 0600 key
$ ssh -i bandit17.key bandit17@bandit.labs.overthewire.org
$ cat /etc/bandit_pass/bandit17
# done.
bandit18#
flag: kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd
diff *.new *.old -c1
bandit19#
flag: IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x
ssh -t bandit18@bandit.labs.overthewire.org /bin/sh
bandit20#
flag: GbKksEFF4yrVs6il55v6gwY5aVje5f0j
有关 setgid 和 setuid。
./bandit20-do cat /etc/bandit_pass/bandit20
bandit21#
flag: gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr
echo GbKksEFF4yrVs6il55v6gwY5aVje5f0j | nc -l -p 1234 & ./suconnect 1234
bandit22#
flag: Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI
cat /etc/cron.d/cronjob_bandit22
cat /usr/bin/cronjob_bandit22.sh
cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
bandit23#
flag: jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n
cat /usr/bin/cronjob_bandit23.sh
echo I am user bandit23| md5sum | cut -d ' ' -f 1
bandit24#
flag: UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ
这道题卡了...以为密码会藏在被删掉的脚本里. 第二天想起原来 cron 执行的时候用的是 bandit24 的权限嘛... 所以写一个脚本, 属性最好 chmod 777:
#!/bin/sh
cp /etc/bandit_pass/bandit24 /tmp/tmp.xxx/psw
chmod 666 /tmp/tmp.xxx/psw
即使是这么个小脚本也卡我半天...
注意:
别把 bandit24 写错...
把 tmp 目录的读写权限全部开放(似乎不用)
不能用重定向(权限不够)
sh 不一定在 /usr/bin/sh
bandit25#
flag: uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG
没看清题意就瞎做...
for i in {0000..9999}; do echo "UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i" >> /tmp/pin; done
cat /tmp/pin | nc localhost 30002 > /tmp/log
cat /tmp/log | grep "Corr|Succ"
答案果然在最后一个...
bandit26#
flag: 5czgV9L3Xx8JPOyRbXh6lQbmIOWvPT6Z
这一题难倒我了...答案是从网上看的 在 bandit25 给出了 bandit26 的私钥, 登录上去显示了 bandit26 的 ASCII art 之后退出:
cat /etc/passwd | grep bindit26
发现 bandit26 的 shell 是奇怪的 /usr/bin/showtext (然后就卡这里不动了) 答案:Answer 根本没想到去看 showtext 是什么内容
cat /usr/bin/showtext
发现是 more 了一个文档然后直接退出. 所以把虚拟终端的宽度调成 4, 再连接上:
ssh -i ~/bandit26.private bandit14@bandit.labs.overthewire.org
more 会因为分页 停下来... 此时按 v 键可以用默认编辑器(vi)编辑该文件,就可以读取密码了。
:r /etc/bandit_pass/bandit26
:set shell sh=/bin/sh
:sh
进入 shell 执行 wechall 拿分 (more 这一招好脑洞)
bandit27#
还没有 bandit27
如果你有任何意见,请在此评论。 如果你留下了电子邮箱,我可能会通过 回复你。