第218天-219天:应急响应篇&内网攻防&爆破事件&代理隧道&流量提进程&系统日志&处置封锁

第218天-219天:应急响应篇&内网攻防&爆破事件&代理隧道&流量提进程&系统日志&处置封锁
Yatming的博客爆破事件
口令横向
场景说明:不管是内网还是外网,协议口令爆破一直都是攻击里面最常见的方式。
- 明确对应口令爆破的日志存储路径及查看
- 明确日志中有哪些属性和判断依据(筛选)
- 对于大量日志可在后面要讲到的效率项目工具
SSH
我这里就使用九头蛇进行爆破吧:
1 | hydra -l root -P top100.txt 192.168.179.131 ssh |
从日志筛选错误三次以上的日志
1 | 提取所有失败登录的 IP(包括密码错误和无效用户) |
这里是因为虚拟机使用的是NAT模式,所以这里读取到的是NAT的网卡的地址。
从日志观察什么时间节点上爆破成功的:
上面都是登录失败,就这里登录成功了,如果这里不是管理员自己登录的日志,那么就是攻击者的登录日志,并且从日志的时间间隔来看这个就是一个爆破事件,因为没有人类可以一秒登录10次的,还有要注意的是在实际的攻防的情况下,可能不止有一队对你进行爆破,所以你日志会异常的多,这个就会涉及到后面使用工具自动的帮你进行筛选和分析。
实时监控登录成功的日志
windows—RDP
使用图形化的工具对其进行爆破攻击,这里可以看到爆破成功密码。
1 | windows系统日志: |
直接筛选登录成功的日志,然后这里可以看到上图中红框中的就是攻击者的ip地址。
从日志中分析,前面一直登录失败的时候也同样是这个ip在进行尝试,然后突然有一次登录成功了。这样来看就可以将其定性为一个爆破事件。
windows—smb爆破
这里还是使用hydra进行爆破,这里可以看到爆破成功,回到日志中看看是否有对应日志:
同样还是因为是虚拟机的原因,然后使用NAT进行的地址转化,所以在这个虚拟机看来就是自己的网关对自己进行的爆破。但是实际情况下, 服务器就是公网地址,所以就不会有这种情况。
Windows 系统常见安全日志事件 ID 对照表
事件 ID | 事件类型 | 详细描述 |
---|---|---|
4624 | 账户登录成功 | 记录用户或进程成功登录系统的事件,包含登录类型(如本地登录、远程桌面 RDP、网络登录等)、登录账户信息、登录来源 IP(远程登录时)、安全令牌信息等。 |
4625 | 账户登录失败 | 记录登录尝试失败的事件,包含失败的账户名、登录类型、失败原因(如密码错误、账户锁定、权限不足等)、来源 IP(远程登录时)等,常用于检测暴力破解、未授权登录尝试等安全事件。 |
4634 | 账户注销 | 记录用户或进程注销账户的事件,包含注销的账户名、注销类型(如主动注销、会话超时等)。 |
4647 | 用户主动注销 | 特指用户主动发起的注销操作,与 4634 相比,更明确标识 “主动” 行为,可用于审计用户会话结束的正常操作。 |
4672 | 账户使用了特殊权限 | 记录账户使用了系统管理员、备份操作员等特殊权限的事件,包含账户名、权限类型(如 SeSecurityPrivilege、SeBackupPrivilege 等),常用于监控高权限账户的操作。 |
4688 | 新进程创建 | 记录系统中创建新进程的事件,包含进程名、启动账户、父进程信息、进程路径等,可用于追踪恶意程序启动或异常进程创建。 |
4697 | 服务被安装 | 记录系统中安装新服务的事件,包含服务名称、服务路径、安装账户等,可用于检测恶意服务的植入。 |
4719 | 系统审计策略已更改 | 记录系统审计策略(如日志记录级别、审计对象等)被修改的事件,包含修改账户、修改前后的策略配置,常用于监控审计策略的异常变更(可能被攻击者篡改以绕过日志记录)。 |
4720 | 账户被创建 | 记录新用户账户创建的事件,包含账户名、创建者账户、账户属性(如是否为管理员)等,可用于检测未授权的账户创建行为。 |
4722 | 账户已登录 | 记录账户成功登录并获取令牌的事件,与 4624 相比,更侧重账户会话的建立,包含登录会话 ID、账户权限等信息。 |
4723 | 尝试修改账户密码 | 记录尝试修改账户密码的事件,包含目标账户名、操作账户、修改结果(成功 / 失败),可用于监控密码修改行为(如管理员账户密码被篡改)。 |
4724 | 尝试重置账户密码 | 记录尝试重置账户密码的事件(如通过重置磁盘、域控制器重置等),包含目标账户、操作账户、重置结果,常用于检测异常密码重置操作。 |
4738 | 账户信息已更改 | 记录账户属性(如用户名、隶属组、密码策略等)被修改的事件,包含修改的账户名、修改内容、操作账户,可用于监控账户权限的异常变更。 |
4740 | 账户被锁定 | 记录账户因登录失败次数过多等原因被锁定的事件,包含锁定的账户名、锁定时间、锁定来源(如域控制器、本地策略),可用于检测暴力破解导致的账户锁定。 |
4776 | 验证账户权限 | 记录系统对账户权限进行验证的事件(如访问资源时的权限检查),包含被验证的账户、资源路径、验证结果(允许 / 拒绝),可用于分析权限访问控制情况。 |
5140 | 网络共享被访问 | 记录用户访问网络共享资源(如文件共享、打印机共享)的事件,包含访问账户、共享路径、访问类型(读取 / 写入 / 删除等)、来源 IP,可用于审计网络资源的访问行为。 |
5156 | 网络策略更改 | 记录网络策略(如防火墙规则、连接属性)被修改的事件,包含修改账户、策略类型、修改内容,可用于监控网络配置的异常变更。 |
Windows-MSSQL
像这种SQLsever这样的软件形式的服务,他的日志就不会在系统日志里面进行呈现,对应的像FTP这样的服务,可以使用windows—sever中的iis进行搭建,或者使用软件(FileZilla)的形式进行搭建,或者像在linux里面以一种服务的形式存在,三种方式,他们的日志产生的地方也不一样,所以要看你的服务是以什么样子的方式进行搭建的,然后在去百度一下对应的日志存储的位置,如果日志不是在默认的存储路径,那么就百度一下,看一下他的配置文件中的日志存储路径。
但是我这里爆破成功了,但是没有日志。。。
总结
1 | 爆破定性:时间次数的比例 |
演示案例-蓝队技能-内网攻防-隧道技术&排查&应急
Linux-ICMP
1 | https://github.com/esrrhs/pingtunnel |
这里我用的是centos所以这里我用的是:
1 | pingtunnel_linux_amd64.zip |
攻击者:
1 | ./pingtunnel -type server -key 1234 |
客户端:
1 | ./pingtunnel -type client -l :4445 -s 10.20.0.66 -t 10.20.0.66:4444 -tcp 1 -key 1234 |
直接看网络连接,能看是能看就是一般注意不到。
使用项目:
1 | https://github.com/Just-Hack-For-Fun/request_monitor |
这里我用的centos,所以安装命令也不一样:
1 | yum install bpftrace |
搞来搞去,还是用Ubuntu吧,centos报错内存问题
ip变成:
1 | 攻击者:10.20.0.66 |
这里现实进程号是2514,那么查看进程2514看看是不是这么回事。
实战情况下, 如果是icmp协议的隧道,那么就可以使用这样的工具,然后找到之后将其kill掉。
1 | 这里并不是像小迪视频中如果不指定ip的话,就监听全部,这里必须要指定ip地址,那么如何得到这个地址呢?一般蓝队的设备会报警哪个ip和哪个ip建立了什么隧道,但是怎么去干掉这进程你就可以使用这个工具,将其从设备上得到的ip,指定一下,kill掉就行。 |
Windows-ICMP
1 | ./pingtunnel -type client -l :4445 -s 10.20.0.66 -t 10.20.0.66:4444 -tcp 1 -key 1234 |
服务端就没有停止过。所以不用新建了。
分析:Microsoft Message Analyzer
要自己安装一下。
Docker镜像&容器分析&Dockfile路径定位&基线扫描
1 | docker run -itd --restart=always -e POOL_URL=pool.supportxmr.com:5555 -e POOL_USER=45rfqYG9iNPddvenLpjFskJUhFgqBkdhDeah3X8D8ZJM3KpKqZWCLz3ewLsVd269tZiEyQRV53Ldv2DJb6xeuFokF7SBb1p --name xmrig pmietlicki/xmrig |
拉取这个镜像之后,发现进程中出现了一个占用很高的进程。那么尝试kill掉他。
1 | kill -9 2180 |
发现kill掉之后,又换了一个进程号之后又起来了。
可以进容器内部,看看是什么情况:
1 | docker exec -it 147d0099af5e bash |
根据目录来看其实这就是一个挖矿程序,结合前期的,首先是找到这个挖矿程序,然后将其删除,如果还有权限维持,这样的玩意,就在继续往下清除。
那么直接在容器里面删除可以吗?好像也可以
1 | 直接在容器中删除,挖矿程序,然后清除进程同样可以。但是如何将这个挖矿程序导出来,放到在线平台里面进行分析呢? |
使用 docker cp
命令,支持容器与宿主机之间的双向复制。
1 | docker cp 45cf3e0a67d8:/home/miner/xmrig/build/xmrig ./ |
复制之后,放到威胁情报里进行分析,然后对其进行定性。
还有一种就是小迪上课的办法就是找容器在物理机上的路径,然后对应清除他,同样也是可以的。因为容器是安装在物理机上,所以物理机上一定会有容器的存放路径
使用docker history命令查看指定镜像的历史
加上--no-trunc
,就可以看到全部信息。
1 | docker history pmietlicki/xmrig | grep xmrig |
查看镜像的配置信息
1 | docker inspect --format='{{json .Config}}' pmietlicki/xmrig |
获取镜像的存储路径
1 | docker inspect --format='{{.GraphDriver.Data.LowerDir}}' pmietlicki/xmrig |
同样是找到了,但是我现在是在物理机,不是在容器内部。直接删除物理机里面这个文件,然后在进去容器内部kill掉对应的进程。
1 | 其实这里也能看出来,就是这里原本的挖矿程序已经不再了,所以这里跟我上面的第一种方式没有很大区别。 |
这个时候在看top进程情况,发现cpu占用正常了。
Docker镜像-web后门
上面这种挖矿程序,你一下就可以通过CPU的大量占用,很快就能察觉,那么如果是后门,该如何去发现和处置呢?
1 | git clone https://github.com/vulhub/vulhub.git |
这里使用vulhub模拟红队对容器内部写入了一个shell。
利用工具,写入一个冰蝎shell
正常连接。
后门处置
下载河马的webshell查杀工具:
1 | https://www.shellpub.com/?download=1 |
上传到docker服务器上。
然后将起传到容器内部
1 | docker ps |
网站根路径:
让河马对其进行扫描:
处置办法就是直接删除这webshell,然后将其web漏洞补上。。或者下线这个站点。
docker基线检测
1 | 项目地址:https://github.com/aquasecurity/trivy |
他就会将自己找到的问题给你列出来。