文章目錄
-
- 掃描技術
-
- Nmap----掃描器之王
-
- Nmap掃描出端口的六種狀态
- 網絡漏洞掃描
- Web漏洞掃描
-
- AWVS漏洞掃描器的使用
- 密碼破解
-
- 密碼安全威脅
- 破解方式
- 暴力破解
-
- crunch工具
- 字典
-
- cupp工具
- Hydra----九頭蛇
-
- Windows密碼遠端爆破實驗
- Windows賬戶hash值破解
- Linux本地暴力破解:
掃描技術
自動化、提高效率
資産發現:發現目标環境中有哪些資産,聯網裝置、主機、伺服器、各種服務等。
主機發現:有哪些主機線上,IP位址。
端口掃描:開啟的端口,端口上的服務。
常見的端口号
服務名 | 端口号 |
---|---|
FTP | 21/20 |
SSH | 22 |
Telnet | 23 |
SMTP | 25 |
HTTP | 80 |
HTTPS | 443 |
SQL Server | 1433 |
Qracle | 1521 |
MySQL | 3306 |
RDP | 3389 |
Nmap----掃描器之王
kali自帶,跨平台的,Windows也可以去官網下載下傳
重要參數
參數 | 作用 |
---|---|
nmap ip | 簡單掃描:探測目标主機是否線上以及預設1000個1-10000内的端口 |
-vv | 簡單掃描,并對過程進行詳細輸出 |
-p | 掃描指定IP的指定端口号有沒有開放 |
-O | 掃描指定IP的所有開放的端口号以及作業系統的版本(不太準确) |
-sP | 探測指定IP有沒有線上,ping掃描 |
-sP IP/24 | 探測指定網段的線上主機 |
-sT | TCP全連接配接掃描(建立完整的三次握手,然後斷開) |
-sS | SYN半連接配接掃描(隻進行前兩次握手) |
-sN | 隐蔽掃描(不适用于Windows系統)之NULL掃描(發的包參數全為空) |
-sX | 隐蔽掃描(不适用于Windows系統)之Xmas掃描 |
-sF | 隐蔽掃描(不适用于Windows系統)之FIN掃描 |
-A | 全面掃描(什麼系統、開放的端口号、服務版本) |
-p 端口号,端口号 IP -sV | 掃描指定IP的指定端口号有沒有開放以及服務版本的探測(什麼軟體釋出的) |
-p 端口号,端口号 IP -oN 存儲路徑\檔案名 | 将掃描出來的結果儲存成txt檔案存儲在指定路徑 |
-oX | 儲存成xml格式的檔案 |
-T(0-5) | 時序選項(0-5):-TO(偏執的):非常慢的掃描,用于IDS逃避。-T1(鬼祟的):緩慢的掃描,用于IDS逃避。-T2(文雅的):降低速度以降低對帶寬的消耗,此選項一般不常用。-T3(普通的):預設,根據目标的反應自動調整時間。-T4(野蠻的):快速掃描,常用掃描方式,需要在很好的網絡環境下進行掃描,請求可能會淹沒目标。-T5(瘋狂的):極速掃描,這種掃描方式以犧牲準确度來提升掃描速度。 |
Nmap掃描出端口的六種狀态
- Open:發現這一點是端口掃描工具的職責所在,每一個端口就可能會是一次被攻擊成功的大門,管理者也不會将一個端口随便關閉,這會使合法使用者産生不必要的麻煩。當我們使用Nmap進行端口掃描時,如果端口狀态為Open,說明此端口對外為開放狀态,确定為Open 狀态便于我們制定下一步的滲透計劃。
- Closed:當端口關閉的時候Nmap也可以輕而易舉地将其檢測出來,因為接受了Nmap 的探測封包并作出了響應。當然,這也不能忽略是管理者的一個欺騙攻擊者的把戲,如果發現沒有開放的端口,可以等待一會再次掃描一下可能又呈現開放狀态了。如果管理者掌握一定的安全技術,可能會使用防火牆對這些端口進行防護,不過,這并不會阻礙我們發現這個端口,如果被未知或已知的防火牆阻擋通路目标端口,Nmap也會提示“我遇到了一些情況,好像被防火牆擋住了”。
- Filtered:掌握一定安全技術的管理者會布置一個防火牆裝置或者是通過設定路由器的規則阻止Nmap 的掃描,當Nmap遇到防火牆裝置或是路由器規則的時候,Nmap 的封包就會被過濾達到目标端口,這樣就會使Nmap無法判斷目标端口到底是否開放了。出現被過濾現象并不代表一定是被某些專業的裝置過濾了,也許是因為網絡堵塞造成的,建議遇到被過濾狀态時分不同的時間段再次進行掃描。
- Unfiltered:未被過濾狀态意味着端口可以通路,但是Nmap并不能判斷目标端口處于開放狀态還是關閉狀态,這裡需要重申的是目标端口是否可以通路與是否開放并無太大的聯系,例如:關閉的端口也可以接受Nmap發出去的探測封包。需要注意的是,當我們使用ACK掃描時才會呈現出這種狀态,這時我們可以換一種掃描方式去進行掃描,以便于進一步确認目标端口是否開放。
- Open|Filtered:不确定開放還是過濾的,如果 Nmap發出去的探測封包并沒有得到目标端口的響應,那可能會是受到了某些專業裝置的阻擋,但這也不是完全一個被過濾的狀态,這時Nmap就會呈現出目标端口是開放還是被過濾的。出現這種狀态不妨換一種掃描方式進一步确認目标端口是開放還是被過濾的。
- Closed|Filtered:該狀态用于Nmap不能确定端口是關閉的還是被過濾的。值得注意的是,它隻可能出現在IPID Idle掃描中。
網絡漏洞掃描
我們可以通過網絡漏洞掃描,全面掌握目标伺服器存在的安全漏洞。市面上常用的掃描有Nessus、NeXpose、OpenVAs等,這些掃描器都有商業版和免費版或者家庭版。
Nessus曾将是業内開源漏洞掃描工具的标準,在Nessus商業化不在開放源代碼後,在它的原始項目中分支出openVAS開源項目。經過多年的發展,OpenVAS已經成為目前最好的開源漏洞掃描器,功能非常強大,甚至可以與一些商業的漏洞掃描器相媲美。openVaS 使用NVT腳本(漏洞庫)對多種遠端系統(包括windows、Linux,UNIX以及web應用程式等)的安全問題進行檢測。
-
漏洞掃描原理:
網絡漏洞掃描指的是利用一些自動化工具發現網絡上各類主機裝置的安全漏洞。這些自動化工具通常稱為漏洞掃描器。
- 漏洞掃描通常可以分為兩類:黑盒掃描和白盒掃描。
- 黑盒掃描:黑盒掃描一般都是通過遠端識别服務的類型和版本,對服務是否存在漏洞進行判定。在一些最新的漏洞掃描軟體中,應用了一些更進階的技術,比如模拟滲透攻擊等。
- 白盒掃描:白盒掃描就是在具有主機操作權限的情況下進行漏洞掃描。比如微軟的更新檔更新程式會定期對你的作業系統進行掃描,查找存在的安全漏洞,并向你推送相應的作業系統更新檔。
- 白盒掃描的結果更加準确,但一般來說它所識别出的漏洞不應當作為外部滲透測試的最終資料,因為這些漏洞由于防火牆和各類防護軟體的原因很可能無法在外部滲透測試中得到利用。同時,一般情況下你是沒有機會擷取使用者名和密碼。
- 漏洞掃描器一般會附帶一個用于識别主機漏洞的特征庫,并定期進行更新。在漏洞掃描的時候,就是利用特征庫裡的腳本與目标系統的回報資訊進行比對,如果能夠比對上,就說明存在某一個漏洞。
- 漏洞掃描器在識别漏洞的過程中,會向目标發送大量的資料包,有時候會導緻目标系統拒絕服務或被掃描資料包阻塞,掃描行為也會被對方的入侵檢測裝置發現。
- 漏洞掃描器掃描出的結果通常會有很多誤報(報告發現的漏洞實際并不存在)或者漏報(未報告發現漏洞但漏洞實際存在)。是以,需要對掃描結果進行人工分析,确定哪些漏是實際存在的,這個過程就叫做漏洞驗證。這是滲透測試過程中不可缺少的一步,隻有驗證漏洞存在的真實性,才能對漏洞進行深度利用。
- 滲透測試工作中,在得到客戶認可的情況下,可以使用掃描器進行掃描,但使用時一定要注意規避風險,對其系統運作可能造成的影響将到最低。
Web漏洞掃描
随着網際網路的發展以及雲計算的發展,使得政府、銀行、企業以及各個組織基本上都有自己的門戶網站。web應用越來越多,同時web應用的攻擊成本、難度都比較低,web應用成為黑客攻擊的主要目标。無論黑客出于什麼樣的目的, web應用所面臨的挑戰都是很大的。
如何及時、快速發現web 應用安全漏洞,并且修補安全漏洞,減輕或消除web安全風險成為安全行業的重要課題。
小型web應用幾十上百個頁面,大型的web應用成千上萬個頁面。如果靠人工的方式去檢測每個頁面的安全性,顯然,這個成本是難以估計的。是以,我們需要借助于自動化工具,幫助審計員去發現web安全漏洞。這些自動化工具就是web漏洞掃描器。
市面上web 漏洞掃描器有很多,其中以IBM公司的AppScan和商業化web漏洞掃描器AWVS為優秀。
-
Web 漏洞掃描原理:
進行Web 漏洞掃描的時候,大緻分為以下幾個步驟:
爬行網站目錄、使用漏洞腳本掃描、儲存掃描結果
AWVS漏洞掃描器的使用
- 先建立一個目标
- 然後建立一個新的掃描,選擇剛才建立的目标
- 點選可以檢視詳細的資訊
- 等待掃描完成之後可以導出報告
密碼破解
密碼安全威脅
-
密碼安全概述
現在很多地方都以使用者名(賬号)和密碼(密碼)作為鑒權的方式,密碼(密碼)就意味着通路權限。密碼(密碼)就相當于進入家門的鑰匙,當他人有一把可以進入你家的鑰匙,想想你的安全、你的财務、你的隐私,害怕了吧。例如網站背景、資料庫、伺服器、個人電腦、QQ、郵箱等等。
- 密碼安全現狀
-
弱密碼:
類似于123456、654321、admin123 等這樣常見的弱密碼。
-
預設密碼:
很多應用或系統都存在預設密碼。例如:phpstudy 的MySQL 資料庫預設賬密【root/root】,Tomcat 管理控制台預設賬密是【tomcat/tomcat】等。
-
明文傳輸
比如HTTP|FTP|TELNET等服務,在網絡中傳輸的資料流都是明文的,包括密碼認證資訊等。這樣的服務,有被嗅探的風險。
-
破解方式
線上破解方式:賬密,需要認證
離線破解方式:密文還原成明文的過程
暴力破解
暴力破解就是利用所有可能得字元組密碼,去嘗試破解。這是最原始最粗暴的破解方法,根據運算能力,如果能夠承受的起時間成本的話,最終—定會爆破出密碼(理論上)。
下表是根據不同位數生成密碼的空間大小:
字元集 | 密碼位數 | 密碼空間 |
---|---|---|
[0-9] | 8位 | 10^8=100000000 |
[0-9][a-z] | 8位 | 36^8=2821109907456 |
[0-9][a-z] | 1-8位 |
crunch工具
kali自帶,用來生成密碼字典。
使用crunch工具生成的密碼可以輸出到螢幕,儲存檔案或另一個程式。
一般指令格式:
crunch <min-len> <max-len> [<charset string>] [options]
參數說明:
min-len 設定最小字元串長度(必選)
max-len 設定最大字元串長度(必選)
charset string 字元集
options:
-b 指定檔案輸出的大小,避免字典檔案過大
-c 指定檔案輸出的行數,即包含密碼的個數
-d 限制相同元素出現的次數
-e 定義停止字元,即到該字元串就停止生成
-f 調用庫檔案(/usr/share/crunch/charset.lst)
-i 改變輸出格式,即aaa ,aab -> aaa, baa
-l 通常與-t聯合使用,表明該字元為實義字元
-m 通常與-p搭配
-o 将密碼儲存到指定檔案
-p 指定元素以組合的方式進行
-q 讀取密碼檔案,即讀取pass.txt
-r 定義重某一字元串重新開始
-s 指定一個開始的字元,即從自己定義的密碼xxxx開始
-t 指定密碼輸出的格式
-u 禁止列印百分比(必須為最後一個選項)
-z 壓縮生成的字典檔案,支援gzip,bzip2,lzma,7z
特殊字元:
% 代表數字
^ 代表特殊字元
@ 代表小寫字母
, 代表大寫字母
例如:生成元素的組合,比如123.com
crunch 7 7 -t %%%.com -s 111.com -e 123.com
字典
如果能通過比較合理的條件,篩選或者過濾掉一些全字元組合的内容,就會大幅降低爆破的成本。我們把篩選出的密碼組合成特定的字典。在用字典爆破密碼也是可以的,但是這樣做有可能會漏掉真正的密碼。密碼字典大緻分為以下幾類:
-
弱密碼字典:
比如123456等這樣的預設密碼或者弱密碼。
-
社工字典
人們在設定密碼的時候,往往為了便于記憶,密碼的内容群組合會與個人資訊有關,比如常見的密碼組合“名字+生日”。例如:[zhangsan1992]
社工字典更具針對性,準确率也比較高。
我們可以根據個人資訊生成密碼字典。
可以使用cupp 工具(外國人開發的,可能習慣不是咱們的習慣)
cupp工具
安裝cupp:
apt-get install cupp
安裝完成
cupp -i
:可以填寫一些資訊,用來生成社工字典
會生成一個字典檔案,打開檢視
-
字元字典
确定了密碼的字元,也将大大降低我們的成本
我們一般要搜集的字典:
子域名字典
預設賬号密碼字典
檔案路徑字典(日志檔案、web目錄)
常用變量名字典
常用檔案名字典
弱密碼字典
Hydra----九頭蛇
需要身份驗證的都能用它來進行暴力破解!!!
密碼字典:xxx.dic
指令格式:
hydra -l 使用者名 -p 密碼 IP 服務名 -vV 小寫字母表示已知使用者名和密碼,-vV表示顯示詳細過程
hydra -L 使用者字典 -P 密碼字典 IP 服務名 大寫字母表示不知道,需要字典查找
參數:
-l 指定使用者名
-L 指定使用者名字典
-p 指定密碼
-P 指定密碼字典
-vV 顯示爆破細節
-f 找到正确使用者名和密碼就停止爆破
-o 儲存爆破結果
-t 指定線程
-e 有三個參數
n null,空
s same,使用者名相同
r 取反,使用者名倒置
Windows密碼遠端爆破實驗
靶機:win7,開放445端口,IP:192.168.35.128
攻擊機:kali,使用hydra進行暴力破解
使用者名字典:user.dic
密碼字典:pass.dic
開始爆破
爆破成功
Windows賬戶hash值破解
- :Getpass工具 從記憶體中提取密碼
-
:Pwdump工具 提取SAM中的hash值,QuarksPwDump -dhl
手工将hash值存儲到hash.txt中
使用saminside軟體進行hash暴力破解
Linux本地暴力破解:
john工具(kali内置的)
john --wordlist=密碼字典路徑 /etc/shadow 破解密碼
john --show /etc/shadow 檢視密碼