항상 보안 사고는 해커가 다 뒤적거리고 나온 뒤에 알게 되거나 혹은 모르고 지나는 경우가 대부분일 겁니다.

또한 해킹사고 후 가장 중요한 것은 침입 시간입니다. 시간을 알 수 있으면 역추적이나 분석에 많은 도움이 되기 때문에

굉장히 중요한 단서입니다.


윈도우 로그인 시 배치 파일을 이용하여 메일 발송하는 것을 해보고자 합니다.


> 준비물

 

- 메모장
- Netcat (NC)

- SMTP 서버


SMTP 서버는 설치 되어 있다는 전제하에 설명 드리겠습니다.

Netcat은 줄여서 NC 라고 많이 쓰고 있는데 간단히 설명 드리면 네트워크를 연결을 통한 작업을 할 수 있도록 제작 된 프로그램입니다.


시나리오는

1. SMTP를 이용한 메일 발송이 가능 하도록 필요한 정보를 텍스트 파일에 저장.

2. 그 정보를 NC 프로그램을 통해서 SMTP 서버에 접속하여 메일을 발송.




배치파일 스크립트입니다.

 

@echo off

title C:\Windows\system32\cmd.exe

※ title을 넣은 이유는 cmd창이 실행되었을 경우를 대비하여 눈속임을 하기 위함입니다.



rem Create mail contents 
echo helo naver.com>> "%userprofile%\alert.txt"
echo mail from:^<Mail@Address^>>> "%userprofile%\alert.txt"
echo rcpt to:^<Mail@Address^>>> "%userprofile%\alert.txt"
echo data>> "%userprofile%\alert.txt"
echo Subject:【-ALERT-】 Server LOGIN detected - [ %COMPUTERNAME% ]>> "%userprofile%\alert.txt"
echo Login by [ %USERNAME% ] on [ %Date% %TIME% ] to Server [ %COMPUTERNAME% ]>> "%userprofile%\alert.txt"
echo .>> "%userprofile%\alert.txt"


위 부분이 메일 내용을 만드는 부분입니다. 일반 SMTP 명령어를 사용하여 메일을 보내도록 하기 위해

내용을 텍스트로 저장합니다. 여기서 중요한 점은 끝에 공백이 들어가면 오류가 나기 때문에 조심하셔야 합니다.



rem Connect smtp server and execute the script file
pushd \\ShareServer\share\nc
nc -w 2 -i 1 SMTP-Server 25 < "%userprofile%\alert.txt" > "%userprofile%\results.txt"
popd


※ 메일 발송 정보를 가지고 NC를 이용하여 SMTP 서버에 접속하여 메일을 보내는 부분입니다.

내용 중에 PUSHD/POPD 라는 명령어가 있는데 cmd를 통한 네트워크 드라이브를 잡아주는 역할을 합니다.

 

윈도우 cmd에서 UNC경로 사용하기 PUSHD/POPD



rem Delete create files
del /Q "%userprofile%\alert.txt"
del /Q "%userprofile%\results.txt"


※ 흔적을 없애기 위해 생성된 파일을 삭제합니다.




이제 배치파일을 다 만들었고 테스트도 다 끝나셨다면, 젤 중요한 로그인 할 때 배치파일이 실행 되도록 해야겠죠..


방법은 여러가지가 있을 겁니다.

1. 시작 프로그램에 등록

2. 레지스트리 시작에 등록

3. 그룹정책에 등록

4. 기타



등등 여러가지 방법을 통해서 등록을 할 수 있지만, 저는 winlogon 레지스트리에 등록하여 실행하도록 하였습니다.

(해커가 찾아서 삭제할 수 있을 거라는 가정하에.. 저 혼자 생각이지만..ㅡㅡ;)

윈도우 로그인을 할 때 winlogon 레지스트리가 실행이 됩니다.



Winlogon 레지스트리를 찾아보면, Userinit 라는 값이 있는데 이 부분에 추가를 해 놓으면 로그인 할 때 실행이 됩니다.

위치 : [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]





※ 덤으로 cmd 창 실행시 알림을 보내도록 설정 할 수도 있습니다. 위 메일 내용만 살짝 바꾸어 사용하시면 됩니다.

레지스트리에 아래 내용을 추가하시면 해커가 cmd창을 실행했을 때 메일을 받아 볼 수 있습니다.


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"AutoRun"="C:\\Windows\\System32\\\alert_cmd.bat"



▶ 참고로 기존 세션이 연결 되어 있으면 로그인 시에는 동작하지 않습니다.