作为一名网络安全工作者,一说到渗透测试,所有人都会想到Kali Linux,Kali Linux系统是一款预装了许多渗透测试软件的Linux系统,是最常用的一款渗透测试系统工具,既然是一款Linux系统,那么要利用Kali Linux系统进行渗透测试,就必须掌握必要的Linux命令,下面我就根据自己的一些经验和网上搜集的相关资料,整理了一下渗透测试常用的Linux命令,给大家分享一下,希望对大家有所帮助。
Kali Linux
一、系统信息命令
whoami 显示Linux系统当前已登陆的用户;
id 显示显示当前已登录的用户和组;
last 显示最后一次登陆的用户;
mount 显示已挂载的驱动;
echo "user:passwd" | chpasswd 用一行命令重置密码;
getent passwd 列出 Linux 上的用户;
strings /usr/local/bin/blah 显示非文本文件的内容,例如:一个二进制文件里面有什么;
PATH=$PATH:/my/new-path 添加一个新的路径,方便进行本地文件系统(FS)操作;
history 显示用户在之前执行的 bash 脚本历史记录,还有敲入的命令。
二、检查配置命令
netstat -tulpn 在 Linux 中显示对应了进程ID(PID)的网络端口;
watch ss -stplu 通过套接字实时观察 TCP, UDP 端口;
lsof -i 显示确认了的连接;
macchanger -m MACADDR INTR 在 KALI Linux 上修改 MAC 地址;
ifconfig eth0 192.168.2.1/24 在 Linux 中设置 ID 地址;
ifconfig eth0:1 192.168.2.3/24 在 Linux 中向现有的网络接口添加 IP 地址;
ifconfig eth0 hw ether MACADDR 使用 ifconfig 修改 Linux 中的 MAC 地址;
ifconfig eth0 mtu 1500 在 Linux 中使用 ifconfig 修改 MTU 的大小,将 1500 改为你想要的 MTU;
dig -x 192.168.1.1 对 IP 地址进行反向查找;
host 192.168.1.1 在一个 IP 地址上进行反向查找,适用于没有安装 dig 的情况;
dig @192.168.2.2 domain.com -t AXFR 使用 dig 执行一次 DNS 区域传输;
host -l domain.com nameserver 使用 host 执行一次 DNS 区域传输;
nbtstat -A x.x.x.x 获取 IP 地址对应的域名;
ip addr add 192.168.2.22/24 dev eth0 向 Linux 添加一个隐藏的 IP 地址,在执行 ifconfig 命令时不会显示这个 IP 地址;
tcpkill -9 host google.com 阻止从主机访问 google.com;
echo "1" > /proc/sys/net/ipv4/ip_forward 启用 IP 转发,将 Linux 盒子变成一个路由器——这样就方便通过这个盒子来进行路由流量的控制;
echo "8.8.8.8" > /etc/resolv.conf 使用 Google 的 DNS。
Linux
三、用户管理命令
useradd new-user 创建一个新的 Linux 用户;
passwd username 重置 Linux 用户密码, 如果你是 root 用户,只要输入密码就行了;
deluser username 删除一个 Linux 用户。
四、解压缩命令
unzip archive.zip 在 Linux 上提取 zip 包中的文件;
zipgrep *.txt archive.zip 在一个 zip 压缩包中搜索;
tar xf archive.tar 在 Linux 上提取 tar 包中的文件;
tar xvzf archive.tar.gz 在 Linux 上提取 tar.gz 包中的文件;
tar xjf archive.tar.bz2 在 Linux 上提取 tar.bz2 包中的文件;
tar ztvf file.tar.gz | grep blah 在一个 tar.gz 文件中搜索;
gzip -d archive.gz 在 Linux 上提取 gzip 中的文件;
zcat archive.gz 在 Linux 以不解压缩的方式读取一个 gz 文件;
zless archive.gz 用较少的命令实现对 .gz 压缩包相同的功能;
zgrep 'blah' /var/log/maillog*.gz 在 Linux 上对 .gz 压缩包里面的内容执行搜索,比如搜索被压缩过的日志文件;
vim file.txt.gz 使用 vim 读取 .txt.gz 文件;
upx -9 -o output.exe input.exe 在 Linux 上使用 UPX 压缩 .exe 文件。
五、压缩命令
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 上创建一个 .gz 文件。
六、文件目录
df -h blah 在 Linux 上显示文件/目录的大小;
diff file1 file2 在 Linux 上比对/显示两个文件之间的差别;
md5sum file 在 Linux 上生成 MD5 摘要;
md5sum -c blah.iso.md5 在 Linux 上检查文件的 MD5 摘要,这里假设文件和 .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 解码,然后输出一个叫做 output-file 的 Base64 解码文件;
touch -r ref-file new-file 使用来自于引用文件的时间戳数据创建一个新文件,放上 -r 以简单地创建一个文件;
rm -rf 不显示确认提示就删除文件和目录。
渗透测试
七、Misc命令
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) ;
八、文件权限
777 rwxrwxrwx 没有限制,完全可读可写可执行(RWX),用户可以做任何事情;
755 rwxr-xr-x 拥有者可完全访问,其他人只能读取和执行文件;
700 rwx------ 拥有者可完全访问,其他人都不能访问;
666 rw-rw-rw- 所有人可以读取和写入,但不可执行;
644 rw-r--r-- 拥有者可以读取和写入,其他人只可以读取;
600 rw------- 拥有者可以读取和写入,其他人都不能访问。
九、重要文件/目录
/etc/passwd 包含了本地 Linux 的用户;
/etc/shadow 包含了哈希过的本地账户密码;
/etc/group 包含了本地账户分组;
/etc/init.d/ 包含了服务网初始化脚本 – 具体都安装了些啥应该值得一瞧;
/etc/hostname 系统的 hostname;
/etc/network/interfaces 网络接口;
/etc/resolv.conf 系统的 DNS 服务;
/etc/profile 系统的环境变量;
~/.ssh/ SSH 密钥;
~/.bash_history 用户的 bash 历史日志;
/var/log/ Linux 系统的日志文件一般就被存放在这里;
/var/adm/ UNIX 系统的日志文件一般就被存在在这里;
/var/log/httpd/access.log Apache 访问日志文件通常的存在路径;
/etc/fstab 挂载的文件系统。