ดีที่บันทึกไว้ในวิกิพีเดียและnetcat
เอกสารมีความเป็น-e
ตัวเลือกที่เป็นสาเหตุของมันเพื่อวางไข่ ( อี xecute) โปรแกรมเมื่อได้รับการเชื่อมต่อที่แนบซ็อกเก็ตที่จะ stdin, stdout และ stderr ของกระบวนการ ตัวอย่างการใช้งาน:
nc -l -p
port_number -e
program_name
ตัวอย่างทั่วไปแสดง/bin/sh
หรือbash
ถูกใช้เป็นProgram_Name การใช้ตัวเลือกนี้จะหมดกำลังใจเพราะโดยทั่วไปจะเปิดพอร์ทัลการเข้าถึงที่ไม่ระบุชื่อและไม่มีรหัสผ่านลงในเครื่องของคุณ แน่นอนว่านี่คือการลดลงโดยการใช้โปรแกรมที่มีพลังงานน้อยกว่าเชลล์ (อันที่ไม่มีความสามารถในการหลบหนีไปยังเชลล์) ลดการใช้งานของคุณและทำให้เป็นความลับ อย่างไรก็ตามนักพัฒนาดั้งเดิมของnetcat
รู้สึกว่าแข็งแรงพอที่ตัวเลือกนี้เป็นความคิดที่ไม่ดีที่พวกเขาปิดการใช้งานโดยค่าเริ่มต้นและปรับมันภายใต้ตัวเลือกการรวบรวม“ GAPING_SECURITY_HOLE” สิ่งนี้ถูกกล่าวถึงสั้น ๆ ในบทช่วยสอน NetCatและnetcat
เอกสารอื่น ๆ
การค้นหาของ Google นำฉันไปสู่การอภิปรายของปัญหานี้ในเว็บไซต์อื่น ๆ Stack แลกเปลี่ยน: กองมากเกินและเซิร์ฟเวอร์ผิดพลาด ผู้ให้ข้อมูลหลายคนเสนอเทคนิคต่อไปนี้เพื่อทำสิ่งเดียวกันโดยไม่ใช้-e
ตัวเลือก (เช่นในเวอร์ชันnetcat
ที่-e
ปิดใช้งานตัวเลือก):
บนเซิร์ฟเวอร์:
mkfifo
pipe_name
nc -l -p
port_number <
pipe_name |
program_name >
pipe_name
บนไคลเอ็นต์:
nc
server_machine_name
port_number
หมายเหตุสองประการ:
- ในบางรุ่น
netcat
, -l
นัย-p
ดังนั้นคุณควรจะพูดเพียง-l
แล้วหมายเลขพอร์ต
- คุณอาจต้องการปิดโซลูชันของคุณในการ
while true
วนซ้ำ