Hello World

Kali Linux

2025/03/02
loading

报错

安装snort报错:Unable to locate package snort
解决方案:

1
2
3
4
sudo nano /etc/apt/sources.list
deb http://http.us.debian.org/debian/ bullseye non-free contrib main
sudo apt-get update
sudo apt-get install snort

来源 :https://www.reddit.com/r/Kalilinux/comments/wg3gkn/snort_on_kali_linux_will_not_install/

Linux常用指令

pwd:present working directory 查看当前工作目录
whoami:查看登录用户
cd:change directory 切换目录。可以用cd .. ..来向上两层
ls:list 查看目录内容,-l 表示long 显示文件详细信息,-a 查看隐藏文件
-- help:几乎所有命令都有帮助文件,Linux约定在单词前加两个破折号,在字母前加单破折号。也可以用-?查看帮助。
man:多数命令都有手册
locate:后跟一个关键词,遍历整个文件系统查找。结果可能很多而且通常每天更新一次。
whereis:只返回二进制文件和man页
which:返回PATH变量中二进制文件的位置
find:最强大最灵活的搜索程序,基本语法:find directory options expression。例如从根目录搜索名为apache2的文件:find / -type f -name apache2。f表示普通文件。仅显示确切的匹配项,可以加上通配符。
通配符:* . ? []

grep:过滤器,输出从一条命令通过管道()传输到另一个命令时,通常会使用grep。
ps:processes 显示进程信息。ps aux显示运行的所有进程。ps aux | grep apache2显示所有服务然后将输出发送到grep。也可以cat输出文件内容后用grep过滤。关键词

cat:concatenate 显示文件内容以及创建小文件。cat后跟文件名会显示文件内容,cat后加重定向”>“创建文件,用两个重定向符”>>“,追加内容。
touch:最初的开发目的是更改文件的某些详细信息,例如创建或修改的时间。如果文件名不存在,创建该空文件。
mkdir:创建目录
cp:复制文件
mv:移动文件,也可以重命名文件
rm:删除文件,-r 删除整个目录
rmdir:删除空目录

echo $SHELL:查看正在使用的shell。如果是bash,编辑~/.bash_profile~/.bashrc。如果是zsh,编辑 ~/.zshrc。最后用source后跟编辑的配置文件来重新加载配置文件。

文件操作

head:查看文件前10行,-20 显示前20行。
tail:类似于head,查看后10行,-20 显示后20行。
nl:显示文件行号

如果想看一个文件的第507-512行:nl -n+507 filename | head -n 6

sed:搜索文本出现次数,并且对其执行某些操作。sed s/mysql/MYSQL/g filename > filename2,s命令执行搜索,两个关键词,g表示全局替换,结果保存在一个新文件中。去掉g可以只替换第一个匹配项。g换成2可以只替换第二个匹配项。

more:查看文件内容,一次显示一页。
less:与more类似,按下斜杠/进行搜索。按下n查看下一个匹配项。

网络命令

ifconfig:检查活动网络接口并与之交互。eth0表示Ethernet0。网络硬件唯一地址MAC media access control。Bcast广播地址,用于向子网所有IP发送信息。Mask网络掩码,确定IP地址的哪一部分连接到本地网络。lo表示localhost本地回环地址。wlan表示无线接口或适配器。来自ifconfig的信息可以连接和操作局域网LAN设置。
加上两个参数:接口和IP地址,更改接口的IP地址。也可以修改接口的网络掩码和广播地址。
ifconfig eth0 down关闭接口,然后ifconfig eth0 hw ether newMAC伪装MAC地址,ifconfig eth0 up开启接口。(hw指硬件hard ware)

iwconfig:如果有无线适配器,可以查看适配器的IP地址,MAC地址,所处的模式等。无线扩展到模式Managed,Monitor,promiscuous。promiscuous模式用来破解无线密码。

linux有一个动态主机配置协议dynamic host configuration protocol DHCP服务器。DHCP服务器为子网上的所有系统分配IP地址,并保留任何时候将哪个IP地址分配给哪台计算机的日志文件。有助于攻击后追踪黑客。
dhclient eth0从指定的网络接口eth0发送DHCPDISCOVER请求,然后从DHCP服务器接收DHCPOFFER并使用dhcp请求向DHCP服务器分配IP。

DNS:domain name system域名系统。旨在将域名转换为IP地址。dig命令,收集有关目标域的DNS信息,此信息可能包含目标名称服务器nameserver(将目标名称转换为IP地址的服务器)的IP地址,目标的电子邮件服务器以及可能的子域和IP地址。
dig hackers-arise.com ns。ns表示nameserver。mx选项表示mail exchange server,查看连接到域的电子邮件服务器地址。
最常见的DNS服务器是伯克利internet name domain BIND。
在/etc/resolv.conf中修改DNS服务器。echo "nameserver 8.8.8.8" > /etc/resolv.conf
注:如果使用的DHCP地址,而且DHCP提供了DNS设置,则DHCP服务器会在续订DHCP地址时替换文件内容。

/etc/hosts文件与DNS类似,指定自己的IP地址-域名映射。这对于劫持局域网上的TCP连接以使用dnsspoof等工具将流量定向到恶意web服务器非常有用。确保在IP地址和域名之间按Tab而不是空格。了解dnsspoof和Ettercap等工具,可以使用hosts文件将LAN上访问某网站到任何流量定向到其他服务器。

软件管理

apt-get
apt-cache search keyword,检查软件包是否在自己的存储库中。
apt-get install packagename,安装软件包
apt-get remove packagename,删除软件包。仅用remove不会删除配置文件,重新安装时无需重新配置。apt-get purge packagename,删除软件包及其配置文件。
apt-get update,更新所有软件包。更新与升级有区别:更新只是更新软件包列表。
apt-get upgrade,升级现有软件包,需要使用root身份。
存储库:保存特定Linux发行版软件的服务器。可以在kali中添加几个备份存储库,以免在kali存储库中找不到特定软件。/etc/apt/sources.list为存储库文件,修改此文件来指示从哪些存储库下载文件。注:解决报错中的第一个问题的方案就是添加一个存储库。
基于GUI的安装工具:Synaptic和Gdebi

文件和目录的权限控制

可以为”文件的所有者”,”特定用户组”,”所有其他用户”指定权限。
特定级别的权限:r读取(打开和查看文件),w写入(查看和编辑文件),x执行文件(不一定查看或编辑)。
chown:change owner修改文件所有者
chgrp:change group更改文件所有权到另一个组
chmod:change mode修改权限,可以用十进制的方式,每个数字表示一组rwx权限。也可以用UGO的方式,u表示用户,g表示组,o表示其他人。chmod u-w,o+x filename,删除用户的写权限,添加其他用户的执行权限。
Linux自动为所有文件和目录分配默认权限,分别为666和777。也就是说,默认情况下,无法在下载文件后立即执行文件。
umask:修改默认权限,umask是三位数字,创建文件或目录时,权限为默认值减umask。在kali中,umask预配置为022。每个用户可以在/home/username/.profile修改自己的umask。
三种特殊权限:SUID,具有SUID的文件始终以拥有该文件的用户身份执行,在常规权限前添4。SGID,如果在文件上设置,允许以拥有该文件的组身份执行该文件,类似于SUID。如果在目录上设置,则目录中创建的任何文件的组所有权都将设置为目录所有者的组所有权,在常规权限前添2。Sticky Bit已经过时
find / -user root -perm -4000,查找有SUID的文件。
第一组权限用s代替x,表示设置了SUID。这意味着运行该文件的任何人都拥有root用户的权限。

进程管理

进程是一个正在运行和使用资源的程序。ps命令查看运行的进程。创建进程时按顺序为每个进程分配一个唯一的进程ID(PID)。加上选项aux,显示所有用户在系统上运行的所有进程,加选项-ef输出类似。列名的解释:user,调用进程的用户。command,启动进程的命令名称。
ps命令默认按启动顺序也就是PID升序排列的。
top命令可以按照使用资源排序。按H或者?显示交互式命令列表。
nice命令建议修改进程优先级。范围从-20到+19,默认为0。nice -n -10 processName,将nice值减10,提高优先级,nice -n 10 processName,将nice值加10,对其他用户和进程友好。renice 20 PID,修改PID的nice值。
kill:后面跟-signal然后跟PID,有64个signal,不提供的话,默认是sigterm。kill -1 PID,hup信号,使用相同的PID重新启动。kill -9 PID,绝对kill信号,将进程的资源发送到特殊设备/dev/null来强制进程停止。killall命令类似于kill,不用PID,而是用进程名称。
后台运行进程,命令后加&。fg命令(foreground)后面跟PID,将后台运行的进程移动到前台。
调度进程:安排进程在一天中的特定时间运行。at命令是一个守护进程一个后台进程,用于安排作业在将来的某个时间点运行一次。crond命令适合将任务安排在每天、每周或每月发生。at命令,进入交互模式,输入执行的时间点,回车后输入要执行的程序。
黑客通常需要在他们想要杀死的目标上找到进程,例如防病毒软件或防火墙。

环境变量

从技术上讲,有两种类型的变量:shell和environment。环境变量是系统范围变量,被shell或进程继承。而shell变量通常以小写形式给出,仅在设置它们的shell中有效。变量是键值对,多个值的话用冒号隔开key=value1:value2:value3。如果值中有空格,需要用引号包含。
env命令查看默认环境变量,set命令列出系统唯一的所有环境变量,可以用set | more,更容易查看。也可以用grep过滤set | grep HISTSIZE,此变量包含命令历史记录文件将存储的最大命令数。这些命令是您之前在此会话中键入到命令提示符中的任何命令,可以使用向上和向下箭头键调用。
HISTSIZE=0,在session中修改该变量,系统就不会存储以前输入的命令。这样修改环境变量,该更改仅发生在特定环境中,如果在kali中执行,该环境就是bash shell会话。当关闭终端后,更改将会丢失。export HISTSIZE,永久化更改。
PS1环境变量是shell提示符的格式。
环境中最重要的变量之一是PATH,控制shell在系统上查找您输入的命令的位置。echo $PATH查看变量。
PATH=$PATH:/root/newhackingtool,将新目录添加到PATH变量中。$PATH就是以前的PATH,后面加个冒号就是在后面再填上一个值,然后重新赋值给PATH。
直接在shell中用变量名=值来自定义变量,用unset命令删除变量。

bash脚本

脚本语言ruby(metasploit使用ruby编写的),python,perl(最好的文本操作脚本语言)。
shell是用户和操作系统之间的接口。
打开文本编辑器,首先,需要告诉操作系统要为脚本使用哪个解释器,输入shebang(就是一个井号加一个感叹号),后面加上/bin/bash,指示希望操作系统使用bash shell解释器。
echo命令,告诉系统简单的在显示器显示echo后面的内容,字符串用双引号引起来。注释以井号开头。
刚保存的文件没有执行权限,可以使用chmod 755修改
read命令,后面跟变量名,变量存储用户输入。用$后面跟变量名来使用变量的值。

压缩和存档

压缩分为有损和无损。有损压缩会丢失信息的完整性,这种类型的压缩适用于图形视频和音频,这些文件中,文件中的微小差异几乎不明显。mp3,mp4,png,jpg都是有损压缩算法。
tar:tape archive磁带存档
-c 创建压缩文件
-v 显示进度
-x 解压模式
-f 要压缩或解压的文件,-f必须位于最后一个参数
-z gzip模式,一般位于第一个参数位置
-C 解压目的地
-t 查看压缩文件的内容

压缩时常用组合:
tar -cvf test.tar 1.txt 2.txt 3.txt
tar -zcvf text.tar.gz 1.txt 2.txt 3.txt

解压时常用组合
tar -xvf name.tar
tar -xvf name.tar -C /…
tar -zxvf name.tar.gz

nmap

用于探测系统以查看它是否连接到网络并找出哪些端口是打开的。从发现的开放端口中,可以推测目标系统上运行了哪些服务。
最简单的形式:

1
2
nmap <type of scan><target IP><optionally, target port>
<扫描类型><目标 IP><可选,目标端口>

最简单最可靠的nmap扫描是TCP连接扫描,用-sT指定。
nmap -sT 192.168.181.1 -p 3306,扫描该IP的3306端口是否打开。

扫描局域网内的3306端口:

1
2
nmap -sT 192.168.101.0/24 -p 3306 > /dev/null -oG MySQLscan
cat MySQLscan | grep open > MySQLscan2

将标准nmap输出丢弃(如果是远程使用脚本,需要将输出隐藏起来),-oG表示将结果以grep-able格式发送到文件中。

Snort

世界上最好的网络入侵检测系统network intrusion detection system NIDS,通常用于检测黑客的入侵,如果想成为成功的黑客,必须熟悉NIDS如何阻止攻击,以及如何滥用NIDS来避免被发现。

Metasploit

最流行的渗透测试和黑客框架。漏洞利用框架。
/usr/share/wordlists/metasploit。包含多个单词列表,用于暴力破解密码。
msfconsole命令,启动metasploit。

CATALOG
  1. 1. 报错
  2. 2. Linux常用指令
    1. 2.1. 文件操作
  3. 3. 网络命令
  4. 4. 软件管理
  5. 5. 文件和目录的权限控制
  6. 6. 进程管理
  7. 7. 环境变量
  8. 8. bash脚本
  9. 9. 压缩和存档
  10. 10. nmap
  11. 11. Snort
  12. 12. Metasploit