专栏首页ffffffff0x[ffffffff0x] 红队视角下Linux信息收集
原创

[ffffffff0x] 红队视角下Linux信息收集

>本文所有操作和截图皆在本地环境下的靶机中进行

# 前言

近年来各地各行业积极举办演练、HW等活动,对于防守方来说,严防死守也不能保证万无一失,而攻击方为了拿到分数更可谓是无所不用其极。对于蓝方人员来说,己方的资产一定要明确。接下来本文将以红队视角出发,思考攻击方在演习中如何去搜集linux信息,给蓝方人员一个大致的思路,以更好的应对防护。


# 前期的信息收集

这里模拟攻击方成功进入内网但还未拿到任何权限的情况,以端口扫描、IP扫描、MAC扫描等为主的手段进行说明。

nmap作为渗透测试最常用的工具之一会出现在各种场景中,其功能也非常丰富,不仅可以扫描端口也可以探测指定网段存活主机。

* 扫描主机端口

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

当然,这些远远不足以让攻击方拿下一台机器,这只是作为黑盒情况下的Linux主机信息收集的方式。


# 中期的信息收集

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

在运维人员能保证系统和软件维持在新版本、无弱口令、无特殊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-

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

searchsploit -w ubuntu 16.04 4.4.x

若是不存在提权漏洞的版本,那么注意点就要放到用户的信息上了。

id                          # 显示真实有效的用户 ID(UID)和组 ID(GID)

whoami                      # 当前用户

groups                      # 当前组

who                         # 显示目前登录系统的用户信息

比如SUID文件和sudo权限

找带 suid 的文件

find / -perm -u=s 2>/dev/null

查看当前用户执行哪些 sudo 命令无需密码

sudo -l

找到了可以sudo执行的文件又怎么提权呢? 这里推荐一个网站 https://gtfobins.github.io/ 其中记录了大量的提权方案。

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

cat /etc/doas.conf

比如这里可以发现以root身份运行 less无需密码

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

compgen -c

如果当前用户下没有发现有用的信息,可以看看其他用户信息,万一存在哪个用户是弱口令,那么可以当作一个突破点。

/etc/passwd一般不会禁止非root用户读取,可以直接查看

cat /etc/passwd

可见存在3个test开头的用户和ldap、oracle、docker等用户,这里相当于给了很多提示,说明了一些可能存在的服务,当然这3个test开头的用户也可以尝试爆破。

开机启动项作为比较关键的点,无论是红方还是蓝方都不会放过。

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

# 后期的信息收集

到了后期阶段,当攻击者成功提权,信息收集的目的其实偏向于扩大战果,而不是寻找突破口,红方人员会详尽一且办法,挖掘机器上有用的信息,然后作为跳板横向进攻。

知晓机器上运行着什么进程可以推测机器的定位

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.\*/

如果时间充足,看一看日志文件也是很好的选择,这里就不多阐述,在之后的蓝队篇中会介绍。

作为最高权限用户,shadow文件不可不看,万一跑出几个密码,横向渗透的成功率就会大大提高,将passwd和shaodw文件下载到kali中进行unshadow,随后john跑hash

mkdir /root/.john

cd /root/.john

unshadow passwd.txt shadow.txt > hash.txt

除了shadow意外也可以看一看其他敏感文件,比如数据库的配置、历史记录等

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信息收集的关键点。


本文作者 r0fus0d

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [ffffffff0x] 蓝队视角下Linux信息收集

    上一篇 红队视角下Linux信息收集 我们谈到红队是以提权和后渗透为主要目的而进行的信息收集,本次谈一谈在蓝队应急响应中Linux系统下比较关键的内容。

    r0fus0d
  • [ffffffff0x] Linux提权分析

    之前 红队视角下Linux信息收集 中提到过提权的信息收集命令,但没有细讲。本篇文章将着重于各种linux提权手段,总结提权的条件和原理。

    r0fus0d
  • 十个问题理解Linux epoll工作原理

    ? 作者:dustinzhou,腾讯 IEG 运营开发工程师 epoll 是 linux 特有的一个 I/O 事件通知机制。很久以来对 epoll 如何能够高...

    腾讯技术工程官方号
  • Linux的进程线程及调度

    操作系统中的经典定义: 进程:资源分配单位。 线程:调度单位。 操作系统中用PCB(Process Control Block, 进程控制块)来描述进程。...

    叶余
  • Android跨进程通信IPC之1——Linux基础

    由于Android系统是基于Linux系统的,所以有必要简单的介绍下Linux的跨进程通信,对大家后续了解Android的跨进程通信是有帮助的,本篇的主要内容如...

    隔壁老李头
  • 年终盘点 | 红帽KVM虚拟化大讲堂 | 视频讲解+实验展示+实施手册

    针对很多客户关注的KVM虚拟化方案,笔者应邀,针对金融行业一些关注KVM虚拟化方案的客户进行了讲解。为了使由于各种原因没能参加课堂的朋友也能了解到讲解的内容,笔...

    魏新宇
  • 企业安全 | ATT&CK框架概述

    如果把乙方安全厂商和甲方运维服务的核心技术比作安全大脑,那么“右脑知攻、左脑知防”便是应对黑客攻击的最强大脑。

    贝塔安全实验室
  • 如果在创业公司,你会如何打造一个团队?

    前言 曾经看到一个问题:“如果在创业公司,你会如何打造一个团队?” 当时脑袋里的想法很多,关键词包括招聘、目标、领头、监督、理想、待遇、氛围、成长等等,杂乱...

    落影
  • “腾讯没有梦想”引发轰动,马化腾亲自回应!你赞同谁的说法?

    想必,没人愿做咸鱼,但没想到,腾讯——这家中国最成功的互联网企业之一,却被人说成了没有梦想。

    IT派

扫码关注云+社区

领取腾讯云代金券