2010년 11월 19일 금요일

forfiles 사용법

C:\Users\Administrator>forfiles /?

FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

설명:
파일(또는 파일 집합)을 선택하고 파일에 명령을
실행합니다. 일괄 작업에 유용합니다.

매개 변수 목록:
/P pathname 검색을 시작할 경로를 지정합니다.
현재 작업 디렉터리(.)가 기본
폴더입니다.

/M searchmask 검색 마스크에 따라 파일을 검색합니다.
'*'이 기본 검색 마스크입니다.

/S 하위 폴더를 포함하도록
지정합니다. 예, "DIR /S"

/C command 각 파일에 실행할 명령을 지정합니다.
명령 문자열을 큰따옴표로 묶어야
합니다.

"cmd /c echo @file"이 기본 명령입니다.

명령 문자열에 다음 변수를 사용할 수
있습니다.
@file - 파일 이름을 반환합니다.
@fname - 확장명 없이 파일 이름을
반환합니다.
@ext - 파일의 확장명만
반환합니다.
@path - 파일의 전체 경로를 반환합니다.
@relpath - 파일의 상대 경로를
반환합니다.
@isdir - 파일 형식이 디렉터리인 경우 "TRUE"를
반환하고 파일인 경우 "FALSE"를 반환합니다
@fsize - 파일의 크기(바이트)를
반환합니다.
@fdate - 파일을 마지막으로 수정한 날짜를
반환합니다.
@ftime - 파일을 마지막으로 수정한 시간을
반환합니다.

명령줄에 특수 문자를 포함하려면
0xHH 형식의 16진수 코드(예, 탭은 0x09)를
사용하십시오. 내부 CMD.exe 명령
앞에는 "cmd /c"를 사용해야
합니다.

/D date 지정한 날짜와 마지막 수정한 날짜가 늦거나
같은(+) 또는 빠르거나 같은(-) 파일을
찾습니다.
날짜 형식은 "yyyy-MM-dd"입니다.
또한 마지막 수정한 날짜가 현재 날짜에
"dd"일을 더한 날짜보다 늦거나 같은(+)
또는 현재 날짜에서 "dd"일을 뺀 날짜보다
작거나 같은(-) 파일을 찾습니다.
유효한 "dd" 범위는 0에서 32768까지입니다.
부호를 지정하지 않으면 "+"가 기본값입니다.

/? 이 도움말 메시지를 표시합니다.

예:
FORFILES /?
FORFILES
FORFILES /P C:\WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C:\ /S /M *.bat
FORFILES /D -30 /M *.exe
/C "cmd /c echo @path 0x09 was changed 30 days ago"
FORFILES /D 2001-01-01
/C "cmd /c echo @fname is new since Jan 1st 2001"
FORFILES /D +2010-11-19 /C "cmd /c echo @fname is new today"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"


ex:

Delete the log if it is is 7 days old or older:
FORFILES /p D:\Logs\LogFiles\W3SVC3 /m *.log /d -7 /c "cmd /c del @file"

Print a warning if the testfile is 5 days old or older:
FORFILES /m testfile.txt /c "cmd /c echo file is too old" /d -5

Delete the testfile if it is is 5 days old or older:
FORFILES /m testfile.txt /c "cmd /c Del testfile.txt " /d -5

Find .xls file that were last modified 30 days ago or longer
FORFILES /M *.xls /C "cmd /c echo @path was changed 30 days ago" /D -30

List the size of all .doc files:
FORFILES /S /M *.doc /C "cmd /c echo @fsize"

2005년 11월 9일 수요일

Windows XP 사진 및 팩스 뷰어 삭제

Windows XP에는 사진 및 팩스 뷰어라는 이미지 유틸리티가 포함되어있다. MS에서 제공하는 대부분의 프로그램이 무늬만 제공하는 반면 이 유틸리티는 이미지 보기/출력 유틸리티로서 상당한 기능을 제공한다.


그러나 대부분의 사용자들은 자신만의 이미지 유틸리티(예: ACDSee)를 이미 가지고 있으며, 대분분의 경우 사진 및 팩스 뷰어보다 훨씬 막강한 기능을 가지고 있다. 또한 이 유틸리티의 문제점은 설다 다른 유틸리티를 기본 이미지 프로그램으로 설정해도 항상 이 사진 및 팩스 뷰어가 실행된다는 점이다.
이러한 문제는 이 사진 및 팩스 뷰어가 다른 이미지 뷰어의 확장자 연결을 가로채서 실행하기때문에 발생한다. 이 문제를 해결하는 방법은 다음과 같다.

  1. 사진 및 팩스 뷰어의 확장자 가로채기 막기
    사진 및 팩스 뷰어
    를 그대로 사용하면서 확장자 가로채기만 막고 싶다면 다음 절차를 따른다.
    1. 시작/실행/regedit를 입력하고 확인을 클릭한다.
    2. 다음 레지스트리로 이동한다.
      HKEY_CLASSES_ROOT\SystemFileAssociations\image\ShellEx\ContextMenuHandlers
    3. ShellImagePreview라는 하위키에 마우스 우측버튼을 클릭하고, 삭제를 클릭한다.

  2. 사진 및 팩스 뷰어 제거주1, 주2
    기본적으로 윈도우즈 XP에서 모든 이미지를 볼때 사용되는 사진 및 팩스 뷰어를 제거할 수도 있다. 절차는 다음과 같다.
    1. 시작/실행/cmd를 입력하고 확인을 클릭한다.
    2. 명령행에서 다음 명령을 입력한다.
      regsvr32 /u shimgvw.dll

주1: 사진 및 팩스 뷰어를 제거하면 미리보기가 되지않는다. 따라서 필자는 사진 및 팩스 뷰어의 확장자 가로채기 막기를 사용할 것을 권고한다.


주2: 사진 및 팩스 뷰어를 복구하려면 명령행에서 다음 명령을 실행하면된다.
regsvr32 shimgvw.dll
DLL 파일이 오류를 일으킬때
http://www.dll-files.com/dllindex/dll-files.shtml?shimgvw
C:₩WINDOWS₩SYSTEM₩ 에 복사를 한다

2005년 11월 2일 수요일

Windows NT/2k/XP/Vista/Win7 패스워드 복구

Offline NT Password & Registry Editor, Walkthrough

--------------------------------------------------------------------------------

  • This is a utility to reset the password of any user that has a valid (local) account on your Windows NT/2k/XP/Vista/Win7 etc system.
  • You do not need to know the old password to set a new one.
  • It works offline, that is, you have to shutdown your computer and boot off a floppydisk or CD or another system.
  • Will detect and offer to unlock locked or disabled out user accounts!
  • There is also a registry editor and other registry utilities that works under linux/unix, and can be used for other things than password editing.


http://pogostick.net/~pnh/ntpasswd/

2005년 10월 29일 토요일

About Nmap

nmap의 사용법


shell> nmap (스캔종류) (옵션) (호스트 or 네트워크)



<스캔종류>


-sT : 일반적인 포트 스캐너 같이 connect()함수를 사용해서 포트를 하나하나 접속해서 스캔하는 방식이다.


-sS : TCP연결은 3 way handshake를 하면서 이루어진다. 그렇기 때문에 SYN패캣을 보낸후 SYNACK패킷이 온다면 해당 포트는 열려있는 것이고 RST 패킷이 온다면 해당 포트는 닫혀있는 것이다. 그리고 SYNACK패킷을 받았다면 즉시 RST패킷을 보내서 접속을 끊어 버린다. 이렇게 스캔을 하면 접속이 이루어지지 않은 상태에서 접속을 끊었기 때문에 기록이남지 않은 경우가 대부분이다. 이를 SYN스캔이라한다.


-sF : 열려있는 포트에 FIN패킷을 보내면 무시하고 닫혀있는 포트에 보내면 RST패킷이 온다. 이 기법은 SYN패킷을 막아 놓은 방화벽의 안쪽에 있는 호스트를 스캔할 때 주로 사용된다. 이것은 유닉스 계열 OS에서만 사용가능하다. 이를 FIN스캔이라 한다.


-sP : 호스트가 살아있는지, 죽어 있는지만 ping을 이용해 체크한다.


-sU : 열려잇는 UDP 포트를 알아내는 건 쉽지 않다. UDP포트에 패킷을 보내면 패킷이 중간에 사라질 수도 있고 정상적으로 도착해도 돌아오는 패킷이 없기 때문이다. 하지만 만약에 닫혀있는 UDP 포트에 패킷을 보내면 해당 UDP포트가 unreachable 하다는 ICMP패킷이 온다. 이를 이용해 열려있는 UDP포트를 스캔할수있다.


-sR : portmap에 접근 할 수 없는 상태에서 제공하는RPC 서비슬 찾을 때사용한다.RPC서비스들은 port map에서 포트를 할당해 주지만 보통 어디쯤에 포크르 할당하는지 추정이 가능하기 때문이다.


-b : 익명 FTP서버를 이요해 그 FTP 서버를 경유해서 호스틀 스캔한다. 이를 FTP바운스 스캔이라 한다.



<옵션>


-f : SYN 스캔이나 FIN 스캔을 할 때 조각난 패킷을 사용한다.


-P0 : scan 시도전 ping을 시도 하지 않는다. icmp echo request를 허용하지 않는 호스트에 대한 scan을 시도할때 설정해야한다.


-PT : ping의 대용으로 icmp echo request를 보내는 것이 아니라 tcp packet을 보내서 해당 호스트가 작동중인지 검사한다..


-PS : TCP의 SYN 패킷을 보내서 SYNACK패킷이나 RST패킷이 오면 호스트는 살아있는 호스티이다. 이를 이용해서 호스트가 살아있는지, 죽어 있는지를 검사한다.


-PI : 호스트가 죽어있는지 , 살아 있는지를 ICMP로 검사한다.


-PB : TCP ping과 ICMP ping을 둘 다 사용해서 호스트가 죽어있는지, 살아있는지를 검사한다.


-O : TCP/IP fingerprinting을 사용해 호스트이 OS를 주청한다.


-I : RFC 1413에 정의되어있는 ident프로토콜을 사용해 열려있는 포크가 어떤 사용자에의해 열려있는지 검사한다.


-n : DNS lookup을 하지 않는다.


-R : DNS lookup을 한다.


-o <logfilename> : 스캔한 결과를 로그 파일에 남긴다(사람이 읽기 편한 포맷).


-m <logfilename> : 스캔한 결과를 로그 파일에 남긴다(컴퓨터가 일기 편한 포맷).


-i <inputfile> : 스캔할 호스트 리스트를 파일로부터 입력받는다.


-p <port ranges> : 스캔할 포크 리스트를 명시한다. 초기값은 1부터 1024까지의 포트와 services 로 명시되어있는 포트이다.


-F : services에 명시되어 있는 포트만 스캔한다.


-S <ip address> : 패킷의 source 주소를 지정한다.


-g < portnumber> : 패킷의 source 포트넘버를 지정한다.



<호스트나 네트워크>


호 스트의 경우에는 IP나 호스트명으로 지정할 수 있고 네트워크의 경우에는 '128.210.*.*','128.210.0-255.0-255','128.210.1-50,51-255.1,2,3,4,5,-255' 와 같은 포맷으로 사용해서 여러 호스트들을 지정할 수 있다.



<예>

[root@root]# nmap -sT www.test.co.kr


Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2010-11-09 13:48 KST

Interesting ports on 127.0.0.1:

Not shown: 1666 closed ports

PORT     STATE SERVICE

25/tcp   open  smtp

80/tcp   open  http

110/tcp  open  pop3

135/tcp  open  msrpc

139/tcp  open  netbios-ssn

143/tcp  open  imap

366/tcp  open  odmr

445/tcp  open  microsoft-ds

465/tcp  open  smtps

993/tcp  open  imaps

995/tcp  open  pop3s

1025/tcp open  NFS-or-IIS

2301/tcp open  compaqdiag

3389/tcp open  ms-term-serv

MAC Address: 01:12:50:AB:D7:14 (Hewlett Packard)


Nmap finished: 1 IP address (1 host up) scanned in 1.707 seconds