vulnhub Gigachad 靶场练习

前言

这次我们练习的靶机是从vulnhub下载的靶机Gigachad:1,该靶机的难易程度为简单。

下载地址为https://www.vulnhub.com/entry/gigachad-1,657/

首先下载下来,导入虚拟机。官网建议使用的虚拟机为Virtualbox,但是我平时用的VMware,所以这次练习就用VMware做演示。

导入虚拟机

导入虚拟机后把网络连接改为NAT连接模式。桥接模式和NAT模式都是可以的,这里不使用桥接模式是为了避免扫描到C段的其他物理主机。

NAT模式下,虚拟机与物理机所在的网段不同,物理机和虚拟机同时连接在一个虚拟路由器上。

在桥接模式下,物理机与虚拟机都在同一个网段,他们都同时连接在一个虚拟交换机上。

更详细的的内容可以自行百度。

vulnhub Gigachad 靶场练习

然后打开虚拟机Gigachad。提示让我们输入账号和密码登陆,但是我们不知道密码。我们现在的目的就是通过vulnhub Gigachad 靶场练习

活力全开,对C段进行存活主机扫描。

nmap -sn --min-parallelism 100 --min-hostgroup 256 192.168.119.0/24 

-sn 代表存活主机扫描,不进行端口测探。

–min-parallelism 代表调整探测报文的并行度,也就是在扫描同一台主机时会发送很多个探测数据包,这个参数指定的数即nmap一次至少要发多少个数据包。

–min-hostgroup 代表调整并行扫描组的大小,也就是一次性同时对多少台主机进行扫描。

更详细内容可以参考:https://zhuanlan.zhihu.com/p/322244582,关于nmap的一些性能参数的学习

vulnhub Gigachad 靶场练习

配置网络

扫描没有发现靶机的IP,应该是没有分配到IP地址,我们需要打开靶机的终端看一下网络配置。首先重新启动靶机,在出现下面这个界面时按e。

vulnhub Gigachad 靶场练习

按e后就进入了配置页面,注意那个ro quiet,我们要把它修改为 rw signie init=/bin/bash,然后按Ctrl+X启动系统。

ro 代表read only,只读模式。

rw 代表read write,读写模式。

signie init= 代表启动系统后自动运行的程序。

/bin/bash 是系统shell的位置。

vulnhub Gigachad 靶场练习 vulnhub Gigachad 靶场练习

然后就成功的调出了shell,我们执行 ifconfig看一下ip,系统提示没发现这个命令。我们换另一个命令 ip address查看一下ip,果然网卡ens33是没有自动分配到IP地址。

ip address 这个命令类似于路由器和交换机里的命令,可以省略一部分命令,例如 ip a也是可以的。

vulnhub Gigachad 靶场练习

查看一下网络的配置,发现配置的网卡是 enp0s3,但是我们在靶机中之发现有网卡 ens33,所以把 enp0s3改成 ens33

cat /etc/network/interfaces vi /etc/network/interfaces :wq 
vulnhub Gigachad 靶场练习 vulnhub Gigachad 靶场练习

修改完成之后保存,并重启网络。

/etc/init.d/networking restart 
vulnhub Gigachad 靶场练习

再次查看ip时发现已经分配到了IP地址。下面就重启靶机,还是用nmap扫描出靶机的地址。

vulnhub Gigachad 靶场练习

获取shell

通过nmap的C段扫描我们已经知道靶机的IP地址为 192.168.119.124,下面我们就针对性的对这个IP进行扫描。

nmap -A --min-parallelism 100 192.168.119.124 

-A 代表扫描综合性扫描,会扫描出很多内容。

注意下图红色框中内容,这句话的意思是说明ftp可以匿名登陆。

vulnhub Gigachad 靶场练习

尝试一下匿名登陆ftp服务器。该ftp客户端匿名登陆的方式是在输入用户名时输入 anonymous,在输入密码是直接按回车即可。登陆后查看一下服务器上的文件,发现了chadinfo。

ftp 192.168.119.124 anonymous ls 
vulnhub Gigachad 靶场练习

把chadinfo下载下来,查看 一下这个文件的类型,发现是一个zip压缩文件。

file chadinfo 
vulnhub Gigachad 靶场练习

解压该压缩文件,并查了文件里面的内容。

unzip chadinfo r chadinfo_out file chadinfo_out cat chadinfo_out 
vulnhub Gigachad 靶场练习

这个文件里面给出了账号 chad,还有提示去 /drippinchad.png这个页面。

vulnhub Gigachad 靶场练习

有提示:why yes,this is my favorite place to relax.how could you tell?他说这个地方是他最喜欢去的地方。我也不知道这是啥地方,直接上google。

vulnhub Gigachad 靶场练习

仙女塔?尝试用这个密码通过ssh登陆靶机。尝试一下这个这两个单词的各种组合,最后发现密码是 maidenstower

ssh chad@192.168.119.124 
vulnhub Gigachad 靶场练习

登陆成功,现在有了普通用户权限并成功获取第一个flag。

cat user.txt 
vulnhub Gigachad 靶场练习

提权

查看一下哪些命令能用超级用户权限,执行 sudo -l,发现没有这个命令。

vulnhub Gigachad 靶场练习

查看一下内核的版本,根据经验应该可以使用suid提权。

suid提权详细内容可以参考:https://cloud.tencent.com/developer/article/1600994

uname -a 
vulnhub Gigachad 靶场练习

尝试寻找一下有suid权限的文件。

find / -perm -u=s -type f -exec ls -la {} ; 2>/dev/null 

-perm 是代表按指定权限搜索。

-u=s 其中u代表当前用户的权限,s代表suid权限,-号代表至少需要满足指定的权限,可以有更多的权限,但是不能少了这个指定权限。关于这个参数更详细的内容可以参考:https://blog.csdn.net/weixin_44061169/article/details/105784760

-tpye 代表搜索指定的类型,f代表文件。

-exec 代表搜索完后执行指定的命令,其中{}代表所搜到的结果,命令以;为结束标识。更详细内容可以参考:https://www.pianshen.com/article/86691137271/

2>/dev/null 代表将不显示错误信息,详细介绍已经在前面的博客讲了,可以参考我前面的博文。

vulnhub Gigachad 靶场练习

搜索出来这么多文件,我通过 strings命令以文本的形式显示每个二进制文件,但是经过分析后没有看出可以利用的文件。然后我通过搜索引擎逐个搜索每一个文件,发现s-nail-privesep可以用来提权。在msf的漏洞库里面搜索一下有么有这个文件的利用程序。

searchsploit s-nail 
vulnhub Gigachad 靶场练习

发现有一个利用脚本,位于/usr/share/exploitdb/exploits/multiple/local/中,但是这个s-nail程序的版本需要小于14.8.16。我们查看一下靶机上这个程序的版本 s-nail -V

vulnhub Gigachad 靶场练习

版本为14.8.6,这个版本的程序应该是有这个漏洞的,把这个利用文件上传到靶机。

scp /usr/share/exploitdb/exploits/multiple/local/47172.sh chad@192.168.119.124:/tmp/ 

这个是上传命令,如果将本地文件与服务器的位置反过来就是下载命令。注意是在本地执行这条命令,而不是已经连接ssh的命令窗口。

vulnhub Gigachad 靶场练习

上传已经成功,下面就执行这个文件吧。

cd /tmp./47172.sh 
vulnhub Gigachad 靶场练习

执行失败,提示 /bin/sh^M bad interpreter,很明显这个是换行符不兼容导致的。在这个文件里的换行符是 rn,而这个系统能识别的换行符是 n,我已我们需要将 /r/n转换成 /n。首先用vi查看一个这个文件里面显示了什么。

vi 47172.sh 
vulnhub Gigachad 靶场练习

在每一行的结尾出现了 ^M,这不是 ^M的组合,而是一个控制字符,只占一个字节,表示的就是windows中的 r。现在可以通过下面这条命令把这些字符去掉。

sed -i "s/r//" 47172.sh 

其中参数i中的参数指定内容的格式是"s/字符1/字符2/",也就是把指定文件中的字符1替换成字符2。

查看一下文件发现 ^M已经没有了,下面可以执行该文件了。

./47172.shwhoami 
vulnhub Gigachad 靶场练习

提权成功,现在可以查看root的flag了。

cat /root/root.txt 

需要注意的是,该网站随便访问一个地址后就会生成一个新页面。如果你用目录扫描软件扫描过该网站,则 /var这个盘全部占满,导致没有剩余空间来执行提权程序。所以我们需要修改一下代码,把提权程序的活动目录改为/tmp即可。

vulnhub Gigachad 靶场练习

参考文献

[1] https://zhuanlan.zhihu.com/p/322244582,关于nmap的一些性能参数的学习

[2] https://www.pianshen.com/article/86691137271/,Find 命令详解

[3] https://blog.csdn.net/weixin_44061169/article/details/105784760,find 查找指定权限的文件

[4] https://cloud.tencent.com/developer/article/1600994,Linux下利用SUID提权

[5] http://blog.chinaunix.net/uid-27034868-id-3375746.html,文件从windows到linux如何解决中多余的^M

版权声明:玥玥 发表于 2021-08-08 20:08:51。
转载请注明:vulnhub Gigachad 靶场练习 | 女黑客导航