出品|MS08067實驗室(www.)
本文作者:大方子(Ms08067實驗室核心成員)
0X01設備信息
??Ubuntu14.04:192.168.61.135
??Kali:192.168.61.130
0X02配置過程
??先用Kali探測下Ubuntu的端口情況,可以看到Ubuntu的22端口是正常開放的
??接下來在Ubuntu上安裝Knockd
apt-get install update
apt-get install build-essential -y
apt-get install knockd -y
??安裝完成后就cat下Knockd的配置/etc/knockd.conf
??配置解釋:
[options]
UseSyslog //用來定義日志輸出位置以及文件名
[openSSH]
sequence = 7000,8000,9000 //設置(開門)敲門順序,可以自定義
seq_timeout = 5 //設置超時時間
command = /sbin/iptables ‐A INPUT ‐s %IP% ‐p tcp ‐‐dport 22 ‐j ACCEPT //開門成功后添加防火墻規(guī)則命令(打開SSH端口)
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000 //設置(關門)敲門順序,與開門順序相反
seq_timeout = 5 //設置超時時間
command = /sbin/iptables ‐D INPUT ‐s %IP% ‐p tcp ‐‐dport 22 ‐j ACCEPT //關門成功后刪除之前添加的防火墻規(guī)則(關閉SSH端口)
tcpflags = syn
??接下來對/etc/knockd.conf進行配置
[options]
#UseSyslog
LogFile = /knock.log #配置日志路徑
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables ‐I INPUT ‐s 192.168.61.130 ‐p tcp ‐‐dport 22 ‐j ACCEPT //這里把A改成I,讓knockd插入的規(guī)則能夠優(yōu)先生效
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables ‐D INPUT ‐s 192.168.61.130 ‐p tcp ‐‐dport 22 ‐j ACCEPT
tcpflags = syn
??配置/etc/default/knockd,修改START_KNOCKD=1
??然后重啟下knockd服務
service knock restart
??然后我們在Ubuntu的防火墻上添加幾條規(guī)則
iptables ‐A INPUT ‐s 192.168.61.1 ‐j ACCEPT //允許宿主機連接,方便實驗的時候可以用SSH進行連接
iptables ‐A INPUT ‐s 127.0.0.0/8 ‐j ACCEPT //允許本機的連接
iptables ‐A INPUT ‐j DROP //拒絕其他所有IP的連接
??我們在Kali上用nmap對Ubuntu的22端進行探測,可以看到22端口的狀態(tài)是被過濾了
nmap ‐sC ‐Pn ‐sV ‐p 22 ‐A 192.168.61.135
??接下來我們用nmap進行敲門
for x in 7000 8000 9000;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.61.135;done
??我們再次查看Ubuntu上的防火墻規(guī)則,添加了一條關于192.168.61.130的規(guī)則
??我們再次用Kali進行探測并嘗試連接
??使用完畢之后,我們再次用nmap進行關門,只需要倒過來敲擊各個端口即可
for x in 9000 8000 7000;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.61.135;done
??再次查看Ubuntu的防火墻規(guī)則,可以看到之前關于192.168.61.130的規(guī)則已經(jīng)被刪除
??此時再次用nmap進行探測以及進行連接都會被拒絕
轉(zhuǎn)載請聯(lián)系作者并注明出處!
|