Hacker bỏ qua iptables


9

(chuyển từ SO)

Tôi có iptables bảo vệ một máy chủ sip. Nó chặn tất cả các IP ngoại trừ những IP tôi đặc biệt đã mở và dường như nó hoạt động với hầu hết mọi người. Tôi đã thử nghiệm từ rất nhiều địa chỉ IP không được liệt kê trong danh sách trắng và tất cả chúng đều bị loại bỏ nếu cần.

NHƯNG, tôi đã chọn một "hacker" dường như có thể bỏ qua các quy tắc iptables. HÓA ĐƠN thăm dò của anh ấy làm cho nó thông qua, và tôi không biết làm thế nào, hoặc nó thậm chí có thể. Trong 10 năm tôi chưa từng thấy điều này trước đây.

Tôi cho rằng nó phải là thứ tôi đã làm, nhưng tôi không thể nhìn thấy nó.

iptables được tạo như thế này (MYIP được xác định ở trên cùng - được điều chỉnh lại):

iptables -F
iptables -X
iptables -N ALLOWEDSIP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -d $MYIP --dport 22 -j ACCEPT
iptables -t filter -A INPUT -j ALLOWEDSIP

# This is my white list.
iptables -A ALLOWEDSIP -j RETURN

Bây giờ, với việc KHÔNG CÓ trong ALLOWEDSIP, tất cả những gì tôi có thể làm là SSH trong (mà tôi có thể). Nếu tôi ném các cuộc gọi vào nó thì tất cả đều bị rơi. Nhưng wireshark cho tôi thấy điều này (ip của tôi đã được xử lý lại):

89.163.146.25 -> x.x.x.x SIP/SDP 805 Request: INVITE sip:521088972597572280@x.x.x.x |
x.x.x.x -> 89.163.146.25 SIP 417 Status: 100 Giving a try |
x.x.x.x -> 89.163.146.25 SIP 875 Status: 407 Proxy Authentication Required |

Các cuộc gọi của anh ấy đã chạm vào công tắc của tôi và mặc dù cuối cùng bị ACL từ chối, họ không bao giờ nên đến đó. Không có gì khác được thông qua. Kéo tóc tôi ra. Có ai biết không?

Để hoàn thiện, đây là kết quả của iptables -L:

# iptables -L --line-numbers -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       10   640 ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
2        0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
3        0     0 ACCEPT     tcp  --  any    any     anywhere             <redacted>.com  tcp dpt:6928
4        0     0 ALLOWEDSIP  all  --  any    any     anywhere             anywhere

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 6 packets, 544 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain ALLOWEDSIP (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 RETURN     all  --  any    any     anywhere             anywhere

EDIT: chỉ thấy điều này từ wireshark. Họ có thể đang làm một cái gì đó khủng khiếp như được thiết lập một số cách khác sau đó chơi theo quy tắc được thiết lập? Có lẽ họ đang chơi trên một số lỗ hổng trong LIÊN QUAN?

89.163.146.25 -> <redacted> RTCP 806 Source port: tag-pm  Destination port: sip

EDIT 2: UDP là chìa khóa ở đây. Khi tôi đặt OpenSIPS chỉ nghe TCP, vấn đề dường như biến mất. Không có nỗ lực nào của họ vượt qua được nữa, mặc dù họ đang gửi thêm những tin nhắn "tag-pm" đó. Không giải thích lý do tại sao các gói thậm chí còn được mở. iptables nên dừng chúng lại trước. Rất muốn biết những gì tôi đã làm sai ở đây.

EDIT 3: Nếu tôi loại bỏ LIÊN QUAN, tôi sẽ ngừng trả lời họ, vì vậy đó là điều cần làm với điều đó. Nhưng tôi nghĩ rằng tôi cần liên quan. Bất kỳ lời khuyên về cách giải quyết?


1
ESTABLISHEDnên làm việc cho UDP. Dường như luồng gói và chấp nhận trả lời các yêu cầu (gửi đi). "Tin tặc" của bạn có IP tĩnh không? ;-) Nếu vậy, hãy kiểm tra / Proc / net / nf_conntrack để xem bảng trạng thái chứa gì về chúng khi chúng hiện / không / được kết nối ... RELATEDlà một điều khó khăn hơn ... Không biết nó làm gì cho SIP . Có modprobethể hiển thị một mô-đun ipt_sip hoặc một cái gì đó được tải sẽ làm công cụ "ma thuật"?
Marki

@Marki - cảm ơn vì lời khuyên đó. / Proc / net / nf_conntrack không tồn tại (centos 7) vì vậy tôi sẽ cần tìm hiểu cái gì / tại sao / ở đâu.
David Wylie

2
"Conntrack-tools" là thứ có thể cài đặt từ repo, sau đó chạy "conntrack -L" dường như liệt kê chúng. Đi để xem những gì mang lại. Điển hình, anh dừng lại. Hy vọng chỉ là một sự tạm dừng.
David Wylie

1
Nếu có thể: Cố gắng hạn chế RELATEDđến -p icmp. Có lẽ điều này giải quyết nó (hoặc là một công việc phù hợp xung quanh mà không yêu cầu bạn đọc về người trợ giúp conntrack).
Corny

1
Bạn làm rối tung mọi thứ xung quanh bằng cách thêm một chuỗi. Nếu chuỗi ACCEPT được kiểm tra trước ALLOWEDSIP tùy chỉnh của bạn, thì ALLOWEDSIP có thể vô dụng.
Vượt qua

Câu trả lời:


1

Giải thích hợp lý duy nhất về cách thức hoạt động của nó là các datagram UDP vi phạm bằng cách nào đó đã vượt qua --state ESTABLISHED,RELATED.

Cho rằng UDP là một giao thức không trạng thái, tôi nghi ngờ rằng statemô-đun có theo dõi hiệu quả đối với nó.

Để giải quyết vấn đề, tôi sẽ giới hạn kiểm tra trạng thái đối với giao thức TCP bằng cách:

-A INPUT -m tcp -m state -p tcp --state ESTABLISHED,RELATED -j ACCEPT`

Và bộ lọc trước ALLOWEDSIPvới giao thức UDP (và tốt nhất là với cổng đích):

iptables -t filter -A INPUT -m udp -p udp --dport 5060 -j ALLOWEDSIP

-2

Bạn có thể nullroute. Điều này sẽ bỏ qua iptables.

route add 89.163.146.25 gw 127.0.0.1 lo

Kiểm tra nó

netstat -nr

HOẶC LÀ

route -n

Anh ta muốn vá lỗ hổng chống lại bất kỳ kẻ tấn công mới nào, không chỉ chặn kẻ này.
Zdenek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.