예전에 윈도우 패스워드를 원격으로 변경하는 툴 PsPasswd를 소개해드린 적이 있는데

2011/06/04 - [윈도우 일반] - 원격 서버 패스워드 한꺼번에 변경하기

오늘은 원격으로 명령어를 날릴 수 있는 PsExec를 소개해 드리겠습니다. 이름이 비슷한데 Sysinternals의 PsTools에 포함된 툴입니다.

PsTools
http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx

일단 PsExec는 따로 올려두겠습니다.



PsExec를 사용하여 원격으로 커맨드를 실행하기 위한 전제 조건은 다음과 같습니다.

1. 원격 컴퓨터에 시스템 기본 공유인 IPC$, ADMIN$ 둘다 있어야 한다.
2. 내장 Administrator 계정이 아닌 Administrators 그룹의 계정을 사용하려면 원격 컴퓨터에 UAC가 꺼져 있어야 한다.
3. TCP 445 포트를 사용하므로 원격 컴퓨터에 윈도우 방화벽 TCP 445 포트가 오픈되어 있어야 한다.


1번의 경우 특별한 케이스가 아니라면 대부분 만족할 것입니다. 보안상 일부러 없애는 경우가 아니라면 말이죠.



2번의 경우 UAC는 윈도우 비스타, 서버 2008 이상에서 등장하는 개념인데, 사용자 계정 컨트롤을 UAC로 줄여서 부릅니다. Administrator 계정으로 하신다면 신경쓰지 않아도 됩니다만, Administrators 그룹의 계정으로 하신다면 UAC가 반드시 꺼져 있어야 합니다.

※ UAC 확실히 끄는 방법
아래 명령어를 관리자 권한으로 실행 후 리부팅
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f


3번의 경우 TCP 445 포트를 예외 처리하기 위해서는 2가지 방법이 있는데, 파일 및 프린터 공유를 예외 체크해 주시거나, 직접 TCP 445 포트를 수동으로 오픈해 주시면 됩니다.

※ TCP 445 포트 방화벽 오픈 명령어
윈도우 비스타, 2008 이상 - 아래 명령어를 관리자 권한으로 실행 (빨간색 규칙 이름은 자유)
netsh advfirewall firewall add rule name="TCP-445" dir=in action=allow protocol=tcp localport=445
윈도우 XP, 2003 (윈도우 2003은 기본적으로 방화벽이 꺼져 있음, 빨간색 규칙 이름은 자유)
netsh firewall add portopening TCP 445 "TCP-445" enable all


이제 실전에 들어가 보겠습니다. 제 PC에서 VM으로 아래와 같이 날려봤습니다.

psexec \\서버주소 -u 계정 -p 패스워드 명령어

psexec \\192.168.0.4 -u snoopy -p 1234 cmd


위 화면은 원격 VM의 CMD 창이 뜬 것입니다. 마치 리눅스에서 텔넷이나 SSH로 접속한 것과 비슷한 상황이 된 것이죠. 여기서 hostname 명령어를 입력해 보면 제 PC가 아닌 VM임을 알 수 있습니다.


이 상태로 원하는 작업을 하셔도 되겠지만, 이렇게 직접 CMD 창을 가져오지 않고 특정 커맨드만 날리는 예제를 보여드리겠습니다.

psexec \\192.168.0.4 -u snoopy -p 1234 cmd /c dir c:\

psexec \\192.168.0.4 -u snoopy -p 1234 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

psexec \\192.168.0.4 -u snoopy -p 1234 netsh advfirewall firewall add rule name="TCP-3389" dir=in action=allow protocol=tcp localport=3389


파란색 부분이 실제 명령어 부분입니다. 즉 평소에 로컬에서 날리시던 명령어를 그대로 저렇게 날려주시면 됩니다. 단 dir, echo 처럼 별도의 프로그램이 아닌 CMD 쉘에서 사용되는 내장 명령어의 경우 저렇게 cmd /c 뒤에 붙여주시면 됩니다.

이상입니다.
신고
Share
  1. BlogIcon 사이버현
    2012.11.01 12:34 신고

    항상 좋은 정보 감사합니다..

  2. 부이
    2012.11.01 16:34 신고

    스누피님
    공유기 하단에 있는 PC의 경우 445포트를 해당 PC로 포워딩 해준 후 공유기의 IP를 입력하면 위 명령어가 먹히나요?
    제가 잘못한건지
    \\공유기IP
    \\공유기IP:445

    두가지로 해봐도 접근이 안되네요.
    윈7이며 administrator 계정으로 했고 445포트는 오픈했고 공유기에서 포워딩 시켜줬습니다.
    공유기 IP는 공인IP구요

    • 돌팔이
      2012.11.01 19:52 신고
      수정 및 삭제

      445포트는 ISP에서 차단해서 아마도 외부에서는 안될듯합니다
      외부에서는 VPN을 사용하시는 방법을 찾아보시기 바랍니다

  3. 부이
    2012.11.02 09:09 신고

    돌팔이님,
    돌팔이님 의견에서 이해가 가지 않는 부분이

    공인 IP를 PC에서 쓰고 있을 경우 ISP에서 차단을 하지 않고
    공인 IP를 공유기 에서 쓰고 있을 경우 ISP에서 차단을 한다.

    위 뜻으로 해석되는데요. 맞나요?

    스누피님 포스팅은 내부 네트웍 안에 있는 서버를 대상으로 하셨는데
    외부 공인IP를 쓰고있는 PC를 대상으로 테스트해보니 정상적으로 자동했습니다.

    다만 공인IP를 쓰고있는 공유기의 내부에 있는 PC를 대상으로 하려니 잘 안되서 물어보는겁니다.

  4. 텔넷
    2012.11.02 09:16 신고

    계정, 패스워드 암호화되서 보내지나요?

    아니라면 패킷 캡쳐되면 위험할 것 같네요.

    텔넷과 별반 차이가 없다면 되도록이면 안쓰시는게 ...

  5. skyet
    2012.11.03 00:34 신고

    안녕하세요.
    처음뵙겠읍니다. 우클릭메뉴에
    시작버튼을 누르면 나오는 컴퓨터를 추가할 수 있나요.
    추가된 컴퓨터에 마우스를 위치하면 연결된 C, D, J(이동식디스크)가 보여서
    바로 들어 갈수 있도록이요.

    핸드폰과, mp3, USB를 자주사용하는데요.
    이렇게할수있으면 정말 기쁘겠읍니다.

    감사합니다.

  6. :-)
    2012.11.04 00:17 신고

    스누피님 윈도우8에서 화면 분할에 사용하는 스냅기능을 낮은 해상도에서 사용하는 방법 없을까요??
    노트북 해상도가 1280*800 이여서 기능이 활성화가 안되는거 같아서 구글에서 검색해서 나오는 레지스트리에서AlwaysEnableLSSnapping 값을 1로 변경해서 활성화 하는 방법은 안 먹히고 enabler받아서 실행한뒤 활성화 버튼 눌러도 아무런 반응이 없네요;(
    혹시 해결 방법을 아시나요??

  7. 저분은 저 and Zinc Footwear are the premium fashion brands nowadays. These are equally popular in all the age groups. There are very few stores like Envishoes that offer the complete range of these trendsetter brands. Otherwise in most stores, you see either incomplete range of a brand or shortage of premium quality shoe brands. Various online shoe stores deal in BCBGen shoes, Betsey Johnson shoes or sadfsadfewqrweqrdfgda

  8. BlogIcon buy youtube subscribers
    2012.12.24 17:55 신고

    汉语/漢語 汉语/漢語 The blog is absolutely fantastic. Lots of great information and inspiration, both of which we all need . Thanks for posting this tips .

  9. sol
    2013.05.14 09:41 신고

    psexec 말고 다른 방법으로 원격 컴퓨터에 커맨드를 사용 할 수 있는 방법이 있을까요?

  10. BlogIcon info
    2013.11.13 11:17 신고

    환상적인 웹 사이트를 참조하십시오. 여기에 유용한 정보를 제공합니다. 나는 또한 맛있는에서 공유하는 몇 친구의 ANS로 보낼 게요. 그리고 분명히 당신의 노력에 감사합니다!

  11. 지나가다
    2014.07.21 11:29 신고

    설명한 내용에서 IP로는 안되고 nbtstat 에서 보이는 이름으로만 되는데, IP에서 안되는 원인이 뭘까요?

  12. 음...
    2015.07.30 16:16 신고

    너무 오래전 포스트에 질문드리는거 같긴한데요. 혹시 원격으로 접속하기 전의 내 컴퓨터에 있는파일을 접속한 컴퓨터에 복사해 넣는 방법이 있을까요?

  13. BlogIcon sonmyeong
    2015.11.01 10:39 신고

    안드로이드 용 psexec 도 있을까요?

  14. BlogIcon 신동석
    2016.09.27 17:44 신고

    제 컴퓨터는 [※ UAC 확실히 끄는 방법] 이후에, 사용자 계정이 조금 이상해졌습니다.
    혹시 원래상태로 돌리려면

    REG REMOVE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f

    명령어를 하면 되나요 ㅠㅠ