Score:0

การไพพ์ SSH ไปยัง wireshark บน windows

ธง ve

ในการทำงานประจำวันของฉัน ฉันจำเป็นต้องเรียกใช้ tcpdump บนเซิร์ฟเวอร์ระยะไกลอยู่บ่อยครั้ง และการบันทึกเอาต์พุตลงในไฟล์ก็เป็นเรื่องยุ่งยาก และจากนั้นก็ต้องย้ายไฟล์ไปยังแล็ปท็อปเพื่อวิเคราะห์บน wireshark

ฉันกำลังสำรวจคำสั่งด้านล่างและใช้งานได้ดีใน linux

ssh <remote_host> sudo tcpdump -vv -i eth0 -U -w - | ไวร์ชาร์ค -k -i -

แต่น่าเสียดายที่แล็ปท็อปสำหรับทำงานของฉันที่บริษัทจัดหาให้นั้นมีหน้าต่างอยู่ และพวกเขาไม่อนุญาตให้ฉันเปลี่ยนไปใช้ระบบปฏิบัติการอื่น ด้วยข้อจำกัดนี้ ฉันพยายามเพื่อให้ได้ผลลัพธ์เดียวกัน แต่ใน windows...

ถ้าฉันรันคำสั่งต่อไปนี้ใน windows ใน powershell

ssh <remote_host> sudo tcpdump -vv -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -

ฉันได้รับข้อผิดพลาดนี้

    ที่บรรทัด:1 อักขระ:87
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~
โทเค็น '-k' ที่ไม่คาดคิดในนิพจน์หรือคำสั่ง
ที่บรรทัด:1 อักขระ:44
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
อนุญาตให้ใช้นิพจน์เป็นองค์ประกอบแรกของไปป์ไลน์เท่านั้น
ที่บรรทัด:1 อักขระ:90
+ ... -i eth0 -U -w - | 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -
+ ~~
โทเค็น '-i' ที่ไม่คาดคิดในนิพจน์หรือคำสั่ง
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : โทเค็นที่ไม่คาดคิด

หากฉันดำเนินการคำสั่ง wireshark โดยไม่มีส่วน ssh ฉันจะได้รับข้อผิดพลาดเดียวกัน แต่ถ้าฉันดำเนินการเช่นนี้

& 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -

มันเปิด wireshark และรอการป้อนข้อมูล ด้วยเหตุนี้ฉันจึงพยายามเปลี่ยนคำสั่งเป็น

ssh <remote_host> sudo tcpdump -vv -i eth0 -U -w - | & 'C:\Program Files\Wireshark\Wireshark.exe' -k -i -

ด้วยวิธีนี้คำสั่ง ssh จะถูกดำเนินการและ tcpdump จะเริ่มต้นในรีโมตโฮสต์ wireshark จะไม่เริ่มทำงาน ผมทำอะไรผิดหรือเปล่า? เหตุใดคำสั่งไพพ์ที่คล้ายกับคำสั่งใน linux มากที่สุดจึงไม่ทำงานใน windows การไพพ์แตกต่างกันหรือไม่

us flag
ดูเหมือนว่าปัญหา powershell สำหรับฉัน ... อาจลองใช้ cmd แทน?
BANJOSA avatar
ve flag
นายเป็นอัจฉริยะ! ขอบคุณสำหรับคำแนะนำ มันใช้งานได้ใน CMD ดูเหมือนว่าจะมีปัญหากับ PowerShell แต่ถ้าผู้ใช้ต้องการรหัสผ่านเพื่อดำเนินการ TCPDUMP ซึ่งโดยปกติแล้วจำเป็นต้องใช้ ข้อผิดพลาด ```GetConsoleMode บน hOutputConsole ล้มเหลวด้วย 6``` จะปรากฏขึ้น
us flag
อาจมีวิธีทำด้วย powershell แต่ฉันไม่รู้เกี่ยวกับ powershell มากนัก คุณควรเพิ่มแท็ก powershell และลบแท็กที่ไม่จำเป็นออก
Score:0
ธง za

ตามที่ @Jasen กล่าวถึงในความคิดเห็น ฉันพยายามใช้คำสั่งโดยไม่ใช้ PowerShell แต่ใช้ Git Bash บน Windows 10 แทน

#!/bin/bash
เซิร์ฟเวอร์ = <โฮสต์ระยะไกล>
iface="ens6"
ssh $server "tcpdump -s 0 -U -n -w - -i $iface ไม่ใช่พอร์ต 22" | ไวร์ชาร์ค -k -i -

สคริปต์นี้อนุมานว่าคุณได้ติดตั้ง GitBash และ wireshark ไว้ในเครื่อง Windows ของคุณ รวมทั้งเซิร์ฟเวอร์และโฮสต์ที่สื่อสารผ่านการตรวจสอบสิทธิ์คีย์สาธารณะ ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์รูทเมื่อใช้งาน tcpdump. พอร์ต 22 ถูกละเว้นอย่างชัดเจน ดังนั้นจึงไม่สามารถมองเห็นทราฟฟิก ssh ระหว่างเซสชันการดมกลิ่นแพ็กเก็ต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา