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' ]]; thenif [[ $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/sharedelseecho "Invalid file format"exit 1;fi
elif [[ $action == 'make' ]]; thenif [[ $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/sharedelseecho "Invalid file format"exit 1;fi
...
随便运行一下看看效果,生成了一个/tmp/xxxx.spec

查看.spec文件,发现这不python嘛,我猜它会被当成模块导入

cp一份

写payload

sudo build这个.spec,我们的老朋友如期而至
