文章目录
加粗的部分需要自定义
Linux系统详细信息
文件系统结构
文件位置 | 描述 |
---|---|
/ | 文件系统跟目录 |
/bin | 用户二进制文件 |
/boot | 系统启动相关文件 |
/dev | 系统设备接口文件 |
/etc | 系统配置文件 |
/home | 用户文件目录 |
/lib | 重要软件库 |
/opt | 第三方软件库 |
/proc | 系统和运行程序 |
/root | root用户主目录 |
/sbin | 系统管理员二进制文件 |
/tmp | 临时文件 |
/usr | 包含所有系统文件 |
/var | 可变系统文件 |
重要文件目录
文件位置 | 描述 |
---|---|
/etc/shadow | 用户帐户信息和密码哈希值 |
/etc/passwd | 用户账户信息 |
/etc/group | 组名 |
/etc/rc.d | 启动服务(rc0.d-rc6.d) |
/etc/init.d | 包含启动/停止脚本 |
/etc/hostname | 硬编码的主机名和IP |
/etc/hostname | 完整主机名和域名 |
/etc/network/interfaces 或 /etc/netplan | 网络配置 |
/etc/profile | 系统环境变量 |
/etc/apt/sources.list | Debian软件包源码 |
/etc/resolv.conf | DNS配置 |
~/.bash_history | 用户bash历史记录 |
~/.ssh | ssh密钥存储库 |
/var/log | 系统日志文件(大多数Linux) |
/var/log/apache2/access.log | apache连接日志 |
/etc/passwd文件格式
root: | x: | 0: | 0: | root: | /root: | /bin/bash |
---|---|---|---|---|---|---|
登录名 | 密码(/etc/shadow文件中的密码) | 用户ID(UID) | 组ID(GID) | 用户全名 | 用户主目录 | 用户默认shell |
Linux系统信息枚举
操作系统信息
命令 | 描述 |
---|---|
df -h | 磁盘使用情况 |
uname -a | 内核版本和CPU信息 |
cat /etc/issue | 显示操作系统信息 |
cat /proc/version | 显示系统内核信息 |
which <SHELL_NAME> | 定位可执行文件或系统中每个shell的位置(包括python, curl, bash等) |
使用dpkg操作包
命令 | 描述 |
---|---|
dpkg --get-selections | 列出所有已安装的包 |
dpkg -i <PACKAGE_NAME> | 在当前目录安装包 |
dpkg -r <PACKAGE_NAME> | 卸载包 |
使用apt-get更新系统
命令 | 描述 |
---|---|
apt-get update | 更新存储库和并检查已安装包的是否可更新,为操作系统/工具更新做准备 |
apt-get upgrade | 安装更新版本的包 |
进程操作
命令 | 描述 |
---|---|
ps -ef | 列出进程 |
kill -9 <PID> | 强制终止特定PID的进程 |
kliiall <PROCESS_NAME> | 终止所有匹配特定名称的进程 |
top | 列出所有进程,按活跃度排序 |
用户帐户枚举和配置
命令 | 描述 |
---|---|
getent passwd | 显示用户和服务帐户 |
useradd -m <USERNAME> | 添加一个用户 |
username -g <GROUPNAME> <USERNAME> | 添加用户到组 |
passwd <USERNAME> | 更改用户密码 |
usermod --expiredate 1 – lock --shell /bin/nologin <USERNAME> | 锁定用户帐户 |
usermod --expiredate 99999 --unlock --shell /bin/bash <USERNAME> | 解锁用户帐户 |
chage -l <USERNAME> | 列举用户帐户详细信息 |
userdel <USERNAME> | 删除用户 |
网络配置
命令 | 描述 |
---|---|
watch --interval 3 ss -t -all | 每3秒列出所有正在监听、已建立和已连接的TCP套接字 |
netstat -tulpn | 列出所有带有相关PID/程序名的侦听TCP和UDP套接字 |
lsof -i -u <USERNAME> -a | 列出与特定用户相关的所有网络活动 |
ifconfig <INTERFACE_NAME> <NEW_IP> netmask <NEW_SUBNET_MASK> | 设置ip和网络掩码 |
route add default gw <IP_ADDRESS> <INTERFACE_NAME> | 设置网关 |
网络配置表
命令 | 描述 |
---|---|
ifconfig <INTERFACE_NAME> mtu <SIZE> or ip link set dev <INTERFACE_NAME> mtu <SIZE> | 更改MTU大小 |
ifconfig <INTERFACE_NAME> hw ether <MAC_ADDRESS> | 更改MAC地址 |
cat /var/log/messages | grep DHCP | 列出DHCP配置 |
tcpkill host <IP_ADDRESS> and port <PORT> | 终止运行在特定端口号上的TCP连接 |
echo “1” > /proc/sys/net/ipv4/ip_forward | 开启IP转发功能 |
echo “nameserver <IP_ADDRESS>” >> /etc/resolv.conf | 添加DNS服务器 |
DNS区域传输
命令 | 传输 |
---|---|
dig -x <IP_ADDRESS> | 反向域查找 |
host <IP_ADDRESS_OR_HOSTNAME> | 域查找 |
dig axfr <DOMAIN_NAME_TO_TRANSFER> @<DNS_IP>或host -t axfr -l <DOMAIN_NAME_TO_TRANSFER> <DNS_IP> | DNS区域传输 |
Linux 文件操作
文件操作
命令 | 描述 |
---|---|
diff <FILE_PATH_A> <FILE_PATH_B> | 比较文件 |
rm -rf <FILE_PATH> | 强制递归删除文件 |
shred -f -u <FILE_PATH> | 安全删除文件 |
touch -t | 修改文件时间戳 |
grep –c “” <FILE_PATH> | 计数包含特定字符串的行 |
find . -name “*.<FILE_EXTENSION>” | 在当前目录及其子目录搜索包含指定文件扩展名的文件 |
wc -l <FILE_PATH> | 返回目标文件行数 |
find / -perm -4000 -exec ls - ld {} ; | 查找suid文件 |
file <FILE_PATH> | 确定文件类型 |
chattr +i/-i <FILE_PATH> | 设置/取消设置文件不可修改,不可删除 |
dd if=/dev/urandom of=<OUTPUT_FILE_PATH> bs=<size> count=100 | 生成随机文件 |
文件哈希
命令 | 描述 |
---|---|
md5sum <FILE_PATH> | 生成文件的MD5哈希值 |
echo “<STRING>” | md5sum | 生成一串字符的MD5哈希值 |
sha1sum <FILE_PATH> | 生成文件的SHA1哈希值 |
Linux持久性
命令 | 描述 |
---|---|
nano /etc/rc.local 或者 echo “<FILE_PATH>” >> /etc/rc.local | 将文件路径添加到rc.local,该文件会在系统启动时执行 |
Linux服务
命令 | 描述 |
---|---|
nano /etc/systemd/system/<SERVICE_NAME>.service | 使用nano命令创建/打开服务文件 |
systemctl daemon-reload | 重新加载服务管理器 |
systemctl enable <SERVICE_NAME>.service | 启用服务 |
systemctl start/stop <SERVICE_NAME>.service | 启动/停止服务 |
Linux后渗透命令
MISC 命令
命令 | 描述 |
---|---|
gcc <FILE_PATH>.c –o <OUTPUT_PATH> | 编译C程序 |
init 6 | 重启 |
init 0 | 关机 |
cat /etc/syslog.conf | grep –v “^#” |
cat <FILE_PATH> | grep -Eo “(http|https): //[a-zA-Z0-9./?=_%:-]*” | sort -u | 从文件中剥离URL链接 |
wget http://<URL> -O <FILE_PATH> -o /dev/null | 抓取URL并写入文件 |
rdesktop <IP_ADDRESS> | 使用目标IP启动远程桌面会话 |
script –a <FILE_PATH> | 记录所有shell活动,会话退出后,将会话写入文件 |
history !<LINE_NUMBER> | 显示用户命令的历史记录,并执行历史记录中的指定行 |
export PATH=“<PATH_TO_ADD>:$PATH” | 向PATH添加另一个变量 |
smbclient -U <USERNAME> //<IP_ADDRESS>/<SHARE_NAME> | 连接Windows SMB共享 |
Bash历史操作
命令 | 描述 |
---|---|
rm ~/.bash_history -rf | 删除bash历史文件 |
echo > /var/log/auth.log | 清除auth.log |
echo > ~/.bash_history | 清除当前用户bash历史 |
history -c | 清除当前会话历史记录 |
unset HISTFILE | 禁用历史日志记录 |
kill -9 $$ | 终止当前会话 |
ln -sf /dev/null ~/.bash_history | 永久地将所有bash历史命令发送到/dev/null |