Бърз и лесен начин да се направи копие на Web или FTP сайт (wget)

Понякога е удобно да свалим даден сайт за да можем да го преглеждаме по-късно време или просто за да има архив в случай на нужда. Един много лесен начин е чрез използване на командата wget.
С нейна помощ могат да се свалят файлове, да се обхождат всички директории (рекурсивно) и да се сваля цялото съдържание. Wget има версии за всички популярни операционни системи (Windows/Linux/MacOS) и инсталирането/компилирането/ е лесно.
Типично, командата за сваляне на огледално копие се използва така:

wget -m http://www.example.com
wget -m ftp://ftp.example.com

където -m (или –mirror) е опцията указваща да се прави огледално копие. Може да се добави и опция -p (–page-requisites) която осигурява свалянето на всички “вградени” картинки в кода.

Недостатък на този метод може да се посочи, че линковете в самите страници остават непроменени сочейки url адреса на сайта. Към тази опция може да се добави и -k (–convert-links) която коригира линковете в страниците така, че да сочат към локалното копие което се сваля. По този начин сайта остава “работещ” тъй като връзките сочат към сваленото копие.

Повечето сайтове съдържат файл наречен Robots.txt който указва кой части от сайта могат да бъдат проучвани или не от търсещи машини и скриптове. За да се игнорира неговоро съдържание wget може да добави опцията ‐‐execute robots=off

Богатите възможности на wget предоставят дори възможност да имитира клиент добавяйки опцията ‐‐user-agent=… ,  например:

--user-agent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

имитирайки, че това е Google bot или по следния начин:

--refer=http://google.com --user-agent="Mozilla/5.0 Firefox/4.0.1"

Ако желаете да свалите само определени файлове (например .pdf и .doc) тогава командата може да се укаже с опциията –accept (или -А):

wget -m --accept=pdf,doc http://example.com/

Ако сайта очаква автентикация тогава може да предоставите името и паролата:

wget --http-user=име --http-password=парола http://www.example.com/downloads/file.zip

Удобство е възможността да сваляте определени файлове който се различават само по номера в името като например картинки:

wget http://example.com/images/{1..20}.jpg

Основен недостатък на описания по-горе инструмент е динамичното съдържание на страниците на повечето сайтове. Използвайки множество скриптове, изпълняващи се в зависимост от действията на потребителя се “губи” съдържанието на такива сайтове и като резултат сайта частично “липсва” или не функционира правилно.

Въпреки това препоръчвам на всеки да се запознае с този мощен и безплатен инструмент който може да бъде много полезен при някой администартивни задачи.

Линкове за сваляне и допълнителна информация:

https://eternallybored.org/misc/wget/

http://sourceforge.net/projects/gnuwin32/files/wget/1.11.4-1/

http://www.labnol.org/software/wget-command-examples/28750/

https://www.gnu.org/software/wget/manual/html_node/

http://daniel.haxx.se/docs/curl-vs-wget.html

Намиране на SID на потребител в Windows (и обратно)

Понякога се налага да се открие SID-а (Security Identifier) на даден потребител. Съществуват различни начини като някой изискват да се ползват “външни” или специални инструменти. Най-простия вариант е да се използват вградените в Windows средства за откриване на SID-а. С помоща на WMI инструментариума през команден ред (WMIC) може да се разкрие тази информация по следния начин (пример за локалния акаунт Administrator):

wmic useraccount where name='Administrator' get name,sid

или

wmic useraccount where (name='Administrator' and domain='%computername%') get name,sid

Ако компютъра е част от домейн, командата може да се използва по следния начин за да се открият SID-ове на потребители от домейна:

wmic useraccount where (name='Administrator' and domain='%userdomain%') get name,sid

където променливата %userdomain% сочи името на домейна. Ако искате да изпъ;ните командата към отдалечен компютър може да се напрви така:

wmic /node:127.0.0.1 useraccount where name='Administrator' get name,sid

където вместо 127.0.0.1 пишете името или IP адреса на машината към която искате да се изпълни заявката.

Обратното преобразуване, от SID в име, може да се направи по следния начин (пример):

wmic useraccount where sid='S-1-5-21-766667225-3723723333-456456123-500' get name

За самите SID номера има “стандартизация”, но номерата им са уникални за всяка инсталация. Винаги обаче, началото и края са известни и константа.

Ето малък VBS скрипт който намира локалния администратор на системата дори и той да е преименуван:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery("Select * From Win32_UserAccount Where LocalAccount = TRUE")

For Each objAccount in colAccounts
    If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
        Wscript.Echo objAccount.Name
    End If
Next

Ако компютъра е част от домейн тогава скрипта се променя малко:

strComputer = "компютър"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery("Select * From Win32_UserAccount Where Domain = '" & strComputer & "'")

For Each objAccount in colAccounts
    If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
        Wscript.Echo objAccount.Name
    End If
Next

По същия начин, чрез използване на WMI методи може да се ползва скрипт на PowerShell или други езици за програмиране.

Тази техника може да се използва за намиране на Domain Admins, Enterprise Admins и т.н. в домейн среда. Повече информация за добре известните SID-ове се намира в линковете приложени най-долу.

Други програмки който могат да се ползват за намиране на SID-ове са:

В Registry-то на Windows също се пази информация за потребителите който са били създавани някога. Информация за техните SID-ове може да се открие по различни начини. Ето елементарен пример:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" | find "ProfileList"

Източници и допълнителна индормация:

http://www.windows-commandline.com/get-sid-of-user/

https://technet.microsoft.com/en-us/sysinternals/bb897417.aspx

http://blogs.msdn.com/b/gaurav/archive/2014/06/03/get-sid-of-the-object-registry-wmic-powershell.aspx

http://evgenii.rudnyi.ru/programming.html#sid2user

http://securityoverride.org/infusions/pro_download_panel/file.php?did=24&file_id=24

http://www.windowsecurity.com/whitepapers/windows_security/Windows-Enumeration-USER2SID-SID2USER.html

https://msdn.microsoft.com/en-us/library/cc980032.aspx

https://support.microsoft.com/en-us/kb/243330

https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649%28v=vs.85%29.aspx

http://www.windowsecurity.com/articles-tutorials/windows_server_2008_security/Well-Known-SIDs-Windows-Server-2008-R2-Active-Directory.html

https://en.wikipedia.org/wiki/Security_Identifier

Прехвърляне на Symantec Endpoint Protection 12.x клиент от Manage към Unmanage режим

В миналото, Symantec Antivirus поддържаше конфигурацията си в GRC.DAT файл. Сега конфигурацията с параметрите за свързване се поддържа в един xml файл – SyLink.xml. Когато SEP 12.x е част от централизирана среда за управление (Symantec Endpoint Protection Manager/SEPM), този файл съдържа информация за връзката към SEPM сървъра. По този начин клиента “узнава” от къде да си тегли настройките – политиките и дефинициите. Това може да се види от Help -> Troubleshooting… -> General Information.
Ако е необходимо, SEP клиента може да се “извади” и да се конфгурира да работи като самостоятелен AV клиент и да си тегли обновленията директно от Internet (от сървърите на Symantec).

За тази цел е необходимо следното:
1. От оригиналната исталация (CD/DVD, файл) копирайте някъде файла SyLink.xml. Намира се в папката с инсталацията на SEP клиента (Примерно – …Symantec_Endpoint_Protection_12.1.4_Part1_Installation_EN\SEP).

2. Спираме SEP-а чрез командата:

smc -stop

3. Изтриване на ключа от Registry който съдържа настройките:

HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\Symantec Endpoint Protection\SMC\SYLINK

4. Препокриване на файла SyLink.xml с оригиналния, взет от иснталационния диск. Обикновенно файла се намира в C:\ProgramData\Symantec\Symantec Endpoint Protection\CurrentVersion\Data\Config

5. Стартираме SEP клиента:

smc -start

Сега може да проверите резултата:

sep_self

Добре е накрая да изтриете клиента от SEPM базата тъй като той ще продължи да фигурира там.

 

Друг вариант да се осъществи всичко това е чрез иснтрумента SylinkDrop.exe, който е част от пакета на Symantec и върви с инсталационните дискове. Обикновенно той се намира на втория диск (Примерно – …Symantec_Endpoint_Protection_12.1.4_Part2_Tools_EN\SylinkDrop). Той предоставя графичен интерфейс през който могат да се избират антивирусни клиенти и да им се предават нови настройки.

 

Забележка: При преминаване на клиента в Unmanage режим той си запазва политиките който са му били установени последно от SEPM сървъра. Ако искате да промените тези политики може да направите експорт на подходяща политика от SEPM сървъра и да я импортирате на клиента.

 

Източници:
How to change managed Symantec Endpoint Protection(SEP) client to unmanaged SEP client

How to make SEP 12 RU4 Client Unmanaged

Стартиране на програма като SYSTEM акаунт в Windows 7/8

В Windows съществува акаунт с превилигировани права наречен SYSTEM. Той дава неограничени права до ресурсите на компютърта. Описаните по-долу трикове могат да бъдат
използвани за да се стартира дадена програма с контекста(и правата) на този акаунт.

Следния пример демонстрира стартиране на калкулатора в контекста на този акаунт:

cmd /c sc create -- binPath= "cmd /c start calc" type= own type= interact & net start -- & sc delete --

Поради вградения механизъм в новите версии на Windows (от Vista нататък), за изолация на графичния интерфейс от услугите, графичния интерфейс на програмата няма да се появи. Това е свързано с Interactive services dialog detection услугата и е механизъм който следва да предотвратява ескалация на привилегии. Пояснение може да се открие тук: https://msdn.microsoft.com/en-us/library/bb756986.aspx
Друг начин за достигане на SYSTEM привилегии е с помоща на PStools (SysInternals) при което получавате вече и команден ред:

C:\psexec -i -s cmd.exe

PsExec v1.71 - Execute processes remotely
Copyright (C) 2001-2006 Mark Russinovich
Sysinternals - www.sysinternals.com


Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
nt authority\system

C:\Windows\system32>

По подобен начин може да се пробва и с psexec -i -s Powershell.exe.

В Windows XP/2000/2003 може да се ползва следния елементарен начин за постигане на подобен резултат:

at 01:23 /interactive cmd.exe

като вместо 01:23 трябва да се въведе вашето текущо време +1 мин и да изчакате да се стартира задачата.

Източници:

http://forum.sysinternals.com/tip-run-process-in-system-account-scexe_topic16714.html

https://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx

http://verbalprocessor.com/2007/12/05/running-a-cmd-prompt-as-local-system/

http://blogs.msdn.com/b/patricka/archive/2010/04/27/what-is-interactive-services-detection-and-why-is-it-blinking-at-me.aspx

http://blogs.technet.com/b/ben_parker/archive/2010/10/28/how-do-i-run-powershell-exe-command-prompt-as-the-localsystem-account-on-windows-7.aspx

http://johnnycoder.com/blog/2008/11/10/run-cmdexe-as-local-system-account/

 

Разрешаване на VNC достъп до виртуална машина на ESXi

VMware Workstation предлага възможност за достъп до виртуалните машини през VNC. Подобна функционалност е налична и на ESXi сървърите макар и да няма такава опция в менютата.
По-долу ще видите инструкции как да разрешите VNC функционалност на дадена виртуална машина при ESXi 6.

1. При изключена виртуална машина, от Edit -> Options -> Advance, General -> Configuration Parameters… използвайте бутона Add Row за да добавите следните елементи:

RemoteDisplay.vnc.enabled = TRUE
RemoteDisplay.vnc.port = порт (примерно 5900)
RemoteDisplay.vnc.password = парола

 

vmware-esx-vnc1

Портовете трябва да са различни за всяка една виртуална машина. Тези промени могат да се направят и директно във .vmx файла на виртуалната машина при изключено състояние.

2. Следва да се проверят услугите на ESXi хоста от Genereal -> Security Profile, Firewall -> Properties за да се уверим, че gdbserver-а е разрешен:

vmware-esx-firewall-gdbserver

3. Включвате виртуалната машина и чрез VNC клиент пробвате да се закачите като укажете порта който сте писали в конфигурацията. Пример:

vnc-esxi

Допълнителна информация и източници:

Configuring VMware ESXi virtual machine console – VNC

Using a VNC Client to Connect to VMs in ESXi 5

VNC client connect to esxi 6 console keeps drop

Уеб-базиран интерфейс за самостоятелен ESXi сървър

vCenter сървърът предлага удобен интерфейс за менажиране на основните настройки през уеб браузър. Това е предимство тъй като се избягва специалния vSphere клиент, който трябва да се инсталира на Windows машина. Какви са опциите за самостоятелен ESXi който показва само стандартна страница?

vmware-esxi6-default

Има вариант, чрез който може да инсталирате подобна фукнционалност на самостоятелна VMware ESXi машина – ESXi Embedded Host Client (https://labs.vmware.com/flings/esxi-embedded-host-client). Тази приставка предлага основна функционалност включваща:

– създаване и управление на виртуални машини
– управление на мрежите
– управление на детайлни настройки
– и много други…

Как може да се инсталира?
Приставката представлява VIB файл който може да свалите от тук: http://download3.vmware.com/software/vmw-tools/esxui/esxui-3015331.vib
Инсталацията се прави по следния начин.

От ESXi клиента (ако има достъп до Internet):

esxcli software vib install -v http://download3.vmware.com/software/vmw-tools/esxui/esxui-3015331.vib

От локалната машина след като сте свалили файла (в /tmp примерно):

еsxcli software vib install -v /tmp/esxui.vib

или

esxcli software vib update -v /tmp/esxui.vib

За да се провери дали всичко е ок погледнете лог-а (Event) и потърсете събитие подобно на това:

vmware-esx-vib-okМоже да проверите и през командния интерфейс чрез командата:

esxcli software profile get

и да потърсите “esx-ui” в раздела с инсталираните vib-ове.

След инсталация уеб интерфейсът ще е достъпен на адрес https://<esxhost>/ui/.

Премахването на пакета става по следния начин:

esxcli software vib remove -n esx-ui

Повече информация може да намерите по-долу:
ESXi Embedded Host Client
ESXi FREE Web Client Interface

Клониране на виртуална машина без vCenter сървър

Какви са вариантите за клониране на виртуална машина?

Най-просто е през vCenter сървър, с десен бутон върху виртуалната машина да се избере “Clone” опцията. Ако, обаче ESXi-а е извън подобна инфраструктура какви са вариантите? Много просто – копиране на файлове.
След като влезете в Datastore-a на ESX/ESXi направете нова папка. Копирайте файловете през Datastore browser-a и направете Paste в новата папка. След това с десен бутон върху .vmx файла изберете “Add to  Inventory“.

vmware-esxi-add-to-inventoryТова ще добави машината в списъка с инвентара. Изберете “I Copied It” при първоначално стартиране.

vmware-esxi-q-m

Не забравяйте да промените параметрите/конфигурацията на клонираната виртуална машина за да не се получи конфликт със съществуващата.

Има ли друг начин?

Разбира се – през команден ред или чрез VMware Converter Standalone.
Стъпките за изпълнение през команден ред (от самия ESXi) са същите както по-горе:
– създавате папка на подходящото място на datastore-a (mkdir име-на-директория).
– копирате файловете от машината която искате да клонирате (vmkfstools -i /vmfs/volumes/сторидж/виртуалка/име.vmdk /vmfs/volumes/сторидж/виртуалка/име.vmdk -d thin).
– добавяте към инвентара на виртуалната машина.

VMware vCenter Converter Standalone конвертора позволява да се мигрират/клонират машини. Няма проблем да зададете източника и местонахождението на “новата” машина да се намират на един и същ ESXi сървър. Предимството на този метод е, че може да прекофигурирате машината по време на конвертирането.

Още нещо?

Да – има vCLI чрез който може да се извършат тези дейности. За повече информация виж линковете по-долу.

Повече информация:

Cloning individual virtual machine disks via the ESX/ESXi host terminal

ESXi Free Version – 3 Ways to Clone a VM

Cloning Individual Virtual Machine Disks via vMA and vCLI

Откриване на забравена парола за Wi-Fi мрежа

Ако сте записали някаква WiFi мрежа за която сте се закачали преди време и искате да я споделите с някой друг, но не се сещате, какво ще направите? В този случай инсталацията на различни допълнителни проложения който ровят в Windows ще е напълно излишно защото може да видите всички пароли за секунди без да има нужда от специални програми.
Ето няколко команди с който можете да го направите.

Първо стартирайте cmd.exe като администратор. След това трябва да се видят всички профили за безжични мрежи който са записани в Windows:

netsh wlan show profiles

След като сте идентифицирали мрежата/профила за която искате да видите паролата, напишете:

netsh wlan show profiles name="име" key=clear

където “име” е името на профила който обиукновенно е SSID-а на мрежата.
Сега остава да погледнете реда който започва с “Key content” и … готово. Това е всичко!

Търсите още информация за безжичните мрежи?

Чрез следната команда може да получите детайлна информация за мрежите около вас:

netsh wlan show networks mode=bssid

wlans
Пълна информация за WLAN настройките може да получите по следния начин:

netsh wlan show all

В Windows 7/8/10 информация за wi-fi профилите се пази в:
C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{GUID}
В Registry-то може да ровите в:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WlanSvc\Interfaces\{Interface Guid}\Profiles

Информация при WinXP може да се открие в Registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WZCSVC\Parameters\Interfaces\{Interface Guid}

Източници:
Revealing your WLAN password using netsh and PowerShell
Use PowerShell to Manage Auto-Connect Wireless Networks

Създаване на инсталационна флашка за Windows 7 (или Server 2008)

Съществуват много инструменти за редактиране и създаване на ISO CD/DVD копия който дават възможност за прехвърляне на инсталационния носител върху USB флашка. Това е много удобно, тъй като всички нови компютри поддържат подобни опции в BIOS, а и на някой по-нови компютри липсва дисково устройство и това е единствения лесен начин за инсталация. Microsoft, след излизането на Windows 7 създадоха подобно приложение наречено Windows USB/DVD Download Tool, което е напълно безплатно и може да се използва за тази цел.

win7-usb-tool

Процеса е много опростен и се извършва на няколко стъпки. Изисква се единствено да имате ISO файл на Windows 7 (или Windows Server 2008) и празна флашка с размер поне 8 GB.
Повече информация може да се намери на линковете по-долу.

Връзки:
Windows USB/DVD Download Tool
USB Tools » Microsoft USB/DVD download Tool
Windows 7 USB/DVD Download-Tool

Увеличаване на размера на систмния (или друг) дял на Windows XP/2003

Колкото и да е голям системния дял, малко помалко с времето той започва да недостига. С описания по-долу начин може да бъде разширен системния дял (обикновенно C:\) без да се използват специални платени инструменти или Live CD/USB дискове и дистрибуции.

Разгледания инструмент ExtPart е разработен от Dell и се предоставя безплатно. Може да бъде изтеглен свободно от страницата на Dell:

http://www.dell.com/support/home/us/en/19/Drivers/DriversDetails?driverId=R64398

Примера по-долу разглежда ситуацията когато вече сме разширили диска (Disk 0) с 10GB и е необходимо да се направи разширение на дяла (C:\):

expand_sys_disks

Изтеглете инструмента и го разархивирайте на произволно място на диска на машината на която трябва да бъде направена промяната. Синтаксиса на командата е следния:

ExtPart <устройство> <размер>
  устройство - у-вото което ще бъде разширявано (важи само за basic volumes)
  размер     - задава се размер в MB (megabytes)

Пример:
За увеличаване на C:\ дял с 10 GB (10240 MB) командата трябва да се зададе по следния начин:

ExtPart C: 10240

expand_c

Предимството на този инструмент е, че промяната става веднага и не е необходим рестарт на системата.

Източник:

Dell Basic Disk Expansion