黑客渗透/DDos攻击
1.42K subscribers
63 photos
3 links
Download Telegram
正则表达式是基于NFA的,它是一个状态机,每个状态和输入符号都可能有许多不同的下一个状态。正则解析引擎将遍历所有可能的路径直到最后。由于每个状态都有若个“下-个状态”,因此决策算法会逐个尝试每个“下一个状态”,直到找到一个匹配的
分布式拒绝服务攻击(Distributed Denial of Service Attack)是拒绝服务攻击的高级手段,利用分布全球的僵尸网络发动攻击,能够产生大规模的拒绝服务攻击。

技术:@Martingopo
客户端向服务器端发送一个SYN请求包,包含客户端使用的端口号和初始序列号x。

服务器端收到客户端发送过来的SYN请求包后,知道客户端想要建立连接,于是向客户端发送一个SYN请求包和ACK回应包,包含确认号x+1和服务器端的初始序列号y。

客户端收到服务器端返回的SYN请求包和ACK回应包后,向服务器端返回一个确认号y+1和序号x+1的ACK请求包,三次握手完成,TCP连接建立成功。

技术:@Martingopo
利用wireshark软件抓取数据包的数据,通过筛选器筛选出发送包频率多的ip地址。

筛选218.xxx.xxx.87,分析协议占比,发现tcp和http占比比较大

技术:@Martingopo
完整的http请求包是以 \r\n\r\n 结尾,慢速拒绝服务攻击时仅发送 \r\n,少发送一个 \r\n,服务器认为请求还未发完,服务器就会一直等待直至超时。

slowhttptest -c 5000 -H -g -o my_header_stats -i 10 -r 5000 -t GET -u "http://10.10.10.134" -x 200 -p 3

(测试时建立5000连接数-c;选择slowloris模式-H;生成cvs和HTML文件的统计数据-G;生成的文件名my_header_stats -o;指定发送数据间的间隔10秒 -i 每秒连接数5000-t;指定url-u;指定发送的最大数据长度200 -x;指定等待时间来确认DOS攻击已经成功-p)

技术:@Martingopo
观察靶机的cpu和网络流量明显增加很多

技术:@Martingopo
CC攻击(ChallengeCollapsar)是DDOS(分布式拒绝服务)的一种,前身名为Fatboy攻击,也是一种常见的网站攻击方法。攻击者经过代理服务器或者肉鸡向向受害主机不停地发大量数据包,形成对方服务器资源耗尽,一直到机。相比其它的DDOS攻击CC仿佛更有技术含量一些。这种攻击你见不到真实源IP,见不到特别大的异常流量,但形成服务器没法进行正常链接。最让站长们忧虑的是这种攻击技术含量低,利用更换IP代理工具和一些IP代理一个初、中级的电脑水平的用户就可以实施攻击。

技术:@Martingopo
👍1
收集的信息包括网络信息(域名、IP地址、网络拓扑)、系统信息(操作系统版本、开放的各种网络服务版本)、用户信息(用户标识、组标识、共享资源、即时通信软件账号、邮件账号)等。

技术:@Martingopo
1
与TCP客户端相比,将套接字的类型改为SOCK_DGRAM,然后调用sendto()函数发送数据,因为UDP是无连接的因此不需要调用connect函数,最后使用recvfrom函数接收返回的UDP数据包

技术:@Martingopo
机密性:(信息没有非授权的泄露,不被非授权的个人、组织和计算机程序使用)
完整性:(信息没有遭到篡改和破坏)
可用性:(拥有授权的用户或进程可以及时、正常使用信息)

技术:@Martingopo
Linux 下有两种用户:超级用户(root)、普通用户。
超级用户:可以再 linux 系统下做任何事情,不受限制
普通用户:在 linux 下做有限的事情。
超级用户的命令提示符是 “#”,普通用户的命令提示符是 “$”。

技术:@Martingopo
inetd是一个监听外部网络请求(就是一个socket)的系统守护进程,默认情况下为13端口。当inetd接收到一个外部请求后,它会根据这个请求到自己的配置文件中去找到实际处理它的程序,然后再把接收到的这个socket交给那个程序去处理。所以,如果我们已经在目标系统的inetd配置文件中配置好,那么来自外部的某个socket是要执行一个可交互的shell,就获取了一个后门。

技术:@Martingopo
查看系统是否存在其他恶意的管理员账号.cmd命令下输入netuser就会列出当前服务器里的所有账号,也可以通过注册表去查看管理员账号是否被增加,注册表这里是需要在命令中输入egedit来打开注册表,找到HKEY_LOCAL_MACHINEISAMISAMDomainsAccountUsersNames可以着到所有的账号名字。

技术:@Martingopo
首先,假Chunk必须是一个Thenable对象,所以需要有then方法,这里直接随便引用另一个字段的then方法$1:then即可。status等于resolved_model和reason等于-1都只是为了让这个Chunk对象正常而不出错地往下执行,直到开始解析这个Chunk的value,也就是{"then":"$B1337"}。
当引用类型是B时,我们看看其执行的代码:
这几行代码里面,id是1337,虽然可控但无法利用,prefix是response._prefix,response来自于当前Chunk的_response属性,完全可控,所以blobKey是可以前半部分可控的字符串。
response._formData.get因为也来自于当前Chunk的_response属性,也是完全可控的,所以最后这段代码实际上就可以变成可控函数名(可控字符串)。
我们只要让response._formData.get变成一个恶意函数,比如eval,而response._prefix是恶意代码即可。这里作者并没有找到可以直接利用的eval方法,退而求其次,最后利用到了JavaScript中的Function函数。
在JavaScript中,某个对象的.constructor属性是这个对象的构造函数,而.constructor.constructor就是这个对象的构造函数的构造函数,而任何函数的构造函数都是Function。
Function和eval类似,只不过它其中的代码不是立刻执行,而是需要再次调用才能执行:
所以,$B1337的返回值最后被控制成chunk1.constructor.constructor('var res=process.mainModule.require...'),这是一个函数,将这个函数赋值给then属性后,在下一次resolve()的时候触发,最终完成任意代码执行。

技术:@Martingopo
查看系统是否存在其他恶意的管理员账号.cmd命令下输入netuser就会列出当前服务器里的所有账号,也可以通过注册表去查看管理员账号是否被增加,注册表这里是需要在命令中输入egedit来打开注册表,找到HKEY_LOCAL_MACHINEISAMISAMDomainsAccountUsersNames可以着到所有的账号名字。

技术:@Martingopo
首先,假Chunk必须是一个Thenable对象,所以需要有then方法,这里直接随便引用另一个字段的then方法$1:then即可。status等于resolved_model和reason等于-1都只是为了让这个Chunk对象正常而不出错地往下执行,直到开始解析这个Chunk的value,也就是{"then":"$B1337"}。
当引用类型是B时,我们看看其执行的代码:
这几行代码里面,id是1337,虽然可控但无法利用,prefix是response._prefix,response来自于当前Chunk的_response属性,完全可控,所以blobKey是可以前半部分可控的字符串。
response._formData.get因为也来自于当前Chunk的_response属性,也是完全可控的,所以最后这段代码实际上就可以变成可控函数名(可控字符串)。
我们只要让response._formData.get变成一个恶意函数,比如eval,而response._prefix是恶意代码即可。这里作者并没有找到可以直接利用的eval方法,退而求其次,最后利用到了JavaScript中的Function函数。
在JavaScript中,某个对象的.constructor属性是这个对象的构造函数,而.constructor.constructor就是这个对象的构造函数的构造函数,而任何函数的构造函数都是Function。
Function和eval类似,只不过它其中的代码不是立刻执行,而是需要再次调用才能执行:
所以,$B1337的返回值最后被控制成chunk1.constructor.constructor('var res=process.mainModule.require...'),这是一个函数,将这个函数赋值给then属性后,在下一次resolve()的时候触发,最终完成任意代码执行。

技术:@Martingopo