PsExec เป็นเครื่องมือพกพาจาก Microsoft ที่ให้คุณเรียกใช้กระบวนการจากระยะไกลโดยใช้ข้อมูลประจำตัวของผู้ใช้คนใดก็ได้ คล้ายกับโปรแกรมการเข้าถึงระยะไกล แต่แทนที่จะควบคุมคอมพิวเตอร์ด้วยเมาส์ คำสั่งจะถูกส่งผ่าน Command Prompt
คุณสามารถใช้ PsExec เพื่อไม่เพียงจัดการกระบวนการบนคอมพิวเตอร์ระยะไกล แต่ยังเปลี่ยนเส้นทางเอาต์พุตคอนโซลของแอปพลิเคชันไปยังคอมพิวเตอร์ท้องถิ่นของคุณ ทำให้ดูเหมือนว่ากระบวนการทำงานอยู่ในเครื่อง
ไม่จำเป็นต้องใช้ซอฟต์แวร์บนคอมพิวเตอร์ระยะไกลเพื่อให้ PsExec ทำงานได้ แต่มีบางสิ่งที่ต้องจำไว้หากเครื่องมือทำงานไม่ถูกต้องในครั้งแรกที่คุณลองใช้
วิธีตั้งค่า PsExec
หาก PsExec พกพาได้และไม่จำเป็นต้องคัดลอกไปยังคอมพิวเตอร์ระยะไกล จำเป็นต้องมีการตั้งค่าประเภทใดจริงๆ
เครื่องมือนี้ทำงานภายใต้เงื่อนไขบางประการเท่านั้น กล่าวคือ เมื่อเปิดใช้งานการแชร์ไฟล์และเครื่องพิมพ์ทั้งบนคอมพิวเตอร์ภายในเครื่องและระยะไกล และเมื่อเครื่องระยะไกลมีการตั้งค่าการแชร์ $admin อย่างถูกต้องเพื่อให้สามารถเข้าถึงโฟลเดอร์ \Windows\
คุณสามารถตรวจสอบอีกครั้งว่าเปิดใช้งานการแชร์ไฟล์และการพิมพ์โดยดูที่การตั้งค่าไฟร์วอลล์ Windows:
- Enter firewall.cpl ในกล่องโต้ตอบเรียกใช้ วิธีหนึ่งในการเปิด Run คือการใช้แป้นพิมพ์ลัด WIN+R
-
เลือก อนุญาตแอปหรือคุณสมบัติผ่าน Windows Firewall จากด้านซ้ายของหน้าต่าง
อาจอ่านว่า อนุญาตแอปหรือคุณสมบัติผ่านไฟร์วอลล์ Windows Defender ขึ้นอยู่กับวิธีการตั้งค่าคอมพิวเตอร์ของคุณ แต่ตัวเลือกนี้เหมือนกัน
-
ตรวจสอบให้แน่ใจว่า การแชร์ไฟล์และเครื่องพิมพ์ มีเครื่องหมายถูกในช่อง Private ทางด้านขวา หากไม่เป็นเช่นนั้น ให้ทำเครื่องหมายในช่องนั้นแล้วเลือก ตกลง.
หากคุณเปลี่ยนการตั้งค่าไฟร์วอลล์ไม่ได้เพราะเป็นสีเทา ให้เลือก เปลี่ยนการตั้งค่า ที่ด้านบนของหน้าต่าง
- คุณสามารถออกจากการตั้งค่าไฟร์วอลล์ Windows ที่เปิดอยู่ได้แล้ว
ด้วย Windows Firewall ที่ตั้งค่าอย่างถูกต้องสำหรับ PsExec คุณไม่ควรมีปัญหาในการเข้าถึง $admin share บนเครื่องระยะไกลตราบใดที่สิ่งต่อไปนี้เป็นจริง:
- คอมพิวเตอร์ทั้งสองอยู่ในเวิร์กกรุ๊ปเดียวกัน
- คุณทราบรหัสผ่านของบัญชีผู้ดูแลระบบบนคอมพิวเตอร์ระยะไกล
ดูบทช่วยสอนนี้ที่ Wintips.org หากคุณต้องการความช่วยเหลือในการทำสิ่งเหล่านั้นหรือหากคุณทำอย่างถูกต้อง แต่ต่อมา หลังจากลองใช้ PsExec ตามที่อธิบายไว้ด้านล่าง คุณจะได้รับข้อผิดพลาด “การเข้าถึงถูกปฏิเสธ”
วิธีใช้ PsExec
ก่อนใช้ PsExec เพื่อรันคำสั่งระยะไกล คุณต้องดาวน์โหลดโปรแกรมและจัดตำแหน่ง Command Prompt ในลักษณะที่คุณจะใช้เครื่องมือได้อย่างถูกต้อง
ดาวน์โหลดและเปิด
- ดาวน์โหลด PsExec บนคอมพิวเตอร์ที่จะเรียกใช้คำสั่งระยะไกล ใช้งานได้ฟรีจาก Microsoft ที่ Sysinternals โดยเป็นส่วนหนึ่งของ PsTools
-
แตกไฟล์จากการดาวน์โหลด PsTools.zip คุณสามารถทำได้โดยคลิกขวาที่ไฟล์ ZIP แล้วเลือก Extract All ตัวแยกไฟล์ของบริษัทอื่นก็จะใช้งานได้เช่นกัน
-
เปิดโฟลเดอร์ที่มีไฟล์ที่แยกออกมา และจากแถบนำทางที่ด้านบนของโฟลเดอร์ ให้ลบสิ่งที่อยู่ แล้วป้อน cmd.
อีกวิธีในการทำเช่นนี้ อย่างน้อยใน Windows บางเวอร์ชันคือ Shift+คลิกขวา พื้นที่ว่างในโฟลเดอร์ PsTools แล้วเลือก เปิด หน้าต่างคำสั่งที่นี่.
สิ่งนี้จะเปิด Command Prompt ในโฟลเดอร์นั้นเพื่อให้คุณสามารถเรียกใช้คำสั่งผ่าน PsExec.
- เมื่อเปิดพรอมต์คำสั่งในโฟลเดอร์ที่มี PsExec.exe คุณสามารถเริ่มป้อนคำสั่งบนเครื่องระยะไกลได้
ทำความเข้าใจไวยากรณ์
เหมือนกับเครื่องมือบรรทัดคำสั่งใดๆ PsExec จะทำงานก็ต่อเมื่อไวยากรณ์ถูกติดตามเท่านั้น เมื่อคุณเข้าใจวิธีพิมพ์คำสั่งตามที่เครื่องมือเข้าใจแล้ว คุณสามารถควบคุมโปรแกรมจาก Command Prompt ใดก็ได้
นี่คือวิธีที่ต้องป้อนคำสั่ง PsExec:
psexec [ คอมพิวเตอร์ [, คอมพิวเตอร์2 [, …] | @file\][- u ชื่อผู้ใช้ [- p รหัสผ่าน][- n s][- r ชื่อบริการ][- h][- l][- s |- e][- x][- i[เซสชัน][-c ปฏิบัติการ [-f |-v ][-w ไดเรกทอรี][- d][- ][- n, n
อาจดูซับซ้อนและสับสน แต่ไม่ต้องกังวล! มีตัวอย่างด้านล่างหน้านี้ที่คุณสามารถใช้ในการฝึกฝนได้
ไวยากรณ์ด้านบนใช้เพื่อดำเนินการอาร์กิวเมนต์คำสั่ง PsExec ต่อไปนี้:
ตัวเลือกคำสั่ง PsExec | |
---|---|
พารามิเตอร์ | คำอธิบาย |
-a | ตัวประมวลผลแบบแยกซึ่งแอปพลิเคชันสามารถทำงานโดยใช้เครื่องหมายจุลภาค โดยที่ 1 คือ CPU ที่มีตัวเลขต่ำสุด ตัวอย่างเช่น หากต้องการเรียกใช้แอปพลิเคชันบน CPU 2 และ CPU 4 คุณจะต้องป้อน: - a 2, 4 |
-c | คัดลอกไฟล์เรียกทำงานที่ระบุไปยังระบบระยะไกลเพื่อดำเนินการ หากละเว้น แอปพลิเคชันจะต้องอยู่ในเส้นทางของระบบบนระบบรีโมต |
- d | อย่ารอให้กระบวนการยุติ (ไม่มีการโต้ตอบ) |
- e | ไม่โหลดโปรไฟล์ของบัญชีที่ระบุ |
- f | คัดลอกโปรแกรมที่ระบุแม้ว่าไฟล์นั้นจะมีอยู่แล้วบนระบบระยะไกล |
- i | เรียกใช้โปรแกรมเพื่อให้โต้ตอบกับเดสก์ท็อปของเซสชันที่ระบุบนระบบระยะไกล หากไม่มีการระบุเซสชัน กระบวนการจะทำงานในเซสชันคอนโซล |
- h | หากระบบเป้าหมายเป็น Windows Vista หรือสูงกว่า ให้เรียกใช้กระบวนการด้วยโทเค็นที่ยกระดับของบัญชี หากมี |
-l | เรียกใช้กระบวนการในฐานะผู้ใช้แบบจำกัด (ตัดกลุ่มผู้ดูแลระบบและอนุญาตเฉพาะสิทธิ์ที่กำหนดให้กับกลุ่มผู้ใช้) ใน Windows Vista กระบวนการทำงานด้วยความสมบูรณ์ต่ำ |
- n | ระบุระยะหมดเวลา (เป็นวินาที) ในการเชื่อมต่อกับคอมพิวเตอร์ระยะไกล |
- p | ระบุรหัสผ่านเสริมสำหรับชื่อผู้ใช้ หากละเว้น คุณจะได้รับแจ้งให้ป้อนรหัสผ่านที่ซ่อนอยู่ |
-r | ระบุชื่อของบริการระยะไกลเพื่อสร้างหรือโต้ตอบด้วย |
-s | เรียกใช้กระบวนการระยะไกลในบัญชีระบบ |
- u | ระบุชื่อผู้ใช้เสริมสำหรับการเข้าสู่ระบบคอมพิวเตอร์ระยะไกล |
- v | คัดลอกไฟล์ที่ระบุเฉพาะเมื่อมีหมายเลขเวอร์ชันที่สูงกว่าหรือใหม่กว่าบนระบบรีโมต |
- w | ตั้งไดเร็กทอรีการทำงานของกระบวนการ (เทียบกับคอมพิวเตอร์ระยะไกล) |
- x | แสดงอินเทอร์เฟซผู้ใช้บนเดสก์ท็อปที่ปลอดภัยของ Winlogon (ระบบในเครื่องเท่านั้น) |
- ลำดับความสำคัญ | ระบุ -ต่ำ, -ต่ำกว่าปกติ, -สูงกว่าปกติ, -สูง หรือ -เรียลไทม์เพื่อเรียกใช้กระบวนการที่มีลำดับความสำคัญต่างกัน ใช้ -background เพื่อทำงานที่หน่วยความจำเหลือน้อยและลำดับความสำคัญ I/O บน Windows Vista |
คอมพิวเตอร์ | สั่งให้ PsExec เรียกใช้แอปพลิเคชันบนคอมพิวเตอร์ระยะไกลที่ระบุ หากไม่ระบุ PsExec จะเรียกใช้แอปพลิเคชันบนระบบโลคัล และหากมีการระบุไวด์การ์ด () PsExec จะรันคำสั่งบนคอมพิวเตอร์ทุกเครื่องในโดเมนปัจจุบัน |
@file | PsExec จะรันคำสั่งบนคอมพิวเตอร์แต่ละเครื่องที่อยู่ในไฟล์ |
cmd | ชื่อแอปพลิเคชันที่จะดำเนินการ |
ข้อโต้แย้ง | อาร์กิวเมนต์ที่จะส่ง (โปรดทราบว่าพาธไฟล์ต้องเป็นพาธสัมบูรณ์บนระบบเป้าหมาย) |
ตัวอย่างคำสั่ง PsExec
นี่คือตัวอย่างบางส่วนของวิธีใช้ PsExec เพื่อทำสิ่งต่างๆ เช่น เรียกใช้คำสั่ง Command Prompt ระยะไกล จัดการ Windows Services และเปิดหรือติดตั้งโปรแกรม
เปิด CMD จากระยะไกล
psexec \\192.168.86.62 cmd
วิธีที่ง่ายที่สุดวิธีหนึ่งในการใช้ PsExec เพื่อเรียกใช้คำสั่งพร้อมรับคำสั่งบนคอมพิวเตอร์ระยะไกลคือดำเนินการ cmd ตามที่อยู่ IP ของเครื่อง 192.168.86.62 ในตัวอย่างนี้
การทำเช่นนี้จะเปิดหน้าต่างพร้อมรับคำสั่งปกติภายในหน้าต่างที่มีอยู่ และให้คุณป้อนทุกคำสั่งราวกับว่าคุณกำลังนั่งอยู่หน้าคอมพิวเตอร์ระยะไกลตัวอย่างเช่น คุณสามารถป้อน ipconfig เพื่อรับผลลัพธ์เหล่านั้นจากคอมพิวเตอร์เครื่องอื่น หรือ mkdir เพื่อสร้างโฟลเดอร์ใหม่ dir เพื่อแสดงรายการเนื้อหาของโฟลเดอร์ ฯลฯ
เรียกใช้คำสั่งระยะไกล
psexec \\mediaserver01 tracert lifewire.com
อีกวิธีหนึ่งในการใช้ PsExec คือการป้อนคำสั่งทีละคำสั่งแต่ไม่ต้องเริ่มพรอมต์คำสั่งแบบเต็ม ในตัวอย่างนี้ เรากำลังดำเนินการคำสั่ง tracert กับ lifewire.com และเนื่องจากเราได้ระบุชื่อคอมพิวเตอร์ระยะไกล mediaserver01 ผลลัพธ์ของคำสั่งจึงเกี่ยวข้องกับเครื่องนั้น ไม่ใช่เครื่องในเครื่อง (เช่น เครื่องที่คุณอยู่ บน).
เริ่มบริการจากระยะไกล
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
ตัวอย่างคำสั่ง PsExec ที่แสดงด้านบนจะเริ่มต้นบริการ Print Spooler, spooler จากระยะไกลบนคอมพิวเตอร์ FRONTDESK_PC โดยใช้รหัสผ่านของผู้ใช้ tomd 3(tom87.
คำสั่งเดียวกันนี้ใช้หยุดบริการจากระยะไกลได้ แต่ให้พิมพ์ "stop" แทน "start"
เปิด Registry Editor
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
ที่นี่ เราใช้ PsExec เพื่อเปิดใช้ Registry Editor บนเครื่องระยะไกล mikelaptopw10 ในบัญชีระบบ เนื่องจากมีการใช้ -i โปรแกรมจะเปิดในโหมดโต้ตอบ หมายความว่าจะเปิดขึ้นบนหน้าจอของเครื่องระยะไกลจริง
ถ้า -i ถูกละเว้นจากคำสั่งด้านบน คำสั่งนั้นจะดำเนินการในโหมดซ่อนเพื่อหลีกเลี่ยงการแสดงกล่องโต้ตอบหรือหน้าต่างอื่นๆ
ติดตั้งโปรแกรมบนคอมพิวเตอร์ระยะไกล
psexec \\J3BCD011 -c Z:\files\ccleaner.exe” cmd /S
ในตัวอย่างสุดท้ายของวิธีใช้ PsExec นี้ เรากำลังใช้ -c เพื่อคัดลอกโปรแกรม ccleaner.exe ไปยังคอมพิวเตอร์ระยะไกล J3BCD011 แล้วดำเนินการด้วย /S พารามิเตอร์ เนื่องจากนั่นคือสิ่งที่ CCleaner ใช้เพื่อเปิดใช้งานการติดตั้งแบบไม่มีการโต้ตอบ (ไม่ต้องป้อนข้อมูลจากผู้ใช้) การเพิ่มอาร์กิวเมนต์เช่นนั้นต้องใช้ cmd
PsExec อาจเป็นอันตรายได้
การเข้าใจว่า PsExec มีประสิทธิภาพเพียงใดและจะนำไปใช้เพื่อประนีประนอมคอมพิวเตอร์ของคุณได้อย่างไรเมื่อใช้งานในสภาพแวดล้อมที่ไม่ปลอดภัยอย่างอื่น
ตัวอย่างเช่น การรวม - c, - u และ - p โดยเฉพาะจะ ให้ทุกคนที่มีการเชื่อมต่อเครือข่ายกับคอมพิวเตอร์ของคุณ และมีความรู้เกี่ยวกับข้อมูลประจำตัวของผู้ดูแลระบบ เรียกใช้มัลแวร์ลับด้วยข้อมูลประจำตัวของใครก็ได้
ถึงแม้ตัวอย่างสุดท้ายที่ยอมรับได้อย่างสมบูรณ์ในส่วนก่อนหน้าก็มีจุดประสงค์ใหม่ทั้งหมดเมื่อคุณพิจารณาว่าแทนที่จะเป็น CCleaner ใครบางคนสามารถติดตั้งอย่างอื่นได้ตามต้องการ ในพื้นหลัง และไม่มีหน้าต่างปรากฏขึ้นเพื่อแสดงว่า อะไรก็เกิดขึ้นได้
ทั้งหมดที่กล่าวมา เมื่อพิจารณาถึงการเปลี่ยนแปลงของไฟร์วอลล์ที่จำเป็นและข้อมูลประจำตัวของผู้ดูแลระบบที่ต้องมี ไม่จำเป็นต้องกังวลอีกต่อไป ตราบใดที่รหัสผ่านของผู้ดูแลระบบบนคอมพิวเตอร์ระยะไกลนั้นซับซ้อนและมีการใช้มาตรการรักษาความปลอดภัยพื้นฐานอื่นๆ
โปรแกรมป้องกันไวรัสบางโปรแกรมระบุว่า PsExec เป็นไฟล์อันตรายอย่างไม่ถูกต้อง แต่คำเตือนเหล่านั้นสามารถเพิกเฉยได้หากคุณทราบแน่ชัดว่าโปรแกรมที่คุณกำลังใช้นั้นมาจากแหล่งที่มาของ Microsoft ด้านบน สาเหตุที่สิ่งนี้เกิดขึ้นเป็นเพราะทราบว่ามัลแวร์ใช้ PsExec เพื่อถ่ายโอนไวรัส