渗透命令汇总
su
su 和 su- 的区别:
- su命令,只会更改当前用户,而不会更改当前的用户环境,比如你从oracle 用户su到root账户中,当前路径仍是你刚才的路径,环境变量仍是oracle用户的
- su- 命令,则在更改当前用户信息的同时还会更改用户环境,但是假如你从oracle 用户su -到root账户,你会发现你的当前路径已经变为/root/,环境变量也变了
export
export命令是一条用于在Unix/Linux系统中==设置环境变量==的命令。它可以将一个变量赋值给一个环境变量,使得该变量在当前的Shell会话中可用,并可以在该会话中被其他程序或脚本使用。
export命令的基本语法如下:
export VARIABLE_NAME=VALUE
其中,VARIABLE_NAME是要设置的环境变量的名称,VALUE是该变量的值。
例如,要将一个名为PATH的环境变量设置为"/usr/local/bin:/usr/bin:/bin",可以使用以下命令:
export PATH="/usr/local/bin:/usr/bin:/bin"
需要注意的是,export命令只在当前的Shell会话中有效。如果想要将环境变量设置为全局变量,可以将export命令添加到shell的配置文件(如.bashrc或.bash_profile)中。这样,在每次登录或启动新的Shell时,该环境变量都会自动设置。
sudo
简介
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
原理
sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。
参数
-V | 显示版本编号 |
---|---|
-h | 会显示版本编号及指令的使用方式说明 |
-i | 切换用户身份到root |
==-l== | 显示出自己(执行 sudo 的使用者)的sudo权限,并确定可以执行哪些命令以及以哪种身份执行。 |
-v | 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码 |
-k | 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) |
-b | 将要执行的指令放在背景执行 |
-p | prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称 |
-u | username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码) |
-s | 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell |
-H | 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root ) |
command | 要以系统管理者身份(或以 -u 更改为其他人)执行的指令 |
uname
常用于查看系统架构msf生成后门
uname
是一个常用的命令行指令,用于获取操作系统的相关信息。它可以用于不同的操作系统,例如Linux、UNIX、macOS等。uname
的全称是"UNIX name",它可以打印出当前操作系统的一些基本信息,包括操作系统名称、内核版本号、处理器类型等。
uname
指令可以接受一些参数来获取不同的信息,常用的参数包括:
-a
(或--all
):打印所有可用信息;-s
(或--kernel-name
):打印内核名称;-n
(或--nodename
):打印网络节点主机名;-r
(或--kernel-release
):打印内核版本;-v
(或--kernel-version
):打印内核详细版本信息;-m
(或--machine
):打印硬件名称;-p
(或--processor
):打印处理器类型;-i
(或--hardware-platform
):打印硬件平台;-o
(或--operating-system
):打印操作系统名称。
compgen -c
查看能使用的命令
find
linux下每个目录的权限也是不同的,有些命令需要特定的权限下才能执行,我们可以用find命令找到特定权限的目录
find / -user www-data -type d
寻找特权文件
find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 -user root -print 2>/dev/null
它的含义是在根目录下查找所有属主为root且具有设置了SUID权限的文件,并将结果打印出来。这个命令通常用于查找具有特殊权限的文件,这些文件可以被以root用户的身份执行,即使其他用户没有执行权限。通过将结果重定向到/dev/null,可以将错误信息屏蔽掉,只显示查找结果。
设置了SUID权限的权限的值是4000。这指示当用户执行该文件时,将使用文件的所有者的权限而不是执行用户的权限。
python
起web服务,搭配wget使用
python -m Web服务器模块 [端口号,默认8000]
这里的“Web服务器模块”有如下三种:
BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler。
SimpleHTTPServer: 包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。
CGIHTTPServer: 包含处理POST请求和执行CGIHTTPRequestHandler类。
启动http服务
对于Python2,简单搭建Web服务器,只需在需要搭建Web服务器的目录(如 /home/pythontab/)下,输入如下命令:
python -m SimpleHTTPServer 8080
对于Python3,其创建Web服务器的等价命令,如下:
python -m http.server 8080
-d/--directory 参数指定工作目录
可以通过 -b/--bind 指定地址
交互式窗口
python -c 'import pty; pty.spawn("/bin/bash")'
openssl
openssl可以实现:秘钥证书管理、对称加密和非对称加密 。
加密算法
对称加密算法
OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。
非对称加密算法
OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。
信息摘要算法
OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。
相较于使用ssh-keygen,使用openssl也可以设定用于ssh连接的非对称密钥对
tasklist /svc
查看进程和运行的exe
ftp
命令 | 说明 |
---|---|
ftp | 访问 ftp 命令解释程序。 |
ftp remote-system | 建立与远程系统的 ftp 连接。有关说明,请参见如何打开与远程系统的 ftp 连接。 |
open | 从命令解释程序登录到远程系统。 |
close | 从远程系统注销并返回到命令解释程序。 |
bye | 退出 ftp 命令解释程序。 |
help | 列出所有 ftp 命令;或者如果提供了命令名称,则简要说明该命令所执行的操作。 |
reset | 使命令-回复序列与远程 ftp 服务器再次同步。 |
ls | 列出远程工作目录的内容。 |
pwd | 显示远程工作目录的名称。 |
cd | 更改远程工作目录。 |
lcd | 更改本地工作目录。 |
mkdir | 在远程系统上创建目录。 |
rmdir | 删除远程系统上的目录。 |
get, mget | 将远程工作目录中的某个文件(或多个文件)复制到本地工作目录。 |
put, mput | 将本地工作目录中的某个文件(或多个文件)复制到远程工作目录。 |
delete, mdelete | 删除远程工作目录中的某个文件(或多个文件)。 |
ftp -s:ftp.txt,ftp处理txt中记录的命令,如:
open 192.168.111.6 21
dongyu
123456
bin
put hello.txt
bye