Linux에서 프로세스 숨기기
왜요?
호스트의 손상 후 탐지를 피하고 누군가가 /proc
또는 ps
를 검사할 때 무해한 것으로 프로세스를 숨기려고 합니다.
언제?
호스트는 Linux이고 실행 파일은 C 또는 FFI 지원 언어입니다.
어떻게?
스푸핑할 데이터에는 두 가지 클래스가 있습니다.
호스트는 Linux이고 실행 파일은 C 또는 FFI 지원 언어입니다.
어떻게?
스푸핑할 데이터에는 두 가지 클래스가 있습니다.
/proc/pid/cmdline
의 내용 . 이것이 ps -f
로 표시되는 것입니다. /proc/pid/comm
의 내용과 /proc/pid/status
의 첫 줄입니다. 이것은 ps
없이 -f
로 나타나는 것입니다. 인 님
import os
proc NimMain() {.cdecl, importc.}
proc syscall(number: clong): clong
{.importc, varargs, header: "sys/syscall.h".}
var NR_PRCTL
{.importc: "__NR_prctl", header: "unistd.h".}: int
var PR_SET_NAME
{.importc: "PR_SET_NAME", header: "sys/prctl.h".}: int
proc main(argc: int, argv: cstringArray, envp: cstringArray): int
{.cdecl, exportc.} =
NimMain()
const FAKE_COMMAND = "spoofed"
# handles /proc/pid/comm and /proc/pid/status
discard syscall(NR_PRCTL, PR_SET_NAME, cstring(FAKE_COMMAND))
# handles /proc/pid/cmdline
let totalLength = len(argv[0])
var i = 0
for ch in FAKE_COMMAND:
argv[0][i] = FAKE_COMMAND[i]
i += 1
argv[0][i] = '\x00'
for j in i .. totalLength:
argv[0][j] = '\x00'
sleep(60000)
--nomain
로 컴파일해야 합니다. FAKE_COMMAND
보다 긴argv[0]
은 /proc/pid/environ
의 내용을 덮어쓴다는 의미입니다. 이 문제를 해결하려면 실행 파일의 이름이 스푸핑하려는 것보다 더 긴지 확인하십시오. Reference
이 문제에 관하여(Linux에서 프로세스 숨기기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fx2301/process-hiding-in-linux-5c45텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)