// Ipc.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <stdlib.h> struct ThreadParameter{ //结构体,传参
char Filename[MAX_PATH];
char szusername[MAX_PATH];
char szpassword[MAX_PATH];
}; bool LoginCompter(LPVOID pParam)
{
FILE* fp;
FILE* ffp;
char readbuffer[1024],savebuffer[120];
ThreadParameter *tp = (ThreadParameter *)pParam; //结构体传参
char cmd[MAX_PATH]; //保存CMD命令
char delcmd[MAX_PATH]; //删除共享字符串
char Buffer[4096]; //输出字符串
STARTUPINFO sInfo,info;
PROCESS_INFORMATION pInfo;
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
DWORD bytesRead;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE; fp = fopen(tp->Filename,"rb"); //打开机器列表
if (fp == NULL)
{
printf("fopen error in %s.\r\n",tp->Filename);
return 0;
} ffp = fopen("suscess.txt","a+"); //打开保存结果文件
if (ffp == NULL)
{
printf("save fopen file error suscess.txt .\r\n");
fclose(ffp);
return -1;
}
memset(readbuffer,0,sizeof(readbuffer)); //清0
while (fgets(readbuffer,sizeof(readbuffer),fp))
{
if (!CreatePipe(&hRead,&hWrite,&sa,0)) //创建匿名管道
{
printf("CreatePipe failed (%d)!\n", GetLastError());
return false;
} GetStartupInfo(&sInfo);
sInfo.cb = sizeof(sInfo);
sInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
sInfo.wShowWindow = SW_HIDE;
sInfo.hStdError = hWrite; //将管道的写端交给子进程
sInfo.hStdOutput = hWrite;
memset(&pInfo, 0, sizeof(pInfo)); if (readbuffer[strlen(readbuffer)-1] == '\n')
{
readbuffer[strlen(readbuffer) -2] = '\0';
} memset(cmd,0,sizeof(cmd));
memset(delcmd,0,sizeof(delcmd));
sprintf(cmd,"cmd.exe /c net use %s\\c$ %s /u:%s",readbuffer,tp->szpassword,tp->szusername);
if(!CreateProcessA(NULL, cmd , NULL, NULL, TRUE, 0, NULL, NULL, (LPSTARTUPINFOA)&sInfo, &pInfo)) //创建子进程
{
printf("CreateProcess failed (%d)!\n", GetLastError());
CloseHandle(hWrite);
CloseHandle(hRead);
return false;
}
CloseHandle(hWrite); //关闭父进程的写端 while (1)
{
memset(Buffer,0,sizeof(Buffer));
memset(savebuffer,0,sizeof(savebuffer));
ReadFile(hRead,Buffer,sizeof(Buffer),&bytesRead,NULL);
if (bytesRead <= 2)
{
break;
} if (strstr(Buffer,"successfully"))
{
char szdirPath[1024] = {0}; //临时保存
memset(szdirPath,0,sizeof(szdirPath));
sprintf(savebuffer,"Host:%s Username:%s Passwords:%s suscess \n",readbuffer,tp->szusername,tp->szpassword); //输出
fwrite(savebuffer,strlen(savebuffer),1,ffp);
sprintf(szdirPath,"dir %s\\c$ >> savePath.txt",readbuffer); //保存DIR目录
system(szdirPath);
sprintf(delcmd,"cmd.exe /c net use %s\\c$ /del",readbuffer); //删除共享
system(delcmd);
}
}
}
fclose(fp);
fclose(ffp);
WaitForSingleObject(pInfo.hProcess, INFINITE); //等待线程退出
CloseHandle(hRead); //关闭句柄
return true;
} int main(int argc,char* argv[])
{
ThreadParameter tp; //初始化结构体
HANDLE threadhandle;
if (argc < 4)
{
printf("[-]:%s Compute_list Username Password\r\n",argv[0]);
return -1;
}
strcpy(tp.Filename,argv[1]); //传参
strcpy(tp.szusername,argv[2]); //传参
strcpy(tp.szpassword,argv[3]); //传参 threadhandle = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)LoginCompter,&tp,0,0); //创建线程
if (threadhandle == INVALID_HANDLE_VALUE) //线程如果出现错误
{
printf("Create Thread error :%d \r\n",GetLastError()); //退出
return -1;
}
WaitForSingleObject(threadhandle,INFINITE); //等待线程完成后,关闭句柄
CloseHandle(threadhandle);
return 0;
}

  

代码 写的很弱,但是能用。如果你对这个代码抱有强烈的批评心或者甚至是恶心的地步。还请指出来,虚心接受批评。

内网批量测试登录机器工具,并且dir 目标机器c盘的更多相关文章

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

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

  2. [原创]Ladon5.7大型内网渗透综合漏洞扫描器

    Ladon LadonGUI Cobalt Strike PowerLadon PythonLadon LinuxLadon 使用说明 ID 主题 URL 1 Ladon文档主页 https://gi ...

  3. 傻瓜式教学--win10 + frp + rdpwrap + 阿里云服务器 --实现win10 多用户同时远程登录内网机

    概述: 使用win10 专业版 + frp + RDPwrap + 阿里云服务器 的组合实现win10 多用户同时远程登录内网机.使用frp 做内网穿透,将内网机的指定端口暴露在外网,通过ip+por ...

  4. 使用Holer远程桌面登录家里电脑和公司内网电脑

    1. Holer工具简介 Holer exposes local servers behind NATs and firewalls to the public internet over secur ...

  5. IDC 内网机器 通 过 iptables SNAT上网的配置方法

    有三台机器, A .B .C,其中A机器有外网和内网IP,B和C只有内网,我们配置B和C二台机器通过A机器来上外网. 假设A机器 外网IP为: 60.12.13.14  内网IP为: 192.168. ...

  6. 通过SOCKS代理渗透整个内网

    https://blog.csdn.net/SouthWind0/article/details/83111044 通过SOCKS代理渗透整个内网 1.背景 经过前期的渗透工作,我们现在已经成功找到了 ...

  7. hw从外网到内网的渗透姿势分享

    现在这段时间是全员 hw 时期,刚好前几天也有幸参与了某个地方的 hw 行动,作为攻击方,这里就简单总结一下最近挖洞的思路吧.因为可能怕涉及到敏感的东西,这里就有的地方不会细说了. 因为本人比较菜,所 ...

  8. 3.内网渗透之reGeorg+Proxifier

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxIAAAE2CAIAAAB6BDOVAAAgAElEQVR4Aey9Z5Aex3X327MRGVzkRH ...

  9. kubernetes 内网节点部署笔记(一)

    在Centos7上部署kubernetes时,碰到很多坑,特别在摸拟在内网部署时,有来自GFW的障碍,有来自Firewalld的阻塞,反正是各种不服,终于慢慢理顺了思路,自己记录一下,防止遗忘. 环境 ...

随机推荐

  1. jqgrid 事件说明

    Events(事件) 事件响应动作被设置为表格的属性,以下定义了行被选中时的响应: var lastSel; jQuery("#gridid").jqGrid({ ...    o ...

  2. 内核源码阅读vim+cscope+ctags+taglist

    杜斌博客:http://blog.db89.org/kernel-source-read-vim-cscope-ctags-taglist/ 武特博客:http://edsionte.com/tech ...

  3. python学习【第五篇】python函数 (二)

    一.装饰器 装饰器:本质就是函数,功能是为其它函数添加附加功能 装饰器的原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方式 装饰器的知识储备: 装饰器 = 高阶函数 + 函数嵌套 + 闭包 ...

  4. hdu 5068(线段树+矩阵乘法)

    矩阵乘法来进行所有路径的运算, 线段树来查询修改. 关键还是矩阵乘法的结合律. Harry And Math Teacher Time Limit: 5000/3000 MS (Java/Others ...

  5. Farm Tour(最小费用最大流模板)

    Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18150   Accepted: 7023 Descri ...

  6. POJ 3026 Borg Maze【BFS+最小生成树】

    链接: http://poj.org/problem?id=3026 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  7. How to make asynchronous HTTP requests in PHP 4种PHP异步执行的常用方式

    [是否等待返回就执行下一步] How to make asynchronous HTTP requests in PHP - Stack Overflow https://stackoverflow. ...

  8. Time-series Storage Layer Time Series Databases 时间序列

    w 关于时间序列数据库的思考-CSDN.NET  http://www.csdn.net/article/2015-07-13/2825192  存储和处理时间序列数据(“Time Series Da ...

  9. 【题解】Journeys(线段树优化连边)

    [#3073. Pa2011]Journeys (线段树优化连边) 这张图太直观了,直接讲透了线段树优化连边的原理和正确性. 考虑建立两颗线段树,一颗是外向树,一颗是内向树,相当于网络流建模一样,我们 ...

  10. 保存到properties

    @FXMLprivate void savaconfig(ActionEvent event) { try { Properties prop = new Properties(); FileWrit ...