亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的滲透測試輔助系統(tǒng)開發(fā)

        2018-02-26 08:11:32呂汝勛龍華秋容振邦
        關(guān)鍵詞:網(wǎng)絡(luò)安全利用信息

        ◆呂汝勛 龍華秋 容振邦

        ?

        基于Python的滲透測試輔助系統(tǒng)開發(fā)

        ◆呂汝勛 龍華秋 容振邦

        (五邑大學(xué)計算機(jī)學(xué)院 廣東 529020)

        近年來,網(wǎng)絡(luò)安全事件頻頻爆出,安全問題成為整個社會關(guān)注的重點(diǎn)。滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機(jī)網(wǎng)絡(luò)系統(tǒng)安全的一種評估方法。CToolkit是一款基于Python開發(fā)的滲透測試輔助系統(tǒng),使用Flask框架構(gòu)建web服務(wù),由三大功能模塊組成:資產(chǎn)整理、漏洞利用、筆記,主要實(shí)現(xiàn)了主機(jī)開放端口及服務(wù)信息的收集。已知web應(yīng)用漏洞的利用,以及測試過程中的有用信息記錄,涵蓋了滲透測試的幾個重要的步驟,能切實(shí)提高滲透測試的工作效率。

        Python;滲透測試;輔助;Flask

        0 引言

        身處互聯(lián)網(wǎng)+時代,互聯(lián)網(wǎng)及IT產(chǎn)業(yè)發(fā)展速度空前,眾多優(yōu)秀的軟件產(chǎn)品如雨后春筍般涌現(xiàn),但是,高速發(fā)展的機(jī)遇往往伴隨著巨大的挑戰(zhàn),近年來頻頻爆出的網(wǎng)絡(luò)安全事件影響及危害極其重大,WannaCry的勒索病毒等一系列網(wǎng)絡(luò)安全事件,彰顯著當(dāng)前社會的網(wǎng)絡(luò)安全環(huán)境的不容樂觀,網(wǎng)絡(luò)安全問題已經(jīng)成為了整個社會所關(guān)注的頭等大事。

        滲透測試是通過模擬攻擊來評估網(wǎng)絡(luò)系統(tǒng)安全的一種方法,能有效地預(yù)防大多數(shù)網(wǎng)絡(luò)安全事件的發(fā)生。由于已知漏洞種類繁多,而未知漏洞還在逐日增長,為每個漏洞準(zhǔn)備一個單獨(dú)的工具,會嚴(yán)重影響滲透測試的工作效率,安全工作者亟需一個揉合多種滲透測試工具的系統(tǒng),提高滲透測試的效率。

        1 系統(tǒng)設(shè)計

        一次滲透測試過程,根據(jù)目標(biāo)的復(fù)雜性不同,需要多種方法進(jìn)行嘗試,為了方便滲透測試工作的進(jìn)行,將為本系統(tǒng)設(shè)計以下三個重要的功能模塊:資產(chǎn)整理、漏洞利用、隨手筆記。

        1.1資產(chǎn)整理

        資產(chǎn)整理是針對目標(biāo)網(wǎng)絡(luò)主機(jī)的信息收集,探測并記錄主機(jī)開放的端口及服務(wù),信息收集作為滲透測試的第一步,端口及開放服務(wù)信息是滲透測試過程中的重要突破口,資產(chǎn)整理功能模塊用以收集主機(jī)及其對應(yīng)端口服務(wù)信息。

        1.2漏洞利用

        漏洞利用是利用已知的應(yīng)用漏洞,對目標(biāo)Web應(yīng)用可能存在的利用點(diǎn)進(jìn)行檢測與利用,檢測并成功利用漏洞,是滲透測試出報告的重要憑據(jù),根據(jù)Web應(yīng)用基于HTTP協(xié)議的通性,修改該協(xié)議的內(nèi)容可達(dá)到對Web應(yīng)用系統(tǒng)進(jìn)行漏洞檢測與利用的目的,漏洞利用功能模塊用以利用已知漏洞對目標(biāo)應(yīng)用發(fā)起攻擊利用。

        1.3隨手筆記

        隨手筆記是在記錄滲透測試過程中有用信息的模塊,針對手動測試過程中發(fā)現(xiàn)的多種潛在可利用線索進(jìn)行記錄(包括圖片與文字),需要隨時做好筆記,方便更深入檢測工作的進(jìn)行,隨手筆記功能模塊用以記錄滲透測試過程中的零碎記憶。

        測試工作開始,首先對目標(biāo)主機(jī)進(jìn)行端口掃描收集服務(wù)開放信息,再根據(jù)收集到的信息測試可能存在的漏洞,而整個測試過程中持續(xù)時間比較長,偶爾會有新的線索需要及時記錄,則使用隨手筆記模塊記錄零碎記憶。

        2 具體實(shí)現(xiàn)

        系統(tǒng)是基于Python3.5開發(fā)的,使用Flask的web應(yīng)用框架,遵守RESTful的應(yīng)用接口規(guī)范,以mongodb作為數(shù)據(jù)庫,redis做消息隊列結(jié)果存儲及命令行標(biāo)準(zhǔn)輸出的緩存,整個系統(tǒng)具有良好的穩(wěn)定性與便利性。

        2.1資產(chǎn)整理

        對于不同的滲透測試項(xiàng)目,需為其新建一個新的以項(xiàng)目命名的Project,在每個項(xiàng)目中可以建立掃描任務(wù)Task,可以同時掃描多個網(wǎng)段、多個主機(jī),每個Task的掃描強(qiáng)度也分為高中低三等(對應(yīng)不同的詳細(xì)程度),對每個Project和Task進(jìn)行增刪查操作時都是直接與對應(yīng)的RESTFUL(ProjectAPI和TaskAPI)進(jìn)行交互。

        (1)應(yīng)用接口

        資產(chǎn)整理模塊使用了兩個API,ProjectAPI與TaskAPI。其中,ProjectAPI是創(chuàng)建、獲取、刪除項(xiàng)目的接口,TaskAPI是創(chuàng)建、獲取、刪除任務(wù)的接口,工作流程如下圖1所示。

        圖1 資產(chǎn)整理

        (2)異步任務(wù)處理

        對目標(biāo)網(wǎng)絡(luò)主機(jī)進(jìn)行掃描并收集信息需要持續(xù)一段相當(dāng)長的時間,在這里使用了python的celery消息隊列工具,可以將長時間的運(yùn)行程序轉(zhuǎn)移到Flask之外進(jìn)行處理,使用redis作為中間人在celery與flask之間傳遞消息,工作流程如下圖2。

        圖2 消息隊列

        在輸入目標(biāo)主機(jī)并提交之后,flask首先從post請求中提取出參數(shù),并在給celery發(fā)送一個創(chuàng)建任務(wù)的指令,celery會在后臺默默運(yùn)行新的任務(wù)并返回任務(wù)創(chuàng)建成功的響應(yīng),前端每間隔一段時間會通過ajax向后臺請求任務(wù)狀態(tài),任務(wù)完成或失敗則會更新任務(wù)的狀態(tài)。

        (3)調(diào)用Nmap

        Nmap是一款免費(fèi)的、開源的網(wǎng)絡(luò)探測和網(wǎng)絡(luò)安全評估工具,在滲透測試中,通常用于掃描目標(biāo)網(wǎng)絡(luò)主機(jī)的端口服務(wù)開放信息。在本項(xiàng)目中,將通過python的subprocess模塊創(chuàng)建子進(jìn)程并運(yùn)行Nmap,掃描過程的標(biāo)準(zhǔn)輸出及時緩存到redis中,完成后返回掃描結(jié)果的文件路徑:

        @celery.task()

        defrun_nmap(target, task_id, level):

        if not os.path.exists('/tmp/nmap-output'):

        os.makedirs('/tmp/nmap-output')

        cmds = [

        'nmap -v -sn -PE -n --min-hostgroup 1024 --min-parallelism 1024 {} -oX {}',

        'nmap -v --open --system-dns -Pn --script=banner,http-title --min-hostgroup 1024 --min-parallelism 1024 {} -oX {}',

        'nmap -v -p 1-65535 --open --system-dns -P0 --script=banner,http-title --min-hostgroup 1024 --min-parallelism 1024 {} -oX {}',]

        path = '/tmp/nmap-output/{}.xml'.format(task_id)

        cmd = cmds[level].format(target, path)

        stdout = ''

        withPopen(cmd.split(' '), stdout=PIPE) as p:

        for line in p.stdout:

        stdout+=line.decode('utf-8')

        redis_store.hset('task_stdout', task_id, stdout)

        ifp.returncode != 0:

        raiseCalledProcessError(p.returncode, p.args)

        return {'path':path}

        2.2 漏洞利用

        根據(jù)不同種類、不同版本的Web應(yīng)用進(jìn)行分類,在每個分類(Vulnerability)里對應(yīng)有保存的漏洞利用方式,通過修改HTTP協(xié)議的參數(shù)對存在漏洞的目標(biāo)Web應(yīng)用發(fā)起攻擊利用,可以自行增加、修改、刪除不同功能的Payload(有效載荷),并通過有效載荷對存在漏洞的目標(biāo)Web應(yīng)用進(jìn)行測試與利用,所有操作直接與RESTful API(VulnAPI)進(jìn)行交互。

        (1)應(yīng)用接口

        漏洞利用模塊使用的API是VulnAPI。VulnAPI是創(chuàng)建、獲取、刪除Web應(yīng)用分類、漏洞利用方式的接口,工作流程如下圖3所示。

        圖3 漏洞利用

        在分類Vulnerability可以自定義添加,在每個分類里有對應(yīng)的漏洞Payload(有效載荷),其中包括可自定義的目標(biāo)URL、HTTP頭部信息、Proxy代理選項(xiàng),Payload(有效載荷)可以自行增加、修改、刪除不同功能的Payload(有效載荷),可以對存在漏洞的目標(biāo)Web應(yīng)用進(jìn)行測試與利用,所有操作直接與RESTful API(VulnAPI)進(jìn)行交互。

        (2)操作HTTP

        在漏洞利用模塊中,核心是實(shí)現(xiàn)對HTTP流量的高度自定義化,能夠修改HTTP協(xié)議的可控參數(shù)并對目標(biāo)發(fā)起請求,利用已知Web應(yīng)用漏洞的利用方式,對有效載荷進(jìn)行存儲和測試,達(dá)到有效整合各種Web漏洞利用工具的效果[8]。其中,操作HTTP協(xié)議的部分,將使用Python的第三方模塊Requests實(shí)現(xiàn),通過自定義已知web漏洞的有效載荷,模擬一個瀏覽器客戶端對服務(wù)端發(fā)起http請求,并將返回響應(yīng)結(jié)果的原始數(shù)據(jù),根據(jù)響應(yīng)值判斷是否存在漏洞:

        from .parsers import vuln_put_parser

        import requests

        args = vuln_put_parser.parse_args()

        # headers

        headers = {

        'user-agent': args.user_agent,

        'cookie':args.cookie,

        'Content-Type':args.content_type}

        try:

        ifargs.method == 'get': # get

        r = requests.get(…)

        ifargs.method == 'post': # post

        r = requests.post(…)

        ifargs.method == 'file': #fileupload

        files = json.loads(args.payload)

        data = [files[name], files['content']]

        r = requests.post(…,files=data,…)

        exceptBaseException as e:

        return {'content':'request error: '+str(e)}

        return {'content':r.content, 'headers':r.headers}

        2.3 隨手筆記

        隨手筆記Note使用Wysiwyg(所見即所得)編輯器作為每一篇文章(筆記)編輯和展示的核心,本項(xiàng)目采用Summernote在線編輯器,能直接迅速編輯各類格式的文字以及粘貼截圖,保證記憶記錄的及時性。并且,所有增刪查改操作都與RESTful API(NoteAPI)交互完成。

        (1)應(yīng)用接口

        隨手筆記模塊使用的API是NoteAPI。NoteAPI是創(chuàng)建、刪除、獲取、修改文章(筆記)的接口,工作流程如下圖4所示。

        圖4 隨手筆記

        (2)遞歸操作

        每一篇文章都可以擁有子節(jié)點(diǎn)(文章),可以實(shí)現(xiàn)無限遞歸添加子節(jié)點(diǎn),每篇文章最多只能含有一個父節(jié)點(diǎn),每個節(jié)點(diǎn)的文章都可以編輯刪除和添加子節(jié)點(diǎn),編輯文章時可以實(shí)現(xiàn)實(shí)時保存到數(shù)據(jù)庫,所有增刪查改操作都與RESTful API(NoteAPI)交互完成。遞歸操作大部分是前端Javascript完成的,結(jié)合使用Vue.js前端框架,以添加新文章節(jié)點(diǎn)為例,通過Vue.js的自定義組件遞歸添加節(jié)點(diǎn):

        varnoteList = {

        name: 'note-list',

        template: '{note_list_html_source}',

        props: ['note'],

        methods: {

        add_new_note: function(){

        ...

        $.ajax({

        url: '/api/note/'+that.note.note_id,

        type: 'post',

        data: {title: app.newNote},

        success: function(data){ that.note.children.push(data) },

        });},}}

        var app = new Vue({

        el: '#panel',

        components:{ 'note-list': noteList },

        methods:{

        add_new_note: function(){

        var that = this;

        $.ajax({

        ...

        success: function(data){

        that.notes.push(data)

        that.newNote = ''; },

        });}}})

        3 功能測試

        3.1創(chuàng)建掃描任務(wù)

        在系統(tǒng)中創(chuàng)建新的項(xiàng)目,并在對應(yīng)項(xiàng)目中輸入主機(jī)名或IP地址創(chuàng)建掃描任務(wù),創(chuàng)建的任務(wù)并發(fā)進(jìn)行,可以看到對應(yīng)任務(wù)的狀態(tài)以及結(jié)果,如下圖5所示。

        圖5 掃描任務(wù)

        3.2 s2-016漏洞利用

        輸入必填與選填參數(shù)之后,可以對目標(biāo)web應(yīng)用發(fā)起http請求,并附上自定義的payload(有效載荷)進(jìn)行漏洞測試,以存在s2-016反序列化漏洞的虛擬環(huán)境,測試有效載荷時選用了執(zhí)行系統(tǒng)命令“cat /etc/passwd”,測試的返回結(jié)果如下圖6所示。

        圖6 執(zhí)行命令

        3.3 編輯文章

        根據(jù)標(biāo)題創(chuàng)建文章之后,可以根據(jù)summernote提供的格式,編輯文字及圖片,以添加超鏈接與直接粘貼圖片為例,如下圖7所示。

        圖7 編輯文章

        4 結(jié)束語

        本文詳細(xì)介紹了一款基于Python的滲透測試輔助系統(tǒng)的設(shè)計與實(shí)現(xiàn)。其設(shè)計使用了Flask的Web應(yīng)用框架,并結(jié)合了RESTful的設(shè)計,后期也可以輕松實(shí)現(xiàn)功能擴(kuò)展。同時,創(chuàng)新地使用了Celery任務(wù)隊列,實(shí)現(xiàn)了異步任務(wù)的穩(wěn)定運(yùn)行。項(xiàng)目總共實(shí)現(xiàn)了三大基本功能模塊:資產(chǎn)整理、漏洞利用、隨手筆記。資產(chǎn)整理,針對目標(biāo)網(wǎng)絡(luò)主機(jī)的信息收集,探測并記錄主機(jī)開放的端口及服務(wù);漏洞利用,利用已知的應(yīng)用漏洞,對目標(biāo)Web應(yīng)用可能存在的利用點(diǎn)進(jìn)行檢測與利用;隨手筆記,記錄滲透測試過程中發(fā)現(xiàn)的有用信息(包括圖片與文字)。通過在實(shí)際環(huán)境進(jìn)行的大量掃描測試,與虛擬環(huán)境中Web應(yīng)用漏洞的測試,以及實(shí)際滲透測試過程中的筆記記錄,驗(yàn)證了以上三大模塊功能的實(shí)用性與準(zhǔn)確性。并在開發(fā)測試過程中總結(jié)出了以下幾點(diǎn)問題:采用Nmap作為資產(chǎn)整理模塊掃描器的核心,在掃描大量端口或主機(jī)時會因?yàn)榉阑饓Φ淖钃跸拇罅康臅r間,而且會被混淆正確的端口開放信息;漏洞利用模塊需要手動收集大量Payload(有效載荷),目前階段還欠缺豐富性。針對以上項(xiàng)目實(shí)測中發(fā)現(xiàn)的問題,將會在日后的學(xué)習(xí)中尋找解決辦法,爭取將該項(xiàng)目完善成更加方便的滲透測試輔助系統(tǒng)。

        [1]王世偉.論信息安全、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)空間安全[J].中國圖書館學(xué)報,2015.

        [2]梁娟.基于黑盒的滲透測試技術(shù)研究[J].科技展望,2016.

        [3]練斌,劉永鍵.滲透測試的信息收集工具設(shè)計與開發(fā)[J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報,2017.

        [4]裴蘭珍,羅赟騫,景劼.網(wǎng)絡(luò)安全漏洞滲透測試框架綜述[J].電子信息對抗技術(shù),2016.

        [5]楊超,徐如志,楊峰.基于消息隊列的多進(jìn)程數(shù)據(jù)處理系統(tǒng)[J].計算機(jī)工程與設(shè)計,2010.

        [6]尚廣明.Nmap滲透測試指南[J].信息安全與通信保密,2015.

        [7]李丹.網(wǎng)絡(luò)攻擊重放技術(shù)研究[D].北京郵電大學(xué),2014.

        [8]劉志凱.基于Web的Python編程環(huán)境研究[D].新疆農(nóng)業(yè)大學(xué),2015.

        2016年國家級、省級高等學(xué)校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項(xiàng)目。

        猜你喜歡
        網(wǎng)絡(luò)安全利用信息
        利用min{a,b}的積分表示解決一類絕對值不等式
        利用一半進(jìn)行移多補(bǔ)少
        網(wǎng)絡(luò)安全
        網(wǎng)絡(luò)安全人才培養(yǎng)應(yīng)“實(shí)戰(zhàn)化”
        利用數(shù)的分解來思考
        Roommate is necessary when far away from home
        上網(wǎng)時如何注意網(wǎng)絡(luò)安全?
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        我國擬制定網(wǎng)絡(luò)安全法
        聲屏世界(2015年7期)2015-02-28 15:20:13
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        真人作爱免费视频| 亚洲日韩欧美国产另类综合| 亚洲乱码日产精品bd在线观看| 欧美日韩另类视频| 中文字幕乱伦视频| 99久热re在线精品99 6热视频| 污污污国产免费网站| 精品国产亚洲人成在线观看| 国产人妖在线观看一区二区三区 | 男奸女永久免费视频网站| 国产成人综合久久久久久| 国产伦精品免编号公布| 国产精品白浆在线观看无码专区| 亚洲一区爱区精品无码| 久久夜色精品国产亚洲噜噜| 大量老肥熟女老女人自拍| av影院手机在线观看| 国产国产人免费人成免费视频| 久久久久香蕉国产线看观看伊| 中文无码精品一区二区三区| 91孕妇精品一区二区三区| 熟女少妇丰满一区二区| 日韩精品免费在线视频一区| 欧洲美熟女乱av亚洲一区| 少妇aaa级久久久无码精品片| 又污又黄又无遮挡的网站| 91精品久久久久含羞草| 久久国产精品免费一区二区三区| 亚洲桃色视频在线观看一区 | 亚洲一区二区三区中文字幂| 亚洲国产cao| 国产毛片一区二区三区| 色呦呦九九七七国产精品| 曰欧一片内射vα在线影院| 国产 国语对白 露脸| 久久精品女人天堂AV一个| 日本精品一区二区三区试看| 五月色丁香婷婷网蜜臀av| 国产一卡2卡3卡四卡国色天香| 中文字幕久久久久久精| 黑人一区二区三区啪啪网站|