Socket
Socket 是一台中等难度的 Linux 机器,其特点是反转 Linux/Windows 桌面应用程序以获取其源代码,从那里发现其 Web 套接字服务中的“SQL”注入。转储数据库会显示一个哈希值,一旦破解,就会产生对该框的“SSH”访问。最后,可以使用提升的权限运行的“PyInstaller”脚本用于读取“root”用户的私钥“SSH”密钥,从而实现对计算机的“root”访问。
外部信息收集
端口扫描
循例nmap
Web枚举
下面可以下载它的应用程序
strings可以判断它应该是python打包的
pyinstxtractor
随便找了个在线工具将pyc转明文
wscat连接5789
Foothold
测一下可以看到存在sql注入,常规操作
查表
查列
读数据,得到admin的密码hash
CrackStation
但是没用户名,用hydra做ssh密码喷射太慢了,从answers表中得到名字,在linux下用最常见的姓和名组合尝试登ssh
本地权限提升
sudo -l
...
if [[ $action == 'build' ]]; then
if [[ $ext == 'spec' ]] ; then
/usr/bin/rm -r /opt/shared/build /opt/shared/dist 2>/dev/null
/home/svc/.local/bin/pyinstaller $name
/usr/bin/mv ./dist ./build /opt/shared
else
echo "Invalid file format"
exit 1;
fi
elif [[ $action == 'make' ]]; then
if [[ $ext == 'py' ]] ; then
/usr/bin/rm -r /opt/shared/build /opt/shared/dist 2>/dev/null
/root/.local/bin/pyinstaller -F --name "qreader" $name --specpath /tmp
/usr/bin/mv ./dist ./build /opt/shared
else
echo "Invalid file format"
exit 1;
fi
...
随便运行一下看看效果,生成了一个/tmp/xxxx.spec
查看.spec文件,发现这不python嘛,我猜它会被当成模块导入
cp一份
写payload
sudo build这个.spec,我们的老朋友如期而至