Windows에서 runas 도구를 호출하고 자동으로 암호를 입력해야하는 C# 프로그램을 작성하려고합니다. 내가 뭘하려
은 : 무슨 문제runas를 하위 프로세스로 시작하고 암호를 stdin에 쓰십시오?
Process runas = new Process();
runas.StartInfo.FileName = "runas";
runas.StartInfo.UseShellExecute = false;
runas.StartInfo.RedirectStandardInput = true;
runas.StartInfo.Arguments = "\"/user:domain\\username\" \"cmd.exe\"";
runas.Start();
StreamWriter stream = runas.StandardInput;
stream.WriteLine("our super secret password");
stream.Flush();
stream.Close();
runas.WaitForExit();
runas.Close();
:
을 나는 다음과 같은 출력을 얻을. (내 독일어 창에서 나를 번역)
Please enter the password for "...":
Trying to execute cmd.exe as user "kfz\dummy"...
RUNAS-ERROR: cmd.exe could not be executed
1326: Authentication failed: unknown username or password.
예, 암호 및 사용자 이름을 확인 quadrupel. 명령 줄에 모든 것을 직접 입력하면됩니다.
내가, 아니 성공을뿐만 아니라 출력을 리디렉션하지 않고 그것을 읽는 시도 :와 내가 실험 무엇
. 같은 행동
stream.Write("our super secret password");
stream.Write("our super secret password\n");
stream.Write("our super secret password\r\n");
모든 결과 :
나는 다른 스트림에 쓰기의 변형을 시도했다.
내가 눈치 무엇 :
에서 runas 프로세스 나 스트림에 쓰기까지 기다릴하지 보인다.
쓰기 전에 Sleep을 추가했는데 즉시 위의 결과가 나타납니다. 나는 성공적인되지 않은 사용 입력에서 runas의 종류를 알아 내려고하면
:
내가 두려워에서 runas 오전 일부 NONSTD 입력 .....
연구 결과를 사용합니다.
windows 내장형 runas here에 대한 대안을 찾았지만, 사용하기를 원하지 않을지라도 다시 사용하지 않을 것입니다.
편집 :
좋아, 내가 마이크로 소프트 말 소스를 발견 일부러 누군가가 그 작업을 수행 할 때
내가 그것을 싫어 ..... 것을하고있는 사람들을 방지! 안전하지 않은 것을 사용하고 싶다면 누가 저를 멀게 할 수 있습니까?
죄송합니다. 주제를 벗어났습니다.
하나의 질문이 남아 있습니다 ... 우리는 여전히 어떻게 든 돌아 다닐 수 있습니까? 룬을 해킹 할 수 있을까요? ;)
이 좋은 생각 같은 소리하지 않습니다. 왜 이걸하고 싶니? 일단'cmd'가 열리면, 사용자는 그가 원하는 것을 무엇이든 할 수 있습니다. 왜이 같은 보안을 우회하려고합니까? 또한 암호는 어디서 얻으려고합니까? 아니면 사용자가 관리자 암호를 알려 달라는 시도입니까? : D – Luaan
cmd.exe를 호출하는 것은 우리가 작성한 특정 프로그램을 실행하는 마지막 일에 purpouses를 테스트하기위한 것입니다. 우리는 권한이없는 사용자가 관리자 권한을 필요로하는 특정 작업을 수행하고자합니다. – Ch33f