/images/avatar.png

ev1l0o4g's blog

记一些环境错误的修复

kali添加环境变量 golang安装工具后无法执行,需添加环境变量 1 2 3 4 vim /etc/profile export PATH=/root/go/bin:$PATH source /etc/profile 但重启终端后依然无效,还需在/root/.zshrc添加 1 2 3 4 vim /root/.zshrc export PATH=/root/go/bin:$PATH source /root/.zshrc ubuntu解决libc.so.6报错 ubuntu经常遇到libc.so.6报错: /XXXXX: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.32' not found (required by./XXXXX) 试了众多方法,终于找到一个有效的: 1 2 3 4 5 6 7 8 9 编辑更新源: vim /etc/apt/sources.list 添加 deb [http://th.archive.ubuntu.com/ubuntu](http://th.archive.ubuntu.com/ubuntu) jammy main 执行 apt-get update apt-get install libc6 ubuntu系统上systemd-resolved不使用127.0.0.53的方法 自建DNSlog总遇到53端口被占用,试了百度的几个方法也是治标不治本,甚至会影响服务器更新,试了下面的方法比较有效,也不影响服务器更新。 方法源于:https://dyrnq.com/ubuntu-update-etc-resolve-conf/ 有些文章说用关闭(删除)systemd-resolved ,而使用 resolvconf 、openresolv、Unbound 替换,测试发现在ubuntu 20.04.2 LTS NetworkManager已经被 systemd-networkd 取代,复杂度(依赖关系)较高。所以研究依然保持使用systemd-resolved而不使用127.0.0.53的配置思路。

WinRAR代码执行漏洞CVE 2023 38831复现

复现环境 Windows11(貌似自带7-zip) WinRAR 6.20 漏洞详情 WinRAR 在处理压缩包内同名的文件与文件夹时代码执行漏洞,攻击者构建由恶意文件与非恶意文件构成的特制压缩包文件,诱导受害者打开此文件后,将在受害者机器上执行任意代码。 影响版本 WinRAR < 6.23 漏洞复现 创建CVE-2023-38831文件夹,在该文件夹创建test文件夹,test文件夹内创建38831.txt文件,内容随意。 回到CVE-2023-38831文件夹,创建新的文件夹,命名为38831.txt。 接着在38831.txt文件夹创建名为38831.txt .cmd文件,注意有空格,内容为弹calc。 使用WinRAR将38831.txt文件夹重命名压缩 并追加test文件夹内的38831.txt文件 使用WinRAR打开压缩后的exploit_38831.zip文件,在38831.txt后追加一个空格 双击38831.txt文件即可执行命令 该漏洞可用于钓鱼,若受害者使用的WinRAR版本低于6.23,打开了攻击者构造的恶意文件即可达到攻击者目的。 漏洞修复 升级WinRAR至6.23及以上。 https://www.rarlab.com/

记录网盘及一些工具的搭建

网盘 最近想着天翼云盘和阿里云盘各有2T空间闲着,过于浪费,现在自建网盘如此火热,何不物尽其用。看很多师傅用Alist搭建,应该也挺好用,就用了Alist。 下载Alist Release相应版本文件到VPS并解压 1 2 3 4 5 6 7 8 # 解压下载的文件,得到可执行文件: tar -zxvf alist-xxxx.tar.gz # 授予程序执行权限: chmod +x alist # 运行程序 ./alist server # 获得管理员信息 ./alist admin 使用任意方式编辑 /usr/lib/systemd/system/alist.service 并添加如下内容,其中 path_alist 为 AList 所在的路径: 1 2 3 4 5 6 7 8 9 10 11 12 [Unit] Description=alist After=network.target [Service] Type=simple WorkingDirectory=path_alist ExecStart=path_alist/alist server Restart=on-failure [Install] WantedBy=multi-user.target 然后,执行 systemctl daemon-reload 重载配置,然后可以使用这些命令来管理程序: 启动: systemctl start alist 关闭: systemctl stop alist 配置开机自启: systemctl enable alist 取消开机自启: systemctl disable alist 状态: systemctl status alist 重启: systemctl restart alist 若要更新,下载新版Alist,把之前的替换了即可。

一些查看Windows信息的操作

查看账号信息 查看当前登录账户:queryuser 注销用户ID:logoff [ID] 查看用户:net user 查看用户登录情况:net user [username] 打开本地用户组:lusrmgr.msc 注册表查看账户,确认系统是否存在隐藏账户:regedit——>HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names 查看端口进程 查看当前连接:netstat -ano 查看当前成功建立的连接:netstat -ano | findstr “ESTABLISHED” 根据pid定位程序:tasklist | findstr “[pid]” 根据端口查看pid:netstat -ano | findstr “8080” 在“正在运行任务”中获取进程详细信息(进程开始时间、版本、大小等):运行——msinfo32——软件环境——正在运行任务 利用wmic查看进程执行时的命令: Wmic process where name='[进程名称]' get name,Caption,executablepath,CommandLine ,processid,ParentProcessId /value Wmic process where processid='[进程ID]' get name,Caption,executablepath,CommandLine ,processid,ParentProcessId /value 查看启动项 查看系统启动项:运行——msconfig 注册表查看是否有异常启动项: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run 查看计划任务 查看定时任务:终端运行schtasks,win7使用at 查看任务清单:C:\Windows\System32\Tasks 删除计划任务(管理员):SchTasks /Delete /TN [任务计划名称] 查看系统服务 查看服务:services.msc 删除服务:可手动删除,也可命令行删除。停止服务:sc stop [服务名称];删除服务:sc delete [服务名称] 查看文件 查看最近打开的文件:"%UserProfile%\Recent" 查看C:\Documents and Settings和C:\Users下是否存在可疑用户或文件 查看日志 1 2 3 4 5 6 7 8 9 10 11 12 Windows安全日志文件在以下路径: Windows 7及之前的Windows版本:C:\Windows\System32\config\security.

Docker逃逸判断三两事

最近测试再次遇到一个docker环境的情况,有些东西还是要现查现找,这次顺便再学习学习,一切皆来源于TWiki。 检测判断 判断是否为容器环境 1 cat /proc/1/cgroup | grep -qi docker && echo "Is Docker" || echo "Not Docker" 判断逃逸方法 在开始之前对于容器逃逸主要有以下三种方法: 不安全的配置 相关程序漏洞 内核漏洞 由于「相关程序漏洞」这种逃逸方法需要根据目标 Docker 的版本去判断,这里暂时没想到从容器内部获取 Docker 版本的方法,因此暂时还不支持这块的检测。 不安全的配置 特权模式 1 cat /proc/self/status | grep -qi "0000003fffffffff" && echo "Is privileged mode" || echo "Not privileged mode" 如果返回 Is privileged mode 则说明当前是特权模式;如果返回 Not privileged mode 则说明当前不是特权模式。 2. 挂载Docker Socket 1 ls /var/run/ | grep -qi docker.sock && echo "Docker Socket is mounted.

Linux提权之suid提权

环境:靶场insecurity 什么是suid SUID是赋予文件的一种特殊权限,具有这种特殊权限的文件会在其执行时,使调用者暂时获得该文件属主的权限。如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。 SUID提权的原理与Linux进程的UID有关,进程在运行的时候有以下三个UID: 1 2 3 (A)Real UID:执行该进程的用户的UID。Real UID只用于标识用户,不用于权限检查。 (B)Effective UID(EUID):进程执行时生效的UID。在对访问目标进行操作时,系统会检查EUID是否有权限。一般情况下,Real UID与EUID相同,但在运行设置了SUID权限的程序时,进程的EUID会被设置为程序文件属主的UID。 (C)Saved UID:在高权限用户降权后,保留的UID。 如果某个设置了SUID权限的程序运行后创建了shell,那么shell进程的EUID也会是这个程序文件属主的UID,如果属主为root,便是一个root shell。root shell中运行的程序的EUID也都是0,具备超级权限,于是便实现了提权。 使用chmod u+s [文件]命令为文件配置SUID权限。 提权操作 suid提权其实就是查找具有特定suid权限的参数,再利用其参数进行提权命令调用。suid提权仅对可执行二进制文件有效。 查看本机用有suid权限的文件: 1 2 3 4 find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} \; find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \; taskset 执行命令 taskset 1 /bin/bash -p,成功获取到root权限,提权成功 xxd