社会工程渗透测试教程(三)(4)

本文涉及的产品
云防火墙,500元 1000GB
简介: 社会工程渗透测试教程(三)

社会工程渗透测试教程(三)(3)https://developer.aliyun.com/article/1508400

硬件使用 Python 控制显示内容。Adafruit 提供了许多示例脚本,可以用于许多用途。例如,他们提供了一个 IP 时钟脚本,毫不奇怪地在一行上显示 IP 地址,在另一行上显示时间。这个脚本被修改为在一行上显示以太网接口的 IP 地址,在另一行上显示 3G PPP 接口的 IP 地址。这样,很明显当插入时,它同时连接到两个网络,使得顾问可以离开。

以下是代码:

#!/usr/bin/python
from Adafruit_CharLCDPlate import Adafruit_CharLCDPlate
from subprocess import *
from time import sleep, strftime
lcd = Adafruit_CharLCDPlate()
cmd = "ip addr show eth0 | grep inet | awk'{print $2}' | cut -d/ -f1"
cmd2 = "ip addr show ppp0 | grep inet | awk'{print $2}' | cut -d/ -f1"
lcd.begin(16,1)
def run_cmd(cmd):
p = Popen(cmd, shell=True, stdout=PIPE)
output = p.communicate()[0]
return output
while 1:
lcd.clear()
ipaddr = run_cmd(cmd)
ipaddr2 = run_cmd(cmd2)
lcd.message(ipaddr2)
lcd.message(ipaddr)
sleep(1)

当它在我们的硬件上运行时,应该是什么样子在图 12.9 中。

图 12.9 完全功能显示显示 IP 地址。

显示每秒刷新一次,由代码行 sleep(1) 决定。您可以根据需要更改此设置。如果拔掉以太网接口,或者无线 3G 接收器,显示将停止显示相关的 IP 地址。可能需要 10 秒左右才能追赶上来。

如您从脚本中所见,您可以传递任何命令行字符串并显示结果。在这方面,您只受限于您的想象力。

有几个与这些显示器相关的项目比我的简单黑客工作要复杂得多。我建议查看 crushbeercrushcode.org/2013/03/developing-the-rogue-pi/ 上的“RoguePi” 项目。

项目负责人卡伦·韦瑟尔在他的项目中使用了一个 RGB Pi Plate。它根据情况变换颜色。例如,在启动时它会运行连接检查,结果是绿色屏幕和成功消息。如果其中一个测试失败,屏幕就会变红。真是漂亮的东西!他友好地包含了用于执行所有这些操作的 Python 代码,我认为这是必读的!只需确保购买 Adafruit Pi Plate 的 RGB 版本以使用他的脚本!

无线接收器

添加无线接口允许更灵活地执行更多攻击。首先,它可以用于捕获握手数据包、连接到公司无线网络或主持伪造访问点。另外,为什么不尝试只将其用作在失去其他连接方式时重新连接到“dropbox”的手段呢?

就硬件而言,阿尔法接收器通常是一个不错的选择,但值得注意的是,旧版本(例如可靠的阿尔法 AWUS036H)不支持无线 N。在这里提醒一下,Pi 可能不会很喜欢不得不为自己和无线接收器供电。对于所有外围设备,请使用带电源的集线器。

很可能会有强烈的愿望在 Pi 上安装 Aircrack-ng 套件。由于与 iw 存在冲突,它将无法从存储库中获取,因此需要从源代码构建。幸运的是,这并不是很复杂。

首先检查是否安装了“build-essential”和“libssl-dev”的最新版本,然后开始下载 Aircrack-ng 软件包。

pi@raspberrypi ~ $ sudo apt-get install build-essential
pi@raspberrypi ~ $ sudo apt-get install libssl-dev
pi@raspberrypi ~ $ mkdir aircrack
pi@raspberrypi ~ $ cd aircrack
pi@raspberrypi ~ $ wget http://download.aircrack-ng.org/aircrack-ng-1.2-beta1.tar.gz
pi@raspberrypi ~/aircrack $ tar -zxvf aircrack-ng-1.2-beta1.tar.gz

现在是时候开始制造工具了。其中一些步骤可能需要一段时间!

pi@raspberrypi ~/aircrack $ cd aircrack-ng-1.2-beta1/
pi@raspberrypi ~/aircrack/aircrack-ng-1.2-beta1 $ make
pi@raspberrypi ~/aircrack/aircrack-ng-1.2-beta1 $ sudo make install
pi@raspberrypi ~/aircrack/aircrack-ng-1.2-beta1 $ sudo apt-get install iw
pi@raspberrypi ~ $ sudo airodump-ng-oui-update

现在让我们插入 dongle 并启动 Airodump,看看是否一切正常!

pi@raspberrypi ~ $ sudo airmon-ng start wlan0
Interface Chipset   Driver
wlan0   Atheros AR9271  ath9k - [phy0]
(monitor mode enabled on mon0)
pi@raspberrypi ~ $ sudo airodump-ng -w /home/pi/wirelesscap mon0
CH 1 ][ Elapsed: 32 s ] 2013-09-21 12:02
BSSID   PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
12:FE:F4:07:A1:E8 -61  60  0 0 6 54e. OPN   BTWiFi-with-FON
02:FE:F4:07:A1:E8 -61  68  0 0 6 54e. OPN   BTWiFi
6 A:C6:1 F:E8:84:2D −70  125  0 0 1 54e OPN   BTWiFi-with-FON
10:C6:1 F:E8:84:2B −69  164  8 0 1 54e WPA2 CCMP PSK BTHub3-P3HP
6 A:C6:1 F:E8:84:2C −67  168  0 0 1 54e OPN   BTWiFi
BSSID   STATION   PWR Rate Lost Frames Probe
00:FE:F4:07:A1:E8 B8:8D:12:3A:75:00 -60 0 - 1  0  19

选择可能是坚持这种攻击方式,试图捕获和破解握手,或者尝试设置一个 rogue AP。首选选择是在这种攻击向量中部署一个无线 Pineapple 并配合“dropbox”。如果需要,这可以将 Internet 流量路由到 Pi 并从其 3G 接口输出。

选择一个适合你的 dropbox 的外壳

有很多潜在的“dropbox”外壳可供选择,但哪一个最适合我们的特定任务呢?这取决于与 Pi 一起部署的附件数量。如果它带有屏幕、无线和 3G dongle 发送出去,那么它就不适合任何标准的箱子。在这种情况下,为什么不试试小型的 Pelican 硬箱,比如 1050?这个箱子足够大,可以轻松地放入 Pi 和一些额外的好东西而不会出现任何问题。但是,它需要进行一些修改,以便使电源和网络电缆可以接入。它并不是最小的箱子,但是它仍然可以很容易地被隐藏在桌子或地板板下而不会出现问题(参见[图 12.10)。

图 12.10 Pelican 和标准 Pi 外壳。

还有更加隐秘的外壳类型,设计成藏在显眼处的,比如 OKW 的插头外壳系列,可以进行一些修改后使用——www.okw.co.uk/products/okw/plug.htm。然而,这些修改可能相当广泛。首先,需要从 Pi 上拆下 S-Video 连接器,USB 端口也必须重新定位。但这并不是没有先例的,事实上一些人已经用 USB 头替换了当前的 USB 端口,然后连接了一个内部的、有源 USB 集线器。其中一位这样做的人是 Oliver Jenkins,可以从这里获取更多信息:www.oliverjenkins.com/blog/2012/6/changing-usb-socket-on-raspberry-pi

不管怎样,这不适合胆小的人,你至少要放弃任何保修!这是我在疯狂的日子里要做的事情清单上的一个想法(参见图 12.11 和 12.12)。

图 12.11 OKW 外壳。

图 12.12 带有 Pi 的 OKW 外壳。

当然还有其他选择。人们已经将这些“投递箱”集成到笔记本电源适配器、八路电源供应器、交换机、接入点以及其他各种回收箱中。一个不错的想法是将其集成到桌面交换机中,并将以太网端口直接连接到树莓派,但这是另一本书的话题。

将 OpenVPN 添加到我们的后门

在前面的部分简要提到了 OpenVPN。这个想法非常简单。与其仅依赖于反向 SSH 连接,为什么不建立一个完整的 VPN,允许我们无限制地访问目标网络?从所有方面来看,这就像坐在办公室里,通过有线连接访问局域网一样。这肯定比 SSH 隧道更加灵活!而且,这也可以通过我们的 3G 连接工作!如今,3G 和 4G 便携式设备是高带宽设备,不容忽视。

在我们的场景中,树莓派将成为 OpenVPN 客户端。它将与我们数据中心的服务器建立 VPN 连接。如果我们使用目标的互联网连接,这可以帮助我们绕过任何入站防火墙规则等访问限制。我们将能够配置 VPN,使我们能够通过隧道路由流量进入目标网络。为了保持简单,我将使用运行 Ubuntu Server 的虚拟机来模拟连接的数据中心端。我建议您跟随流程并自己构建它。

安装 OpenVPN 并生成证书和密钥

首先让我们在服务器上设置 OpenVPN。这是一个相当简单的操作;我们只需要仔细遵循步骤,避免任何错误。

root@ubuntusrv:~# sudo apt-get install openvpn

是的,这就是构建所需的全部内容。接下来是配置服务器,首先要复制一些文件。

root@ubuntusrv:~# cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
root@ubuntusrv:~# cd /etc/openvpn/easy-rsa/2.0

现在我们需要编辑“vars”文件以适应我们的需求。您要寻找将添加到我们将生成的证书中的值。例如:“export KEY_COUNTRY=“US”。”

坦率地说,对于我们的目的,这些值可以设置为任何值。使用您选择的文本编辑器编辑这些值。

然后我们需要运行一些脚本来启动事情。是的,下面的第一行是“点空格点斜杠。”

root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#. ./vars
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./clean-all
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-ca
Generating a 1024 bit RSA private key
................................................................................++++++
...........++++++
writing new private key to'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter'.', the field will be left blank.
-----
Country Name (2 letter code) [UK]:
State or Province Name (full name) [UK]:
Locality Name (eg, city) [Leeds]:
Organization Name (eg, company) [hackjobinc]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [hackjobinc CA]:
Name []:server
Email Address [me@myhost.mydomain]:
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#

按照输出要求配置几个选项,但我们已经将它们添加到“vars”文件中,因此只需按“enter”键保留每个值即可。正如我之前提到的,如果你愿意,也可以保留默认设置。

接下来需要执行的下一个脚本:

root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-key-server server #Answer ‘Y’ when asked to sign the certificate and then again when asked to commit.
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-key client   #This generates a client certificate
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-dh   #Diffie Helman Setup

现在我们需要将生成的密钥和证书移动到正确的目录中。

cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn
配置 OpenVPN

幸运的是,这一步非常简单。OpenVPN 随附示例配置,可以编辑以适应我们的设置。幸运的是,要使事情正常运行,需要改变的内容并不多。让我们从将示例配置复制到正确位置开始。

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
gunzip /etc/openvpn/server.conf.gz

现在我们需要编辑 server.conf 文件,并确保证书和密钥文件的位置正确设置为 /etc/openvpn/keys。使用 nano 打开 /etc/openvpn/server.conf ——sudo nano /etc/openvpn/server.conf

寻找涉及 ca.crt、server.crt 和 server.key 的部分。确保设置为 /etc/openvpn/ca.crt、/etc/openvpn/server.crt 和 /etc/openvpn/server.key。

到目前为止,服务器端就做到这些了。真的不算太痛苦。特别是考虑到隧道会在启动时自动建立。

现在,转到客户端,这里是树莓派 Dropbox。

配置客户端

构建客户端的过程非常类似。首先安装 OpenVPN,并将客户端证书从服务器复制到 Pi。然后,我们将修改客户端示例配置以适应我们的需求。此时重新启动 OpenVPN 守护程序应该可以建立隧道。让我们开始吧!

如果 Pi 上的 root 帐户尚未启用,则现在需要启用。只需输入 passwd root 并输入新的 root 密码。

安装 OpenVPN ——sudo apt-get install openvpn

然后,返回服务器以使用安全复制(SCP)将证书文件复制到 Pi

root@ubuntusrv:/# cd /etc/openvpn/easy-rsa/2.0/keys
root@ubuntusrv:/# scp piclient.key piclient.crt ca.crt ca.key root@192.168.1.154:/etc/openvpn

你应该看到传输成功!如果没有,请尝试排除原因,因为如果没有这些传输,它将无法正常工作。

现在返回到 Pi 并复制随 OpenVPN 一起提供的示例配置。

pi@raspberrypi ~ $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn

接下来,编辑文件以匹配我们的环境——sudo nano /etc/openvpn/client.conf,找到字符串“remote my-server-1 1194”。将“my-server”更改为服务器的 IP 地址。默认情况下,端口是用户数据报协议(UDP)/ 1194,但可以选择任何端口。如果预计 VPN 将通过客户端的基础设施传输,则 TCP/443 可能是一个不错的选择。在这种情况下,隧道将通过 3G 建立,不应该有任何限制。

与之前编辑的 server.conf 类似,确保在 client.conf 中正确引用客户端密钥和证书非常重要。同样,每个文件都被复制到 /etc/openvpn,因此确保配置文件反映了这一点。

现在所需的一切就是在连接的每一端重新启动 OpenVPN 守护程序,从服务器开始 sudo /etc/init.d/openvpn restart。

此时,隧道应该已经建立。通过运行“ifconfig”和“route -n”来验证这一点。应该有一个“tun0”接口和使用它作为跳跃点的几条路由。

连接的每一端通常都会出现一个 10.8.0.x 的地址。尝试运行 NMAP 以查找远程端(Pi)分配给自己的地址——Nmap -sn 10.8.0.0/24。

作为示例,在这个设置中,Pi 获得了 10.8.0.6 的地址。实际上可以使用此地址直接与 Pi 通信,使用 SSH 或任何常用工具。所有这些流量都发送到 VPN!

这还没有完全完成,仍然需要稍微修改路由,以确保可以访问整个目标网络。

路由问题及其克服方法

目前来看,无法从 OpenVPN 服务器 ping 到 Pi 的本地网络。原因有两点。首先,OpenVPN 需要配置为将 LAN 流量路由到 VPN 隧道下。其次,目标网络中的设备没有返回路由回到 10.8.0.0/24 网络,至少在这种情况下不会。显然,我们无法修改目标网络的路由表,也不想这样做。不过,有一个替代方案。我们可以将所有的流量隐藏在 Pi dropbox 的 LAN IP 地址后面。因为 Pi 插入了目标网络,所以知道该网络中的所有主机都能与其通信。这与某人可能如何配置家庭宽带路由器并隐藏所有家庭 PC 后面的单个公共 IP 地址相似。在我们的情况下,我们将将 10.8.0.0/24 网络转换为客户端的 192.168.1.x 网络。

在树莓派上配置以下内容。

sudo -i
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.154   #192.168.1.154 is the address of the eth0 interface of our Pi which is on the client network
echo 1 > /proc/sys/net/ipv4/ip_forward   #Allows the Pi to route traffic in and out, basically turning it into a router.

这应该处理连接的 Pi 端的路由。现在配置 OpenVPN 将流量发送到 192.168.1.0/24 下的 VPN 隧道。

我们只会在 OpenVPN 服务器上配置这个。

首先,我们需要再次编辑 server.conf,即 nano /etc/openvpn/server.conf。

找到标有“client-config-dir ccd”的行,并删除注释该行的分号。

直接在下面的行下面,添加一个路由到我们的 192.168.1.0 255.255.255.0 网络。

route 192.168.1.0 255.255.255.0

保存文件。

现在创建“ccd”目录并放置一个配置文件在其中。

mkdir /etc/openvpn/ccd

我们将创建的配置文件需要与客户端的名称相同。在我们的示例中,我们称之为“client”—这是在生成证书时选择的!

cd /etc/openvpn/ccd
nano client

然后在客户端文件中添加一个路由。

iroute 192.168.1.0 255.255.255.0

route 命令与之前使用的命令略有不同;不要混淆这两个,否则将无法工作!别忘了保存文件。我们所需要做的就是重新启动我们的 OpenVPN 服务器,我们应该能够开始工作了!

/etc/init.d/openvpn restart
root@ubuntusrv:~# route -n
Kernel IP routing table
Destination  Gateway   Genmask   Flags Metric Ref Use Iface
0.0.0.0   192.168.1.254 0.0.0.0   UG 0   0   0 eth0
10.8.0.0  10.8.0.2  255.255.255.0 UG 0  0  0 tun0
10.8.0.2  0.0.0.0  255.255.255.255 UH 0  0  0 tun0
172.16.0.0  0.0.0.0  255.255.0.0 U 0  0  0 eth1
192.168.1.0 10.8.0.2  255.255.255.0 UGH 0  0  0 tun0

正如你所见,我们现在有了一个路由到 192.168.1.0/24 网络,使用 tun0 接口,即我们的 VPN!该网络的网关是 10.8.0.2,属于我们的 RaspberryPi。您现在应该能够从 OpenVPN 服务器访问该网络中的任何内容。您需要为您希望访问的任何其他目标网络重复路由添加。您的访问方式与自己直接插入的方式没有什么不同,当然除了带宽。这在我们的 3G 连接上也足够工作,尽管我可能会在控制 Pi 后首先在客户端的连接上建立第二个隧道。

不要忘记,您可以允许您的 OpenVPN 服务器通过执行 echo 1 > /proc/sys/net/ipv4/ip_forward 语句来路由流量。然后,您可以使用服务器作为进入目标网络的网关,以便多个工程师可以访问范围。或者,您可以在每个顾问的计算机上安装 OpenVPN 客户端,并以这种方式访问目标。世界是你的!

替代性投递箱

在考虑在敌人阵地留下什么时,还有其他选择。它不一定必须是某种类型的计算机;它可以只是一种使连接进入目标网络的设备。让我们看看一些选项,以充实这个概念。

3G 和 IP KVMs

最近发生的两起备受关注的入侵事件突显了使用 3G 启用的 KVMs(键盘、视频和鼠标)进行远程入侵的情况。KVM 是一种旨在提供系统控制台级访问权限的系统。本质上,这就像坐在显示器和键盘前一样。可以重新启动系统并进入 BIOS 并执行任何物理访问允许的任务。KVM 已经存在很长时间,并随着行业的发展而发展,提供网络连接和在某些情况下提供蜂窝网络连接。这在前面提到的两起入侵事件中得到了突出展示。

攻击针对桑坦德和巴克莱分行的银行计算机系统。3G 启用的 KVM 安装在分行计算机上,使攻击者能够远程控制系统并转移大笔资金。在桑坦德的情况下,在任何资金被盗之前就发现了该设备,但巴克莱就没有那么幸运。攻击者设法窃取了 130 万英镑。在看到设备使用图片后,似乎 IP KVM 连接到了一个允许远程连接的 3G 启用路由器。这些设备是隐蔽的,对于绝大多数人来说在办公室或分支机构环境中看起来并不突兀。

KVM 安装在看起来是经典社会工程类型攻击的情况下。他们冒充 IT 人员,声称是现场维护银行计算机的人员。虽然在撰写本文时尚未提供有关借口的具体信息,但我们在本书中已经涵盖了可能在整个过程中起作用的示例。现在的问题是,还有多少其他银行和组织在其网络上拥有这些恶意设备?

这些案例是现代攻击所构成的混合威胁的完美例子。它们整合了社会工程学元素以进入分支机构,然后利用技术相关的诡计获取远程访问权限。对我来说最有趣的是,他们是用现成的硬件完成的。毫无疑问,对于他们付出的努力,我确实有一定程度的钦佩,即使他们确实应该长期监禁。无论如何,我肯定会寻找价格合理的 IP/3G KVM!

我们在我们的投放盒搭建部分使用了 3G 连接。如果你还没有的话,自己动手搭建一个吧!

路由器

一个支持 3G 的路由器绝对可以成为一个有用的“投放盒”。将设备插入网络并让它通过蜂窝网络创建 VPN 返回数据中心,就像拥有本地网络访问一样。有几家制造商生产适合的设备。思科和 DrayTek 制造了几款适合此工作的设备。也许你已经有这些设备中的一款了,如果是这样的话,就好好利用它吧。

在敌方阵地后面拥有一个完全功能的计算机在某种程度上确实提供了更多的灵活性,但在许多情况下,路由器可能是一个很好的选择。我们已经介绍了在 Linux 平台上使用 OpenVPN 来提供相同的连接选项,而且灵活性更强!

无线接入点

对于社交工程活动来说,使用高品质无线接入点有很多好处。首先,它实际上是非常简单的,只需插上电源就可以了。假设设备做工精良,并且你尽量避免 AP 和远程位置之间有太多障碍物,那么你应该可以顺利进行。当然,无线接入点也存在明显的局限性和问题,这可能会在评估中给我们带来麻烦。首先,范围通常是一个问题,特别是在老建筑物或者有厚厚混凝土墙的地方。只要笔记本电脑有一个不错的天线,应该就不会有太多问题。考虑在接入点上安装一个高增益天线。另一个问题是可见性。如果目标有任何形式的无线入侵检测系统(IDS)解决方案,他们很可能会在任务完成之前追踪到接入点。在某些情况下,将接入点的服务集标识符(SSID)命名为邻近企业的名称就足以确保它能够逃过监控。

对于不同场景拥有几种不同类型的接入点确实非常方便,但是 Belkin Go N300 已经取得了一些显著的成功。它非常小,没有外部天线,但仍然似乎有良好的覆盖范围。它大约和一副牌的大小差不多,甚至看起来不像是一个接入点。非常适合隐藏在地板下甚至是显眼的地方。

危害内部系统

公平地说,这个并不是物理上的“投递盒”,但逻辑上肯定符合要求。不仅仅带走硬件,还带上一个带有 Metasploit 负载的 USB 棒。然后可以用它来入侵内部系统并创建一个反向隧道回总部。当然,这种攻击依赖于找到一个未锁定的系统或说服其他人运行负载。无论如何,它可以提供与“投递盒”相同级别的访问权限,而不会被发现的风险。不过,当接待员拿到一个 USB 棒时,没有什么比一个杀毒软件通知更能表明“请叫安保”了。

其他有用的小工具

我喜欢小工具,从这一整章节你可能已经能够看出来了!我喜欢制造它们,调整它们,损坏它们,并让它们做一些它们本不应该做的事情。如果一切都只是按照说明书上说的那样,那会有多无趣呢?这可能就是我以我的职业为乐的原因。除了我们已经讨论过的内容,还有一些其他在社会工程学中必备的有用小工具。让我们来看看它们。

键盘记录器

键盘记录器在各种形式上已经存在很长时间了。它们通常是一个小设备,位于键盘和计算机之间,用于捕获数据,比如每次按键。它们有 USB 和 PS2 两种格式,尽管在任何现代环境中可能很难找到 PS2 鼠标和键盘,但大多数信用卡设备使用 PS2 连接。

尽管它们非常古老,但在社会工程学中仍然异常有用。这主要原因是它们非常小,通常可能多年都不会被员工发现。尽管没有人会想要让它在那里放这么长时间。它们也非常简单快速安装,这在社会工程学中总是一个优点,因为时间几乎肯定会很紧张。

键盘记录器的主要挑战在于需要返回目标机器来取回它们,即使这样,谁知道它们会捕获到什么。目的是捕获系统的凭证,这些凭证可以在整个过程中使用,只要选择的机器看起来正在使用,那就成功了!

购买 USB 键盘记录器时要小心,确保它看起来像图 12.13 中所示的那样。

图 12.13 一个典型的 USB 键盘记录器。

请注意它有两个 USB 连接,一个插入目标计算机,另一个供键盘插入。很多人在出售一个基本上只是一个带有一些键盘记录软件的 USB 棒的“键盘记录器”。基本上,这样的一个可以很容易地使用 Metasploit 或社会工程工具包制作。

这种类型的键盘记录器的问题在于它们需要在目标主机上安装服务,这需要管理员权限。换句话说,它们部署速度慢且笨重。它们更多地被用于监控而不是社会工程的角度。

录音设备

有很多商店出售音频监听设备。这些设备可以根据移动或声音触发录制。同样,留下设备的问题在于必须恢复才能访问录制的数据,就像键盘记录器一样。另一个想法是将 USB 麦克风添加到 RaspberryPi 的 Dropbox 中。然后可以用它来记录到本地文件,可以通过 OpenVPN 下载。甚至添加摄像头,这样目标组织就有了眼睛。在敏感区域或会议室中,“dropbox” 将特别有用。

Teensy USB

Teensy USB 基本上是一个小型的 USB 存储设备,被系统识别为人机接口设备,换句话说,一个键盘。该设备是可编程的,可以发出您需要的任何命令或一组按键。由于它被识别为键盘,它适用于所有类型的系统。

作为安全专业人员,这个功能集通常被用来妥协工作站和服务器。

更好的是,社会工程工具包支持创建与 Teensy 兼容的 Metasploit 负载。所需的只是在某处创建一个监听器,然后将 Teensy 插入目标主机。

恶意的 USB 存储设备

值得注意的是,如果发现了一个未锁定的工作站,随时准备好一个恶意的 USB 存储设备是值得的。快速运行负载,然后在短时间内与总部的团队建立一个反向会话。

社会工程工具包支持生成利用 Autorun 的恶意 USB 存储设备,作为执行的方法。尽管如此,这种行为的通常风险仍然存在。这可能会触发杀毒软件或入侵防御系统(IPS)警报,并且迅速有人在较短的时间内寻找。确保负载编码和加密良好通常可以确保其绕过大多数杀毒软件解决方案,但出站连接可能仍然会被 IPS 标记。

有这个选择总是值得的,最好有它而不需要它,也比需要它而没有它要好。

WiFi Pineapple

我已经提到过这个疯狂的小魔盒,所以显然我真的很喜欢它们。它绝对是一个有用的设备,尽管它可能不符合经典社会工程的范畴。

如果您曾经连接到开放的无线网络,那么使用的设备将在过去的一天结束后继续搜索该网络。 Pineapple 利用了这一“特性”,通过响应声称是该接入点的探测请求来进行攻击。此时,客户端连接,通常受害者并不知情。现在,您就坐在了这个连接的“中间”,可以运行数据包捕获或重定向流量,甚至伪造域名服务(DNS)响应。显然,这是非常强大的,尤其是放在错误的手中!

对于社会工程师来说,非常重要的是要小心如何使用这些数据以及要注意什么。尽量避免陷入个人数据被捕获的境地,从而违反了一些法律。

同样地,虽然这不严格属于社会工程领域,但在混合评估中,它是一种非常有用的工具!

WiFi Pineapple 可以从 Hak5 购买 - hakshop.myshopify.com/products/wifi-pineapple。售价$89.99,绝对物有所值。

概要

本章涵盖了使用各种技术类型来增强评估的内容。这包括了在执行参与的物理部分时遇到的一些挑战。物理部分是指顾问到达目标现场以获取未经授权的访问权限的地方。

我们还研究了与连接到物理网络相关的挑战,包括使用端口测试工具和网络书,以及涵盖了在现场时解决端口安全和缺乏 DHCP 的一些想法。

下一步是远程连接到网络的概念。这通常涉及连接到目标网络后在现场留下一个称为“dropbox”的设备。

我们仔细研究了使用树莓派构建我们自己的 3G 可用 dropbox。这包括增加诸如 LCD 屏幕显示连接状态等改进。然后,我们考虑了为设备添加 OpenVPN 支持,本质上为我们提供了对目标网络的不受限制的访问。

接下来,我们讨论了一些替代的 dropbox 想法,其中一些在最近的新闻媒体中受到了广泛关注。

为了总结本章,我们还介绍了一些可以在参与中使用的小工具和工具,包括键盘记录器、Teensy 和音频记录。

我真诚地希望你花时间建立自己的 dropbox。这将确实使你的评估与竞争对手区别开来。

下一章将重点介绍评估的主要成果,即客户报告。

以用它来入侵内部系统并创建一个反向隧道回总部。当然,这种攻击依赖于找到一个未锁定的系统或说服其他人运行负载。无论如何,它可以提供与“投递盒”相同级别的访问权限,而不会被发现的风险。不过,当接待员拿到一个 USB 棒时,没有什么比一个杀毒软件通知更能表明“请叫安保”了。

其他有用的小工具

我喜欢小工具,从这一整章节你可能已经能够看出来了!我喜欢制造它们,调整它们,损坏它们,并让它们做一些它们本不应该做的事情。如果一切都只是按照说明书上说的那样,那会有多无趣呢?这可能就是我以我的职业为乐的原因。除了我们已经讨论过的内容,还有一些其他在社会工程学中必备的有用小工具。让我们来看看它们。

键盘记录器

键盘记录器在各种形式上已经存在很长时间了。它们通常是一个小设备,位于键盘和计算机之间,用于捕获数据,比如每次按键。它们有 USB 和 PS2 两种格式,尽管在任何现代环境中可能很难找到 PS2 鼠标和键盘,但大多数信用卡设备使用 PS2 连接。

尽管它们非常古老,但在社会工程学中仍然异常有用。这主要原因是它们非常小,通常可能多年都不会被员工发现。尽管没有人会想要让它在那里放这么长时间。它们也非常简单快速安装,这在社会工程学中总是一个优点,因为时间几乎肯定会很紧张。

键盘记录器的主要挑战在于需要返回目标机器来取回它们,即使这样,谁知道它们会捕获到什么。目的是捕获系统的凭证,这些凭证可以在整个过程中使用,只要选择的机器看起来正在使用,那就成功了!

购买 USB 键盘记录器时要小心,确保它看起来像图 12.13 中所示的那样。

[外链图片转存中…(img-AfybnOrI-1713687080115)]

图 12.13 一个典型的 USB 键盘记录器。

请注意它有两个 USB 连接,一个插入目标计算机,另一个供键盘插入。很多人在出售一个基本上只是一个带有一些键盘记录软件的 USB 棒的“键盘记录器”。基本上,这样的一个可以很容易地使用 Metasploit 或社会工程工具包制作。

这种类型的键盘记录器的问题在于它们需要在目标主机上安装服务,这需要管理员权限。换句话说,它们部署速度慢且笨重。它们更多地被用于监控而不是社会工程的角度。

录音设备

有很多商店出售音频监听设备。这些设备可以根据移动或声音触发录制。同样,留下设备的问题在于必须恢复才能访问录制的数据,就像键盘记录器一样。另一个想法是将 USB 麦克风添加到 RaspberryPi 的 Dropbox 中。然后可以用它来记录到本地文件,可以通过 OpenVPN 下载。甚至添加摄像头,这样目标组织就有了眼睛。在敏感区域或会议室中,“dropbox” 将特别有用。

Teensy USB

Teensy USB 基本上是一个小型的 USB 存储设备,被系统识别为人机接口设备,换句话说,一个键盘。该设备是可编程的,可以发出您需要的任何命令或一组按键。由于它被识别为键盘,它适用于所有类型的系统。

作为安全专业人员,这个功能集通常被用来妥协工作站和服务器。

更好的是,社会工程工具包支持创建与 Teensy 兼容的 Metasploit 负载。所需的只是在某处创建一个监听器,然后将 Teensy 插入目标主机。

恶意的 USB 存储设备

值得注意的是,如果发现了一个未锁定的工作站,随时准备好一个恶意的 USB 存储设备是值得的。快速运行负载,然后在短时间内与总部的团队建立一个反向会话。

社会工程工具包支持生成利用 Autorun 的恶意 USB 存储设备,作为执行的方法。尽管如此,这种行为的通常风险仍然存在。这可能会触发杀毒软件或入侵防御系统(IPS)警报,并且迅速有人在较短的时间内寻找。确保负载编码和加密良好通常可以确保其绕过大多数杀毒软件解决方案,但出站连接可能仍然会被 IPS 标记。

有这个选择总是值得的,最好有它而不需要它,也比需要它而没有它要好。

WiFi Pineapple

我已经提到过这个疯狂的小魔盒,所以显然我真的很喜欢它们。它绝对是一个有用的设备,尽管它可能不符合经典社会工程的范畴。

如果您曾经连接到开放的无线网络,那么使用的设备将在过去的一天结束后继续搜索该网络。 Pineapple 利用了这一“特性”,通过响应声称是该接入点的探测请求来进行攻击。此时,客户端连接,通常受害者并不知情。现在,您就坐在了这个连接的“中间”,可以运行数据包捕获或重定向流量,甚至伪造域名服务(DNS)响应。显然,这是非常强大的,尤其是放在错误的手中!

对于社会工程师来说,非常重要的是要小心如何使用这些数据以及要注意什么。尽量避免陷入个人数据被捕获的境地,从而违反了一些法律。

同样地,虽然这不严格属于社会工程领域,但在混合评估中,它是一种非常有用的工具!

WiFi Pineapple 可以从 Hak5 购买 - hakshop.myshopify.com/products/wifi-pineapple。售价$89.99,绝对物有所值。

概要

本章涵盖了使用各种技术类型来增强评估的内容。这包括了在执行参与的物理部分时遇到的一些挑战。物理部分是指顾问到达目标现场以获取未经授权的访问权限的地方。

我们还研究了与连接到物理网络相关的挑战,包括使用端口测试工具和网络书,以及涵盖了在现场时解决端口安全和缺乏 DHCP 的一些想法。

下一步是远程连接到网络的概念。这通常涉及连接到目标网络后在现场留下一个称为“dropbox”的设备。

我们仔细研究了使用树莓派构建我们自己的 3G 可用 dropbox。这包括增加诸如 LCD 屏幕显示连接状态等改进。然后,我们考虑了为设备添加 OpenVPN 支持,本质上为我们提供了对目标网络的不受限制的访问。

接下来,我们讨论了一些替代的 dropbox 想法,其中一些在最近的新闻媒体中受到了广泛关注。

为了总结本章,我们还介绍了一些可以在参与中使用的小工具和工具,包括键盘记录器、Teensy 和音频记录。

我真诚地希望你花时间建立自己的 dropbox。这将确实使你的评估与竞争对手区别开来。

下一章将重点介绍评估的主要成果,即客户报告。

相关文章
|
28天前
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
56 1
ROS2教程02 ROS2的安装、配置和测试
|
13天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
40 5
|
27天前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
24 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
28天前
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。
|
2月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
63 2
|
2月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
66 3
|
2月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
259 5
|
2月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
50 6
|
2月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
31 2
|
2月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
【7月更文挑战第11天】页面对象模型(POM)通过Page Factory在Java Selenium测试中被应用,简化了代码维护。在POM中,每个网页对应一个Page Class,其中包含页面元素和相关操作。对比之下,非POM实现直接在测试脚本中处理元素定位和交互,代码可读性和可维护性较低。
28 0