พอดีไปอ่าน blog นี้มาเลยเอามาโน็ตไว้หน่อย กลัวหาไม่เจออีก blog ที่กล่าวถึงคือของ ropnop ซึ่งเค้าพูดถึงปัญหาของเหล่า Penetration Tester ที่มักเจอคือการได้ shell ในระบบที่เป็น Linux มา แต่เป็น shell ที่ใช้ประโยชน์อะไรไม่ค่อยได้ คือมันจะใช้พวก command หลายๆอย่างไม่ได้ เช่น

  • การใช้ su และ ssh ไม่ได้
  • STDERR (log ที่เกิดจากการทำสิ่งใดๆผิด) จะไม่แสดง
  • ใช้ text editor อย่าง vim  ได้ไม่ดี
  • กด tab เพื่อทำ autocomplete ไม่ได้
  • กดเลื่อนขึ้นดู history ไม่ได้
  • ไม่มีการควบคุม job
  • etc.

ทีนี้ปัญหามันอยู่ที่ shell นั้นมันไม่ใช่ TTY ไม่ใช่ Interactive shell ดังนั้นมันเลยทำอะไรได้ไม่เท่าไหร่ สิ่งที่ Pentester ทั้งหลายพยายามทำคือการเปลี่ยนไปใช้ Interactive Shell แทน ซึ่งมีวิธีหลายๆวิธีที่ทำได้

(หากใครอยากได้วิธีการใช้ netcat ให้ไปดูที่ link เก่าครับ)

1. การใช้งานผ่านภาษา expect

เราต้นด้วยการสร้างไฟล์ expect ขึ้นมา

จากนั้นรันผ่าน expect เพื่อให้ได้ interactive shell แล้วจึง SSH เข้าเครื่องอีกที

2. ใช้ python ในการทำ

เมื่อเข้าไปที่ shell ได้ใช้คำสั่งเป็น

จะได้ interactive shell เช่นกัน

3. socat

socat เป็นเครื่องมือที่พยายามมาแทน netcat

โดยที่ฝั่งของ Kali จะใช้เป็น

ที่ฝั่ง Victim ใช้เป็น

4. Upgrade netcat โดยใช้ STTY

เมื่อเราได้ shell จาก netcat ใช้เป็น

การกด Ctrl-z จะทำให้ shell กลายเป็น background process จากนั้นแสดงรายละเอียดของ shell โดยใช้คำสั่ง

ซึ่งในนั้นเราจะพบ size ของ TTY ที่เราใช้อยู่

set type shell ให้เป็น RAW และบอกให้ echo input character ออกมา โดยใช้คำสั่ง

จากนั้นนำ process กลับมาโดยใช้คำสั่ง

จากนั้นใช้คำสั่ง

5. กำหนด Environment ของ SHELL

6. ใช้ Expect อีกแบบ

Source::