เรียกใช้ในฐานะผู้ใช้อื่นโดยไม่ต้องใช้รหัสผ่านจากพรอมต์ยกระดับใน Windows


13

มีหลายระบบสาธารณูปโภคที่จะทำงานเป็นผู้ใช้ที่แตกต่างกัน (เช่นrunas, cpau, psexec) แต่ทุกคนต้องใช้รหัสผ่านสำหรับผู้ใช้แต่ละ, แม้ว่าคุณจะทำงานอยู่แล้วมีสิทธิ์สูง

ฉันต้องการบรรลุสิ่งต่อไปนี้:

  1. ฉันมีพรอมต์ยกระดับแล้ว ( Administrator)
  2. ฉันต้องการที่จะดำเนินการคำสั่ง (เช่น: calc.exe) ขณะที่johnโดยไม่ต้องพิมพ์ / ผ่านรหัสผ่านของพวกเขาไปปล่อยยูทิลิตี้

ตัวอย่างเช่นในระบบ Unix คุณสามารถ:

root@server:~# su - john

คำตอบ:


3

ฉันใช้สิ่งนี้ตลอดเวลา จะต้องป้อนข้อมูลประจำตัวในครั้งแรกที่ใช้ (และเมื่อมีการเปลี่ยนแปลงรหัสผ่าน) แต่เป็นสิ่งที่เกิดขึ้น

runas /user:yourusernamehere /savecred "Your Executable Here"

หากคุณบันทึกคำสั่งนี้เป็นส่วนหนึ่งของไฟล์ bat คุณสามารถสร้างทางลัดที่จะเรียกใช้สิ่งนี้ด้วยสิทธิ์ระดับผู้ดูแลโดยใช้เป้าหมายดังต่อไปนี้

C:\Windows\System32\cmd.exe /c "C:\yourbatfilehere.bat"

3
ขอบคุณสำหรับเคล็ดลับ แต่น่าเสียดายที่ / savecred ไม่สามารถใช้ได้ในกรณีของฉันเพราะ 1) ข้อมูลประจำตัวของผู้ใช้อาจเปลี่ยนแปลงและ 2) คำสั่งที่จะดำเนินการจะถูกสร้างขึ้นแบบไดนามิก (ดังนั้นฉันต้องพิมพ์รหัสผ่านสำหรับแต่ละคำสั่ง) นอกจากนี้ควรทำงานในพื้นหลังโดยไม่มีการโต้ตอบกับผู้ใช้
Razvan

@ รัซวานคุณสามารถห่อคำสั่งของคุณในไฟล์สคริปต์ได้ตราบใดที่ชื่อนั้นเป็นชื่อเดียวกันกับที่ comands ของคุณสามารถเปลี่ยนได้อย่างง่ายดาย ในการเปลี่ยนข้อมูลประจำตัว ... คุณจำเป็นต้องส่งหนังสือรับรองใหม่ของเรา ไม่มีตัวเลือกที่สาม
Tim Brigham

3

ไม่ไม่สามารถทำได้ใน Windows คุณต้องใส่รหัสผ่านอย่างน้อยหนึ่งครั้งเมื่อเรียกใช้แอปพลิเคชันภายใต้บัญชีผู้ใช้อื่น แม้ในฐานะผู้ดูแลระบบ

ป้องกันสิ่งตลก ๆ ที่จะเกิดขึ้นและทำให้การตรวจสอบสะอาดขึ้น หากมีสิ่งใดเกิดขึ้นภายใต้บัญชีผู้ใช้ผู้ใช้จะไม่สามารถตำหนิผู้ดูแลระบบได้หากไม่ได้รับความยินยอม


แต่นี่เป็นข้อ จำกัด ทางเทคนิคหรือไม่? ฉันคิดว่าอาจมีไฟล์ผู้ใช้ที่เกี่ยวข้องบางอย่างที่จำเป็นสำหรับการสร้างเซสชันใหม่ที่เข้ารหัสโดยใช้ข้อมูลรับรองผู้ใช้ดังนั้นจึงเป็นไปไม่ได้ที่จะได้รับเซสชันใหม่โดยไม่ต้องให้ข้อมูลรับรองที่เกี่ยวข้อง (เป็นเพียงการเดา)
Razvan

ฉันไม่เข้าใจความคิดเห็นของคุณ เป็นข้อ จำกัด ทางเทคนิคในแง่ที่ว่า Microsoft ตัดสินใจวางแผน Windows ในแบบที่คุณไม่สามารถปลอมแปลงบัญชีผู้ใช้โดยไม่ทราบรหัสผ่าน สาเหตุและวิธีการไม่สำคัญ ตัวเลือกเดียวของคุณคือป้อนรหัสผ่านหรือยอมรับว่าคุณไม่สามารถแอบอ้างเป็นบุคคลอื่นหากไม่มีบัญชี
Daniel

1
@Daniel คุณสามารถให้ลิงค์อ้างอิงสำหรับการอ้างสิทธิ์ของคุณได้หรือไม่ว่านี่เป็นการตัดสินใจเชิงกลยุทธ์อย่างรอบคอบ?
ivan_pozdeev

ACL อนุญาตหรือไม่
RandomInsano

3

ใน Windows คุณสามารถทำได้หากมีเซสชันการเข้าสู่ระบบปัจจุบันของผู้ใช้ที่คุณพยายามเลียนแบบ นี่เป็นเพราะนโยบายกลุ่มท้องถิ่น "เลียนแบบไคลเอนต์หลังจากการรับรองความถูกต้อง" ช่วยให้สมาชิกของกลุ่มผู้ดูแลระบบสามารถทำสิ่งนั้นได้อย่างแน่นอน (พบได้ภายใต้นโยบายท้องถิ่น> การมอบหมายสิทธิ์ผู้ใช้)

เครื่องมือหนึ่งที่ฉันรู้ว่าช่วยให้คุณทำเช่นนี้คือ Process Hacker 2 เรียกใช้เครื่องมือในฐานะผู้ดูแลระบบในท้องถิ่นและค้นหากระบวนการที่ทำงานในฐานะผู้ใช้ที่คุณต้องการปลอมตัว คลิกขวาบนมันเลือกอื่น ๆ > เรียกใช้ในฐานะผู้ใช้รายนี้ ... จากนั้นพิมพ์เส้นทางไบนารีที่คุณต้องการเรียกใช้ในฐานะผู้ใช้รายนั้นเช่น cmd CMD จะเปิดเป็นผู้ใช้รายนั้นโดยไม่ต้องให้รหัสผ่านของผู้ใช้นั้น


-3

หากคุณใส่. exe ไว้ในโฟลเดอร์เริ่มต้นคุณอาจเรียกใช้งานได้ตามต้องการ


3
ทำอย่างละเอียด: คุณไม่ได้เรียกใช้มันในขณะที่พวกเขา ... คุณจะได้รับพวกเขาที่จะเรียกใช้สำหรับคุณ
KevinKTI

2
เนื่องจากผู้ใช้จะใส่รหัสผ่านเมื่อเข้าสู่ระบบดูเหมือนจะไม่ตอบคำถาม
ลูกไก่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.