简介
难度:低-->中
攻击方法:
- 主机发现
- 端口扫描
- 强制访问
- 参数爆破
- 文件包含
- PHP封装器
- 任意文件读取
- SSH公钥登录
- 离线密码破解
- 系统权限漏洞利用
主机发现
fping -gaq 192.168.215.0/24
端口扫描
-A相当于-sV -O -sP的集合
80:访问web页面
22:爆破
web探测
gobuster:一款信息收集工具,包括爆破路径,使用go语言开发的
seclists是一个很强大的字典文件
gobuster dir -u http://192.168.215.159/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x #指定脚本类型,-x必须指定才能扫到
发现了两个文件,一个目录
接着对该目录爆破
发现了evil.php,访问后没有报错,猜测到可能需要传入参数
爆破参数
工具:burpsuite
字典使用的是seclists中的burp-param-name.txt,这里包含了把大部分常见参数,第二个参数使用的是一些常见的值,但是结果都没有,这时候可能猜测参数的值是否是一个文件名,文件包含
先包含本地用的文件,可能性比较大
第二个参数改为../index.html,只有../存在
发现可以查看系统文件
文件按包含利用思路:
- 包含一个webshell,webshell在自己的服务器上(现在自己的服务器上开启一个web服务)
- 使用封装器
- php://filter相当于一个任意文件读取的效果
- 读文件:php://filter/convert.base64-encode/resource=文件名
<?php
$filename = $_GET['command'];
include($filename);
?>
解码的结果
-
- 写文件:php://filter/write.base64-decode/resource=文件名&txt=写入内容的base64编码
- 如果写入成功的话可以直接查看,否则不成功
ssh公钥登录
可以使用openssl passwd -1生成linux的用户密码
经过文件包含利用无果之后,在/etc/passwd文件下,找到其他的普通用户(找用户路径在/home底下的),尝试ssh的暴力破解
找到mowree
-
尝试使用ssh登录
ssh mowree@192.168.215.159 -v
发现可以使用公钥登录
公钥登录
原理:
客户端生成公钥和私钥,在 /home/用户名/.ssh/ .ssh/id_rsa(密钥) ,将公钥上传服务器
服务端保存在:/用户名/.ssh/authorized_keys(保存着公钥) ,用户名是什么就只能用这个用户名登录
.ssh目录的权限必须是700
.ssh/authorized_keys文件权限必须是600
使用公钥登录流程:
ssh mowree@192.168.215.159 -i id_rsa
先找到服务端的公钥
存在这个文件,很多大概率上就知道可以使用ssh公钥登录
因为该密钥的用户为mowree即:本机用户登录到自己的服务器上,所以私钥和密钥都在这个服务器上
也是在当前服务器找到私钥
使用私钥尝试登陆服务器
赋予id_rsa权限:chmod 600 id_rsa
提示需要密钥(tips:id_rsa文件要按照格式写入)
暴力破解
使用rockyou这个文件进行暴力
解压:gunzip rockyou.txt.gx
爆破工具:hashcat john(john对文件格式有要求)
john文件下有很多脚本转换工具,包括.ssh转换的工具
使用john暴力破解
得到结果为:unicorn
使用公钥登录
提权
方法:
- 查看是否存在什么计划任务crontab -l
- sudo提权
- suid提权
- /passwd /shadow配置错误
- 内核漏洞提权
passwd具有w权限,可以增加或修改root权限
#生成密码
openssh passwd -1
将密码替换成root的密码,然后切换成root用户登录即可
vi的删除使用del