转载来源 :京峰教育,如果侵权,及时联系我删除。
1)剖析黑客攻击服务器、网站哪些方法和手段;
2)基于两台CentOS Linux服务器实现攻防演练;
3)基于SHELL编程抵御黑客的攻击,将黑客加入黑洞;
4)基于DenyHosts实现全自动黑客的防御实战;
5)如何将DenyHosts应用于企业生产环境;
1)基于弱端口、基础服务端口实现攻击,端口扫描,常见的端口:139、445、110、25、53等;
2)基于服务器的弱口令,弱密码,WEB网站的弱密码,黑客最喜欢扫描用户和密码,尤其服务器的,基于22、3389远程端口扫描;
3)基于DDOS分布式拒绝服务攻击,模拟大量的半连接,拖垮服务器,服务器资源被大量的占用,导致无法提供正常的服务;
4)基于WEB程序的漏洞、BUG,基于SQL注入攻击Web网站或者服务器;
5)基于XSS、Webshell提权、获取服务器的最高管理员的权限和指令等;
2、基于两台CentOS Linux服务器实现攻防演练
1)黑客攻击Linux服务器,最喜欢的手法,暴力破解Linux的用户名和密码,如何判断黑客在暴力破解Linux服务器的用户名和密码呢?
2)通过服务器的资源使用情况或者服务器的日志,Linux服务器用户名和密码登录的日志:/var/log/secure;
cat /var/log/secure | more
或者
vi /var/log/secure
上面是登录失败的IP地址,攻击原因可能是 密码强度比较弱,误删了机器的yum源 ,密码要由大小写,标点符号等等组成,
3)根据登录日志判断服务器是否存在恶意攻击,通过什么条件判断?通过关键词判断:Failed Password;
4)如果取出/var/log/secure日志文件中,登录失败次数超过5次黑客的IP地址,并且将其加入到Linux黑洞中;
5)分页查看/var/log/secure日志内容,确认是否有IP地址:
cat /var/log/secure|more
more /var/log/secure
6)匹配/var/log/secure日志登录失败的关键词:Failed password
grep "Failed password" /var/log/secure|more
grep "Failed password" /var/log/secure|awk '{print $11}'|more
ssh [email protected]
查看本机登录失败的IP
grep "Failed password" /var/log/secure|awk '{print $11}'|more
8)基于awk切割第十一列,可能会漏掉一些IP,怎么办?将结果的空格变成换行符\n;
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|more
9)将结果的空格变成换行符\n,同时匹配数字0-9,匹配IP地址;
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"|more
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|more
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|egrep "([0-9]{1,3}\.){3}[0-9]{1,3}"|more
10)对IP进行排序,同时对IP列表进行去重统计,并且从大到小排序,如何获取呢?
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq -c|sort -nr|more
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq -c|sort -nr|awk '$1>=5 {print $2}'
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq -c|sort -nr|awk '{if($1>5) print $0}'|more
12)登录失败次数超过5次黑客的IP地址,加入到Linux黑洞,如何获取呢?Linux黑洞(十八层地狱)文件:/etc/hosts.deny
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq -c|sort -nr|awk '$1>=5 {print "sshd:"$2}'>>/etc/hosts.deny
for ip in `grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq -c|sort -nr|awk '$1>=5 {print $2}'`;do echo sshd:$ip ;done>>/etc/hosts.deny
grep "Failed password" /var/log/secure|sed 's/ /\n/g'|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq -c|sort -nr|awk '$1>=5 {print $2}'|sed 's/^/&sshd:/g'>>/etc/hosts.deny
查看ssh暴力破解
用iftop查看到有几个IP一直连接中,而我的blog里的流量统计页面访问数量却没有新增,很明显这不是在访问blog。通过netstat -anp 可以查看到这几个IP,尤其有个IP还不断更换端口一直尝试访问我的22端口,能用22端口无非是ssh终端连接。99%是尝试暴力破解,
#iftop 查看连接IP地址
tail -f /var/log/secure 可以查看ssh登陆失败的信息,证实了193.201.224.199这家伙在尝试暴力破解
通过iftop能实时查看流量连接情况