- 临兵漏洞扫描系统
- 修改加密key
- 打包vue源代码(进入到vue_src目录下)
- ubuntu部署(强烈建议)
- centos部署
- 自编译docker文件进行部署
- 从dockerhub中获取镜像
- 访问
- CHANGELOG
- [v1.0] 2020.2.28
- [v1.1] 2020.7.28
- [v1.2] 2020.8.12
- [v1.3] 2020.9.13
- [v1.4] 2020.10.18
- [v1.5] 2020.10.30
- [v1.6] 2020.11.27
- [v1.7] 2020.12.5
- [v1.8] 2020.12.11
- [v1.9] 2020.12.18
- [v2.0] 2021.3.1
- [v2.1] 2021.3.5
- [v2.2] 2021.3.26
- [v2.3] 2021.5.20
- [v2.4] 2021.6.19
- [v2.5] 2021.7.10
- [v2.6] 2021.9.21
- [v2.7] 2021.10.11
- [v2.8] 2021.10.24
- 致谢
- 免责声明
- License
本系统是对目标进行漏洞扫描的一个系统,前端采用vue技术,后端采用python.poc有110多个,包含绝大部分的中间件漏洞,本系统的poc皆来源于网络或在此基础上进行修改
存储到mysql中的数据是进行aes加密后的数据,登陆请求是用的rsa请求,目前是默认的key,如果需要修改key的参考下面,修改key信息需要重新编译vue源码
python这块直接修改/python/conf.ini中aes部分的配置即可,采用cbc模式,需要key和iv. vue部分则需要修改vue_src/src/libs/AES.js文件中第三行和第四行,要和conf.ini中保持一致
需要先生成rsa的公私钥(私钥1024位)参考地址
修改python/rsa.py文件中的公钥和私钥信息,vue部分则需要修改vue_src/src/libs/crypto.js文件中第77行的公钥,要和python/rsa.py文件中的公钥保持一致
修改vue部分后要重新打包,然后把打包后的文件夹dist中的内容复制到vue文件夹,vue原有的文件要删除.
npm run build(有打包好的,即vue文件夹,可直接使用,自行打包需要安装node和vue,参考https://www.runoob.com/nodejs/nodejs-install-setup.html, https://www.runoob.com/vue2/vue-install.html)
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list && apt-get clean && apt update
DEBIAN_FRONTEND noninteractive apt install -y postfix
apt install -y mariadb-server python3.8 python3.8-dev python3-pip nmap masscan nginx libpq-dev uuid-dev libcap-dev libpcre3-dev python3-dev inetutils-ping redis-server
mkdir /root/python
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 && update-alternatives --config python3
pip3 install -r /root/python/requirements.txt
如果你使用的是低于python3.8版本的python3,请把run.py文件中第16行注释去掉,并注释掉第17行
nginx
useradd -s /sbin/nologin -M nginx
gunicorn配置文件已配置好,可以直接使用,可以根据自己的需求修改文件路径及端口.conf.ini文件中配置数据库信息
在/etc/nginx/conf.d目录下放入vue.conf文件
在/etc/nginx目录下放入nginx.conf文件
conf配置文件中有注释
把vue目录移到/usr/share/nginx/html中
service mysql start
mysql -e "SET PASSWORD FOR root@localhost = PASSWORD('password');FLUSH PRIVILEGES;"
mysql -e "update mysql.user set plugin='mysql_native_password' where User='password';FLUSH PRIVILEGES;"
配置数据库密码后需要在python/conf.ini文件中配置连接maridab数据库的用户名,密码等信息
sed -i "s|bind 127.0.0.1 ::1|bind 127.0.0.1|" /etc/redis/redis.conf
sed -i "s|# requirepass foobared|requirepass '你的redis密码'|" /etc/redis/redis.conf
配置数据库密码后需要在python/conf.ini文件中配置连接redis数据库的密码信息
service redis-server start
redis-server /etc/redis/redis.conf
把gunicorn.conf文件放到python文件夹的根目录下
进入到/root/python/目录下,nohup gunicorn -c gunicorn.conf main:app -k uvicorn.workers.UvicornWorker > gunicorn.log 2>&1 &
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo yum clean all && yum makecache && yum update -y
yum install -y -q postfix
yum install -y epel-release mariadb-server gcc gcc-c++ wget bzip2 zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel make libffi-devel nmap masscan nginx initscripts postgresql-devel python3-devel redis
mkdir /root/python
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
tar -zxvf Python-3.8.1.tgz
cd Python-3.8.1 && ./configure prefix=/usr/local/python3.8 --enable-shared --enable-optimizations LDFLAGS="-Wl,--rpath=/usr/local/python3.8/lib" make && make install
rm -rf /usr/bin/python3 && rm -rf /usr/bin/pip3
ln -s /usr/local/python3.8/bin/python3.8 /usr/bin/python3 && ln -s /usr/local/python3.8/bin/pip3.8 /usr/bin/pip3
pip3 install -r /root/python/requirements.txt
如果你使用的是低于python3.8版本的python3,请把run.py文件中第16行注释去掉,并注释掉第17行
systemctl start nginx
useradd -s /sbin/nologin -M nginx
gunicorn配置文件已配置好,可以直接使用,可以根据自己的需求修改文件路径及端口.conf.ini配置数据库
在/etc/nginx/conf.d目录下放入vue.conf文件
在/etc/nginx目录下放入nginx.conf文件
conf配置文件中有注释
把vue目录移到/usr/share/nginx/html中
systemctl start mariadb
mysql_secure_installation(具体步骤略去,可参考https://www.cnblogs.com/yhongji/p/9783065.html) 配置数据库密码后需要在python/conf.ini文件中配置连接maridab数据库的用户名,密码等信息
sed -i "s|bind 127.0.0.1 ::1|bind 127.0.0.1|" /etc/redis/redis.conf
sed -i "s|# requirepass foobared|requirepass '你的redis密码'|" /etc/redis/redis.conf
配置数据库密码后需要在python/conf.ini文件中配置连接redis数据库的密码信息
systemctl start redis
redis-server /etc/redis.conf
把gunicorn.conf文件放到python文件夹的根目录下
进入到/root/python/目录下,nohup gunicorn -c gunicorn.conf main:app -k uvicorn.workers.UvicornWorker > gunicorn.log 2>&1 &
首先下载项目到本地(https://github.com/taomujian/linbing.git),然后配置python/conf.ini中发送邮件所用的账号和授权码,然后修改python/conf.ini的mysql数据库账号密码,这个账号密码要和dockerfile中的设置的账号密码保持一致
docker build -f ubuntu.dockerfile -t linbing .
docker run -it -d -p 11000:11000 -p 8800:8800 linbing
docker pull taomujian/linbing:latest
docker run -it -d -p 11000:11000 -p 8800:8800 taomujian/linbing
访问http://yourip:11000/login即可,默认账号密码为admin/X!ru0#M&%V
- 初步完成扫描器功能
- 新增F5 BIG IP插件
- 增加docker部署
- 增加phpstudy_back_rce插件数量
- 添加目标时可添加多行目标
- 增加查看端口详情(端口、协议、产品、版本)
- 增加子域名详情(子域名,子域名ip),子域名是用的oneforall工具
- 修改一些插件的错误
- 扫描设置中可设置POC检测时协程的并发数量
- 增加asyncio多协程功能,提高POC扫描速度
- 修改默认头像,若想替换的话直接flask/images/default.png图片就可以了
- 优化前端修复一些小BUG
- 增加设置代理和扫描的超时时间功能
- 优化前端修复一些小BUG
- 优化文件结构,同步docker时间
- 优化前端刷新后头像丢失BUG
- 修改发送邮件的方式,使用postfix发送邮件
- 前端ui框架由iview换为element,重构前端代码
- 取消账号注册,改由内置管理员账号添加
- 增加对url目标的目录扫描功能
- 增加查看所有漏洞和所有端口信息的功能
- 优化数据库表格数据结构和sql语句
- 前端界面优化
- 多个目标扫描同时扫描时,增加任务队列管理
- 增加CVE-2021-22986插件
- 优化扫描逻辑
- 增加指纹探测,探测使用的框架
- 优化Struts2 系列漏洞的检测
- 增加指纹判断功能
- 对扫出来的端口进行指纹识别,指纹识别后去加载对应的插件,减少发包数量
- 对插件进行分类,分为http类和非http类
- 点击扫描时提供自定义扫描选项功能,分为指纹探测, 子域名扫描, 端口扫描, 目录扫描, POC扫描
- 扫描列表中增加暂停扫描、恢复扫描、取消扫描功能
- 后端框架由flask更换为fastapi
- 扫描时可选择POC插件
- 增加POC列表
- 修复已知BUG
- 修复扫描所有目标时的错误
- 增加XSS LOG功能(接收数据的url参考生成token后的url)
- 目标管理和扫描管理中状态信息更新由Ajax轮询换成websocket
感谢vulhub项目提供的靶机环境:
POC也参考了很多项目:
https://github.com/Xyntax/POC-T、
https://github.com/ysrc/xunfeng、
感谢师傅pan带我入门安全,也感谢呆橘同学在vue上对我的指导
工具仅用于安全研究以及内部自查,禁止使用工具发起非法攻击,造成的后果使用者负责