linux命令随笔
希望有用的Linux命令的集合,这不是完整列表,而是常用命令+语法(作为“备忘单”的一种)的集合。
Linux渗透测试命令
下面列出的命令是为本地枚举而设计的,渗透测试人员在后期开发过程中或执行命令注入时会使用典型的命令,等等。有关笔测试工具命令的深入列表和示例用法,请参阅我们的笔测试备忘单。
Linux网络命令
命令 | 描述 |
---|---|
|
显示带有进程ID(PID)的Linux网络端口 |
|
实时查看带有套接字摘要的TCP,UDP开放端口。 |
|
显示已建立的连接。 |
|
在KALI Linux上更改MAC地址。 |
|
在Linux中设置IP地址。 |
|
将IP地址添加到Linux中的现有网络接口。 |
|
在Linux中使用ifconfig更改MAC地址。 |
|
使用ifconfig更改Linux的MTU大小,将1500更改为所需的MTU。 |
|
在IP地址上挖掘反向查询。 |
|
如果未安装dig,则对IP地址进行反向查找。 |
|
使用dig执行DNS区域传输。 |
|
使用主机执行DNS区域传输。 |
|
获取IP地址的主机名。 |
|
向Linux添加隐藏的IP地址,执行ifconfig时不显示。 |
|
阻止从主机访问google.com。 |
|
启用IP转发,将Linux box变成路由器-方便通过Box路由流量。 |
|
使用Google DNS。 |
系统信息命令
对于本地枚举很有用。
命令 | 描述 |
---|---|
|
显示Linux上当前登录的用户。 |
|
显示当前登录的用户和该用户的组。 |
|
显示上次登录的用户。 |
|
显示已安装的驱动器。 |
|
在人类可读的输出中显示磁盘使用情况。 |
|
在一行中重设密码。 |
|
列出Linux上的用户。 |
|
显示无文本文件的内容,例如二进制文件中的内容。 |
|
显示正在运行的内核版本。 |
|
添加新的PATH,方便进行本地FS操作。 |
|
显示bash历史记录,用户先前输入的命令。 |
基于Redhat / CentOS / RPM的发行版
命令 | 描述 |
---|---|
|
显示Redhat / CentOS的版本号。 |
|
列出基于RPM的Linux发行版上所有已安装的RPM。 |
|
检查已安装的RPM是否已针对CVE进行了修补,请grep输出CVE。 |
YUM命令
基于RPM的系统使用的软件包管理器,您可以获取有关已安装软件包的一些有用信息,或安装其他工具。
命令 | 描述 |
---|---|
|
使用YUM更新所有RPM软件包,并显示最新信息。 |
|
更新单个软件包,在此示例中为HTTPD(Apache)。 |
|
使用YUM安装软件包。 |
|
将软件包排除为无法通过YUM更新。 |
|
用YUM移除包装。 |
|
用YUM移除包装。 |
|
列出有关yum软件包的信息。 |
|
软件包的功能,例如Apache HTTPD Server。 |
|
显示软件包信息,体系结构,版本等。 |
|
使用YUM安装本地RPM,从回购中结算部门。 |
|
显示包装的部门。 |
|
列出所有已安装的软件包。 |
|
显示所有YUM组。 |
|
安装YUM组。 |
基于Debian / Ubuntu / .deb的发行版
命令 | 描述 |
---|---|
|
显示Debian版本号。 |
|
显示Ubuntu版本号。 |
|
列出基于Debian / .deb的Linux发行版上的所有已安装软件包。 |
Linux用户管理
命令 | 描述 |
---|---|
|
创建一个新的Linux用户。 |
|
重置Linux用户密码,输入 |
|
删除Linux用户。 |
Linux解压缩命令
如何在Linux上提取各种档案(tar,zip,gzip,bzip2等)以及在档案内部进行搜索的其他技巧。
命令 | 描述 |
---|---|
|
在Linux上提取zip文件。 |
|
在.zip存档中搜索。 |
|
提取tar文件Linux。 |
|
提取tar.gz文件Linux。 |
|
提取tar.bz2文件Linux。 |
|
在tar.gz文件中搜索。 |
|
解压缩gzip文件Linux。 |
|
在不解压缩的情况下读取Linux的gz文件。 |
|
与 |
|
在Linux上的.gz档案文件内进行搜索,在压缩日志文件内进行搜索。 |
|
使用vim读取.txt.gz文件(我个人最喜欢的文件)。 |
|
UPX压缩.exe文件Linux。 |
Linux压缩命令
命令 | 描述 |
---|---|
|
在Linux上创建一个.zip文件。 |
|
在Linux上创建tar文件。 |
|
在Linux上创建tar.gz文件。 |
|
在Linux上创建tar.bz2文件。 |
|
在Linux上创建一个file.gz文件。 |
Linux文件命令
命令 | 描述 |
---|---|
|
显示文件/目录Linux的大小。 |
|
比较/显示Linux上两个文件之间的差异。 |
|
生成MD5SUM Linux。 |
|
在Linux上对照MD5SUM检查文件,假设文件和.md5都在同一目录中。 |
|
找出Linux上的文件类型,并显示文件是32位还是64位。 |
|
将Windows行尾转换为Unix / Linux。 |
|
Base64对输入文件进行编码,然后输出一个称为output-file的Base64编码文件。 |
|
Base64解码输入文件,并输出称为输出文件的Base64解码文件。 |
|
使用参考文件中的时间戳数据创建一个新文件,删除-r即可简单地创建一个文件。 |
|
删除文件和目录,而不提示您进行确认。 |
桑巴命令
从Linux连接到Samba共享。
$ smbmount //server/share /mnt/win -o user=username,password=password1
$ smbclient -U user \\\\server\\share
$ mount -t cifs -o username=user,password=password //x.x.x.x/share /mnt/share
突破限壳
将它们归功于G0tmi1k(或他从哪里偷走它们!)。
Python技巧:
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
/bin/sh -i
杂项命令
命令 | 描述 |
---|---|
|
从命令行重新启动Linux。 |
|
编译C代码。 |
|
交叉编译C代码,在64位Linux上编译32位二进制文件。 |
|
禁用bash历史记录。 |
|
从Linux连接到RDP服务器。 |
|
终止当前会话。 |
|
更改文件或目录的所有者。 |
|
更改文件或目录以及所有基础文件/目录的所有者-递归chown。 |
|
更改文件/目录权限,有关详细信息,请参见[Linux文件系统权限](#linux-file-system-permissions)。 |
清除bash历史记录:
$ ssh user@X.X.X.X | cat /dev/null > ~/.bash_history
Linux文件系统权限
值 | 含义 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Linux文件系统
目录 | 描述 |
---|---|
|
/也称为“斜线”或根。 |
|
系统,系统管理员和用户共享的通用程序。 |
|
引导文件,引导加载程序(grub),内核,vmlinuz |
|
包含对系统设备,具有特殊属性的文件的引用。 |
|
重要的系统配置文件。 |
|
系统用户的主目录。 |
|
库文件,包括系统和用户所需的各种程序的文件。 |
|
故障期间保存的文件在这里。 |
|
外部文件系统的标准安装点。 |
|
外部文件系统的安装点(在某些发行版上)。 |
|
整个远程文件系统的标准安装点-nfs。 |
|
通常包含额外的和第三方软件。 |
|
一个虚拟文件系统,其中包含有关系统资源的信息。 |
|
root用户主目录。 |
|
系统和系统管理员使用的程序。 |
|
系统使用的临时空间,在重新启动后会清除。 |
|
所有与用户相关的程序的程序,库,文档等。 |
|
存储用户创建的所有变量文件和临时文件,例如日志文件,邮件队列,后台打印程序。Web服务器,数据库等 |
Linux有趣的文件/目录
如果您尝试特权升级/执行后期利用,那么值得一看的地方。
目录 | 描述 |
---|---|
|
包含本地Linux用户。 |
|
包含本地帐户密码哈希。 |
|
包含本地帐户组。 |
|
包含服务初始化脚本-值得一看以了解安装了什么。 |
|
系统主机名。 |
|
网络接口。 |
|
系统DNS服务器。 |
|
系统环境变量。 |
|
SSH密钥。 |
|
用户bash历史记录日志。 |
|
Linux系统日志文件通常存储在此处。 |
|
UNIX系统日志文件通常存储在此处。 |
|
Apache访问日志文件的典型路径。 |
|
文件系统挂载。 |