본문 바로가기
프로그래밍/해킹

Command Injection for Windows

by 만디기 2024. 7. 5.

- 리눅스와 윈도우 모두 운영 체제의 상태를 확인하고, 조작할 수 있도록 관리 명령어들을 제공한다.

- 리눅스에서는 기본적으로 명령어와 스크립트를 실행하는 데에 있어 어떠한 제약도 존재하지 않지만 윈도우는 윈도우 디펜더 (Windows Defender)가 악성 스크립트를 감지하고 이를 실행하지 않는다. 따라서, 윈도우 환경에서 리버스 셸을 통한 공격을 수행하려면 윈도우 디펜더 우회는 필수이다.

(ex) Get-Random 함수를 이용하여 해당 값이 1보다 큰 값인지 확인한 후 리버스 셸 코드 실행

▶ 윈도우 디펜더는 해당 조건문이 함수 실행 결과에 영향을 받는 것으로 판단하여 스크립트의 실행을 허용함(윈도우 디펜더 버전에 따라 될 수도 있고 안 될 수도 있을 것 같다...)

 

1) 윈도우 메타 문자

Linux Windows (cmd, powershell) 설명
-A, --A /c 커맨드 라인 옵션
$PATH %PATH% 환경 변수
$ABCD $ABCD (powershell only) 쉘 변수
;
  • & (cmd only)
  • ; (powershell only)
명령어 구분자
echo $(id) for /f "delims=" %a in ('whoami') do echo %a 명령어 치환
> /dev/null
  • > NUL (cmd only)
  • | Out-Null (powershell only)
출력 제거
command || true
  • command & rem (cmd only)
  • command -ErrorAction SilentlyContinue (powershell Cmdlet only)
command 명령어 오류 무시

 

2) 윈도우 명령어

Linux Windows (cmd, powershell) 설명
ls dir 디렉토리(폴더) 파일 목록 출력
cat type 파일 내용 출력
cd cd 디렉토리(폴더) 이동
rm del 파일 삭제
mv move 파일 이동
cp copy 파일 복사
ifconfig ipconfig 네트워크 설정
env, export set 환경변수 설정

'프로그래밍 > 해킹' 카테고리의 다른 글

x86 어셈블리  (0) 2024.07.06
x86-64 아키텍처 정리  (0) 2024.07.05
Shell Code 앞에 붙는 접두사에 대한 고찰.  (0) 2024.07.04
ExploitTech: Command Injection for Linux  (0) 2024.07.04
phpMyRedis  (0) 2024.07.03