วิธีหยุดการเดรัจฉานบังคับโจมตีบนเซิร์ฟเวอร์เทอร์มินัล (Win2008R2)?


23

ฉันคุ้นเคยกับเครื่องมือ Linux มากขึ้นเพื่อหยุดยั้งการโจมตีที่รุนแรงดังนั้นฉันจึงมีปัญหาในการค้นหาเครื่องมือที่เหมาะสมสำหรับ Windows ฉันใช้ Windows Server 2008 R2 กับ Terminal Server และฉันต้องการบล็อก IP หลังจากพยายามเข้าสู่ระบบผ่านทาง RDP ซ้ำ ๆ คำใบ้ใด ๆ


3
คุณต้องการจัดการกับเซิร์ฟเวอร์ Windows ของคุณหรือไม่? คุณคิดว่าการ จำกัด อัตราการใช้อุปกรณ์ Edge (ไฟร์วอลล์ / เราเตอร์) ของคุณหรือไม่?
Zoredache

2
กล่อง Windows เป็น VPS ที่ดำเนินการโดย บริษัท โฮสติ้งดังนั้นฉันจึงไม่สามารถเข้าถึงอุปกรณ์เครือข่ายได้
onik

คุณสามารถตั้งค่าเหตุการณ์กำหนดการงานในการเข้าสู่ระบบล้มเหลวในการเริ่มต้นสคริปต์ PS; PS Svript จะต้องนับจำนวนครั้งที่ IP พยายามแล้วบล็อกด้วยกฎไฟร์วอลล์ ฉันไม่มีสคริปต์ดังกล่าว แต่เป็นไปได้ที่จะสร้าง
Chris S

@Chris S: นั่นมากหรือน้อยกว่าที่สคริปต์ ts_block ของฉันทำยกเว้นว่ามันจะทำงานเป็นบันทึกเหตุการณ์ "sink" และรับการเรียกกลับในแต่ละครั้งที่มีการบันทึกเหตุการณ์ใหม่ ด้วยเหตุนี้มันจึงทำงานแบบเรียลไทม์ไม่มากก็น้อย
Evan Anderson

ใช้ VPN - ติดตั้งเช่น OpenVPN บนเราเตอร์ อย่าวางกล่อง windows โดยตรงกับอินเทอร์เน็ต - มันอันตราย
integratorIT

คำตอบ:


5

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


1
ตกลงดังนั้นก็อย่างที่ฉันคิด ฉันต้องศึกษาตัวแสดงเหตุการณ์เพื่อดูว่าฉันสามารถส่งออกที่อยู่ IP ไปยังไฟล์เพื่อประมวลผลแบตช์ได้หรือไม่ ในขณะที่ต้อง grep พวกเขาจากการสร้างทิ้ง. csv ด้วยตนเอง
onik

5
เปลี่ยนพอร์ต RDP ตอบสนอง
JohnThePro

สิ่งที่ตลกคือฉันต้องการ จำกัด IP แต่ความล้มเหลวในการเข้าสู่ระบบไม่ได้รายงานที่อยู่ IP
Csaba Toth

การเปลี่ยนพอร์ตปิดบังเท่านั้น พวกเขาจะค้นหาพอร์ตใหม่พร้อมซอฟต์แวร์สแกนพอร์ตอัจฉริยะ
TheLegendaryCopyCoder

@CsabaToth บันทึกเหตุการณ์ไม่ได้บันทึกข้อมูลที่เป็นประโยชน์ตามค่าเริ่มต้น คุณสามารถเปิดใช้งานการบันทึก verbose ในบริการ netlogon จากตัวควบคุมโดเมนหรือคอมพิวเตอร์ที่ได้รับการร้องขอ RDP สำหรับข้อมูลเพิ่มเติมบางอย่าง คุณสามารถเปิดใช้งานการบันทึกไฟร์วอลล์ Windows เพื่อกำหนดที่อยู่ IP
Michael Steele

25

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

หากคุณไม่สามารถบล็อกที่ไฟร์วอลล์ขอบและต้องการให้ RDP เปิดเฉพาะส่วนย่อยของอินเทอร์เน็ตให้ใช้คุณสมบัติ Windows Firewall ในตัวเพื่อล็อคการเชื่อมต่อขาเข้า

สุดท้ายหากคุณจริงๆต้องมี RDP เปิดให้ทั้ง Intenet คุณอาจจะต้องดูที่รุ่นที่ปรับเปลี่ยนSSH โปรแกรมป้องกันฉันกำลังดุร้ายสำหรับ Windowsที่ฉันมีในพื้นที่เก็บข้อมูล GitHub สคริปต์นี้ ts_block บล็อกการพยายามเข้าสู่ระบบของ Terminal Services ที่ดุร้ายใน Windows Server 2003, 2008 และ 2008 R2 แต่เนื่องจากการเปลี่ยนแปลงของเหตุการณ์ที่เกิดขึ้นเข้าสู่ระบบโดย Windows เมื่อใช้รักษาความปลอดภัยชั้น TLS / SSL สำหรับ RDP สคริปต์นี้จะกลายเป็นไม่ได้ผลมากขึ้น (ทำไมไมโครซอฟท์เลือกที่จะไม่ใช้ที่อยู่ IP ของโฮสต์ที่พยายามพิสูจน์ตัวตนอยู่นอกเหนือฉันดูเหมือนว่าจะเป็นสิ่งสำคัญในการเข้าสู่ระบบใช่มั้ย)


1
ฉันใช้หน้า ts_block ที่นี่และมันยอดเยี่ยมมาก! เซิร์ฟเวอร์ windows ของฉัน (2008 R2) เคยทำงานช้าลงภายใต้การโจมตีที่ดุเดือดมากมาย แต่ไม่ใช่อีกต่อไป! TS_BLOCK เขียนด้วย vbscript - และสามารถ / ควรติดตั้งเป็นบริการ windows - แต่อย่าใช้รุ่น MSI เพียงแก้ไขรหัส. vbs และติดตั้งด้วย nssm util คุณไม่ต้องการรายการรีจิสตรีรหัส cos .vbs มีค่าเริ่มต้น hardcoded <p> ฉันได้แก้ไขโค้ดและบล็อกการล็อกอินทุกครั้งที่ล้มเหลวทันที - ในฐานะที่เป็นเว็บเซิร์ฟเวอร์ของฉันเอง ดังนั้นสคริปต์

นี่คืออีวานที่แสนหวาน ฉันมีความคิดครึ่งหนึ่งที่จะนำมันไปใช้ใหม่ใน C # เพื่อให้คุณสามารถเรียกใช้เป็นบริการ windows ดั้งเดิมแทนที่จะแฮ็คด้วย srvany และอื่น ๆ ถ้าฉันเคยทำฉันจะโยนมันใส่ Github หรืออะไรทำนองนั้น
Ryan Bolger

1
@RyanBolger: ฉันมีจุดอ่อนสำหรับ VBScript และภาษาที่ตีความโดยทั่วไป ฉันพบว่าการใช้ "ตัวจัดการบริการที่ไม่ได้ดูด" ทำให้เกิดความเจ็บปวดในการใช้งานโปรแกรม VBScript เป็นบริการ
Evan Anderson

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

ตามts_blockสคริปต์ที่นี่เป็นวิธีการแก้ปัญหาที่ใช้fail2banในเกตเวย์เพื่อป้องกันการโจมตี: wqweto.wordpress.com/2013/12/10/…
wqw

3

ฉันมีโปรแกรม C # ที่ทำสิ่งนี้อย่างแน่นอน ฉันมีปัญหาใน Server 2008 R2 ซึ่งบันทึกเหตุการณ์ไม่ได้แสดงรายการที่อยู่ IP ของผู้ใช้เสมอ (หากเชื่อมต่อจากไคลเอนต์เดสก์ท็อประยะไกลที่ใหม่กว่า) บริการบางอย่างใช้ผู้ให้บริการตรวจสอบข้อมูลรับรองของตนเองซึ่งไม่ได้ให้ข้อมูลทั้งหมดที่คุณต้องการ

http://cyberarms.net/security-insights/security-lab/remote-desktop-logging-of-ip-address-%28security-event-log-4625%29.aspx

สำหรับ Remote Desktop แต่ฉันค้นพบว่าการเข้าสู่ "Remote Desktop Session Host Configuration" และการเปลี่ยนการเชื่อมต่อ RDP-TCP ให้มีเลเยอร์ความปลอดภัยของ "RDP Security Layer" แทน "Negotiate" หรือ "SSL (TLS 1.0)" ที่อยู่ IP

ไม่ว่าคุณจะต้องการทำเช่นนี้เป็นคำถามอื่นสำหรับคุณหรือไม่ "ถ้าคุณเลือก RDP Security Layer คุณจะไม่สามารถใช้การรับรองความถูกต้องระดับเครือข่ายได้"

ฉันพบhttp://www.windowsecurity.com/articles/logon-types.htmlเพื่อเป็นประโยชน์ ฉันใช้ EventLogWatcher และผูกกับ "* [ระบบ / EventID = 4625 หรือระบบ / EventID = 4624]" ดังนั้นฉันสามารถรีเซ็ตจำนวนที่ไม่ดีในการประสบความสำเร็จหากผู้ใช้จริงแค่รหัสผ่านผิด นอกจากนี้ฉันได้รับอนุญาตพิเศษ :: 1, 0.0.0.0, 127.0.0.1 และ "-" คุณสามารถหรืออาจไม่ต้องการอนุญาต IP / LAN ของการจัดการที่ปลอดภัย

ฉันใช้ Forefront TMG ดังนั้นฉันจึงใช้ API เพื่อเพิ่มที่อยู่ IP ที่ไม่ดีให้กับกลุ่มของ IP และฉันขอให้ซิสโก้เพิ่มการเข้าถึง API ให้กับเราเตอร์ SMB หนึ่งในพวกเขา (ซึ่งพวกเขามั่นใจว่าพวกเขาอาจทำได้!)

หากคุณต้องการใช้ไฟร์วอลล์ Windows ดั้งเดิมเพื่อปิดกั้นให้ดูที่ API สำหรับสิ่งนั้น ("netsh advfirewall")

ฉันอนุญาตให้ x จำนวนครั้งก่อนที่จะแบนและความสำเร็จจะรีเซ็ตการนับ


2

คุณกำลังพยายามป้องกัน break-ins หรือบันทึกที่รก หากคุณกำลังพยายามป้องกันการแบ่งระบบ Windows มีวิธีในตัวเพื่อบล็อกความพยายามในการเข้าสู่ระบบมีการตั้งค่านโยบายกลุ่มการ จำกัด การล็อกบัญชีในการกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า -> การตั้งค่าความปลอดภัย -> นโยบายบัญชี -> นโยบายการล็อคบัญชี

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

การบล็อกโดยอัตโนมัติที่ระดับไฟร์วอลล์จะต้องมีการอ่านบันทึกสคริปต์ที่มีการปรับปรุงกฎไฟร์วอลล์โดยอัตโนมัติ คุณควรจะเพิ่มกฎตามที่อยู่ IP ด้วยวิธีนี้ นี่คือสิ่งที่ iptables ทำในระบบ Linux

มันอาจจะค่อนข้างชัดเจน แต่คุณเคยลองใช้บริการ Remote Desktop บนพอร์ตที่ไม่ได้มาตรฐานหรือไม่? นี่เป็นสิ่งที่มีประสิทธิภาพมากสำหรับฉันในการป้องกันการบุกรุก


การปิดกั้นการพยายามเชื่อมต่อซ้ำ ๆ ที่ไฟร์วอลล์เป็นแนวปฏิบัติที่ดี แต่สมมติว่าการโจมตีแบบเดรัจฉานจะไม่เกิดขึ้น "หลังไฟร์วอลล์" ไม่ใช่ข้อสันนิษฐานที่ดีมาก เดรัจฉานที่ใช้โฮสต์สำหรับบล็อกเป็นความคิดที่ดีพอสมควรในใจของฉัน การใช้การล็อกบัญชีเป็นความคิดที่ดีอย่างแน่นอน แต่ฉันก็ชอบความคิดที่จะกำจัดแรงเดรัจฉานที่กำลังพยายามรักษาบันทึกให้สะอาดเช่นกัน
Evan Anderson

1
ฉันกำลังทำงานบนพอร์ตที่ไม่ใช่พอร์ตและความกังวลที่ใหญ่กว่าของฉันคือการทำให้เซิร์ฟเวอร์ของฉันออฟไลน์ได้อย่างมีประสิทธิภาพเนื่องจากความพยายามในการลงชื่อเข้าใช้จำนวนมาก
boomhauer

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

1

มีวิธีแก้ไขปัญหาอื่น ๆ อีกสองสามถ้าคุณต้องการมีโซลูชันที่ใช้ GUI แทนและสร้างชุดของกฎที่แตกต่างกันสำหรับเหตุการณ์ที่แตกต่างกันจริง ๆ วิธีที่ง่ายที่สุดคือ RDPGuard (hxxp: //www.rdpguard.com) แต่ในสภาพแวดล้อมขององค์กรคุณอาจต้องการรายงานเพิ่มเติมเช่นจากการโจมตีที่มา (ประเทศแหล่งกำเนิด) และชื่อผู้ใช้ที่ใช้เพื่อให้คุณสามารถได้อย่างรวดเร็ว ตัดสินใจว่าเป็นผู้ใช้ของคุณเองโดยไม่ตั้งใจปิดกั้นตัวเองหรือพยายามเข้าสู่ระบบจากที่คุณรู้ว่าพวกเขาไม่ได้

โดยส่วนตัวแล้วฉันชอบ Syspeace (hxxp: //www.syspeace.com) ที่ทำสิ่งเหล่านั้นให้เรา แต่ฉันคิดว่าฉันจะพูดถึงพวกเขาทั้งสองต่อไป


0

วิธีแก้ไขนั้นง่าย: ติดตั้ง Windows Firewall เพื่อให้ที่อยู่ IP ที่ได้รับอนุญาตพิเศษสามารถ RDP ลงในช่องที่ต้องการ ดูทรัพยากรต่อไปนี้: ฉันจะอนุญาตให้ RDP เข้าถึงเซิร์ฟเวอร์ Windows 2008R2 จาก IP เดียวได้อย่างไร


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.