红队角度下的Linux信息收集

前言

自从2017年起,为了响应国家网络安全的号召,各个行业开始积极举办红蓝攻防演练、HVV等活动。下面是基于互联网收集的资料及实战对抗中本人所积累的一些心得,主要描述红队角度下如何在演习乃至实战下搜集Linux信息。

前期信息收集

在这里我不再叙述关于web或者IOT环境下外部打点操作,在这里只是模拟红方成功进入内网但还未拿到任何权限但情况,从端口、IP、MAC等为主的手段进行说明。

扫描主机端口

nmap -T5 -A -v -p- <target ip>

扫描一个IP段、探测存活主机

nmap -sP <network address> </CIDR>

探测操作系统类型

nmap -0 <target IP>

甚至指定相应脚本还可以扫描漏洞和爆破弱口令,如下:

寻找登陆授权界面

nmap -p 80 --script http-auth-finder <www.xxx.com>

SSH爆破

nmap -p22 --script ssh-brute <target ip>

DNS 域传送漏洞

nmap -p 53 --script dns-zone-transfer.nse -v <target ip>

除了nmap工具以外,在需要扫描大量主机端口的情况下,masscan是一个非常推荐的手段

Masscan 127.0.0.0/24 -p443  # 单端口扫描
Masscan 127.0.0.0/24 --top-ports 100 -rate 100000  # 快速扫描
Masscan 127.0.0.0/24 --top-ports 100 --excludefile exclude.txt # 排除指定目标
masscan 127.0.0.0/24 -p20,21,22,23,80,161,443,873,2181,3389,6379,7001,8000,8009,8080,9000,9009,9090,9200,9300,10000,50070 > results.txt

在这里我并没有叙述完全,只大概讲了比较通用的一部分方法

中期的信息收集

这里模拟红方成功拿下一台机器的低权限准备提权的情况。

在运维人员能保证系统和软件维持在新版本、无弱口令、无特殊SUID文件、sudo命令的情况下,Linux提权是基本不可能的,但是安全很难做到万无一失。

在各种环境中存在各种不同版本的Linux系统,甚至类UNIX系统,比如:OpenSUSE、Fedora、Oracle Linxu、Slackware、FreeBSD、OpenBSD等等,所以先了解清楚系统版本信息是关键。

hostname                    # 查看服务器主机名命令
uname -a

还有非常重要的内核版本信息

uname -mrs
rpm -q kernel
dmesg | grep Linux
ls /boot | grep vmlinuz-
cat /etc/*-release

知道了系统的版本或发行版,下一步就搜索有关的提权漏洞,这里以 ubuntu 16.04 为例,使用 Exploit-DB 的命令行搜索工具 searchsploit

searchsploit -w ubuntu 16.04 4.4.x

然后接下来是用户信息

id                          # 显示真实有效的用户 ID(UID)和组 ID(GID)
whoami                      # 当前用户
groups                      # 当前组
who                         # 显示目前登录系统的用户信息

查找具有s权限的文件,在执行这些文件时具有root权限

查找当前用户执行哪些sudo命令不需要密码

sudo -l


关于sudo的提权方式:https://gtfobins.github.io/

在freebsd系统中也有类似sudo的机制,称作doas

cat /etc/doas.conf

若有指定的文件路径、则直接执行命令即可(例子)

doas /usr/bin/less /var/log/authlog              //直接为root权限

查看当前用户可以使用的所有命令

compgen -c

查看用户、密码文件

cat /etc/passwd
cat /etc/shadow          //需要root权限

shadow还是拼运气爆破hash把,hashcat挺好用。。。

开机启动项信息查询

chkconfig                   # 查看开机启动服务命令
ls /etc/init.d              # 查看开机启动配置文件命令
cat /etc/rc.local           # 查看 rc 启动文件
crontab -l
ls -alh /var/spool/cron
ls -al /etc/ | grep cron
ls -al /etc/cron*
cat /etc/cron*
cat /etc/at.allow
cat /etc/at.deny
cat /etc/cron.allow
cat /etc/cron.deny
cat /etc/crontab
cat /etc/anacrontab
cat /var/spool/cron/crontabs/root

后期的信息收集

到后期也就是后渗透阶段,攻击者已经拿到root权限,其实后续的目标就很明确了,扩大战果进行横向渗透;挖掘所有主机上能利用的信息或者突破口然后当作跳板进行横向移动。

查进程服务

ps -aux                     # 列出所有进程以及相关信息命令
ps -ef
top                         # 总览系统全面信息命令,Ctrl + C 退出界面

安装了哪些程序?版本?状态?

ls -alh /usr/bin/
ls -alh /sbin/
dpkg -l
rpm -qa
ls -alh /var/cache/apt/archivesO
ls -alh /var/cache/yum/

常用的服务配置文件

cat /etc/syslog.conf
cat /etc/chttp.conf
cat /etc/lighttpd.conf
cat /etc/cups/cupsd.conf
cat /etc/inetd.conf
cat /etc/apache2/apache2.conf
cat /etc/my.conf
cat /etc/httpd/conf/httpd.conf
cat /opt/lampp/etc/httpd.conf
ls -aRl /etc/ | awk '$1 ~ /^.*r.*/

查询日志信息
这里不写了,蓝队写。。。。

查询敏感文件

cat /var/apache2/config.inc
cat /var/lib/mysql/mysql/user.MYD
cat /root/anaconda-ks.cfg
cat ~/.bash_history
cat ~/.nano_history
cat ~/.atftp_history
cat ~/.mysql_history
cat ~/.php_history

查询邮件信息

ls -alh /var/mail/

查询网络拓扑结构

route
ip route        # 显示核心路由表
ip neigh        # 显示邻居表
cat /etc/resolv.conf  # 查看DNS
arp -e

总结

其实关于Linux的信息收集,大的方向也就这些,还有一些比较特殊的方向没有写出来,这个要具体环境具体分析,其实比较好用的一个方法就是利用Linux下的proc文件系统,它可是被称为Linux的信息宝库,会有意想不到的收获。

Typecho赞赏功能

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

冷夜清风

(๑>ڡ<)☆谢谢老板们的投食~

使用微信扫描二维码完成支付


已有 2 条评论

    1. 回复 Liu先生的故事小屋: 加油

添加新评论

选择表情

  TimeLine

随手分享一些知识框架...
--- updated on 2021-07-16 16:47:39 星期五

  About Me

我就是随便写写,您随便看看。
有事说事,没事烧纸,闲人勿扰,谢谢。
工作:攻防。
Tips:
1、组织:灼剑(Tsojan)安全团队。
2、问题,请直接使用真实邮箱地址回复,不然你收不到信息。

  Recent Comments

  •  Darren: 已解决
  •  Darren: 按照步骤来的,唯一的区别就是PATH变量里面多了两行,一行是D:\wim.rar\,一行是%U...
  •  Liu先生的故事小屋: 加油哦,一起努力!
  •  达布尔·道格: 在jdk16种怎么弄呢,里面的路径跟博主的不一样
  •  林: 可以加个好友吗,以后有问题想请教下,现在还是个小菜鸟
  •  君君: 点击run没反应,为什么
  •  jrdh: 请问大佬,配置环境变量的时候,文件位置在哪里?怎么找
  •  MJXT: 或者说点了没反应
  •  MJXT: 我已经安装好了可以使用,但是没办法打开汉化的那个bat文件,打开就闪退
  •  方大落: 成功安装,这是我在全网看到的最完全的安装教程,给博主点赞!

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。