Linux主机信息收集

  • A+
所属分类:安全博客

/01 Linux主机信息收集

一,系统架构

1.uname -a 打印系统信息

1
uname -a

Linux主机信息收集

2./etc/issue

一个文本文件

其中包含要在登录提示之前打印的消息或系统标识

1
cat /etc/issue

Linux主机信息收集

3. /etc/*-release

/etc/lsb-release, /etc/redhat-release 文件包含一个被解析以获取信息的描述行

1
cat /etc/lsb-release

这个命令需要Linux为Debian类型的

Linux主机信息收集

1
cat /etc/redhat-release

这个命令需要Linux为Redhat类型的

Linux主机信息收集

4./proc/version

/proc/version指定了Linux内核的版本,用于编译内核的gcc的版本以及内核编译的时间。 它还包含内核编译 器的用户名

1
cat /proc/version

Parrot(Debian):

Linux主机信息收集

CentOS(Redhat):

Linux主机信息收集

5./proc/sys/kernel/version

/proc/sys/kerne/ 中的文件可以用来调整和监视Linux内核操作中的各种活动

1
cat /pro/sys/kernel/version

Parrot(Debian):

Linux主机信息收集

CentOS(Redhat):

Linux主机信息收集

二,进程

1.PS命令

主要使用ps命令,详细的可用去查Linux命令文档速查,这里只列出常用的

列出当前进程快照

1
ps -ef

Linux主机信息收集

-e:此选项的效果和指定”A”选项相同

-f:显示UID,PPIP,C与STIME栏位。

1
ps aux

Linux主机信息收集

a:显示现行终端机下的所有程序,包括其他用户的程序。

u:以用户为主的格式来显示程序状况。

x:显示所有程序,不以终端机来区分。

注意:命令解释来源Linux命令文档速查

2.proc文件

Linux万物皆为文件进行也不例外进程在proc文件下

/proc是非常特殊的,它也是一个虚拟文件系统。 它有时被称为过程信息伪文件系统。 它不包含“真实”文件,而是包含运行时系统信息(例如系统内存,安装的设备,硬件配置等)。

1
ls -al /proc/

Linux主机信息收集

另外我们还可以选择某个进程的PID进行查看

查看关于PID 1250的信息

1
ls -al /proc/1250

Linux主机信息收集

3.top命令

top命令显示您的Linux机器的处理器活动,并显示实时管理的任务。 它会显示正在使用的处理器和内存以及运行进程等其他信息。

1
top

Linux主机信息收集

当然top不单单就一个top,更详细可用查看Linux命令速查

三,用户和组

1. id

找到用户的UID或GID等信息

1
id

root用户:

Linux主机信息收集

普通用户:

Linux主机信息收集

2.w

显示目前登入系统的用户信息

显示登录到Linux服务器的人员

1
w

Linux主机信息收集

3. whoami

显示当前用户名

1
whoami

Linux主机信息收集

4.last

列出目前与过去登入系统的用户相关信息

1
last

Linux主机信息收集

-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;

-d:将IP地址转换成主机名称;

-f <记录文件>:指定记录文件。

-n <显示列数>或-<显示列数>:设置列出名单的显示列数;

-R:不显示登入系统的主机名称或IP地址;

-x:显示系统关机,重新开机,以及执行等级的改变等信息。

lastb可列出登录失败记录,会发现不正常的一大堆,都是云上有人暴力破解所致

5.lastlog

显示系统中所有用户最近一次登录信息

格式化打印上次登录日志 /var/log/lastlog 文件的内容

1
lastlog

Linux主机信息收集

6./etc/passwd

有关用户信息的基于文本的数据库,可以登录系统或其他拥有正在运行的进程的操作系统用户身份

1
cat /etc/passwd

Linux主机信息收集

7./etc/shadow

用于通过限制除高度特权的用户对散列密码数据的访问来提高密码的安全级别。 通常情况下,该数据保存在超级用户拥有的文件中,并且只能由超级用户访问

1
cat /etc/shadow

Linux主机信息收集

8. /etc/sudoers

文件内容是使用sudo命令必须遵守的规则

1
cat /etc/sudoers

Linux主机信息收集

9.sudo -V

打印sudo版本字符串

1
sudo -V

Linux主机信息收集

Tips:这里是大写“V”

10.sudo -l

列出目前用户可执行与无法执行的指令

1
sudo -l

Linux主机信息收集

四,SSh服务信息

1.OpenSSH SSH 控制端配置文件

1
cat /etc/ssh/ssh_config

Linux主机信息收集

里面有些比较重要信息如是否允许远程连接,使用密码还是其他方式等等。

2.OpenSSH SSH 服务端配置文件

1
cat /etc/ssh/sshd_config

这个也是内容过多就不过多缀叙了

想要具体了解可用查查资料

五,服务状态

1.检查所有服务状态

1
service --status-all

Linux主机信息收集

+号为正在开启

-号为正在休眠未开启

2.列出安装在文件系统中的所有单元

1
systemctl -a

3.启动某服务或开机自启

3.1 service

启动改服务

1
service servicename start

重启该服务

1
service servicename restart

停止该服务

1
service servicename stop

显示该服务状态信息

1
service servicename status

3.2 systemctl

以nfs服务为例

1
2
3
4
5
6
7
systemctl start nfs-server.service # 启动nfs服务
systemctl stop nfs-server.service #停止nfs服务
systemctl enable nfs-server.service # 设置开机自启动
systemctl disable nfs-server.service # 停止开机自启动
systemctl status nfs-server.service # 查看服务当前状态
systemctl restart nfs-server.service # 重新启动某服务
systemctl list-units --type=service # 查看所有已启动的服务

4. /etc/services

将端口号映射到指定的服务.

1
cat /etc/services

Linux主机信息收集

六,安全

主要使用命令iptables,这里列举几个常用命令

常常用作防火墙命令设置

允许来自src端口80的tcp连接

1
iptables -A INPUT -p tcp -m tcp –sport 80 -m state –state RELATED,ESTABLISHED -j ACCEPT

允许 从/到 dst 端口80的TCP连接

1
iptables -A OUTPUT -p tcp -m tcp -dport 80 -m state –state NEW,RELATED,ESTABLISHED -j ACCEPT

允许来自src端口80的udp连接

1
iptables -A INPUT -p udp -m udp –sport 53 -m state –state RELATED,ESTABLISHED -j ACCEPT

允许从/到 dst 端口53的udp连接

1
iptables -A OUTPUT -p udp -m udp –dport 53 -m state –state NEW,RELATED,ESTABLISHED -j ACCEPT

允许本地主机连接到 localhost:55552

1
2
iptables -A OUTPUT -p tcp -m tcp –sport 55552 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp –dport 55552 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

别看我只写了那么点,作为大部分防火墙都是拿linux直接改的iptable命令至关重要。

七,网络

1.ifconfig命令

显示当前可用的所有接口

1
ifconfig -a

Linux主机信息收集

-a 显示所有一般情况下可用省略 ifconfig

当然作为操作网卡的命令,不单单只有查看一个,还有很多,以下来源Linux命令速查:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#启动关闭指定网卡:

ifconfig eth0 up
ifconfig eth0 down
#ifconfig eth0 up为启动网卡eth0
#ifconfig eth0 down为关闭网卡eth0,ssh登陆linux服务器操作要小心,关闭了
#就不能开启了,除非你有多网卡。

为网卡配置和删除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址
用ifconfig修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
配置IP地址:

[[email protected] ~]# ifconfig eth0 192.168.2.10
[[email protected] ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[[email protected] ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
启用和关闭arp协议:

ifconfig eth0 arp #开启网卡eth0 的arp协议
ifconfig eth0 -arp #关闭网卡eth0 的arp协议
设置最大传输单元:

ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes

#其它实例
ifconfig #处于激活状态的网络接口
ifconfig -a #所有配置的网络接口,不论其是否激活
ifconfig eth0 #显示eth0的网卡信息

2.列出打开的文件

1
lsof -nPi

Linux主机信息收集

3.显示/操作IP路由表

1
route -e

Linux主机信息收集

4./etc/resolv.conf

该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf 的关键字主要有四个,分别是:`nameserver :定义DNS服务器的IP地址

1
cat /etc/resolv.conf

Linux主机信息收集

5./etc/hosts

/etc/hosts 是一个简单的文本文件,将IP地址与主机名相关联,每个IP地址一行

类似windows查看host配置文件一样

1
cat /etc/hosts

Linux主机信息收集

6./etc/network/interfaces

/etc/network/interfaces 文件包含网络接口配置信息

1
cat /etc/network/interfaces

Linux主机信息收集

7./etc/sysconfig/network

/etc/sysconfig/network 文件用于指定有关服务器上所需网络配置的信息

1
cat /etc/sysconfig/network

Linux主机信息收集

8./etc/networks

/etc/networks 是一个简单的ASCII文件,描述这些网络的已知DARPA网络和符号名称

1
cat /etc/networks

Linux主机信息收集

八,文件系统

文件方法

1./etc/profile

/etc/profile 包含Linux系统环境和启动程序。 它被所有的用户使用于bash,ksh,sh shell。

1
cat /etc/profile

2./etc/bashrc

/etc/bashrc 或者 /etc/bash.bashrc是全系统的bash每个交互式shell启动文件。是使用系统广泛的功能和别名

1
cat /etc/bashrc

3.~/.bash_profile

类似 /etc/profile, 但仅适用于当前用户

1
cat ~/.bash_profile

4.~/.bash_history

打印当前用户bash命令的历史记录

1
cat ~/.bash_history

也可以命令history,往往可用看到用户以前的输入命令,可用获取一些重要敏感信息

但是往往.bash_history刷新慢可用history -w写入就可以看到了

5.列出所有日志文件

1
ls -al /var/log/

Find命令

2>/dev/null 标准报错重定向到dev/null,意思就是不显示报错内容

6.粘滞位 - 只有目录的所有者或文件的所有者可以在这里删除或重命名

1
find / -perm -1000 -type d 2>/dev/null

7.SGID(chmod 2000) - 作为组运行,而不是启动它的用户

1
find / -perm -g=s -type f 2>/dev/null

8.SUID(chmod 4000) - 作为所有者运行,而不是启动它的用户

1
find / -perm -u=s -type f 2>/dev/null

9.找出可写的文件夹

1
2
3
4
find / -writable -type d 2>/dev/null
find / -perm -222 -type d 2>/dev/null #找到文件属性为222的文件
find / -perm -o w -type d 2>/dev/null #对所有人可写的文件
find / -perm -o x -type d 2>/dev/null #对所有人可执行的文件

-perm 权限

-type 文件类型:

d代表的是目录(directroy)

-代表的是文件(regular file)

s代表的是套字文件(socket)

p代表的管道文件(pipe)或命名管道文件(named pipe)

l代表的是符号链接文件(symbolic link)

b代表的是该文件是面向块的设备文件(block-oriented device file)

c代表的是该文件是面向字符的设备文件(charcter-oriented device file)

常见文件权限:

  1. -rw——- (600) 只有拥有者有读写权限。
  2. -rw-r–r– (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
  3. -rwx—— (700) 只有拥有者有读、写、执行权限。
  4. -rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
  5. -rwx–x–x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
  6. -rw-rw-rw- (666) 所有用户都有文件读、写权限。
  7. -rwxrwxrwx (777) 所有用户都有读、写、执行权限。

10.找出可写可执行的文件夹

1
find / ( -perm -o w -perm -o x ) -type d 2>/dev/null

11.找出可写的文件

1
find / -xdev -type d ( -perm -0002 -a ! -perm -1000) -print

12.找出不是所有者的文件

1
find /dir -xdev ( -nouser -o -nogroup ) -print

九,程序

1
2
3
4
5
6
7
crontab -l #显示标准输出上的当前触点
ls -alh /var/spool/cron
ls -al /etc/cron*
cat /etc/cron*
cat /etc/crontab
ls -la /var/spool/cron/crontabs #列出所有用户的crontab文件
cat /var/spool/cron/crontabs/root #打印root用户的crontab命令

Tips

命令之多,多到背不下,唯有多敲多练,多查查,其中有几个比较重要的打了下划线的就是了。

FROM :https://ailumao.cn/ | Author:Ailumao

相关推荐: 蓝帽杯决赛 WRITEUP

前言上周六参加『 蓝帽杯 』全国大学生网络安全技能大赛线上决赛记录,先挖个坑等一手之后官方的 WP 。 0x01 签到题操作内容题目给了一些数字: 1[102, 108, 97, 103, 123, 119, 101, 49, 99, 48, 109, 101…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: