自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何構(gòu)建完美的Dropbox(下)

安全 應(yīng)用安全
本文我們將介紹自動化攻擊方案、網(wǎng)絡(luò)訪問控制、網(wǎng)絡(luò)命名空間等可能的攻擊手段。

接上文《如何構(gòu)建完美的Dropbox(上)

自動化攻擊方案

這還可以自動區(qū)分上面提到的兩種場景,通過監(jiān)控 /sys/class/net/lan/carrier和/sys/class/net/wan/carrier,我們可以檢測LAN和WAN接口是否有一個或兩個連接。

[[348414]]

如果你希望自動化網(wǎng)絡(luò)配置,一個選項是監(jiān)控這些文件,如果LAN接口是活動的,則假定這是一個處于中間位置的人的場景,而如果LAN接口沒有載體,則繼續(xù)執(zhí)行“未使用的端口”場景。如下所示:

  1. while [ `cat /sys/class/net/wan/carrier` == 0 ] ; do  
  2.     sleep 1 
  3. done 
  4. if [ `cat /sys/class/net/lan/carrier` == 0 ] ; then 
  5.     # execute "unused port" scenario 
  6. else 
  7.     # execute Person in the Middle scenario 
  8. fi 

這樣,你就可以繼續(xù)選擇一個IP地址,或者使用DHCP請求一個IP地址。請注意,由于請求的字段不同,或者發(fā)送到服務(wù)器的填充字段不同,有時可能會區(qū)分Windows和Linux DHCP客戶機。花一些時間監(jiān)控和微調(diào)你自己的DHCP請求可能是值得的,然后開始探索你連接的網(wǎng)絡(luò)。

Windows 10 DHCP請求(左)和Kali Linux(右)之間的區(qū)別

關(guān)于網(wǎng)絡(luò)訪問控制

你可能在會議室中發(fā)現(xiàn)了一個未使用的網(wǎng)絡(luò)端口,但是很可能會受到網(wǎng)絡(luò)訪問控制(NAC)檢查。從802.1x到連接新設(shè)備上的服務(wù)以檢查諸如防病毒配置等服務(wù)的網(wǎng)絡(luò)服務(wù)器,它們的形式多種多樣。如果新設(shè)備無法通過檢查,則交換機端口將禁用或配置為受限VLAN,而無法訪問真正有趣的系統(tǒng),真令人失望!

解決此類控件的一種簡單方法是對現(xiàn)有設(shè)備執(zhí)行中間人攻擊,這可能是PC,打印機,甚至是IP電話。在許多情況下,打印機等設(shè)備無法執(zhí)行802.1x身份驗證,因此在該特定網(wǎng)絡(luò)端口上將其禁用。在其他情況下,設(shè)備具有在網(wǎng)絡(luò)上的必要授權(quán),因此,網(wǎng)絡(luò)端口已分配給正確的VLAN。中間設(shè)備的人需要做的就是確保它發(fā)送的任何流量看起來都和受害者的一樣,這樣開關(guān)就不會檢測到任何不正常的東西。如果在一個端口上檢測到不止一個MAC地址,那么可以配置許多交換機關(guān)閉一個端口,這是你真的不希望發(fā)生的事情!

為此,我在閱讀了這篇文章后,創(chuàng)建了一個簡單的shell腳本,該腳本設(shè)置了適當(dāng)?shù)膇ptables規(guī)則以使任何來自R1S的流量似乎來自受害者??梢栽贕itHub上的slimjim腳本的舊版本中找到該過程的基礎(chǔ)。從本質(zhì)上講,要弄清楚被攔截設(shè)備的MAC和IP地址,然后使用Linux ebtables(第2層)和iptables(第3層)規(guī)則來確保從person -in- middle設(shè)備到更廣泛網(wǎng)絡(luò)的所有流量都來自被攔截設(shè)備的MAC和IP地址。如果你還希望能夠與被攔截的設(shè)備進行交互,請選擇要使用的上游設(shè)備的MAC和IP地址,并將其偽裝成該設(shè)備。鑒于該裝置所處的特殊位置,直接與受害者相連,你可以選擇任何上游裝置來偽裝成它。

早期的slimjim依賴于手動將可到達設(shè)備的MAC地址和IP地址分別添加到ARP和路由表中,它還要求操作員使用tcpdump -nneli lan -Q in這樣的命令來識別被攔截設(shè)備的MAC和IP地址,并在運行腳本之前執(zhí)行一些手動配置。當(dāng)前版本的slimjim為你完成了所有這些工作,并將觀察到的DNS流量映射到相關(guān)地址。不過需要python腳本,這在資源受限的設(shè)備上可能不可行!

一旦配置了網(wǎng)橋,即使沒有識別出受害者的詳細信息,網(wǎng)絡(luò)訪問控制解決方案也應(yīng)該能夠連接到受害者,執(zhí)行所需的任何身份驗證過程,并相應(yīng)地激活端口。

從網(wǎng)絡(luò)訪問控制中竊取憑據(jù)

一個有用的技巧是了解網(wǎng)絡(luò)訪問控制實際上是如何工作的,在某些情況下,我們已經(jīng)看到,NAC解決方案使用SSH或SMB之類的協(xié)議建立到新設(shè)備的經(jīng)過身份驗證的連接,并提供可以獲取和重用的憑據(jù)。此連接用于執(zhí)行目錄、或驗證驗證防病毒軟件是否是最新的等等。在這些端口上運行合適的蜜罐服務(wù)可能會導(dǎo)致明文憑據(jù)(或等價的哈希)泄漏,這些憑證通常是高度特權(quán)帳戶,能夠登錄到所有連接到網(wǎng)絡(luò)的工作站!

不幸的是,802.1x解決方案并非如此!

網(wǎng)絡(luò)命名空間

Linux自2002年以來一直支持名稱空間約有18年,但是對于很多人來說,它們?nèi)匀皇且粋€謎。存在用于各種不同資源類別的名稱空間,例如進程、文件系統(tǒng)、網(wǎng)絡(luò)、用戶ID等。這些名稱通常由Docker工具之類的容器工具使用,以限制所包含系統(tǒng)可以看到的資源。它們還可以幫助防止命名沖突,就像很多人的名字叫John一樣。

在這個實例中,我們感興趣的是網(wǎng)絡(luò)名稱空間,因為它們提供了一種方法,使網(wǎng)絡(luò)接口及其整個網(wǎng)絡(luò)堆棧僅對系統(tǒng)上運行的程序的子集可見。通過將網(wǎng)絡(luò)接口分配給網(wǎng)絡(luò)名稱空間,只有在該網(wǎng)絡(luò)名稱空間內(nèi)運行的進程才能看到或訪問該接口。

Opsec注意事項

如前所述,由R1S產(chǎn)生的無意的網(wǎng)絡(luò)流量(如DNS查找)可能會泄露整個游戲。避免這種情況的一種方法是在網(wǎng)絡(luò)名稱空間(例如pitm)中隔離以太網(wǎng)接口,并仔細考慮在該名稱空間中啟動哪些進程。當(dāng)前的slimjim腳本也會處理這個問題,在名稱空間內(nèi)創(chuàng)建一個屏幕實例。在pitm名稱空間內(nèi)啟動的任何進程都可以訪問以太網(wǎng)接口,而在名稱空間外創(chuàng)建的進程則不能。這樣,我們就可以確保不會有意外的流量擊中目標(biāo)的網(wǎng)絡(luò),暴露他們的存在!

安裝slimjim

要在R1S上安裝slimjim,應(yīng)執(zhí)行以下步驟。首先,在以太網(wǎng)接口上禁用IPv6:

  1. cat << EOF > /etc/sysctl.d/01-disable-ipv6.conf 
  2. # disable IPv6 on Ethernet interfaces 
  3. net.ipv6.conf.wan.disable_ipv6 = 1 
  4. net.ipv6.conf.lan.disable_ipv6 = 1 
  5. EOF 

不幸的是,Linux IPv6堆棧執(zhí)行了一些自動沖突檢測,這可能允許意外的流量傳出到以太網(wǎng)接口。接下來,安裝所需的軟件包:

  1. apt install -y dnsmasq tcpdump ebtables redsocks iftop python3-pypcap python3-dpkt python3-pyroute2 python3-iptables python3-setuptools python3-cffi 

我們希望防止Redsocks自動啟動,因為除非它在pitm名稱空間內(nèi)運行,否則它將無法訪問網(wǎng)絡(luò)接口。 slimjim腳本將在命名空間內(nèi)為我們啟動它。我們還希望將Redsock偵聽的IP地址更新為位于以太網(wǎng)橋上??梢赃@樣做:

  1. systemctl disable --now redsocks 
  2. sed -i -e 's|log = .*;|log = "stderr"|' -e 's|daemon = on;|daemon = off;|' -e 's|local_ip = 127.0.0.1;|local_ip = 169.254.0.1;|' /etc/redsocks.conf 

在本文中,我們實際上不會使用redsocks,但是在此文章中使用了類似的“中間人”技術(shù),其中提供了有關(guān)如何使用它的信息。

接下來,我們從GitHub克隆slimjim存儲庫:

  1. git clone https://github.com/RoganDawes/slimjim 
  2. slimjim/slimjim 

運行slimjim將在第一個窗口中使用slimjim腳本啟動屏幕會話。你將看到它等待受害者的數(shù)據(jù)包,以識別要使用的MAC和IP地址。

確認受害者的MAC和IP地址

注意:在運行slimjim腳本之前,LAN和WAN接口之間不會通過任何流量。我建議你利用前面介紹的自動化技術(shù),通過檢測連接了LAN接口的活動接口來自動啟動slimjim,或者,在斷開目標(biāo)網(wǎng)絡(luò)連接之前,手動啟動slimjim。

一旦確定了受害者的MAC和IP地址,就可以關(guān)閉該窗口。另一個窗口將運行一個名為pitm_snoop.py的python腳本,該腳本監(jiān)視網(wǎng)絡(luò)流量以識別相鄰設(shè)備并更新ARP和路由表。這是必要的,因為slimjim阻止R1S執(zhí)行自己的ARP查找以避免暴露。

為廣播域中的設(shè)備添加ARP條目,并將名稱映射到IP地址

另一個窗口將運行dnsmasq實例,該實例配置為僅執(zhí)行基于本地“主機文件”的查找。主機文件也由pitm_snoop.py根據(jù)觀察到的來往受害者的DNS流量來創(chuàng)建和更新。通過這種方式,你可以了解被攔截設(shè)備正在與哪些主機通信,并了解網(wǎng)絡(luò)布局。如果你希望使用目標(biāo)服務(wù)器的名稱服務(wù)器,則可以編輯名稱空間的自定義/etc/resolv.conf文件(通??稍?etc/netns/pitm/resolv.conf中找到)。

另一種弄清楚受害者與誰交談的方法是運行iptraf。slimjim啟動一個iptraf實例,以用戶友好的方式顯示通過pitm橋的網(wǎng)絡(luò)流量。

處理網(wǎng)絡(luò)命名空間的復(fù)雜性

使用網(wǎng)絡(luò)名稱空間來隔離以太網(wǎng)接口有時會讓事情變得有些棘手,特別是當(dāng)你需要能夠?qū)⒘髁繌目刂平涌谝龑?dǎo)到網(wǎng)橋時,或者反之亦然。為了解決這個問題,我們創(chuàng)建了一對虛擬網(wǎng)絡(luò)接口,分別為169.254.20.1(名稱空間內(nèi)部)和169.254.20.2(名稱空間外部)。使用這些可以將流量路由進出命名空間。我的首選方法是使用SSH隧道,如下所示:

在R1S上,為pitm名稱空間內(nèi)的虛擬接口添加一個/etc/hosts條目:

  1. 169.254.20.1 pitm 

將以下條目添加到你的個人〜/ .ssh / config文件中:

  1. Host pitm 
  2. User root 
  3. ProxyJump nanopi-r1 
  4. RemoteForward 1080 
  5.  
  6. Host nanopi-r1 
  7. User root 
  8. RemoteForward 1080 

然后,如果你在R1S上安裝了ssh公鑰,你可以使用以下命令直接ssh到pitm名稱空間:

  1. ssh pitm 

這利用了OpenSSH的“ProxyJump”功能,并在另一個內(nèi)部建立了一個ssh連接的隧道,以便到達命名空間內(nèi)的虛擬接口。這將啟用簡潔的功能,例如使用本地計算機上的Wireshark進行遠程網(wǎng)絡(luò)監(jiān)視:

  1. ssh pitm tcpdump -nli pitm -w - | wireshark -k -i - 

當(dāng)然,其他所有SSH端口轉(zhuǎn)發(fā)技巧也都可用。

此基于slimjim的解決方案不適用于使用802.1x-2010的網(wǎng)絡(luò),該網(wǎng)絡(luò)可以使用MACsec加密受害者與交換機之間的數(shù)據(jù)包。

本文翻譯自:https://sensepost.com/blog/2020/making-the-perfect-red-team-dropbox-part-2/

 

責(zé)任編輯:趙寧寧 來源: 嘶吼網(wǎng)
相關(guān)推薦

2020-10-23 10:36:08

Dropbox

2019-05-15 09:00:00

決策樹機器學(xué)習(xí)人工智能

2010-06-30 14:12:48

2013-06-24 13:51:47

手機用戶體驗移動應(yīng)用移動互聯(lián)網(wǎng)市場

2009-09-11 09:36:53

李開復(fù)

2021-03-05 10:13:45

Python 開發(fā)編程語言

2022-03-29 08:55:18

存儲引擎核心

2013-12-31 10:51:02

開發(fā)App手游移動開發(fā)

2018-02-24 15:48:53

2020-07-24 20:49:10

代碼Request審查

2022-03-02 09:49:14

Rust編程語言

2014-03-25 09:15:20

VS2012GitHub

2010-03-18 14:11:32

Web交換機

2010-06-18 10:51:27

NetBeans 6.CSSEclipse

2009-12-15 10:47:29

linux操作系統(tǒng)

2022-02-15 12:14:49

人工智能數(shù)據(jù)優(yōu)化

2010-11-30 09:40:15

流量控制設(shè)備AllotQOS策略

2013-10-15 17:37:16

XToolscrm

2024-04-16 16:22:19

數(shù)據(jù)中心區(qū)域供熱系統(tǒng)服務(wù)器

2012-02-27 14:09:39

媒體服務(wù)器Ubuntu
點贊
收藏

51CTO技術(shù)棧公眾號