linux命令随笔

希望有用的Linux命令的集合,这不是完整列表,而是常用命令+语法(作为“备忘单”的一种)的集合。

Linux渗透测试命令

下面列出的命令是为本地枚举而设计的,渗透测试人员在后期开发过程中或执行命令注入时会使用典型的命令,等等。有关笔测试工具命令的深入列表和示例用法,请参阅我们的笔测试备忘单

Linux网络命令

命令描述

netstat -tulpn

显示带有进程ID(PID)的Linux网络端口

watch ss -stplu

实时查看带有套接字摘要的TCP,UDP开放端口。

lsof -i

显示已建立的连接。

macchanger -m MACADDR INTR

在KALI Linux上更改MAC地址。

ifconfig eth0 192.168.2.1/24

在Linux中设置IP地址。

ifconfig eth0:1 192.168.2.3/24

将IP地址添加到Linux中的现有网络接口。

ifconfig eth0 hw ether MACADDR

在Linux中使用ifconfig更改MAC地址。

ifconfig eth0 mtu 1500

使用ifconfig更改Linux的MTU大小,将1500更改为所需的MTU。

dig -x 192.168.1.1

在IP地址上挖掘反向查询。

host 192.168.1.1

如果未安装dig,则对IP地址进行反向查找。

dig @192.168.2.2 domain.com -t AXFR

使用dig执行DNS区域传输。

host -l domain.com nameserver

使用主机执行DNS区域传输。

nbtstat -A x.x.x.x

获取IP地址的主机名。

ip addr add 192.168.2.22/24 dev eth0

向Linux添加隐藏的IP地址,执行ifconfig时不显示。

tcpkill -9 host google.com

阻止从主机访问google.com。

echo "1" > /proc/sys/net/ipv4/ip_forward

启用IP转发,将Linux box变成路由器-方便通过Box路由流量。

echo "8.8.8.8" > /etc/resolv.conf

使用Google DNS。

系统信息命令

对于本地枚举很有用。

命令描述

whoami

显示Linux上当前登录的用户。

id

显示当前登录的用户和该用户的组。

last

显示上次登录的用户。

mount

显示已安装的驱动器。

df -h

在人类可读的输出中显示磁盘使用情况。

echo "user:passwd" | chpasswd

在一行中重设密码。

getent passwd

列出Linux上的用户。

strings /usr/local/bin/blah

显示无文本文件的内容,例如二进制文件中的内容。

uname -ar

显示正在运行的内核版本。

PATH=$PATH:/my/new-path

添加新的PATH,方便进行本地FS操作。

history

显示bash历史记录,用户先前输入的命令。

基于Redhat / CentOS / RPM的发行版

命令描述

cat /etc/redhat-release

显示Redhat / CentOS的版本号。

rpm -qa

列出基于RPM的Linux发行版上所有已安装的RPM。

rpm -q --changelog openvpn

检查已安装的RPM是否已针对CVE进行了修补,请grep输出CVE。

YUM命令

基于RPM的系统使用的软件包管理器,您可以获取有关已安装软件包的一些有用信息,或安装其他工具。

命令描述

yum update

使用YUM更新所有RPM软件包,并显示最新信息。

yum update httpd

更新单个软件包,在此示例中为HTTPD(Apache)。

yum install package

使用YUM安装软件包。

yum --exclude=package kernel* update

将软件包排除为无法通过YUM更新。

yum remove package

用YUM移除包装。

yum erase package

用YUM移除包装。

yum list package

列出有关yum软件包的信息。

yum provides httpd

软件包的功能,例如Apache HTTPD Server。

yum info httpd

显示软件包信息,体系结构,版本等。

yum localinstall blah.rpm

使用YUM安装本地RPM,从回购中结算部门。

yum deplist package

显示包装的部门。

yum list installed | more

列出所有已安装的软件包。

yum grouplist | more

显示所有YUM组。

yum groupinstall 'Development Tools'

安装YUM组。

基于Debian / Ubuntu / .deb的发行版

命令描述

cat /etc/debian_version

显示Debian版本号。

cat /etc/*-release

显示Ubuntu版本号。

dpkg -l

列出基于Debian / .deb的Linux发行版上的所有已安装软件包。

Linux用户管理

命令描述

useradd new-user

创建一个新的Linux用户。

passwd username

重置Linux用户密码,输入passwd您的root用户身份。

deluser username

删除Linux用户。

Linux解压缩命令

如何在Linux上提取各种档案(tar,zip,gzip,bzip2等)以及在档案内部进行搜索的其他技巧。

命令描述

unzip archive.zip

在Linux上提取zip文件。

zipgrep *.txt archive.zip

在.zip存档中搜索。

tar xf archive.tar

提取tar文件Linux。

tar xvzf archive.tar.gz

提取tar.gz文件Linux。

tar xjf archive.tar.bz2

提取tar.bz2文件Linux。

tar ztvf file.tar.gz | grep blah

在tar.gz文件中搜索。

gzip -d archive.gz

解压缩gzip文件Linux。

zcat archive.gz

在不解压缩的情况下读取Linux的gz文件。

zless archive.gz

less.gz归档文件命令功能相同

zgrep 'blah' /var/log/maillog*.gz

在Linux上的.gz档案文件内进行搜索,在压缩日志文件内进行搜索。

vim file.txt.gz

使用vim读取.txt.gz文件(我个人最喜欢的文件)。

upx -9 -o output.exe input.exe

UPX压缩.exe文件Linux。

Linux压缩命令

命令描述

zip -r file.zip /dir/*

在Linux上创建一个.zip文件。

tar cf archive.tar files

在Linux上创建tar文件。

tar czf archive.tar.gz files

在Linux上创建tar.gz文件。

tar cjf archive.tar.bz2 files

在Linux上创建tar.bz2文件。

gzip file

在Linux上创建一个file.gz文件。

Linux文件命令

命令描述

df -h blah

显示文件/目录Linux的大小。

diff file1 file2

比较/显示Linux上两个文件之间的差异。

md5sum file

生成MD5SUM Linux。

md5sum -c blah.iso.md5

在Linux上对照MD5SUM检查文件,假设文件和.md5都在同一目录中。

file blah

找出Linux上的文件类型,并显示文件是32位还是64位。

dos2unix

将Windows行尾转换为Unix / Linux。

base64 < input-file > output-file

Base64对输入文件进行编码,然后输出一个称为output-file的Base64编码文件。

base64 -d < input-file > output-file

Base64解码输入文件,并输出称为输出文件的Base64解码文件。

touch -r ref-file new-file

使用参考文件中的时间戳数据创建一个新文件,删除-r即可简单地创建一个文件。

rm -rf

删除文件和目录,而不提示您进行确认。

桑巴命令

从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

杂项命令

命令描述

init 6

从命令行重新启动Linux。

gcc -o output.c input.c

编译C代码。

gcc -m32 -o output.c input.c

交叉编译C代码,在64位Linux上编译32位二进制文​​件。

unset HISTORYFILE

禁用bash历史记录。

rdesktop X.X.X.X

从Linux连接到RDP服务器。

kill -9 $$

终止当前会话。

chown user:group blah

更改文件或目录的所有者。

chown -R user:group blah

更改文件或目录以及所有基础文件/目录的所有者-递归chown。

chmod 600 file

更改文件/目录权限,有关详细信息,请参见[Linux文件系统权限](#linux-file-system-permissions)。

清除bash历史记录:

      $ ssh user@X.X.X.X | cat /dev/null > ~/.bash_history
    

Linux文件系统权限

含义

777

rwxrwxrwx 无限制,全局WRX任何用户都可以做任何事情。

755

rwxr-xr-x 所有者拥有完全访问权限,其他人可以读取和执行文件。

700

rwx------ 所有者拥有完全访问权限,其他任何人都没有访问权限。

666

rw-rw-rw- 所有用户都可以读写,但不能执行。

644

rw-r--r-- 所有者可以读写,其他所有人都可以阅读。

600

rw------- 所有者可以读写,其他人则无权访问。

Linux文件系统

目录描述

/

/也称为“斜线”或根。

/bin

系统,系统管理员和用户共享的通用程序。

/boot

引导文件,引导加载程序(grub),内核,vmlinuz

/dev

包含对系统设备,具有特殊属性的文件的引用。

/etc

重要的系统配置文件。

/home

系统用户的主目录。

/lib

库文件,包括系统和用户所需的各种程序的文件。

/lost+found

故障期间保存的文件在这里。

/mnt

外部文件系统的标准安装点。

/media

外部文件系统的安装点(在某些发行版上)。

/net

整个远程文件系统的标准安装点-nfs。

/opt

通常包含额外的和第三方软件。

/proc

一个虚拟文件系统,其中包含有关系统资源的信息。

/root

root用户主目录。

/sbin

系统和系统管理员使用的程序。

/tmp

系统使用的临时空间,在重新启动后会清除。

/usr

所有与用户相关的程序的程序,库,文档等。

/var

存储用户创建的所有变量文件和临时文件,例如日志文件,邮件队列,后台打印程序。Web服务器,数据库等

Linux有趣的文件/目录

如果您尝试特权升级/执行后期利用,那么值得一看的地方。

目录描述

/etc/passwd

包含本地Linux用户。

/etc/shadow

包含本地帐户密码哈希。

/etc/group

包含本地帐户组。

/etc/init.d/

包含服务初始化脚本-值得一看以了解安装了什么。

/etc/hostname

系统主机名。

/etc/network/interfaces

网络接口。

/etc/resolv.conf

系统DNS服务器。

/etc/profile

系统环境变量。

~/.ssh/

SSH密钥。

~/.bash_history

用户bash历史记录日志。

/var/log/

Linux系统日志文件通常存储在此处。

/var/adm/

UNIX系统日志文件通常存储在此处。

/var/log/apache2/access.log

/var/log/httpd/access.log

Apache访问日志文件的典型路径。

/etc/fstab

文件系统挂载。

posted @ 2020-01-15 09:28  提笔冩未來  阅读(195)  评论(0编辑  收藏  举报