linux信息收集

 


1、系统区分
debian系列:debian、ubuntu
redhat系列:redhat、centos

是否为docker、或者为虚拟机

分为通用模块、单独模块的信息获取


2、系统信息收集

内核(是否为x64还是x86):uname -a

版本:cat /etc/issue
cat /etc/*-release

网络地址\mac地址\ipv6地址:ifconfig

主机名:hostname

hosts:
cat /etc/hosts
cat /etc/resolv.conf

3、用户信息

who
last

系统用户:
获取用户名、gid、uid、home路径:awk -F ':' '{print $1,$3,$4,$6;}' /etc/passwd 获取用户组:cat /etc/group **获取hash**:cat /etc/shadow 列出超级用户:grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 查看用户操作:cat ~/.bash_history 获取在线用户:w

4、服务程序
需要实现:得到系统安装程序以及服务,版本信息和运行权限,用文档封装一下

端口:netstat
进程:ps -aux
ps -A -o user,pid,tty,start,time,command | grep -E "[^]]$"
程序:
dpkg -l rpm -qa

5、敏感文件

/etc/目录下
计划任务
日志文件
bash_history
find / -type f -iname "*.bash_history" -o -iname "*config*" -o -iname "web.xml" -o -iname "*database*" -o -iname "*pass*" 2>/dev/null config web.xml

6、常见可使用程序

nmap
nc
netcat
wget
tcpdump
wireshark
rpm
yum
apt-get
ftp
ssh
telnet
scp
nslookup
ruby

6、交互通信的ip

hosts
netstat -antpu
arp -a
tracert

7、提权帮助
根据内核去确认漏洞

8、信息展示
整体流程:信息获取 -> 信息处理 -> 信息输出

系统信息:

内核、x86|x64、主机类型、主机名
ip地址、mac地址
是否存在exp获取root

用户信息:

存在的用户、在线用户
用户组
last信息
用户操作信息 .bash_history
用户hash

服务信息:

端口,可能的服务名
进程,可能的进程名,进程权限,进程开启时间

文件信息:

敏感文件(password/config/database)
打包文件+运行文件(.zip/.tar.gz/.pl/.sh/.py)
服务配置文件(httpd.conf)
log文件(做处理,只显示log所在目录)
常见的信息文件扫描

//需要通过上面获取的信息整理出来
程序信息:

程序名、程序端口、运行的进程、版本、配置文件

命令信息:

可执行的一些程序

通信信息:

hosts
arp缓存
端口

结构信息:

内网主机存活


9、参考

基础内核信息:
uname -a 2>/dev/null
cat /proc/version 2>/dev/null cat /etc/*-release 2>/dev/null 主机名: hostname 2>/dev/null

最后用户登录的信息:
lastlog |grep -v "Never" 2>/dev/null

strips out username uid and gid values from /etc/passwd cat /etc/passwd | cut -d ":" -f 1,2,3,4 2>/dev/null 列出所有用户的组 for i in $(cat /etc/passwd 2>/dev/null| cut -d":" -f1 2>/dev/null);do id $i;done 2>/dev/null 查询是否有hash存储在/etc/passwd(*nix中) grep -v '^[^:]*:[x]' /etc/passwd 2>/dev/null 根据uid列出本地用户: grep -v "^#" /etc/passwd | awk -F: '$3 == 0 || $3 == 500 || $3 == 501 || $3 == 502 || $3 == 1000 || $3 == 1001 || $3 == 1002 || $3 == 2000 || $3 == 2001 || $3 == 2002 { print }' 读取shadow文件 cat /etc/shadow 2>/dev/null bsd的shadow文件 cat /etc/master.passwd 2>/dev/null

能够sudo不需要提供密码
echo '' | sudo -S -l 2>/dev/null

检查root目录是否存在
ls -ahl /root/ 2>/dev/null 显示home目录情况 ls -ahl /home/ 2>/dev/null 寻找文件我们能写但是不属于我们的文件 find / -writable -not -user \`whoami\` -type f -not -path "/proc/*" -exec ls -al {} \; 2>/dev/null 寻找ssh公钥 find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls root是否能登录ssh grep "PermitRootLogin " /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | awk '{print $2}' 如果返回yes则可以登录 环境变量 echo $PATH 2>/dev/null 列出能用的shells cat /etc/shells 2>/dev/null hash的密码加密政策 cat /etc/login.defs 2>/dev/null | grep "PASS_MAX_DAYS\|PASS_MIN_DAYS\|PASS_WARN_AGE\|ENCRYPT_METHOD" 2>/dev/null | grep -v "#" 2>/dev/null

所有的计划任务配置文件
ls -la /etc/cron* 2>/dev/null

获取计划任务内容
cat /etc/crontab 2>/dev/null ubuntu获取计划任务 ls -la /var/spool/cron/crontabs 2>/dev/null ls -la /etc/anacrontab 2>/dev/null; cat /etc/anacrontab 2>/dev/null ls -la /var/spool/anacron 2>/dev/null 获取每个用户的计划任务 cat /etc/passwd | cut -d ":" -f 1 | xargs -n1 crontab -l -u 2>/dev/null

获取ifconfig

/sbin/ifconfig -a 2>/dev/null

dns设置
cat /etc/resolv.conf 2>/dev/null | grep "nameserver" 路由配置 route 2>/dev/null | grep default 正在监听的tcp端口 netstat -antp 2>/dev/null udp端口 netstat -anup 2>/dev/null

正在运行的程序
ps aux 2>/dev/null

查看进程路径和权限
ps aux | awk '{print $11}'|xargs -r ls -la 2>/dev/null |awk '!x[$0]++' 获取inetd.conf文件(监视网络的守护进程) cat /etc/inetd.conf 2>/dev/null cat /etc/inetd.conf 2>/dev/null | awk '{print $7}' |xargs -r ls -la 2>/dev/null cat /etc/xinetd.conf 2>/dev/null cat /etc/xinetd.conf 2>/dev/null | awk '{print $7}' |xargs -r ls -la 2>/dev/null 列举各种服务的管理脚本 ls -la /etc/init.d 2>/dev/null 寻找不是root的: find /etc/init.d/ \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null ls -la /etc/rc.d/init.d 2>/dev/null find /etc/rc.d/init.d \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null ls -la /usr/local/etc/rc.d 2>/dev/null find /usr/local/etc/rc.d \! -uid 0 -type f 2>/dev/null |xargs -r ls -la 2>/dev/null

获取mysql版本
mysql --version 2>/dev/null
mysqladmin -uroot version 2>/dev/null 获取sudo版本 sudo -V 2>/dev/null| grep "Sudo version" 2>/dev/null 测试root/root能否登录 mysqladmin -uroot -proot version 2>/dev/null postgres版本 psql -V 2>/dev/null 登录成功 psql -U postgres template0 -c 'select version()' 2>/dev/null | grep version apache详情 apache2 -v 2>/dev/null; httpd -v 2>/dev/null apache的运行用户 cat /etc/apache2/envvars 2>/dev/null |grep -i 'user\|group' |awk '{sub(/.*\export /,"")}1'

plan(could contain useful information)
find /home /usr/home -iname *.plan -exec ls -la {} \; -exec cat {} 2>/dev/null \;
rhosts(these may allow us to login as another user etc.)
find /home -iname *.rhosts -exec ls -la {} 2>/dev/null \; -exec cat {} 2>/dev/null \; .plan .rhosts hosts.equiv /etc/exports .conf .log .ini .*_history /root/.*_history ls -la /var/mail 2>/dev/null head /var/mail/root 2>/dev/null

软件安装判断流程

dpkg -l
rpm -qa

etc目录配置文件

转载于:https://www.cnblogs.com/lgf01010/p/9613835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值