الشبكات¶
ما هي¶
يتذكر Windows الشبكات التي انضم إليها النظام وكيفية إعداد شبكته.
SOFTWARE:- ملفات تعريف الشبكات (
NetworkList\Profiles): ملف لكل شبكة اتصل بها النظام، مع اسمها (SSID لشبكة Wi-Fi)، وفئتها (عامة، خاصة، مجال)، ونوع الاتصال (سلكي، لاسلكي، VPN، نطاق عريض للجوال)، ووقت أول وآخر اتصال للنظام بها. - التواقيع (
NetworkList\Signatures): ما يعرّف كل شبكة، مثل عنوان MAC الخاص بالبوابة ولاحقة DNS. - بطاقات الشبكة (
NetworkCards): المحوّلات. SYSTEM(لكل مجموعة تحكم):- واجهات TCP/IP: العناوين، وخادم DHCP وعقد الإيجار، وخوادم DNS، والمجال.
- المشاركات التي يتيحها النظام (
LanmanServer\Shares). - وكلاء المنافذ (
PortProxy): الأنفاق التي يُعدّهاnetsh interface portproxy، والتي يستخدمها المهاجمون للتنقل المحوري (pivot) وللوصول إلى RDP عبر منفذ آخر. - المسارات الدائمة.
- المنطقة الزمنية، التي تحوّل الأوقات المحلية لملفات التعريف إلى UTC.
أفضل استنتاج: اتصل النظام بشبكة تحمل هذا الاسم وهذه البوابة، أول مرة وآخر مرة في هذين الوقتين. وكان لديه هذا العنوان من خادم DHCP هذا، وكان يتيح هذه المشاركات والأنفاق عند حفظ الخلية. ولا يحدد اسم الشبكة وحده مكانها: فكثير من الشبكات تُسمى "Network" أو تتشارك SSID.
الموقع¶
C:\Windows\System32\config\SOFTWARE
Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID}
ProfileName, Description, Category, NameType, Managed, DateCreated, DateLastConnected
Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed|Unmanaged\<signature>
ProfileGuid, DefaultGatewayMac, DnsSuffix, FirstNetwork
Microsoft\Windows NT\CurrentVersion\NetworkCards\<n> ServiceName, Description
C:\Windows\System32\config\SYSTEM (ControlSet00N\…)
Services\Tcpip\Parameters\Interfaces\{GUID} IP, DHCP, DNS, lease times
Services\LanmanServer\Shares one value per share
Services\PortProxy\v4tov4|v4tov6|v6tov4|v6tov6\tcp listen = connect
Services\Tcpip\Parameters\PersistentRoutes destination,mask,gateway,metric
Control\TimeZoneInformation
اجمع الخليتين مع سجلات المعاملات الخاصة بهما. وخلية SYSTEM مطلوبة لتحويل أوقات ملفات التعريف إلى UTC.
تحذيرات للمحلل¶
- أوقات ملفات التعريف محلية. يُكتب
DateCreatedوDateLastConnectedبالتوقيت المحلي للنظام. - يحتفظ
FirstConnectedLocalوLastConnectedLocalبهما كما وُجدا. - يحوّلهما
FirstConnectedUTCوLastConnectedUTCباستخدام المنطقة الزمنية الموجودة في خلية SYSTEM للنظام (TimeZone) وقاعدة التوقيت الصيفي الخاصة بها. - الوقت السابق لتغيير المنطقة الزمنية، أو من سنة ذات قاعدة توقيت صيفي أخرى (التواريخ الأمريكية قبل 2007)، قد ينحرف بمقدار الفرق.
- من دون خلية SYSTEM قابلة للقراءة ومجموعة تحكم حالية صالحة، لا تُعطى إلا الأوقات المحلية. ولا توجد لفجوات التوقيت الصيفي والساعات المكررة الملتبسة طوابع زمنية UTC وحيدة مثبتة: يُترك UTC فارغًا ويشرح
Problemsهذا القيد. كما تبقى الإزاحات أو التواريخ غير الصالحة دون تحويل. - الأول والأخير فقط. لكل ملف تعريف اتصال أول واحد واتصال أخير واحد، لا كل اتصال. وعادةً ما يطابق آخر كتابة لمفتاح ملف التعريف آخر اتصال.
- الأسماء تتكرر. يسمّي Windows الشبكات السلكية غير المُدارة "Network" و"Network 2" وهكذا.
ومعرّفات SSID لشبكات Wi-Fi ليست فريدة. استخدم
GatewayMacوDnsSuffixللتمييز بين الشبكات، و اربطها بسجلات DHCP وجرد الأصول. وعنوان MAC للبوابة ليس بالضرورة BSSID لنقطة وصول Wi-Fi، ولا يثبت وحده الموقع المادي. - المشاركات والوكلاء والمسارات إعدادات: فقد تُعدّ مشاركة أو وكيل منفذ دون أن يُستخدم أبدًا. وليس لكل قيمة وقت خاص بها؛ وآخر كتابة للمفتاح هي وقت تغيّر أي منها.
- الواجهات: مفتاح الواجهة تحت GUID بلا عناوين هو محوّل غير مُعدّ. ومع DHCP، تكون العناوين هي عناوين آخر عقد إيجار. ولا يُعرض العنوان الثابت المتبقي من قبل DHCP على أنه قيد الاستخدام.
- مجموعات التحكم: افتراضيًا تُقرأ مجموعة التحكم التي استخدمها Windows آخر مرة. ويقرأ
--all-control-setsكل مجموعة، مما قد يُظهر مشاركة أو وكيلًا أُزيل من المجموعة الحالية.
التحليل باستخدام Juntei¶
Usage: juntei parse-registry networks <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SOFTWARE and SYSTEM hives
-f, --file <FILE> Parse one hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Filtering:
--all-control-sets Every control set, not only the one in use
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry networks -d evidence/ -o networks.csv
juntei parse-registry networks -d evidence/ -t jsonl \
| jq 'select(.Source == "port_proxy" or .Source == "share")'
يسرد الملخص الشبكات التي اتُّصل بها مؤخرًا (الأحدث أولًا)، وكل مشاركة ووكيل منفذ ومسار دائم.
حقول الإخراج¶
| الحقل | التفسير |
|---|---|
Host، SourcePath |
المضيف، والخلية. |
ControlSet، IsCurrentControlSet |
لسجلات SYSTEM: مجموعة التحكم، وما إذا كانت هي التي استخدمها Windows آخر مرة. |
Source |
network_profile، network_signature (توقيع لا يملكه أي ملف تعريف)، network_card، interface، share، port_proxy، route. |
ProfileName |
اسم ملف التعريف (SSID لشبكة Wi-Fi)؛ ووصف التوقيع. |
Category، ConnectionType |
public، private، domain؛ wired، wireless، vpn، mobile_broadband (وإلا فالرقم). |
FirstConnectedUTC، LastConnectedUTC |
DateCreated وDateLastConnected بعد تحويلهما إلى UTC باستخدام TimeZone. |
FirstConnectedLocal، LastConnectedLocal |
القيمتان نفسهما كما وُجدتا (بالتوقيت المحلي، حتى الملّي ثانية). |
TimeZone |
المنطقة الزمنية المستخدمة في التحويل. |
GatewayMAC، DNS-Suffix |
عنوان MAC للبوابة ولاحقة DNS لتواقيع ملف التعريف (| بين القيم المتعددة). |
InterfaceGUID |
معرّف GUID للواجهة؛ وServiceName لبطاقة الشبكة. |
IP-Address، DhcpServer، LeaseObtainedUTC، LeaseExpiresUTC |
عناوين الواجهة المستخدمة، وخادم DHCP وعقد الإيجار. |
ShareName، SharePath |
المشاركة والمجلد الذي تتيحه. |
ListenAddress، ListenPort، ConnectAddress، ConnectPort |
وكيل منفذ: ما يستمع عليه وإلى أين يعيد التوجيه. |
Route |
مسار دائم كما هو مخزن: destination,netmask,gateway,metric. |
Details |
قيم أخرى، بصيغة Name=Value; … (CSV) أو كائن (JSON): وصف ملف التعريف، وManaged، والاسم الأول ومفاتيح التواقيع؛ ومحوّل الواجهة (من NetworkCards)، والأقنعة، والبوابات، وخوادم DNS والمجال؛ ونوع المشاركة وملاحظتها وحقولها الأخرى؛ ونوع الوكيل؛ وأجزاء المسار. |
KeyPath، ValueName، KeyLastWrittenUTC |
المفتاح، والقيمة للمشاركة أو الوكيل أو المسار، وآخر كتابة للمفتاح. |
DataRaw |
بايتات يتعذر فك ترميزها: وقت ليس SYSTEMTIME صالحًا، أو مشاركة ليست قائمة سلاسل نصية. |
TransactionLogStatus، LogsApplied |
سياق استعادة سجل Windows. |
Problems |
قيم من نوع أو حجم خاطئ، وتواريخ مستحيلة، وأسماء لا تتوافق مع صيغتها. |
استراتيجية التحقيق¶
- رتّب ملفات التعريف حسب
LastConnectedUTCوافحص الشبكات المحيطة بالحادثة: شبكات Wi-Fi غير المعروفة، ونقاط الاتصال الفعالة للجوال، وشبكات VPN. - استخدم
GatewayMacوDnsSuffixللتمييز بين الشبكات التي تحمل الاسم نفسه، ولمطابقة شبكة عبر عدة مضيفين. - افحص كل وكيل منفذ ومشاركة. فوكيل منفذ إلى المنفذ 3389 أو 445 لمضيف داخلي، أو مشاركة
لمجلد تجهيز (
C:\ProgramData،C:\Users\Public)، يمثل خيطًا للتحقيق. واربط ذلك بسجلات الأحداث (إنشاء عمليةnetsh، وأحداث المشاركة 5142/5144) وأوقات المفاتيح. - استخدم عناوين الواجهات وأوقات عقود الإيجار لتحديد موقع المضيف على الشبكة، وطابقها مع سجلات جدار الحماية وDHCP والوكيل.
- استخدم
--all-control-setsوparse-registry read --recover-deletedللمشاركات والوكلاء وملفات التعريف المُزالة.