本帖最后由 TernuraK 于 2024-7-10 15:32 编辑
下面是基础的功能性命令 创建空文件 touch newfile 删除文件 rm file 新建目录 mkdir newdir 删除空目录 rmdir dir 重命名文件 mv file.txt newfile.txt 移动文件 mv newfile newfile2 拷贝文件 cp file.txt newfile.txt 软链接 ln -s newfile.txt symlink.txt 硬链接 ln ~/offsec123.txt hardlink.txt
搜索文件 which只查找系统环境变量指定的目录,如果在系统环境变量目录之外就返回为空了。 which ($PATH) echo $PATH locate是在目录中进行检索但是如果在一个目录里生成了一些新的文件,但是locate还没更新到的话这个时候来搜索也是找不到的,所以使用locate的时候要先使用sudo updatedb命令,它会把当前系统完整的目录重新检索一遍,再使用locate才可以找得到。 locate (local.db ) sudo updatedb locate whoami.exe
find find ~ -mtime 2 -ls | sort -k 9 -k 10 | more find . -type f -iname '*.sh' -mmin -30 -ls find . -name '*.svn' -exec rm -rf {} \; find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
系统管理 每个账号后面都会跟随一串用户ID,用户ID才是让计算机识别的,用户名是我们人看的。 普通用户一般是从1000开始,ID为0的都是root用户,不管名称是不是root,权限都是root的 用户账号数据库 /etc/passwd /etc/shadow 组账号 cat /etc/group 禁用账号 -l就是lock,是锁定账号的参数,-E是过期,这里的过期时间是较早的时间,也就相当于锁定了。还可以更改用户名的状态为noligin。 sudo passwd -l | username chage -E 1990-01-01 kali x:1000:1000:,,,:/home.kali:sbin/noligin passwd -S username
用户账号管理 /etc/sudoers配置 cat /etc/sudoers 当前账号sudo权限 sudo -i 切换账号 sudo su sudo -s su -| offsec -c "whoami" sudo -l可以查看当前用户使用sudo的权限有多大,如果你可以使用的sudo权限为all的话就可以使用sudo -i或者sudo -s把自己直接切成管理员root用户。直接用su root命令也可以切换成root用户,但用sudo提权输的是当前账户密码,su属于切换账户,如果su root的话就得输入root的密码。
文件系统权限 linux系统中一切都是文件 查看权限 ls -la /etc/passwd 更改文件所有者 chown root file 修改文件权限 +就是增加权限,比如u+rwx就是文件所有者增加rwx的权限,o-r就是other(其他用户)去除r的权限。r的权限是4,w的权限是2,x的权限是1,他们是按照二进制排序表示的。 sudo chmod u=rwx,g+rw,o-r file sudo chmod u+x,g+w,o-r file chmod 400 file
可执行文件的两种特殊权限setuid、setgid (s) 以文件所有者(setuid)、所有组(setgid)的权限执行程序 suid的权限意思就是不管你当前是谁,执行id的话都会获得当前文件所有者的权限。如果权限赋予了所有组的话那就是sgid Effective UID (EUID) ~$ id uid=1000(kali)gid=1000(kali)euid=0(root)groups=1000(kali) uid=1000(kali)gid=1000(kali)euid=0(root)groups=0(root),1000(kali)
计划任务(后台调度任务) 上图的意义为每天的0点5分就以root的权限执行备份脚本。如果其中权限有不完善的地方,就可以利用它去做一个反弹shell,每天到点自动连接shell。也可以用来提权。 计划任务配置文件位于/etc/cron.*目录,每个脚本位于各自子目录中 全局配置文件(管理员) /etc/crontab
系统日志 日志系统很多时候也会成为渗透的方式,比如通过日志注入的而方式注入一段payload。再通过系统的一些文件包含漏洞把这个日志包含进来,从而把我们注入的webshell代码激活起来。 日志记录系统或服务的历史运行状态 日志文件 ls -l /var/log 认证信息日志 sudo tali -3 /var/log/auth.log 二进制日志 who /var/log/wtmp | tali -5 dmesg Systemd日志 journalctl
存储管理 内存使用量 free -m 磁盘使用量 df -hT 文件或目录大小 sudo du ./* -hsc 查看硬盘分区 sudo fdisk -l 挂载分区 sudo mount /dev/sdb1/mnt/usb
系统服务 基本网络枚举 基本网络工具 ifconfig ip addr sudo ifdown eth0 停掉一个网卡 sudo ifup eth0 启用一个网卡 网络配置 /etc/network/interfaces Networkmanager 网络连接 netstat -natup ss -natup ss -pantu 二层地址 arp -en 路由信息 route ip route sudo ip route add 10.13.37.0/24 dev eth1 traceroute offensive-security.com 名称解析配置 cat /etc/resolv.conf cat /etc/nsswitch.conf 主机文件 cat /etc/hosts 解析域名 ping -c 2 kali.org host kali.org nslookup kali.org
SSH服务 启动服务 sudo systemctl start ssh 临时开启ssh,下次开机就没有了。如果想一直保持开启可以把start替换为enable字段 sudo systemctl enable ssh 配置文件 这里就是SSH的配置文件了,在这里可以修改ssh的端口以及安全性策略 /etc/ssh/sshd_config 客户端配置 HashKnownHosts yes ~/.ssh 如果你链接了别人的SSH,那么在ssh目录下就会生成一个know_hosts文件,这里保存着你链接过的服务器的ssh信息,但都是hash加密的,防止别人拿到你的电脑后找到你的服务器信息。 cat /etc/ssh/ssh_config文件中写有HashKnownHosts yes服务,就是它把ssh历史记录变为哈希值的。如果是服务器端,那地址就是/etc/ssh/sshd_config 远程拷贝 这个是我以kali账户登录1.1.1.1然后把主机上的/home/kali/.bashrc文件拷贝下来 意思是我以kali的身份登录1.1.1.1主机,然后把passwd文件拷贝到目标主机的/home/kali 目录下,这个是我把本地文件拷贝到目标主机 SSH登录 ssh就可以直接登陆主机,但是linux系统的ssh不支持在命令行里直接写密码,必须有个交互式的过程,也就是连接上对端主机后输入密码。但是sshpass这个命令可以实现直接在命令行输入密码,也就是说它可以作为脚本来直接执行登陆主机。这里就是使用kali账号,1234的密码登陆了127.0.0.1这台主机。 |