一、打靶的主要五大步骤
1.确定目标:在所有的靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。
2.常见的信息收集:比如平常挖洞使用fofa,天眼查,ip域名等进行查,在我们这次训练靶场中比如信息收集包括查看源码,使用工具dirb等
3.发现漏洞:之前你们看到那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshell
4.利用漏洞就是使用漏洞拿到webshell
5.权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限,所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。
文章所需靶场及打靶过程所遇问题关注后私信获得
二、打靶的具体流程
Ⅰ、信息收集
1、首先查看本机的IP地址,确定扫描的网段。
ifconfig
2、在kali中打开一个终端使用"Netdiscover"工具识别主机的IP。
netdiscover -r x.x.x.1/24(IP为kali统一网段)
3、用“Nmap”工具对目标主机进行扫描。我只发现了两个开放端口,即 22 用于 ssh 和 80 用于http.
nmap -A -p- x.x.x.M(IP为靶机的IP)
Ⅱ、漏洞探测
1、首先访问web服务(默认是80端口),看到一张小丑的图片,通常先查看源代码和robot.txt文件但都没有收获。
2、我通过使用Gobuster和大字典(Kali自带)的帮助下,查找网站部署的服务器,发现了Joomla
gobuster dir -u x.x.x.M -w /usr/share/dirb/wordlists/big.txt(IP为靶机的IP)
3、我访问Joomla站点,发现只有一个帖子,其中有电影“小丑”的两个场景对话,还发现一个登录窗口。
4、继续使用Joomscan对站点进行探测,并列出版本、有趣目录、备份文件等可以帮助我寻找漏洞。(需要首先安装joomscan)(安装教程)
joomscan -u x.x.x.M/joomla(IP为靶机的IP)
Ⅲ、漏洞利用
1、我继续使用Cewl对oomla中发现的对话进行单词创建的自定义词典,并且查看字典
cewl -m 5 http://x.x.x.M/joomla/ > dic-words.txt(IP为靶机的IP)
cat dic-words.txt
使用 cewl 工具从 http://x.x.x.M/joomla/ 网页中抓取单词,爬取深度为5层,,并将这些单词保存到 dic-words.txt 文件中。这通常用于密码破解的准备工作,生成一个基于目标网站内容的密码字典。
4、抓到了上一步输入的用户名和密码。右键发送到Intruder。
5、在Intruder页面先确认选取Sniper,之后点击clear清除全部的标记,将username改为joomla,选中上一步的密码使用Add给password加上标记。
6、打开Payloads界面选取Simple list格式,在下方点击load填入之前创建的密码字典。点击Startattack开始爆破,通过Lenght对结果筛选,得到密码Gotham。
7、尝试使用username为joomla和password为Gotham尝试登陆,发现登录成功。在枚举过程第4步中我嗅探到ioomla下有administrator目录,我使用刚刚这组用户名和密码登录。
8、我尝试在站点建立一个反弹shell。打开xtensions->Templates->Styles或者Extensions->Templates->Templates(选一个),我可以看到Beez3和protostar两个目录(选择protostar)打开,进入/index.php页面进行编辑。
9、返回到Kali,进入到/usr/share/webshells/php目录,找到php-reverse-shell.php文件复制整个文件的代码。(首先安装Linux下的文本编辑器)(安装教程)
cd /usr/share/webshells/php
gedit php-reverse-shell.php
10、将复制的shell脚本上传到/index.php中(全部替换),在第48行附近找到ip和port,将ip更改为攻击机的IP,端口可以自己设定(设定合理即可,这里为1234)之后在kali中打开监听 nc-1nvp 1234 。我重新访问"x.x.x.m/ioomla/index.php“页面在Kali中可以看到反弹成功。
11、使用python3打开一个bash终端,查看home目录发现三个用户
python3 -c "import pty;pty.spawn('/bin/bash')"
12、去/var/www/目录查看有html和joomla2文件,查看joomla2文件,发现了configuration.php,查看该文件,发现了一个数据的用户名和密码。
13、用账号:joomla和密码:babyjoker登录数据库。
mysql -u joomla -p
14、使用数据库中常用的命令在数据库中查找有用的信息,查看是否有存储用户名和密码的文件。
15、将密码进行base64解密。
echo 'Pz8/QWxsSUhhdmVBcmVOZWdhdGl2ZVRob3VnaHRzPz8/' | base64 -d