☢🧑🏻💻OT Sentinel | ICS/OT Security🧑🏻💻☢
Photo
click to show
click to show
اگر تا به حال با ابزارهای شناسایی سیستمعامل مانند sinfp3 کار کرده باشید، میدانید که این ابزارها با ارسال پروبهای خاص به یک میزبان و تحلیل پاسخهای TCP/IP، به راحتی نوع سیستمعامل را تشخیص میدهند. اما تصور کنید بتوانیم درست درون هسته لینوکس، یک ماژول بنویسیم که پیش از ارسال پاسخ به سمت مهاجم یا ابزار شناسایی، بسته را به گونهای تغییر دهد که انگار یک سیستمعامل کاملاً متفاوت در حال پاسخگویی است. دقیقاً همین کار در قطعه کدی که مشاهده میکنید، انجام شده است. این ماژول کرنلی با دقت بالایی به بررسی بسته های دریافتی می پردازد و دو نوع پاسخ پروب مخصوص sinfp3 را تشخیص میدهد. نوع اول، بستهای با پروتکل TCP، طول ۴۴ بایت، و پرچم های SYN=1 و ACK=1 است و نوع دوم نیز مشابه اما با طول ۶۰ بایت است که در آن یک فیلد Timestamp نیز وجود دارد. وقتی ماژول چنین بستهای را مشاهده کند، دست به کار میشود و ابتدا با توابعی مانند set_id، set_df_bit، set_tl یا set_itl، و همچنین set_tcp_window، set_tcp_flags، set_tcp_sequence و set_tcp_ack، تمام فیلدهای کلیدی هدر IP و TCP را بازنویسی میکند
14 · 1.5K ·