捐血一袋救人一命

江蘇拙政園

江蘇 拙政園

全家福

日本 和歌山城

賞楓之旅

千燈 夕照

水鄉千燈

蘆洲 微風運河

破曉時分

顯示具有 windows 標籤的文章。 顯示所有文章
顯示具有 windows 標籤的文章。 顯示所有文章

2024年7月18日 星期四

以 Windows 內建的 AppLocker 來管制使用者執行/安裝應用程式

AppLocker 是一個用來管制電腦可以運行的程式、Installer(.msi)、指令碼(.bat, .cmd, .vbs, .ps1, .js,...)、DLL、封裝的應用程式(.app, .appx)的服務。 

它從 Windows Server 2008 R2/Windows 7 就已經存在,但是卻很少人使用它。

其實搞懂它之後,它就是免費強大的資安管理系統!

要使用 AppLocker,有一個必要條件,Windows 10 版本需要更新到 22H2 版本以後,不然即使設定好相關的政策與服務,AppLocker 也不會生效!

AppLocker 要依靠 AppIDSvc 服務(Application Identity),看名字就知道是用來識別應用程式的服務 。

但是,在Windows 10 的服務管理,卻無法設定該服務於開機時自動啟動! 
網路上多是叫你用 sc.exe 來設定該服務
sc config appidsvc start=auto
或是去修改機碼
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AppIDSvc] "Start"=dword:00000002
其實 AppIDSvc 是由 AppID 服務控制,只要設定 AppID 開機自動啟動,AppIDSvc 開機就會自動啟動(但是服務啟動類型仍顯示為手動啟動) 你可以使用
sc config appid start=auto
或是使用 Powershell
Set-Service -Name AppID -Startup Automatic


注意:這個 AppID 在服務裡是找不到的!所以你沒辦法用服務管理 GUI 來維護。(個人猜測,本來是要在 AD 環境管理的;但是我是沒有AD的環境,只能這樣處理)

當你重新開機,讓 AppID & AppIDSvc 服務啟動之後

你可以透過 c:\windows\system32\secpol.msc 啟動 本機安全性原則管理程式。

安全性原則 > 應用程式控制原則 > AppLocker

它分成四大類可以運行的程式

  1. 可執行檔規則
  2. Windows Installer 規則
  3. 指令碼規則
  4. 已封裝的應用程式規則

這四項當中,如果都沒有任何規則時,預設是全部允許執行!

但是,當你設定有任何一個規則,預設是全部不允許!所以你要做的就是設定哪些程式允許被執行!


要讓所有人可以正常運行Windows基本功能,請在這四大項,建立預設規則(D)

 

另外,當你要設定拒絕規則時,請不要使用內建的 Users 群組名稱,這會造成連管理者都被拒絕執行!請務必自行建立一個新群組名稱,然後把使用者帳號加入群組,然後設定該群組拒絕執行。


AppLocker

Powershell cmdlet for AppLocker

2024年6月28日 星期五

Windows 沙箱環境設定檔

沙箱環境設定檔 Sample

將XML 內容存成副檔名為 ,wsb 設定檔,點擊設定檔,就可以按照設定開啟沙箱

<!-- 副檔名 .wsb -->
<Configuration>
<!-- 設定是否使用獨立顯卡晶片 -->
<VGpu>Default</VGpu>
<Networking>Default</Networking>
<!-- 將本機網路對應到沙箱 -->
<MappedFolders>
	<MappedFolder>
		<!-- 本機路徑 ->>
		<HostFolder>D:\Downloads\Portable Apps</HostFolder>
		<!-- 是否設定唯讀 -->
		<ReadOnly>true</ReadOnly>
	</MappedFolder>
</MappedFolders>
<!-- 啟動沙箱時,要執行的程式 -->
<LogonCommand>	
	<Command>explorer.exe C:\Users\WDAGUtilityAccount\Desktop\Portable Apps\4K Video Downloader Portable v4.12.5.3670</Command>
	<Command>explorer.exe C:\Users\WDAGUtilityAccount\Desktop\Portable Apps\Musify\Musify.exe</Command>
</LogonCommand>
</Configuration>

Windows電腦認證管理員

Windows認證管理員

控制台 > 使用者帳戶 > 認證管理員

不知何時,Windows Update 之後,原先儲存的遠端桌面密碼都沒用了,每次登入都要手動輸入密碼,真的很煩!
使用 cmdkey 指令去查詢,會發現原先儲存的密碼類型,都變成網域密碼,微軟真的很雞婆

讀取目前所有遠端桌面(Terminal Service)的認證清單,並全部移除

$(cmdkey /list:TERMSRV/*) | Where-Object { $_ -match "目標: " } | ForEach-Object {
    $target = $_
    $target = $target -replace "目標: ","" -replace " ",""
    (cmdkey /delete:$target)
}

重新用一般標準方式儲存,類型會是標準

cmdkey /generic:TERMSRV/[IP] /user:[ACCOUNT] /pass:"[PASSWORD]"

讀取目前遠端桌面所有認證資訊

$Patten = "目標: |類型: |使用者: "
$List = @()
$Info = $(cmdkey /list:TERMSRV/*) | Select-String -Pattern $Patten 
For ($i=0; $i -le $Info.Count; $i+=3){
    $List += New-Object -TypeName PSOBject -Property @{
        "Target" = $Info[$i] -replace "\s+目標:\s+",""
        "Type" = $Info[$i+1] -replace "\s+類型:\s+",""
        "User" = $Info[$i+2] -replace "\s+使用者:\s+",""
    }
}
$Domain = $List | Where-Object { $_.Type -eq "網域密碼" }
If ($Domain.Count -eq 0){
    $List | Sort-Object -Property Target
}Else{
    ForEach($Key in $Domain){
        (cmdkey /delete:$Key.Target)
    }
}

2024年4月2日 星期二

VMware Workstation 與 Hyper-V 混合環境

VMware Workstation 與 Hyper-V 共存於 Windows 10 Pro x64 上的奇異狀況

VMware Workstation 要與 Hyper-V 共存於 Windows 10 Pro x64 上需要一番設定

但我今天不是要講這個設定,而是講網路的奇怪狀況

我建立了一個 Ubuntu Desktop Guest,採用 Bridge 模式。
然後看到 Ubuntu Desktop 也取得了與 Win 10 Pro 同網段的 IP Address

這台 Ubuntu Desktop 可以連接到網路上任何其他的電腦,唯獨無法連接到 Win 10 Host。

  1. Ubuntu Desktop Guest 與 Win10 Pro Host互 ping 不到
  2. Ubuntu Desktop ufw/iptables 都沒有設定啟用
  3. Win 10 Pro 防火牆的 ping 規則也有啟用

檢查 VMware Virtual Network Editor 的網路設定,看到 VMnet0 Type Bridge Bridged to 我的 Win 10 Pro 實體網卡名稱 Realtek PCIe GbE Family Controller 看起來也沒錯

突然心血來潮,在命令提示字元下,執行 ipconfig /all
檢查 IP 設定,卻發現Win 10 Pro 取得 DHCP 的網卡是 Hyper-V Virtual Ethernet Adapter #4
而 Realtek PCIe GbE Family Controller 的 IP 卻是 169.254.199.175…

然後我在 VMware Virtual Network Editor 調整 Bridged to Hyper-V Virtual Ethernet Adapter #4 之後,Ubuntu Desktop Guest 與 Win10 Pro x64 就可以正常互連了

至於 Hyper-V Virtual Ethernet Adapter #4 虛擬網卡是如何喧賓奪主,搶走 Realtek PCIe GbE Family Controller 實體網卡的 IP,就不得而知了

我發現以下狀況:

Hyper-V Virtual Ethernet Adapter #4 的 MAC Address ,居然跟 Realtek PCIe GbE Family Controller 的 MAC Address 一模一樣!難怪 DHCP Server的 IP 會被虛擬網卡搶走。

在 Hyper-V 管理員 的 "虛擬交換器管理員",當我把虛擬交換器 Brideg 的外部網路取消掉,改為內部網路之後,Hyper-V Virtual Ethernet Adapter #4 就消失了,然後我的 Realtek PCIe GbE Family Controller 實體網卡就可以正常取得 IP了。
但是這樣的缺點,就是區域網路的電腦,無法連線到我電腦上的 Hyper-V 虛擬機

如果我點選外部網路,並選取 Realtek PCIe GbE Family Controller,Hyper-V 就把我整台電腦的區域網路連線給斷了!除非我勾選 "允許管理作業系統共用此網路介面卡(M)" !

遇到這麼流氓的 Hyper-V,只好把它卸除了,雖然不能用沙箱,也不能用 WSL,也不能用 Docker Desktop....