OverTheWire:Bandit靶场记录(2023-5-18通关)


一个基础linux命令的靶场,阳了在家摸会鱼
注意一下,这些答案都是动态的这次有用下次就换新的一批了,所以要抓紧做完–到后面有点不想做了属实

可以使用man 来了解命令

  • 例:man ls

level 0

ls命令看待只有一个readme文件,cat阅读

NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL

level 1

发现文件名为 - 不可直接打开

使用 cat ./* more ./*

rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi

创建方法
touch ./-
mkdir ~/dir/-mydir
mkdir -- -dir2

level 2

文件名中存在空格

直接cat ./filename

aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG

level 3

进入inhere后什么都没发现

使用ls -a命令成功找到

2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe

level 4

cat ./*

得到乱码中含有9lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR

把9去掉就成功登入了

或者file ./*辨识文件类型

再cat ./-file7

level5

/>du -sh * 查看文件夹大小

然后发现不太对,可以每个文件夹进入然后file ./*查看,但是很浪费时间

使用find命令现pwd查找现在路径,然后

/>find /home/bandit5/inhere -type f -size 1033c 成功找到该文件

P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU

level 6

find大法好

/>find / -type f -user bandit7 -group bandit6 -size 33c 2>/dev/null

其中 2>/dev/null避免很多permission denied错误

z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S

level7

find ~ -name data.txt -exec grep millionth {} ;

-exec grep miullion {} ;:对于每一个找到的文件,执行grep miullion命令。其中{}表示文件名

TESKZC0XvTetK0S9xNwm25STk5iWrBvP

level 8

因为uniq只对相邻行起作用所以现sort

/>sort data.txt|uniq -u

uniq -u 只显示出现过一次的行

EN632PlfYiZbn3PhVK3XOGSlNInNE00t

level 9

grep不大确定直接肉眼

也可以直接strings寻找到

G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s

level 10

strings /home/bandit10/data.txt |base64 -d

6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM

level 11

strings

在线rot13解密就好

JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv

level 12

有点难,需要查看文件头不停解压缩

因为是16进制dump,所以先xxd -r data.txt data

然后file改后缀解压缩循环

注意tar命令后需要接xf

wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw

level13

要找一个ssh私钥

私钥存在id_rsa

从服务器拷贝到本地

/>scp -P 2220 root@192.168.167.131:/home/root/dome.png /home/user/

/home/bandit17/.ssh/id_rsa

ssh bandit12@bandit.labs.overthewire.org -p 2220

但是他perimision denied了—找错关卡啦

找到正确的,就在~下,拷贝出来

远程连接命令

/>ssh -i .\id_rsa bandit14@bandit.labs.overthewire.org -P 2220

错误

要在13里登录14

fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq

level14

nc 127.0.0.1 30000

–注意,我用purple kali使用这条命令会错,要自己apt install ncat使用ncat才行

jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt

level 15

openssl s_client -ign_eof -connect localhost:30001

openssl s_client -help找到 -ign_eof

JQttfApK4SeyHwDlI9SXGR50qclOAil1

level 16

先nmap -p 31000-32000 localhost 扫描

然后openssl s_client -connect localhost:30001试

拷贝下来私钥,

mkdir /tmp/111

把私钥放里面,chmod 777 rsa_id 提权

ssh -i .\id_rsa bandit17@bandit.labs.overthewire.org -p 2220 远程登录

VwOSWtCA7lRKkTfbr2IDh6awj9RNZM5e

level 17

先去

/>cat /etc/bandit_pass/bandit17 找到17的密码

/>diff *.old *.news 找到密码的不同之处

hga5tuuCLF6fFzUpnagiMN8ssu9LFrdg

glZreTEH1V3cGKL6g4conYqZqaEj0mte–尝试后发现错误

然后退出到最后发现进入不了18关

level 18

(174条消息) bandit(13-34)_shell for user bandit26 is not /bin/bash_半夜好饿的博客-CSDN博客发现可以

/>ssh bandit18@bandit.labs.overthewire.org -p 2220 "bash --norc"忽略错误

awhqfNnAbc1naukrpqDYcF95h7HoMTrC

level 19

根据提示,先./bandit20-do

说加上用户id,但是输入数字说没有此文件夹,

所以直接

/>./bandit20-do cat /etc/bandit_pass/bandit20

VxCazJaVykI6W36BkBU0mJTCM8rR95XT

level 20

在这里插入图片描述

啊 chat我的神!

/> nc -l -p 3333 </etc/bandit_pass/bandit20 &

**<**输入密码

**&**保持后台开启

/>./suconnect 3333

NvEJF7oVjkddltPSrdKEFOllh9V1IBcq

level21

一个程序正在定期从 cron (基于时间的作业调度程序)自动运行。在/etc/cron.d/中查找配置并查看正在执行的命令。

那先/>ls /etc/cron.d/

显然先找我们下一关的,然后/>cat cronjob_bandit22

/>cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv

WdDozAdTM2z9DiFEQ2mGlwngMfj4EZff

level 22

继续,先/>cd /etc/cron.d/

/>cat cronjob_bandit23

/>cat /usr/bin/cronjob_bandit23.sh

得到

#!/bin/bash

myname=$(whoami)
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)

echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"

cat /etc/bandit_pass/$myname > /tmp/$mytarget

执行一下

/>sh /usr/bin/cronjob_bandit23.sh

得到Copying passwordfile /etc/bandit_pass/bandit22 to /tmp/8169b67bd894ddbb4412f91573b38db3

cat一下

WdDozAdTM2z9DiFEQ2mGlwngMfj4EZff


登不上去,发现错了是level22的我要level23的

先ls -l /usr/bin/cronjob_bandit23.sh 查看一下权限,发现没有写的权限

那我自己创建一个文件夹,写个sh脚本呢?发现cat: /etc/bandit_pass/bandit23: Permission denied 糟糕的


突然发现,定时脚本,那我md5一下看看有没有这个文件??

/>echo I am user bandit23 | md5sum | cut -d ’ ’ -f 1 ->确定文件名

/>cat /tmp/8ca319486bfbbc3663ea0fbe81326349

QYw0Y2aiA672PsMmh9puTQuhoz8SyR2G

level23

还是老规矩找脚本

得到

#!/bin/bash

myname=$(whoami)

cd /var/spool/$myname/foo || exit 1
echo "Executing and deleting all scripts in /var/spool/$myname/foo:"
for i in * .*;
do
    if [ "$i" != "." -a "$i" != ".." ];
    then
        echo "Handling $i"
        owner="$(stat --format "%U" ./$i)"
        if [ "${owner}" = "bandit23" ]; then
            timeout -s 9 60 ./$i
        fi
        rm -rf ./$i
    fi
done

解释一下脚本:运行并删除/var/spool/$myname/foo内的东西,

所以,应该写脚本放在/var/spool/bandit24/foo中

脚本如下

cat /etc/bandit_pass/bandit24 > /tmp/bandit24     

/>cat /tmp/bandit24

VAfGXJ1PBSsPSnvsjI8p759leLZ9GGar

level24

守护进程正在监听端口30002,如果给出 bandit24的密码和一个秘密的数字4位平码,它将给出 bandit25的密码。除了通过所有的10000种组合(称为蛮力强迫) ,没有其他方法可以检索到密码。

显然,需要暴力破解,网上找的脚本(176条消息) OverTheWire:Bandit通关WriteUp(2019.01.17完)_overthewire17_cynthrial的博客-CSDN博客

from pwn import *

conn = remote('localhost', '30002')
badline = conn.recvline()
for i in range(10000):
    tmp = str(i).zfill(4)
    print ('[+] Trying pincode: ' + str(tmp))
    conn.sendline('VAfGXJ1PBSsPSnvsjI8p759leLZ9GGar ' + tmp)
    response = conn.recvline()
    print(response)
    if b'Wrong! Please enter the correct pincode. Try again.' not in response:
        print('[+] Found pincode: ' + str(tmp))
        break

啊,漫长的等待

9708!出来了,大概有小一个小时

/>echo “VAfGXJ1PBSsPSnvsjI8p759leLZ9GGar 9708” |nc localhost 30002

p7TaowMYrmu23Ol8hiZh9UvD0O9hpx8d

level 25

/>cat /etc/shells 没什么思路先看看

然后家里发现一个sshkey…

/>ssh -i bandit26.sshkey localhost加不加端口都不对

/>cat /etc/passwd

发现bandit26❌11026:11026:bandit level 26:/home/bandit26:/usr/bin/showtext

/>chsh -s /usr/bin/showtext 要输入密码?不知道

cat一下

#!/bin/sh

export TERM=linux

exec more ~/text.txt
exit 0

读取不出来


看wphttps://medium.com/secttp/overthewire-bandit-level-25-4724e2196657

发现从exec more ~/text.txt寻找突破口,

/>ssh bandit26@bandit.labs.overthewire.org -p 2220 -i bandit26.sshkey 注意调小窗口

在这里插入图片描述

然后摁v进入vim模式,在命令行输入/>:e /etc/bandit_pass/bandit26 —e为editor模式

c7GvcKlw9mC7aUQaPx7nwFstuAIBw1o1

level26

还是登入不上去

老办法通过vim的命令行改shell

上一关的这里在命令行输入/>:set /bin/bash

/>:sh

ls看到一个bandit27-do的可执行文件

/>/bandit27-do cat /etc/bandit_pass/bandit27

YnQpBuifNMas1hcUFk70ZmqkhUU2EuaS

level27

在/tmp里面自己创个文件夹在里面运行命令

/>git clone ssh://bandit27-git@localhost:2220/home/bandit27-git/repo 注意:2220

密码在repo的READEME里

AVanL161y9rsbcJIsFHuw35rjaOM19nR

level28

老方法

然后/>git show可以查看文本差异

tQKvmcwNYcFS6vmPHIUSI3ShmsrQZK8S

level29

老方法

/>git branch -a 查看所有分支

/>git checkout remotes/origin/dev 切换到该分支

/>git show

xbhV3HpNGlTIdnjUrdAlPzc2L6y9EOnS

level 30

快结束了!!!!

切换分支,啥也没有

/>git show-ref

59530d30d299ff2e3e9719c096ebf46a65cc1424 refs/heads/master
59530d30d299ff2e3e9719c096ebf46a65cc1424 refs/remotes/origin/HEAD
59530d30d299ff2e3e9719c096ebf46a65cc1424 refs/remotes/origin/master
831aac2e2341f009e40e46392a4f5dd318483019 refs/tags/secret

/>git show 831aac2e2341f009e40e46392a4f5dd318483019 找到密码

OoffzGDlzhAlerFJ2cAiz1D41JW1Mhmt

###level 31

老办法

cat README.md

依据他的要求创建key.txt

/>git add key.txt 放入暂存区

/>git commit -m “XXX” --将更改提交到本地 “”内随便谢谢

/>git push origin master 推到远处因为已经有连接了

rmCBvG56y58BXzv98yZGdO7ATVL5dW8y

level 32

>> ls
sh: 1: LS: not found
>> echo $SHELL
sh: 1: ECHO: not found
>> mman^H^H^H^H^H^H^H
sh: : not found
>> man sh
sh: 1: MAN: not found
>> man
sh: 1: MAN: not found
>> sh
sh: 1: SH: not found
>> 
>> ^Z^H
sh: 1:: not found
>> cat
sh: 1: CAT: not found
>> ls
sh: 1: LS: not found
>> cd
sh: 1: CD: not found
>> 
奇怪的东西。把所有命令都变成了大写

/>$0

/>cat /etc/bandit_pass/bandit33

odHo63fHiFqcWWJG9rLiLDtPm45KzUKy

level33

做完了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值